:root{--ink:#1f2d3d;--muted:#6b7785;--line:#e8edf2;--surface:#fff;--canvas:#f5f7fa;--brand:#315fce;--brand-soft:#edf2ff}
body{background:var(--canvas);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.brand{font-size:1.55rem;font-weight:750;letter-spacing:-.06em;color:var(--ink);text-decoration:none}.brand span{color:var(--brand)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}
.app-sidebar .nav-link,.offcanvas .nav-link{color:#536171;border-radius:8px;padding:11px 13px;font-weight:550}.app-sidebar .nav-link:hover,.offcanvas .nav-link:hover{background:var(--brand-soft);color:var(--brand)}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}.app-main{margin-left:250px;min-height:100vh}.page-content{max-width:1440px;margin:0 auto;padding:42px}
.mobile-header{display:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-heading h1{font-size:2rem;letter-spacing:-.04em;font-weight:700;margin:0}.eyebrow{font-size:.72rem;letter-spacing:.13em;color:var(--muted);font-weight:700;margin-bottom:8px}
.card{border:1px solid var(--line);border-radius:13px;box-shadow:0 2px 8px rgba(22,40,60,.025);overflow:hidden}.card-header{background:#fff;border-bottom:1px solid var(--line);padding:16px 20px}.card-footer{background:#fff;border-top:1px solid var(--line)}
.status-card{background:linear-gradient(135deg,#fff 65%,#f2f5ff)}.status-pill{display:inline-flex;padding:6px 11px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:.82rem;font-weight:650}.progress{height:8px;background:#e8edf5}.progress-bar{background:var(--brand)}
.action-grid{display:flex;gap:12px;flex-wrap:wrap}.action-grid form{flex:1;min-width:180px}.action-button{width:100%;min-height:56px;font-weight:650}
.metric-card{height:100%;background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;display:flex;flex-direction:column;gap:14px}.metric-card span{font-size:.87rem;color:var(--muted)}.metric-card strong{font-size:2rem;line-height:1}
.user-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.user-card{height:100%}.user-card .card-body{display:flex;flex-direction:column}.user-card-actions{margin-top:auto}
.table{--bs-table-bg:transparent}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:650;white-space:nowrap;padding:14px 16px;border-bottom-color:var(--line)}.table td{padding:14px 16px}
.calendar-table{min-width:max-content}.calendar-table .calendar-date-column{position:sticky;left:0;z-index:1;background:#fff;min-width:100px}.calendar-table thead .calendar-date-column{z-index:2}.calendar-table .calendar-employee-column{min-width:150px;max-width:220px}
.calendar-table .calendar-date-column.table-warning{background:#fff3cd}
.calendar-table .calendar-hours-cell{min-width:120px}.calendar-hours-input{min-width:0;padding:4px 2px;text-align:center}.calendar-hours-reset{padding:3px 6px}
.bulk-calendar{max-width:560px}.bulk-calendar-weekdays,.bulk-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(36px,1fr));gap:5px}
.bulk-calendar-weekdays{margin-bottom:5px;text-align:center;font-size:.78rem;font-weight:650;color:var(--muted)}
.bulk-calendar-day{position:relative;min-height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer;font-weight:600}
.bulk-calendar-day input{position:absolute;top:5px;left:5px;margin:0}
.bulk-calendar-day.is-selected{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.bulk-calendar-day.calendar-holiday{background:#fff3cd}
.bulk-calendar-day.calendar-holiday.is-selected{background:#fce6a5;border-color:var(--brand)}
.bulk-calendar-day-empty{min-height:46px}
.year-schedule-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.year-schedule-month{min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px}
.year-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.year-schedule-weekday{text-align:center;font-size:.68rem;font-weight:650;color:var(--muted)}
.year-schedule-day{min-width:0;min-height:38px;padding:3px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:5px;font-size:.7rem;line-height:1.1}
.year-schedule-day strong{font-size:.62rem;font-weight:650;white-space:nowrap}
.year-schedule-day-empty{border-color:transparent;background:transparent}
.year-schedule-day-holiday{background:#fff3cd}
.year-bulk-calendar-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.year-bulk-calendar-month{min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px}
.year-bulk-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.year-bulk-weekday{text-align:center;font-size:.68rem;font-weight:650;color:var(--muted)}
.year-bulk-day{position:relative;min-width:0;min-height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:.72rem;font-weight:600;cursor:pointer}
.year-bulk-day input{position:absolute;top:3px;left:3px;margin:0;width:12px;height:12px}
.year-bulk-day.is-selected{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.year-bulk-day-holiday{background:#fff3cd}
.year-bulk-day-holiday.is-selected{background:#fce6a5;border-color:var(--brand)}
.year-bulk-day-empty{min-height:34px}
@media(max-width:991.98px){.year-schedule-months{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.year-bulk-calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.year-schedule-months,.year-bulk-calendar-months{grid-template-columns:1fr}}
.month-overview-table{table-layout:fixed;min-width:980px}.month-overview-table th{text-align:center;text-transform:none}.month-overview-cell{height:150px;vertical-align:top!important}.month-overview-outside{background:#f5f7fa!important}.month-overview-date{display:flex;justify-content:space-between;align-items:center;font-weight:700}.month-overview-today-date{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:var(--brand);color:#fff}.month-overview-employees{padding-left:18px;margin:10px 0 0;font-size:.85rem}
.form-card{padding:25px}.narrow-content{max-width:850px;margin-left:0}.field-error{color:#b42318;font-size:.85rem;margin-top:5px}.profile-list{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin:0}.profile-list dt{color:var(--muted);font-weight:500}.profile-list dd{margin:0;font-weight:600}.back-link{color:var(--brand);text-decoration:none}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at top right,#e9eeff,transparent 55%),var(--canvas)}.login-card{width:min(100%,440px);background:white;padding:38px;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 60px rgba(31,45,61,.08)}
.terminal-page{min-height:100vh;background:radial-gradient(ellipse at top right,#e9eeff,transparent 55%),var(--canvas);padding:24px}.terminal-login-layout{width:min(100%,760px);margin:7vh auto 0}.terminal-login{width:min(100%,420px);margin:0 auto 24px;background:#fff;padding:36px;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 60px rgba(31,45,61,.08)}.pin-input{text-align:center;font-size:2rem;letter-spacing:.7em;padding-left:calc(.7em + 1rem);min-height:68px}.terminal-button{width:100%;min-height:68px;font-size:1.15rem;font-weight:700;border-radius:12px}.terminal-secondary-link{display:block;text-align:center;margin-top:24px;color:var(--muted);font-size:.9rem}.terminal-dashboard{max-width:720px;margin:0 auto}.terminal-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}.terminal-welcome{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:20px}.terminal-welcome h1{font-size:1.8rem;font-weight:700;letter-spacing:-.04em;margin:0}.terminal-status-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(24px,5vw,42px);box-shadow:0 8px 30px rgba(22,40,60,.05)}.terminal-time{font-size:clamp(3.4rem,14vw,5.5rem);font-weight:750;letter-spacing:-.06em;line-height:1.1;margin-top:18px}.terminal-stat-row{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);color:var(--muted)}.terminal-stat-row strong{color:var(--ink)}.terminal-actions{display:grid;gap:12px;margin-top:28px}.terminal-footer{text-align:center;color:var(--muted);font-size:.85rem;margin:18px 0}
@media(max-width:991.98px){.app-sidebar{display:none}.app-main{margin-left:0}.mobile-header{height:64px;display:flex;position:sticky;top:0;z-index:9;background:#fff;border-bottom:1px solid var(--line);padding:0 18px;align-items:center;justify-content:space-between}.page-content{padding:28px 18px}.page-heading{align-items:flex-start;flex-direction:column}.narrow-content{max-width:none}}
@media(max-width:575.98px){.page-content{padding:22px 14px}.page-heading h1{font-size:1.7rem}.page-heading>.btn{width:100%}.login-card{padding:28px 22px}.action-grid{display:grid;grid-template-columns:1fr}.action-grid form{min-width:0}.table th,.table td{padding:12px}.profile-list{grid-template-columns:1fr;gap:5px}.profile-list dd{margin-bottom:12px}}
@media(max-width:575.98px){.terminal-page{padding:14px}.terminal-login{margin-top:5vh;padding:28px 22px}.terminal-welcome{align-items:flex-start;flex-direction:column}.terminal-topbar{margin-bottom:28px}}
