.drawer-future>span:first-of-type{display:none}
.report-status.leave,.report-status.holiday,.report-status.weekly_rest,.report-status.non_working{background:#eef2ff;color:#3730a3}
.report-status.unexcused_absence{background:#fee2e2;color:#991b1b}
:root{--navy:#0b1730;--navy-2:#122443;--blue:#1769e0;--blue-soft:#edf4ff;--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#66758c;--line:#dce4ef;--green:#087f5b;--orange:#c2410c;--red:#b42318;--radius:14px;--shadow:0 8px 28px rgba(15,34,66,.07)}
.work-location-map{width:100%;min-height:340px;border:1px solid var(--line);border-radius:12px;background:#eef2f7}.inline-form{display:inline}.link-button{border:0;background:none;color:var(--blue);padding:.25rem;cursor:pointer;text-decoration:underline}
.mobile-prerequisite-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem;margin:1rem 0}.mobile-prerequisite-card{padding:.75rem;border-radius:10px;font-size:.9rem;font-weight:700}.mobile-prerequisite-card.is-ready{background:#ecfdf3;color:#166534;border:1px solid #a7f3d0}.mobile-prerequisite-card.is-warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.mobile-security-indicator{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem}.mobile-security-indicator span{border:1px solid var(--line);border-radius:999px;background:#f7f9fc;color:#475569;font-size:.82rem;font-weight:700;padding:.42rem .7rem}.mobile-security-indicator .is-success{background:#ecfdf3;border-color:#a7f3d0;color:#166534}.mobile-security-indicator .is-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
*{box-sizing:border-box}
html{min-width:320px;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--blue)}
button,input,select,textarea{font:inherit}

.site-header{position:sticky;top:0;z-index:50;background:var(--navy);color:#fff;box-shadow:0 3px 14px rgba(4,12,27,.18)}
.header-top{max-width:1480px;height:72px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;min-width:260px}
.brand-mark{width:42px;height:42px;border-radius:10px;background:var(--blue);display:grid;place-items:center;font-size:1.35rem;font-weight:900;flex:0 0 auto}
.brand-copy{display:flex;flex-direction:column;justify-content:center;line-height:1.15}
.brand-copy strong{font-size:1.08rem;letter-spacing:.1em}
.brand-copy small{margin-top:5px;color:#aebbd0;font-size:.72rem;letter-spacing:.02em}
.account-area{display:flex;align-items:center;gap:14px;margin-left:auto}.account-area form{margin:0}.account-name{font-size:.88rem;color:#dbe5f5}
.logout-button,.header-login{border:1px solid #415370;border-radius:9px;background:transparent;color:#fff;text-decoration:none;padding:8px 13px;cursor:pointer}
.desktop-nav{min-height:48px;border-top:1px solid #243654;display:flex;align-items:stretch;justify-content:center;gap:2px;padding:0 20px}
.desktop-nav>a,.nav-disabled{display:flex;align-items:center;gap:5px;padding:0 12px;white-space:nowrap;font-size:.86rem;text-decoration:none;color:#d8e2f1;border-bottom:3px solid transparent}
.desktop-nav>a:hover{background:var(--navy-2);color:#fff;border-bottom-color:var(--blue)}
.nav-disabled{color:#7586a1;cursor:not-allowed}.nav-disabled small{font-size:.58rem;border:1px solid #41516a;border-radius:999px;padding:1px 5px;text-transform:uppercase}
.menu-toggle,.menu-button{display:none}

.page-shell{width:min(1420px,calc(100% - 40px));margin:0 auto;padding:34px 0 56px;min-height:calc(100vh - 120px)}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{margin:2px 0 4px;font-size:clamp(1.75rem,3vw,2.35rem);line-height:1.15}.eyebrow{margin:0;color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.14em}.muted{margin:.25rem 0;color:var(--muted)}
h2{margin:0;font-size:1.08rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:22px}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:28px}.kpi-card{min-height:128px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow)}.kpi-card span{color:var(--muted);font-size:.88rem}.kpi-card strong{font-size:2.15rem;line-height:1;color:var(--navy)}
.planning-section{margin-bottom:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.section-heading>span{color:var(--muted);font-size:.82rem}.section-heading>a{font-size:.84rem;text-decoration:none;font-weight:700}.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.notice-card{background:var(--blue-soft);border:1px solid #cfe0fb;border-left:4px solid var(--blue);border-radius:12px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.notice-card span{color:#30435f}.notice-card strong{font-size:1.55rem;color:var(--navy)}
.dashboard-grid,.detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:22px;align-items:start}.dashboard-grid .card{margin:0}.department-metrics{display:grid;gap:2px}.department-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:48px;padding:9px 2px;border-bottom:1px solid var(--line)}.department-row:last-child{border-bottom:0}.count-badge{min-width:36px;border-radius:999px;background:var(--blue-soft);color:var(--blue);padding:4px 10px;text-align:center}
.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:580px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px 11px;vertical-align:middle}th{color:var(--muted);font-size:.73rem;letter-spacing:.04em;text-transform:uppercase;font-weight:750}td{font-size:.91rem}tbody tr:last-child td{border-bottom:0}.empty-cell{text-align:center;color:var(--muted);padding:28px}.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:750}.badge.entry{background:#ddf6ec;color:var(--green)}.badge.exit{background:#fff0e7;color:var(--orange)}
.button,button{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:10px 15px;font-weight:700;text-decoration:none;cursor:pointer}.button.primary,button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.danger{border-color:#efb4af;color:var(--red)}.large{padding:14px 18px;font-size:1.05rem}
.alert{max-width:920px;margin:0 auto 18px;padding:13px 16px;border-radius:10px;background:#e4f5ed;color:#076345}.alert.error{background:#fff0f0;color:var(--red)}
.stack{display:grid;gap:16px;text-align:left}.stack label{display:grid;gap:6px;font-weight:650}.form-control,.stack input,.stack select,.stack textarea,.date-filter input{width:100%;border:1px solid #bcc9da;border-radius:9px;padding:11px 12px;background:#fff}.stack input:focus,.stack select:focus,.stack textarea:focus{outline:3px solid #dceaff;border-color:var(--blue)}.form-card,.narrow,.terminal{max-width:590px;margin:28px auto}.terminal{text-align:center;padding:34px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-option{display:block!important}.action-option input{position:absolute;opacity:0}.action-option span{display:block;padding:14px;border:2px solid var(--line);border-radius:11px;text-align:center}.action-option input:checked+span{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.form-actions{display:flex;justify-content:flex-end;gap:10px}.date-filter{display:flex;gap:8px}.errorlist{color:var(--red);margin:0;padding-left:20px}.empty-state{text-align:center;max-width:650px;margin:60px auto;padding:50px 24px}dl{display:grid;grid-template-columns:135px 1fr;gap:11px}dt{color:var(--muted)}dd{margin:0;font-weight:650}

@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.desktop-nav>a,.nav-disabled{padding:0 8px;font-size:.78rem}.nav-disabled small{display:none}}
@media(max-width:860px){.header-top{height:68px;padding:0 16px}.account-area{display:none}.menu-toggle{position:absolute;opacity:0}.menu-button{display:flex;margin-left:auto;align-items:center;justify-content:center;flex-direction:column;width:46px;height:44px;border:1px solid #415370;border-radius:9px;cursor:pointer}.menu-button span{display:block;width:21px;height:2px;background:#fff;margin:2px 0}.menu-button b{font-size:.58rem;margin-top:3px}.desktop-nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--navy);border-top:1px solid #2b3d5b;padding:10px 16px 18px;max-height:calc(100vh - 68px);overflow:auto}.menu-toggle:checked~.header-top .menu-button{background:var(--blue)}.menu-toggle:checked~.desktop-nav{display:grid}.desktop-nav>a,.nav-disabled{min-height:45px;padding:0 12px;border:0;border-bottom:1px solid #263957;font-size:.9rem}.nav-disabled small{display:inline}.page-shell{width:min(100% - 24px,1420px);padding-top:24px}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.notice-grid{grid-template-columns:1fr}}
@media(max-width:620px){.brand{min-width:0}.brand-mark{width:38px;height:38px}.brand-copy strong{font-size:.95rem}.brand-copy small{font-size:.62rem}.header-login{font-size:.8rem;padding:7px 9px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-card{min-height:108px;padding:15px}.kpi-card strong{font-size:1.8rem}.page-heading{align-items:stretch;flex-direction:column}.card{padding:16px}.notice-card{padding:14px 16px}.actions{grid-template-columns:1fr}.form-actions{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:390px){.brand-copy small{display:none}.kpi-grid{grid-template-columns:1fr 1fr}}

.calendar-tools{display:grid;grid-template-columns:auto auto;gap:14px;align-items:center}.view-switch,.calendar-nav{display:flex;gap:7px}.calendar-nav{justify-content:flex-end}.calendar-filter{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:9px}.calendar-filter select{border:1px solid #bcc9da;border-radius:9px;padding:10px;background:#fff}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:12px;overflow-x:auto;padding-bottom:12px}.calendar-day{min-height:220px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.calendar-day>header{background:var(--navy);color:#fff;padding:11px 13px;display:flex;justify-content:space-between;gap:8px}.calendar-day>header span{font-size:.75rem;color:#b8c5da}.calendar-events{padding:8px;display:grid;gap:7px}.calendar-event{display:grid;text-decoration:none;border-left:3px solid var(--blue);background:var(--blue-soft);border-radius:7px;padding:8px;color:var(--ink)}.calendar-event strong{font-size:.78rem}.calendar-event span{font-size:.82rem}.calendar-event small{font-size:.68rem;color:var(--muted)}.rotation-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:18px}.rotation-grid .card{margin:0}.rotation-steps{padding-left:22px}.rotation-steps li{padding:7px 0;border-bottom:1px solid var(--line)}
@media(max-width:860px){.calendar-tools{grid-template-columns:1fr}.calendar-nav{justify-content:flex-start}.calendar-filter{grid-column:auto;grid-template-columns:1fr 1fr}.rotation-grid{grid-template-columns:1fr}}
@media(max-width:520px){.calendar-filter{grid-template-columns:1fr}.view-switch,.calendar-nav{overflow-x:auto}.view-switch .button,.calendar-nav .button{white-space:nowrap}}
.list-search{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:9px;margin-bottom:18px}.list-search input{border:1px solid #bcc9da;border-radius:9px;padding:10px 12px}.employee-cell{display:flex;align-items:center;gap:10px}.employee-cell img,.employee-cell span{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:.72rem;font-weight:800}.employee-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:22px}.employee-hero h1{margin:2px 0}.employee-photo{width:86px;height:86px;border-radius:18px;overflow:hidden;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:1.6rem;font-weight:900}.employee-photo img{width:100%;height:100%;object-fit:cover}.employee-actions{display:flex;align-items:center;gap:8px}.employee-actions form{margin:0}.qr-card{text-align:center}.qr-card img{display:block;width:min(220px,100%);margin:18px auto}.qr-card .button{display:inline-block}
@media(max-width:700px){.employee-hero{grid-template-columns:auto 1fr}.employee-actions{grid-column:1/-1}.list-search{grid-template-columns:1fr}}
.terminal-alternatives{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}.terminal-alternatives label{display:grid;gap:5px}.terminal-alternatives input{width:100%;border:1px solid #bcc9da;border-radius:9px;padding:11px}.terminal-alternatives>span{padding-bottom:10px;color:var(--muted)}
@media(max-width:600px){.terminal-alternatives{grid-template-columns:1fr}.terminal-alternatives>span{text-align:center;padding:0}}

.kiosk-body{margin:0;background:radial-gradient(circle at top,#18365d 0,#08172c 62%,#050e1c 100%);color:#fff;overflow:hidden}.kiosk-shell{min-height:100vh}.kiosk-terminal{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;position:relative;text-align:center}.kiosk-brand{position:absolute;top:26px;left:30px;display:flex;align-items:center;gap:13px;text-align:left}.kiosk-brand img,.kiosk-brand-fallback{width:54px;height:54px;border-radius:14px;object-fit:contain;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:1.45rem;font-weight:900}.kiosk-brand div{display:grid}.kiosk-brand strong{font-size:1.25rem}.kiosk-brand small{color:#aebdd3;margin-top:2px}.kiosk-waiting{display:grid;justify-items:center;gap:16px}.kiosk-clock{display:grid;gap:4px}.kiosk-clock time{font-size:clamp(4rem,10vw,8rem);font-weight:800;letter-spacing:.04em;line-height:1}.kiosk-clock span{text-transform:capitalize;color:#bdcbe0;font-size:clamp(1rem,2.2vw,1.4rem)}.scan-indicator{width:145px;height:145px;margin:8px}.scan-indicator svg{width:100%;fill:none;stroke:#73a7ff;stroke-width:5;stroke-linecap:round}.scan-line{animation:scanner-line 1.5s ease-in-out infinite;transform-origin:center}.kiosk-waiting h1{font-size:clamp(1.7rem,4vw,3rem);margin:0}.kiosk-waiting p{color:#aebdd3;margin:0;font-size:1.05rem}.reader-form{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:.01}.reader-form input{width:1px;height:1px;border:0;padding:0}.reader-form.debug-visible{position:relative;width:min(520px,90vw);height:auto;clip-path:none;opacity:1;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:22px;overflow:visible}.reader-form.debug-visible label{grid-column:1/-1;color:#dbe7f8;text-align:left}.reader-form.debug-visible input{width:100%;height:auto;padding:12px;border-radius:8px;border:1px solid #88a5cc}.kiosk-admin-link{position:absolute;right:28px;bottom:24px;color:#aebdd3;font-size:.8rem;text-decoration:none}.kiosk-feedback{width:min(720px,92vw);min-height:480px;border-radius:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px;box-shadow:0 30px 80px #0007}.kiosk-feedback.success{background:linear-gradient(145deg,#087a50,#064c37);border:2px solid #44d59d}.kiosk-feedback.error{background:linear-gradient(145deg,#8b2e2a,#531a20);border:2px solid #f08b81}.kiosk-person-photo{width:170px;height:170px;border-radius:50%;overflow:hidden;background:#eaf1fa;color:#72839a;display:grid;place-items:center;border:6px solid #ffffff55}.kiosk-person-photo img{width:100%;height:100%;object-fit:cover}.kiosk-person-photo svg{width:82%;fill:currentColor}.kiosk-result-title{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:900;letter-spacing:.05em;margin:24px 0 8px}.kiosk-feedback h1{font-size:clamp(1.7rem,4vw,3rem);margin:4px 0 15px}.kiosk-feedback time{font-size:2.2rem;font-weight:800}.kiosk-error-icon{width:130px;fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes scanner-line{0%,100%{transform:translateY(-20px);opacity:.4}50%{transform:translateY(70px);opacity:1}}@media(prefers-reduced-motion:reduce){.scan-line{animation:none}}@media(max-width:620px){.kiosk-terminal{padding:18px}.kiosk-brand{top:18px;left:18px}.kiosk-brand img,.kiosk-brand-fallback{width:44px;height:44px}.kiosk-brand strong{font-size:1rem}.kiosk-brand small{font-size:.68rem}.kiosk-clock time{font-size:3.8rem}.scan-indicator{width:110px;height:110px}.kiosk-feedback{min-height:420px;padding:24px}.kiosk-person-photo{width:140px;height:140px}.kiosk-admin-link{right:18px;bottom:16px}}
.mobile-test-panel{position:fixed;z-index:8;left:24px;bottom:20px;width:min(390px,calc(100vw - 48px));display:grid;gap:8px;padding:14px;border:1px solid #74a4e8;border-radius:14px;background:#10294bed;box-shadow:0 15px 45px #0006;text-align:left}.mobile-test-panel strong{color:#fff}.mobile-test-panel small{color:#bfd0e8}.mobile-test-panel span{overflow-wrap:anywhere}.mobile-test-panel select,.mobile-test-panel button{width:100%;min-height:50px;border-radius:10px;padding:10px 12px}.mobile-test-panel select{border:1px solid #9bb3d4;background:#fff;color:#172033;font-size:16px}.mobile-test-panel button{border:0;background:#2b7be8;color:#fff;font-weight:800;cursor:pointer}@media(max-width:620px){.mobile-test-panel{left:12px;bottom:52px;width:calc(100vw - 24px);padding:12px}.kiosk-waiting{transform:translateY(-92px)}.mobile-test-panel button{min-height:54px}}
.kiosk-waiting{width:min(920px,94vw);height:min(780px,calc(100vh - 110px));grid-template-rows:auto minmax(0,1fr);align-content:center;gap:clamp(10px,2vh,22px)}.terminal-state{width:min(760px,92vw);height:clamp(330px,52vh,510px);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #36577f;border-radius:30px;background:#10294bcc;box-shadow:0 24px 70px #0005}.terminal-state-waiting,.terminal-state-processing,.terminal-state-result{width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.6vh,16px);padding:clamp(20px,3.5vw,42px)}.terminal-state-waiting:not([hidden]),.terminal-state-processing:not([hidden]),.terminal-state-result:not([hidden]){display:flex}.terminal-state[data-state="entry_success"]{border-color:#44d59d;background:linear-gradient(145deg,#087a50,#064c37)}.terminal-state[data-state="exit_success"]{border-color:#ff9b55;background:linear-gradient(145deg,#a94818,#6f2d14)}.terminal-state[data-state="warning"]{border-color:#facc15;background:linear-gradient(145deg,#8a5a08,#604006)}.terminal-state[data-state="error"]{border-color:#f87171;background:linear-gradient(145deg,#8b2e2a,#531a20)}.terminal-result-icon{display:grid;place-items:center;width:clamp(68px,8vh,88px);height:clamp(68px,8vh,88px);flex:0 0 auto;border:4px solid #fff;border-radius:50%;font-size:clamp(2.4rem,5vh,3.2rem);font-weight:900}.terminal-state-result>strong{font-size:clamp(1.55rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:.04em}.terminal-state-result h1{margin:0;font-size:clamp(1.45rem,3.2vw,2.5rem);line-height:1.15;overflow-wrap:anywhere}.terminal-state-result p{margin:0;color:#fff;font-size:clamp(1rem,2vw,1.3rem)}.terminal-state-result time{font-size:clamp(1.55rem,3.6vw,2.35rem);font-weight:900}.terminal-state-result small,.terminal-state-waiting small{color:#e8eef7;font-size:clamp(.85rem,1.5vw,1rem)}.terminal-reader-status{position:static;margin:0;color:#dce7f6;font-size:clamp(.95rem,1.8vw,1.15rem);font-weight:750}.terminal-loading{width:82px;height:82px;flex:0 0 auto;border:7px solid #ffffff35;border-top-color:#fff;border-radius:50%;animation:terminal-loading-spin .85s linear infinite}@keyframes terminal-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.terminal-loading{animation:none}}@media(max-width:620px){.kiosk-waiting{height:calc(100vh - 82px);transform:none;gap:8px}.kiosk-clock time{font-size:3.25rem}.terminal-state{height:min(62vh,440px);border-radius:22px}.terminal-state-waiting,.terminal-state-processing,.terminal-state-result{gap:8px;padding:16px}.terminal-state .scan-indicator{width:90px;height:90px}.terminal-result-icon{width:64px;height:64px;font-size:2.3rem}}
.terminal-state-waiting{gap:clamp(6px,1.1vh,12px);padding:clamp(18px,2.8vh,30px) clamp(20px,3.5vw,42px)}.terminal-state-waiting .scan-indicator{width:clamp(96px,15vh,132px);height:clamp(96px,15vh,132px);flex:0 1 auto;margin:0}.terminal-state-waiting h1{max-width:680px;font-size:clamp(1.5rem,3.5vw,2.6rem);line-height:1.15}.terminal-state-waiting .terminal-reader-status{line-height:1.3}.terminal-state-waiting small{display:block;line-height:1.35}
.mobile-attendance-shell{width:min(100%,760px);margin:0 auto;padding-bottom:max(28px,env(safe-area-inset-bottom))}.mobile-attendance-heading{text-align:center;margin:8px 0 20px}.mobile-attendance-heading h1{margin:.2rem 0;font-size:clamp(1.7rem,7vw,2.5rem)}.mobile-live-clock{margin:5px 0;color:var(--muted);font-variant-numeric:tabular-nums}.mobile-status-card{padding:22px;border-radius:18px;background:linear-gradient(135deg,#172033,#263b5f);color:#fff;text-align:center;box-shadow:var(--shadow)}.mobile-status-card.at-work{background:linear-gradient(135deg,#087f5b,#0b9f74)}.mobile-status-card span,.mobile-status-card small{display:block;color:#dce7f6}.mobile-status-card strong{display:block;margin:4px 0;font-size:clamp(1.8rem,9vw,2.8rem)}.mobile-attendance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.mobile-attendance-grid .card{margin:0}.mobile-attendance-grid dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px}.mobile-attendance-grid dt{color:var(--muted)}.mobile-attendance-grid dd{margin:0;text-align:right}.mobile-record-list{list-style:none;margin:0;padding:0}.mobile-record-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.mobile-record-list li:last-child{border-bottom:0}.mobile-record-list time{font-variant-numeric:tabular-nums}.mobile-attendance-action{display:grid;gap:10px;margin-top:18px;text-align:center}.mobile-attendance-button{min-height:76px;width:100%;border:0;border-radius:18px;background:var(--blue);color:#fff;font-size:clamp(1.25rem,6vw,1.65rem);font-weight:850;box-shadow:0 10px 26px #1769e044;touch-action:manipulation}.mobile-attendance-button:disabled{opacity:.65}.mobile-attendance-action small{color:var(--muted)}.mobile-result{margin-top:18px;padding:18px;border-radius:14px;font-weight:700;text-align:center}.mobile-result.success{background:#dcfce7;color:#08633f;border:1px solid #86efac}.mobile-result.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.mobile-attendance-alert{margin-top:18px}@media(max-width:620px){.mobile-attendance-grid{grid-template-columns:1fr}.mobile-attendance-shell{overflow-x:hidden}.mobile-attendance-button{min-height:72px}}
.setup-progress{display:grid;gap:5px;margin:14px 0}.setup-progress progress{width:100%;height:12px;accent-color:var(--blue)}.setup-checklist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:16px 0}.setup-check-item{display:flex;align-items:center;gap:9px;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;font-weight:700}.setup-check-item span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;flex:0 0 auto}.setup-check-item a{display:inline-block;margin-top:4px;font-size:.78rem}.setup-check-item.is-ready{background:#ecfdf3;border-color:#a7f3d0;color:#166534}.setup-check-item.is-ready span{background:#166534;color:#fff}.setup-check-item.is-pending{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.setup-check-item.is-pending span{border:2px solid #f59e0b}.location-capture{display:grid;gap:7px}.location-capture .button{min-height:48px}.mobile-success-card{display:grid;justify-items:center;gap:10px;padding:22px}.mobile-success-check{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#087f5b;color:#fff;font-size:2rem;animation:mobile-success-pop .35s ease-out}.mobile-success-card>strong{font-size:1.25rem}.mobile-success-card dl{width:min(100%,430px);grid-template-columns:1fr auto;margin:3px 0 0;text-align:left}.mobile-success-card dd{text-align:right}.mobile-success-card dt,.mobile-success-card dd{padding:5px 0;border-bottom:1px solid #a7f3d0}@keyframes mobile-success-pop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.mobile-success-check{animation:none}}
@media(max-width:860px){.desktop-nav{padding-bottom:max(18px,env(safe-area-inset-bottom))}.page-shell{padding-bottom:max(56px,env(safe-area-inset-bottom))}.desktop-nav>a,.nav-disabled{min-height:48px}}
@media(max-width:620px){.setup-checklist-grid{grid-template-columns:1fr}.mobile-attendance-shell{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}.mobile-result{padding:16px}.mobile-success-card dl{grid-template-columns:minmax(0,1fr) auto}.form-actions .button,.form-actions button{min-height:48px}}
.card-assignment-panel{width:min(100%,680px);margin:24px auto;text-align:center}.card-assignment-panel .alert{text-align:left}.card-assignment-wait h1,.card-assignment-result h1{margin:.3rem 0}.card-reader-loading{width:88px;height:88px;margin:0 auto 16px;border:7px solid #d9e6f7;border-top-color:var(--blue);border-radius:50%;animation:card-reader-spin 1s linear infinite}.card-captured-icon,.card-result-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 14px;border-radius:50%;background:#dcfce7;color:#087f5b;font-size:2.2rem;font-weight:900}.card-masked-uid{margin:10px 0;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:900;letter-spacing:.12em;color:var(--navy)}.card-assignment-details{margin:24px auto;text-align:left}.card-assignment-details dd{text-align:right}.card-assignment-details .is-expired{color:var(--red)}.card-assignment-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.card-assignment-actions form{margin:0}.card-assignment-result.is-success{border-color:#86efac;background:#f0fdf4}.card-assignment-result.is-error{border-color:#fca5a5;background:#fff5f5}.card-assignment-result.is-error .card-result-icon{background:#fee2e2;color:var(--red)}@keyframes card-reader-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.card-reader-loading{animation:none}}@media(max-width:620px){.card-assignment-panel{margin:12px auto;padding:18px}.card-assignment-details{grid-template-columns:minmax(0,1fr) auto}.card-assignment-actions{display:grid}.card-assignment-actions form,.card-assignment-actions button{width:100%;min-height:52px}}
.card-assignment-reason{text-align:left;margin-bottom:12px}.card-assignment-reason textarea{width:min(100%,460px)}.employee-card-summary{margin-block:18px}.employee-card-summary code{font-size:1rem;letter-spacing:.08em}.employee-card-summary .status-badge.is-active{background:#dcfce7;color:#087f5b}
.report-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;align-items:end}.report-filter-grid label{display:grid;gap:6px;font-weight:700}.report-filter-grid button{min-height:46px}.report-quick-links,.report-export-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.report-export-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.report-export-actions span{color:var(--muted);font-size:.85rem}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.report-summary-grid .kpi-card{min-height:112px}.report-period-label{font-size:1.35rem!important}.report-table-wrap table{min-width:980px}.report-status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:750;white-space:nowrap}.report-status.complete{background:#ddf6ec;color:var(--green)}.report-status.open,.report-status.incomplete{background:#fff0e7;color:var(--orange)}.report-status.missing{background:#edf1f6;color:#536176}@media(max-width:1050px){.report-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.report-filter-card .section-heading{align-items:stretch;flex-direction:column}.report-quick-links,.report-export-actions{display:grid;grid-template-columns:1fr 1fr}.report-quick-links .button,.report-export-actions .button{text-align:center}.report-export-actions span{grid-column:1/-1}.report-filter-grid{grid-template-columns:1fr}.report-summary-grid{grid-template-columns:1fr 1fr;gap:10px}.report-summary-grid .kpi-card{min-height:100px}.report-period-label{font-size:1.05rem!important}}
