:root{
  --ink:#11120f;--paper:#f3f1e9;--card:#fffef8;--muted:#6f7168;--line:#d8d7cd;
  --accent:#dfff00;--accent-ink:#171a00;--danger:#e64436;--bar-height:68px;
  --shadow:0 18px 50px rgba(17,18,15,.09);--radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.38}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.app-bar{position:sticky;top:0;z-index:100;min-height:var(--bar-height);display:grid;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);align-items:center;gap:24px;padding:10px 22px;background:rgba(17,18,15,.96);color:#fff;border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px)}
.brand-mark{display:flex;align-items:center;gap:11px;min-width:0;border:0;background:none;color:inherit;text-align:left;padding:0}
.brand-dot{width:13px;height:13px;flex:0 0 auto;background:var(--accent);box-shadow:0 0 0 5px rgba(223,255,0,.12)}
.brand-copy{display:flex;flex-direction:column;line-height:1.05;min-width:0}.brand-copy b{letter-spacing:.12em;font-size:13px}.brand-copy small{margin-top:5px;color:#aeb0a6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.primary-nav{display:flex;gap:4px;padding:4px;background:#252620;border-radius:12px}.nav-button{border:0;border-radius:9px;background:transparent;color:#aaaca2;padding:9px 17px;font-weight:700}.nav-button:hover{color:#fff}.nav-button.is-active{background:#fff;color:var(--ink)}
.bar-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px}.event-switcher select{max-width:220px;padding:9px 30px 9px 12px;border:1px solid #44463f;border-radius:10px;background:#20211d;color:#fff}.save-status{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#8d8f86}
.storage-warning{position:relative;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px clamp(18px,4vw,64px);background:#fff0b5;border-bottom:1px solid #d5b84b;color:#4b3b00}.storage-warning strong{display:block}.storage-warning p{margin:4px 0 0;font-size:13px}.storage-warning-actions{display:flex;gap:8px;flex:0 0 auto}

.page{display:none;min-height:calc(100vh - var(--bar-height))}.page.is-active{display:block}.workspace-page{padding:46px clamp(22px,4vw,64px) 80px}
body.timer-mode{overflow:hidden;background:#050505}
body.timer-mode .app-bar{position:fixed;inset:0 0 auto;opacity:0;transform:translateY(-12px);transition:opacity .2s ease,transform .2s ease;box-shadow:0 16px 50px rgba(0,0,0,.34)}
body.timer-mode .app-bar:hover,body.timer-mode .app-bar:focus-within{opacity:1;transform:translateY(0)}
body.timer-mode main{min-height:100vh}
.timer-page{position:relative;min-height:100vh;background:#050505;color:#fff;overflow:hidden;isolation:isolate}
.timer-page:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.045),transparent 47%);pointer-events:none}
.timer-stage{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;text-align:center;padding:clamp(70px,10vh,120px) clamp(20px,5vw,80px)}
.timer-display{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:clamp(74px,18vw,310px);font-weight:900;line-height:.82;letter-spacing:-.095em;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 8px 50px rgba(0,0,0,.4)}
.timer-brand{position:absolute;z-index:4;bottom:max(28px,env(safe-area-inset-bottom));max-width:42%;font-size:clamp(14px,2vw,27px);font-weight:900;letter-spacing:.045em;text-transform:uppercase;pointer-events:none}.timer-brand-left{left:max(30px,env(safe-area-inset-left))}.timer-brand-right{right:max(30px,env(safe-area-inset-right));text-align:right}
.timer-control-zone{position:absolute;z-index:5;left:0;bottom:0;width:min(760px,78vw);height:190px;outline:none}
.timer-controls{position:absolute;left:max(30px,env(safe-area-inset-left));bottom:max(76px,calc(env(safe-area-inset-bottom) + 58px));display:flex;flex-wrap:wrap;gap:9px;max-width:calc(100vw - 60px);padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(16,17,14,.9);box-shadow:0 18px 55px rgba(0,0,0,.38);backdrop-filter:blur(18px);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.timer-control-zone:hover .timer-controls,.timer-control-zone:focus-within .timer-controls,.timer-control-zone.is-visible .timer-controls{opacity:1;transform:translateY(0);pointer-events:auto}
#page-timer:fullscreen{display:block;width:100vw;height:100vh;min-height:100vh;background:#050505}
#page-timer:fullscreen .timer-stage{min-height:100vh}
.countdown-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 50%,#171717 0,#050505 56%,#000 100%)}
.countdown-overlay[hidden]{display:none}
#particleCanvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}
.countdown-number{position:relative;z-index:2;font-family:Impact,"Arial Black",sans-serif;font-size:clamp(190px,47vw,680px);font-weight:900;line-height:.78;letter-spacing:-.07em;color:#fff;text-shadow:0 0 45px rgba(255,255,255,.18);will-change:transform,opacity,filter}
.countdown-number.phase-warning{color:#ff9f1c;text-shadow:0 0 38px rgba(255,159,28,.5),0 0 110px rgba(255,106,0,.28)}
.countdown-number.phase-danger{color:#ff4d4d;text-shadow:0 0 45px rgba(255,77,77,.6),0 0 130px rgba(255,0,0,.34)}
.countdown-number.phase-go{font-size:clamp(160px,35vw,520px);letter-spacing:-.035em;color:#58ff74;text-shadow:0 0 48px rgba(88,255,116,.62),0 0 150px rgba(0,255,72,.32)}
.countdown-number.is-animating{animation:countdown-pop .92s cubic-bezier(.2,.86,.24,1) both}
.countdown-number.phase-danger.is-animating{animation:countdown-pop .92s cubic-bezier(.2,.86,.24,1) both,countdown-danger-pulse .32s ease-in-out 2}
.countdown-number.phase-go.is-animating{animation:countdown-go .88s cubic-bezier(.18,.9,.2,1) both}
@keyframes countdown-pop{0%{opacity:0;transform:scale(.28);filter:blur(22px)}22%{opacity:1;transform:scale(1.12);filter:blur(0)}70%{opacity:1;transform:scale(1)}100%{opacity:.2;transform:scale(.84)}}
@keyframes countdown-danger-pulse{50%{filter:brightness(1.55);text-shadow:0 0 70px currentColor,0 0 170px currentColor}}
@keyframes countdown-go{0%{opacity:0;transform:scale(.18) rotate(-5deg);filter:blur(20px)}30%{opacity:1;transform:scale(1.14) rotate(0);filter:blur(0)}72%{opacity:1;transform:scale(1)}100%{opacity:.7;transform:scale(.94)}}
@media(prefers-reduced-motion:reduce){body.timer-mode .app-bar,.timer-controls,.countdown-number.is-animating{transition:none;animation:none}.countdown-number{opacity:1;transform:none;filter:none}}

.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 auto 30px;max-width:1440px}.page-heading h1{margin:2px 0 7px;font-size:clamp(32px,4vw,54px);letter-spacing:-.045em}.page-heading p{margin:0;color:var(--muted)}.eyebrow{font-size:11px!important;font-weight:900;letter-spacing:.19em;color:#888b7c!important}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}
.button{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px 14px;font-weight:800;transition:transform .15s,border-color .15s}.button:hover{transform:translateY(-1px);border-color:#aaa}.button-accent{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button-danger{border-color:#742d26;background:#351b18;color:#ffb6ad}.button-quiet{background:transparent}.button-large{padding:13px 17px;border-color:#3a3b35;background:#20211d;color:#fff}.button-large.button-accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.icon-button{border:0;background:transparent;font-size:28px;line-height:1;padding:4px 8px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}

.event-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px;max-width:1440px;margin:auto}.event-list-panel{padding:18px;align-self:start;position:sticky;top:calc(var(--bar-height) + 24px)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2{margin:0;font-size:19px}.inline-check{font-size:12px;color:var(--muted)}.event-list{display:grid;gap:8px;margin:18px 0}.event-list-empty{padding:28px 8px;color:var(--muted);text-align:center}.event-item{width:100%;display:flex;justify-content:space-between;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:transparent;text-align:left}.event-item:hover{border-color:#999}.event-item.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.event-item strong,.event-item small{display:block}.event-item small{margin-top:5px;color:#8c8e84}.event-item.is-active small{color:#b9bbb0}.event-actions{display:flex;gap:5px;margin-top:8px}.event-action{border:0;background:#ecebe3;border-radius:7px;padding:6px 8px;font-size:11px}.backup-actions{display:grid;gap:8px;padding-top:16px;border-top:1px solid var(--line)}.file-button{position:relative;text-align:center;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.event-editor{min-width:0}.empty-editor{padding:70px 30px;text-align:center}.settings-stack{display:grid;gap:18px}.settings-card{padding:24px}.settings-card h2{margin:0 0 18px;font-size:21px}.settings-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.settings-card-header h2{margin:0}.form-grid{display:grid;gap:16px}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.field{display:grid;gap:7px}.field>span{font-size:12px;font-weight:800;color:#5e6057}.field input,.field select,.roster-table input,.roster-table select{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 11px;color:var(--ink)}.field input:focus,.field select:focus,.roster-table input:focus{outline:3px solid rgba(223,255,0,.55);border-color:#919d18}.form-note{color:var(--muted);font-size:13px}.field-definition-list{display:grid;gap:8px}.field-definition-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto auto;gap:7px;align-items:center}.drag-handle{color:#9a9c92;text-align:center}.ranking-field{margin-top:18px;max-width:420px}.rule-preview{padding:16px 18px;margin-bottom:18px;background:var(--ink);color:#fff;border-radius:12px;font-family:monospace;line-height:1.7}.danger-zone{border-color:#e8c0ba}.danger-row{display:flex;flex-wrap:wrap;gap:8px}

.roster-shell{max-width:1600px;margin:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.roster-table-wrap{overflow:auto;max-height:calc(100vh - 205px)}.roster-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.roster-table th{position:sticky;top:0;z-index:4;background:#20211d;color:#fff;padding:12px 9px;text-align:left;white-space:nowrap}.roster-table td{padding:9px;border-bottom:1px solid #e5e4dc;background:#fff;vertical-align:middle}.roster-table tr:nth-child(even) td{background:#faf9f3}.number-cell{font-weight:900;text-align:center}.assignment-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.manual-badge{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:4px;background:#fff0b5;font-size:9px;font-weight:900}.result-controls{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:6px;min-width:260px}.result-note{font-size:11px;color:var(--muted);margin-top:5px}.mini-button{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px;font-size:11px;font-weight:800}.mobile-editor-notice{display:none;padding:24px;text-align:center}

.result-tabs{display:flex;gap:8px;flex-wrap:wrap;max-width:1440px;margin:0 auto 22px}.result-tab{border:1px solid var(--line);border-radius:999px;background:transparent;padding:8px 14px;font-weight:800}.result-tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.leaderboard{max-width:1100px;margin:auto;display:grid;gap:9px}.rank-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 20px;background:var(--card);border:1px solid var(--line);border-radius:14px}.rank-row.is-podium{background:var(--ink);color:#fff;border-color:var(--ink)}.rank-number{font-family:monospace;font-size:24px;font-weight:900}.rank-name{font-weight:900}.rank-meta{margin-top:4px;color:var(--muted);font-size:12px}.is-podium .rank-meta{color:#aeb0a6}.rank-time{font-family:monospace;font-size:19px;font-weight:900;color:#536000}.is-podium .rank-time{color:var(--accent)}.empty-state{max-width:800px;margin:40px auto;padding:60px 24px;text-align:center;color:var(--muted)}

.modal-backdrop{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:22px;background:rgba(0,0,0,.7)}.modal{width:min(760px,100%);max-height:calc(100vh - 44px);overflow:auto;background:var(--card);border-radius:22px;box-shadow:0 30px 100px rgba(0,0,0,.4)}.modal-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;background:var(--card);border-bottom:1px solid var(--line)}.modal-header h2{margin:2px 0 0;font-size:28px}.stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:20px 26px;margin:0;list-style:none;counter-reset:steps}.stepper li{padding:9px;border-bottom:3px solid var(--line);font-size:12px;font-weight:800;color:#8a8c83}.stepper li.is-active{border-color:var(--accent-ink);color:var(--ink)}.wizard-step{display:none;padding:8px 26px 24px}.wizard-step.is-active{display:block}.modal-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:18px 26px;background:var(--card);border-top:1px solid var(--line)}
.toast{position:fixed;z-index:900;left:50%;bottom:24px;transform:translate(-50%,30px);padding:11px 16px;background:var(--ink);color:#fff;border-radius:10px;opacity:0;pointer-events:none;transition:.2s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}

@media(max-width:980px){
  .app-bar{grid-template-columns:1fr auto;gap:12px}.primary-nav{grid-row:2;grid-column:1/-1;justify-content:center}.bar-actions{grid-column:2}.save-status{display:none}.event-layout{grid-template-columns:1fr}.event-list-panel{position:static}.event-list{grid-template-columns:repeat(2,minmax(0,1fr))}.timer-display{font-size:clamp(68px,16vw,150px)}
}
@media(max-width:700px){
  :root{--bar-height:108px}.app-bar{position:sticky;padding:9px 12px;gap:8px}.brand-copy b{font-size:11px}.brand-copy small{max-width:140px}.event-switcher select{max-width:135px}.primary-nav{width:100%;overflow:auto;justify-content:flex-start}.nav-button{padding:8px 14px}.nav-button[data-page="events"],.nav-button[data-page="roster"]{display:none}.storage-warning{align-items:stretch;flex-direction:column}.storage-warning-actions{display:grid;grid-template-columns:1fr}.workspace-page{padding:28px 14px 60px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .button{width:100%}.desktop-editor-only{display:none!important}.mobile-editor-notice{display:block}.timer-stage{min-height:calc(100vh - var(--bar-height));padding:60px 16px 120px}body.timer-mode .timer-stage,#page-timer:fullscreen .timer-stage{min-height:100vh}.timer-display{font-size:clamp(58px,19vw,100px)}.timer-control-zone{width:100%;height:210px}.timer-controls{left:16px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 54px));max-width:calc(100vw - 32px)}.timer-controls .button{padding:10px;font-size:11px}.timer-brand{bottom:max(20px,env(safe-area-inset-bottom));max-width:43%;font-size:13px}.timer-brand-left{left:max(16px,env(safe-area-inset-left))}.timer-brand-right{right:max(16px,env(safe-area-inset-right))}.rank-row{grid-template-columns:42px minmax(0,1fr);padding:14px}.rank-time{grid-column:2}.two-columns,.three-columns{grid-template-columns:1fr}.span-2{grid-column:auto}.event-list{grid-template-columns:1fr}
}
