: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}}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.accountGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.accountCard{background:#fff;border:1px solid #e5e7eb;border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex}.accountCard h3{align-items:center;gap:8px;margin:0 0 4px;display:flex}.accountCard label{flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.accountCard input,.userCreateGrid input,.userCreateGrid select{background:#fff;border:1px solid #d1d5db;border-radius:12px;padding:11px}.logoutWide{color:#b91c1c;cursor:pointer;background:#fff;border:1px solid #ef4444;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px;display:flex}.userCreateGrid{grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;margin-bottom:18px;display:grid}.miniBtn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;margin-right:6px;padding:7px 9px}@media (width<=1000px){.accountGrid,.userCreateGrid{grid-template-columns:1fr}}.employeesPage{padding-bottom:92px}.subMenuBar{background:#f6f8fb;border-bottom:1px solid #e5e7eb;gap:10px;padding:14px 22px 6px;display:flex}.subMenuBar button{color:#172033;cursor:pointer;background:#fff;border:1px solid #d8dee9;border-radius:999px;padding:10px 16px;font-weight:800}.subMenuBar button.active{color:#fff;background:#050505;border-color:#050505}.usersPage{padding-top:14px}.panelIntro{color:#475569;margin:0 0 14px;font-weight:600}.navDropdown{align-items:center;height:100%;display:flex;position:relative}.navDropdown>button{align-items:center;gap:6px;display:flex}.navDropdownMenu{color:#111827;z-index:80;background:#fff;border:1px solid #e5e7eb;border-radius:14px;min-width:220px;padding:8px;display:none;position:absolute;top:72px;left:50%;transform:translate(-50%);box-shadow:0 18px 45px #00000038}.navDropdown:hover .navDropdownMenu,.navDropdown:focus-within .navDropdownMenu{gap:4px;display:grid}.topbar nav .navDropdownMenu button{color:#111827;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:flex-start;width:100%;height:auto;padding:12px 14px;font-weight:850}.topbar nav .navDropdownMenu button:hover{background:#f3f4f6}.topbar nav .navDropdownMenu button:after{display:none}.subMenuBar{display:none!important}.adminPage{gap:18px;display:grid}.adminKpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:16px;display:grid}.adminKpi{background:#fbfcfe;border:1px solid #e5e7eb;border-radius:14px;padding:18px}.adminKpi span{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:900;display:block}.adminKpi b{color:#111827;margin-top:4px;font-size:34px;display:block}.adminUserGrid{grid-template-columns:repeat(4,minmax(0,1fr)) auto}@media (width<=1100px){.adminKpis{grid-template-columns:1fr 1fr}.adminUserGrid{grid-template-columns:1fr}}.quickBar{display:none!important}.singlePage,.dashboard{margin-bottom:32px!important}.modal input,.modal select,.modal textarea{color:#0f172a!important;background:#fff!important;border:1px solid #d6dee9!important}.modal input::placeholder,.modal textarea::placeholder{color:#94a3b8!important}.modal section{max-width:880px;border-radius:18px!important}.modalGrid{align-items:end}.emptyMap{place-items:center;min-height:220px;display:grid;background:#f8fbff!important}.usersPage .cleanTable td:last-child{white-space:nowrap}.quickBtn{box-shadow:0 8px 22px #ffb40038}.scheduleHint{color:#667085;margin:0 0 10px;font-size:12px;font-weight:750}.weekControls button.activeControl{color:#fff;background:#111827;border-color:#111827}.clickableEmployee{text-align:left;background:#fff;border:0;gap:3px;width:100%;display:grid}.clickableEmployee:hover,.shift:hover{background:#fffaf0;outline:2px solid #ffb40059}.clickableEmployee small{color:#667085;font-size:11px;font-weight:700;display:block}.scheduleEditor{gap:16px;display:grid}.employeeSummary{border:1px solid var(--line);background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.employeeSummary>span{color:#667085;font-size:13px;font-weight:800}.modeSwitch{background:#f1f5f9;border-radius:12px;gap:10px;padding:6px;display:flex}.modeSwitch button{background:0 0;border:0;border-radius:9px;flex:1;padding:12px;font-weight:950}.modeSwitch button.selected{color:#fff;background:#060707}.weeklyEditor{gap:8px;display:grid}.dayRow{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;grid-template-columns:130px 1fr 130px 130px;align-items:center;gap:10px;padding:10px;display:grid}.dayRow b{font-size:13px}.scheduleEditor select,.scheduleEditor input{color:#111827;background:#fff;border:1px solid #dbe3ee;border-radius:10px;padding:10px}.scheduleEditor input:disabled{color:#94a3b8;background:#eef2f7}.monthlyEditor{gap:12px;display:grid}.monthlyEditor>label{color:#475569;gap:6px;font-weight:850;display:grid}.monthGrid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.monthGrid label{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;gap:5px;padding:8px;display:grid}.monthGrid span{color:#334155;font-size:12px;font-weight:950}.monthGrid select{padding:8px;font-size:12px}.modalActions{justify-content:flex-end;gap:10px;display:flex}.miniBtn{background:#fff;border:1px solid #dbe3ee;border-radius:8px;margin-right:6px;padding:8px 10px;font-weight:850}@media (width<=900px){.dayRow{grid-template-columns:1fr 1fr}.monthGrid{grid-template-columns:repeat(3,1fr)}.employeeSummary,.modalActions{display:grid}.modalActions button{width:100%}}.clickableRow{cursor:pointer}.clickableRow:hover{background:#fff8e1}.presenceTable tr td:first-child{font-weight:800}.employeeFileHeader{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;align-items:center;gap:14px;margin-bottom:12px;padding:14px;display:flex}.employeeFileHeader span{color:#64748b;margin-top:3px;font-size:13px;display:block}.fileTabs{flex-wrap:wrap;gap:8px;margin:12px 0 16px;display:flex}.fileTabs button{background:#fff;border:1px solid #dbe3ee;border-radius:999px;align-items:center;gap:7px;padding:9px 12px;font-weight:850;display:flex}.fileTabs button.selected{color:#fff;background:#081827;border-color:#081827}.fileActionCard{background:#fbfcfe;border:1px solid #e5e7eb;border-radius:14px;gap:8px;max-width:420px;padding:18px;display:grid}.fileActionCard svg{color:#0b75ff}.chatMock{text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:14px;place-items:center;gap:8px;padding:24px;display:grid}.chatMock svg{color:#0b75ff}.cleanTable input,.cleanTable select{background:#fff;border:1px solid #d1d5db;border-radius:8px;min-width:120px;padding:8px}.modalGrid input[readonly]{color:#64748b!important;background:#f1f5f9!important}.vacationForm{gap:14px;display:grid}.vacationForm label{color:#475569;gap:7px;font-size:13px;font-weight:800;display:grid}.vacationForm textarea{resize:vertical;min-height:110px}.datePickerGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inlineLoading{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;margin:10px 0;padding:10px 12px;font-size:13px;font-weight:850}.fileTabs+.errorBox{margin-bottom:12px}@media (width<=720px){.datePickerGrid{grid-template-columns:1fr}}.docToolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.docToolbar label{background:#fff;border:1px solid #dbe5f0;border-radius:14px;align-items:center;gap:8px;min-width:320px;padding:0 12px;display:flex}.docToolbar input{background:0 0;border:0;outline:0;width:100%;padding:13px 4px}.docToolbar select{background:#fff;border:1px solid #dbe5f0;border-radius:14px;padding:13px}.employeeDocGrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.employeeDocCard{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2ebf5;border-radius:18px;flex-direction:column;gap:10px;padding:16px;transition:all .16s;display:flex;box-shadow:0 12px 30px #0f23410d}.employeeDocCard:hover{border-color:#0b376b;transform:translateY(-2px)}.employeeDocCard span{color:#63748b}.employeeDocCard em{color:#0b376b;font-style:normal;font-weight:800}.docModulesWrap{margin-top:4px}.docModulesGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:12px;display:grid}.docModuleCard{background:#fff;border:1px solid #e2ebf5;border-radius:18px;flex-direction:column;gap:12px;min-height:170px;padding:14px;display:flex}.docModuleCard.hasDoc{background:#f6fbff;border-color:#b9d7f5}.docModuleTop{align-items:flex-start;gap:10px;display:flex}.docModuleTop b{display:block}.docModuleTop span{color:#6b7b90;margin-top:3px;font-size:12px;display:block}.docFilename{color:#25354a;word-break:break-word;background:#eef6ff;border-radius:10px;padding:8px;display:block}.docModuleActions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.uploadMini{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.documentsPage .modal section{max-width:980px}
