:root{--bg-top:#0e2a1b;--bg-bottom:#06110b;--bg-glow:#123420;--card:#14271c;--card-border:#2a4c36;--surface:#0c1b13;--panel:#17301f;--text:#f2f7f3;--text-dim:#9db3a6;--text-faint:#5f7568;--plus:#f6b93b;--minus:#6fb4e8;--side-a:#ffb020;--side-b:#34c6e6;--danger:#ff5252;--win:#ffd36b;--radius:10px;--radius-sm:6px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}html,body{overscroll-behavior:none}body{color:var(--text);background:radial-gradient(120% 80% at 50% 0%, var(--bg-glow) 0%, transparent 60%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);margin:0;font-size:14px;line-height:1.5}a{color:var(--plus);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:.02em;margin:0;font-weight:700}.app-shell{flex-direction:column;min-height:100%;display:flex}.container{width:100%;max-width:960px;margin:0 auto;padding:24px 20px 64px}.container.wide{max-width:1400px}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:16px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:12px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.btn{appearance:none;border:1px solid var(--card-border);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:8px 14px;font-family:inherit;font-size:14px;transition:background .12s,border-color .12s,opacity .12s}.btn:hover:not(:disabled){background:#1e3d29;border-color:#3a6b4c}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--plus);border-color:var(--plus);color:#1a1206;font-weight:700}.btn.primary:hover:not(:disabled){background:#ffc85c;border-color:#ffc85c}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:#5a2626}.btn.sm{padding:4px 10px;font-size:12px}.input{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius-sm);color:var(--text);width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.input:focus{border-color:var(--plus);outline:none}.input::placeholder{color:var(--text-faint)}label.field{margin-bottom:14px;display:block}label.field>span{color:var(--text-dim);margin-bottom:5px;font-size:12px;display:block}.segmented{border:1px solid var(--card-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.segmented button{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:0;padding:7px 14px;font-family:inherit;font-size:13px}.segmented button+button{border-left:1px solid var(--card-border)}.segmented button.on{background:var(--panel);color:var(--plus);font-weight:700}.badge{border:1px solid var(--card-border);color:var(--text-dim);border-radius:999px;padding:2px 7px;font-size:11px;display:inline-block}.badge.gold{color:var(--plus);border-color:var(--plus)}.badge.blue{color:var(--minus);border-color:var(--minus)}.badge.live{color:#7be08a;border-color:#2f6b3c}.topbar{border-bottom:1px solid var(--card-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#06110bb3;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:.06em;color:var(--text);font-weight:800}.topbar .brand em{color:var(--plus);font-style:normal}.modal-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);width:100%;max-width:420px;max-height:90vh;padding:20px;overflow:auto}.toast{background:var(--panel);border:1px solid var(--card-border);border-radius:var(--radius);z-index:60;padding:10px 18px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.bracket-scroll{border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);max-height:calc(100dvh - 300px);overflow:auto}.bracket-canvas{position:relative}.bracket-lines{pointer-events:none;position:absolute;inset:0}.bracket-lines path{fill:none;stroke:#2a4c36;stroke-width:1.5px}.round-label{text-align:center;letter-spacing:.08em;color:var(--text-dim);font-size:12px;position:absolute;top:10px}.match{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;display:flex;position:absolute;overflow:hidden}.match.ready{border-color:#3f6f4d}.match.clickable{cursor:pointer}.match.clickable:hover{border-color:var(--plus);box-shadow:0 0 0 1px #f6b93b59}.match.settled{opacity:.92}.match.playing{border-color:var(--side-b);box-shadow:0 0 0 1px #34c6e659}.match .num{color:var(--text-faint);font-size:10px;position:absolute;top:2px;right:5px}.match .live-dot{background:var(--side-b);width:6px;height:6px;box-shadow:0 0 6px var(--side-b);border-radius:50%;position:absolute;top:6px;left:6px}.match .slot{align-items:center;gap:6px;min-width:0;height:50%;padding:4px 30px 4px 14px;font-size:13px;display:flex}.match .slot+.slot{border-top:1px solid #2a4c36b3}.match .slot .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.match .slot .race{color:var(--text-faint);font-size:10px}.match .slot .sc{font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:right;min-width:14px;font-weight:700}.match .slot.won{background:#f6b93b14}.match .slot.won .nm{color:var(--win);font-weight:700}.match .slot.won .sc{color:var(--win)}.match .slot.lost .nm,.match .slot.lost .race{color:var(--text-faint)}.match .seed{border:1px solid;border-radius:999px;padding:0 5px;font-size:10px}.match .seed.hi{color:var(--plus);border-color:var(--plus)}.match .seed.lo{color:var(--minus);border-color:var(--minus)}.entry-row{border-bottom:1px solid #2a4c3699;align-items:center;gap:10px;padding:7px 10px;display:flex}.entry-row:last-child{border-bottom:0}.entry-row .idx{width:22px;color:var(--text-faint);text-align:right;font-size:12px}.entry-row .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.stepper{border:1px solid var(--card-border);border-radius:var(--radius-sm);align-items:center;display:inline-flex;overflow:hidden}.stepper button{appearance:none;background:var(--panel);color:var(--text);cursor:pointer;border:0;width:26px;height:26px;font-size:14px;line-height:1}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper .val{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:12px}.list-item{border:1px solid var(--card-border);border-radius:var(--radius);background:var(--card);align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex}.list-item h3{font-size:15px}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}select.input option{background:var(--card);color:var(--text)}textarea.input{resize:vertical;line-height:1.6}.outline{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;max-height:340px;margin:0;padding:14px 16px;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;font-size:13px;line-height:1.75;overflow:auto}.entry-page{max-width:560px}.status-line{border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--panel);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;display:flex}.pill-row{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1px solid var(--card-border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-family:inherit;font-size:13px}.pill.on{border-color:var(--plus);color:var(--plus);font-weight:700}.entry-row.pending{border-left:3px solid var(--plus)}.entry-row.rejected{opacity:.45}.entry-row.confirmed{border-left:3px solid #3f6f4d}.field-label{color:var(--text-dim);margin-bottom:5px;font-size:12px;display:block}.store-tag{color:var(--minus);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:11px;overflow:hidden}.import-preview{border:1px solid var(--card-border);border-radius:var(--radius-sm);max-height:280px;overflow:auto}.import-preview table{border-collapse:collapse;width:100%;font-size:13px}.import-preview th,.import-preview td{text-align:left;white-space:nowrap;border-bottom:1px solid #2a4c3699;padding:5px 8px}.import-preview th{background:var(--panel);color:var(--text-dim);font-size:12px;font-weight:600;position:sticky;top:0}.import-preview tr.ng td{color:var(--danger);opacity:.85}.import-preview tr.warn td:last-child{color:var(--plus)}.notice{border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--surface);color:var(--text-dim);padding:8px 12px;font-size:12px}.standby-list{flex-direction:column;gap:6px;display:flex}.standby-row{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:8px;padding:8px 10px;display:flex}.standby-row.playing{border-color:var(--side-b);box-shadow:0 0 0 1px #34c6e640}.standby-row .ord{text-align:right;width:22px;color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px}.standby-row .info{flex:1;min-width:0}.standby-row .card-names{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.standby-row .vs{color:var(--text-faint);margin:0 8px;font-size:12px}.standby-row .stepper button{width:24px;font-size:10px}.qr-box{border-radius:var(--radius-sm);background:#fff;justify-content:center;align-items:center;width:296px;height:296px;padding:8px;display:inline-flex}.report-page{max-width:480px}.report-side{border:1px solid var(--card-border);border-radius:var(--radius);background:var(--card);padding:14px}.report-side.win{border-color:var(--plus);box-shadow:0 0 0 1px #f6b93b4d}.report-side .nm{text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700;overflow:hidden}.report-stepper{justify-content:center;align-items:center;gap:18px;display:flex}.report-stepper button{appearance:none;border:1px solid var(--card-border);background:var(--panel);width:56px;height:56px;color:var(--text);cursor:pointer;border-radius:50%;font-size:24px}.report-stepper button:disabled{opacity:.35;cursor:not-allowed}.report-stepper .val{text-align:center;font-variant-numeric:tabular-nums;min-width:56px;font-size:36px;font-weight:800}.report-send{width:100%;margin-top:18px;padding:14px;font-size:16px}.report-final{justify-content:center;align-items:center;gap:12px;font-size:16px;display:flex}.report-final .sc{font-variant-numeric:tabular-nums;font-weight:800}.report-final .won{color:var(--win);font-weight:700}.report-notices{z-index:70;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:64px;right:16px}.report-notice{background:var(--panel);border:1px solid var(--card-border);border-left:4px solid var(--plus);border-radius:var(--radius);padding:10px 12px;animation:.25s ease-out notice-in;box-shadow:0 10px 28px #0000008c}.report-notice.rejected{border-left-color:var(--danger)}@keyframes notice-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.table-bar{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:8px 10px;display:flex}.table-bar .stepper .val{min-width:56px}.free-tables{flex-wrap:wrap;gap:4px;display:flex}.table-chip{border-radius:var(--radius-sm);background:var(--side-b);color:#04222b;font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0 6px;font-size:14px;font-weight:800;display:inline-flex}.table-chip.free{color:#7be08a;background:0 0;border:1px solid #2f6b3c;min-width:24px;height:22px;font-size:12px}.table-chip.none{color:var(--text-faint);border:1px dashed var(--card-border);background:0 0}.table-select{width:auto;padding:4px 28px 4px 8px;font-size:12px}.match .table-tag{background:var(--side-b);color:#04222b;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;width:26px;font-size:14px;font-weight:800;line-height:1;display:flex;position:absolute;top:0;bottom:0;left:0}.match .table-tag .lbl{opacity:.75;margin-bottom:2px;font-size:9px}.match.with-table .slot{padding-left:34px}.qr-table{background:var(--side-b);color:#04222b;border-radius:999px;margin-bottom:8px;padding:4px 14px;font-size:18px;font-weight:800;display:inline-block}.guide{border-color:#3f6f4d;margin-bottom:16px}.guide-steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.guide-steps li{counter-increment:step;border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px 10px 40px;display:flex;position:relative}.guide-steps li:before{content:counter(step);background:var(--plus);color:#1a1206;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:flex;position:absolute;top:10px;left:10px}.guide-steps li.done:before{content:"✓";color:#d8f5dd;background:#2f6b3c}.guide-steps .t{font-size:13px;font-weight:700}.guide-steps .d{color:var(--text-dim);font-size:12px;line-height:1.5}.phase-tabs{margin-bottom:10px}.panzoom{touch-action:none;border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;overflow:hidden}.panzoom:active{cursor:grabbing}.panzoom-content{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.panzoom-controls{z-index:2;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.panzoom-controls button{appearance:none;border:1px solid var(--card-border);width:40px;height:40px;color:var(--text);cursor:pointer;background:#17301feb;border-radius:50%;font-family:inherit;font-size:18px;box-shadow:0 4px 12px #00000073}.panzoom-controls button.fit{border-radius:999px;width:auto;height:32px;padding:0 12px;font-size:12px}.panzoom-controls .pct{color:var(--text-dim);font-variant-numeric:tabular-nums;background:#0c1b13d9;border-radius:999px;padding:1px 6px;font-size:10px}.page-head{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:6px;display:flex}.page-title{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.page-title h1{font-size:20px}.page-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}@media (width<=640px){.container{padding:10px 10px 16px}.topbar{padding:8px 12px}.page-head{gap:6px}.page-title{flex-wrap:nowrap;width:100%}.page-title h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:16px;overflow:hidden}.page-title .badge{flex-shrink:0}.page-actions{flex-wrap:wrap;gap:6px;width:100%;margin-left:0}.page-actions .btn{flex-grow:1;justify-content:center;padding:6px 10px;font-size:12px}.page-meta{display:none}.phase-tabs{margin-bottom:6px}.phase-tabs button{padding:6px 12px;font-size:12px}.panzoom{border-radius:var(--radius-sm)}}.estimate-inputs{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (width<=480px){.estimate-inputs{grid-template-columns:1fr 1fr}}.estimate-main{text-align:center;border:1px solid var(--plus);border-radius:var(--radius);background:#f6b93b0f;margin-bottom:12px;padding:14px}.estimate-main .k{color:var(--text-dim);font-size:12px}.estimate-main .v{color:var(--win);margin:2px 0;font-size:28px;font-weight:800}.estimate-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.estimate-grid>div{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 10px}.estimate-grid .k{color:var(--text-dim);font-size:11px}.estimate-grid .v{font-size:16px;font-weight:700}.estimate-hist{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--surface);align-items:flex-end;gap:2px;height:80px;margin-bottom:4px;padding:4px;display:flex}.estimate-hist .bar{background:#3f6f4d;border-radius:2px 2px 0 0;flex:1}.estimate-hist .bar.mean{background:var(--plus)}.estimate-hist .bar.p95{background:var(--minus)}.legend{vertical-align:middle;border-radius:2px;width:8px;height:8px;margin-right:3px;display:inline-block}.legend.mean{background:var(--plus)}.legend.p95{background:var(--minus)}.edit-side{border:1px solid var(--card-border);border-radius:var(--radius-sm);margin-bottom:8px;padding:8px 10px}.edit-side.win{border-color:var(--plus)}.edit-side.pending{border-style:dashed}.table-picker{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;display:grid}.table-picker .tp{appearance:none;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--card-border);min-height:48px;color:var(--text);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:2px;font-family:inherit;display:flex}.table-picker .tp .n{font-variant-numeric:tabular-nums;font-size:18px;font-weight:800;line-height:1}.table-picker .tp .u{color:var(--text-faint);font-size:9px}.table-picker .tp.free{color:#7be08a;border-color:#2f6b3c}.table-picker .tp.free:hover{background:#2f6b3c40}.table-picker .tp.on{background:var(--side-b);border-color:var(--side-b);color:#04222b}.table-picker .tp.busy{opacity:.45;cursor:not-allowed}.table-picker .tp.none{color:var(--text-dim);font-size:12px}.table-picker .tp.none.on{background:var(--panel);border-color:var(--text-dim);color:var(--text)}.table-change{border:1px solid var(--side-b);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--surface);border-top:0;margin:-2px 0 4px;padding:8px}.tqr-page{z-index:50;background:linear-gradient(var(--bg-top), var(--bg-bottom));padding:12px 16px 24px;position:fixed;inset:0;overflow:auto}.tqr-head{align-items:center;gap:8px;margin-bottom:12px;display:flex}.tqr-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.tqr-select{background:var(--card);min-height:34px;color:inherit;border:1px solid var(--card-border);border-radius:8px;padding:0 8px}.tqr-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.tqr-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;display:flex}.tqr-card.clickable{cursor:pointer}.tqr-card.clickable:hover{border-color:var(--side-b)}.tqr-card.idle{opacity:.55}.tqr-table{background:var(--side-b);color:#04222b;border-radius:999px;margin-bottom:4px;padding:4px 14px;font-size:18px;font-weight:800;display:inline-block}.tqr-card.idle .tqr-table{background:var(--card-border);color:inherit}.tqr-names{overflow-wrap:anywhere;font-size:15px;font-weight:700}.tqr-names .vs{opacity:.6;margin:0 8px;font-size:12px}.tqr-qr{background:#fff;border-radius:8px;justify-content:center;align-items:center;width:196px;height:196px;margin-top:8px;padding:8px;display:flex}.tqr-qr img{width:100%;height:100%;image-rendering:pixelated}.tqr-empty{opacity:.7;padding:60px 0;font-size:20px}.tqr-note{margin-top:16px}.tqr-page.single .tqr-grid{grid-template-columns:1fr;max-width:900px;margin:0 auto}.tqr-page.single .tqr-card{background:0 0;border:none;gap:8px;padding:0}.tqr-page.single .tqr-table{padding:6px 28px;font-size:32px}.tqr-page.single .tqr-names{font-size:24px}.tqr-page.single .tqr-names .vs{font-size:16px}.tqr-page.single .tqr-qr{width:min(88vw,100dvh - 300px);min-width:200px;height:min(88vw,100dvh - 300px);min-height:200px;padding:14px}.tqr-page.single .tqr-empty{padding:20vh 0;font-size:32px}.tqr-howto{margin:6px 0 0}a.btn{align-items:center;text-decoration:none;display:inline-flex}.mobile-only{display:none}@media (width<=640px){.mobile-only{display:inline-flex}.desktop-only{display:none!important}.page-title .title-outline-btn{flex-shrink:0;margin-left:auto}}.ob-backdrop{z-index:70}.ob-modal{touch-action:pan-y;-webkit-user-select:none;user-select:none;flex-direction:column;gap:10px;max-width:460px;display:flex}.ob-top{align-items:center;gap:8px;min-height:28px;display:flex}.ob-slide{text-align:center;min-height:330px;animation:.22s ease-out ob-in}@keyframes ob-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ob-slide{animation:none}}.ob-art{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);width:100%;max-width:260px;height:auto;margin:4px auto 10px;padding:8px;display:block}.ob-card{fill:var(--card);stroke:var(--card-border);stroke-width:1.2px}.ob-card.gold{stroke:var(--plus)}.ob-field{fill:var(--surface);stroke:var(--card-border);stroke-width:1px}.ob-line{fill:none;stroke:#3f6f4d;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.ob-line.arrow{stroke:var(--side-b);stroke-width:2.2px}.ob-fill{fill:var(--text-faint)}.ob-fill.gold{fill:var(--plus)}.ob-fill.ok{fill:#7be08a}.ob-fill.dim{fill:var(--card-border)}.ob-table{fill:#1e5a36;stroke:var(--side-b);stroke-width:1.6px}.ob-table.free{stroke:#7be08a;stroke-dasharray:3 3}.ob-num{fill:var(--text);text-anchor:middle;font-size:16px;font-weight:800}.ob-small{fill:var(--text-dim);font-size:8px}.ob-small.mid{text-anchor:middle;fill:var(--plus);font-weight:700}.ob-qrbg{fill:#fff}.ob-qr{fill:#111}.ob-ring{fill:none;stroke:var(--plus);stroke-width:2px}.ob-title{margin:0 0 6px;font-size:18px}.ob-lead{color:var(--text);margin:0 0 10px}.ob-points{text-align:left;color:var(--text-dim);max-width:360px;margin:0 auto;padding:0 0 0 1.2em;font-size:13px}.ob-points li{margin:3px 0}.ob-dots{justify-content:center;gap:6px;display:flex}.ob-dot{appearance:none;background:var(--card-border);cursor:pointer;border:0;border-radius:999px;width:8px;height:8px;padding:0;transition:width .15s,background .15s}.ob-dot.on{background:var(--plus);width:22px}.ob-nav{gap:8px;display:flex}.ob-nav .btn{flex:1;padding:10px 14px}@media (width<=640px){.ob-slide{min-height:0}.ob-title{font-size:16px}}.league-wrap{margin-bottom:16px}.league-block{margin-bottom:18px}.league-scroll{border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);max-height:calc(100dvh - 260px);overflow:auto}.league-table{border-collapse:separate;border-spacing:0;white-space:nowrap;font-size:12px}.league-table th,.league-table td{border-right:1px solid var(--card-border);border-bottom:1px solid var(--card-border);text-align:center;padding:0;font-weight:400}.league-table thead th{z-index:2;background:var(--panel);color:var(--text-dim);min-width:52px;padding:6px 4px;position:sticky;top:0}.league-table thead th.corner,.league-table tbody th.me{z-index:3;background:var(--panel);text-align:left;min-width:132px;max-width:132px;padding:6px 8px;position:sticky;left:0}.league-table tbody th.me{z-index:1;color:var(--text)}.league-table .idx{min-width:16px;color:var(--text-faint);margin-right:4px;font-size:10px;display:inline-block}.league-table thead th.opp .nm,.league-table tbody th.me .nm{text-overflow:ellipsis;vertical-align:bottom;max-width:100px;display:inline-block;overflow:hidden}.league-table thead th.opp{max-width:64px;font-size:11px}.league-table thead th.opp .nm{max-width:56px}.league-table td.cell{min-width:52px;height:30px;color:var(--text-faint)}.league-table td.cell.diag{background:var(--bg-bottom);color:var(--card-border)}.league-table td.cell.off{background:var(--bg-top)}.league-table td.cell.win{color:var(--plus);background:#2a2110;font-weight:700}.league-table td.cell.loss{color:var(--minus);background:#16222e}.league-table td.cell.live{color:var(--side-b);background:#12333d}.league-table td.cell .live-mark{font-size:11px;font-weight:700}.league-table td.cell.clickable:hover{outline:1px solid var(--plus);outline-offset:-1px}.league-table .cell-btn{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;width:100%;height:30px}.league-table td.sum,.league-table th.sum{background:var(--card);min-width:92px;padding:4px 8px;line-height:1.3}.league-table td.sum .wl{color:var(--text);display:block}.league-table td.sum .faint{display:block}.league-table td.rank,.league-table th.rank{background:var(--card);min-width:46px;font-size:14px;font-weight:800}.league-table td.rank.r1{color:#f4b740}.league-table td.rank.r2{color:#c7d0d8}.league-table td.rank.r3{color:#d9a066}.league-note{margin:6px 2px 0}@media (width<=640px){.league-scroll{max-height:calc(100dvh - 200px)}.league-table thead th.corner,.league-table tbody th.me{min-width:104px;max-width:104px}.league-table thead th.opp .nm{max-width:44px}}.league-table td.rank .go-finals{color:var(--side-b);letter-spacing:.04em;margin-top:2px;font-size:9px;font-weight:700;display:block}.bracket-bar{gap:8px;margin-bottom:8px}.round-label.v{text-align:left;white-space:nowrap;top:auto}.vtree .bracket-lines path{stroke:#3f6f4d;stroke-width:2px;fill:none}.vtree .bracket-lines path.done{stroke:#5f9a70}.vtree .bracket-lines path.live{stroke:var(--side-b)}.vleaf{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);writing-mode:vertical-rl;justify-content:flex-start;align-items:center;gap:6px;padding:8px 2px;display:flex;position:absolute;overflow:hidden}.vleaf .nm{letter-spacing:.04em;font-size:13px;overflow:hidden}.vleaf .race{color:var(--text-faint);text-orientation:upright;letter-spacing:0;font-size:10px}.vleaf.won{border-color:var(--plus);color:var(--win)}.vleaf.lost{opacity:.55}.vleaf.empty{background:var(--surface)}.vmatch{border-radius:var(--radius-sm);white-space:nowrap;background:#06110bd9;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:26px;padding:0 6px;font-size:12px;display:flex;position:absolute;overflow:hidden}.vmatch.clickable{cursor:pointer}.vmatch.clickable:hover{border-color:var(--plus)}.vmatch .num{color:var(--text-faint);font-size:10px}.vmatch .win{color:var(--win);text-overflow:ellipsis;font-weight:700;overflow:hidden}.vmatch .win .sc{color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:400}.vmatch.playing{border-color:var(--side-b)}.vmatch .live{color:var(--side-b);font-weight:700}.rot-players{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;display:grid}.rot-player{appearance:none;text-align:center;background:var(--card);border:2px solid var(--card-border);border-radius:var(--radius);color:var(--text);cursor:pointer;flex-direction:column;align-items:center;gap:2px;min-height:150px;padding:10px 8px 12px;font-family:inherit;display:flex}.rot-player.on{border-color:#38d17a;box-shadow:0 0 0 2px #38d17a40}.rot-player.done{background:#1d2a17}.rot-player .nm{overflow-wrap:anywhere;font-size:13px;font-weight:700}.rot-player .target{color:var(--text-dim);font-size:11px}.rot-player .score{margin:2px 0 4px;font-size:40px;font-weight:800;line-height:1.1}.rot-player .balls{flex-wrap:wrap;justify-content:center;gap:3px;min-height:20px;display:flex}.rot-player .reach{color:#7be08a;margin-top:4px;font-size:11px;font-weight:700}.rot-hint{margin:0 2px 10px}.rot-rack{align-items:center;gap:8px;margin-bottom:6px;display:flex}.rot-balls{grid-template-columns:repeat(5,1fr);gap:6px;max-width:70%;margin:0 auto;display:grid}.ball{appearance:none;aspect-ratio:1;color:#12140f;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:100%;font-family:inherit;font-size:13px;font-weight:800;display:inline-flex;position:relative;box-shadow:inset 0 -3px 6px #00000059}.ball.mini{aspect-ratio:auto;width:17px;height:17px;box-shadow:none;cursor:default;font-size:9px}.ball.taken{opacity:.28;cursor:not-allowed}.ball.taken:after{content:"";border:2px solid #ffffffb3;border-radius:50%;position:absolute;inset:12%}.ball.b1{background:#f2c53d}.ball.b2{color:#fff;background:#2f6fd0}.ball.b3{color:#fff;background:#d5382f}.ball.b4{color:#fff;background:#7b3fa0}.ball.b5{background:#e8862a}.ball.b6{color:#fff;background:#2e8b57}.ball.b7{color:#fff;background:#8c3b2a}.ball.b8{color:#fff;background:#1b1b1b}.ball.b9{background:linear-gradient(#fff 28%,#f2c53d 28% 72%,#fff 72%)}.ball.b10{background:linear-gradient(#fff 28%,#2f6fd0 28% 72%,#fff 72%)}.ball.b11{background:linear-gradient(#fff 28%,#d5382f 28% 72%,#fff 72%)}.ball.b12{background:linear-gradient(#fff 28%,#7b3fa0 28% 72%,#fff 72%)}.ball.b13{background:linear-gradient(#fff 28%,#e8862a 28% 72%,#fff 72%)}.ball.b14{background:linear-gradient(#fff 28%,#2e8b57 28% 72%,#fff 72%)}.ball.b15{background:linear-gradient(#fff 28%,#8c3b2a 28% 72%,#fff 72%)}.input.score-input{text-align:center;width:76px;padding:6px 8px;font-size:15px;font-weight:700}.ball.locked{opacity:.35;cursor:not-allowed}.entry-qr{text-align:center;max-width:460px}.entry-qr-head{text-align:left;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.entry-qr-box{border-radius:10px;width:auto;height:auto;padding:10px;display:inline-flex}.entry-qr-box img{width:260px;height:260px;display:block}.entry-qr-lead{margin:12px 0 2px;font-size:15px;font-weight:700}.entry-qr-url{color:var(--text-dim);overflow-wrap:anywhere;margin:0 0 14px;font-size:11px}.entry-qr.big{max-width:min(96vw,720px)}.entry-qr.big .entry-qr-box img{width:clamp(240px,78vw,560px);height:clamp(240px,78vw,560px)}@media print{body{background:#fff!important}.app-shell,.topbar,.container{display:none!important}.modal-backdrop{background:0 0;padding:0;display:block;position:static}.entry-qr{color:#000;background:#fff;border:0;max-width:none}.entry-qr .faint,.entry-qr .entry-qr-url{color:#444}.entry-qr h2{color:#000}.entry-qr-box{background:#fff}.entry-qr-box img{width:420px;height:420px}.no-print{display:none!important}}.podium{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:60%;display:flex}@media (width<=640px){.podium{justify-content:flex-start;max-width:100%}.list-item{flex-wrap:wrap}}.slot.pickable{cursor:pointer}.slot.pickable:hover{background:#f6b93b1f}.vleaf.pickable{cursor:pointer}.vleaf.pickable:hover{border-color:var(--plus)}.swap-list{flex-direction:column;gap:6px;max-height:46vh;display:flex;overflow:auto}.swap-row{appearance:none;text-align:left;background:var(--panel);border:1px solid var(--card-border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;display:flex}.swap-row:hover{border-color:var(--plus)}.swap-row .nm{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}@media (width>=900px){.page-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:18px;display:grid}.page-layout>.page-head{margin-bottom:0;display:block;position:sticky;top:62px}.page-layout>.page-head .page-title{margin-bottom:10px;display:block}.page-layout>.page-head .page-title h1{overflow-wrap:anywhere;font-size:17px}.page-layout>.page-head .page-actions{flex-direction:column;align-items:stretch;gap:6px;max-height:calc(100dvh - 140px);margin-left:0;display:flex;overflow:auto}.page-layout>.page-head .page-actions .btn{text-align:left;padding:7px 10px;font-size:13px}.page-layout>.page-main{min-width:0}}.mode-choices{flex-direction:column;gap:8px;display:flex}.mode-choice{appearance:none;text-align:left;background:var(--panel);border:1px solid var(--card-border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;flex-direction:column;gap:3px;padding:9px 11px;font-family:inherit;display:flex}.mode-choice:hover{border-color:var(--plus)}.mode-choice.on{border-color:var(--plus);background:var(--card);box-shadow:inset 0 0 0 1px var(--plus)}.mode-choice .nm{font-weight:600}.entry-col{min-width:0}@media (width>=1100px){.entry-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.entry-list-col{max-height:calc(100dvh - 96px);position:sticky;top:12px;overflow:auto}}
