:root{--background:#f6f7fb;--foreground:#172033;--muted:#667085;--border:#d8dce7;--primary:#2563eb;--primary-dark:#1d4ed8;--success:#0f9f6e;--danger:#d92d20;--surface:#ffffff}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.page{margin:0 auto;max-width:1180px;padding:32px 20px}.stack{display:grid;gap:16px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px}.button{align-items:center;background:var(--primary);border:0;border-radius:8px;color:white;cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;min-height:44px;padding:0 18px}.button:hover{background:var(--primary-dark)}.button.secondary{background:#eef2ff;color:#1e3a8a}.button.danger{background:var(--danger)}.input{border:1px solid var(--border);border-radius:8px;min-height:44px;padding:0 12px;width:100%}.label{color:#344054;display:grid;font-size:14px;font-weight:700;gap:6px}.muted{color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--border);padding:12px;text-align:left;white-space:nowrap}th{color:#475467;font-size:13px}.table-dense td,.table-dense th{padding:8px 6px;font-size:13px;white-space:normal}@media (max-width:760px){.page{padding:20px 12px}}.notice{background:#ecfdf3;border:1px solid #abefc6;border-radius:8px;color:#067647;padding:10px 12px}.toast{background:#172033;border-radius:10px;color:white;font-weight:700;padding:12px 16px}.admin-shell{display:grid;gap:18px;grid-template-columns:250px minmax(0,1fr);margin:0 auto;max-width:1480px;padding:24px 20px}.admin-sidebar{align-self:start;display:grid;gap:18px;position:sticky;top:20px}.admin-nav{display:grid;gap:8px}.admin-nav button{background:transparent;border:0;border-radius:8px;color:var(--foreground);cursor:pointer;font-weight:800;min-height:44px;padding:0 12px;text-align:left}.admin-nav button.nav-active,.admin-nav button:hover{background:#eef2ff;color:#1e3a8a}.admin-content{min-width:0}.status-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.status-card{border:1px solid var(--border);border-radius:10px;display:grid;gap:8px;padding:14px}.badge,.status-card span{border-radius:999px;display:inline-flex;font-size:13px;font-weight:800;justify-self:start;padding:5px 10px}.status-in{background:#ecfdf3;border-color:#abefc6}.status-out{background:#f8fafc;border-color:#d0d5dd}.badge-in{background:#dcfae6;color:#067647}.badge-out{background:#f2f4f7;color:#344054}.highlight-panel{border-color:#84caff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}@media (max-width:900px){.admin-shell{grid-template-columns:1fr;padding:16px 12px}.admin-sidebar{position:static}.admin-nav{grid-template-columns:repeat(2,1fr)}}.status-break{background:#fffaeb;border-color:#fedf89}.badge-break{background:#fef0c7;color:#b54708}.badge-danger{background:#fee4e2;color:#b42318}.kiosk-header{align-items:center;display:flex;gap:18px;justify-content:space-between}.kiosk-clock{background:#f8fafc;border:1px solid var(--border);border-radius:14px;display:grid;min-width:180px;padding:14px 18px;text-align:right}.kiosk-clock strong{font-size:34px;line-height:1}.kiosk-clock span{color:var(--muted);font-size:14px;margin-top:6px}.kiosk-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.kiosk-grid-section{display:flex;flex:1;flex-direction:column;gap:16px;min-height:0}.kiosk-grid{flex:1;gap:10px;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(3,1fr)}.kiosk-card,.kiosk-grid{display:grid;min-height:0}.kiosk-card{align-items:center;background:white;border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 24px rgba(23,32,51,.05);color:var(--foreground);cursor:pointer;gap:6px;padding:14px 12px;text-align:center}.kiosk-card:hover{border-color:#84caff;box-shadow:0 12px 30px rgba(37,99,235,.12);transform:translateY(-1px)}.kiosk-card strong{font-size:18px}.kiosk-avatar{align-items:center;background:#eef2ff;border-radius:999px;color:#1e3a8a;display:inline-flex;font-size:16px;font-weight:900;height:40px;justify-content:center;justify-self:center;width:40px}.kiosk-action-panel{margin:0 auto;max-width:620px;width:100%}.kiosk-action-panel .input{font-size:28px;min-height:64px;text-align:center}.kiosk-message{border-color:#fedf89;background:#fffaeb}@media (max-width:700px){.kiosk-header{align-items:stretch;display:grid}.kiosk-clock{text-align:left}}.pin-entry{display:grid;gap:14px}.pin-entry-header{align-items:center;display:flex;justify-content:space-between}.pin-dots{display:flex;gap:12px;justify-content:center;padding:8px 0 2px}.pin-dot{background:#eef2ff;border:2px solid #c7d2fe;border-radius:999px;display:block;height:20px;width:20px}.pin-dot-filled{background:var(--primary);border-color:var(--primary)}.pin-keypad{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.pin-key{background:#f8fafc;border:1px solid var(--border);border-radius:14px;color:var(--foreground);cursor:pointer;font-size:28px;font-weight:900;min-height:72px}.pin-key:active{transform:scale(.98)}.pin-key-secondary{background:#eef2ff;color:#1e3a8a;font-size:18px}.button:disabled,.pin-key:disabled{cursor:not-allowed;opacity:.55}.storage-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.storage-grid div{background:#f8fafc;border:1px solid var(--border);border-radius:10px;display:grid;gap:6px;padding:14px}.storage-grid strong{font-size:20px}.attendance-list{display:grid;gap:12px}.attendance-card-row{border:1px solid var(--border);border-radius:14px;display:grid;gap:14px;padding:16px}.attendance-card-top{align-items:start;display:flex;gap:12px;justify-content:space-between}.attendance-metrics{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-metrics div{background:#f8fafc;border-radius:10px;display:grid;gap:4px;padding:12px}.attendance-metrics strong{font-size:18px}.attendance-breakdown{display:flex;flex-wrap:wrap;gap:8px}.attendance-breakdown span{background:#eef2ff;border-radius:999px;color:#1e3a8a;font-weight:700;padding:7px 10px}.break-editor{align-items:end;display:grid;gap:8px;grid-template-columns:130px auto auto;justify-content:start}@media (max-width:820px){.attendance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.break-editor{grid-template-columns:1fr;justify-content:stretch}}@media (max-width:520px){.attendance-card-top{display:grid}.attendance-metrics{grid-template-columns:1fr}.pin-key{min-height:64px}}.login-page{align-items:center;display:flex;justify-content:center;min-height:100dvh}.login-panel{max-width:460px;width:min(100%,460px)}.kiosk-modal-backdrop{align-items:center;background:rgba(23,32,51,.62);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:60}.kiosk-modal{max-height:calc(100dvh - 32px);max-width:460px;overflow-y:auto;position:relative;width:min(100%,460px)}.kiosk-modal-close{align-items:center;background:#f2f4f7;border:1px solid var(--border);border-radius:999px;color:var(--foreground);cursor:pointer;display:inline-flex;font-size:28px;font-weight:800;height:40px;justify-content:center;position:absolute;right:14px;top:14px;width:40px}.kiosk-modal-title{align-items:center;display:flex;gap:12px;padding-right:48px}.pin-entry.compact{gap:10px}.pin-entry.compact .pin-dots{gap:9px;padding:2px 0}.pin-entry.compact .pin-dot{height:16px;width:16px}.pin-entry.compact .pin-keypad{gap:8px}.pin-entry.compact .pin-key{border-radius:12px;font-size:24px;min-height:52px}.pin-entry.compact .pin-key-secondary{font-size:18px}.kiosk-modal-actions{display:grid;gap:10px}.kiosk-modal-actions-reserved{grid-template-rows:repeat(2,58px);min-height:126px}.kiosk-action-placeholder{pointer-events:none;visibility:hidden}.kiosk-modal-actions .button{font-size:22px;min-height:58px}.kiosk-timeout-note{font-size:13px;margin:-4px 0 0;text-align:center}@media (max-height:640px){.kiosk-modal{gap:10px;padding:14px}.pin-entry.compact .pin-key{min-height:46px}.kiosk-modal-actions .button{min-height:50px}}.kiosk-overlay,.kiosk-sleep-screen{align-items:center;background:rgba(23,32,51,.58);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:70}.kiosk-activation-state,.kiosk-sleep-card,.kiosk-success-card{margin:0 auto;max-width:560px;text-align:center;width:min(100%,560px)}.kiosk-sleep-screen{background:#eef2f7}.kiosk-sleep-card{box-shadow:0 24px 70px rgba(23,32,51,.14);padding:36px}.kiosk-wake-button{font-size:21px;justify-self:center;min-height:58px;padding-inline:28px}.kiosk-state-icon{align-items:center;background:#eef2ff;border-radius:999px;color:#1e3a8a;display:inline-flex;font-size:38px;font-weight:900;height:76px;justify-content:center;justify-self:center;width:76px}.kiosk-state-pulse{animation:kiosk-pulse 1.5s ease-in-out infinite}@keyframes kiosk-pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}.kiosk-hidden-camera{height:2px;opacity:.01;pointer-events:none;position:fixed;right:0;top:0;width:2px}.kiosk-pagination{align-items:center;display:flex;gap:10px;justify-content:center}.kiosk-card-list{display:grid;gap:14px}.kiosk-device-card,.kiosk-request-card{border:1px solid var(--border);border-radius:14px;display:grid;gap:16px;padding:18px}.kiosk-request-card{background:#fffcf5;border-color:#fedf89}.kiosk-card-heading{align-items:start;display:flex;gap:16px;justify-content:space-between}.kiosk-device-facts,.kiosk-request-meta{display:grid;gap:6px}.kiosk-request-meta{max-width:52%;text-align:right}.kiosk-device-facts{background:#f8fafc;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));padding:12px}.kiosk-form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.kiosk-schedule-editor{border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;padding:14px}.kiosk-schedule-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:space-between;margin-bottom:4px}.kiosk-schedule-row{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(130px,1fr) 120px auto 120px}.kiosk-day-toggle{align-items:center;display:flex;font-weight:700;gap:8px}.kiosk-time-input{min-height:40px}@media (max-width:700px){.kiosk-card-heading{display:grid}.kiosk-request-meta{max-width:none;text-align:left}.kiosk-schedule-row{grid-template-columns:1fr 1fr}.kiosk-day-toggle{grid-column:1/-1}.kiosk-schedule-row>.muted{display:none}}