:root{--color-primary:#e3350d;--color-primary-dark:#c6280a;--color-secondary:#3d7dca;--color-bg:#f5f5f8;--color-surface:#fff;--color-text:#1a1a2e;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-positive:#16a34a;--color-negative:#dc2626;--color-gold:#f59e0b;--radius:8px;--shadow:0 1px 3px #0000001a;--shadow-md:0 4px 12px #00000014;--max-width:1200px;--mode-color:#e3350d;--mode-color-light:#ff6b35;--mode-color-bg:#fff4f0}[data-stats-mode=all]{--mode-color:#e3350d;--mode-color-light:#ff6b35;--mode-color-bg:#fff4f0}[data-stats-mode=single]{--mode-color:#2563eb;--mode-color-light:#3b82f6;--mode-color-bg:#eff6ff}[data-stats-mode=double]{--mode-color:#0d9488;--mode-color-light:#14b8a6;--mode-color-bg:#f0fdfa}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,Hiragino Sans,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;line-height:1.6}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}.layout{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow);z-index:100;position:sticky;top:0}.header-inner{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:.75rem 1rem;display:flex}.logo{color:var(--color-primary);font-size:1.1rem;font-weight:700;text-decoration:none}.logo:hover{color:var(--color-primary-dark);text-decoration:none}.nav{align-items:center;gap:1.25rem;display:flex}.nav a{color:var(--color-text);border-bottom:2px solid #0000;align-items:center;padding:.35rem 0 .2rem;font-size:.95rem;font-weight:500;line-height:1.25;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.nav a:hover{color:var(--color-primary);text-decoration:none}.nav a.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:700}.header-right{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.header-auth{align-items:center;gap:.5rem;min-height:2rem;font-size:.95rem;line-height:1.25;display:inline-flex}.header-auth-loading{color:var(--color-text-muted);padding:.35rem 0}.header-auth-login{color:var(--color-primary);white-space:nowrap;border:1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));background:color-mix(in srgb, var(--color-primary) 6%, white);border-radius:.45rem;justify-content:center;align-items:center;padding:.35rem .85rem;font-size:.95rem;font-weight:600;line-height:1.25;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.header-auth-login:hover{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 11%, white);border-color:color-mix(in srgb, var(--color-primary) 32%, var(--color-border));text-decoration:none}.header-auth-user{flex-wrap:wrap;justify-content:flex-end;font-size:.82rem}.header-auth-name{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;color:var(--color-text-muted);overflow:hidden}.header-auth-me-link{border-radius:.35rem;padding:.15rem .35rem;text-decoration:none;transition:background .15s,color .15s}.header-auth-me-link:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-primary) 8%, white);text-decoration:none}.header-auth-role{background:color-mix(in srgb, var(--color-primary) 12%, white);color:var(--color-primary);border-radius:.35rem;padding:.12rem .4rem;font-size:.72rem;font-weight:700}.header-auth-logout{color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;font-weight:600}.header-auth-logout:hover{text-decoration:underline}.header-auth-logout:disabled{opacity:.5;cursor:not-allowed}.login-form{max-width:28rem;padding:1rem 1.15rem}.login-google{max-width:28rem;margin-bottom:1rem}.login-google-button{color:#3c4043;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:.5rem;justify-content:center;align-items:center;gap:.75rem;width:100%;padding:.7rem 1rem;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.login-google-button:hover{background:#f8f9fa;border-color:#d2d5da}.login-google-button:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex:0 0 18px;width:18px;height:18px}.login-google-text{white-space:nowrap}.login-divider{max-width:28rem;color:var(--color-text-muted);align-items:center;gap:.75rem;margin:.75rem 0 1rem;font-size:.85rem;display:flex}.login-divider-line{background:var(--color-border);flex:1;height:1px}.login-divider-label{white-space:nowrap}.login-mode-tabs{gap:.5rem;max-width:28rem;margin-bottom:1rem;display:flex}.login-mode-tab{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:.5rem;flex:1;padding:.55rem .75rem;font-weight:600}.login-mode-tab.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, white)}.login-register-note{max-width:28rem;margin-bottom:1rem;font-size:.88rem}.login-form .admin-submit-button{width:auto;margin-top:.5rem}.login-back{margin-top:1rem;font-size:.88rem}.main{max-width:var(--max-width);flex:1;width:100%;margin:0 auto;padding:1.5rem 1rem 3rem}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);padding:1rem;font-size:.85rem}.page{animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes homeReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.home-page .home-reveal{animation:.5s backwards homeReveal}.home-reveal-delay-1{animation-delay:60ms}.home-reveal-delay-2{animation-delay:.12s}.home-reveal-delay-3{animation-delay:.18s}.home-reveal-delay-4{animation-delay:.24s}.home-reveal-delay-5{animation-delay:.3s}.home-reveal-delay-6{animation-delay:.36s}.card-interactive{transition:transform .22s,box-shadow .22s,border-color .25s,background .25s,color .25s}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}[data-stats-mode] .active-season-card,[data-stats-mode] .active-season-mode-badge,[data-stats-mode] .home-page .section-title,[data-stats-mode] .home-page .section-mode-label,[data-stats-mode] .battle-format-toggle button,[data-stats-mode] .chart-card,[data-stats-mode] .collapsible-section-chevron,[data-stats-mode] .collapsible-section-toggle[aria-expanded=true]{transition:color .25s,background .25s,background-color .25s,border-color .25s,box-shadow .25s}@media (prefers-reduced-motion:reduce){.page,.home-page .home-reveal{animation:none}.card-interactive,.card-interactive:hover{transition:box-shadow .2s;transform:none}.display-mode-segment-btn:active{transform:none}}.page-title{color:var(--color-text);margin-bottom:1.5rem;font-size:1.75rem}.page-header{margin-bottom:1.5rem}.back-link{margin-bottom:.75rem;font-size:.9rem;display:inline-block}.season-detail-dates{color:var(--color-text-muted);margin-bottom:.5rem}.section{margin-bottom:2rem}.section-title{border-bottom:2px solid var(--color-primary);margin-bottom:1rem;padding-bottom:.5rem;font-size:1.2rem;display:inline-block}.status-badge{border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.status-active{color:#166534;background:#dcfce7}.status-completed{color:#4b5563;background:#f3f4f6}.status-upcoming{color:#1e40af;background:#dbeafe}.active-season-banner{background:linear-gradient(135deg, var(--color-primary), #ff6b35);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.active-season-banner h3{margin-bottom:.25rem;font-size:1.4rem}.active-season-banner p{opacity:.9;margin-bottom:.5rem}.active-season-banner .status-badge{color:#fff;background:#ffffff40}.link-button{color:var(--color-primary);border-radius:var(--radius);white-space:nowrap;background:#fff;padding:.5rem 1.25rem;font-weight:600;text-decoration:none;display:inline-block}.link-button:hover{background:#fff5f3;text-decoration:none}.active-season-card{background:linear-gradient(155deg, color-mix(in srgb, var(--mode-color-bg) 75%, white) 0%, color-mix(in srgb, var(--mode-color-bg) 30%, white) 38%, var(--color-surface) 75%);color:var(--color-text);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--mode-color) 18%, var(--color-border));border-top:4px solid var(--mode-color);cursor:pointer;box-shadow:var(--shadow), 0 2px 10px color-mix(in srgb, var(--mode-color) 8%, transparent);margin-bottom:1.25rem;padding:1rem 1.15rem .95rem;text-decoration:none;display:block}.active-season-card:hover{color:var(--color-text);text-decoration:none}.active-season-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.55rem;display:flex}.active-season-mode-badge{letter-spacing:.02em;color:var(--mode-color);background:var(--mode-color-bg);border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:700;transition:color .25s,background .25s;display:inline-block}.active-season-card-title{color:var(--color-text);letter-spacing:-.01em;margin:0 0 .2rem;font-size:1.5rem;font-weight:800;line-height:1.25}.active-season-card-dates{color:var(--color-text-muted);margin:0 0 .65rem;font-size:.82rem;font-weight:500}.active-season-card-leader{border-radius:calc(var(--radius) - 2px);background:color-mix(in srgb, var(--mode-color-bg) 55%, white);border-left:3px solid var(--mode-color);flex-wrap:wrap;align-items:baseline;gap:.4rem .65rem;margin-bottom:.65rem;padding:.55rem .7rem;display:flex}.active-season-leader-label{letter-spacing:.04em;text-transform:uppercase;color:var(--mode-color);font-size:.72rem;font-weight:700}.active-season-leader-name{color:var(--color-text);font-size:1.2rem;font-weight:800;line-height:1.2}.active-season-card-metrics{border-top:1px solid color-mix(in srgb, var(--mode-color) 14%, var(--color-border));flex-wrap:wrap;align-items:center;gap:.2rem 0;padding-top:.6rem;font-size:.84rem;line-height:1.4;display:flex}.active-season-metric{white-space:nowrap;align-items:baseline;gap:.25rem;display:inline-flex}.active-season-metric+.active-season-metric:before{content:"·";color:var(--color-text-muted);margin:0 .5rem;font-weight:700}.active-season-metric-label{color:var(--color-text-muted);font-size:.78rem;font-weight:500}.active-season-metric-value{color:var(--color-text);font-weight:700}.active-season-format-compare{border-top:1px solid color-mix(in srgb, var(--mode-color) 12%, var(--color-border));grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.75rem;padding-top:.75rem;display:grid}.active-season-format-pane{border-radius:calc(var(--radius) - 2px);min-width:0;padding:.6rem .75rem .55rem}.active-season-format-pane-single{background:#f6faff;border-left:3px solid #2563eb}.active-season-format-pane-double{background:#f7fefc;border-left:3px solid #0d9488}.active-season-format-pane-title{letter-spacing:.03em;margin-bottom:.45rem;font-size:.72rem;font-weight:700;display:block}.active-season-format-pane-single .active-season-format-pane-title{color:#2563eb}.active-season-format-pane-double .active-season-format-pane-title{color:#0d9488}.active-season-format-pane-stats{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.active-season-format-pane-stat{flex-direction:column;flex:1;gap:.12rem;min-width:0;display:flex}.active-season-format-pane-stat-left{text-align:left;align-items:flex-start}.active-season-format-pane-stat-right{text-align:right;flex-shrink:0;align-items:flex-end}.active-season-format-pane-primary{color:var(--color-text);font-size:1.05rem;font-weight:800;line-height:1.2}.active-season-format-pane-stat-left .active-season-format-pane-primary{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.active-season-format-pane-caption{color:var(--color-text-muted);letter-spacing:.02em;font-size:.68rem;font-weight:600}.active-season-format-pane-matches{border-top:1px solid color-mix(in srgb, var(--color-border) 80%, transparent);color:var(--color-text-muted);margin-top:.45rem;padding-top:.4rem;font-size:.78rem;font-weight:600;display:block}.home-page .section-title{border-bottom-color:var(--mode-color);flex-wrap:wrap;align-items:center;gap:.45rem;transition:border-color .25s;display:inline-flex}.home-page .section-mode-label{color:var(--mode-color);font-size:.85rem;font-weight:600;transition:color .25s}.season-detail-page .season-detail-back{margin-bottom:1rem;display:inline-block}.season-detail-page .section-title{border-bottom-color:var(--mode-color);flex-wrap:wrap;align-items:center;gap:.45rem;transition:border-color .25s;display:inline-flex}.season-detail-page .section-mode-label{color:var(--mode-color);font-size:.85rem;font-weight:600;transition:color .25s}.season-rules-section{margin-bottom:0}.overview-panel{margin-bottom:1.5rem}.overview-panel-toolbar{justify-content:flex-end;align-items:center;margin-bottom:.65rem;display:flex}.overview-panel-toolbar .battle-format-toggle{gap:.2rem;width:auto;max-width:13rem;margin:0;padding:.2rem;display:inline-flex}.overview-panel-toolbar .battle-format-toggle button{white-space:nowrap;flex:0 auto;padding:.4rem .85rem}.display-mode-control{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}.display-mode-control-label{color:var(--color-text-muted);letter-spacing:.03em;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:.72rem;font-weight:600}.display-mode-segment{border-radius:calc(var(--radius) - 1px);border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);background:color-mix(in srgb, var(--color-bg) 50%, white);box-shadow:none;gap:2px;padding:2px;display:inline-flex}.display-mode-segment-btn{border-radius:calc(var(--radius) - 3px);min-height:1.65rem;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.26rem .62rem;font-family:inherit;font-size:.76rem;font-weight:500;line-height:1.2;transition:background-color .2s,color .2s,transform .15s}.display-mode-segment-btn:hover:not(.active){color:var(--color-text);background:color-mix(in srgb, var(--color-bg) 70%, white)}.display-mode-segment-btn.mode-single:not(.active):hover{color:#2563eb;background:#f3f8ff}.display-mode-segment-btn.mode-double:not(.active):hover{color:#0d9488;background:#f4fefb}.display-mode-segment-btn.active{box-shadow:none;font-weight:600}.display-mode-segment-btn.active.mode-single{color:#fff;background:#2563eb}.display-mode-segment-btn.active.mode-double{color:#fff;background:#0d9488}.display-mode-segment-btn:active{transform:scale(.97)}.overview-panel-toolbar--display-mode{margin-bottom:.55rem}.overview-panel-body>.season-overview-card{border:1px solid color-mix(in srgb, var(--mode-color) 18%, var(--color-border));border-top:3px solid var(--mode-color);border-radius:var(--radius);box-shadow:var(--shadow)}.overview-panel-body>.active-season-card{border:1px solid color-mix(in srgb, var(--mode-color) 18%, var(--color-border));border-top:4px solid var(--mode-color);border-radius:var(--radius);box-shadow:var(--shadow), 0 2px 10px color-mix(in srgb, var(--mode-color) 8%, transparent);margin-bottom:0}.season-overview-card{background:linear-gradient(155deg, #fff4f0 0%, #fffcfb 38%, var(--color-surface) 75%);color:var(--color-text);border:1px solid var(--color-border);box-shadow:none;padding:1.15rem 1.25rem 1.1rem}.season-overview-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.season-overview-card-title{letter-spacing:-.02em;flex:1;min-width:0;margin:0;font-size:2rem;font-weight:800;line-height:1.2}.season-overview-body{grid-template-columns:minmax(0,1fr) minmax(15rem,1.4fr);align-items:stretch;gap:1.25rem 1.75rem;display:grid}.season-overview-left{min-width:0}.season-overview-card-dates{color:var(--color-text-muted);white-space:nowrap;margin:0 0 .4rem;font-size:.85rem;font-weight:500}.season-overview-meta{color:var(--color-text);flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;display:flex}.season-overview-meta-sep{color:var(--color-text-muted);font-weight:400}.season-overview-rules-title,.season-overview-ranking-title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .45rem;font-size:.72rem;font-weight:700}.season-overview-rules-title{align-items:center;gap:.4rem;display:flex}.season-overview-rules-format{letter-spacing:.02em;text-transform:none;color:var(--mode-color);background:color-mix(in srgb, var(--mode-color-bg) 70%, white);border:1px solid color-mix(in srgb, var(--mode-color) 22%, var(--color-border));border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.season-overview-rules-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.season-overview-rules-list li{color:var(--color-text-muted);padding-left:.75rem;font-size:.8rem;line-height:1.45;position:relative}.season-overview-rules-list li:before{content:"·";font-weight:700;position:absolute;left:0}.season-overview-ranking{border-radius:calc(var(--radius) - 2px);border-left:3px solid var(--color-primary);background:#fffaf8;padding:.65rem .75rem}.season-overview-ranking-featured{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--mode-color) 22%, var(--color-border));border-left:4px solid var(--mode-color);background:linear-gradient(165deg, color-mix(in srgb, var(--mode-color-bg) 85%, white) 0%, color-mix(in srgb, var(--mode-color-bg) 35%, white) 45%, var(--color-surface) 100%);min-height:100%;box-shadow:var(--shadow), inset 0 1px 0 #fffc;flex-direction:column;padding:1.15rem 1.25rem 1.35rem;display:flex}.season-overview-ranking-featured .season-overview-ranking-title{letter-spacing:.06em;color:var(--mode-color);margin-bottom:.85rem;font-size:.95rem}.season-overview-ranking-featured .season-overview-ranking-list{flex:1;justify-content:flex-start;gap:.55rem}.season-overview-ranking-featured .season-overview-ranking-item{grid-template-columns:1.75rem minmax(0,1fr) auto;gap:.5rem .65rem;padding:.35rem 0;font-size:1rem}.season-overview-ranking-featured .season-overview-ranking-rank{color:var(--mode-color);font-size:1.15rem}.season-overview-ranking-featured .season-overview-ranking-name{font-size:1.02rem}.season-overview-ranking-featured .season-overview-ranking-rating{color:var(--mode-color);font-size:1.1rem}.season-overview-ranking-empty{color:var(--color-text-muted);margin:0;font-size:.82rem}.season-overview-ranking-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.season-overview-ranking-item{grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:baseline;gap:.35rem .5rem;font-size:.85rem;display:grid}.season-overview-ranking-rank{color:var(--color-primary);text-align:center;font-weight:700}.season-overview-ranking-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-decoration:none;overflow:hidden}.season-overview-ranking-name:hover{color:var(--color-secondary);text-decoration:underline}.season-overview-ranking-rating{color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:800}.season-participants-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.6rem;display:grid}.season-participant-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;border-left:3px solid var(--color-secondary);align-items:center;padding:.65rem .85rem;text-decoration:none;display:flex}.season-participant-name{font-size:.92rem;font-weight:600}.season-rules-panel{flex-direction:column;gap:.85rem;display:flex}.season-rules-block{border-radius:calc(var(--radius) - 2px);background:var(--color-surface);box-shadow:var(--shadow);padding:.75rem .85rem}.season-rules-block-title{color:var(--color-text);margin-bottom:.45rem;font-size:.85rem;font-weight:700}.season-rules-block-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.season-rules-block-list li{color:var(--color-text-muted);padding-left:.85rem;font-size:.85rem;line-height:1.45;position:relative}.season-rules-block-list li:before{content:"·";color:var(--color-text-muted);font-weight:700;position:absolute;left:0}.season-rules-block-single{background:#f9fbff;border-left:3px solid #2563eb}.season-rules-block-single .season-rules-block-title{color:#2563eb}.season-rules-block-double{background:#f9fefd;border-left:3px solid #0d9488}.season-rules-block-double .season-rules-block-title{color:#0d9488}.season-card-stat dd{white-space:nowrap}.home-page .section:first-of-type{margin-top:0}.home-quick-match{flex-direction:column;gap:.45rem;display:flex}.home-quick-match-row{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;display:flex}.home-quick-match-bo{border:1px solid var(--color-border);border-radius:.45rem;margin:0;padding:0;display:inline-flex;overflow:hidden}.home-quick-match-bo-option{cursor:pointer;color:var(--color-text-muted);align-items:center;font-size:.78rem;font-weight:700;display:inline-flex}.home-quick-match-bo-option input{opacity:0;width:0;height:0;position:absolute}.home-quick-match-bo-option span{padding:.3rem .55rem;line-height:1.2;display:block}.home-quick-match-bo-option:has(input:checked) span{background:var(--color-primary);color:#fff}.home-quick-match-side{align-items:center;gap:.3rem;font-size:.82rem;display:inline-flex}.home-quick-match-side-label{color:var(--color-text-muted);flex-shrink:0;font-weight:700}.home-quick-match-side select,.home-quick-match-score{border:1px solid var(--color-border);background:var(--color-surface);min-width:5.5rem;max-width:8.5rem;color:var(--color-text);border-radius:.4rem;padding:.3rem .45rem;font-size:.82rem}.home-quick-match-score{text-align:center;min-width:2.75rem;max-width:3rem}.home-quick-match-divider{color:var(--color-text-muted);-webkit-user-select:none;user-select:none;font-size:.82rem}.home-quick-match-submit{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:.4rem;padding:.35rem .85rem;font-size:.82rem;font-weight:700}.home-quick-match-submit:disabled{opacity:.45;cursor:not-allowed}.home-quick-match-admin-link{color:var(--color-secondary);white-space:nowrap;font-size:.8rem;font-weight:600;text-decoration:none}.home-quick-match-admin-link:hover{text-decoration:underline}.home-quick-match-feedback{margin:0;font-size:.8rem}.home-quick-match-feedback-success{color:#15803d}.home-quick-match-feedback-error{color:#b91c1c}@media (width<=640px){.home-quick-match-row{gap:.4rem}.home-quick-match-side select{flex:6rem;min-width:0}.home-quick-match-submit{margin-left:auto}}.home-rules-section{margin-top:.5rem;margin-bottom:0}.collapsible-section{margin-bottom:2rem}.collapsible-section-toggle{border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:.5rem;width:100%;margin:0 -.65rem;padding:.5rem .65rem;font-family:inherit;transition:background .2s,border-color .2s;display:flex}.collapsible-section-toggle:hover{background:#0000000a}[data-stats-mode] .collapsible-section-toggle:hover{background:var(--mode-color-bg)}.collapsible-section-toggle[aria-expanded=true]{border-left-color:var(--mode-color)}.collapsible-section-chevron{width:.85rem;color:var(--mode-color);text-align:center;flex-shrink:0;font-size:.6rem;line-height:1}.collapsible-section-title{color:var(--color-text);font-size:1.05rem;font-weight:600}.collapsible-section-content{padding-top:.75rem}.rules-summary ul{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.25rem;list-style:none}.rules-summary li{padding:.35rem 0 .35rem 1rem;position:relative}.rules-summary li:before{content:"•";color:var(--color-primary);font-weight:700;position:absolute;left:0}.table-wrapper{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.standings-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.875rem}.standings-table th,.standings-table td{text-align:center;vertical-align:middle;border-bottom:1px solid var(--color-border);padding:.65rem .75rem}.standings-table th{color:var(--color-text-muted);background:#f9fafb;font-size:.8rem;font-weight:600;position:sticky;top:0}.standings-table tbody tr:hover{background:#fafafa}.standings-table .rank-cell{color:var(--color-primary);font-weight:700}.standings-table .player-cell{text-align:left;font-weight:600}.standings-table th.player-cell{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.standings-player-cell-inner{flex-direction:row;justify-content:flex-start;align-items:center;gap:.45rem;line-height:1.35;display:inline-flex}.standings-player-text{flex-flow:row;align-items:center;gap:.5rem;min-width:0;display:flex}.standings-player-name{white-space:nowrap;line-height:1.35}.standings-table .rating-cell{color:var(--color-secondary);font-weight:700}.standings-table .positive{color:var(--color-positive)}.standings-table .negative{color:var(--color-negative)}.standings-row-excluded{opacity:.85}.standings-row-excluded .rank-cell{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.standings-excluded-note{white-space:nowrap;color:var(--color-text-muted);flex-shrink:0;font-size:.78rem;font-weight:500;line-height:1.3}.standings-separator-row td{color:var(--color-text-muted);background:var(--color-bg);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:.5rem .75rem;font-size:.75rem;font-weight:600}.match-log{flex-direction:column;gap:.75rem;display:flex}.match-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.match-meta{color:var(--color-text-muted);gap:.75rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.match-format{background:#f3f4f6;border-radius:4px;padding:.1rem .5rem;font-weight:600}.match-badge{border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.match-badge.battle-single{color:var(--color-primary);background:#fff5f3}.match-badge.battle-double{color:var(--color-secondary);background:#eff6ff}.match-badge.match-type{color:var(--color-text-muted);background:#f3f4f6}.battle-format-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);gap:.25rem;margin-bottom:1.5rem;padding:.25rem;display:inline-flex}.battle-format-toggle button{border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.45rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .25s,color .25s}.battle-format-toggle button:hover{color:var(--color-text);background:var(--color-bg)}.battle-format-toggle button.active{background:var(--mode-color);color:#fff;font-weight:700;box-shadow:0 1px 3px #0000001f}.player-overview-filter{display:none}.player-card-compact{flex-direction:row;align-items:center;gap:.85rem;padding:1rem 1.15rem}.player-card-body{flex:1;min-width:0}.player-card-compact h3{margin-bottom:0;font-size:1.1rem}.player-card-main{color:var(--color-text);flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.9rem;font-weight:600;display:flex}.player-card-formats{color:var(--color-text-muted);align-items:center;gap:.25rem;font-size:.8rem;display:flex}.player-card-dot{color:var(--color-border)}.player-card-rating{color:var(--color-secondary);font-weight:700}.match-players{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:1rem;display:flex}.match-score{color:var(--color-text-muted);font-size:1.1rem;font-weight:700}.match-players .winner,.match-player-name.winner{color:var(--color-primary);font-weight:700}.match-player-name{align-items:center;gap:.4rem;display:inline-flex}.match-result-winner{align-items:center;gap:.4rem;margin-left:.25rem;display:inline-flex}.match-result-label{margin-right:.15rem}.match-rating-changes{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-top:.35rem;font-size:.8rem;display:flex}.match-rating-sep{color:var(--color-text-muted)}.match-rating-changes .positive{color:var(--color-positive);font-weight:600}.match-rating-changes .negative{color:var(--color-negative);font-weight:600}.match-result{color:var(--color-text-muted);margin-top:.35rem;font-size:.85rem}.awards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.award-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--color-gold);text-align:center;padding:1rem}.award-label{color:var(--color-gold);margin-bottom:.35rem;font-size:.85rem;font-weight:700}.award-player{margin-bottom:.25rem;font-size:1.15rem;font-weight:700}.award-description{color:var(--color-text-muted);font-size:.8rem}.seasons-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.season-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;gap:.75rem;height:100%;padding:1.25rem;text-decoration:none;display:flex}.season-card:hover{text-decoration:none}.season-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.season-card h3{flex:1;font-size:1.1rem;line-height:1.4}.season-card-stats{flex-direction:column;flex:1;gap:.5rem;display:flex}.season-card-stat{justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.875rem;display:flex}.season-card-stat dt{color:var(--color-text-muted);flex-shrink:0}.season-card-stat dd{text-align:right;font-weight:500}.season-card-highlight dd{color:var(--color-primary);font-weight:700}.season-card-link{color:var(--color-secondary);margin-top:auto;padding-top:.5rem;font-size:.9rem;font-weight:600}.season-card:hover .season-card-link{color:var(--color-primary)}.season-dates{color:var(--color-text-muted);font-size:.9rem}.participants-list{flex-wrap:wrap;gap:.5rem;display:flex}.participant-tag,.season-tag{color:var(--color-secondary);background:#eff6ff;border-radius:999px;padding:.35rem .75rem;font-size:.9rem;font-weight:500}.player-avatar{background:#eceff1;border-radius:50%;flex-shrink:0;display:inline-flex;overflow:hidden}.player-avatar--small{width:1.5rem;height:1.5rem}.player-avatar--medium{width:2.5rem;height:2.5rem}.player-avatar--large{width:4rem;height:4rem}.player-avatar__image{object-fit:cover;width:100%;height:100%;display:block}.player-avatar__fallback{background:#eceff1;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.player-avatar__icon{color:#9aa3ad;width:62%;height:62%}.players-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.player-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;gap:.75rem;height:100%;padding:1.25rem;text-decoration:none;display:flex}.player-card:hover{text-decoration:none}.player-card h3{margin-bottom:0;font-size:1.15rem}.player-card-stats{flex-direction:column;gap:.45rem;display:flex}.player-card-stat{justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.875rem;display:flex}.player-card-stat dt{color:var(--color-text-muted);flex-shrink:0}.player-card-stat dd{text-align:right;font-weight:500}.player-card-stat .rating-value{color:var(--color-secondary);font-weight:700}.player-meta{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.85rem}.player-seasons{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.season-tag{font-size:.8rem;text-decoration:none}.season-tag:hover{background:#dbeafe;text-decoration:none}.empty-message{color:var(--color-text-muted);padding:1rem 0;font-style:italic}.placeholder-notice{border-radius:var(--radius);color:var(--color-text-muted);background:#f3f4f6;padding:1rem 1.25rem}.player-detail-page .section{margin-bottom:1.25rem}.player-detail-page .section:last-child{margin-bottom:0}.page-section-group{margin-bottom:2rem}.page-section-group.is-collapsed{margin-bottom:1.25rem}.page-section-group-toggle{border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:.5rem;width:100%;margin:0 -.65rem;padding:.5rem .65rem;font-family:inherit;transition:background .2s,border-color .2s;display:flex}.page-section-group-toggle:hover{background:#0000000a}[data-stats-mode] .page-section-group-toggle:hover{background:var(--mode-color-bg)}[data-stats-mode] .page-section-group:not(.is-collapsed) .page-section-group-toggle{border-left-color:var(--mode-color)}.page-section-group-toggle:hover .page-section-group-label{color:var(--color-text)}.page-section-group-toggle:hover .page-section-group-chevron{color:var(--color-text-muted)}[data-stats-mode] .page-section-group-chevron,[data-stats-mode] .page-section-group-toggle:hover .page-section-group-chevron{color:var(--mode-color)}.page-section-group-chevron{width:.85rem;color:var(--color-text-muted);text-align:center;flex-shrink:0;font-size:.6rem;line-height:1}.page-section-group-label{letter-spacing:normal;text-transform:none;color:var(--color-text);font-size:.95rem;font-weight:600}.page-section-group-content{flex-direction:column;gap:1.5rem;padding-top:.5rem;display:flex}.player-detail-page .page-section-group-content .section-title{color:var(--color-text);border-bottom:none;margin-bottom:.75rem;padding-bottom:0;font-size:1.05rem;font-weight:600}.page-section-group-content>.section{margin-bottom:0}.performance-summary-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}@media (width<=1024px){.performance-summary-grid{grid-template-columns:repeat(2,1fr)}.performance-summary-grid .chart-card-opponent{grid-column:1/-1}}.performance-summary-grid .chart-card{height:100%}.chart-card-summary .chart-card-title{font-size:.95rem}.chart-card-summary .chart-card-description{font-size:.75rem}.opponent-breakdown-legend-compact{gap:.2rem;margin-top:.5rem;font-size:.7rem}.opponent-breakdown-legend-compact li{border-bottom:none;padding:.15rem 0}.opponent-breakdown-legend-compact a{font-weight:500}.opponent-breakdown-legend-compact span{font-size:.7rem}.season-performance-block{margin-bottom:1rem}.season-performance-block:last-child{margin-bottom:0}.player-detail-toolbar{flex-direction:column;align-items:flex-start;gap:.75rem;width:100%;margin-bottom:1.25rem;display:flex}.player-detail-page .back-link{margin-bottom:0;display:block}.player-detail-toolbar .battle-format-toggle{width:100%;max-width:360px;margin-bottom:0;display:flex}.player-detail-toolbar .battle-format-toggle button{flex:1}.filter-section{margin-bottom:1.5rem}.player-profile-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);border-top:4px solid var(--mode-color);margin-bottom:2rem;padding:1.5rem;transition:border-color .25s}.player-profile-identity{align-items:center;gap:1rem;min-width:0;display:flex}.player-profile-avatar{flex:none;position:relative}.player-avatar-upload{cursor:pointer;position:absolute;bottom:-.35rem;left:50%;transform:translate(-50%)}.player-avatar-upload-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.player-avatar-upload-button{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, white);color:var(--color-text-muted);box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.player-avatar-upload:hover .player-avatar-upload-button{background:color-mix(in srgb, var(--color-primary) 8%, white);color:var(--color-text)}.player-profile-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1rem;display:flex}.player-profile-name{color:var(--color-text);margin-bottom:.35rem;font-size:2rem;line-height:1.2}.player-profile-category{color:var(--mode-color);background:var(--mode-color-bg);border-radius:999px;padding:.2rem .65rem;font-size:.85rem;font-weight:600;transition:color .25s,background .25s;display:inline-block}.player-profile-rating-block{text-align:right;flex-shrink:0}.player-profile-rating-label{color:var(--color-text-muted);margin-bottom:.15rem;font-size:.8rem;display:block}.player-profile-rating-value{color:var(--mode-color);font-size:2.75rem;font-weight:800;line-height:1;transition:color .25s}.player-profile-summary{color:var(--color-text);margin-bottom:.75rem;font-size:1.05rem;font-weight:600}.player-profile-meta{color:var(--color-text-muted);margin-bottom:1rem;font-size:.8rem;line-height:1.6}.player-profile-meta .meta-sep{margin:0 .35rem}.player-profile-awards{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.5rem;padding-top:.75rem;display:flex}.player-profile-award-badge{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-flex}.player-profile-award-badge:hover{background:#fef3c7;text-decoration:none}.player-profile-award-badge .award-icon{font-size:1rem;line-height:1}.data-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.875rem}.data-table th,.data-table td{text-align:center;border-bottom:1px solid var(--color-border);padding:.65rem .75rem}.data-table th{color:var(--color-text-muted);background:#f9fafb;font-size:.8rem;font-weight:600}.data-table tbody tr:hover{background:#fafafa}.data-table .text-left{text-align:left}.data-table .date-cell{white-space:normal;min-width:8rem;font-size:.8rem}.data-table .memo-cell{white-space:normal;max-width:12rem;color:var(--color-text-muted);font-size:.8rem}.data-table .rank-cell{color:var(--color-primary);font-weight:700}.data-table .player-cell{font-weight:600}.data-table .positive{color:var(--color-positive);font-weight:600}.data-table .negative{color:var(--color-negative);font-weight:600}.player-awards-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.player-award-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;border-top:3px solid var(--color-gold);padding:1.25rem}.player-award-icon{margin-bottom:.35rem;font-size:2rem}.player-award-label{margin-bottom:.35rem;font-size:1rem;font-weight:700}.player-award-season{color:var(--color-secondary);margin-bottom:.35rem;font-size:.85rem;text-decoration:none;display:inline-block}.player-award-season:hover{color:var(--color-primary);text-decoration:underline}.player-award-description{color:var(--color-text-muted);font-size:.8rem}.player-charts-section{margin-bottom:2rem}.charts-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.chart-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--mode-color);flex-direction:column;padding:1.25rem;transition:border-color .25s;display:flex}.chart-card-header{margin-bottom:.75rem}.chart-card-title{color:var(--color-text);margin-bottom:.2rem;font-size:1rem;font-weight:700}.chart-card-description{color:var(--color-text-muted);font-size:.8rem}.chart-card-body{flex:1;min-height:0}.chart-empty{color:var(--color-text-muted);text-align:center;padding:2rem 1rem;font-size:.9rem}.chart-tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.6rem .75rem;font-size:.8rem;line-height:1.5}.chart-tooltip-title{color:var(--mode-color);margin-bottom:.2rem;font-weight:700}.chart-legend{flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;margin-top:.5rem;padding:0;list-style:none;display:flex}.chart-legend li{color:var(--color-text-muted);align-items:center;gap:.35rem;font-size:.8rem;display:flex}.chart-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.charts-grid .chart-card:first-child,.charts-grid .chart-card-full{grid-column:1/-1}.chart-card-opponent{border-top-color:var(--color-positive)}.opponent-breakdown-legend{flex-direction:column;gap:.35rem;margin:.75rem 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.opponent-breakdown-legend li{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.25rem 0;display:flex}.opponent-breakdown-legend li:last-child{border-bottom:none}.opponent-breakdown-legend a{font-weight:600;text-decoration:none}.opponent-breakdown-legend a:hover{color:var(--color-primary);text-decoration:underline}.opponent-breakdown-legend span{color:var(--color-text-muted);flex-shrink:0}.admin-page{max-width:var(--max-width);margin:0 auto}.admin-back-link{margin-bottom:1rem;display:inline-block}.admin-lead{color:var(--color-text-muted);margin:-.5rem 0 1.25rem;font-size:.92rem}.admin-menu{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.admin-menu-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;gap:.35rem;min-height:5.5rem;padding:1rem 1.1rem;text-decoration:none;display:flex}.admin-menu-card-title{font-size:1rem;font-weight:700}.admin-menu-card-desc{color:var(--color-text-muted);font-size:.82rem;line-height:1.45}.admin-menu-card--soon{opacity:.65;position:relative}.admin-menu-card-badge{color:var(--color-text-muted);background:var(--color-bg);border-radius:999px;align-self:flex-start;margin-top:auto;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.admin-form{margin-bottom:1.5rem;padding:1.15rem 1.25rem}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;display:grid}.admin-field{border:none;flex-direction:column;gap:.35rem;min-width:0;margin:0;padding:0;display:flex}.admin-field-full{grid-column:1/-1}.admin-field-label{color:var(--color-text-muted);font-size:.78rem;font-weight:700}.admin-field input:not([type=checkbox]):not([type=radio]),.admin-field select,.admin-field textarea{border:1px solid var(--color-border);border-radius:calc(var(--radius) - 2px);background:var(--color-surface);width:100%;color:var(--color-text);padding:.55rem .65rem;font-family:inherit;font-size:.92rem}.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{outline:2px solid color-mix(in srgb, var(--color-secondary) 35%, transparent);outline-offset:1px;border-color:var(--color-secondary)}.admin-field textarea{resize:vertical;min-height:4.5rem}.admin-radio-group{flex-wrap:wrap;gap:.5rem .75rem;display:flex}.admin-radio{cursor:pointer;align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.admin-radio input{width:auto;accent-color:var(--color-secondary)}.admin-field-hint{color:var(--color-text-muted);margin:0;font-size:.78rem}.admin-form-actions{justify-content:flex-end;margin-top:1.15rem;display:flex}.admin-submit-button{border-radius:var(--radius);cursor:pointer;background:var(--color-primary);color:#fff;border:none;padding:.65rem 1.25rem;font-family:inherit;font-size:.92rem;font-weight:700;transition:background .2s,opacity .2s}.admin-submit-button:hover:not(:disabled){background:var(--color-primary-dark)}.admin-submit-button:disabled{opacity:.55;cursor:not-allowed}.admin-submit-button-secondary{background:var(--color-secondary)}.admin-submit-button-secondary:hover:not(:disabled){background:#2f6cb5}.admin-data-status{margin-bottom:1rem;padding:1rem 1.15rem}.admin-data-status-label{color:var(--color-text-muted);margin:0 0 .35rem;font-size:.72rem;font-weight:700}.admin-data-status-value{margin:0;font-size:.92rem;font-weight:600}.admin-data-actions{gap:.85rem;display:grid}.admin-data-card{padding:1.1rem 1.2rem}.admin-data-card-title{margin:0 0 .4rem;font-size:1rem;font-weight:700}.admin-data-card-desc{color:var(--color-text-muted);margin:0 0 .9rem;font-size:.86rem;line-height:1.5}.admin-data-card .admin-submit-button,.admin-data-card .admin-submit-button-secondary{width:auto}.admin-file-input{display:none}.admin-data-danger-button{padding:.35rem 0;font-size:.9rem}.admin-alert-pre{white-space:pre-line;margin:0}.admin-alert{border-radius:var(--radius);margin-bottom:1rem;padding:.85rem 1rem;font-size:.9rem}.admin-alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.admin-alert-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.admin-alert-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.admin-alert-detail a{color:inherit;font-weight:700}.admin-check-meta{color:var(--color-text-muted);margin:-.35rem 0 1rem;font-size:.82rem}.admin-check-summary{margin-bottom:1rem;padding:.85rem 1rem}.admin-check-summary-count{color:#991b1b;margin:0;font-weight:700}.admin-check-group{margin-bottom:1.25rem}.admin-check-group-title{align-items:center;gap:.5rem;margin:0 0 .55rem;font-size:1rem;display:flex}.admin-check-group-count{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.admin-check-table{min-width:36rem}.admin-check-target{white-space:nowrap;font-weight:600}.admin-alert-title{margin:0 0 .25rem;font-weight:700}.admin-alert-detail{font-variant-numeric:tabular-nums;margin:0}.admin-error-list{margin:0;padding-left:1.1rem}.admin-match-side{align-items:stretch;gap:.5rem;display:flex}.admin-match-side select{flex:1;min-width:0}.admin-match-side select:last-child{flex:0 0 4.5rem}.admin-form .admin-battle-format-toggle{width:100%;max-width:16rem;margin-bottom:0;display:flex}.admin-form .admin-battle-format-toggle button{flex:1;min-height:2.25rem}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-page-header .page-title{margin-bottom:0}.admin-page-action{white-space:nowrap}.admin-filters{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem 1.25rem;margin-bottom:1rem;padding:1rem 1.15rem;display:grid}.admin-filters .admin-battle-format-toggle{margin-bottom:0}.admin-table-wrap{padding:0;overflow-x:auto}.admin-matches-table{min-width:56rem}.admin-players-table{min-width:40rem}.admin-player-name-cell{align-items:center;gap:.45rem;display:flex}.admin-match-player-cell{align-items:center;gap:.4rem;display:inline-flex}.admin-seasons-table{min-width:44rem}.admin-season-status--upcoming{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.admin-season-status--active{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.admin-season-status--completed{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.admin-participants-fieldset{border:none;max-width:520px;margin:0;padding:0}.admin-participant-lock-note{color:#92400e;margin:0 0 .5rem;font-size:.82rem}.admin-participant-picker{max-width:520px}.admin-participant-list{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin:.35rem 0 0;padding:0;list-style:none}.admin-participant-item+.admin-participant-item{border-top:1px solid var(--color-border)}.admin-participant-row{white-space:nowrap;box-sizing:border-box;cursor:pointer;background:0 0;justify-content:flex-start;align-items:center;gap:8px;width:100%;padding:.55rem .75rem;display:flex}.admin-participant-row:hover{background:#f8fafc}.admin-participant-row--locked{cursor:default;background:#fafafa}.admin-participant-checkbox{cursor:pointer;width:auto;min-width:1rem;accent-color:var(--color-secondary);border:none;flex:none;margin:0;padding:0}.admin-participant-row--locked .admin-participant-checkbox{cursor:not-allowed}.admin-participant-name{white-space:nowrap;flex:0 auto;font-size:.92rem;font-weight:600;line-height:1.3}.admin-participant-match-badge{white-space:nowrap;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;flex:none;padding:.12rem .4rem;font-size:.68rem;font-weight:700;line-height:1.2}.admin-participant-count{margin-top:.65rem;margin-bottom:0}.rules-summary-section+.rules-summary-section{margin-top:1rem}.rules-summary-heading{color:var(--color-text-muted);margin:0 0 .35rem;font-size:.85rem;font-weight:700}.admin-status-badge{text-transform:lowercase;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.admin-status-badge--active{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.admin-status-badge--inactive{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.admin-matches-table th,.admin-matches-table td{vertical-align:top}.admin-rating-cell{white-space:nowrap;font-size:.82rem}.admin-memo-cell{word-break:break-word;max-width:10rem}.admin-actions-cell{white-space:nowrap}.admin-row-actions{gap:.5rem;display:flex}.admin-text-button{font:inherit;color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600;text-decoration:none}.admin-text-button:hover{text-decoration:underline}.admin-text-button:disabled{opacity:.55;cursor:not-allowed}.admin-text-button-danger{color:var(--color-negative)}.admin-alert-detail-warning{color:#92400e}.admin-notice{border-radius:var(--radius);color:#92400e;background:#fffbeb;border:1px solid #fde68a;margin-bottom:1.5rem;padding:1rem}.admin-nav{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.admin-nav-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:1rem;display:flex}.admin-nav-item.disabled{opacity:.5;cursor:not-allowed}.admin-nav-item small{color:var(--color-text-muted);font-size:.8rem}@media (width<=768px){.header-inner{flex-direction:column;align-items:flex-start}.nav{justify-content:space-around;width:100%}.page-title{font-size:1.4rem}.admin-form-grid{grid-template-columns:1fr}.admin-form-actions{justify-content:stretch}.admin-submit-button{width:100%}.admin-filters{grid-template-columns:1fr}.admin-page-header{align-items:flex-start}.active-season-banner{flex-direction:column;align-items:flex-start}.active-season-card{padding:.9rem 1rem .85rem}.active-season-card-title{font-size:1.3rem}.active-season-leader-name{font-size:1.1rem}.active-season-format-compare,.season-overview-body{grid-template-columns:1fr}.season-overview-ranking-featured{order:-1;min-height:auto;padding:1rem 1.1rem 1.15rem}.season-overview-ranking-featured .season-overview-ranking-item{font-size:.95rem}.season-overview-card-title{font-size:1.55rem}.active-season-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;display:grid}.active-season-metric{white-space:normal}.active-season-metric+.active-season-metric:before{content:none;margin:0}.standings-table{font-size:.8rem}.standings-table th,.standings-table td{padding:.5rem .4rem}.match-players{flex-direction:column;align-items:flex-start}.awards-grid{grid-template-columns:1fr 1fr}.player-profile-name{font-size:1.5rem}.player-profile-rating-value{font-size:2.25rem}.player-profile-header{flex-direction:column}.player-profile-rating-block{text-align:left}.player-profile-summary{font-size:.95rem}.data-table{font-size:.8rem}.data-table th,.data-table td{padding:.5rem .4rem}.player-awards-grid{grid-template-columns:1fr 1fr}.charts-grid{grid-template-columns:1fr}.charts-grid .chart-card:first-child,.charts-grid .chart-card-full{grid-column:auto}.performance-summary-grid{grid-template-columns:1fr}.battle-format-toggle{width:100%;display:flex}.overview-panel-toolbar .battle-format-toggle{width:auto;max-width:13rem}.overview-panel-toolbar .battle-format-toggle button{flex:0 auto}.display-mode-control{gap:.4rem .5rem}.display-mode-segment-btn{min-height:1.55rem;padding:.24rem .52rem;font-size:.74rem}.battle-format-toggle button{flex:1;min-height:2.5rem;padding:.45rem .5rem;font-size:.8rem}.battle-format-toggle button.active{font-weight:700}.battle-format-toggle button.mode-all:not(.active):hover{color:#e3350d}.battle-format-toggle button.mode-single:not(.active):hover{color:#2563eb}.battle-format-toggle button.mode-double:not(.active):hover{color:#0d9488}}@media (width<=480px){.awards-grid,.player-awards-grid{grid-template-columns:1fr}.logo{font-size:.95rem}}
