*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){body{--lightningcss-light: ;--lightningcss-dark:initial}}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-latin-8kRkwJBP.woff2)format("woff2")}.admin{--ink:#141c52;--ink-deep:#0b1030;--surface:#1e2758;--surface-raised:#364069;--edge:#ffffff29;--press:#2c3a7e;--text:#f7f8fc;--muted:#a9b0ce;--accent:#f8ce43;--on-accent:#141c52;--accent-rule:#f8ce434d;--good:#6cbc2c;--pending:#00bbac;--caution:#f7913c;--danger:#ff5c6b;--font:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:13px;--text-sm:15px;--text-md:17px;--text-lg:21px;--text-xl:27px;--text-2xl:34px;--number-sm:34px;--number-hero:92px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--touch:44px;--touch-quick:88px;--touch-gap:8px;--touch-deck:52px;--touch-pad:104px;height:100dvh;padding-top:env(safe-area-inset-top);background:var(--ink);max-width:1400px;color:var(--text);font-family:var(--font);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;grid-template-rows:auto minmax(0,1fr) auto;margin-inline:auto;line-height:1.4;display:grid;position:relative;overflow:hidden}.admin[data-online=false]{box-shadow:inset 0 0 0 3px var(--caution)}.admin *,.admin :before,.admin :after{box-sizing:border-box}.admin :focus-visible{outline:3px solid var(--accent);outline-offset:3px}.admin h1,.admin h2,.admin h3,.admin p,.admin ol,.admin ul{margin:0}.admin ol,.admin ul{padding:0;list-style:none}.admin button,.admin input{font:inherit;color:inherit}.admin .number{font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.admin .label{letter-spacing:.07em;color:var(--accent);font-weight:500}.admin .meta{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted)}.admin .note{font-size:var(--text-sm);color:var(--muted);line-height:1.55}.admin .note b{color:var(--text);font-weight:600}.admin .btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-5);border:1px solid var(--edge);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-weight:600;transition:background 90ms linear;display:inline-flex}.admin .btn:active{background:var(--press)}.admin .btn[disabled]{opacity:.45;cursor:not-allowed}.admin .btn--go{background:var(--accent);color:var(--on-accent);border-color:#0000}.admin .btn--go:active{background:color-mix(in srgb, var(--accent) 88%, black)}.admin .btn--quiet{color:var(--accent);padding:0 var(--space-3);background:0 0;border-color:#0000;font-weight:500}.admin .btn--quiet:active{background:var(--surface-raised)}.admin .btn--danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, transparent);background:0 0}.admin .btn--danger:active{background:color-mix(in srgb, var(--danger) 12%, transparent)}.admin .btn-row{gap:var(--touch-gap);flex-wrap:wrap;display:flex}.admin .quick{min-width:var(--touch-quick);min-height:var(--touch-pad);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);cursor:pointer;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:none;display:flex}.admin .quick:active{background:color-mix(in srgb, var(--accent) 88%, black)}.admin .quick[disabled]{opacity:.45;cursor:not-allowed}.admin .quick .amount{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.admin .quick .unit{font-size:var(--text-sm);opacity:.8;line-height:1}.admin .badge{min-width:22px;color:var(--caution);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:center;border:1px solid;border-radius:999px;padding:1px 7px;font-weight:800;display:inline-block}.admin .field{gap:var(--space-2);flex-direction:column;display:flex}.admin .field>span{font-size:var(--text-sm);color:var(--accent)}.admin .input{width:100%;min-height:var(--touch);padding:0 var(--space-4);border:1px solid var(--edge);border-radius:var(--radius-md);background:var(--ink-deep)}.admin .input::placeholder{color:var(--muted);opacity:.7}.admin .input[aria-invalid=true]{border-color:var(--danger)}.admin .input--number{font-size:var(--text-xl);font-variant-numeric:tabular-nums;text-align:center;font-weight:700}.admin .message{min-height:21px;font-size:var(--text-sm);color:var(--danger)}.admin .card{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--surface);display:grid}.admin .card h3{font-size:var(--text-lg);font-weight:600}.admin .pill{align-items:center;gap:var(--space-2);padding:6px var(--space-3);color:var(--muted);font-size:var(--text-sm);white-space:nowrap;border:1px solid;border-radius:999px;font-weight:600;display:inline-flex}.admin .pill:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.admin .pill--good{color:var(--good)}.admin .pill--pending{color:var(--pending)}.admin .pill--danger{color:var(--danger)}.admin .band{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:var(--text-md);text-align:left;border:1px solid;border-left-width:6px;font-weight:600;display:flex}.admin .band .text{color:var(--text);flex:auto;font-weight:500}.admin .band .count{font-variant-numeric:tabular-nums;font-weight:800}.admin .band--pending{color:var(--pending)}.admin .band--caution{color:var(--caution)}.admin button.band{cursor:pointer;font-family:inherit}.admin button.band:active{background:var(--surface-raised)}.admin .bands{gap:var(--space-2);padding:var(--space-2) var(--space-4);display:grid}.admin .bands:empty{display:none}.admin .header{align-items:center;gap:var(--touch-gap);padding:var(--space-2) var(--space-4);background:var(--surface);border-bottom:1px solid var(--edge);display:flex}.admin .header .who{min-width:0;line-height:1.3;display:grid}.admin .header .meta b{color:var(--text);font-weight:600}.admin .header h1{font-size:var(--text-md);font-weight:600}.admin .header .actions{align-items:center;gap:var(--touch-gap);margin-left:auto;display:flex}.admin .main{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.admin .readout{gap:var(--space-3);padding:var(--space-5) var(--space-4);background:var(--surface);border-bottom:1px solid var(--edge);display:grid;position:relative}.admin .readout .laps{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.admin .readout .laps .number{font-size:var(--number-hero)}.admin .readout .derived{align-items:baseline;gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.admin .readout .derived>span{align-items:baseline;gap:var(--space-2);display:flex}.admin .readout .derived .number{font-size:var(--number-sm)}.admin .readout .derived .label{letter-spacing:0}.admin .heartbeats{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.admin .log{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.admin .log .head{align-items:center;gap:var(--touch-gap);padding:var(--space-2) var(--space-4) var(--space-1);display:flex}.admin .log h2{font-size:var(--text-sm);color:var(--accent);font-weight:600}.admin .log .head .btn{margin-left:auto}.admin .log .rows{-webkit-overflow-scrolling:touch;border-top:1px solid var(--edge);overflow-y:auto}.admin .empty{padding:var(--space-7) var(--space-4);color:var(--muted);font-size:var(--text-sm);text-align:center;line-height:1.6}.admin .log-foot{justify-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4) var(--space-6);border-top:1px solid var(--edge);text-align:center;display:grid}.admin .row{column-gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--edge);background:var(--surface);grid-template-rows:auto auto;grid-template-columns:84px minmax(0,1fr) auto;row-gap:2px;display:grid}.admin .row .amount{font-size:var(--text-xl);font-variant-numeric:tabular-nums;grid-area:1/1/3;align-self:center;font-weight:800}.admin .row .amount--negative{color:var(--danger)}.admin .row .amount--word{font-size:var(--text-sm);color:var(--muted);font-weight:400}.admin .row .what{min-width:0;font-size:var(--text-sm);color:var(--muted);grid-area:1/2}.admin .row .what b{color:var(--text);font-weight:600}.admin .row .meta{grid-area:2/2}.admin .row .when{grid-area:1/3/3;place-self:center end}.admin .row--pending{background:var(--surface-raised)}.admin .row--reset{border-left:4px solid var(--danger)}.admin .deck{gap:var(--space-2);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--edge);display:grid}.admin .deck .tools{gap:var(--touch-gap);flex-wrap:wrap;display:flex}.admin .deck .tools .btn,.admin .deck .tools .input{min-height:var(--touch-deck)}.admin .deck .typed{gap:var(--touch-gap);flex:0 520px;display:flex}.admin .deck .typed .input{flex:96px;min-width:84px}.admin .deck .typed .btn{padding:0 var(--space-4);flex:none}.admin .pads{gap:var(--touch-gap);grid-template-columns:repeat(3,1fr);display:grid}.admin .scrim{z-index:20;padding:var(--space-4);padding-top:calc(var(--space-4) + env(safe-area-inset-top));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));background:#060c0d99;grid-template-rows:minmax(0,1fr);place-items:center;display:grid;position:absolute;inset:0}.admin .sheet{border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--ink);grid-template-rows:auto minmax(0,1fr);width:min(720px,100%);max-height:100%;display:grid;overflow:hidden}.admin .sheet .head{align-items:center;gap:var(--touch-gap);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--edge);display:flex}.admin .sheet h2{font-size:var(--text-lg);font-weight:600}.admin .sheet .head .btn{margin-left:auto}.admin .sheet .body{align-content:start;gap:var(--space-3);padding:var(--space-4);-webkit-overflow-scrolling:touch;display:grid;overflow-y:auto}.admin .sheet .body--flush{gap:0;padding:0}.admin .notice{border-left:6px solid var(--caution)}.admin .notice--danger{border-left-color:var(--danger)}.admin .notice p{font-size:var(--text-sm);color:var(--muted);line-height:1.55}.admin .dialog{z-index:50;padding:var(--space-5);background:#060c0dcc;place-items:center;display:grid;position:fixed;inset:0}.admin .dialog .panel{gap:var(--space-4);width:min(560px,100%);padding:var(--space-6);border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;display:flex}.admin .dialog h2{font-size:var(--text-lg);font-weight:600}.admin .dialog .big{font-size:var(--number-hero);font-variant-numeric:tabular-nums;align-self:center;font-weight:800;line-height:1}.admin .dialog .big--negative{color:var(--danger)}.admin .dialog .centre{text-align:center}.admin .dialog .actions{justify-content:flex-end;gap:var(--touch-gap);flex-wrap:wrap;display:flex}.admin--gate{padding:var(--space-5) var(--space-4);grid-template-rows:none;place-items:center;display:grid;overflow:auto}.admin .gate{gap:var(--space-4);width:min(28rem,100%);display:grid}.admin .gate h1{font-size:var(--text-2xl);font-weight:600}.admin .gate .btn{justify-self:start}.admin .error{font-size:var(--text-sm);color:var(--danger)}.admin .fit-readout{top:var(--space-2);right:var(--space-2);z-index:60;padding:var(--space-2) var(--space-3);color:#fff;font-family:var(--mono);pointer-events:none;white-space:pre;background:#000c;border:1px solid #555;margin:0;font-size:12px;line-height:1.4;position:absolute}@media (width>=900px){.admin .main{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1fr}.admin .readout{border-bottom:none;border-right:1px solid var(--edge);align-content:center}}@media (width<=700px){.admin{--number-hero:52px;--number-sm:22px;--text-2xl:28px}.admin .header{padding:var(--space-2) var(--space-3)}.admin .header h1{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin .header .where{display:none}.admin .header .who{flex:auto}.admin .header .actions{flex:none}.admin .header .actions .btn{padding:0 var(--space-3)}.admin .header .meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin .bands{padding:var(--space-2) var(--space-3)}.admin .band{font-size:var(--text-sm)}.admin .readout{gap:var(--space-2);padding:var(--space-3) var(--space-4)}.admin .readout .derived{gap:var(--space-2) var(--space-5)}.admin .heartbeats{margin-top:0}.admin .pill{padding:4px var(--space-3);font-size:var(--text-xs)}.admin .log .head{padding:var(--space-2) var(--space-3)}.admin .row{column-gap:var(--space-3);padding:var(--space-3);grid-template-columns:56px minmax(0,1fr) auto}.admin .row .amount{font-size:var(--text-lg)}.admin .deck{padding:var(--space-2) var(--space-3);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.admin .scrim{padding:var(--space-2);padding-top:calc(var(--space-2) + env(safe-area-inset-top));padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.admin .dialog{padding:var(--space-3)}.admin .dialog .panel{padding:var(--space-5)}.admin .gate h1{font-size:var(--text-xl)}}@media (width<=900px) and (height<=520px){.admin{--number-hero:36px;--number-sm:20px;--touch-pad:88px}.admin .header{padding:var(--space-2) var(--space-3)}.admin .header h1{font-size:var(--text-sm)}.admin .header h1,.admin .header .meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin .bands,.admin .band{padding:var(--space-1) var(--space-3)}.admin .main{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1fr}.admin .readout{min-height:0;padding:var(--space-3) var(--space-4);gap:var(--space-2);border-bottom:none;border-right:1px solid var(--edge);overflow-y:auto}.admin .heartbeats{margin-top:0}.admin .log .head{padding:var(--space-2) var(--space-3)}.admin .deck{padding:var(--space-2) var(--space-3);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.admin .deck .typed{flex:320px}}@media (prefers-reduced-motion:reduce){.admin .btn{transition:none}}@font-face{font-family:Graduate;font-style:normal;font-weight:400;font-display:block;src:url(/assets/graduate-latin-BjgGaByd.woff2)format("woff2")}.display{--u:min(1vh, .5625vw);--lamp:calc(var(--u) * 2.9);--label-size:calc(var(--u) * 6);--label-width:calc(var(--u) * 27);--row-gap:calc(var(--u) * 4);color:#f2f2f2;background:#000;justify-content:center;align-items:center;min-height:100vh;font-family:Graduate,Rockwell,Courier New,serif;display:flex;overflow:hidden}.display .board{gap:var(--row-gap);flex-direction:column;display:flex}.display .total{align-items:center;gap:calc(var(--u) * 3);display:flex}.display .label{flex:0 0 var(--label-width);font-size:var(--label-size);letter-spacing:.04em;text-transform:uppercase;line-height:1}.display .slot{font-size:calc(var(--lamp) * 9);line-height:1;position:relative}.display .housing,.display .odometer{gap:.111111em;height:1em;display:flex}.display .window,.display .odometer .cell{flex:none;width:.555556em;height:1em;position:relative;overflow:hidden}.display .separator,.display .odometer .sep{background-size:100% 100%;flex:none;width:.222222em;height:1em}.display .value{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display .odometer{position:absolute;top:0;right:0}.display .odometer .strip{will-change:transform;width:100%;position:absolute;top:0;left:0}.display .odometer .strip>span{background-size:100% 100%;height:1em;display:block}.display .slot .probe{visibility:hidden;position:absolute;top:0;right:0}.display .fit-readout{left:calc(50% - var(--u) * 83);top:calc(50% - var(--u) * 23.5);padding:calc(var(--u) * .8) calc(var(--u) * 1);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(var(--u) * 1.2);color:#fff;pointer-events:none;background:#000000bf;border:1px solid #555;margin:0;font-weight:400;line-height:1.4;position:fixed}.display .sign-in{flex-direction:column;gap:1rem;width:min(24rem,90vw);font-family:system-ui,sans-serif;font-size:1.25rem;font-weight:400;display:flex}.display .sign-in h1{margin:0;font-size:1.5rem}.display .sign-in label{flex-direction:column;gap:.25rem;display:flex}.display .sign-in input,.display .sign-in button{font:inherit;padding:.6em .8em}.display .sign-in .error{color:#ffb4b4;margin:0}
