:root{--bg:#f6f8f6;--bg-grad:radial-gradient(1200px 400px at 50% -120px,#e7f2ea 0%,transparent 70%);--surface:#fff;--surface-2:#f2f5f3;--border:#e2e8e3;--border-strong:#cdd7d0;--text:#16201a;--text-muted:#5f6d64;--text-faint:#8a958d;--primary:#146b41;--primary-hover:#0f5433;--primary-soft:#e7f2ec;--primary-ring:rgba(20,107,65,.28);--accent:#d6ec3c;--warn:#a2570d;--warn-soft:#fdf3e6;--danger:#a92218;--danger-soft:#fdecea;--radius:14px;--radius-sm:9px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(18,32,24,.05);--shadow-md:0 6px 20px -8px rgba(18,32,24,.16),0 1px 2px rgba(18,32,24,.04);--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0e1512;--bg-grad:radial-gradient(1200px 400px at 50% -120px,#16261d 0%,transparent 70%);--surface:#151d19;--surface-2:#1b2521;--border:#26312b;--border-strong:#35433a;--text:#e8efea;--text-muted:#9daba2;--text-faint:#74827a;--primary:#4cc98a;--primary-hover:#6bd79e;--primary-soft:#172b21;--primary-ring:rgba(76,201,138,.3);--warn:#e6a552;--warn-soft:#2a2013;--danger:#f2837a;--danger-soft:#2b1715;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 8px 24px -10px rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.3)}}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--text);background-color:var(--bg);background-image:var(--bg-grad);background-repeat:no-repeat;-webkit-font-smoothing:antialiased;line-height:1.55}h1{font-size:clamp(1.5rem,1.2rem + 1.4vw,2rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 4px}h2{font-size:1.25rem;letter-spacing:-.01em}h2,h3{margin:0 0 8px}h3{font-size:1rem;letter-spacing:-.005em}p{margin:0 0 12px}a{color:var(--primary);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}.muted,small{color:var(--text-muted);font-size:.8125rem}.faint{color:var(--text-faint)}.lead{color:var(--text-muted);max-width:68ch}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page{max-width:1080px;margin:0 auto;padding:28px 20px 72px}.page-head{margin-bottom:20px}.stack{display:flex;flex-direction:column;gap:12px}.row{align-items:center}.row,.row-between{display:flex;gap:12px;flex-wrap:wrap}.row-between{align-items:flex-start;justify-content:space-between}.spacer{flex:1 1}.header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border)}.header-inner{max-width:1080px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.02em;color:var(--text);font-size:1.0625rem}.brand:hover{text-decoration:none}.brand-ball{width:20px;height:20px;border-radius:50%;background:var(--accent);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.16);position:relative;flex:none}.brand-ball:after{content:"";position:absolute;inset:-2px 0;border-radius:50%;border-left:2px solid hsla(0,0%,100%,.95);border-right:2px solid hsla(0,0%,100%,.95)}.nav{display:flex;gap:2px;flex-wrap:wrap;align-items:center}.nav a{color:var(--text-muted);font-size:.875rem;font-weight:500;padding:6px 11px;border-radius:var(--radius-pill);white-space:nowrap}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a[aria-current=page]{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-sep{width:1px;height:20px;background:var(--border);margin:0 6px}.who{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.card-tight{padding:14px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.card-head h2,.card-head h3{margin:0}.card-link{color:inherit}.card-link:hover{text-decoration:none}a.card{display:block;color:inherit}a.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);text-decoration:none}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 15px;font:inherit;font-size:.875rem;font-weight:600;line-height:1.3;cursor:pointer;background:var(--primary);color:#fff;transition:background-color .15s,border-color .15s,opacity .15s}@media (prefers-color-scheme:dark){.btn{color:#08130d}}a.btn,a.btn:hover{text-decoration:none}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:focus-visible{outline:2px solid var(--primary-ring);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger);filter:brightness(.92)}.btn-sm{padding:5px 11px;font-size:.8125rem}.field{display:flex;flex-direction:column;gap:5px}.field>span,.label{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-faint)}input,select,textarea{font:inherit;font-size:.9375rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 11px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}input[type=number]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;font-size:.9375rem}thead th{text-align:left;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-2);padding:10px 14px;white-space:nowrap}tbody td,thead th{border-bottom:1px solid var(--border)}tbody td{padding:11px 14px;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 15px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);font-size:.9375rem;margin-bottom:14px}.banner-primary{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 22%,transparent)}.banner-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 26%,transparent);color:var(--warn)}.banner-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 26%,transparent);color:var(--danger)}.empty{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:32px 20px;text-align:center;background:color-mix(in srgb,var(--surface) 60%,transparent)}.empty,.rank{color:var(--text-muted)}.rank{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:.8125rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--surface-2)}.rank-1{background:#f4d03f;color:#4a3800}.rank-2{background:#cfd6da;color:#3b4247}.rank-3{background:#e0a878;color:#4a2d10}.avatar{border-radius:50%;object-fit:cover;border:1px solid var(--border)}.avatar,.avatar-fallback{width:34px;height:34px;flex:none}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:.8125rem;font-weight:700}.avatar-lg{width:104px;height:104px;border-radius:var(--radius)}.avatar-fallback.avatar-lg{font-size:1.75rem;letter-spacing:.02em}.player-cell{display:flex;align-items:center;gap:10px}.points{font-size:1.0625rem;font-weight:700}.points,.score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score{font-weight:600;letter-spacing:.02em}.meta{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;color:var(--text-muted)}.meta-warn{color:var(--warn);font-weight:500}.meta-ok{color:var(--primary);font-weight:500}.meta-danger{color:var(--danger);font-weight:500}.bracket{display:flex;gap:18px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}.bracket-col{min-width:272px;flex:none}.bracket-round{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px}.tie{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:14px;overflow:hidden}.tie-team{display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:.9375rem}.tie-team+.tie-team{border-top:1px solid var(--border)}.tie-team-won{font-weight:600;background:var(--primary-soft)}.tie-team-out{color:var(--text-faint)}.tie-score{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;border-top:1px solid var(--border);background:var(--surface-2);font-size:.8125rem;color:var(--text-muted)}.tie-score strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.tie-meta{padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.sets{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.set-input{display:flex;align-items:center;gap:4px}.set-input input{width:54px;text-align:center;padding:7px 6px}.set-dash{color:var(--text-faint)}.slot-editor{flex-wrap:wrap;align-items:center;gap:6px}.slot-position{min-width:14px;font-size:.6875rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-faint)}.slot-fields{display:flex;flex:1 1;gap:6px;min-width:0}.slot-fields input{flex:1 1;min-width:0;padding:6px 9px;font-size:.875rem}.slot-players{flex-basis:100%;padding-left:20px;font-size:.75rem}