@font-face{font-family:"Exo 2";font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f2e849d3553a0a52-s.2vzl4aenb62ro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Exo 2";font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9cd5979df91f9479-s.3sqhbzucaglgu.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Exo 2";font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/55fc17560cd417ba-s.3b1my8hj3e-z4.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Exo 2";font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/0d6fcb3e6b55e2a0-s.1dcjtips82pxo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Exo 2";font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a626ed2fbe2db1bf-s.p.1rp1-xexo1qj3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Exo 2 Fallback";src:local(Arial);ascent-override:97.88%;descent-override:19.69%;line-gap-override:0.0%;size-adjust:102.06%}.VgsVka_className{font-family:"Exo 2","Exo 2 Fallback";font-style:normal}.VgsVka_variable{--font-exo2:"Exo 2", "Exo 2 Fallback"}
:root{--ink:#111;--muted:#4a4a4a;--paper:#f6f6f6;--card:#fff;--line:#e4e4e4;--black:#111;--black-soft:#2a2a2a;--yellow:#fc0;--yellow-dark:#e6b800;--yellow-wash:#fff6cc;--font-body:var(--font-exo2), sans-serif;--font-display:var(--font-exo2), sans-serif}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);font-family:var(--font-body);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #ffcc00b3}.loading-screen{min-height:100vh;color:var(--black);place-content:center;justify-items:center;gap:14px;font-weight:700;display:grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{background:linear-gradient(160deg, #111 0 42%, var(--yellow) 42% 100%);place-items:center;min-height:100vh;padding:28px;display:grid}.login-card{background:#fff;border:0;border-radius:28px;width:min(460px,100%);padding:48px;box-shadow:0 24px 80px #00000047}.brand-logo{background:#111;width:auto;height:72px;display:block}.login-card .brand-logo{box-sizing:border-box;object-fit:contain;border-radius:16px;width:100%;height:auto;padding:16px 18px}.brand-logo.small{background:#111;border-radius:8px;height:40px;padding:4px 8px}.eyebrow{color:var(--black);letter-spacing:.13em;text-transform:uppercase;margin:22px 0 7px;font-size:12px;font-weight:800}.login-card h1{font:800 42px/1 var(--font-display);letter-spacing:-.04em;margin:0}.login-intro{color:var(--muted);margin:18px 0 30px;line-height:1.6}.login-form{gap:18px;display:grid}.login-form label{gap:8px;font-size:13px;font-weight:700;display:grid}.login-form input{width:100%;height:52px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 15px;font-size:16px}.primary-button,.secondary-button{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:800;display:inline-flex}.primary-button{color:var(--black);background:var(--yellow);border:0;box-shadow:0 7px 16px #0000001f}.primary-button:hover{background:var(--yellow-dark)}.primary-button:disabled{opacity:.55;cursor:default}.secondary-button{color:var(--ink);border:1px solid var(--line);background:#fff}.form-error{color:#9d2d22;background:#fff0ed;border-radius:9px;margin:0;padding:11px 13px;font-size:13px;line-height:1.4}.setup-notice{gap:18px;display:grid}.setup-notice p{color:var(--black);background:var(--yellow-wash);border-radius:12px;margin:0;padding:16px;line-height:1.5}.app-shell{min-height:100vh}.topbar{z-index:20;color:#fff;border-bottom:4px solid var(--yellow);background:#111;justify-content:space-between;align-items:center;height:68px;padding:0 30px;display:flex;position:sticky;top:0}.brand{font:800 21px var(--font-display);letter-spacing:-.03em;align-items:center;gap:11px;display:flex}.topbar-actions{align-items:center;gap:10px;display:flex}.sync-pill{min-height:38px;color:var(--black);background:var(--yellow);border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:800;display:flex}.sync-pill.offline{color:var(--black);background:#fff}.header-button,.icon-button{height:40px;color:var(--black);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:7px;font-weight:750;display:inline-flex}.topbar .header-button,.topbar .icon-button{color:#fff;background:0 0;border-color:#ffffff47}.topbar .sync-button{color:var(--black);background:var(--yellow);border-color:var(--yellow)}.topbar .sync-button:disabled{opacity:.45;cursor:default}.header-button:hover,.icon-button:hover{background:var(--yellow);color:var(--black);border-color:var(--yellow)}.header-button{padding:0 14px}.icon-button{width:40px;padding:0}.dashboard{max-width:1440px;margin:0 auto;padding:34px 34px 60px}.offline-banner{color:var(--black);background:var(--yellow);border:0;border-radius:11px;justify-content:center;align-items:center;gap:9px;margin:-6px 0 24px;padding:12px;font-size:13px;font-weight:700;display:flex}.page-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px;display:flex}.page-heading .eyebrow{margin-top:0}.page-heading h1{font:800 34px/1.1 var(--font-display);letter-spacing:-.04em;margin:0}.subtle{color:var(--muted);margin:9px 0 0;font-size:13px}.race-stats{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:9px;padding:7px;display:flex}.race-stats span{color:var(--black);white-space:nowrap;align-items:center;gap:7px;padding:8px 10px;font-size:12px;font-weight:750;display:flex}.dot{background:#bdbdbd;border-radius:50%;width:8px;height:8px}.dot.racing{background:var(--yellow);box-shadow:0 0 0 4px #ffcc0047}.dot.finished{background:var(--black)}.filters{align-items:center;gap:10px;margin-bottom:24px;display:flex}.search-field,.select-field{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:9px;height:48px;padding:0 14px;display:flex}.search-field{width:min(340px,28vw)}.search-field svg,.select-field svg{color:#7d878d;flex:none}.search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0}.search-field button{width:28px;height:28px;color:var(--black);background:var(--yellow);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.select-field select{min-width:145px;color:var(--ink);appearance:none;background:0 0;border:0;outline:0;font-weight:700}.status-tabs{background:#ececec;border-radius:12px;gap:4px;margin-left:auto;padding:4px;display:flex}.status-tabs button{color:#555;cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:40px;padding:0 14px;font-size:13px;font-weight:750}.status-tabs button.active{color:var(--black);background:var(--yellow);box-shadow:none}.wave-list{gap:18px;display:grid}.wave-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 5px 18px #0000000a}.wave-header{color:#fff;background:#111;border-bottom:0;justify-content:space-between;align-items:center;gap:20px;min-height:82px;padding:17px 20px 17px 22px;display:flex}.wave-title{align-items:center;gap:11px;display:flex}.wave-title h2{font:800 21px var(--font-display);letter-spacing:-.03em;margin:0}.wave-title span{color:var(--black);background:var(--yellow);border:0;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.wave-header p{color:#d0d0d0;align-items:center;gap:5px;margin:6px 0 0;font-size:12px;display:flex}.start-wave-button{min-height:46px;color:var(--black);background:var(--yellow);cursor:pointer;border:0;border-radius:11px;align-items:center;gap:8px;padding:0 17px;font-weight:800;display:flex}.start-wave-button:hover{background:var(--yellow-dark)}.start-wave-button:disabled{opacity:.35;cursor:default}.racers{display:grid}.racer-row{border-bottom:1px solid #eee;grid-template-columns:54px minmax(165px,1fr) 95px 110px auto 118px;align-items:center;gap:16px;min-height:88px;padding:13px 18px 13px 22px;display:grid}.racer-row:last-child{border-bottom:0}.racer-row.racing{background:linear-gradient(90deg,#ffcc0038,#0000 46%)}.racer-row.finished{background:linear-gradient(90deg,#1111110f,#0000 46%)}.bib{width:46px;height:35px;color:var(--black);background:var(--yellow);font:800 14px var(--font-display);border-radius:8px;place-items:center;display:grid}.racer-name{align-items:center;gap:9px;min-width:0;display:flex}.racer-name strong{font:750 15px var(--font-display);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-label{color:#555;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;background:#eee;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:900}.status-label.racing{color:var(--black);background:var(--yellow)}.status-label.finished{color:#fff;background:var(--black)}.time-cell{gap:4px;display:grid}.time-cell span,.finish-time span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:800}.time-cell strong{font-variant-numeric:tabular-nums;font-size:13px}.time-cell.elapsed strong{color:var(--black);font:800 19px var(--font-display);letter-spacing:-.03em}.timing-button{cursor:pointer;border:0;border-radius:12px;justify-content:center;justify-self:end;align-items:center;gap:8px;width:112px;min-height:52px;font-weight:850;display:flex;box-shadow:0 6px 14px #0000001f}.timing-button.start{color:var(--black);background:var(--yellow)}.timing-button.finish{color:var(--yellow);background:var(--black)}.timing-button:active,.start-wave-button:active{transform:scale(.98)}.undo-button{color:#555;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-self:end;align-items:center;gap:5px;min-height:38px;padding:0 10px;font-size:11px;font-weight:750;display:flex}.undo-button:hover{background:var(--yellow-wash)}.finish-time{color:#fff;background:var(--black);border-radius:10px;justify-self:end;gap:4px;width:112px;padding:9px 11px;display:grid}.finish-time strong{font-variant-numeric:tabular-nums;font-size:13px}.empty-state{text-align:center;min-height:310px;color:var(--muted);background:var(--card);border:1px dashed #c8c8c8;border-radius:18px;place-content:center;justify-items:center;padding:30px;display:grid}.empty-state h2{color:var(--ink);font:800 21px var(--font-display);margin:15px 0 5px}.empty-state p{margin:0 0 18px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0000009e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:22px;width:min(550px,100%);padding:34px;position:relative;box-shadow:0 30px 90px #00000040}.close-button{position:absolute;top:20px;right:20px}.modal .eyebrow{margin-top:0}.modal h2{font:800 28px var(--font-display);letter-spacing:-.04em;margin:0}.modal-copy{color:var(--muted);margin:11px 30px 16px 0;font-size:14px;line-height:1.5}.template-link{color:var(--black);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:0;font-size:13px;font-weight:800;display:flex}.drop-zone{width:100%;min-height:140px;color:var(--black);background:var(--yellow-wash);border:2px dashed var(--yellow-dark);cursor:pointer;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:7px;margin:20px 0 16px;display:flex}.drop-zone.has-file{color:var(--black);background:var(--yellow);border-color:var(--black)}.drop-zone span{color:var(--muted);font-size:12px;font-weight:500}.modal-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.import-complete{text-align:center;min-height:300px;color:var(--black);place-content:center;justify-items:center;display:grid}.import-complete h2{color:var(--ink);margin-top:16px}.import-complete p{color:var(--muted)}.toast{z-index:60;color:var(--black);background:var(--yellow);border-radius:999px;padding:12px 18px;font-size:13px;font-weight:800;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0003}.sync-review{width:min(640px,100%)}.conflict-list{gap:10px;max-height:min(420px,48vh);display:grid;overflow:auto}.conflict-card{background:#f7f7f7;border-radius:14px;gap:8px;padding:14px;display:grid}.conflict-card header{justify-content:space-between;align-items:center;gap:12px;display:flex}.conflict-card header span,.conflict-card p span{color:var(--muted);font-size:12px;font-weight:800}.conflict-card p{flex-wrap:wrap;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.choice-tabs{gap:6px;display:flex}.choice-tabs button{min-height:42px;color:var(--black);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;flex:1;font-weight:800}.choice-tabs button.active{background:var(--yellow);border-color:var(--yellow)}.safe-sync-note{color:var(--muted);margin:14px 0 0;font-size:13px;font-weight:700}@media (max-width:1050px){.dashboard{padding-inline:22px}.filters{flex-wrap:wrap}.search-field{width:calc(55% - 5px)}.select-field{width:calc(45% - 5px)}.select-field select{width:100%}.status-tabs{width:100%;margin:2px 0 0}.status-tabs button{flex:1}.racer-row{grid-template-columns:50px minmax(155px,1fr) 86px 105px auto 106px;gap:10px;padding-inline:15px}.timing-button,.finish-time{width:102px}}@media (max-width:760px){.topbar{padding:0 16px}.header-button span,.sync-pill span{display:none}.sync-pill{justify-content:center;width:40px}.dashboard{padding:25px 14px 45px}.page-heading{display:grid}.race-stats{justify-content:space-around;width:100%}.search-field,.select-field{width:100%}.status-tabs{overflow-x:auto}.status-tabs button{flex:none}.wave-header{align-items:flex-start}.start-wave-button{justify-content:center;min-width:110px}.racer-row{grid-template-columns:46px 1fr auto;gap:10px;padding:14px}.time-cell{grid-row:2}.time-cell:first-of-type{grid-column:2}.time-cell.elapsed{grid-column:3}.timing-button,.finish-time{grid-area:1/3}.undo-button{grid-area:2/1;padding:0}.racer-name{flex-direction:column;align-items:flex-start;gap:5px}.modal{padding:28px 22px}}@media (max-width:480px){.login-card{padding:34px 26px}.wave-header{display:grid}.start-wave-button{width:100%}.racer-row{grid-template-columns:42px 1fr 96px}.status-label{display:none}}
