:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#020b18;--surface:#081a2d;--surface-strong:#0c2845;--line:#86bee438;--text:#f5f8fc;--muted:#8da8bf;--accent:#25c4f4;--accent-dark:#138ac7;--green:#43e0a0;--amber:#ffcb69;--red:#ff7886;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0}body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.auth-screen{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 5%, #0a5689 0, #05182b 34%, var(--bg) 72%);place-items:center;display:grid;position:relative;overflow:hidden}.auth-glow{filter:blur(35px);background:#25c4f414;border-radius:50%;width:380px;height:380px;position:absolute}.auth-card{border:1px solid var(--line);text-align:center;background:#051627f0;border-radius:28px;width:min(440px,100%);padding:28px 24px;position:relative;box-shadow:0 30px 90px #00000073}.auth-logo{object-fit:cover;border-radius:24px;width:92px;height:92px;box-shadow:0 14px 38px #00000057}.auth-card h1{margin:10px 0 8px;font-size:clamp(1.8rem,7vw,2.35rem)}.auth-intro{max-width:34ch;color:var(--muted);margin:0 auto 22px;line-height:1.5}.auth-card form{text-align:left;gap:9px;display:grid}.auth-card label,.punch-card label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.76rem;font-weight:850}.auth-card input,.punch-card select{border:1px solid var(--line);width:100%;min-height:52px;color:var(--text);background:#06182b;border-radius:14px;outline:none;padding:0 14px}.auth-card input:focus,.punch-card select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #25c4f421}.primary-button,.secondary-button,.danger-button{border:0;border-radius:14px;min-height:50px;padding:0 18px;font-weight:900}.primary-button{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:#02101b;margin-top:10px}.primary-button:disabled{opacity:.55}.secondary-button{border:1px solid var(--line);background:var(--surface-strong);color:var(--text)}.danger-button{color:var(--red);background:#ff788614;border:1px solid #ff788661}.text-button{color:var(--accent);background:0 0;border:0;margin:20px 0 8px;font-weight:800}.auth-card small{color:#6f8ba2;line-height:1.4;display:block}.mobile-app{min-height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% -8%, #0a4978 0, var(--bg) 35%)}.topbar{z-index:10;min-height:calc(66px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 10px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#020b18de;border-bottom:1px solid #86bee41f;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-size:1.22rem;font-weight:950;display:flex}.brand img{object-fit:cover;border-radius:12px;width:42px;height:42px}.topbar-actions{align-items:center;gap:8px;display:flex}.network-badge,.icon-button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:#081a2de6;border-radius:999px;font-size:.72rem;font-weight:850}.network-badge{align-items:center;padding:6px 10px;display:inline-flex}.network-badge.is-online{color:var(--green)}.network-badge.is-offline{color:var(--amber)}.icon-button{width:36px;color:var(--text);padding:0;font-size:1.25rem}.app-content{width:min(900px,100%);margin:auto;padding:14px 14px 24px}.welcome-card{border:1px solid var(--line);background:linear-gradient(145deg,#0f2d4afa,#06182bfa);border-radius:22px;justify-content:space-between;align-items:center;gap:18px;padding:20px;display:flex;box-shadow:0 20px 55px #00000042}.eyebrow{color:var(--accent);letter-spacing:.13em;margin:0;font-size:.67rem;font-weight:950}.welcome-card h1,.section-heading h2{margin:5px 0 2px}.welcome-card p:last-child,.section-heading p:last-child{color:var(--muted);margin:0}.welcome-card time{font-size:clamp(1.6rem,7vw,2.7rem);font-weight:950}.message{color:#c7f2ff;text-align:center;background:#25c4f414;border:1px solid #25c4f459;border-radius:13px;padding:12px 14px;font-weight:750}.app-message{margin:12px 0}.message.is-success{color:var(--green);background:#43e0a014;border-color:#43e0a066}.message.is-warning{color:var(--amber);background:#ffcb6914;border-color:#ffcb6966}.message.is-error{color:var(--red);background:#ff788614;border-color:#ff788666}.view{gap:13px;display:grid}.status-card,.punch-card,.summary-grid article,.card-list article,.section-heading,.account-card{border:1px solid var(--line);background:linear-gradient(145deg,#0d2743fa,#07182afa);border-radius:19px}.status-card{gap:4px;padding:18px;display:grid}.status-card span,.summary-grid span,.account-card span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:850}.status-card strong{font-size:1.3rem}.status-card small{color:var(--muted)}.status-card.is-working{border-color:#43e0a080;box-shadow:0 0 26px #43e0a014}.status-card.is-working strong{color:var(--green)}.punch-card{justify-items:center;gap:11px;padding:20px;display:grid}.punch-card label{justify-self:stretch}.punch-card select{font-weight:750}.site-address{min-height:1.2em;color:var(--muted);text-align:center;margin:0}.punch-button{border:5px solid var(--accent);width:min(250px,65vw);height:min(250px,65vw);color:var(--text);background:radial-gradient(circle at 50% 40%,#0d3d64,#031426 72%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:transform .16s,filter .16s;display:flex;box-shadow:0 0 34px #25c4f445,inset 0 0 40px #25c4f417}.punch-button:active{transform:scale(.97)}.punch-button:disabled{opacity:.5;filter:grayscale(.65)}.punch-button.is-out{border-color:var(--green);box-shadow:0 0 34px #43e0a042}.punch-button.is-busy{animation:1.1s infinite pulse}.punch-button span{color:var(--accent);letter-spacing:.14em;font-size:.78rem;font-weight:950}.punch-button.is-out span{color:var(--green)}.punch-button strong{margin-top:5px;font-size:1.8rem}.privacy-note{max-width:38ch;color:var(--muted);text-align:center;margin:0;font-size:.75rem;line-height:1.4}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.summary-grid article{padding:16px}.summary-grid strong{margin-top:5px;font-size:1.18rem;display:block}.section-heading{padding:19px}.card-list{gap:10px;display:grid}.card-list article{padding:17px}.card-list h3{margin:0 0 6px}.card-list p{color:var(--muted);margin:4px 0}.card-list strong{color:var(--accent)}.account-card{gap:12px;padding:18px;display:grid}.account-card>div{border-bottom:1px solid #86bee41a;gap:3px;padding-bottom:11px;display:grid}.supervision-toolbar{border:1px solid var(--line);background:var(--surface);border-radius:19px;gap:9px;padding:16px;display:grid}.supervision-toolbar label,.dialog-card label{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:850}.supervision-toolbar select,.dialog-card input,.dialog-card textarea{border:1px solid var(--line);width:100%;min-height:48px;color:var(--text);background:#06182b;border-radius:12px;padding:10px 12px}.dialog-card textarea{resize:vertical;min-height:100px}.supervision-hours{grid-template-columns:1fr}.supervision-shift{gap:12px;display:grid}.shift-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.shift-heading strong{white-space:nowrap;font-size:1.15rem}.supervision-shift dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;display:grid}.supervision-shift dl div{background:#020b1870;border-radius:11px;min-width:0;padding:9px}.supervision-shift dt{color:var(--muted);text-transform:uppercase;font-size:.67rem;font-weight:800}.supervision-shift dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:.78rem;font-weight:750}.shift-warning{color:var(--amber);font-size:.78rem;font-weight:800}.shift-actions,.dialog-actions{gap:8px;display:flex}.shift-actions button,.dialog-actions button{flex:1;margin:0}.dialog-card{gap:10px;display:grid}.dialog-card h2,.dialog-card p{margin-top:0}.dialog-context{color:var(--muted)}.audit-list{gap:10px;max-height:60dvh;display:grid;overflow:auto}.audit-list article{border:1px solid var(--line);background:#020b1861;border-radius:13px;padding:13px}.audit-list h3{margin:0 0 5px}.audit-list p{margin:4px 0}.audit-values{gap:8px;display:grid}.audit-values pre{color:#c7e8ff;white-space:pre-wrap;background:#020b18;border-radius:9px;max-height:200px;margin:8px 0 0;padding:9px;font-size:.68rem;overflow:auto}.dialog-close{width:100%}.bottom-nav{z-index:20;min-height:calc(68px + env(safe-area-inset-bottom));padding:7px 6px env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#030e1af5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{width:min(150px,20vw);min-width:62px;color:var(--muted);background:0 0;border:0;border-radius:12px;place-items:center;gap:2px;font-weight:850;display:grid}.bottom-nav button span{font-size:1.35rem;line-height:1}.bottom-nav button small{font-size:.67rem}.bottom-nav button.is-active{color:var(--accent);background:#25c4f424}dialog{border:1px solid var(--line);background:var(--surface);width:min(520px,100% - 28px);color:var(--text);border-radius:23px;padding:0}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000bf}.dialog-card{padding:24px}.dialog-card h2{margin:7px 0 14px}.dialog-card p{color:var(--muted);line-height:1.5}.dialog-card .primary-button{width:100%}@keyframes pulse{50%{filter:brightness(1.22);transform:scale(.98)}}@media (width>=720px){.app-content{padding:20px 24px 32px}.view[data-view=punch]{grid-template-columns:minmax(0,1fr) minmax(320px,1.15fr)}.view[data-view=punch] .summary-grid{grid-area:2/1;align-self:start}.view[data-view=punch] .punch-card{grid-area:1/2/span 2}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.view[data-view=punch] .summary-grid,.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.card-list .section-heading{grid-column:1/-1}}@media (width<=380px){.app-content{padding-left:8px;padding-right:8px}.network-badge{display:none}.punch-button{border-width:4px;width:205px;height:205px}.punch-button strong{font-size:1.55rem}.bottom-nav button{min-width:56px}.supervision-shift dl{grid-template-columns:1fr}}.terms-dialog{width:calc(100% - 24px);max-width:680px;max-height:calc(100vh - 24px);padding:0}.terms-dialog-card{gap:12px;display:grid}.terms-content{background:#071326;border:1px solid #34567d;border-radius:12px;max-height:48vh;padding:16px;line-height:1.55;overflow:auto}.terms-content h1,.terms-content h2,.terms-content h3{color:#fff}.terms-content a{color:#5ed4ff}.terms-actions{gap:12px;display:grid}.terms-check{background:#102744;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;display:flex}.terms-check input{flex:none;width:22px;height:22px}.web-install-card{border-top:1px solid var(--line);text-align:center;margin-top:20px;padding-top:18px}.web-install-card h2{margin:7px 0;font-size:1.08rem}.web-install-card>p:not(.eyebrow){color:var(--muted);margin:0;font-size:.86rem;line-height:1.45}.install-action{width:100%;min-height:48px;color:var(--accent);text-align:center;background:#25c4f41c;border:1px solid #25c4f477;border-radius:13px;margin-top:13px;padding:13px 15px;font-weight:900;text-decoration:none;display:block}.install-steps{color:var(--muted);margin:0 0 12px;padding-left:1.4rem;line-height:1.6}.install-steps li{padding-left:.25rem}.notification-settings-card form{gap:12px;display:grid}.notification-help{color:var(--muted);margin:0;line-height:1.45}.notification-recipients{gap:8px;display:grid}.notification-recipient{border:1px solid var(--line);background:#020b1861;border-radius:13px;align-items:center;gap:11px;padding:12px;display:flex}.notification-recipient input{accent-color:var(--accent);width:22px;height:22px}.notification-recipient span{gap:3px;display:grid}.notification-recipient strong{color:var(--text)}.notification-recipient small,.notification-empty{color:var(--muted);margin:0}.notification-settings-card .primary-button{width:100%}
