:root{color:#101827;--yellow:#ffb400;--black:#050607;--line:#e4e8ef;--blue:#0b75ff;--green:#22b36b;--red:#e23c4c;--text:#1e293b;--muted:#667085;background:#f4f6f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{color:var(--text);background:#f4f6f9;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#0b66d8;font-size:13px;font-weight:700;text-decoration:none}.boot{place-items:center;min-height:100vh;font-weight:800;display:grid}.topbar{color:#fff;z-index:20;background:#060707;grid-template-columns:250px 1fr auto;align-items:center;gap:18px;height:72px;padding:0 28px;display:grid;position:sticky;top:0;box-shadow:0 2px 14px #0000002e}.brand{align-items:center;gap:14px;display:flex}.brand strong{letter-spacing:.02em;font-size:29px}.brandIcon{border:3px solid var(--yellow);width:38px;height:38px;color:var(--yellow);border-radius:10px;place-items:center;font-weight:950;display:grid;transform:skew(-8deg)}.topbar nav{justify-content:center;align-items:center;gap:28px;height:100%;display:flex}.topbar nav button{color:#fff;background:0 0;border:0;height:100%;font-size:13px;font-weight:900;position:relative}.topbar nav button.active:after{content:"";background:var(--yellow);border-radius:4px 4px 0 0;height:4px;position:absolute;bottom:0;left:0;right:0}.topActions{align-items:center;gap:18px;display:flex}.topActions svg{width:22px;height:22px}.avatar{color:#5b341f;background:linear-gradient(135deg,#e2b89d,#f4d5bf);border-radius:50%;place-items:center;width:42px;height:42px;font-weight:950;display:grid}.user{line-height:1.05}.user b{font-size:13px}.user span{opacity:.82;font-size:12px;display:block}.logout{color:#fff;background:#ffffff14;border:0;border-radius:10px;padding:8px}.kpiStrip{border:1px solid var(--line);background:#fff;border-radius:4px;grid-template-columns:1.45fr repeat(5,1fr) 1.08fr;min-height:96px;margin:18px 24px;display:grid;box-shadow:0 6px 22px #1118270f}.dateTile,.kpi{border-right:1px solid var(--line);align-items:center;gap:17px;padding:18px 22px;display:flex}.dateTile{grid-template-columns:22px 1fr;gap:8px 14px;display:grid}.dateTile strong{color:#111;grid-column:2;font-size:26px}.dateTile span{font-size:13px;font-weight:800}.kpi svg{width:32px;height:32px}.kpi .yellow{color:#f8aa00}.kpi .green{color:var(--green)}.kpi .red{color:var(--red)}.kpi .blue{color:var(--blue)}.kpi span{color:#64748b;font-size:11px;font-weight:950;display:block}.kpi strong{color:#111;margin:2px 0;font-size:28px;display:block}.kpi small{color:#64748b;font-weight:700;display:block}.quickBtn{background:var(--yellow);color:#111;border:0;border-radius:6px;place-self:center;align-items:center;gap:9px;padding:16px 20px;font-weight:950;display:flex}.dashboard{grid-template-columns:1.18fr 1.35fr .58fr;gap:18px;margin:0 24px 92px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 6px 22px #1118270e}.panelHead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:42px;padding:12px 16px;display:flex}.panelHead h3{color:#111;margin:0;font-size:14px;font-weight:950}.presencePanel .panelHead{color:#fff;background:#060707}.presencePanel .panelHead h3{color:#fff}.presencePanel{grid-column:1}.schedulePanel{grid-column:2}.tasksPanel{grid-column:3}.incidentsPanel{grid-column:1}.mapPanel{grid-column:2}.vacationsPanel{grid-column:3}.cleanTable{border-collapse:collapse;width:100%;font-size:13px}.cleanTable th{text-align:left;color:#728096;text-transform:uppercase;letter-spacing:.04em;background:#fbfcfe;font-size:11px;font-weight:950}.cleanTable td,.cleanTable th{border-bottom:1px solid #edf0f5;padding:12px 14px}.person{align-items:center;gap:10px;display:flex}.face{color:#52311f;background:linear-gradient(135deg,#e7d1c1,#dba786);border-radius:50%;place-items:center;width:28px;height:28px;font-size:10px;font-weight:950;display:grid}.person b{font-size:13px;display:block}.person small{color:#667085;font-size:11px;display:block}.status{font-size:12px;font-weight:850}.status.ok{color:#16a35c}.status.warn{color:#f59e0b}.status.bad{color:#d02d40}.panel>a,.panel>.panelFoot{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.week{padding:0 12px 12px}.weekControls{grid-template-columns:34px 34px 56px 1fr auto auto auto;align-items:center;gap:8px;padding:12px 0;display:grid}.weekControls button,.panelHead select{background:#fafcff;border:1px solid #dfe5ee;border-radius:5px;padding:8px 10px;font-size:12px;font-weight:800}.weekControls svg{width:14px}.weekControls b{background:#fff;border:1px solid #dfe5ee;border-radius:5px;justify-self:start;padding:9px 18px}.weekGrid{grid-template-columns:130px repeat(7,1fr);gap:4px;display:grid}.weekHeader{color:#64748b;text-align:center;background:#fafcff;border:1px solid #edf0f5;padding:8px;font-size:11px;font-weight:950}.employeeCell{border-bottom:1px solid #edf0f5;padding:10px;font-size:13px;font-weight:800}.shift{color:#1661a8;text-align:center;background:#eef7ff;border:1px solid #cfe1f7;border-radius:5px;padding:8px 4px;font-size:12px;font-weight:800}.shift.free{color:#9aa3af;background:#fafafa;border-color:#edf0f5}.shift.holiday{color:#af6a00;background:#fff4d9;border-color:#ffd891}.shift.medical{color:#c02d3e;background:#ffe9ec;border-color:#ffd0d5}.task{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:20px 22px;display:flex}.task svg{width:28px;height:28px}.task svg.orange{color:#f59e0b}.task svg.blue{color:#0b75ff}.task svg.red{color:#d02d40}.task b{font-size:14px;display:block}.task span{color:#d02d40;margin-top:4px;font-size:12px;font-weight:800;display:block}.dotWarn{color:#f59e0b}.mapBox{background:linear-gradient(150deg,#e9f4fb,#d9ecf8 48%,#f8fbff);height:230px;margin:0;position:relative;overflow:hidden}.mapBox:before{content:"";clip-path:polygon(44% 8%,65% 18%,76% 38%,62% 58%,67% 79%,45% 92%,28% 74%,19% 50%,27% 27%);filter:blur(.3px);background:#ffffff6b;position:absolute;inset:18px 80px}.pin{background:#fff;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;position:absolute;box-shadow:0 8px 22px #0000001f}.pin:before{content:"";background:#1fb66b;border-radius:50%;width:12px;height:12px;margin-right:5px;display:inline-block}.madrid{color:#fff;background:#111;top:25%;left:43%}.bilbao{top:9%;right:29%}.bcn{top:46%;right:14%}.valencia{bottom:15%;right:25%}.sevilla{bottom:12%;left:25%}.miniList>div{border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1fr auto;align-items:center;gap:10px;padding:14px 16px;font-size:13px;display:grid}.miniList em{border-radius:5px;padding:5px 8px;font-size:12px;font-style:normal;font-weight:850}.miniList em.approved{color:#169456;background:#e7f8ee}.miniList em.pending{color:#b46c00;background:#fff4d9}.quickBar{color:#fff;z-index:30;background:#050607;border-radius:5px;grid-template-columns:repeat(7,auto) 1fr auto;align-items:center;display:grid;position:fixed;bottom:18px;left:24px;right:24px;box-shadow:0 12px 34px #00000047}.quickBar button{color:#fff;background:0 0;border:0;border-right:1px solid #ffffff1f;align-items:center;gap:9px;padding:20px 18px;font-weight:850;display:flex}.quickBar svg{width:18px}.quickBar div{justify-self:end;margin-right:24px}.quickBar div span{color:#8a94a6;font-size:11px;font-weight:950;display:block}.quickBar div b{font-size:12px}.singlePage{margin:0 24px 92px}.cards3{grid-template-columns:repeat(3,1fr);gap:16px;padding:16px;display:grid}.commCard{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;padding:16px}.commCard p{color:#667085}.reportGrid{grid-template-columns:repeat(4,1fr);gap:16px;padding:18px;display:grid}.report{border:1px solid var(--line);text-align:left;background:#fbfcfe;border-radius:10px;gap:8px;padding:24px;display:grid}.report svg{color:#0b75ff}.report span{color:#667085}.empty{text-align:center;color:#667085;border:1px dashed #cbd5e1;border-radius:8px;margin:16px;padding:18px}.blackBtn{color:#fff;background:#060707;border:0;border-radius:5px;align-items:center;gap:8px;padding:10px 14px;font-weight:850;display:flex}.blueBtn{color:#fff;background:linear-gradient(135deg,#1687ff,#66dcff);border:0;border-radius:10px;padding:13px 16px;font-weight:950}.loginPage{background:radial-gradient(circle at 100% 0,#173e72,#060c16 55%);place-items:center;min-height:100vh;display:grid}.loginCard{color:#fff;background:#0b1524;border:1px solid #ffffff1f;border-radius:22px;width:min(460px,100% - 32px);padding:34px;box-shadow:0 30px 80px #0006}.logoMark{background:#4dc9ff;border-radius:16px;place-items:center;width:62px;height:62px;font-weight:950;display:grid}.loginCard h1{margin:22px 0 8px;font-size:34px}.loginCard p,.loginCard small{color:#9dafc6;line-height:1.5}.loginCard label{color:#bdc8d9;gap:8px;margin-top:12px;font-size:13px;display:grid}.loginCard input,.modal input,.modal select,.modal textarea{color:#fff;background:#0e1c31;border:1px solid #223754;border-radius:12px;width:100%;padding:12px}.loginCard .blueBtn{width:100%;margin-top:12px}.errorBox{color:#ffd0d6;background:#3a1521;border:1px solid #7f253c;border-radius:10px;margin-top:12px;padding:10px 12px}.modal{z-index:50;background:#0f172a94;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal section{background:#fff;border-radius:14px;width:min(900px,100%);max-height:92vh;padding:22px;overflow:auto;box-shadow:0 30px 80px #00000047}.modalHead{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modalHead h2{margin:0}.modalHead button{background:#f1f5f9;border:0;border-radius:8px;padding:4px 12px;font-size:28px;line-height:1}.modalGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modalGrid label,.stack{gap:8px;display:grid}.modalGrid label{color:#475569;font-size:13px;font-weight:750}.modalGrid .check{align-items:center;display:flex}.modalGrid .check input{width:auto}.wide{grid-column:1/-1}.stack textarea{min-height:150px}.quickGrid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.quickGrid button{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;align-items:center;gap:10px;padding:18px;font-weight:850;display:flex}.toast{color:#fff;z-index:60;background:#101827;border-radius:8px;padding:14px 18px;font-weight:850;position:fixed;bottom:92px;right:24px}@media (width<=1250px){.topbar{grid-template-columns:1fr}.topbar nav{justify-content:flex-start;overflow:auto}.kpiStrip,.dashboard{grid-template-columns:1fr}.presencePanel,.schedulePanel,.tasksPanel,.incidentsPanel,.mapPanel,.vacationsPanel{grid-column:auto}.quickBar{grid-template-columns:repeat(2,1fr);margin:20px 24px;position:static}.quickBar div{display:none}.cards3,.reportGrid,.quickGrid,.modalGrid{grid-template-columns:1fr}}
