*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--cobalt: #0b44a8;--cobalt-deep: #072f76;--cobalt-soft: #e4ecfb;--mint: #79d9bc;--mint-deep: #1f8a6b;--cream: #fcefd5;--cream-light: #fff8ea;--warm-gray: #b3a899;--warm-gray-deep: #6f6558;--ink: #241f1a;--surface: #fffdf8;--page: var(--cream);--text: var(--ink);--muted: var(--warm-gray-deep);--line: color-mix(in srgb, var(--warm-gray) 45%, transparent);--accent: var(--cobalt);--accent-soft: var(--cobalt-soft);--radius: 22px;--radius-sm: 12px;--shadow: 0 12px 30px -18px rgb(36 31 26 / 45%);font-family:ui-rounded,SF Pro Rounded,Hiragino Maru Gothic ProN,Quicksand,Nunito,Varela Round,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--cobalt: #6f9bf5;--cobalt-deep: #a9c4ff;--cobalt-soft: #1a2440;--cream: #17140f;--cream-light: #1f1b15;--surface: #221d17;--ink: #fbf3e4;--warm-gray-deep: #bdb2a2;--line: color-mix(in srgb, var(--warm-gray) 30%, transparent);--shadow: 0 12px 30px -18px rgb(0 0 0 / 80%)}}body{min-height:100dvh;background:var(--page);color:var(--text)}.page{max-width:80ch;margin-inline:auto;padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.55em 1.1em;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:clamp(.85rem,1.5vh,1rem);font-weight:700;text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform .12s ease,background-color .16s ease,border-color .16s ease}.btn:hover:not(:disabled){border-color:var(--cobalt);transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:focus-visible,.chip:focus-visible,.versions__select:focus-visible,input:focus-visible{outline:3px solid var(--cobalt);outline-offset:2px}.btn--primary{min-width:8.5em;border-color:var(--accent);background:var(--accent);color:var(--cream-light)}.btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 85%,black)}.btn--quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn--small{padding:.35em .75em;font-size:.85rem}.btn--danger:hover:not(:disabled){border-color:#c0442f;color:#c0442f}.board{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.6rem,1.5vh,1.25rem);height:100dvh;padding:clamp(.7rem,2vh,1.6rem) clamp(.9rem,2.2vw,2.2rem);overflow:hidden;background:var(--page)}.board[data-status=ready]{--accent: var(--warm-gray-deep);--accent-soft: color-mix(in srgb, var(--warm-gray) 25%, transparent)}.board[data-status=running]{--accent: var(--cobalt);--accent-soft: var(--cobalt-soft)}.board[data-status=paused]{--accent: var(--warm-gray-deep);--accent-soft: color-mix(in srgb, var(--warm-gray) 30%, transparent)}.board[data-status=expired],.board[data-phase=transition]{--accent: var(--mint-deep);--accent-soft: color-mix(in srgb, var(--mint) 32%, transparent)}.board[data-status=finished]{--accent: var(--cobalt-deep);--accent-soft: var(--cobalt-soft)}.board__bar{display:flex;align-items:center;gap:clamp(.5rem,1.5vw,1.25rem);flex-wrap:wrap}.board__title{font-size:clamp(1.1rem,2.6vh,1.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.1}.board__period{color:var(--muted);font-size:clamp(.8rem,1.6vh,.95rem);font-weight:600}.board__status{display:inline-flex;align-items:center;gap:.5em;margin-inline-start:auto;padding:.4em 1em;border:2px solid var(--accent);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:clamp(.85rem,1.7vh,1.05rem);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.board__status-dot{width:.65em;height:.65em;border-radius:50%;background:currentColor}.board[data-status=running] .board__status-dot{animation:pulse 1.6s ease-in-out infinite}.board[data-status=paused] .board__status-dot{background:transparent;box-shadow:inset 0 0 0 2px currentColor}.board__controls{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.board__stage{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(230px,.8fr);gap:clamp(.6rem,1.4vw,1.25rem);min-height:0}.now{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:clamp(.4rem,1.2vh,1rem);min-height:0;padding:clamp(.8rem,2vh,1.6rem) clamp(.9rem,2vw,1.8rem);border:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:border-color .4s ease}.now__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.now__heading{color:var(--accent);font-size:clamp(1rem,2.4vh,1.5rem);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.now__round{font-size:clamp(1rem,2.6vh,1.6rem);font-weight:800}.now__round-total{color:var(--muted);font-weight:700}.now__clock{font-size:clamp(3.4rem,15vh,9rem);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:.95;text-align:center;color:var(--accent)}.board[data-status=paused] .now__clock{opacity:.55}.now__stations{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(140px,15vw,230px),1fr));align-content:center;gap:clamp(.4rem,1vw,.9rem);min-height:0;overflow:auto}.station{display:flex;flex-direction:column;gap:.15em;padding:clamp(.5rem,1.4vh,1rem) clamp(.6rem,1.2vw,1.1rem);border-radius:var(--radius-sm);background:var(--cream);animation:rise .42s cubic-bezier(.22,1,.36,1) both}.station:nth-child(2){animation-delay:60ms}.station:nth-child(3){animation-delay:.12s}.station:nth-child(4){animation-delay:.18s}.station:nth-child(n+5){animation-delay:.24s}.station--solo{grid-column:1 / -1;align-items:center;text-align:center}.station__group{color:var(--cobalt);font-size:clamp(.75rem,1.6vh,1rem);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.station__name{font-size:clamp(1.1rem,3.4vh,2.4rem);font-weight:800;letter-spacing:-.02em;line-height:1.05}.station--solo .station__name{font-size:clamp(1.8rem,7vh,4.5rem)}.station__detail{color:var(--muted);font-size:clamp(.75rem,1.7vh,1.05rem);font-weight:600;line-height:1.25}.next{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.4rem;min-height:0;padding:clamp(.7rem,1.8vh,1.4rem) clamp(.7rem,1.4vw,1.3rem);border:2px dashed var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 60%,transparent)}.next__heading{color:var(--muted);font-size:clamp(.85rem,2vh,1.2rem);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.next__round{font-size:clamp(.9rem,2vh,1.15rem);font-weight:800}.next__list{display:flex;flex-direction:column;gap:.3rem;min-height:0;margin:0;padding:0;overflow:auto;list-style:none}.next__item{display:grid;grid-template-columns:minmax(0,auto) auto minmax(0,1fr);align-items:baseline;gap:.4em;padding:.3em .6em;border-radius:var(--radius-sm);background:var(--cream);font-size:clamp(.8rem,1.9vh,1.15rem)}.next__group{color:var(--muted);font-weight:800}.next__arrow{color:var(--mint-deep);font-weight:800}.next__station{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next__empty{align-self:center;color:var(--muted);font-size:clamp(.9rem,2.2vh,1.3rem);font-weight:700;text-align:center}.progress{display:grid;gap:.35rem}.progress__strip{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:clamp(.25rem,.6vw,.6rem);margin:0;padding:0;list-style:none}.progress__segment{display:grid;gap:.25rem}.progress__label{color:var(--muted);font-size:clamp(.6rem,1.3vh,.8rem);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress__segment[data-state=current] .progress__label{color:var(--accent)}.progress__track{height:clamp(6px,1.2vh,12px);border-radius:999px;background:color-mix(in srgb,var(--warm-gray) 35%,transparent);overflow:hidden}.progress__fill{display:block;height:100%;border-radius:999px;background:var(--warm-gray-deep);transition:width .22s linear}.progress__segment[data-state=current] .progress__fill{background:var(--accent)}.progress__segment[data-state=done] .progress__fill{background:var(--mint-deep)}.progress__hint{color:var(--muted);font-size:clamp(.6rem,1.3vh,.8rem);font-weight:600;text-align:center}.board__cue{position:absolute;inset:0;z-index:2;opacity:0;pointer-events:none;background:linear-gradient(100deg,transparent 0%,color-mix(in srgb,var(--mint) 55%,transparent) 45%,color-mix(in srgb,var(--cobalt) 25%,transparent) 60%,transparent 100%)}.board--cue .board__cue{animation:sweep 1.1s cubic-bezier(.4,0,.2,1)}@keyframes sweep{0%{opacity:.9;transform:translate(-100%)}to{opacity:0;transform:translate(100%)}}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@media(prefers-reduced-motion:reduce){.station,.board--cue .board__cue,.board[data-status=running] .board__status-dot{animation:none}.btn,.progress__fill{transition:none}}.setup{display:grid;gap:clamp(.8rem,2vh,1.5rem);max-width:1100px;margin-inline:auto;padding:clamp(1rem,3vh,2.5rem) clamp(.9rem,3vw,2rem) 4rem}.setup__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.setup__title{font-size:clamp(1.6rem,4vh,2.4rem);font-weight:800;letter-spacing:-.02em}.setup__subtitle{color:var(--muted);font-weight:600}.setup__summary{padding:.7em 1em;border-radius:var(--radius-sm);background:var(--cobalt-soft);color:var(--cobalt);font-weight:700}.card{display:grid;gap:.9rem;justify-items:start;padding:clamp(.9rem,2.4vh,1.6rem);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.card__heading{font-size:clamp(1.1rem,2.6vh,1.4rem);font-weight:800}.card__hint,.field__hint,.toggle__hint{color:var(--muted);font-size:.85rem;font-weight:600}.card>*{width:100%}.card>.btn{width:auto}.grid{display:grid;gap:.8rem}.grid--labels{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid--timing{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.field{display:grid;gap:.25rem}.field label{font-size:.85rem;font-weight:800}input[type=text],input[type=number]{width:100%;padding:.55em .8em;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--cream-light);color:var(--text);font-weight:700}input[type=text]:focus,input[type=number]:focus{border-color:var(--cobalt)}.versions,.rows{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.versions__item,.rows__item{display:flex;align-items:end;gap:.5rem;flex-wrap:wrap;padding:.6rem;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--cream-light)}.versions__item[data-active=true]{border-color:var(--cobalt);background:var(--cobalt-soft)}.versions__select{display:grid;gap:.1rem;flex:1 1 14rem;padding:.2rem .3rem;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;text-align:start;cursor:pointer}.versions__name{font-size:1.05rem;font-weight:800}.versions__meta{color:var(--muted);font-size:.8rem;font-weight:600}.rows__item .field{flex:1 1 12rem}.rows__index{align-self:center;width:1.9em;height:1.9em;display:grid;place-items:center;border-radius:50%;background:var(--cobalt);color:var(--cream-light);font-size:.8rem;font-weight:800}.rows__actions{display:flex;gap:.3rem}.chips{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.6rem .8rem;border:2px solid var(--line);border-radius:var(--radius-sm)}.chips legend{padding-inline:.4em;font-size:.85rem;font-weight:800}.chip{padding:.4em .9em;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--cobalt);background:var(--cobalt);color:var(--cream-light)}.toggles{display:grid;gap:.6rem}.toggle{display:flex;align-items:start;gap:.6rem;font-weight:700}.toggle span{display:grid;gap:.1rem}.toggle input{width:1.2em;height:1.2em;margin-top:.2em;accent-color:var(--cobalt)}@media(max-width:760px),(orientation:portrait)and (max-width:1024px){.board{height:auto;min-height:100dvh;overflow:visible}.board__stage{grid-template-columns:minmax(0,1fr)}.board__status{margin-inline-start:0}}
