*{box-sizing:border-box;margin:0}:root{--brand: #0900bb;--brand-light: #2a1fd6;--accent: #ffca5f;--bg: #f7f6f2;--card: #ffffff;--text: #16142e;--muted: #6b6a80;--border: #e4e3ee}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:radial-gradient(600px 400px at 12% 8%,rgba(9,0,187,.14),transparent 65%),radial-gradient(700px 500px at 88% 20%,rgba(255,202,95,.3),transparent 65%),radial-gradient(600px 600px at 55% 95%,rgba(9,0,187,.1),transparent 60%),linear-gradient(160deg,#f4f3ff,#f7f6f2 45%,#fdf4e3);background-attachment:fixed;min-height:100vh}.glass{background:#fff9;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 24px #0900bb0f}.login-wrap{min-height:100vh;display:flex;flex-direction:column;gap:1.8rem;align-items:center;justify-content:center;background:var(--brand)}.login-logo{width:300px;max-width:80vw}.login-card{background:var(--card);padding:2.5rem;border-radius:12px;box-shadow:0 8px 32px #00000040;width:340px}.login-card h1{color:var(--brand);font-size:1.3rem;margin-bottom:.25rem}.login-card p{color:var(--muted);font-size:.85rem;margin-bottom:1.5rem}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.25rem}input,select{width:100%;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;margin-bottom:1rem;background:#fff}button{background:var(--brand);color:#fff;border:0;padding:.65rem 1.2rem;border-radius:8px;font-size:.95rem;cursor:pointer;width:100%}button:hover{background:var(--brand-light)}.error{color:#a3242f;font-size:.85rem;margin-bottom:1rem}.topbar{background:var(--brand);color:#fff;padding:.7rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.topbar .brand-mark{display:flex;align-items:center;gap:.7rem;cursor:pointer}.topbar .brand-mark img{height:30px;display:block}.topbar .brand-mark span{color:var(--accent);font-size:.75rem;border-left:1px solid rgba(255,255,255,.3);padding-left:.7rem;letter-spacing:2px}.topbar button{width:auto;background:transparent;border:1px solid rgba(255,255,255,.4);padding:.35rem .8rem;font-size:.8rem}.container{max-width:1000px;margin:2rem auto;padding:0 1.5rem}.layout{display:flex;min-height:calc(100vh - 54px)}.sidebar{width:200px;flex-shrink:0;background:#fff6;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-right:1px solid rgba(255,255,255,.6);padding:.8rem .5rem;position:sticky;top:0;align-self:flex-start;height:calc(100vh - 54px);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-radius:10px;color:var(--text);text-decoration:none;font-size:.9rem;margin-bottom:.15rem}.nav-item:hover{background:var(--bg)}.nav-item.active{background:var(--brand);color:#fff}.nav-icon{font-size:1.1rem;line-height:1}.content{flex:1;min-width:0;padding:1.5rem;max-width:1100px}.topbar-user{display:flex;align-items:center;gap:.6rem;font-size:.85rem}@media (max-width: 720px){.layout{min-height:auto}.sidebar{position:fixed;bottom:0;left:0;right:0;top:auto;height:auto;width:100%;display:flex;flex-direction:row;overflow-x:auto;border-right:0;border-top:1px solid var(--border);padding:.3rem .4rem;z-index:50;box-shadow:0 -2px 12px #0000000f}.nav-item{flex-direction:column;gap:.15rem;padding:.35rem .6rem;margin:0;flex-shrink:0}.nav-label{font-size:.6rem}.nav-icon{font-size:1.35rem}.content{padding:1rem .9rem 5.5rem}.topbar .brand-mark img{height:34px}.topbar .brand-mark span,.topbar-name{display:none}.sidebar{background:#ffffffd9}.cart-bar{position:fixed;left:.6rem;right:.6rem;bottom:4.6rem}.kpis,.punch-row{grid-template-columns:repeat(2,1fr)}.punch{padding:1.4rem .5rem;font-size:1.1rem}.form-row{grid-template-columns:1fr}input,select,button{font-size:1rem}th,td{padding:.5rem}}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1rem}.module{background:#ffffff73;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid rgba(255,255,255,.65);border-radius:16px;padding:1.2rem;box-shadow:0 8px 24px #0900bb0d;transition:transform .15s,box-shadow .15s}.module.clickable:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0900bb1f}.module h3{color:var(--brand);font-size:1rem;margin-bottom:.35rem}.module p{color:var(--muted);font-size:.8rem}.module .soon{display:inline-block;margin-top:.6rem;font-size:.7rem;background:#fff6e3;border:1px solid var(--accent);padding:.15rem .5rem;border-radius:99px;color:#9a7326}.module.clickable{border-bottom:3px solid var(--accent)}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;margin-top:1rem}th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border);font-size:.85rem}th{background:var(--bg);color:var(--muted);font-weight:600}h2{margin-top:2rem;color:var(--brand);font-size:1.15rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin-top:1rem}.form-row button{align-self:end;margin-bottom:1rem}.module.clickable{cursor:pointer;transition:box-shadow .15s}.module.clickable:hover{box-shadow:0 4px 16px #0000001a}.back{display:inline-block;margin-bottom:1rem;color:var(--brand);text-decoration:none;font-size:.9rem}.ok{color:#1d6b34;font-size:.9rem;margin-bottom:1rem;background:#e8f3ea;border:1px solid #bfdcc6;padding:.5rem .8rem;border-radius:8px}.punch-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem;margin-top:1rem}.punch{font-size:1.05rem;padding:1.2rem}.punch.disabled{background:#cfd4c9;cursor:not-allowed}.checklist{margin-top:1rem}.check-items{list-style:none;margin:.8rem 0}.check-items li{padding:.35rem 0;border-bottom:1px solid var(--border)}.check-label{display:flex;align-items:center;gap:.6rem;font-size:.92rem;cursor:pointer}.check-label input{width:auto;margin:0}.check-label small{color:var(--muted)}.checklist button{width:auto;margin-top:.5rem}table a{color:var(--brand)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:1rem 0}.kpi{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.8rem 1rem}.kpi small{display:block;color:var(--muted);font-size:.72rem}.kpi b{font-size:1.05rem;color:var(--brand)}.dot{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:.35rem}.filter-row{margin:.8rem 0;max-width:220px}.filter-row select{margin-bottom:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 800px){.two-col{grid-template-columns:1fr}}.hbar{display:grid;grid-template-columns:150px 1fr 130px;align-items:center;gap:.5rem;font-size:.8rem;margin:.35rem 0}.hbar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{background:var(--bg);border-radius:99px;height:12px;overflow:hidden}.hbar-fill{display:block;height:100%;border-radius:99px}.hbar-val{color:var(--muted);text-align:right}.gap{background:#fff6e3;border:1px solid var(--accent);border-radius:8px;padding:.5rem .8rem;font-size:.85rem;margin:.4rem 0}.tabs{display:flex;gap:.4rem;margin:.8rem 0 1.2rem;flex-wrap:wrap}.tab{width:auto;background:var(--card);color:var(--text);border:1px solid var(--border);padding:.45rem .9rem;font-size:.85rem}.tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.grid-scroll{overflow-x:auto}.cuadro th,.cuadro td{padding:.3rem .35rem;text-align:center;font-size:.75rem}.cuadro .emp{text-align:left;white-space:nowrap;font-size:.8rem}.cuadro .emp small{color:var(--muted)}.cuadro .wkend{background:#f0eff9}.code{display:inline-block;min-width:18px;padding:.1rem .15rem;border-radius:4px;color:#fff;font-size:.7rem;font-weight:700}.code[style*=ffca5f]{color:#16142e}.legend{margin-top:.8rem;font-size:.8rem;color:var(--muted);display:flex;gap:.8rem;flex-wrap:wrap}.shift-chip{background:#eef0ff;border:1px solid #c9cdf5;border-radius:6px;padding:.1rem .3rem;font-size:.7rem;margin:.15rem 0;white-space:nowrap}.shift-chip a{color:#c0392b;text-decoration:none;font-weight:700}.add-shift{display:inline-block;color:var(--muted);font-weight:700;text-decoration:none;padding:0 .3rem}.add-shift:hover{color:var(--brand)}.avatar{border-radius:50%;object-fit:cover;display:inline-block;vertical-align:middle;border:2px solid rgba(255,255,255,.8)}.avatar-initials{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.avatar-btn{cursor:pointer;display:inline-flex}.topbar-name{font-size:.85rem}.bell-wrap{position:relative;display:inline-flex}.bell{width:auto;background:transparent;border:1px solid rgba(255,255,255,.4);padding:.3rem .55rem;position:relative;font-size:1rem}.badge{position:absolute;top:-6px;right:-6px;background:#e74c3c;color:#fff;border-radius:99px;font-size:.62rem;padding:.1rem .35rem;font-weight:700}.notif-panel{position:absolute;right:0;top:2.4rem;width:min(340px,88vw);max-height:60vh;overflow-y:auto;border-radius:14px;z-index:100;color:var(--text)}.notif-item{padding:.6rem .8rem;border-bottom:1px solid rgba(0,0,0,.05);font-size:.82rem;cursor:pointer}.notif-item small{display:block;color:var(--muted);margin-top:.15rem}.notif-item.unread{background:#0900bb0f}.notif-item:hover{background:#0900bb1a}.cat-block{background:#fff9;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.75);border-radius:16px;padding:.4rem 1rem;margin-bottom:1rem}.cat-title{color:var(--brand);font-size:.95rem;margin:.6rem 0 .3rem}.cart-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.05)}.cart-row:last-child{border-bottom:0}.cart-info b{font-size:.9rem;font-weight:600}.cart-info small{display:block;color:var(--muted);font-size:.74rem}.cart-row.in-cart{background:#0900bb0d;border-radius:10px;padding-left:.6rem;padding-right:.6rem;margin:0 -.6rem}.cart-row.olvidado{background:#fff6e3}.stepper{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.stepper button{width:34px;height:34px;padding:0;border-radius:10px;font-size:1.1rem;line-height:1}.stepper button:disabled{background:#d8d7e8;cursor:default}.stepper input{width:58px;text-align:center;margin-bottom:0;padding:.4rem .2rem}.cart-bar{position:sticky;bottom:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.7rem 1rem;border-radius:16px;margin-top:1rem;z-index:40;font-size:.85rem}.cart-bar button{width:auto}.cart-bar small{color:var(--muted)}
