:root{--bg: #1c1b1f;--surface: #2b2930;--text: #e6e1e5;--muted: #b4afb9;--accent: #f2a541;--accent-text: #1c1b1f;--radius: 12px;color-scheme:dark}:root[data-theme=light]{--bg: #fffbfe;--surface: #f3edf7;--text: #1c1b1f;--muted: #5f5b66;--accent: #9a5b00;--accent-text: #fff;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}a,button{min-height:44px;min-width:44px}.layout{min-height:100dvh;display:flex;flex-direction:column}.layout main{flex:1;width:min(42rem,100%);margin:0 auto;padding:1.5rem 1rem}.hero h1{font-size:2.5rem;margin:0 0 .5rem}.tagline{color:var(--muted);font-size:1.15rem}.footer{padding:1rem;text-align:center;color:var(--muted);font-size:.9rem;background:var(--surface)}.footer nav{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.footer a{display:inline-flex;align-items:center}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.logo{image-rendering:pixelated;display:block}:root:not([data-theme=light]) .logo{filter:drop-shadow(0 0 2px #fff4dc) drop-shadow(0 0 6px rgb(255 244 220 / .35))}h1{font-size:1.75rem;margin:0 0 .25rem}h2{font-size:1.05rem;margin:0 0 .5rem;color:var(--muted);font-weight:600;letter-spacing:.02em}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.25rem 1rem;background:var(--surface)}.brand{font-weight:700;text-decoration:none;color:var(--text);display:inline-flex;align-items:center}.stack>*+*{margin-top:1rem}.card{background:var(--surface);border-radius:var(--radius);padding:1rem}.big{font-size:1.35rem;font-weight:600;margin:.25rem 0;overflow-wrap:anywhere}.muted{color:var(--muted)}.small{font-size:.875rem}.code{font-family:ui-monospace,monospace;letter-spacing:.1em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.timer{font-size:1.6rem;font-variant-numeric:tabular-nums;margin:.25rem 0;display:flex;gap:.75rem;align-items:center}label{display:block;margin:.75rem 0 .25rem;font-size:.95rem}input[type=text],input:not([type]),input[type=url],input{width:100%;min-height:44px;padding:.5rem .75rem;font:inherit;color:var(--text);background:var(--bg);border:2px solid var(--muted);border-radius:8px}input[type=radio]{position:absolute;opacity:0;width:1px;height:1px}input:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible,.chip:focus-within{outline:3px solid var(--accent);outline-offset:2px}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.row input{flex:1;min-width:10rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font:inherit;color:var(--text);background:transparent;border:2px solid var(--muted);border-radius:8px;cursor:pointer;text-decoration:none}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600;margin-top:1rem}.btn.danger{background:#b3261e;border-color:#b3261e;color:#fff}.btn.ghost{border-color:transparent;color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.chips{border:0;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}.chips legend{padding:0;margin-bottom:.25rem;font-size:.95rem}.chip{position:relative;margin:0;min-height:44px;display:inline-flex;align-items:center;padding:.4rem 1rem;border:2px solid var(--muted);border-radius:999px;cursor:pointer}.chip.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.chip.on:before{content:"✓ "}.list{list-style:none;padding:0;margin:0}.list li{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;padding:.6rem 0;border-top:1px solid rgb(128 128 128 / .3)}.list li:first-child{border-top:0}.list .title{font-weight:600;flex:1 1 100%;overflow-wrap:anywhere}.list li.overflow{border-left:3px dashed var(--muted);padding-left:.5rem}ol.list{counter-reset:q}ol.list li:before{counter-increment:q;content:counter(q);color:var(--muted);min-width:1.5rem}ol.list .title{flex:1 1 60%}.badge{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid currentColor}.badge.ok,.badge.mine{color:#7bd88f}.badge.warn{color:#ffb35c}.badge.info{color:#8ab4f8}.badge.done{color:var(--muted)}:root[data-theme=light] .badge.ok,:root[data-theme=light] .badge.mine{color:#1b6e32}:root[data-theme=light] .badge.warn{color:#8a4b00}:root[data-theme=light] .badge.info{color:#1a4fa0}.conn{display:flex;align-items:center;gap:.5rem;margin:.25rem 0 0;font-size:.9rem;color:var(--muted)}.dot{width:.7rem;height:.7rem;border-radius:50%;background:currentColor;display:inline-block}.conn-live .dot{background:#7bd88f}.conn-reconnecting .dot{background:#ffb35c}.conn-offline .dot{background:#f2b8b5;border-radius:2px}.error{color:#ffb4ab;margin:.75rem 0 0}:root[data-theme=light] .error{color:#b3261e}.ok{color:#7bd88f}:root[data-theme=light] .ok{color:#1b6e32}.preview{background:var(--bg);padding:.5rem .75rem;border-radius:8px;margin:.75rem 0 0}details{margin:.5rem 0}summary{min-height:44px;display:flex;align-items:center;cursor:pointer}@media(max-width:30rem){.grid2{grid-template-columns:1fr}}.mono{font-family:ui-monospace,monospace;font-size:.85rem;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.warning{border-left:4px solid var(--accent);padding:.5rem .75rem;background:var(--bg);border-radius:4px;margin:0}.notice{background:var(--bg);border-radius:8px;padding:.5rem .75rem;margin:0}.qr{width:min(16rem,100%);height:auto;background:#fff;border-radius:8px;display:block}.plain{padding-left:1.1rem;margin:.25rem 0 0}fieldset{border:1px solid rgb(128 128 128 / .4);border-radius:8px;margin:0;padding:.5rem .75rem .75rem}fieldset legend{padding:0 .25rem}.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:0 .75rem}.caps legend{grid-column:1 / -1}.check{display:flex;align-items:center;gap:.5rem;min-height:44px;margin:0}.check input{position:static;opacity:1;width:1.4rem;height:1.4rem;flex:none}.chip input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px}input[type=number]{max-width:8rem}.topbar .brand{min-width:44px}.menu{position:relative}.menu-panel{position:absolute;right:0;top:calc(100% + .25rem);z-index:20;width:min(20rem,calc(100vw - 2rem));display:grid;gap:.25rem;box-shadow:0 8px 24px #0006}.menu-panel .btn{justify-content:flex-start}.rules-list{margin:.25rem 0 .5rem;padding-left:1.1rem;font-size:.9rem}.landing{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.75rem}.landing h1{margin:0}.landing-msg{min-height:4.5rem;display:flex;align-items:center;justify-content:center}.landing-msg p{margin:0}.landing-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.code-input{display:flex;gap:.4rem;justify-content:center}.code-box{width:2.75rem;height:3.4rem;padding:0;text-align:center;font-size:1.6rem;font-weight:700;text-transform:uppercase;border-radius:10px}body.locked{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.locked input,body.locked textarea{-webkit-user-select:text;user-select:text}.footer{padding:.5rem 1rem;font-size:.8rem}.footer p{margin:0}.layout main{display:flex;flex-direction:column}.layout main>*{width:100%}.break-row{border:1px dashed var(--muted);border-radius:10px;padding:.5rem .75rem;margin:.25rem 0;text-align:center}.timer-picker{text-align:center}.timer-display{font-size:2.6rem;font-weight:700;font-variant-numeric:tabular-nums;margin:.25rem 0 .5rem}.timer-display small{font-size:1rem;font-weight:500;color:var(--muted)}.timer-buttons{display:grid;gap:.5rem}.timer-buttons .row{justify-content:center}.timeline{position:relative;height:14px;border-radius:7px;background:var(--bg);margin:.5rem 0}.timeline-break{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:7px}select{min-height:44px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:8px;padding:0 .5rem}body.console .layout{height:100dvh}body.console .layout main{min-height:0;padding:.5rem 1rem;overflow:hidden}.console{display:flex;flex-direction:column;gap:.5rem;height:100%;min-height:0}.console-head h1{font-size:1.25rem;margin:0}.console-head .conn{margin:0}.console-head .row{align-items:center;gap:.5rem}.card.compact{padding:.6rem .75rem}.card.compact .big{font-size:1.1rem;margin:0}.card.compact.stack>*+*{margin-top:.4rem}.console-body{flex:1;min-height:0;overflow:hidden}.console-body.scroll{overflow-y:auto}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem}.share{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.share .qr{width:min(100%,38dvh);height:auto;border-radius:8px}.tabbar .btn{min-height:48px;justify-content:center}.footer p{line-height:1.3}.footer nav a{min-height:32px}.tabbar .btn.primary,.row .btn.primary,.landing-actions .btn.primary{margin-top:0}.wheel{position:relative;width:100%;max-width:14rem;margin:0 auto;border-radius:12px;background:var(--surface);overflow:hidden}.wheel:focus-within{outline:3px solid var(--accent)}.wheel-scroll{height:100%;outline:none;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent);mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent)}.wheel-scroll::-webkit-scrollbar{display:none}.wheel-band{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);pointer-events:none}.wheel-item{display:flex;align-items:center;justify-content:center;scroll-snap-align:center;font-size:1.2rem;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer}.wheel-item.on{color:var(--text);font-size:1.6rem;font-weight:700}.wheel.small{max-width:5rem}.swatch{display:inline-block;flex:none;border-radius:50%;background-color:var(--c);border:1px solid #fff;vertical-align:middle}.swatch.striped{background-image:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 5px)}.swatches{display:inline-flex;gap:.2rem;flex-wrap:wrap;vertical-align:middle}.style-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;justify-items:center;max-width:14rem;margin:0 auto}.style-other{grid-column:1 / -1}.style-cell{width:56px;height:56px;display:grid;place-items:center;border-radius:14px;border:2px solid transparent;background:var(--surface);opacity:.4;cursor:pointer}.style-cell.on{opacity:1;border-color:var(--accent)}.style-cell:focus-visible{outline:3px solid var(--accent)}.tl{width:100%}.tl-bar{position:relative;width:100%;height:52px;border-radius:10px;border:1px solid #fff;background:var(--bg);touch-action:pan-y;cursor:copy}.tl-bar.rejected{animation:tl-shake .3s}@keyframes tl-shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.tl-bar:focus-visible{outline:3px solid var(--accent)}.tl-seg{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;border-radius:9px}.tl-seg.sel{box-shadow:inset 0 0 0 2px var(--accent)}.tl-band{flex:1;background-color:var(--c);border-top:1px solid #fff}.tl-band:first-child{border-top:0}.tl-band.striped{background-image:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 6px)}.tl-break{position:absolute;top:-4px;bottom:-4px;min-width:4px;background:#4fc3f7;border:1px solid #fff;border-radius:4px;z-index:2;cursor:pointer}.tl-break.sel{box-shadow:0 0 0 2px var(--accent)}.tl-handle{position:absolute;top:-8px;bottom:-8px;width:26px;z-index:3;display:grid;place-items:center;cursor:ew-resize;touch-action:none}.tl-handle.start{transform:translate(-100%)}.tl-handle:focus-visible{outline:3px solid var(--accent)}.tl-grip{width:6px;height:60%;border-radius:3px;background:#fff;border:1px solid #000}.tl-ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:.25rem}.tl-parts{display:flex;gap:.35rem;margin-top:.4rem}.tl-part{flex:1;min-width:0;gap:.2rem;flex-wrap:wrap;padding:.25rem;margin-top:0!important}.tl-sel{align-items:center;justify-content:center;gap:.75rem;margin-top:.4rem}.drums{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.drum-cell{flex:1 1 5.5rem;max-width:9rem;text-align:center}.playlist-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.playlist-cell{display:flex;align-items:center;gap:.35rem;min-width:0}.playlist-cell input{min-width:0;flex:1}.playlist-cell.missing input{border-color:#ffb35c}
