:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#eef3f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.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}.clock-shell{padding:clamp(1rem,2vw,2rem);background:linear-gradient(135deg,#2d5b821f,#d8a0591f),#eef3f6}.keypad-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand-lockup{display:flex;min-width:0;align-items:center;gap:.85rem}.clock-logo{width:clamp(4.4rem,9vw,6.4rem);flex:0 0 auto;height:auto}h1,h2,p{margin:0}h1{font-size:clamp(1.4rem,3vw,2.35rem);line-height:1;color:#0f2942}h2{color:#0f2942;font-size:1.35rem;line-height:1.1}.now-panel{display:grid;grid-template-columns:auto auto;align-items:center;gap:.2rem .6rem;min-width:12.75rem;border:1px solid rgba(15,41,66,.12);border-radius:.75rem;background:#ffffffdb;padding:.7rem .85rem;box-shadow:0 10px 24px #0f294212}.now-panel svg{grid-row:span 2;color:#2d5b82;font-size:1.35rem}.now-panel span{color:#5a6b7b;font-size:.85rem}.now-panel strong{color:#0f2942;font-size:1.1rem}.clock-grid{display:grid;grid-template-columns:minmax(18rem,.9fr) minmax(20rem,1.1fr);gap:1rem;max-width:1180px;margin:0 auto}.clock-grid.keypad-only{grid-template-columns:minmax(20rem,32rem);justify-content:center}.punch-panel{min-width:0;border:1px solid rgba(15,41,66,.12);border-radius:.85rem;background:#ffffffe6;box-shadow:0 18px 44px #0f294214}.punch-panel{display:grid;align-content:start;gap:1rem;padding:clamp(1rem,2vw,1.4rem)}.loading-state{display:flex;min-height:8rem;align-items:center;justify-content:center;color:#526577;font-weight:800}.lock-state{display:flex;align-items:center;gap:.9rem;border:1px solid #cbd8e3;border-radius:.85rem;background:#f8fafc;padding:1rem}.lock-state>svg{flex:0 0 auto;color:#9f1239;font-size:2rem}.lock-state p{margin-top:.25rem;color:#526577;font-weight:700}.admin-form{display:grid;gap:.85rem}.admin-form.compact{grid-template-columns:minmax(0,1fr);border:1px solid #cbd8e3;border-radius:.85rem;background:#f8fafc;padding:.9rem}.admin-form label{display:grid;gap:.35rem}.admin-form label span{color:#526577;font-size:.82rem;font-weight:800}.admin-form input,.admin-form select{width:100%;min-height:3rem;border:1px solid #cbd8e3;border-radius:.65rem;background:#fff;color:#172033;padding:.65rem .75rem;font-weight:700}.admin-form input:focus,.admin-form select:focus{border-color:#2d5b82;outline:3px solid rgba(45,91,130,.16)}.admin-submit,.lock-toggle{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:999px;color:#fff;font-weight:800}.admin-submit{background:#2d5b82}.admin-submit.danger,.lock-toggle{background:#9f1239}.admin-submit:disabled{background:#94a3b8;opacity:.72}.station-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.station-pill{display:inline-flex;min-width:0;align-items:center;gap:.45rem;border:1px solid rgba(45,91,130,.22);border-radius:999px;background:#edf6ff;color:#0f2942;padding:.55rem .75rem;font-weight:800}.station-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-pill svg{flex:0 0 auto;color:#2d5b82}.lock-toggle{flex:0 0 auto;min-width:5.7rem;padding:0 1rem}.clock-number-display{display:flex;min-height:4rem;align-items:center;justify-content:center;border:1px solid #cbd8e3;border-radius:.85rem;background:#f8fafc;color:#0f2942;font-size:clamp(1.4rem,4vw,2.2rem);font-weight:800;letter-spacing:.14em}.clock-number-display.with-alert{padding:.35rem;letter-spacing:normal}.entry-alerts{display:grid;width:100%;gap:.35rem}.entry-alert{width:100%;border-radius:.6rem;padding:.65rem .8rem;text-align:center;font-size:.95rem;font-weight:700;line-height:1.25}.entry-alert strong,.entry-alert span{display:block}.entry-alert strong{margin-bottom:.15rem;font-size:1.05rem}.entry-alert.success{background:#dcfce7;color:#166534}.entry-alert.error{background:#fff1f2;color:#9f1239}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.keypad button{display:inline-flex;min-height:4.2rem;align-items:center;justify-content:center;border:1px solid #cbd8e3;border-radius:.85rem;background:#fff;color:#172033;font-size:1.45rem;font-weight:800;box-shadow:0 8px 18px #0f29420d;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.keypad button:hover{border-color:#2d5b82;box-shadow:0 12px 24px #2d5b821f;transform:translateY(-1px)}.keypad button.utility{color:#526577;font-size:1rem}.punch-actions{display:grid;grid-template-columns:minmax(0,1fr) 3.4rem minmax(0,1fr);gap:.75rem}.punch-actions button{display:inline-flex;min-height:3.4rem;align-items:center;justify-content:center;gap:.55rem;border:0;border-radius:999px;color:#fff;font-weight:800}.clock-in{background:#166534}.clock-out{background:#9f1239}.override-button{background:#2d5b82;font-size:1.35rem}.override-button.active{background:#b7791f;box-shadow:0 0 0 4px #b7791f33}.punch-actions button:disabled{background:#94a3b8;opacity:.68}.notice{border-radius:.75rem;padding:.95rem 1rem;font-weight:700}.notice strong,.notice span{display:block}.notice strong{margin-bottom:.2rem;font-size:1.1rem}.notice.success{border:1px solid #86efac;background:#dcfce7;color:#166534}.notice.error{border:1px solid #fecdd3;background:#fff1f2;color:#9f1239}@media(max-width:820px){.clock-grid{grid-template-columns:1fr}}@media(max-width:520px){.clock-shell{padding:.75rem}.keypad-header{gap:.5rem}.brand-lockup{gap:.45rem}.clock-logo{width:3rem}h1{font-size:1.15rem;line-height:1.05}.now-panel{min-width:8.25rem;gap:.15rem .45rem;padding:.55rem .6rem}.now-panel svg{font-size:1.1rem}.now-panel span{font-size:.72rem}.now-panel strong{font-size:.95rem}.punch-actions{grid-template-columns:minmax(0,1fr) 3.4rem minmax(0,1fr)}.station-bar{align-items:stretch;flex-direction:column}.lock-toggle{width:100%}}.clock-shell{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;display:grid;place-items:center;overflow:hidden;overscroll-behavior:none;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.clock-grid.keypad-only{width:100%;max-width:34rem;max-height:100%;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.punch-panel{min-height:0;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.app-support{display:grid;gap:.65rem;min-width:0}.app-support:empty{display:none}.install-button{justify-self:center;border:0;background:transparent;color:#2d5b82;min-height:44px;font-size:.85rem;font-weight:700}.install-help{font-size:.9rem;line-height:1.5;color:#526577;background:#f8fafc;border-radius:.65rem;padding:.85rem}.install-help p+p{margin-top:.65rem}.connection-notice,.update-notice{display:flex;align-items:center;gap:.75rem;padding:.85rem;border-radius:.65rem;background:#fff4dc;color:#704800;font-size:.9rem;line-height:1.4}.connection-notice span,.update-notice span{flex:1;min-width:0}.connection-notice button,.update-notice button{min-height:44px;border:1px solid currentColor;border-radius:.5rem;background:transparent;color:inherit;padding:.4rem .65rem;font-weight:700}.update-notice{background:#edf6ff;color:#0f2942}button{touch-action:manipulation}button:focus-visible{outline:3px solid #2d5b82;outline-offset:3px}button:disabled{opacity:.55}.updating-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#eef3f6;color:#0f2942;font-weight:700}@media(hover:none){.keypad button:hover{transform:none}}@media(max-width:520px){.clock-shell{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#fff}.punch-panel{border:0;border-radius:0;box-shadow:none;gap:.75rem;padding:1rem}.keypad-header{flex-wrap:wrap}.now-panel{min-width:0}.station-bar{flex-direction:row;align-items:center}.lock-toggle{width:auto;min-width:4.5rem;padding:0 .65rem}.clock-number-display{font-size:clamp(1.1rem,4.5vw,1.5rem);letter-spacing:.06em}.punch-actions{gap:.4rem;grid-template-columns:minmax(0,1fr) 2.8rem minmax(0,1fr)}.punch-actions button{gap:.3rem;font-size:.9rem}.admin-form input,.admin-form select{font-size:16px}}@media(max-height:740px)and (max-width:520px){.punch-panel{gap:.55rem;padding:.75rem}.keypad{gap:.45rem}.keypad button{min-height:3.4rem}}
