:root{--bg: #f4f6fa;--panel: #ffffff;--fg: #1d2330;--muted: #687185;--line: #d5dae4;--card: #ffffff;--pole: #8a93a6;--bridge: #b4bccb;--accent: #4b6bfb;--accent-fg: #ffffff;--win: #ffd166;--win-fg: #3b2300;--danger: #d6455d;--ok: #1f9d68;--stage: #e9edf5;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #11141c;--panel: #1a1f2b;--fg: #e8ecf4;--muted: #98a1b5;--line: #2f3646;--card: #232a39;--pole: #7d879c;--bridge: #9ba5ba;--accent: #7088ff;--stage: #0c0f16;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;-webkit-tap-highlight-color:transparent}#app{max-width:880px;margin:0 auto;padding:env(safe-area-inset-top,0px) max(16px,env(safe-area-inset-right,0px)) max(48px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.topbar{display:flex;align-items:baseline;gap:12px;padding:14px 0 6px}.topbar h1{font-size:1.25rem;margin:0}.topbar .step{color:var(--muted);font-size:.9rem}.card-section{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0}.card-section h2{font-size:.95rem;margin:0 0 10px;color:var(--muted);font-weight:600}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:.85rem}.count{font-size:1.3rem;min-width:3.5em;text-align:center}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 14px;cursor:pointer;min-height:40px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.big{padding:12px 22px;font-size:1.05rem}button.round{width:44px;height:44px;border-radius:50%;padding:0;font-size:1.4rem}button.small{min-height:34px;padding:4px 10px;font-size:.85rem}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}input,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}input.num{width:4.5em}input.short{width:8em}textarea{width:100%;resize:vertical;margin:8px 0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.paste{margin-top:10px}.paste summary{cursor:pointer;color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.chip{border-radius:999px;padding:6px 12px;min-height:36px}.chip.person{border:2px solid var(--c, var(--line))}.chip.person.on{background:var(--c);color:#fff;font-weight:600}.chip.person.done:not(.on){opacity:.6}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:6px 0}.seg button{border:0;border-radius:0;min-height:38px;background:transparent}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent);color:var(--accent-fg);font-weight:600}.errors{color:var(--danger);margin:8px 0;padding-left:20px;min-height:1em}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0;align-items:center}.actions .primary.big{margin-left:auto}.turn{font-size:1.05rem;margin:10px 0 4px}.msg{min-height:1.5em;color:var(--muted);margin:4px 0}.svg-host{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px}.ladder-svg{display:block;width:100%;height:auto;touch-action:manipulation;-webkit-user-select:none;user-select:none}.ladder-svg.editable{cursor:crosshair;touch-action:pan-y}.ladder-svg .pole{stroke:var(--pole);stroke-width:3;stroke-linecap:round}.ladder-svg .pole.ghost{stroke-dasharray:4 5;opacity:.55}.ladder-svg .bridge{stroke:var(--bridge);stroke-width:3;stroke-linecap:round}.ladder-svg .bridge.user{stroke-width:5}.ladder-svg .name{font-size:13px;font-weight:700}.ladder-svg .name.ghost{fill:var(--muted);font-size:16px}.ladder-svg .card{fill:var(--card);stroke:var(--line);stroke-width:1.5}.ladder-svg .card-text{font-size:13px;fill:var(--fg);font-weight:600}.ladder-svg .results .open .card{stroke:var(--accent)}.ladder-svg .results .win .card{fill:var(--win);stroke:#e0a100}.ladder-svg .results .win .card-text{fill:var(--win-fg)}.ladder-svg .ride{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.ladder-svg .ride.done{opacity:.55}.ladder-svg .ride.dim{opacity:.12}.ladder-svg .ride.focus{opacity:1;stroke-width:7}.ladder-svg .marble{stroke:#fff;stroke-width:2}.ladder-svg .hint{stroke-width:6;stroke-linecap:round;pointer-events:none}.ladder-svg .hint.add{stroke:var(--ok);opacity:.6}.ladder-svg .hint.remove{stroke:var(--danger);stroke-dasharray:6 4}.ladder-svg .hint.blocked{stroke:var(--muted);opacity:.25}.stage{position:relative;margin-top:8px}.view-host{border-radius:16px;overflow:hidden;border:1px solid var(--line)}.view-host.is-3d{height:min(68vh,620px);background:radial-gradient(circle at 50% 35%,var(--panel),var(--stage))}.view-host.is-2d{overflow-x:auto;background:var(--panel);padding:6px}.ladder-canvas{display:block;width:100%;height:100%;touch-action:none}.view-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.view-tools .seg{margin:0;background:var(--panel)}.view-tools .toggle{display:inline-flex;align-items:center;gap:4px;min-height:34px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px 10px}.arrivals{margin:0;padding-left:24px}.arrivals li{padding:1px 0}.arrivals li.win{font-weight:700}.arrivals li.win .arrival:after{content:" 🎉"}.arrivals .arrival{border:1px solid transparent;background:none;min-height:34px;padding:2px 8px;text-align:left}.arrivals li.focus .arrival{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.actions.sticky{position:sticky;bottom:0;z-index:5;margin:10px -16px 0;padding:10px 16px max(10px,env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:10}.sheet{background:var(--panel);border-radius:18px;padding:18px 20px;width:min(440px,100%);max-height:90vh;overflow:auto}.sheet h2{margin:0 0 10px}.sheet table{width:100%;border-collapse:collapse}.sheet th,.sheet td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.sheet tr.win td{background:color-mix(in srgb,var(--win) 35%,transparent);font-weight:700}@media (max-width: 520px){.actions .primary.big{margin-left:0;width:100%}.view-host.is-3d{height:70vh;height:70svh}.actions.sticky .primary.big{width:auto;flex:1 1 100%}}
