*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:var(--accent)}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}h1,h2,h3{line-height:1.25;margin:0;color:var(--heading);font-weight:800}h2{font-size:28px}h3{font-size:20px}p{margin:var(--s2) 0 var(--s4)}.wrap{width:min(1080px,100%);margin-inline:auto;padding-inline:var(--s6)}.top{position:sticky;inset-block-start:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border)}.top-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;color:var(--heading);line-height:1.1;font-size:20px}.brand b{font-weight:900}.brand small{display:block;letter-spacing:.13em;font-size:9px;font-weight:800;margin-top:var(--s2)}.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);font-size:32px;font-weight:900}.header-actions{display:flex;align-items:center;gap:var(--s2)}.prototype{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--muted);padding:var(--s1) var(--s2);border:1px solid var(--border);border-radius:var(--pill)}.hero{background:linear-gradient(125deg,var(--hero-bg),var(--hero-end));color:var(--hero-text)}.hero .wrap{padding-block:var(--s8) var(--s6)}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:var(--hero-muted)}.hero h1{font-size:clamp(28px,5vw,42px);color:var(--hero-text);margin-block:var(--s3) var(--s2)}.hero p{color:var(--hero-muted);margin-bottom:var(--s6)}.hero-foot{border-top:1px solid var(--art-line);padding-top:var(--s4);display:flex;justify-content:space-between;gap:var(--s4);color:var(--hero-muted);font-size:12px}.content{padding-block:var(--s8)}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s16);align-items:start;padding-block:var(--s4)}.intro{padding-top:var(--s5)}.section-label{display:block;font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--accent);margin-bottom:var(--s3)}.intro h2{font-size:38px;line-height:1.18}.intro p{color:var(--muted);max-width:380px;margin-block:var(--s5)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s6);min-width:0}.login-card{padding:var(--s8)}.muted,.hint,.optional{color:var(--muted)}.hint{font-size:12px;line-height:1.5;margin-block:var(--s2) var(--s4)}.optional{font-size:12px;font-weight:400;margin-inline-start:var(--s1)}label{display:block;font-size:14px;font-weight:800;margin-block:var(--s4) var(--s2)}input,select{display:block;width:100%;max-width:100%;min-height:48px;padding:var(--s3) var(--s3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}input::placeholder{color:var(--muted);opacity:1}form>button[type=submit]{margin-top:var(--s6)}button.primary,.secondary,.quiet,.section-nav button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:48px;padding:var(--s3) var(--s5);border:2px solid var(--accent);border-radius:var(--pill);background:var(--surface);color:var(--accent);font-size:14px;font-weight:800;text-decoration:none;line-height:1.35;text-align:center}button.primary{background:var(--accent);color:var(--on-accent)}.quiet{border-color:transparent;padding-inline:var(--s3);background:transparent}.full{width:100%}.login-note{margin-top:var(--s5);margin-bottom:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,main:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:hover:not(:disabled),a.secondary:hover{filter:brightness(.95)}.skip{position:fixed;top:var(--s2);left:var(--s2);z-index:50;background:var(--surface);padding:var(--s3);transform:translateY(-160%)}.skip:focus{transform:none}.location-art{display:grid;place-items:center;gap:var(--s6);padding:var(--s6)}.radius-ring{width:210px;height:210px;border:1px dashed var(--art-line);border-radius:50%;display:grid;place-items:center;background:var(--ring-bg)}.radius-inner{width:140px;height:140px;border:1px solid var(--art-line);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);color:var(--accent)}.radius-inner span{font-size:9px;letter-spacing:.13em;font-weight:800}.radius-inner b{font-size:30px;line-height:1.1}.radius-caption{font-size:10px;letter-spacing:.15em;color:var(--muted);font-weight:800}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-block:var(--s4) var(--s6)}.section-heading p{margin-bottom:0}.badge{display:inline-flex;align-items:center;min-height:32px;padding:var(--s1) var(--s3);border-radius:var(--pill);background:var(--surface-subtle);color:var(--heading);font-size:12px;font-weight:800;white-space:nowrap}.employee-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6);align-items:start}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.spread .section-label{margin:0}.clock{font-size:clamp(40px,6vw,56px);font-weight:800;line-height:1.2;letter-spacing:-.03em;margin-top:var(--s6);font-variant-numeric:tabular-nums;color:var(--heading)}.rule{border-top:1px solid var(--border);margin-block:var(--s6)}.location-result{display:flex;gap:var(--s3);padding:var(--s4);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-block:var(--s5)}.location-result p{font-size:13px;color:var(--muted);margin:var(--s1) 0 0}.location-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--muted);margin-top:var(--s2)}.location-result[data-state=inside] .location-dot{background:var(--ok)}.location-result[data-state=outside] .location-dot{background:var(--error)}#punch{margin-top:var(--s3)}.section-nav{display:flex;gap:var(--s2);flex-wrap:wrap;padding-bottom:var(--s5);border-bottom:1px solid var(--border);margin-bottom:var(--s6)}.section-nav button{border-color:var(--border);font-size:14px;padding-inline:var(--s5)}.section-nav button[aria-current=page]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.admin-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s6);align-items:start}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}#use-location{margin-top:var(--s5)}.workplace-preview{text-align:center}.workplace-preview .section-label{margin-bottom:0}.workplace-preview .location-art{padding-block:var(--s6)}.developer-card{margin-top:var(--s6)}.notice{padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--accent);border-inline-start:4px solid var(--accent);border-radius:var(--radius-sm);margin-bottom:var(--s6);overflow-wrap:anywhere}.notice.error{color:var(--error);border-color:var(--error)}.notice.success{color:var(--ok);border-color:var(--ok)}.warning{background:var(--warning-bg);color:var(--warning-ink);border-color:var(--warning-ink);font-size:14px}.offline{background:var(--warning-bg);color:var(--warning-ink);text-align:center;padding:var(--s3)}.list-row{display:flex;gap:var(--s4);justify-content:space-between;align-items:center;padding-block:var(--s4);border-bottom:1px solid var(--border);overflow-wrap:anywhere}.list-row:last-child{border-bottom:0}.list-row p{margin:var(--s1) 0 0;font-size:13px;color:var(--muted)}.list-row .row-main{min-width:0}.list-row strong{display:block;font-size:15px;line-height:1.5}.list-row .row-meta{text-align:end;flex-shrink:0;font-size:12px;color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:var(--s8) var(--s4);font-size:14px}.empty b{display:block;color:var(--heading);font-size:16px;margin-bottom:var(--s2)}.staff-inactive{opacity:.7}.staff-row{flex-wrap:wrap}.staff-row .row-main{flex:1;min-width:140px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:start;padding:var(--s3);border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-size:11px;letter-spacing:.03em}td small{display:block;color:var(--muted)}.audit-row{display:block}.audit-row p{overflow-wrap:anywhere}.loading{padding:var(--s8);text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:var(--s4);padding-block:var(--s8) var(--s4);margin-top:var(--s8);border-top:1px solid var(--border);font-size:11px;color:var(--muted)}dialog{width:min(440px,calc(100% - 32px));border:1px solid var(--border);border-radius:var(--radius);padding:var(--s6);background:var(--surface);color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:rgb(0 0 0 / .45)}dialog p{margin-block:var(--s5)}.button-row{display:flex;justify-content:flex-end;gap:var(--s3);flex-wrap:wrap}
@media(max-width:720px){.wrap{padding-inline:var(--s4)}.top-inner{min-height:72px}.prototype{display:none}.brand{font-size:18px}.brand-mark{width:38px;height:38px;font-size:28px}.brand small{font-size:8px}.header-actions{gap:2px}.header-actions .quiet{padding-inline:5px;font-size:11px;min-height:36px}.quiet{padding-inline:var(--s2);font-size:12px}.hero .wrap{padding-block:var(--s6)}.hero-foot{flex-wrap:wrap;gap:var(--s2)}.hero-foot>span:last-child{display:none}.content{padding-top:var(--s6)}.login-grid,.employee-grid,.admin-grid{grid-template-columns:1fr;gap:var(--s5)}.intro{padding:0}.intro h2{font-size:28px}.intro h2 br{display:none}.intro>p,.intro .location-art{display:none}.login-card,.card{padding:var(--s5)}.section-heading{align-items:flex-start}.section-heading h2{font-size:26px}.section-heading p{font-size:14px}.section-nav{gap:var(--s2)}.section-nav button{padding-inline:var(--s3);font-size:12px;flex:1}.row-meta{max-width:120px}.field-pair{grid-template-columns:1fr}.radius-ring{width:180px;height:180px}.radius-inner{width:126px;height:126px}footer{flex-direction:column;gap:var(--s2)}.records-mobile .list-row{align-items:flex-start}.clock{font-size:46px}}
@media(max-width:360px){.wrap{padding-inline:var(--s2)}.brand{font-size:15px;gap:var(--s2)}.brand small{display:none}.brand-mark{width:32px;height:32px;font-size:22px}.header-actions .quiet{padding-inline:3px;font-size:10.5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
