:root {
  --ink: #102533;
  --ink-deep: #081923;
  --muted: #687b83;
  --line: #d9e4e3;
  --paper: #f6f8f7;
  --sand: #f2f4ed;
  --mint: #35c29d;
  --mint-dark: #0b7f69;
  --orange: #ff9f51;
  --blue: #147ab8;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Noto Sans TC", system-ui, sans-serif; }
h1, h2, h3, h4, .brand-name, .display-title, .event-title { font-weight: 900; letter-spacing: -.04em; }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
.site-header { background: rgba(8, 25, 35, .97); z-index: 10; }
.hero-page .site-header { position: relative; background: rgba(7, 25, 37, .94); border-bottom: 1px solid rgba(142,232,207,.16); }
.hero-page .site-header .navbar { min-height: 4.8rem; }
.hero-page .site-header .container { max-width: 1440px; }
.navbar-brand { text-decoration: none; color: #fff; }
.brand-mark { width: 36px; height: 36px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: var(--ink-deep); background: var(--mint); font-size: 1.05rem; }
.site-header .brand-mark { flex: 0 0 44px; width: 44px; height: 36px; border-radius: 0; background: transparent; color: #fff; }
.brand-mark-image { display: block; width: 44px; height: 28px; object-fit: contain; }
.hero-page .brand-mark-image { height: 24px; }
.brand-lockup { display: inline-flex; align-items: baseline; gap: .65rem; white-space: nowrap; }
.brand-name { font-family: "Barlow Condensed", sans-serif; font-size: 1.6rem; line-height: 1; letter-spacing: .03em; }
.brand-sub { font-family: "Barlow Condensed", sans-serif; font-size: .98rem; font-weight: 600; letter-spacing: .1em; color: rgba(255,255,255,.82); }
.hero-section { color: #fff; overflow: hidden; position: relative; min-height: calc(100vh - 4.8rem); background: linear-gradient(90deg, rgba(4,20,31,.56), rgba(4,20,31,.3) 55%, rgba(4,20,31,.16)), linear-gradient(0deg, rgba(4,20,31,.26), rgba(4,20,31,.06) 60%), url("assets/badminton-arena-hero.png") center 58% / cover no-repeat; }
.hero-section::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,18,29,.12), transparent 48%, rgba(3,18,29,.06)); pointer-events: none; }
.hero-section::after { content: ""; position: absolute; inset: auto 0 0; height: 18%; background: linear-gradient(0deg, rgba(3,19,29,.26), transparent); pointer-events: none; }
.hero-court-lines { display: none; }
.hero-section > .container { z-index: 1; }
.hero-layout { min-height: 40rem; }
.hero-primary-column { position: relative; z-index: 2; padding-top: 1rem; }
.eyebrow { color: var(--mint); font: 700 .74rem/1 "Barlow Condensed", sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.text-primary { color: var(--mint-dark) !important; }
.display-title { font-size: clamp(3.35rem, 8vw, 7rem); line-height: .9; margin: 1.4rem 0; position: relative; }
.display-title em { color: var(--mint); font-style: normal; }
.hero-copy { color: rgba(255,255,255,.72); max-width: 30rem; font-size: 1.05rem; line-height: 1.8; }
.hero-display-title { margin: 1.55rem 0 .6rem; color: #fff; font-size: clamp(3.8rem, 7vw, 7.5rem); line-height: .98; letter-spacing: -.085em; white-space: nowrap; text-shadow: 0 8px 24px rgba(0,0,0,.15); }
.hero-display-title span { color: #e9fffa; }
.hero-wordmark { color: var(--mint); font: 700 clamp(1.15rem, 2.2vw, 1.7rem)/1 "Barlow Condensed", sans-serif; letter-spacing: .36em; margin-left: .35rem; }
.hero-slogan { display: flex; align-items: center; justify-content: center; gap: clamp(.85rem, 2vw, 1.8rem); max-width: 37rem; margin: 2rem 0 0 .25rem; color: rgba(255,255,255,.82); font-size: clamp(.9rem, 1.45vw, 1.08rem); letter-spacing: .2em; white-space: nowrap; }
.hero-slogan span { flex: 1 1 5rem; height: 1px; background: rgba(142,232,207,.8); }
.hero-slogan em { font-style: normal; }
.registration-countdown { display: inline-flex; flex-direction: column; gap: .65rem; color: rgba(255,255,255,.78); }
.countdown-deadline { color: rgba(255,255,255,.72); font-size: .82rem; letter-spacing: .04em; }
.countdown-grid { display: grid; grid-template-columns: repeat(4, minmax(4.2rem, 1fr)); gap: .6rem; }
.countdown-unit { min-width: 7.2rem; padding: .85rem .65rem .65rem; text-align: center; background: rgba(4,24,35,.38); border: 1px solid rgba(83,218,190,.42); border-radius: 9px; box-shadow: inset 0 0 20px rgba(53,194,157,.05); }
.countdown-unit strong { display: block; color: #fff; font: 700 clamp(1.65rem, 3.2vw, 2.5rem)/.95 "Barlow Condensed", sans-serif; letter-spacing: .01em; }
.countdown-unit span { display: block; color: var(--mint); font: 700 .7rem/1 "Barlow Condensed", sans-serif; letter-spacing: .12em; margin-top: .35rem; }
.registration-countdown.is-closed .countdown-grid { display: block; color: #fff; font: 700 1.8rem/1.1 "Barlow Condensed", sans-serif; }
.btn-primary { --bs-btn-bg: var(--mint); --bs-btn-border-color: var(--mint); --bs-btn-color: var(--ink-deep); --bs-btn-hover-bg: #64d6b8; --bs-btn-hover-border-color: #64d6b8; --bs-btn-hover-color: var(--ink-deep); font-weight: 700; }
.btn-ghost { color: #fff; border: 2px solid rgba(255,255,255,.78); background: rgba(8,25,35,.22); font-weight: 700; }
.btn-ghost:hover, .btn-ghost:focus-visible { color: #fff; background: rgba(53,194,157,.16); border-color: var(--mint); }
.hero-actions .btn { min-height: 4.25rem; display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.hero-actions .btn-primary { min-width: 19rem; }
.hero-actions .btn-ghost { min-width: 16rem; }
.hero-info-card { width: min(calc(100% + 2rem), 36rem); min-height: 24rem; display: flex; flex-direction: column; justify-content: flex-start; color: var(--ink); background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.5); border-radius: 20px; padding: clamp(2.2rem, 4vw, 3.4rem); box-shadow: 0 25px 70px rgba(0,0,0,.2); position: relative; z-index: 2; }
.badge-soft { color: var(--mint-dark); background: #dcf7ef; font: 700 .68rem "Barlow Condensed", sans-serif; letter-spacing: .12em; }
.event-title { color: var(--ink); font-size: clamp(2.1rem, 3.6vw, 3.1rem); line-height: 1; margin: 0; }
.hero-event-meta { display: grid; gap: 1.5rem; margin-top: 2.5rem !important; color: var(--ink); }
.hero-event-meta > div { display: flex; align-items: flex-start; gap: .75rem; font-size: clamp(1.05rem, 2vw, 1.35rem); font-weight: 700; line-height: 1.35; }
.hero-event-meta > div > span { display: flex; flex-direction: column; gap: .18rem; }
.hero-event-meta small { color: var(--muted); font-size: .68em; font-weight: 500; letter-spacing: .12em; }
.hero-event-meta strong { font-weight: 900; }
.hero-event-meta i { flex: 0 0 auto; color: var(--mint-dark); font-size: 1.25em; }
.venue-address { color: var(--muted); font-size: .62em; font-weight: 500; line-height: 1.55; }
.venue-address-suffix { white-space: nowrap; }
.venue-map-link { display: inline-flex; align-items: center; gap: .35rem; align-self: flex-start; margin-top: .15rem; color: var(--mint-dark); font-size: .67em; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(11,127,105,.4); }
.venue-map-link:hover, .venue-map-link:focus-visible { color: var(--ink); border-bottom-color: currentColor; }
.hero-stats { border-top: 1px solid rgba(255,255,255,.18); position: relative; }
.stat-item { border-right: 1px solid rgba(255,255,255,.18); padding: 1.35rem 1rem 0; }
.stat-item:last-child { border-right: 0; }
.stat-item strong { display: block; color: var(--mint); font: 700 2.4rem/1 "Barlow Condensed", sans-serif; letter-spacing: 0; }
.stat-item span { display: block; color: rgba(255,255,255,.5); font: 700 .63rem "Barlow Condensed", sans-serif; letter-spacing: .16em; margin-top: .3rem; }
.section { padding: 6.4rem 0; }
.section-light { background: var(--paper); }
.section-dark { background: var(--ink-deep); }
.section-sand { background: var(--sand); }
.section-heading h2 { margin: .7rem 0 .6rem; max-width: 42rem; }
.section-lead { color: var(--muted); line-height: 1.75; }
.privacy-note { display: inline-flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .78rem; }
.privacy-note i { color: var(--mint-dark); }
.panel, .capacity-panel { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 10px 35px rgba(11,40,50,.04); }
.capacity-panel { background: #edf8f4; border-color: #ccebe2; }
.capacity-sync-state { min-height: 1.1rem; color: var(--muted); font-size: .72rem; }
.capacity-sync-state.is-live { color: var(--mint-dark); }
.capacity-summary-layout { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; }
.capacity-summary { display: flex; justify-content: flex-start; align-items: baseline; gap: clamp(.55rem, 2vw, 1rem); padding: .75rem 0 .95rem; }
.capacity-footnote { display: inline-flex; align-items: center; justify-content: flex-end; gap: .45rem; margin-left: auto; color: var(--muted); font-size: .78rem; white-space: nowrap; }
.capacity-footnote i { color: var(--mint-dark); }
.capacity-metric { display: inline-flex; min-width: 0; align-items: baseline; gap: .38rem; white-space: nowrap; }
.capacity-metric-number { color: var(--ink); font-variant-numeric: tabular-nums; font-weight: 900; letter-spacing: -.06em; line-height: 1; }
.capacity-metric-number--registered { font-size: clamp(3rem, 8vw, 3.5rem); }
.capacity-metric-number--total { color: #31534e; font-size: clamp(2.1rem, 5.2vw, 2.4rem); }
.capacity-metric-label { color: var(--muted); font-size: .875rem; font-weight: 600; }
.capacity-summary-divider { color: #8aa39d; font-size: 1.5rem; font-weight: 400; }
.capacity-full { width: fit-content; margin-top: .25rem; padding: .22rem .55rem; border-radius: 999px; background: #fde8e5; color: #8a3028; font-size: .72rem; font-weight: 800; }
.player-search { position: relative; }
.player-search-input { padding-right: 2.5rem; }
.player-search-options { position: absolute; z-index: 20; top: calc(100% + .3rem); left: 0; right: 0; max-height: 15rem; overflow-y: auto; padding: .3rem; border: 1px solid #cfe1dd; border-radius: 12px; background: #fff; box-shadow: 0 12px 28px rgba(11,40,50,.16); }
.player-search-options[hidden] { display: none !important; }
.player-search-option { display: block; width: 100%; padding: .65rem .75rem; border: 0; border-radius: 8px; background: transparent; color: var(--ink); text-align: left; font-size: .9rem; }
.player-search-option:hover, .player-search-option:focus-visible, .player-search-option[aria-selected="true"] { outline: 0; background: #edf8f4; color: var(--mint-dark); }
.player-search-empty { padding: .7rem .75rem; color: var(--muted); font-size: .82rem; }
.registration-level-note { padding: .75rem .85rem; border-left: 3px solid var(--mint-dark); border-radius: 0 8px 8px 0; background: #edf8f4; color: var(--muted); font-size: .82rem; }
.registration-challenge-option { padding: 0; border: 0; border-radius: 0; background: transparent; }
.registration-challenge-option .form-check { margin-bottom: 0; }
.registration-challenge-option .form-check-label { color: var(--ink); font-size: .88rem; font-weight: 700; }
.registration-challenge-option .form-text { margin-left: 1.55rem; font-size: .76rem; }
.registration-list-players { min-width: 9rem; color: var(--ink); font-weight: 700; line-height: 1.7; }
.form-required-note { color: var(--muted); font-size: .75rem; }
.form-section-label { color: var(--ink); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin-bottom: .2rem; }
.form-label { font-size: .82rem; font-weight: 700; margin-bottom: .45rem; }
.required { color: #dc5d4c; }
.form-control, .form-select { border-color: #cfdfdd; border-radius: 10px; padding: .72rem .85rem; font-size: .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--mint); box-shadow: 0 0 0 .25rem rgba(53,194,157,.14); }
.payment-note { display: flex; align-items: flex-start; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.payment-note i { color: var(--mint-dark); flex: 0 0 auto; margin-top: .15rem; }
.registration-action-row .form-check { flex: 1 1 auto; }
.registration-submit { min-width: 10.5rem; min-height: 3rem; font-weight: 700; }
.registration-rules-dialog { width: min(56rem, calc(100% - 2rem)); max-width: none; max-height: min(84vh, 56rem); overflow-y: auto; padding: 0; color: var(--ink); background: #fff; border: 1px solid #d4e2df; border-radius: 20px; box-shadow: 0 24px 72px rgba(8, 25, 35, .28); }
.registration-rules-dialog::backdrop { background: rgba(8, 25, 35, .58); backdrop-filter: blur(2px); }
.registration-rules-dialog-content { padding: clamp(1.15rem, 4vw, 1.5rem); }
.registration-rules-dialog-copy { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.7; overflow-wrap: anywhere; }
.registration-rules-section + .registration-rules-section { margin-top: 1.15rem; }
.registration-rules-section h3 { margin: 0 0 .55rem; padding-bottom: .35rem; border-bottom: 1px solid #dce6e4; color: var(--ink); font-size: 1rem; font-weight: 800; }
.registration-rules-section p { margin: .3rem 0; }
.registration-rules-section ol, .registration-rules-section ul { margin: .25rem 0 0; padding-left: 1.35rem; }
.registration-rules-section li { margin: .22rem 0; }
.registration-rules-rating-list { display: flex; flex-direction: column; gap: 0; margin-top: .35rem !important; padding: 0 !important; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; list-style: none; }
.registration-rules-rating-card { display: grid; grid-template-columns: 3.8rem minmax(0, 1fr); align-items: start; gap: .75rem; margin: 0; padding: .65rem .85rem; border: 0; border-bottom: 1px solid rgba(16,37,51,.1); border-radius: 0; color: #243746; font-size: .9rem; line-height: 1.55; }
.registration-rules-rating-card:last-child { border-bottom: 0; }
.registration-rules-rating-label { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; color: #243746; font-weight: 900; line-height: 1.35; white-space: nowrap; }
.registration-rules-rating-color-name { display: inline-block; padding: .12rem .42rem; border: 1px solid var(--rating-accent); border-radius: 6px; background: var(--rating-accent); color: #fff; font-size: .84rem; font-weight: 800; line-height: 1.2; }
.registration-rules-rating-card--8 { --rating-accent: #5f6f7b; background: #f8fafb; }
.registration-rules-rating-card--7 { --rating-accent: #30363d; background: #eef0f2; }
.registration-rules-rating-card--6 { --rating-accent: #17385f; background: #e2ebf5; }
.registration-rules-rating-card--5 { --rating-accent: #2369a5; background: #e5eef7; }
.registration-rules-rating-card--4 { --rating-accent: #886611; background: #fff4cf; }
.registration-rules-rating-card--3 { --rating-accent: #7b1f2a; background: #f3e2e3; }
.registration-rules-rating-card--2 { --rating-accent: #a62e39; background: #f8e6e7; }
.registration-rules-rating-card--1 { --rating-accent: #356b42; background: #e5efe7; }
.registration-rules-dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; margin-top: 1.35rem; }
.registration-rules-dialog-actions .btn { min-width: 5.5rem; min-height: 2.75rem; }
.registration-rules-dialog-actions .btn:focus-visible { outline: 3px solid rgba(37, 139, 112, .35); outline-offset: 2px; }
.registration-success-card { padding: 1rem; border: 1px solid #b9e7d9; border-radius: 14px; background: #effaf6; }
.registration-code-row { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.registration-code { display: inline-block; padding: .55rem .7rem; border: 1px dashed #7dcab1; border-radius: 8px; background: #fff; color: var(--ink); font: 700 .95rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .045em; overflow-wrap: anywhere; }
.registration-status-section { border-top: 1px solid var(--line); }
.registration-status-panel { padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 10px 35px rgba(11,40,50,.04); }
.registration-list-sync { margin-bottom: 1rem; color: var(--muted); font-size: .82rem; }
.registration-level-tabs { display: flex; gap: 0; margin-bottom: 1rem; padding: 0; border: 0; border-radius: 10px; background: transparent; }
.registration-level-tab { display: inline-flex; flex: 1 1 0; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-width: 0; min-height: 3rem; padding: .4rem .5rem; border: 0; border-radius: 0; background: #fff; color: #243746; font-weight: 800; transition: color .16s ease, background-color .16s ease; }
.registration-level-tab:first-child { border-radius: 10px 0 0 10px; }
.registration-level-tab:last-child { border-radius: 0 10px 10px 0; }
.registration-level-tab-label { display: block; line-height: 1.15; }
.registration-level-tab:hover { filter: brightness(1.06); }
.registration-level-tab.is-active { font-weight: 900; }
.registration-level-tab:focus-visible { outline: 3px solid rgba(37,139,112,.35); outline-offset: 2px; }
.registration-level-tab-count { display: block; min-height: 0; padding: 0; border-radius: 0; background: transparent; color: inherit; font-size: .74rem; font-weight: 700; line-height: 1.1; white-space: nowrap; }
.registration-level-tab[data-level="UNASSIGNED"] { color: #455760; background: #e9eef1; }
.registration-level-tab[data-level="UNASSIGNED"]:hover { background: #dde5e9; }
.registration-level-tab[data-level="BEG"] { color: #a2dfd0; background: #254d43; }
.registration-level-tab[data-level="BEG"]:hover { background: #2d594d; }
.registration-level-tab[data-level="INT"] { color: #f2cd6a; background: #554a30; }
.registration-level-tab[data-level="INT"]:hover { background: #625639; }
.registration-level-tab[data-level="ADV"] { color: #c7def7; background: #34506c; }
.registration-level-tab[data-level="ADV"]:hover { background: #405e7d; }
.registration-level-grid { display: block; }
.registration-level-card { min-width: 0; overflow: hidden; border: 1px solid #d7e0e9; border-radius: 14px; background: #fbfcfe; }
.registration-level-card[hidden] { display: none !important; }
.registration-level-heading { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1rem .8rem; border-bottom: 1px solid #e1e7ee; }
.registration-level-heading h3 { margin: 0; color: var(--ink); font-size: 1.1rem; font-weight: 800; }
.registration-level-heading span { color: var(--muted); font-size: .78rem; font-weight: 700; }
.registration-list-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.registration-list-table th, .registration-list-table td { padding: .7rem .8rem; border-bottom: 1px solid #e5eaf0; text-align: left; vertical-align: middle; }
.registration-list-table th { color: var(--muted); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.registration-list-table tr:last-child td { border-bottom: 0; }
.registration-list-team-name { min-width: 6.5rem; color: var(--ink); font-weight: 700; }
.registration-list-empty { padding: 1.2rem .8rem !important; color: var(--muted); text-align: center !important; }
.registration-review-badge { display: inline-block; padding: .22rem .5rem; border-radius: 99px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.registration-review-badge--pending { background: #fff1cd; color: #8a5a00; }
.registration-review-badge--approved { background: #dfeaf5; color: #31577a; }
.registration-review-badge--rejected { background: #fde2df; color: #a33128; }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 99px; background: #ef6659; box-shadow: 0 0 0 4px rgba(239,102,89,.14); vertical-align: middle; margin-right: .4rem; }
.live-status { color: rgba(255,255,255,.72); font: 700 .8rem "Noto Sans TC", sans-serif; letter-spacing: 0; }
.live-status.is-active { color: #f48777; }
.live-dot[hidden] { display: none; }
.court-card { min-height: 185px; background: #102f3d; border: 1px solid rgba(255,255,255,.11); border-radius: 15px; padding: 1rem; color: #fff; position: relative; overflow: hidden; }
.court-card::after { content: ""; position: absolute; right: -24px; bottom: -38px; width: 100px; height: 100px; border: 1px solid rgba(53,194,157,.26); border-radius: 50%; }
.court-number { color: var(--mint); font: 700 1.2rem "Barlow Condensed", sans-serif; }
.court-status { display: inline-flex; align-items: center; gap: .38rem; padding: .32rem .68rem; border: 1px solid transparent; border-radius: 999px; font-size: .82rem; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.court-status--playing { color: #073b2d; background: #72e6bc; border-color: #a5f3d5; box-shadow: 0 0 0 3px rgba(114,230,188,.17); }
.court-status--upcoming { color: #493400; background: #ffd66b; border-color: #ffe6a6; box-shadow: 0 0 0 3px rgba(255,214,107,.14); }
.court-status--idle { color: #d4e0e2; background: #294956; border-color: #496571; }
.court-status-dot { width: .48rem; height: .48rem; flex: 0 0 .48rem; border-radius: 50%; background: currentColor; }
.court-status--playing .court-status-dot { animation: court-status-pulse 1.8s ease-out infinite; }
@keyframes court-status-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(7,59,45,.35); } 55% { box-shadow: 0 0 0 4px rgba(7,59,45,0); } }
@media (prefers-reduced-motion: reduce) { .court-status--playing .court-status-dot { animation: none; } }
.court-match { border-top: 1px solid rgba(255,255,255,.13); margin-top: .75rem; padding-top: .75rem; }
.court-team { min-width: 0; font-size: .82rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.court-score { color: var(--mint); font: 700 1.3rem "Barlow Condensed", sans-serif; }
.court-empty { color: rgba(255,255,255,.42); font-size: .8rem; padding-top: 1.15rem; }
.division-tabs { gap: .6rem; }
.division-tabs .nav-link { color: var(--muted) !important; border-radius: 99px; padding: .65rem 1.35rem; background: #e8efed; }
.division-tabs .nav-link span { color: #94a5a7; font: 700 .68rem "Barlow Condensed", sans-serif; margin-left: .4rem; }
.division-tabs .nav-link.active { background: var(--ink); color: #fff !important; }
.group-filter-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.group-filter-button { min-height: 2.5rem; padding: .48rem .9rem; border: 1px solid #cadbd6; border-radius: 999px; background: #fff; color: var(--ink); font-size: .82rem; font-weight: 700; line-height: 1.1; transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
.group-filter-button:hover { border-color: var(--mint-dark); color: var(--mint-dark); }
.group-filter-button:focus-visible { outline: 3px solid rgba(83, 190, 157, .45); outline-offset: 2px; }
.group-filter-button.active { border-color: var(--mint-dark); background: var(--mint-dark); color: #fff; }
[data-testid^="round-robin-group-filters"] .group-filter-button { border-color: #49626a; background: #162a31; color: #d8e8e4; }
[data-testid^="round-robin-group-filters"] .group-filter-button:hover { border-color: #66d8b4; color: #66d8b4; }
[data-testid^="round-robin-group-filters"] .group-filter-button.active { border-color: #65d7b3; background: #65d7b3; color: #10252c; }
.standing-wrap { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #fff; }
.standing-group-title { background: var(--ink); color: #fff; padding: .8rem 1rem; font: 700 1.05rem "Barlow Condensed", sans-serif; letter-spacing: .12em; }
.standing-table { margin: 0; font-size: .78rem; }
.standing-table thead th { background: #edf3f1; color: var(--muted); border: 0; font-size: .68rem; font-weight: 700; letter-spacing: .05em; white-space: nowrap; }
.standing-table tbody td { border-color: #edf1f0; padding: .75rem .7rem; vertical-align: middle; }
.standing-table tbody tr:last-child td { border-bottom: 0; }
.rank-no { color: var(--muted); font: 700 1rem "Barlow Condensed", sans-serif; }
.rank-no.top { color: var(--mint-dark); }
.team-cell { font-weight: 700; }
.standing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.round-robin-group-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; }
.round-robin-group-grid[data-group-count="1"] { grid-template-columns: minmax(0, 420px); justify-content: start; }
.round-robin-group-card { min-width: 0; padding: .65rem; border: 1px solid #34464b; border-radius: 14px; background: rgba(255,255,255,.025); }
.round-robin-group-title { margin: 0 0 .55rem; color: #65d7b3; font: 800 .85rem "Barlow Condensed", sans-serif; letter-spacing: .12em; text-align: center; }
.round-robin-group-card .round-robin-team { width: 42%; }
.round-robin-group-card .round-robin-team strong { font-size: .7rem; line-height: 1.05; }
.round-robin-group-card .round-robin-team--1, .round-robin-group-card .round-robin-team--3 { left: 1%; }
.round-robin-group-card .round-robin-team--2, .round-robin-group-card .round-robin-team--4 { right: 1%; }
.round-robin-section { margin: 0; }
.round-robin-section h3, .standing-results h3 { margin: 0 0 .8rem; color: #edf5f3; font-size: 1.05rem; font-weight: 800; }
.round-robin-diagram { position: relative; width: min(100%, 250px); aspect-ratio: 1; margin-inline: auto; overflow: hidden; border: 0; border-radius: 12px; background: #202020; }
.round-robin-court { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; }
.round-robin-edge { fill: none; stroke: #f3f5f4; stroke-width: 4; stroke-linecap: round; opacity: 1; vector-effect: non-scaling-stroke; }
.round-robin-team { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: .12rem; width: 40%; min-width: 0; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #f3f5f4; transform: none; box-shadow: none; }
.round-robin-team strong { display: block; max-width: 100%; overflow: visible; color: #c8d0ce; font-size: .85rem; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
.round-robin-team--1 { left: 4%; top: 1.5%; align-items: flex-start; }
.round-robin-team--2 { right: 4%; top: 1.5%; align-items: flex-end; text-align: right; }
.round-robin-team--3 { left: 4%; bottom: 1.5%; align-items: flex-start; }
.round-robin-team--4 { right: 4%; bottom: 1.5%; align-items: flex-end; text-align: right; }
.round-robin-game { position: relative; z-index: 1; min-width: 0; padding: .5rem .65rem; border: 1px solid #34464b; border-radius: 9px; background: #1a272c; color: #e4ecea; }
.round-robin-game-status { margin-bottom: .25rem; color: #9cabad; font-size: .67rem; font-weight: 700; text-align: right; }
.round-robin-game-complete, .round-robin-game-confirmed, .round-robin-game-completed { border-color: #477c6c; }
.round-robin-game-playing, .round-robin-game-on_court, .round-robin-game-in_progress, .round-robin-game-live { border-color: #e58e75; box-shadow: 0 0 0 2px rgba(229,142,117,.12); }
.round-robin-game-playing .round-robin-game-status, .round-robin-game-on_court .round-robin-game-status, .round-robin-game-in_progress .round-robin-game-status, .round-robin-game-live .round-robin-game-status { color: #ffa78e; }
.round-robin-game-pending_confirm .round-robin-game-status { color: #f2c66d; }
.round-robin-score { fill: #fff; stroke: #202020; stroke-width: 11px; stroke-linejoin: round; paint-order: stroke; font: 800 44px "Barlow Condensed", sans-serif; }
.round-robin-score-backdrop { fill: #202020; }
.round-robin-score-row { display: flex; align-items: center; justify-content: space-between; gap: .55rem; min-height: 1.45rem; font-size: .77rem; }
.round-robin-score-row span { min-width: 0; overflow-wrap: anywhere; white-space: normal; line-height: 1.2; }
.round-robin-score-row strong { flex: 0 0 auto; color: #c1cdcf; font: 800 1rem "Barlow Condensed", sans-serif; }
.round-robin-score-row.is-winner { color: #baf2dd; font-weight: 800; }
.round-robin-score-row.is-winner strong { color: #6ee0b9; }
.round-robin-mobile-list { display: none; }
.round-robin-empty { display: flex; min-height: 8rem; align-items: center; justify-content: center; gap: .6rem; border: 1px dashed #40535a; border-radius: 14px; color: #aebdbf; background: rgba(15,25,30,.5); }
.round-robin-empty i { color: #65d7b3; }
.standing-results { margin-top: 1.25rem; }
.standing-empty { padding: 1.1rem !important; color: var(--muted); text-align: center; }
.section-round-robin { padding-bottom: 2rem; }
#group-standings { padding-top: 2rem; }
.badge-outline { color: var(--mint-dark); border: 1px solid #afdacf; background: transparent; font: 700 .7rem "Barlow Condensed", sans-serif; letter-spacing: .1em; }
.draw-tabs { border-color: var(--line); }
.draw-tabs .nav-link { color: var(--muted) !important; border: 0; border-bottom: 3px solid transparent; padding: .7rem 1.35rem; font-weight: 700; }
.draw-tabs .nav-link:hover, .draw-tabs .nav-link:focus { color: var(--ink) !important; }
.draw-tabs .nav-link.active { color: var(--ink) !important; background: transparent; border-bottom-color: var(--mint); }
.draw-section { margin-bottom: 2.6rem; }
.draw-section:last-child { margin-bottom: 0; }
.draw-label { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; color: var(--ink); margin-bottom: .8rem; }
.draw-label > span { font: 700 .88rem "Barlow Condensed", sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.draw-label small { color: var(--muted); font-size: .72rem; }
.bracket-scroll { overflow-x: auto; padding: .2rem .1rem 1rem; scrollbar-color: #aac7c0 transparent; }
.bracket { display: grid; grid-template-columns: repeat(var(--round-count), minmax(205px, 1fr)); min-width: calc(var(--round-count) * 235px); gap: 1.5rem; align-items: stretch; }
.bracket-round { min-width: 205px; display: flex; flex-direction: column; }
.bracket-round-head { min-height: 42px; display: flex; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--ink); margin-bottom: .7rem; padding: 0 .2rem .5rem; }
.bracket-round-head h4 { color: var(--ink); font: 700 .9rem "Barlow Condensed", sans-serif; letter-spacing: .08em; text-transform: uppercase; margin: 0; }
.bracket-round-matches { flex: 1; display: flex; flex-direction: column; justify-content: space-around; gap: .75rem; }
.bracket-match { background: #fff; border: 1px solid var(--line); border-radius: 9px; position: relative; box-shadow: 0 5px 15px rgba(15,44,52,.045); transition: opacity .18s ease, border-color .18s ease, box-shadow .18s ease; }
.bracket-match-meta { display: flex; align-items: center; justify-content: space-between; min-height: 30px; padding: .32rem .6rem; background: #f4f8f7; border-bottom: 1px solid #e4ecea; border-radius: 8px 8px 0 0; color: #718482; font: 700 .75rem "Barlow Condensed", sans-serif; letter-spacing: .04em; }
.match-state { color: #7c8e8e; letter-spacing: .02em; }
.match-state-complete { color: var(--mint-dark); }
.match-state-on_court, .match-state-playing { color: #db5a4c; }
.match-state-pending_confirm { color: #c07824; }
.bracket-team { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .55rem .65rem; color: var(--ink); font-size: .875rem; min-height: 40px; }
.bracket-team + .bracket-team { border-top: 1px solid #edf1f0; }
.bracket-team.winner { color: var(--mint-dark); font-weight: 700; background: #f0fbf7; }
.bracket-team-info { display: flex; align-items: center; gap: .55rem; flex: 1; min-width: 0; }
.bracket-seed { flex: 0 0 1.8rem; color: #66807d; font: 700 .76rem "Barlow Condensed", sans-serif; letter-spacing: .04em; }
.bracket-team-name { flex: 1; min-width: 0; overflow-wrap: anywhere; white-space: normal; line-height: 1.2; }
.bracket-score { color: var(--muted); font: 700 1rem "Barlow Condensed", sans-serif; margin-left: .25rem; }
.bracket-team.winner .bracket-score { color: var(--mint-dark); }
.draw-empty { min-height: 130px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; color: var(--muted); background: rgba(255,255,255,.6); border: 1px dashed #b9cdca; border-radius: 12px; text-align: center; }
.draw-empty i { color: var(--mint-dark); font-size: 1.35rem; }
.draw-empty strong { color: var(--ink); font-size: .86rem; }
.draw-empty span { font-size: .72rem; }
.draw-page { background: var(--paper); }
.draw-event-hero { color: #fff; background: radial-gradient(circle at 82% 12%, rgba(53,194,157,.22), transparent 24%), linear-gradient(125deg, #071923, #103c47); border-bottom: 0; }
.draw-page-title { color: #fff; font-size: clamp(2.4rem, 5vw, 4.6rem); margin: .65rem 0 .5rem; }
.draw-event-meta { display: inline-flex; flex-direction: column; gap: .65rem; color: rgba(255,255,255,.8); font-size: .85rem; text-align: left; }
.draw-event-meta i { color: var(--mint); margin-right: .55rem; }
.draw-venue { display: flex; align-items: flex-start; }
.draw-venue > span { display: flex; flex-direction: column; gap: .16rem; }
.draw-venue strong { color: #fff; font-weight: 700; }
.draw-venue-address { white-space: nowrap; }
.draw-venue a { width: fit-content; color: #8ee8cf; font-size: .78rem; text-decoration: underline; text-underline-offset: .18em; }
.draw-venue a:hover, .draw-venue a:focus-visible { color: #fff; }
.draw-stage-nav { color: #fff; background: #0b2633; border-bottom: 1px solid rgba(142,232,207,.16); }
.draw-stage-nav .container { min-height: 3.8rem; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
.draw-stage-nav a { align-self: stretch; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 .85rem; color: rgba(255,255,255,.78); border-bottom: 3px solid transparent; text-decoration: none; font: 700 1rem "Noto Sans TC", sans-serif; letter-spacing: .02em; }
.draw-stage-nav a:hover, .draw-stage-nav a:focus-visible { color: #fff; border-bottom-color: var(--mint); }
.draw-page section[id] { scroll-margin-top: 5.5rem; }
.draw-page-content { padding-top: 3.2rem; background: #0b1217; }
.draw-page-content .draw-toolbar .eyebrow { color: #64d8b5 !important; }
.draw-page-content .draw-toolbar h2 { color: #f5f7f7; }
.draw-page-content .draw-toolbar p, .draw-page-content .draw-toolbar .small { color: #9aa9ad !important; }
.draw-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.draw-rule-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; margin-top: 1.25rem; padding: 1.15rem 1.35rem; color: #bdc8ca; background: #141d22; border: 1px solid #344147; border-radius: 8px; font-size: .95rem; }
.draw-rule-item { display: flex; align-items: flex-start; gap: .65rem; min-width: 0; }
.draw-rule-mark { flex: 0 0 .55rem; width: .55rem; height: .55rem; margin-top: .25rem; border-radius: 50%; background: var(--mint-dark); box-shadow: 0 0 0 4px rgba(11,127,105,.1); }
.draw-rule-lower .draw-rule-mark { background: #547a8b; box-shadow: 0 0 0 4px rgba(84,122,139,.12); }
.draw-rule-item strong, .draw-rule-item small { display: block; }
.draw-rule-item strong { color: #f0f5f4; font: 700 1.2rem "Barlow Condensed", sans-serif; letter-spacing: .08em; }
.draw-rule-item small { margin-top: .2rem; color: #c1cbcd; font-size: .92rem; line-height: 1.55; }
.draw-rule-note { grid-column: 1 / -1; margin: .15rem 0 0; padding-top: .55rem; color: #a9b6b8; border-top: 1px solid #344147; font-size: .8rem; line-height: 1.55; }
.draw-page-tabs { gap: .55rem; border: 0; }
.draw-page-tabs .nav-link { display: flex; flex-direction: column; align-items: flex-start; min-width: 128px; min-height: 44px; padding: .7rem 1.1rem; color: #b2bec0 !important; background: #171f24; border: 1px solid #35434a; border-radius: 6px; }
.draw-page-tabs .nav-link:hover, .draw-page-tabs .nav-link:focus { color: #fff !important; background: #202b30; }
.draw-page-tabs .nav-link.active { color: #fff !important; background: #1a282d; border-color: #53666b; box-shadow: inset 0 -3px 0 #55c8a4; }
.draw-bracket-tabs { gap: .5rem; margin: .85rem 0 1rem; }
.draw-bracket-tabs .nav-link { align-items: center; justify-content: center; min-width: 104px; min-height: 44px; padding: .55rem .9rem; font-size: 1.05rem; }
.draw-bracket-tab-content { padding-top: .2rem; }
.bracket-mobile-hint { display: none; }
.draw-data-notice { margin: 0 0 1rem; }
.draw-data-notice[hidden] { display: none !important; }
/* Keep the championship bracket board in its original dark palette in both page themes. */
.draw-page .draw-section { padding: 1.2rem; background: #11191e; border: 1px solid #35434a; border-radius: 8px; box-shadow: 0 12px 34px rgba(0,0,0,.18); }
.draw-page .draw-section[data-draw-path="upper"] { border-top: 3px solid #55c8a4; }
.draw-page .draw-section[data-draw-path="lower"] { border-top: 3px solid #789cab; }
.draw-page .draw-label { align-items: center; padding-bottom: .75rem; border-bottom: 1px solid #344147; color: #f3f6f5; }
.draw-page .draw-label small { color: #a3b0b2; }
.draw-page .draw-label-name { display: inline-flex; align-items: center; font: 900 1.45rem "Barlow Condensed", sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.draw-page .draw-label-code { margin-left: .55rem; padding: .08rem .45rem; border: 1px solid currentColor; border-radius: 4px; color: #b7f5e3; font: 700 1rem "Barlow Condensed", sans-serif; letter-spacing: .04em; }
.draw-page .draw-label-lower .draw-label-code { color: #c5dce6; }
.draw-page .draw-label-upper { color: #67d8b5; }
.draw-page .draw-label-lower { color: #9db9c6; }
.bracket { position: relative; isolation: isolate; }
.bracket-connectors { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.bracket-connector { fill: none; stroke: #75868b; stroke-width: 2; stroke-linecap: square; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bracket[data-bracket-path="upper"] .bracket-connector { stroke: #55c8a4; }
.bracket[data-bracket-path="lower"] .bracket-connector { stroke: #789cab; }
.bracket-round { position: relative; z-index: 1; }
.bracket-round-head { border-bottom: 1px solid #425158; }
.bracket-round-head h4 { color: #f1f5f4; }
.bracket-round-matches { align-items: center; gap: 0; }
.bracket-match { width: 100%; max-width: 280px; }
.bracket-round[data-round="R16"] .bracket-round-matches { gap: .75rem; }
.bracket-match { background: #1a2227; border: 1px solid #3b484e; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.22); }
.bracket-match-on_court, .bracket-match-playing { border-color: #e58e75; box-shadow: 0 0 0 2px rgba(229,142,117,.14), 0 6px 16px rgba(0,0,0,.24); }
.bracket-match-meta { background: #12191e; border-bottom-color: #354147; border-radius: 3px 3px 0 0; color: #9eabad; }
.bracket-team { color: #e5ebea; }
.bracket-team + .bracket-team { border-top-color: #354147; }
.bracket-team.winner { color: #e7cb7b; background: rgba(197,164,79,.1); box-shadow: inset 3px 0 0 #c6a74c; }
.bracket-score { color: #c5cecf; }
.bracket-team.winner .bracket-score { color: #f2d780; }
.bracket-team.loser, .bracket-team.loser .bracket-score { color: #869497; }
.draw-page .match-state { color: #bbc7c8; }
.draw-page .match-state-complete { color: #76dbba; }
.draw-page .match-state-on_court, .draw-page .match-state-playing { color: #ff9d87; }
.draw-page .match-state-pending_confirm { color: #f2c66d; }
.draw-page .draw-empty { color: #aebdbf; background: rgba(15,25,30,.5); border-color: #40535a; }
.draw-page .draw-empty strong { color: #e5efed; }
.site-footer { background: #071923; padding: 2.2rem 0; }
.admin-main { min-height: calc(100vh - 73px); background: radial-gradient(circle at 95% 0%, rgba(53,194,157,.11), transparent 30%), var(--paper); }
.admin-login { max-width: 430px; padding-top: 3rem; }
.admin-confirm-dialog { width: min(34rem, calc(100% - 2rem)); max-width: none; padding: 0; color: var(--ink); background: #fff; border: 1px solid #d4e2df; border-radius: 20px; box-shadow: 0 24px 72px rgba(8, 25, 35, .28); }
.admin-confirm-dialog::backdrop { background: rgba(8, 25, 35, .58); backdrop-filter: blur(2px); }
.admin-confirm-dialog-content { padding: 1.5rem; }
.admin-confirm-dialog-message { margin: 0; font-size: 1rem; line-height: 1.75; }
.admin-confirm-dialog-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1.35rem; }
.admin-confirm-dialog-actions .btn { min-width: 5.25rem; }
.admin-confirm-dialog-actions .btn:focus-visible { outline: 3px solid rgba(37, 139, 112, .35); outline-offset: 2px; }
#console-view[hidden] { display: none !important; }
.admin-lock-icon { width: 72px; height: 72px; display: inline-flex; align-items: center; justify-content: center; color: var(--mint-dark); background: #dcf7ef; border-radius: 22px; font-size: 2rem; }
.admin-header { position: static; }
.admin-console { max-width: 1200px; margin: auto; }
.admin-console-actions { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }
.admin-refresh-status { min-height: 1.1em; color: var(--muted); font-size: .78rem; line-height: 1.35; text-align: right; }
.admin-refresh-status[hidden] { display: none !important; }
.admin-refresh-status.is-loading { color: #526b70; }
.admin-refresh-status.is-success { color: var(--mint-dark); font-weight: 700; }
#refresh-console.is-refreshing i { animation: admin-refresh-spin .8s linear infinite; }
@keyframes admin-refresh-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #refresh-console.is-refreshing i { animation: none; } }
.admin-tabs { display: flex; gap: .55rem; margin: 0 0 1.25rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); }
.admin-tab { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: center; gap: .6rem; min-width: 0; min-height: 3.1rem; padding: .65rem 1rem; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 14px; font-weight: 700; transition: color .16s ease, border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.admin-tab:hover { color: var(--ink); border-color: var(--mint); }
.admin-tab.is-active { color: var(--ink); background: #e9f8f3; border-color: var(--mint); box-shadow: inset 0 -3px 0 var(--mint); }
.admin-tab:focus-visible { outline: 3px solid rgba(37, 139, 112, .35); outline-offset: 2px; }
.admin-tab-count { display: inline-grid; min-width: 1.45rem; height: 1.45rem; padding: 0 .35rem; place-items: center; color: #fff; background: var(--mint-dark); border-radius: 999px; font: 700 .78rem "Barlow Condensed", sans-serif; }
.admin-tab-count[hidden] { display: none; }
.admin-tab-panel[hidden] { display: none !important; }
.admin-tab-panel:focus { outline: none; }
.admin-scope-note { margin: 0 0 1.2rem; padding: .7rem .85rem; color: #294d4a; background: #eef8f5; border-left: 3px solid var(--mint-dark); border-radius: 0 9px 9px 0; font-size: .9rem; }
.admin-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.admin-data-table { min-width: 680px; }
.admin-data-table th, .admin-data-table td { vertical-align: middle; }
.registration-review-table { min-width: 900px; }
.registration-review-table th:nth-child(1) { min-width: 300px; }
.registration-review-table th:nth-child(2) { min-width: 190px; }
.registration-review-table th:nth-child(3) { min-width: 110px; }
.registration-review-table th:nth-child(4) { min-width: 320px; }
.registration-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.registration-review-filter { width: auto; min-width: 150px; }
.registration-level-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .4rem; }
.registration-level-controls .registration-level-select { flex: 1 1 112px; min-width: 112px; color: #102533; background-color: #e7f5f0; border: 1px solid #397b6d; font-weight: 700; }
.registration-level-controls .registration-level-select option { color: #102533; background: #fff; font-weight: 600; }
.registration-level-controls .registration-level-select:focus { border-color: #0b7f69; box-shadow: 0 0 0 .22rem rgba(11,127,105,.25); }
.registration-level-controls .registration-level-select:disabled { color: #526b70; background-color: #e3ece9; opacity: 1; }
.registration-level-save-status { flex: 1 0 100%; min-height: 1em; color: #526b70; font-size: .72rem; line-height: 1.25; }
.registration-level-save-status.is-saving { color: #176f5c; font-weight: 700; }
.registration-level-save-status.is-saved { color: #176746; }
.registration-level-save-status.is-error { color: #a33128; font-weight: 700; }
.registration-lookup-reset-code { display: inline-block; overflow-wrap: anywhere; font-size: 1rem; }
.payment-admin-table { min-width: 820px; }
.payment-admin-table th:nth-child(1) { min-width: 260px; }
.payment-admin-table th:nth-child(2) { min-width: 86px; }
.payment-admin-table th:nth-child(3) { min-width: 220px; }
.payment-admin-table th:nth-child(4) { min-width: 160px; }
.admin-status-select { min-width: 150px; }
.payment-admin-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.payment-admin-table .payment-action { white-space: nowrap; }
.input-group-text { background: #f3f7f6; border-color: #cfdfdd; }
.score-team-row { display: flex; align-items: center; justify-content: space-between; padding: .9rem 0; border-top: 1px solid var(--line); gap: 1rem; }
.score-team-row strong { font-size: .9rem; }
.score-input-wrap { width: 86px; }
.score-input { text-align: center; font: 700 1.3rem "Barlow Condensed", sans-serif; }
.score-court-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.court-admin-card { min-width: 0; min-height: 230px; padding: 1rem; background: #fff; border: 1px solid #cbdad8; border-top: 4px solid #91a6a3; border-radius: 14px; box-shadow: 0 5px 16px rgba(16,47,61,.055); }
.court-admin-card.is-playing { border-top-color: #22a881; }
.court-admin-card.is-pending { border-top-color: #d5a43c; }
.court-admin-card.is-idle, .court-admin-card.is-settling { color: #e8efee; background: #26373e; border-color: #40535a; box-shadow: 0 7px 20px rgba(10,24,30,.18); }
.court-admin-card.is-idle { border-top-color: #91a6a3; }
.court-admin-card.is-idle { display: flex; flex-direction: column; }
.court-admin-card.is-settling { display: flex; flex-direction: column; border-top-color: #d5a43c; }
.court-admin-card.is-error { border-top-color: #c7514b; }
.court-admin-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .9rem; }
.court-admin-head h3 { margin: 0; color: #102f3d; font-size: 1.05rem; font-weight: 900; }
.court-admin-card.is-idle .court-admin-head h3, .court-admin-card.is-settling .court-admin-head h3 { color: #f2f6f5; }
.court-admin-status { display: inline-flex; align-items: center; border-radius: 999px; padding: .26rem .58rem; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.court-admin-status--playing { color: #075c43; background: #d9f5e9; }
.court-admin-status--pending { color: #745000; background: #fff1cd; }
.court-admin-status--settling { color: #fff5d8; background: #85631c; }
.court-admin-status--idle { color: #45605d; background: #eaf1ef; }
.court-admin-card.is-idle .court-admin-status--idle { color: #e1eae8; background: #40545b; }
.court-admin-idle-state { display: grid; flex: 1 1 auto; min-height: 140px; place-items: center; }
.court-admin-idle-state strong { padding: .55rem 1.35rem; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.78); border-radius: 10px; font-size: 1.05rem; font-weight: 900; line-height: 1.2; }
.court-admin-status--error { color: #842b2b; background: #fde5e2; }
.court-report-notice { margin: 0 0 .75rem; padding: .7rem; color: #563f13; background: #fff1ce; border: 1px solid #dfbd68; border-radius: 10px; box-shadow: 0 2px 8px rgba(12,24,28,.12); }
.court-admin-card.is-settling .court-report-notice { margin-block: auto; }
.court-report-title { display: block; margin-bottom: .35rem; color: #553c0c; font-size: 1.05rem; font-weight: 900; text-align: center; }
.court-report-scorecard { display: grid; gap: .15rem; }
.court-report-team-head, .court-report-scoreline { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .55rem; text-align: center; }
.court-report-team-head { color: #493b20; font-size: .8rem; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.court-report-scoreline { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; margin-top: .3rem; padding-top: .3rem; border-top: 1px solid rgba(129,106,54,.28); }
.court-report-scoreline strong { color: #26373e; font: 900 1.1rem "Barlow Condensed", sans-serif; }
.court-report-scoreline > span { color: #78683e; font-weight: 900; }
.review-team-match { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: .85rem; min-width: 0; white-space: normal; }
.review-team-name { min-width: 0; overflow-wrap: anywhere; line-height: 1.3; }
.review-team-name:first-child { text-align: right; }
.review-team-name:last-child { text-align: left; }
.review-team-vs { color: #536a66; font-size: .78rem; font-weight: 800; letter-spacing: .02em; text-align: center; }
.court-admin-card.is-settling .court-admin-match { border-top-color: #52646a; }
.court-admin-card.is-settling .court-match-number { color: #c9ddda; }
.court-admin-card.is-settling .court-admin-team-name, .court-admin-card.is-settling .court-score-entry label > span { color: #c3d1d0; }
.court-admin-card.is-settling .score-input, .court-admin-card.is-settling .court-target-select { color: #f2f6f5; background-color: #344950; border-color: #64777c; }
.court-admin-card.is-settling .score-separator { color: #d5dfde; }
.court-admin-teams { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: end; gap: .5rem; margin-top: .65rem; }
.court-admin-team-name { min-width: 0; overflow-wrap: anywhere; color: #183640; font-size: .88rem; line-height: 1.3; text-align: center; }
.court-teams-vs { padding-bottom: .08rem; color: #748581; font-size: .7rem; font-weight: 800; }
.court-score-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: end; gap: .5rem; margin: .8rem 0; }
.court-score-entry label { min-width: 0; }
.court-score-entry label > span { display: block; margin-bottom: .25rem; color: #61726f; font-size: .72rem; }
.court-score-entry .score-input { min-width: 0; }
.score-separator { padding-bottom: .45rem; color: #71817e; font-weight: 800; }
.court-admin-pending { margin-top: .8rem; padding: .5rem .6rem; color: #745000; background: #fff6df; border-radius: 8px; font-size: .78rem; font-weight: 700; }
.court-admin-card.is-settling .court-admin-pending { color: #fff1c7; background: #5b4a29; }
.court-assignment-form { display: flex; align-items: center; gap: .45rem; margin-top: .75rem; }
.court-assignment-form .court-target-select { flex: 1 1 auto; min-width: 0; }
.court-assignment-form button { flex: 0 0 auto; white-space: nowrap; }
.court-move-form { display: block; margin-top: .75rem; }
.court-action-button { display: flex; min-height: 2.5rem; align-items: center; justify-content: center; }
.court-move-form .court-move-trigger { color: #27383e; background: #e8edef; border: 1px solid #e8edef; font-weight: 800; }
.court-move-form .court-move-trigger:hover, .court-move-form .court-move-trigger:focus-visible { color: #1d2d32; background: #d9e1e3; border-color: #d9e1e3; }
.court-move-form .court-move-trigger:focus-visible { box-shadow: 0 0 0 .2rem rgba(94,109,116,.2); }
.court-target-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-top: .5rem; padding: .55rem; background: #f3f6f5; border: 1px solid #dce5e3; border-radius: 12px; }
.court-move-option { min-height: 2.5rem; color: #27383e; background: #fff; border: 1px solid #ccd7d5; border-radius: 999px; font-size: .82rem; font-weight: 800; }
.court-move-option:hover, .court-move-option:focus-visible { color: #183640; background: #e8f3f0; border-color: #70bda4; }
.court-move-option:focus-visible { box-shadow: 0 0 0 .2rem rgba(94,109,116,.2); }
.court-assignment-form + .court-score-form { margin-top: .5rem; }
.court-admin-empty { display: grid; min-height: 150px; align-content: center; justify-items: center; gap: .5rem; color: #6d807c; text-align: center; }
.court-admin-card.is-settling .court-admin-empty { color: #cad7d6; }
.court-admin-empty i { font-size: 1.6rem; color: #8fa29e; }
.court-admin-card.is-settling .court-admin-empty i { color: #b0c0bf; }
.court-admin-empty strong { font-size: .88rem; }
.pending-match-list { display: grid; gap: .55rem; }
.pending-match { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem .75rem; background: #f5f9f8; border: 1px solid #deebe8; border-radius: 10px; }
.pending-match-info { display: flex; align-items: center; gap: .8rem; flex: 1 1 auto; min-width: 0; }
.pending-match strong { color: #173640; font-size: .88rem; }
.pending-match-teams { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: .85rem; flex: 0 1 24rem; width: min(100%, 24rem); }
.pending-match-team { display: block; min-width: 0; overflow-wrap: anywhere; line-height: 1.3; }
.pending-match-team:first-child { text-align: right; }
.pending-match-team:last-child { text-align: left; }
.pending-match-vs { color: #536a66; font-size: .78rem; font-weight: 800; letter-spacing: .02em; text-align: center; }
.pending-match-meta { flex: 0 0 auto; align-self: center; color: var(--muted); font-size: .76rem; white-space: nowrap; }
.pending-match-actions { display: flex; align-items: center; gap: .65rem; flex: 0 0 auto; }
.pending-match-actions .court-assignment-form { margin: 0; }
.pending-assign-submit { color: #fff; background: #77848b; border: 1px solid #77848b; border-radius: var(--bs-border-radius); white-space: nowrap; }
.pending-assign-submit:hover, .pending-assign-submit:focus-visible { color: #fff; background: #5e6d74; border-color: #5e6d74; }
.pending-assign-submit:focus-visible { box-shadow: 0 0 0 .2rem rgba(94,109,116,.25); }
.table thead th { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.table tbody td { font-size: .78rem; }
@media (max-width: 991.98px) { .score-court-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .score-court-grid { grid-template-columns: minmax(0, 1fr); }
  .court-admin-card { min-height: 210px; }
  .pending-match { align-items: flex-start; flex-direction: column; }
  .pending-match-info { flex-wrap: wrap; width: 100%; gap: .35rem .75rem; }
  .pending-match-teams { flex: 0 1 24rem; }
  .pending-match-meta { margin-left: auto; }
  .pending-match-actions { width: 100%; justify-content: space-between; }
  .pending-match-actions .court-assignment-form { flex: 1 1 auto; }
  .pending-match-actions .court-target-select { max-width: 15rem; }
  .admin-tabs { gap: .4rem; }
  .admin-tab { gap: .4rem; min-height: 2.9rem; padding: .55rem .4rem; border-radius: 11px; font-size: .88rem; }
  .admin-tab-count { min-width: 1.3rem; height: 1.3rem; font-size: .72rem; }
  .admin-main .container { padding-top: 1.75rem !important; }
  .admin-main .panel { padding: 1rem; }
}
@media (min-width: 768px) and (max-width: 1399.98px) {
  .hero-actions { flex-wrap: nowrap !important; }
  .hero-actions .btn { font-size: 1.12rem; }
  .hero-actions .btn-primary { min-width: 16rem; }
  .hero-actions .btn-ghost { min-width: 13.5rem; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .hero-section > .container { padding-inline: clamp(3.5rem, 5.4vw, 4.5rem); }
}
@media (max-width: 767.98px) { .section { padding: 4.25rem 0; } .display-title { font-size: 4rem; } .hero-layout { min-height: auto; } .hero-primary-column { padding-top: 1rem; } .hero-display-title { font-size: clamp(3.25rem, 16vw, 5rem); white-space: normal; } .hero-wordmark { font-size: 1.05rem; letter-spacing: .25em; } .hero-info-card { margin-top: .5rem; } .hero-actions { width: 100%; } .hero-actions .btn { flex: 1 1 100%; } .countdown-grid { gap: .35rem; } .countdown-unit { min-width: 0; padding-inline: .25rem; } .countdown-unit strong { font-size: 1.55rem; } .hero-stats { margin-top: 2rem !important; } .stat-item { padding-left: .35rem; } .stat-item strong { font-size: 1.9rem; } .registration-submit { width: 100%; } .registration-action-row .form-check { min-height: 2.75rem; display: flex; align-items: center; } .capacity-summary { gap: .45rem; } .capacity-metric { gap: .3rem; } .capacity-metric-label { font-size: .82rem; } .capacity-metric-number--registered { font-size: 2.9rem; } .capacity-metric-number--total { font-size: 2.05rem; } .draw-toolbar, .draw-tools { align-items: stretch; flex-direction: column; } .draw-tools, .draw-search, .draw-path-filter { width: 100%; } .draw-rule-strip { grid-template-columns: 1fr; } .draw-rule-note { grid-column: 1; } .draw-page .draw-section { padding: .85rem; } .draw-page .draw-label { align-items: flex-start; flex-direction: column; gap: .35rem; } .draw-venue-address { white-space: normal; text-wrap: pretty; } .draw-page-tabs { display: flex; width: 100%; } .draw-page-tabs .nav-item { flex: 1 1 0; min-width: 0; } .draw-page-tabs .nav-link { align-items: center; justify-content: center; width: 100%; min-width: 0; padding: .6rem .35rem; font-size: 1rem; } .bracket-mobile-hint { display: block; margin: .7rem 0 0; color: var(--muted); font-size: .85rem; } }

@media (max-width: 991.98px) {
  .round-robin-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  .round-robin-group-grid { grid-template-columns: minmax(0, 1fr); }
  .round-robin-group-grid[data-group-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .round-robin-diagram { display: block; width: min(100%, 250px); }
  .round-robin-mobile-list { display: none; }
}

@media (max-width: 767.98px) {
  .hero-page .site-header .navbar { min-height: 4.2rem; }
  .hero-page .site-header .brand-name { font-size: 1.35rem; }
  .hero-page .site-header .brand-lockup { gap: .45rem; }
  .hero-page .site-header .brand-sub { font-size: .76rem; letter-spacing: .055em; }
  .hero-section { min-height: auto; background-position: 53% center; }
  .hero-layout { padding-top: 3rem; padding-bottom: 3rem; }
  .hero-slogan { gap: .6rem; margin-top: 1.4rem; font-size: clamp(.82rem, 3.6vw, .95rem); letter-spacing: .08em; white-space: nowrap; }
  .hero-slogan span { flex: 0 1 clamp(1rem, 5vw, 1.5rem); }
  .hero-actions .btn { min-width: 0; min-height: 3.4rem; font-size: 1.08rem; }
  .hero-info-card { width: 100%; min-height: 21rem; }
  .hero-event-meta { margin-top: 2.2rem !important; gap: 1.35rem; }
  .event-title { font-size: 2.1rem; }
}

@media (min-width: 768px) {
  .venue-address { white-space: nowrap; }
}

@media (max-width: 767.98px) {
  .registration-level-tabs { gap: 0; padding: 0; }
  .registration-level-tab { gap: .15rem; min-height: 2.8rem; padding: .35rem .1rem; font-size: .8rem; }
  .registration-level-tab-count { min-width: 1.75rem; min-height: 1.25rem; padding-inline: .3rem; font-size: .7rem; }
}

@media (max-width: 767.98px) {
  .draw-bracket-tabs { flex-wrap: nowrap; }
  .draw-bracket-tabs .nav-item { flex: 0 0 auto; min-width: 0; }
  .draw-bracket-tabs .nav-link { width: auto; min-width: 90px; }
  .draw-rule-item strong { font-size: 1.15rem; }
  .draw-rule-item small { font-size: .9rem; }
}

/* Draw page: separate major event areas with tonal color blocks, not divider rules. */
body.draw-page {
  --event-surface-courts: #e5f2ed;
  --event-surface-round-robin: #f5f8f6;
  --event-surface-standings: #eaf3ef;
  --event-surface-brackets: #f1f6f3;
}
body.draw-page #live-courts {
  color: var(--ink);
  background: var(--event-surface-courts);
  border: 0;
}
body.draw-page #live-courts .section-heading h2,
body.draw-page #live-courts .live-status,
body.draw-page #live-courts .text-white,
body.draw-page #live-courts .text-white-50 { color: var(--ink) !important; }
body.draw-page #live-courts .live-status.is-active { color: #a44736 !important; }
body.draw-page #live-courts .court-card {
  color: var(--ink);
  background: #fff;
  border-color: #cbd8d5;
  box-shadow: 0 8px 24px rgba(26, 55, 57, .07);
}
body.draw-page #live-courts .court-card::after { border-color: rgba(11, 127, 105, .18); }
body.draw-page #live-courts .court-number,
body.draw-page #live-courts .court-score { color: #087b66; }
body.draw-page #live-courts .court-match { border-top-color: #e0ebe7; }
body.draw-page #live-courts .court-team { color: #19333c; }
body.draw-page #live-courts .court-empty { color: #70858a; }
body.draw-page #live-courts .court-status--idle { color: #455c64; background: #e8f0f1; border-color: #cfdddf; }
body.draw-page #live-courts .court-level-badge--beg { color: #28634f; background: #dcefe6; border: 1px solid #b9ddcf; }
body.draw-page #live-courts .court-level-badge--int { color: #74570e; background: #ffefbd; border: 1px solid #ead79b; }
body.draw-page #live-courts .court-level-badge--adv { color: #31577a; background: #dce8f2; border: 1px solid #c8d8e8; }

body.draw-page #round-robin-scores {
  color: var(--ink);
  background: var(--event-surface-round-robin);
  border: 0;
}
body.draw-page #round-robin-scores .section-heading h2,
body.draw-page #round-robin-scores .text-white,
body.draw-page #round-robin-scores .text-white-50 { color: var(--ink) !important; }
body.draw-page #round-robin-scores .round-robin-group-card {
  background: #fff;
  border-color: #b7cbd1;
  box-shadow: 0 5px 18px rgba(26, 62, 77, .09);
}
body.draw-page #round-robin-scores .round-robin-group-title,
body.draw-page #round-robin-scores .round-robin-section h3,
body.draw-page #round-robin-scores .standing-results h3 { color: #145d51; }
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button {
  color: #25434a;
  background: #fff;
  border-color: #bfd4cd;
}
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button:hover { color: #086e5d; border-color: #59ad94; }
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button.active { color: #fff; background: #287e6b; border-color: #287e6b; }
body.draw-page #round-robin-scores [data-testid="round-robin-group-filters-BEG"] { --group-filter-text: #28634f; --group-filter-bg: #f0f8f4; --group-filter-border: #b9ddcf; --group-filter-hover-text: #1f5845; --group-filter-hover-bg: #e5f3ec; --group-filter-hover-border: #8fcab2; --group-filter-active-text: #1f5845; --group-filter-active-bg: #dcefe6; --group-filter-active-border: #76b89e; --group-filter-active-shadow: #50a785; }
body.draw-page #round-robin-scores [data-testid="round-robin-group-filters-INT"] { --group-filter-text: #74570e; --group-filter-bg: #fff8e5; --group-filter-border: #ead79b; --group-filter-hover-text: #634807; --group-filter-hover-bg: #fff2c9; --group-filter-hover-border: #d9b85e; --group-filter-active-text: #5b4307; --group-filter-active-bg: #ffefbd; --group-filter-active-border: #cca53b; --group-filter-active-shadow: #c69920; }
body.draw-page #round-robin-scores [data-testid="round-robin-group-filters-ADV"] { --group-filter-text: #31577a; --group-filter-bg: #eef4fa; --group-filter-border: #c8d8e8; --group-filter-hover-text: #234967; --group-filter-hover-bg: #e6f0f8; --group-filter-hover-border: #95b3cf; --group-filter-active-text: #234967; --group-filter-active-bg: #dce8f2; --group-filter-active-border: #7896b2; --group-filter-active-shadow: #7896b2; }
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button { color: var(--group-filter-text); background: var(--group-filter-bg); border-color: var(--group-filter-border); }
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button:hover { color: var(--group-filter-hover-text); background: var(--group-filter-hover-bg); border-color: var(--group-filter-hover-border); }
body.draw-page #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button.active { color: var(--group-filter-active-text); background: var(--group-filter-active-bg); border-color: var(--group-filter-active-border); box-shadow: inset 0 -3px 0 var(--group-filter-active-shadow); }
body.draw-page #round-robin-scores .round-robin-diagram { background: #fff; border: 1px solid #b7c9ce; }
body.draw-page #round-robin-scores .round-robin-edge { stroke: #526d65; }
body.draw-page #round-robin-scores .round-robin-team { color: #18343b; }
body.draw-page #round-robin-scores .round-robin-team strong { color: #24464b; }
body.draw-page #round-robin-scores .round-robin-score { fill: #173c3b; stroke: #fff; }
body.draw-page #round-robin-scores .round-robin-score-backdrop { fill: #fff; }
body.draw-page #round-robin-scores .round-robin-game {
  color: #203a40;
  background: #fff;
  border-color: #d2e0db;
  box-shadow: 0 3px 10px rgba(24, 58, 55, .045);
}
body.draw-page #round-robin-scores .round-robin-game-status { color: #647a7e; }
body.draw-page #round-robin-scores .round-robin-game-playing .round-robin-game-status,
body.draw-page #round-robin-scores .round-robin-game-on_court .round-robin-game-status,
body.draw-page #round-robin-scores .round-robin-game-in_progress .round-robin-game-status,
body.draw-page #round-robin-scores .round-robin-game-live .round-robin-game-status { color: #a44736; }
body.draw-page #round-robin-scores .round-robin-game-pending_confirm .round-robin-game-status { color: #855a08; }
body.draw-page #round-robin-scores .round-robin-score-row strong { color: #38565c; }
body.draw-page #round-robin-scores .round-robin-score-row.is-winner { color: #145d51; }
body.draw-page #round-robin-scores .round-robin-score-row.is-winner strong { color: #087b66; }
body.draw-page #round-robin-scores .round-robin-empty { color: #536d70; background: #f9fcfb; border-color: #b9d3cb; }

body.draw-page #group-standings {
  background: var(--event-surface-standings);
  border: 0;
}
body.draw-page #group-standings .standing-group-title { color: #fff; background: #17343b; }
body.draw-page #group-standings .standing-wrap { border-color: #cbd8d5; box-shadow: 0 5px 18px rgba(26, 55, 57, .07); }

body.draw-page .draw-page-content { color: var(--ink); background: var(--event-surface-brackets); border: 0; }
body.draw-page .draw-page-content .draw-toolbar .eyebrow { color: #287e6b !important; }
body.draw-page .draw-page-content .draw-toolbar h2 { color: #18343e; }
body.draw-page .draw-page-content .draw-toolbar .small { color: #637982 !important; }
body.draw-page .draw-rule-strip {
  color: #385159;
  background: #f8fbfa;
  border-color: #d3e0df;
  box-shadow: 0 5px 18px rgba(22, 55, 67, .045);
}
body.draw-page .draw-rule-item strong { color: #173c43; }
body.draw-page .draw-rule-item small { color: #526a70; }
body.draw-page .draw-rule-note { color: #60767c; border-top-color: #d8e3e1; }
body.draw-page .draw-page-tabs:not(.draw-bracket-tabs) .nav-link { color: #304d52 !important; background: #fff; border-color: #aebfbb; }
body.draw-page .draw-page-tabs:not(.draw-bracket-tabs) .nav-link:hover,
body.draw-page .draw-page-tabs:not(.draw-bracket-tabs) .nav-link:focus { color: #173c43 !important; background: #f3faf7; border-color: #438f7b; }
body.draw-page .draw-page-tabs:not(.draw-bracket-tabs) .nav-link.active { color: #173c43 !important; background: #fff; border-color: #438f7b; box-shadow: inset 0 -3px 0 #43a98a; }
body.draw-page .draw-tabs:not(.draw-bracket-tabs) .nav-link { color: #5b7077 !important; }
body.draw-page .draw-tabs:not(.draw-bracket-tabs) .nav-link.active { color: #173c43 !important; border-bottom-color: #43a98a; }
body.draw-page .division-tabs .nav-link {
  min-height: 44px;
  padding: .65rem 1.35rem;
  color: #29464b !important;
  background: #fff;
  border: 1px solid #aabdb7;
  box-shadow: 0 1px 2px rgba(20, 52, 58, .06);
  font-weight: 750;
  transition: color .16s ease, border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
body.draw-page .division-tabs .nav-link span { color: #58716f; }
body.draw-page .division-tabs .nav-link:hover { color: #17634f !important; background: #f2faf6; border-color: #438f7b; }
body.draw-page .division-tabs .nav-link:focus-visible { outline: 3px solid rgba(43, 139, 112, .3); outline-offset: 2px; }
body.draw-page .division-tabs .nav-link.active { color: #fff !important; background: #176f5c; border-color: #176f5c; box-shadow: 0 2px 7px rgba(23, 111, 92, .2); }
body.draw-page .division-tabs .nav-link.active span { color: #d9f3e9; }
body.draw-page .draw-grade-tabs .nav-link[data-level="BEG"] { color: #28634f !important; background: #f0f8f4; border-color: #b9ddcf; }
body.draw-page .draw-grade-tabs .nav-link[data-level="BEG"]:hover { color: #1f5845 !important; background: #e5f3ec; border-color: #8fcab2; }
body.draw-page .draw-grade-tabs .nav-link[data-level="BEG"].active { color: #1f5845 !important; background: #dcefe6; border-color: #76b89e; box-shadow: inset 0 -3px 0 #50a785; }
body.draw-page .draw-grade-tabs .nav-link[data-level="INT"] { color: #74570e !important; background: #fff8e5; border-color: #ead79b; }
body.draw-page .draw-grade-tabs .nav-link[data-level="INT"]:hover { color: #634807 !important; background: #fff2c9; border-color: #d9b85e; }
body.draw-page .draw-grade-tabs .nav-link[data-level="INT"].active { color: #5b4307 !important; background: #ffefbd; border-color: #cca53b; box-shadow: inset 0 -3px 0 #c69920; }
body.draw-page .draw-grade-tabs .nav-link[data-level="ADV"] { color: #31577a !important; background: #eef4fa; border-color: #c8d8e8; }
body.draw-page .draw-grade-tabs .nav-link[data-level="ADV"]:hover { color: #234967 !important; background: #e6f0f8; border-color: #95b3cf; }
body.draw-page .draw-grade-tabs .nav-link[data-level="ADV"].active { color: #234967 !important; background: #dce8f2; border-color: #7896b2; box-shadow: inset 0 -3px 0 #7896b2; }
body.draw-page .draw-theme-toggle { min-height: 42px; font-weight: 700; }
body.draw-page .draw-home-link { display: inline-flex; align-items: center; min-height: 42px; }

body.draw-page[data-theme="dark"] {
  color: #e4edef;
  color-scheme: dark;
  background: #0b1217;
  --event-surface-courts: #172e33;
  --event-surface-round-robin: #0f1b20;
  --event-surface-standings: #1b3034;
  --event-surface-brackets: #121f24;
}
body.draw-page[data-theme="dark"] #live-courts {
  color: #e4edef;
  background: var(--event-surface-courts);
  border: 0;
}
body.draw-page[data-theme="dark"] #live-courts .section-heading h2,
body.draw-page[data-theme="dark"] #live-courts .live-status,
body.draw-page[data-theme="dark"] #live-courts .text-white,
body.draw-page[data-theme="dark"] #live-courts .text-white-50 { color: #e4edef !important; }
body.draw-page[data-theme="dark"] #live-courts .live-status.is-active { color: #ff9d87 !important; }
body.draw-page[data-theme="dark"] #live-courts .court-card {
  color: #e8f0f0;
  background: #132e39;
  border-color: #31505a;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}
body.draw-page[data-theme="dark"] #live-courts .court-card::after { border-color: rgba(76, 208, 171, .23); }
body.draw-page[data-theme="dark"] #live-courts .court-number,
body.draw-page[data-theme="dark"] #live-courts .court-score { color: #78dfbe; }
body.draw-page[data-theme="dark"] #live-courts .court-match { border-top-color: #35515a; }
body.draw-page[data-theme="dark"] #live-courts .court-team { color: #e2ecec; }
body.draw-page[data-theme="dark"] #live-courts .court-empty { color: #a3b5b9; }
body.draw-page[data-theme="dark"] #live-courts .court-status--idle { color: #d4e0e2; background: #294956; border-color: #496571; }
body.draw-page[data-theme="dark"] #live-courts .court-level-badge--beg { color: #b6e7d4; background: #19362f; border: 1px solid #406c5e; }
body.draw-page[data-theme="dark"] #live-courts .court-level-badge--int { color: #f0d582; background: #3a311d; border: 1px solid #76602c; }
body.draw-page[data-theme="dark"] #live-courts .court-level-badge--adv { color: #b9d2ea; background: #1e3142; border: 1px solid #496984; }

body.draw-page[data-theme="dark"] #round-robin-scores {
  color: #e4edef;
  background: var(--event-surface-round-robin);
  border: 0;
}
body.draw-page[data-theme="dark"] #round-robin-scores .section-heading h2,
body.draw-page[data-theme="dark"] #round-robin-scores .text-white,
body.draw-page[data-theme="dark"] #round-robin-scores .text-white-50 { color: #e4edef !important; }
body.draw-page[data-theme="dark"] #round-robin-scores .division-tabs .nav-link { color: #c5d4d6 !important; background: #20343b; }
body.draw-page[data-theme="dark"] #round-robin-scores .division-tabs .nav-link.active { color: #10252c !important; background: #65d7b3; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-group-card {
  background: #14262d;
  border-color: #344a51;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .16);
}
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-group-title { color: #72ddbc; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-section h3,
body.draw-page[data-theme="dark"] #round-robin-scores .standing-results h3 { color: #e5efed; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button { color: #d5e2e3; background: #172c33; border-color: #455d64; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button:hover { color: #79e1c1; border-color: #66d8b4; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button.active { color: #10252c; background: #65d7b3; border-color: #65d7b3; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid="round-robin-group-filters-BEG"] { --group-filter-text: #b6e7d4; --group-filter-bg: #19362f; --group-filter-border: #406c5e; --group-filter-hover-text: #e2f8ee; --group-filter-hover-bg: #21483b; --group-filter-hover-border: #68b197; --group-filter-active-text: #e2f8ee; --group-filter-active-bg: #235243; --group-filter-active-border: #68b197; --group-filter-active-shadow: #68b197; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid="round-robin-group-filters-INT"] { --group-filter-text: #f0d582; --group-filter-bg: #3a311d; --group-filter-border: #76602c; --group-filter-hover-text: #fff0bd; --group-filter-hover-bg: #4a3c20; --group-filter-hover-border: #c4a84f; --group-filter-active-text: #fff0bd; --group-filter-active-bg: #53441f; --group-filter-active-border: #c4a84f; --group-filter-active-shadow: #c4a84f; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid="round-robin-group-filters-ADV"] { --group-filter-text: #b9d2ea; --group-filter-bg: #1e3142; --group-filter-border: #496984; --group-filter-hover-text: #e4f1ff; --group-filter-hover-bg: #253e53; --group-filter-hover-border: #7196b8; --group-filter-active-text: #e4f1ff; --group-filter-active-bg: #2a4761; --group-filter-active-border: #7196b8; --group-filter-active-shadow: #7196b8; }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button { color: var(--group-filter-text); background: var(--group-filter-bg); border-color: var(--group-filter-border); }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button:hover { color: var(--group-filter-hover-text); background: var(--group-filter-hover-bg); border-color: var(--group-filter-hover-border); }
body.draw-page[data-theme="dark"] #round-robin-scores [data-testid^="round-robin-group-filters"] .group-filter-button.active { color: var(--group-filter-active-text); background: var(--group-filter-active-bg); border-color: var(--group-filter-active-border); box-shadow: inset 0 -3px 0 var(--group-filter-active-shadow); }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-diagram { background: #202020; border-color: #405057; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-edge { stroke: #f3f5f4; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-team { color: #f3f5f4; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-team strong { color: #c8d0ce; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-score { fill: #fff; stroke: #202020; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-score-backdrop { fill: #202020; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game { color: #e4ecea; background: #1a272c; border-color: #34464b; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-status { color: #b2c0c2; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-playing .round-robin-game-status,
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-on_court .round-robin-game-status,
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-in_progress .round-robin-game-status,
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-live .round-robin-game-status { color: #ffa78e; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-game-pending_confirm .round-robin-game-status { color: #f2c66d; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-score-row strong { color: #c1cdcf; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-score-row.is-winner { color: #baf2dd; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-score-row.is-winner strong { color: #6ee0b9; }
body.draw-page[data-theme="dark"] #round-robin-scores .round-robin-empty { color: #c2cecf; background: #142329; border-color: #40535a; }

body.draw-page[data-theme="dark"] #group-standings { background: var(--event-surface-standings); border: 0; }
body.draw-page[data-theme="dark"] #group-standings .standing-group-title { color: #e4efec; background: #1a2a30; }
body.draw-page[data-theme="dark"] #group-standings .standing-wrap { background: #172329; border-color: #3d5055; box-shadow: 0 5px 18px rgba(0, 0, 0, .2); }
body.draw-page[data-theme="dark"] #group-standings .standing-table { --bs-table-bg: transparent; --bs-table-color: #e2eaeb; --bs-table-border-color: #2e444a; color: #e2eaeb; }
body.draw-page[data-theme="dark"] #group-standings .standing-table thead th { color: #b9c9cb; background: #20353b; }
body.draw-page[data-theme="dark"] #group-standings .standing-table tbody td { border-color: #2b4147; }
body.draw-page[data-theme="dark"] #group-standings .rank-no { color: #b0c0c2; }
body.draw-page[data-theme="dark"] #group-standings .rank-no.top { color: #76dbba; }

body.draw-page[data-theme="dark"] .draw-page-content { color: #e4edef; background: var(--event-surface-brackets); border: 0; }
body.draw-page[data-theme="dark"] .draw-page-content .draw-toolbar .eyebrow { color: #64d8b5 !important; }
body.draw-page[data-theme="dark"] .draw-page-content .draw-toolbar h2 { color: #f5f7f7; }
body.draw-page[data-theme="dark"] .draw-page-content .draw-toolbar .small { color: #b4c1c4 !important; }
body.draw-page[data-theme="dark"] .draw-rule-strip { color: #bdc8ca; background: #141d22; border-color: #344147; box-shadow: none; }
body.draw-page[data-theme="dark"] .draw-rule-item strong { color: #f0f5f4; }
body.draw-page[data-theme="dark"] .draw-rule-item small { color: #c1cbcd; }
body.draw-page[data-theme="dark"] .draw-rule-note { color: #a9b6b8; border-top-color: #344147; }
body.draw-page[data-theme="dark"] .draw-page-tabs:not(.draw-bracket-tabs) .nav-link { color: #b2bec0 !important; background: #171f24; border-color: #35434a; }
body.draw-page[data-theme="dark"] .draw-page-tabs:not(.draw-bracket-tabs) .nav-link:hover,
body.draw-page[data-theme="dark"] .draw-page-tabs:not(.draw-bracket-tabs) .nav-link:focus { color: #fff !important; background: #202b30; }
body.draw-page[data-theme="dark"] .draw-page-tabs:not(.draw-bracket-tabs) .nav-link.active { color: #fff !important; background: #1a282d; border-color: #53666b; box-shadow: inset 0 -3px 0 #55c8a4; }
body.draw-page[data-theme="dark"] .draw-tabs:not(.draw-bracket-tabs) .nav-link { color: #b2bec0 !important; }
body.draw-page[data-theme="dark"] .draw-tabs:not(.draw-bracket-tabs) .nav-link.active { color: #f1f7f5 !important; border-bottom-color: #55c8a4; }
body.draw-page[data-theme="dark"] .division-tabs .nav-link { color: #e0e9e7 !important; background: #1a292e; border-color: #53686d; box-shadow: none; }
body.draw-page[data-theme="dark"] .division-tabs .nav-link span { color: #b6c9c7; }
body.draw-page[data-theme="dark"] .division-tabs .nav-link:hover { color: #8ce3c7 !important; background: #20363a; border-color: #67c9aa; }
body.draw-page[data-theme="dark"] .division-tabs .nav-link.active { color: #10252c !important; background: #65d7b3; border-color: #65d7b3; }
body.draw-page[data-theme="dark"] .division-tabs .nav-link.active span { color: #214c40; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="BEG"] { color: #b6e7d4 !important; background: #19362f !important; border-color: #406c5e !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="BEG"]:hover { color: #e2f8ee !important; background: #21483b !important; border-color: #68b197 !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="BEG"].active { color: #e2f8ee !important; background: #235243 !important; border-color: #68b197 !important; box-shadow: inset 0 -3px 0 #68b197 !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="BEG"].active span { color: #e2f8ee !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="INT"] { color: #f0d582 !important; background: #3a311d !important; border-color: #76602c !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="INT"]:hover { color: #fff0bd !important; background: #4a3c20 !important; border-color: #c4a84f !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="INT"].active { color: #fff0bd !important; background: #53441f !important; border-color: #c4a84f !important; box-shadow: inset 0 -3px 0 #e2bd4c !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="INT"].active span { color: #fff0bd !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="ADV"] { color: #b9d2ea !important; background: #1e3142 !important; border-color: #496984 !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="ADV"]:hover { color: #e4f1ff !important; background: #253e53 !important; border-color: #7196b8 !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="ADV"].active { color: #e4f1ff !important; background: #2a4761 !important; border-color: #7196b8 !important; box-shadow: inset 0 -3px 0 #7196b8 !important; }
body.draw-page[data-theme="dark"] :is(#round-robin-scores, #group-standings, #championship-brackets) .draw-grade-tabs .nav-link[data-level="ADV"].active span { color: #e4f1ff !important; }
@media (max-width: 575.98px) {
  body.draw-page .draw-theme-toggle,
  body.draw-page .draw-home-link { width: 42px; height: 42px; justify-content: center; padding: 0; }
  body.draw-page .draw-theme-toggle i,
  body.draw-page .draw-home-link i { margin: 0 !important; }
  body.draw-page .draw-theme-toggle span,
  body.draw-page .draw-home-link .draw-back-label { display: none; }
}

body.draw-page .draw-stage-nav a.is-active { color: #fff; border-bottom-color: var(--mint); }
body.draw-page[data-theme="dark"] .draw-stage-nav a.is-active { color: #fff; border-bottom-color: #72dfbd; }

@media (max-width: 767.98px) {
  body.draw-page .draw-stage-nav {
    position: sticky;
    top: var(--draw-stage-sticky-top, 4rem);
    z-index: 9;
    box-shadow: 0 6px 16px rgba(10, 30, 40, .18);
  }
  body.draw-page .draw-stage-nav .container { min-height: 3.35rem; }
  body.draw-page .draw-stage-nav a { padding-inline: .65rem; font-size: .94rem; }
  body.draw-page #round-robin-scores .round-robin-diagram { width: min(100%, 320px); }
}
