:root{--ink:#16243D;--ink-2:#41506B;--ink-3:#8A93A5;--paper:#DDE0D8;--card:#FAF9F5;--line:#C9CBC2;--line-2:#E4E3DC;--stamp:#C33A2E;--stamp-dark:#8A241B;--seal:#1F6F5C;--amber:#B0801F;--mono: ui-monospace,"SF Mono","JetBrains Mono","Roboto Mono",Menlo,Consolas,monospace;--sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);background-image:linear-gradient(var(--line-2) 1px,transparent 1px);background-size:100% 30px;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;padding:calc(18px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(60px + env(safe-area-inset-bottom,0px)) calc(14px + env(safe-area-inset-left,0px))}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--stamp);outline-offset:2px}[hidden]{display:none!important}.wrap{max-width:760px;margin:0 auto}.eyebrow{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px #16243d0f,0 12px 28px -18px #16243d80}.card.punched{padding-top:26px;overflow:hidden}.card.punched:before{content:"";position:absolute;top:0;left:0;right:0;height:20px;background-image:radial-gradient(circle 4px at 14px 10px,var(--paper) 97%,transparent 100%);background-size:28px 20px;border-bottom:1px dashed var(--line)}.auth{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:380px;padding:26px 24px 22px}.brand{font-family:var(--mono);font-weight:700;font-size:17px;letter-spacing:.22em;text-transform:uppercase;display:block}.brand em{font-style:normal;color:var(--stamp)}.brand-sub{margin-top:6px;color:var(--ink-2);font-size:13.5px}.segbar{display:flex;gap:4px;margin:22px 0 18px;background:var(--line-2);padding:4px;border-radius:9px}.segbar button{flex:1;padding:8px 6px;border-radius:6px;font-size:12px;font-weight:600;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.segbar button[aria-selected=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #0000001a}.field{margin-bottom:13px}.field label{display:block;margin-bottom:5px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:var(--mono);font-size:14.5px}.field input:focus,.field select:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #16243d1a}.btn{display:block;width:100%;padding:12px;border-radius:9px;background:var(--ink);color:var(--card);font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 3px #0b1526;transition:transform .06s,box-shadow .06s}.btn:active{transform:translateY(2px);box-shadow:0 1px #0b1526}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn.ghost{background:transparent;color:var(--ink-2);box-shadow:none;border:1px solid var(--line)}.btn.ghost:active{transform:none}.btn.danger{background:var(--stamp);box-shadow:0 3px 0 var(--stamp-dark)}.btn.sm{width:auto;padding:8px 14px;font-size:11px}.msg{margin-top:12px;font-size:13px;color:var(--stamp);min-height:19px}.msg.ok{color:var(--seal)}.fine{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);font-size:11.5px;color:var(--ink-3);line-height:1.55}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.who{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;color:var(--ink-2)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--card);display:grid;place-items:center;font-size:11px;font-weight:700}.linkbtn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}.linkbtn:hover{color:var(--stamp)}.clockcard{padding:0 22px 22px}.statusrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.pill.in{background:var(--seal);color:#fff}.pill.out{background:transparent;color:var(--ink-2);border:1px solid var(--line)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill.in .dot{background:#fff;animation:beat 1.6s infinite}@keyframes beat{0%,to{opacity:1}50%{opacity:.25}}.today{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}.bigtime{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:clamp(3.1rem,15vw,4.6rem);line-height:1;letter-spacing:-.04em;margin:18px 0 2px}.bigtime.live{color:var(--seal)}.bigcap{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.punch{width:100%;margin-top:22px;padding:19px;border-radius:14px;background:var(--seal);color:#fff;box-shadow:0 6px #14523f;font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:transform .07s,box-shadow .07s}.punch:active{transform:translateY(5px);box-shadow:0 1px #14523f}.punch.stop{background:var(--stamp);box-shadow:0 6px 0 var(--stamp-dark)}.punch.stop:active{box-shadow:0 1px 0 var(--stamp-dark)}.punch:disabled{opacity:.6;cursor:default}.ministats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:22px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.ministat{background:var(--card);padding:12px 10px;text-align:center}.ministat .v{font-family:var(--mono);font-size:17px;font-weight:700;letter-spacing:-.02em}.ministat .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:3px}.weekbar{margin-top:16px}.weekbar .track{height:8px;background:var(--line-2);border-radius:99px;overflow:hidden;display:flex}.weekbar .seg-n{background:var(--seal)}.weekbar .seg-e{background:var(--amber)}.weekbar .seg-o{background:var(--stamp)}.weekbar .lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.08em;margin-top:6px}.tabs{display:flex;margin:22px 0 0;border-bottom:1px solid var(--line)}.tabs button{padding:10px 13px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--stamp)}.panel{padding-top:18px}.daygroup{margin-bottom:14px}.dayhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:0 2px 6px;border-bottom:1px dashed var(--line)}.dayhead .d{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em}.dayhead .t{font-family:var(--mono);font-size:12px;color:var(--stamp);font-weight:700}.row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line-2)}.row .time{font-family:var(--mono);font-size:14px;font-weight:600;white-space:nowrap}.row .dur{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin-left:auto;white-space:nowrap}.row .note{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.iconbtn{padding:4px 7px;border-radius:6px;font-size:12px;color:var(--ink-3)}.iconbtn:hover{background:var(--line-2);color:var(--ink)}.row.fresh{animation:stampin .4s cubic-bezier(.2,1.4,.4,1)}@keyframes stampin{0%{opacity:0;transform:scale(1.35) rotate(-1.5deg)}to{opacity:1;transform:none}}.open-tag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--seal);border:1px solid var(--seal);padding:1px 6px;border-radius:4px}.tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:1px 6px;border-radius:4px;text-transform:uppercase;font-weight:700}.tag.ht{background:#f3e3c4;color:#7a5806}.tag.rt{background:#f6d9d6;color:var(--stamp-dark)}.tag.gc{background:#d8e6f5;color:#1f4e79}.tag.ar{background:#e7e5da;color:#6b6450}.empty{padding:34px 18px;text-align:center;color:var(--ink-3);font-size:13.5px}.empty strong{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}.monthbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.monthbar input,.monthbar select{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:var(--mono);font-size:14px}.paycard{padding:20px;margin-bottom:16px}.paytotal{font-family:var(--mono);font-size:clamp(2rem,9vw,2.8rem);font-weight:700;letter-spacing:-.03em;color:var(--stamp);line-height:1}.breakdown{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}.brow{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-family:var(--mono);font-size:12.5px}.brow .lab{color:var(--ink-2)}.brow .qty{color:var(--ink-3);margin-left:auto;margin-right:14px}.brow .amt{font-weight:700;font-variant-numeric:tabular-nums}.brow.sum{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:13.5px}.warn{display:flex;gap:9px;padding:11px 13px;border-radius:9px;background:#fbede4;border:1px solid #E8C9A8;font-size:12.5px;color:#7a4a12;margin-bottom:10px;line-height:1.45}.warn.hard{background:#f8e4e1;border-color:#e4b5ae;color:var(--stamp-dark)}table.days{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px}table.days th{text-align:left;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:7px 5px;border-bottom:1px solid var(--line);font-weight:700}table.days td{padding:8px 5px;border-bottom:1px solid var(--line-2);font-variant-numeric:tabular-nums}table.days td.r,table.days th.r{text-align:right}table.days tr.sp td{background:#fcf6ec}.setcard{padding:20px;margin-bottom:14px}.setcard h3{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;font-weight:700}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hint{font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.45}.radio-row{display:flex;gap:8px;margin-bottom:14px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-2);white-space:nowrap}.chip em{font-style:normal;color:var(--ink-3);margin-left:3px}.chip:hover{border-color:var(--ink);color:var(--ink)}.chip:active{transform:translateY(1px)}.radio-row button{flex:1;padding:10px;border:1px solid var(--line);border-radius:8px;text-align:center;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.radio-row button.on{border-color:var(--ink);background:var(--ink);color:var(--card)}.overlay{position:fixed;inset:0;background:#16243d73;display:grid;place-items:center;z-index:50;padding:calc(18px + env(safe-area-inset-top,0px)) 18px calc(18px + env(safe-area-inset-bottom,0px))}.sheet{width:100%;max-width:430px;padding:22px;max-height:86vh;overflow:auto}.sheet h3{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}.sheet .actions{display:flex;gap:8px;margin-top:18px}.sheet .actions .btn{flex:1}textarea.csv{width:100%;height:190px;font-family:var(--mono);font-size:11px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;resize:vertical}.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translate(-50%,90px);background:var(--ink);color:var(--card);padding:11px 18px;border-radius:999px;font-family:var(--mono);font-size:12px;z-index:60;box-shadow:0 10px 30px -10px #0009;transition:transform .28s cubic-bezier(.2,1.2,.4,1);max-width:90vw;text-align:center}.toast.show{transform:translate(-50%)}.toast.bad{background:var(--stamp)}.boot{min-height:60vh;display:grid;place-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}@media(max-width:460px){.two{grid-template-columns:1fr}.tabs button{padding:10px 8px;font-size:10px}table.days{font-size:11px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
