:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#171717;
  background:#f7f7f5;
  --ink:#171717;
  --muted:#707070;
  --soft:#f3f3f1;
  --panel:#ffffff;
  --line:#e6e6e2;
  --line-strong:#d7d7d2;
  --accent:#e21d2b;
  --accent-dark:#bd1420;
  --accent-soft:#fff0f1;
  --success:#147a52;
  --warning:#a96008;
  --danger:#c51d2a;
}
*{box-sizing:border-box}
html{background:#f7f7f5}
body{margin:0;background:#f7f7f5;color:var(--ink);font-size:15px;line-height:1.5}
a{color:inherit}

.top{
  background:#fff;
  color:var(--ink);
  min-height:64px;
  padding:12px 28px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  border-bottom:1px solid var(--line);
}
.top>div{display:flex;align-items:center;gap:10px;min-width:0}
.top strong{font-size:15px;letter-spacing:.01em}
.top a{color:var(--muted);text-decoration:none}
.top a:hover{color:var(--accent)}
.top-sub{color:var(--muted);font-size:12px;margin-left:3px;font-weight:500}
.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:inline-grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:.06em;flex:0 0 auto}

.nav{
  display:flex;
  gap:2px;
  flex-wrap:wrap;
  background:#fff;
  padding:7px 20px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:20;
}
.nav a{
  padding:8px 10px;
  text-decoration:none;
  color:#484848;
  border-radius:8px;
  font-size:13px;
  font-weight:600;
  transition:background .15s ease,color .15s ease;
}
.nav a:hover{background:var(--soft);color:var(--ink)}
.nav a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(226,29,43,.18);outline-offset:2px}

.wrap{max-width:1320px;margin:0 auto;padding:28px}
.page-head{display:flex;justify-content:space-between;align-items:end;margin:0 0 18px}
.page-head h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.025em;font-weight:760}
h1,h2,h3{color:var(--ink)}
h2{font-size:18px;letter-spacing:-.01em;margin-top:0}
h3{font-size:15px;margin:10px 0}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px;
  box-shadow:none;
}
.metric{font-size:31px;line-height:1.05;font-weight:800;letter-spacing:-.04em;margin-bottom:6px}
.muted,small{color:var(--muted)}

.btn,button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  background:var(--accent);
  color:#fff;
  border:1px solid var(--accent);
  border-radius:9px;
  padding:9px 14px;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
  font-weight:700;
  font-size:13px;
  transition:background .15s ease,border-color .15s ease,transform .05s ease;
}
.btn:hover,button:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn:active,button:active{transform:translateY(1px)}
.btn.alt,button.alt{background:#252525;border-color:#252525;color:#fff}
.btn.alt:hover,button.alt:hover{background:#111;border-color:#111}
.btn.success,button.success{background:#147a52;border-color:#147a52}
.btn.warn,button.warn{background:#a96008;border-color:#a96008}
.btn.danger,button.danger{background:#c51d2a;border-color:#c51d2a}
.btn.light,button.light{background:#fff;color:#333;border-color:var(--line-strong)}
.btn.light:hover,button.light:hover{background:var(--soft);border-color:#c9c9c4}

input,select,textarea{
  width:100%;
  min-height:42px;
  padding:9px 11px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:hover,select:hover,textarea:hover{border-color:#bdbdb7}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,29,43,.08);outline:none}
textarea{min-height:92px;resize:vertical}
label{display:block;margin:11px 0 5px;font-weight:700;font-size:12px;color:#454545}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:11px 12px;border-bottom:1px solid #ededeb;text-align:left;vertical-align:top}
th{background:#fafaf8;color:#646464;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fcfcfa}

.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.notice{padding:11px 13px;background:#edf8f3;border:1px solid #cce9dc;border-radius:10px;margin:10px 0 16px;color:#235f49}
.notice.error{background:#fff0f1;border-color:#f5c7cb;color:#a91c27}

.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px;line-height:1;font-weight:800;letter-spacing:.025em;background:#f0f0ed;color:#555}
.badge-live,.badge-ongoing{background:var(--accent-soft);color:var(--accent-dark)}
.badge-completed,.badge-paid,.badge-approved,.badge-available{background:#e9f6ef;color:#116d49}
.badge-pending,.badge-called,.badge-registration{background:#fff5df;color:#946009}
.badge-maintenance,.badge-cancelled,.badge-rejected,.badge-withdrawn{background:#f0f0ee;color:#616161}

.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;padding:8px 0}
.score{font-size:68px;line-height:1;font-weight:850;letter-spacing:-.055em;text-align:center;color:#111}
.team{text-align:center;font-size:18px;font-weight:760;line-height:1.3}
.live-badge{display:inline-flex;align-items:center;background:var(--accent);color:#fff;padding:5px 8px;border-radius:999px;font-size:10px;letter-spacing:.045em;font-weight:850}
.games{text-align:center;margin:12px 0;color:var(--muted);font-size:13px}
.score-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.score-actions button{font-size:16px;padding:15px;min-height:54px}
.kpis{margin-bottom:16px}
.section-title{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px}
.section-title h2{margin:0}
.actions{display:flex;gap:7px;flex-wrap:wrap}

.court-card{border-left:3px solid var(--accent)}
.call-banner{padding:12px 14px;border-radius:10px;background:#fff7e8;border:1px solid #efddb9;margin-bottom:9px;color:#6f4b0c}
.public-board{max-width:1500px}
.public-board .score{font-size:82px}
.public-board .card{margin-bottom:0}
.public-board #feed{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

.bracket-round{min-width:240px}
.bracket{display:flex;gap:14px;overflow:auto;align-items:flex-start;padding-bottom:6px}
.match-tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;margin:9px 0}
.inline-form{display:flex;gap:6px;align-items:end;flex-wrap:wrap}
.inline-form>*{min-width:120px}
.inline-form button{width:auto}

.default-timer{padding:11px 12px;border-radius:10px;text-align:center;min-width:180px}
.default-timer.active{background:#fff7e8;border:1px solid #eacb90;color:#774d09}
.default-timer.expired{background:#fff0f1;border:1px solid #efb5bb;color:#9e1b26}
.default-timer .countdown{font-size:30px;line-height:1.1;font-weight:850;letter-spacing:-.03em;margin-top:4px}
.public-board .default-timer .countdown{font-size:40px}
.default-label{font-size:10px;font-weight:850;letter-spacing:.065em;text-transform:uppercase}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px 18px;background:#f7f7f5}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}
.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.login-brand .brand-mark{width:36px;height:36px;border-radius:10px}
.login-eyebrow{font-size:10px;font-weight:850;letter-spacing:.085em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.login-card h1{font-size:27px;letter-spacing:-.03em;margin:0 0 6px}
.login-card .login-copy{color:var(--muted);font-size:13px;margin:0 0 20px}
.login-card button{width:100%;margin-top:8px}
.login-foot{display:block;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;line-height:1.55}

@media(max-width:800px){
  body{font-size:14px}
  .row,.row-3{grid-template-columns:1fr}
  .scoreboard{grid-template-columns:1fr;gap:12px}
  .score{font-size:52px}
  .top{padding:11px 14px;align-items:flex-start;flex-direction:column;gap:7px}
  .top>span{font-size:12px}
  .wrap{padding:18px 14px}
  .page-head h1{font-size:24px}
  .nav{position:static;padding:6px 8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;padding:8px 9px}
  .public-board .score{font-size:54px}
  .score-actions{grid-template-columns:1fr}
  .table-wrap{border-radius:10px}
  th,td{padding:10px}
}

/* Destructive record actions */
.delete-form{display:inline-flex;margin:0}.btn-delete{white-space:nowrap}.actions .delete-form{align-items:center}

/* Player photos, configurable live feed, and sponsors */
.image-preview{margin-top:10px}.image-preview img{width:92px;height:92px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.avatar-sm{width:42px;height:42px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:inline-grid;place-items:center}.avatar-empty{background:var(--soft);font-size:11px;font-weight:800;color:var(--muted)}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.check-row{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.check-row input{width:18px;min-height:18px;margin:0}.check-row span{font-size:13px}
.sponsor-preview{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafaf8}.sponsor-preview img,.sponsor-thumb{display:block;max-width:150px;max-height:64px;object-fit:contain}.sponsor-thumb{width:100px;height:46px}
.live-match-grid{--feed-cols:2;display:grid;grid-template-columns:repeat(var(--feed-cols),minmax(0,1fr));gap:14px}.live-match-card{min-width:0}.live-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:10px 0 14px}.live-versus{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.live-team{position:relative;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px}.live-team.is-serving{border-color:#efabb0;background:#fffafa}.serve-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.live-team-players{display:grid;gap:8px}.live-player{display:flex;gap:9px;align-items:center;min-width:0}.player-photo{width:50px;height:50px;border-radius:10px;object-fit:cover;border:1px solid var(--line);flex:0 0 auto}.player-photo-empty{display:grid;place-items:center;background:var(--soft);font-size:11px;font-weight:850;color:var(--muted)}.player-copy{min-width:0}.player-name{font-size:14px;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.player-club{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.2;overflow-wrap:anywhere}.live-score{font-size:44px;white-space:nowrap}.live-score span{font-size:.55em;color:var(--muted);padding:0 4px}
.sponsor-section{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.sponsor-title{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:850;color:var(--muted);margin-bottom:12px}.sponsor-strip{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.sponsor-logo-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:120px;min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.sponsor-logo-card img{max-width:140px;max-height:48px;object-fit:contain}.sponsor-logo-card span{font-size:10px;color:var(--muted);text-align:center}
@media(max-width:700px){.check-grid{grid-template-columns:1fr}.live-match-grid{grid-template-columns:1fr!important}.live-versus{grid-template-columns:1fr}.live-score{font-size:42px}.live-team{padding:9px}.player-photo{width:44px;height:44px}}

/* Umpire match workflow: check-in, toss/service and court queue */
.umpire-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);gap:16px;align-items:start}.umpire-side-stack{display:grid;gap:12px}.umpire-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.check-summary{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.team-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.team-check{background:#fff;color:var(--ink);border:1px solid var(--line-strong);justify-content:flex-start;text-align:left;padding:12px;min-height:66px}.team-check:hover{background:#fafaf8;border-color:#bdbdb7}.team-check .check-light{width:13px;height:13px;border-radius:50%;background:#c8c8c3;flex:0 0 auto}.team-check span:last-child{display:grid;gap:2px}.team-check small{font-size:10px;font-weight:600;color:var(--muted)}.team-check.is-checked{background:#edf8f3;border-color:#a9d9c4;color:#155f43}.team-check.is-checked .check-light{background:var(--success);box-shadow:0 0 0 4px rgba(20,122,82,.10)}.team-check.is-checked small{color:#31745c}.serving-caption{min-height:20px;text-align:center;font-size:10px;font-weight:900;letter-spacing:.065em;color:var(--accent);text-transform:uppercase;margin-top:5px}.player-role{font-size:9px;font-weight:900;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.serving-role{color:var(--accent)}.team-check-live{display:inline-flex;width:max-content;max-width:100%;padding:3px 6px;border-radius:999px;font-size:8px;line-height:1;font-weight:900;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.team-check-live.checked{background:#e9f6ef;color:#116d49}.team-check-live.waiting{background:#f0f0ee;color:#767670}.court-next,.next-match-panel{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.court-next{font-size:11px;color:var(--muted)}.court-next strong{color:var(--ink)}.court-next>div:last-child,.next-teams{margin-top:4px;color:var(--ink);font-weight:700}.court-next span,.next-teams span{color:var(--muted);font-weight:500;padding:0 4px}.next-label{font-size:9px;font-weight:900;letter-spacing:.09em;color:var(--accent);text-transform:uppercase;margin-bottom:3px}.next-match-panel .next-label{font-size:10px}.next-match-panel .next-teams{font-size:16px;margin-top:8px}
@media(max-width:1050px){.umpire-grid{grid-template-columns:1fr}.umpire-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.umpire-side-stack .card{min-width:0}}
@media(max-width:700px){.umpire-side-stack,.team-check-grid{grid-template-columns:1fr}.umpire-topline{flex-direction:column}.team-check{width:100%}}
.umpire-list-side{display:flex;align-items:center;gap:7px;font-weight:700}.check-dot{width:9px;height:9px;border-radius:50%;background:#c8c8c3;flex:0 0 auto}.check-dot.checked{background:var(--success);box-shadow:0 0 0 3px rgba(20,122,82,.10)}

/* v3.1 minimalist centered grouped navigation */
:root{
  --page:#f8f8f7;
  --panel:#fff;
  --ink:#181818;
  --muted:#77736f;
  --soft:#f5f4f2;
  --line:#e9e7e3;
  --line-strong:#dcd9d4;
  --accent:#df1f2d;
  --accent-dark:#bc1722;
  --accent-soft:#fff4f4;
}
html,body{background:var(--page)}
body{letter-spacing:-.005em}
.top{min-height:68px;padding:13px 28px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}
.top-brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand-mark{width:32px;height:32px;border-radius:8px;font-size:10px;box-shadow:none}
.brand-copy{display:grid;line-height:1.15}.brand-copy strong{font-size:14px;font-weight:780}.brand-copy small{font-size:10px;text-transform:uppercase;letter-spacing:.085em;color:var(--muted);margin-top:4px;font-weight:700}
.user-meta{display:flex;align-items:center;gap:8px!important;font-size:12px;color:var(--muted)}
.user-name{color:var(--ink);font-weight:700}.user-role{padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.logout-link{margin-left:3px;padding-left:10px;border-left:1px solid var(--line)}

.nav-shell{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.nav-center{max-width:1080px;margin:0 auto;min-height:52px;padding:7px 16px;display:flex;align-items:center;justify-content:center;gap:4px}
.nav-link,.nav-group>summary{min-height:36px;display:flex;align-items:center;gap:5px;padding:8px 11px;border-radius:8px;color:#53504d;text-decoration:none;font-size:12px;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap;transition:background .15s ease,color .15s ease}
.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary::marker{display:none;content:""}
.nav-link:hover,.nav-group>summary:hover,.nav-group[open]>summary{background:var(--soft);color:var(--ink)}
.nav-link.active{background:var(--accent-soft);color:var(--accent-dark)}
.nav-group{position:relative}.chev{font-size:13px;color:#9b9792;line-height:1;transition:transform .15s ease}.nav-group[open] .chev{transform:rotate(180deg)}
.nav-menu{position:absolute;top:calc(100% + 8px);left:0;width:220px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 28px rgba(20,20,20,.08);display:grid;gap:2px;z-index:60}
.nav-menu-right{left:auto;right:0}.nav-menu .nav-link{width:100%;min-height:38px;padding:9px 10px;border-radius:7px;font-size:12px}.nav-menu .nav-link:hover{background:#f7f6f4}

.wrap{max-width:1280px;padding:30px 28px 44px}.page-head{margin-bottom:20px}.page-head h1{font-size:26px;font-weight:760;letter-spacing:-.035em}
.card{border-radius:12px;border-color:var(--line);padding:17px}.grid{gap:11px}.metric{font-size:29px;font-weight:780}
.btn,button{min-height:39px;border-radius:8px;padding:8px 13px;font-weight:700}.btn.alt,button.alt{background:#242322;border-color:#242322}
input,select,textarea{border-radius:8px;border-color:var(--line-strong);background:#fff}.table-wrap{border-radius:10px;border-color:var(--line)}
th{background:#fbfbfa;color:#74706c;font-size:10px;letter-spacing:.055em}th,td{padding:10px 11px}
.badge{border-radius:6px;padding:4px 6px}.notice{border-radius:8px}
.login-card{border-radius:14px;box-shadow:0 12px 36px rgba(25,25,25,.045)}

@media(max-width:900px){
  .top{padding:11px 16px;flex-direction:row;align-items:center}.user-name{display:none}.user-role{display:none}.logout-link{border:0;padding:0;margin:0}
  .nav-shell{position:static}.nav-center{justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:6px 10px}.nav-center::-webkit-scrollbar{display:none}.nav-group{position:static}.nav-menu{position:fixed;left:12px!important;right:12px!important;top:auto;width:auto;margin-top:5px;max-height:60vh;overflow:auto}.wrap{padding:22px 14px 36px}
}
@media(max-width:520px){
  .top{min-height:60px}.brand-copy small{display:none}.brand-copy strong{font-size:12px}.brand-mark{width:29px;height:29px}.nav-link,.nav-group>summary{padding:7px 9px;font-size:11px}.page-head h1{font-size:23px}
}
.toolbar-actions{display:flex;justify-content:flex-end;gap:.5rem;margin:-.25rem 0 1rem}.section-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--red,#d9232e);margin-bottom:.3rem}.muted{color:#6b7280}.compact-stats{margin:1rem 0}.compact-stats div{min-width:110px}hr{border:0;border-top:1px solid #eceef1;margin:1.25rem 0}

/* Dedicated live score display per court */
.court-display-body{background:#f6f6f4;color:var(--ink)}
.court-display-top{position:relative;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line)}
.court-display-wrap{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:18px 0 28px}
.court-display-meta{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:12px}
.court-score-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}
.court-score-head{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:16px}
.court-score-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.42fr) minmax(0,1fr);gap:18px;align-items:stretch}
.court-team{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.court-team.is-serving{border-color:#e8a3aa;background:#fffafa}
.court-team-players{display:grid;gap:15px}
.court-player{display:flex;align-items:center;gap:14px;min-width:0}
.court-player-photo{width:78px;height:78px;object-fit:cover;border-radius:14px;border:1px solid var(--line);flex:0 0 auto}
.court-player-photo.player-photo-empty{display:grid;place-items:center;background:var(--soft);font-size:18px;font-weight:850;color:var(--muted)}
.court-player-copy{min-width:0}.court-player-name{font-size:clamp(20px,2vw,34px);font-weight:850;letter-spacing:-.03em;line-height:1.05;overflow-wrap:anywhere}
.court-player-club{font-size:clamp(11px,1vw,15px);color:var(--muted);margin-top:6px}.court-player-role{font-size:11px;font-weight:900;letter-spacing:.09em;margin-top:7px;text-transform:uppercase}.receiving-role{color:#555}
.court-score-number{display:flex;align-items:center;justify-content:center;gap:12px;position:relative;white-space:nowrap;font-size:clamp(78px,10vw,170px);font-weight:900;letter-spacing:-.075em;line-height:.9}
.court-score-number em{font-style:normal;font-size:.35em;color:var(--muted);font-weight:500}.court-score-number small{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:.12em;color:var(--muted);font-weight:850}
.court-default{margin-bottom:14px}.court-default .countdown{font-size:clamp(46px,7vw,92px)}
.court-game-history{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px}.game-pill{border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;color:var(--muted);background:#fafaf9}.game-pill.current{border-color:#e7a5ab;color:var(--accent);background:#fff7f8}
.court-next-large{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px}.next-large-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.next-large-main>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.next-large-main strong{font-size:17px}.next-large-main span{font-size:12px;color:var(--muted)}.next-large-time{font-size:14px;font-weight:850}.next-large-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-top:12px;font-size:clamp(17px,2vw,28px)}.next-large-teams strong:last-child{text-align:right}.next-large-teams span{font-size:10px;letter-spacing:.1em;color:var(--muted);font-weight:900}.next-empty{color:var(--muted);font-size:13px}
.court-idle{background:#fff;border:1px solid var(--line);border-radius:18px;padding:70px 24px;text-align:center}.court-idle h1{font-size:clamp(38px,6vw,78px);margin:14px 0 8px;letter-spacing:-.05em}.court-idle p{color:var(--muted);font-size:18px}
.court-display-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.court-display-admin-card{margin:0}.court-display-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.court-display-admin-head h2{margin:3px 0}.court-display-admin-head p{margin:0;color:var(--muted);font-size:12px}.court-display-admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.court-display-admin-stats>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fafaf9}.court-display-admin-stats small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:850;margin-bottom:4px}.court-display-admin-stats strong{font-size:12px;overflow-wrap:anywhere}.display-url{margin-top:10px;padding:8px 10px;border-radius:9px;background:#f7f7f5;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--accent)}
@media(max-width:900px){.court-score-main{grid-template-columns:1fr}.court-score-number{padding:20px 0 32px}.court-display-admin-grid{grid-template-columns:1fr}.court-player-photo{width:64px;height:64px}.next-large-teams{grid-template-columns:1fr;text-align:center}.next-large-teams strong:last-child{text-align:center}}
@media(max-width:600px){.court-display-wrap{width:min(100% - 18px,1500px);padding-top:10px}.court-display-top{padding:11px 12px}.court-score-card{padding:10px}.court-team{padding:12px}.court-player{gap:10px}.court-player-name{font-size:20px}.court-player-photo{width:52px;height:52px}.court-display-admin-stats{grid-template-columns:1fr}.court-score-head{align-items:flex-start;flex-direction:column}}

/* Checked-in pre-match state */
.match-waiting-start{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:11px 14px;border:1px solid #b7e3c4;background:#f2fbf5;border-radius:10px;color:#175c2d;text-align:center}.match-waiting-start strong{font-size:.78rem;letter-spacing:.06em}.match-waiting-start span{font-size:.86rem;color:#376d47}.court-score-card .match-waiting-start{margin:0 0 18px;padding:13px 16px}.court-score-card .match-waiting-start span{font-size:.95rem}

/* =========================================================
   TRUE DARK UI + RESPONSIVE GROUPED NAVIGATION
   This block intentionally sits last so legacy light styles
   cannot override the application theme.
   ========================================================= */
:root{
  color-scheme:dark;
  --ink:#f5f5f7;
  --muted:#9a9aa3;
  --soft:#202026;
  --panel:#151519;
  --panel-2:#1a1a20;
  --panel-3:#222228;
  --line:#2c2c33;
  --line-strong:#3a3a43;
  --accent:#ed1b2e;
  --accent-dark:#c80f20;
  --accent-soft:#351116;
  --success:#26a269;
  --warning:#d38a25;
  --danger:#ed1b2e;
}
html,body{background:#0a0a0d!important;color:var(--ink)!important;min-height:100%}
body{background:radial-gradient(circle at 50% -140px,#1b1b22 0,#0f0f13 360px,#0a0a0d 720px)!important}
a{color:inherit}
h1,h2,h3,h4,h5,h6,strong{color:var(--ink)}
.muted,small,.top-sub{color:var(--muted)!important}

/* Header */
.top{background:#101014!important;border-bottom:1px solid var(--line)!important;color:var(--ink)!important;min-height:68px;padding:12px 24px}
.top a{color:#b6b6bf!important}.top a:hover{color:#fff!important}
.brand-mark{background:var(--accent)!important;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.brand-copy strong,.user-name{color:#fff!important}.brand-copy small{color:#8f8f99!important}
.user-role{background:#1c1c22!important;border-color:#34343c!important;color:#cfcfd6!important}
.logout-link{border-left-color:#34343c!important}

/* Desktop navigation */
.mobile-nav-bar{display:none!important}
.mobile-nav-toggle{display:none!important}
.nav-shell{position:sticky;top:0;z-index:50;background:rgba(14,14,18,.96)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(16px)}
.nav-center{max-width:1120px;margin:0 auto;min-height:54px;padding:7px 16px;display:flex;align-items:center;justify-content:center;gap:5px;overflow:visible!important}
.nav-link,.nav-group>summary{color:#bdbdc6!important;background:transparent!important;border:1px solid transparent;min-height:38px;padding:8px 12px;border-radius:9px;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.nav-link:hover,.nav-group>summary:hover,.nav-group[open]>summary{background:#1c1c22!important;color:#fff!important;border-color:#313139!important}
.nav-link.active{background:#2a1116!important;color:#ff6673!important;border-color:#5a1b24!important}
.chev{color:#777783!important}
.nav-menu{background:#15151a!important;border:1px solid #34343d!important;box-shadow:0 18px 45px rgba(0,0,0,.48)!important;border-radius:12px!important;padding:7px!important}
.nav-menu .nav-link{color:#c5c5cd!important;background:transparent!important}
.nav-menu .nav-link:hover{background:#202027!important;color:#fff!important}
.nav-menu .nav-link.active{background:#301218!important;color:#ff6b77!important}
@media (hover:hover) and (pointer:fine) and (min-width:861px){
  .nav-group:hover>.nav-menu,.nav-group:focus-within>.nav-menu{display:grid}
  .nav-group:hover>summary,.nav-group:focus-within>summary{background:#1c1c22!important;color:#fff!important;border-color:#313139!important}
  .nav-group:not([open])>.nav-menu{display:none}
  .nav-group:hover:not([open])>.nav-menu,.nav-group:focus-within:not([open])>.nav-menu{display:grid}
}

/* Main surfaces */
.wrap{max-width:1320px;margin:0 auto;padding:30px 28px 48px}
.page-head h1{color:#fff!important}
.card,.court-card,.match-tile,.court-score-card,.court-team,.court-next-large,.court-idle,.login-card,.sponsor-logo-card,.sponsor-preview,.check-row,.court-display-admin-stats>div{background:#151519!important;border-color:var(--line)!important;color:var(--ink)!important;box-shadow:none!important}
.card:hover{border-color:#3a3a43!important}
.section-title h2{color:#fff!important}

/* Forms */
input,select,textarea{background:#111115!important;color:#f5f5f7!important;border-color:#383840!important;box-shadow:none!important}
input::placeholder,textarea::placeholder{color:#6f6f79!important}
input:hover,select:hover,textarea:hover{border-color:#4b4b55!important}
input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(237,27,46,.14)!important}
select option{background:#111115;color:#f5f5f7}
label{color:#d2d2d8!important}
.btn.light,button.light{background:#1c1c22!important;color:#e9e9ee!important;border-color:#393942!important}.btn.light:hover,button.light:hover{background:#25252c!important;border-color:#4a4a54!important}
.btn.alt,button.alt{background:#26262d!important;border-color:#36363f!important;color:#fff!important}.btn.alt:hover,button.alt:hover{background:#303038!important}

/* Tables */
.table-wrap{background:#121216!important;border-color:var(--line)!important}
table{background:#121216!important;color:var(--ink)!important}
th{background:#19191e!important;color:#9e9ea7!important;border-bottom-color:#303038!important}
td{background:#121216!important;border-bottom-color:#24242b!important;color:#e8e8ec!important}
tbody tr:hover td{background:#18181d!important}

/* Notices / badges */
.notice{background:#10251b!important;border-color:#23563d!important;color:#a8e4c6!important}.notice.error{background:#2a1115!important;border-color:#5c2029!important;color:#ff9aa3!important}
.badge{background:#24242a!important;color:#c7c7ce!important}.badge-live,.badge-ongoing{background:#361117!important;color:#ff7c87!important}.badge-completed,.badge-paid,.badge-approved,.badge-available{background:#10271d!important;color:#72d5a2!important}.badge-pending,.badge-called,.badge-registration{background:#30230e!important;color:#efbd65!important}.badge-maintenance,.badge-cancelled,.badge-rejected,.badge-withdrawn{background:#28282d!important;color:#b1b1b8!important}
.call-banner{background:#2a210f!important;border-color:#5b4520!important;color:#e7c17d!important}
.default-timer.active{background:#2b210e!important;border-color:#695022!important;color:#f3c56d!important}.default-timer.expired{background:#301116!important;border-color:#6b222d!important;color:#ff8590!important}
.match-waiting-start{background:#10271b!important;border-color:#245c3c!important;color:#9ee0b8!important}.match-waiting-start span{color:#76b990!important}

/* Scores / live feed */
.score{color:#fff!important}.team{color:#fff!important}
.live-team{background:#131317!important;border-color:#303038!important}.live-team.is-serving{background:#261116!important;border-color:#6c2530!important}
.player-name,.court-player-name{color:#fff!important}.receiving-role{color:#65a8ff!important}
.sponsor-section{border-color:#2a2a31!important}.sponsor-logo-card{background:#17171c!important}
.game-pill{background:#1b1b20!important;border-color:#34343d!important;color:#a7a7b0!important}.game-pill.current{background:#301217!important;border-color:#65232c!important;color:#ff6976!important}

/* Court display */
.court-display-body{background:#08080b!important;color:var(--ink)!important}
.court-display-top{background:#101014!important;border-bottom-color:var(--line)!important}
.court-score-card,.court-team,.court-next-large,.court-idle{background:#121216!important}
.court-team.is-serving{background:#251116!important;border-color:#6b2630!important}
.display-url{background:#101014!important;color:#9797a0!important}.court-display-admin-stats>div{background:#111115!important}

/* Login */
.login-shell{background:radial-gradient(circle at 50% 0,#221116 0,#0f0f13 360px,#08080b 760px)!important}.login-card{background:#131317!important;border-color:#303038!important;box-shadow:0 25px 70px rgba(0,0,0,.4)!important}.login-foot{border-color:#303038!important}

/* Remove all legacy white blocks that can leak through */
[style*="background:#fff"],[style*="background: #fff"]{background:#151519!important}

/* Responsive navigation: hamburger ONLY on mobile/tablet */
@media(max-width:860px){
  .top{padding:11px 14px;min-height:62px;flex-direction:row!important;align-items:center!important;gap:10px!important}.brand-copy small{display:none}.user-name,.user-role{display:none}.logout-link{border:0!important;padding:0!important;margin:0!important}
  .mobile-nav-bar{display:flex!important;background:#0f0f13!important;border-bottom:1px solid var(--line)!important;padding:9px 12px;justify-content:flex-start}
  .mobile-nav-toggle{display:inline-flex!important;align-items:center;gap:8px;min-height:40px;padding:8px 13px;border-radius:9px;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-weight:800}
  .menu-icon{font-size:16px;line-height:1}
  .nav-shell{display:none;position:static!important;background:#101014!important}
  .nav-shell.mobile-open{display:block}
  .nav-center{display:flex!important;flex-direction:column;align-items:stretch;justify-content:flex-start;max-width:none;min-height:0;padding:10px 12px 14px;gap:5px;overflow:visible!important}
  .nav-center>.nav-link,.nav-group>summary{width:100%;justify-content:space-between;min-height:44px;padding:10px 12px;font-size:13px}
  .nav-group{position:static!important;width:100%}
  .nav-menu{position:static!important;width:100%!important;left:auto!important;right:auto!important;top:auto!important;margin:5px 0 2px!important;padding:5px!important;box-shadow:none!important;background:#111115!important;border-color:#2d2d34!important;max-height:none!important;overflow:visible!important}
  .nav-menu .nav-link{min-height:42px;padding:10px 12px 10px 20px;font-size:12px}
  .wrap{padding:20px 14px 34px}
  .row,.row-3{grid-template-columns:1fr!important}
  .grid{grid-template-columns:1fr!important}
  .scoreboard{grid-template-columns:1fr!important;gap:12px}
  .score-actions{grid-template-columns:1fr!important}
  .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:720px}
  .inline-form{display:grid;grid-template-columns:1fr!important;align-items:stretch}.inline-form>*{min-width:0!important;width:100%!important}
  .public-board #feed,.live-match-grid{grid-template-columns:1fr!important}
}
@media(min-width:861px){
  .mobile-nav-bar,.mobile-nav-toggle{display:none!important}
  .nav-shell{display:block!important}
}
@media(max-width:560px){
  body{font-size:14px}.top{padding:10px 12px}.brand-mark{width:30px;height:30px}.brand-copy strong{font-size:12px}.wrap{padding:16px 10px 28px}.page-head h1{font-size:22px}.card{padding:14px}.score{font-size:48px}.score-actions button{min-height:48px;font-size:14px}.actions{display:grid;grid-template-columns:1fr}.actions>.btn,.actions>button,.actions>form,.actions>form button{width:100%}.check-grid{grid-template-columns:1fr!important}
}

/* Hard guarantee: mobile menu never leaks onto desktop. */
.mobile-nav-bar[hidden],.mobile-nav-toggle[hidden]{display:none!important}
@media(min-width:861px){#mobile-nav-bar,.mobile-nav-toggle{display:none!important;visibility:hidden!important}}
@media(max-width:860px){#mobile-nav-bar:not([hidden]){display:flex!important}.mobile-nav-toggle:not([hidden]){display:inline-flex!important;visibility:visible!important}}

/* =========================================================
   IBT RED NOIR THEME - reference-inspired dark red system
   Final override layer: keep this LAST in the stylesheet.
   ========================================================= */
:root{
  color-scheme:dark;
  --page:#080405;
  --page-deep:#050304;
  --panel:#12090b;
  --panel-2:#180c0f;
  --panel-3:#211014;
  --soft:#1c0e11;
  --ink:#f8f4f5;
  --muted:#b7a7aa;
  --line:#35191f;
  --line-strong:#4a2028;
  --accent:#ef233c;
  --accent-dark:#c9192f;
  --accent-bright:#ff4156;
  --accent-soft:#321016;
  --success:#28a56f;
  --warning:#d6972d;
  --danger:#ef233c;
}
html,body{background:var(--page-deep)!important;color:var(--ink)!important}
body{
  background:
    radial-gradient(circle at 50% -120px,rgba(105,16,29,.20),transparent 440px),
    linear-gradient(180deg,#080405 0%,#050304 100%)!important;
  min-height:100vh;
}

/* Header and navigation */
.top{
  background:#0a0506!important;
  border-bottom:1px solid #2e151a!important;
  box-shadow:0 1px 0 rgba(255,255,255,.015);
}
.brand-mark{
  background:linear-gradient(145deg,#ff354a,#d4142a)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.08)!important;
}
.brand-copy strong,.user-name{color:#fff!important}
.brand-copy small,.user-meta,.top a{color:#ad9da0!important}
.user-role{background:#190b0e!important;border-color:#3b1a21!important;color:#e7d9dc!important}
.nav-shell{
  background:rgba(10,5,6,.97)!important;
  border-bottom:1px solid #2f151b!important;
  box-shadow:0 8px 26px rgba(0,0,0,.18);
}
.nav-center{min-height:54px}
.nav-link,.nav-group>summary{
  color:#c8b9bc!important;
  border-color:transparent!important;
  background:transparent!important;
}
.nav-link:hover,.nav-group>summary:hover,.nav-group[open]>summary{
  color:#fff!important;
  background:#1b0b0f!important;
  border-color:#3a1920!important;
}
.nav-link.active{
  color:#fff!important;
  background:linear-gradient(180deg,#321017,#260b10)!important;
  border-color:#6a2430!important;
  box-shadow:inset 0 0 0 1px rgba(255,65,86,.05);
}
.chev{color:#8d7378!important}
.nav-menu{
  background:#100709!important;
  border:1px solid #42202a!important;
  box-shadow:0 20px 60px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.012)!important;
}
.nav-menu .nav-link{color:#cfbec2!important}
.nav-menu .nav-link:hover{background:#211014!important;color:#fff!important}
.nav-menu .nav-link.active{background:#321017!important;color:#ff8995!important;border-color:#5d222b!important}

/* Main layout */
.wrap{background:transparent!important}
.page-head h1,h1,h2,h3,h4{color:#fff!important}
.card,.court-card,.match-tile,.court-score-card,.court-team,.court-next-large,.court-idle,.login-card,
.sponsor-logo-card,.sponsor-preview,.check-row,.court-display-admin-card,.court-display-admin-stats>div,
.team-check,.next-match-panel{
  background:linear-gradient(180deg,#140a0c 0%,#100709 100%)!important;
  border-color:#35191f!important;
  color:var(--ink)!important;
}
.card,.court-card,.match-tile,.court-score-card,.court-team,.court-next-large,.court-idle,.login-card{
  box-shadow:0 14px 38px rgba(0,0,0,.16)!important;
}
.card:hover,.court-card:hover{border-color:#4b2028!important}
.muted,small,.court-display-meta,.court-player-club,.player-club{color:var(--muted)!important}
hr{border-color:#30161c!important}

/* Inputs */
input,select,textarea{
  background:#0c0608!important;
  color:#f8f4f5!important;
  border:1px solid #42202a!important;
}
input::placeholder,textarea::placeholder{color:#806f73!important}
input:hover,select:hover,textarea:hover{border-color:#642833!important}
input:focus,select:focus,textarea:focus{
  border-color:#ef233c!important;
  box-shadow:0 0 0 3px rgba(239,35,60,.14)!important;
}
select option{background:#100709!important;color:#f8f4f5!important}
label{color:#e8dde0!important}

/* Buttons */
.btn,button{
  background:linear-gradient(180deg,#f02a41,#df1730)!important;
  border-color:#f02a41!important;
  color:#fff!important;
  box-shadow:none!important;
}
.btn:hover,button:hover{background:linear-gradient(180deg,#ff3a50,#e91a32)!important;border-color:#ff3a50!important}
.btn.alt,button.alt{background:#211014!important;border-color:#462029!important;color:#f5edef!important}
.btn.alt:hover,button.alt:hover{background:#2a1217!important;border-color:#5a2731!important}
.btn.light,button.light{background:#160b0d!important;border-color:#42202a!important;color:#e9dcdf!important}
.btn.light:hover,button.light:hover{background:#211014!important;border-color:#5c2731!important}
.btn.success,button.success{background:#176c4a!important;border-color:#21865f!important}
.btn.warn,button.warn{background:#925b0d!important;border-color:#b87813!important}

/* Tables */
.table-wrap{background:#0d0608!important;border-color:#35191f!important}
table{background:#0d0608!important;color:#f4eef0!important}
th{background:#170b0e!important;color:#aa979b!important;border-bottom-color:#3c1c23!important}
td{background:#0e0709!important;color:#eee5e7!important;border-bottom-color:#271216!important}
tbody tr:hover td{background:#170b0e!important}

/* State surfaces */
.notice{background:#0f241a!important;border-color:#245d3e!important;color:#a9e4c6!important}
.notice.error{background:#2a0e14!important;border-color:#6b2530!important;color:#ffabb4!important}
.badge{background:#211014!important;color:#d5c4c7!important}
.badge-live,.badge-ongoing{background:#3a1018!important;color:#ff8995!important}
.call-banner{background:#2b1e0b!important;border-color:#65491a!important;color:#efc66d!important}
.default-timer.active{background:#2b1d0a!important;border-color:#71501c!important;color:#f1c46b!important}
.default-timer.expired{background:#350f16!important;border-color:#7b2733!important;color:#ff8f9a!important}
.match-waiting-start{background:#0f261b!important;border-color:#276044!important;color:#9fe2be!important}
.match-waiting-start span{color:#7cbd99!important}

/* Live and scoring surfaces */
.score,.team,.player-name,.court-player-name{color:#fff!important}
.live-team{background:#100709!important;border-color:#35191f!important}
.live-team.is-serving,.court-team.is-serving{background:#2a0d13!important;border-color:#7a2935!important}
.serving-role,.serving-caption{color:#ff4d61!important}
.receiving-role{color:#66a9ff!important}
.team-check{background:#100709!important;border-color:#3c1c23!important}
.team-check:hover{background:#180c0f!important;border-color:#57232c!important}
.team-check.is-checked{background:#0c2118!important;border-color:#236143!important;color:#a3e3c0!important}
.team-check.is-checked small{color:#76b995!important}
.team-check-live.checked{background:#0d2419!important;color:#77d9a4!important}
.team-check-live.waiting{background:#211014!important;color:#bca9ad!important}

/* Dedicated court displays */
.court-display-body{background:#050304!important;color:#f8f4f5!important}
.court-display-top{background:#0a0506!important;border-color:#30161c!important}
.court-score-card,.court-next-large,.court-idle{background:linear-gradient(180deg,#12090b,#0d0608)!important}
.court-score-number{color:#fff!important}
.game-pill{background:#180c0f!important;border-color:#42202a!important;color:#bca9ad!important}
.game-pill.current{background:#321017!important;border-color:#762935!important;color:#ff7d8c!important}
.display-url{background:#0b0507!important;color:#ac999d!important;border:1px solid #32171d!important}
.sponsor-logo-card{background:#12090b!important}

/* Court diagram / position area: keep court readable but embed it in the red-noir shell */
.badminton-court,.court-diagram,.court-position-wrap{border-color:#4b2028!important;box-shadow:0 16px 38px rgba(0,0,0,.22)!important}

/* Mobile navigation */
@media(max-width:860px){
  .mobile-nav-bar{background:#0a0506!important;border-bottom-color:#30161c!important}
  .mobile-nav-toggle{background:linear-gradient(180deg,#f02a41,#df1730)!important;border-color:#f02a41!important;color:#fff!important}
  .nav-shell{background:#0b0507!important}
  .nav-menu{background:#100709!important;border-color:#3d1c23!important}
}
@media(min-width:861px){
  #mobile-nav-bar,.mobile-nav-toggle{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important}
}

/* Login */
.login-shell{
  background:
    radial-gradient(circle at 50% -40px,rgba(119,20,33,.26),transparent 420px),
    linear-gradient(180deg,#090405 0%,#050304 100%)!important;
}
.login-card{background:linear-gradient(180deg,#160b0e,#0f0709)!important;border-color:#442029!important}
.login-foot{border-color:#35191f!important}

/* Generic white leak protection from legacy component rules */
[style*="background:#fff"],[style*="background: #fff"],[style*="background:white"],[style*="background: white"]{background:#12090b!important}


/* === PUBLIC LIVE RED NOIR HARD OVERRIDES === */
/* These rules intentionally sit last because the live/public pages are standalone
   surfaces and must never fall back to the original light theme. */
html:has(body.public-live-body),
html:has(body.court-display-body){background:#050304!important;color-scheme:dark!important}
body.public-live-body,
body.court-display-body{
  background:
    radial-gradient(circle at 50% -140px,rgba(126,18,35,.24),transparent 520px),
    linear-gradient(180deg,#080405 0%,#050304 100%)!important;
  color:#f8f4f5!important;
  min-height:100vh;
}
body.public-live-body .top,
body.court-display-body .top{
  background:rgba(9,4,5,.98)!important;
  color:#f8f4f5!important;
  border-bottom:1px solid #35191f!important;
}
body.public-live-body .top strong,
body.court-display-body .top strong{color:#fff!important}
body.public-live-body .top-sub,
body.court-display-body .top-sub{color:#aa979b!important}
body.public-live-body .wrap,
body.court-display-body .court-display-wrap{background:transparent!important}
body.public-live-body .card,
body.public-live-body .live-match-card,
body.court-display-body .court-score-card,
body.court-display-body .court-next-large,
body.court-display-body .court-idle{
  background:linear-gradient(180deg,#140a0c 0%,#0d0608 100%)!important;
  border:1px solid #3b1b22!important;
  box-shadow:0 18px 48px rgba(0,0,0,.28)!important;
  color:#f8f4f5!important;
}
body.public-live-body .live-team,
body.court-display-body .court-team{
  background:#100709!important;
  border:1px solid #35191f!important;
  color:#f8f4f5!important;
}
body.public-live-body .live-team.is-serving,
body.court-display-body .court-team.is-serving{
  background:linear-gradient(180deg,#2a0d13,#210a0f)!important;
  border-color:#842c3a!important;
}
body.public-live-body .score,
body.public-live-body .player-name,
body.court-display-body .court-score-number,
body.court-display-body .court-player-name{color:#fff!important}
body.public-live-body .live-card-head,
body.public-live-body .games,
body.public-live-body .player-club,
body.court-display-body .court-display-meta,
body.court-display-body .court-player-club{color:#b7a7aa!important}
body.public-live-body .court-next,
body.court-display-body .court-next-large{
  border-color:#35191f!important;
  color:#cdbdc0!important;
}
body.public-live-body .court-next strong,
body.public-live-body .court-next>div:last-child,
body.court-display-body .next-large-main strong,
body.court-display-body .next-large-teams strong{color:#f8f4f5!important}
body.public-live-body .sponsor-section,
body.court-display-body .sponsor-section{border-color:#35191f!important}
body.public-live-body .sponsor-logo-card,
body.court-display-body .sponsor-logo-card{
  background:#12090b!important;
  border:1px solid #35191f!important;
  color:#f8f4f5!important;
}
body.public-live-body .player-photo-empty,
body.court-display-body .court-player-photo-empty{
  background:#211014!important;
  color:#e1d4d7!important;
  border-color:#4a2028!important;
}
body.public-live-body .call-banner,
body.court-display-body .call-banner{
  background:#2b1e0b!important;
  border-color:#65491a!important;
  color:#f0c970!important;
}
body.public-live-body .default-timer.active,
body.court-display-body .default-timer.active{
  background:#2b1d0a!important;
  border-color:#71501c!important;
  color:#f3c86f!important;
}
body.public-live-body .default-timer.expired,
body.court-display-body .default-timer.expired{
  background:#350f16!important;
  border-color:#7b2733!important;
  color:#ff9aa4!important;
}
body.public-live-body .match-waiting-start,
body.court-display-body .match-waiting-start{
  background:#0f261b!important;
  border-color:#276044!important;
  color:#a5e5c1!important;
}
body.public-live-body .game-pill,
body.court-display-body .game-pill{
  background:#180c0f!important;
  border-color:#42202a!important;
  color:#bca9ad!important;
}
body.public-live-body .game-pill.current,
body.court-display-body .game-pill.current{
  background:#321017!important;
  border-color:#762935!important;
  color:#ff8795!important;
}
body.public-live-body .team-check-live.waiting,
body.court-display-body .team-check-live.waiting{background:#211014!important;color:#c2afb3!important}
body.public-live-body .team-check-live.checked,
body.court-display-body .team-check-live.checked{background:#0d2419!important;color:#7cdda8!important}
body.public-live-body .serving-role,
body.court-display-body .serving-role{color:#ff4d61!important}
body.public-live-body .receiving-role,
body.court-display-body .receiving-role{color:#6db0ff!important}
body.public-live-body .sponsor-title,
body.court-display-body .sponsor-title{color:#9e8b8f!important}
body.public-live-body #feed:empty::before{
  content:'Loading live matches…';display:block;padding:22px;color:#9e8b8f
}
@media(max-width:700px){
  body.public-live-body .top,
  body.court-display-body .top{padding:12px 14px!important}
  body.public-live-body .wrap{padding:16px 12px 28px!important}
}

/* Feed display: hide match codes and emphasize category/event titles */
.next-event-title{font-size:1.05rem;font-weight:800;line-height:1.2;color:var(--text,#f8f5f5);letter-spacing:0}
.court-next .next-event-title,.next-large-main .next-event-title,.next-match-panel .next-event-title{display:inline-block;font-size:1.05rem}
@media (min-width:900px){.next-large-main .next-event-title{font-size:1.15rem}}


/* === 2026-09-13 LIVE FEED LAYOUT + INCIDENT TIMER UPDATE === */
.login-page-body{background:#050304!important;color:#f8f4f5!important;min-height:100vh}
.login-page-body .login-shell{background:radial-gradient(circle at 50% -80px,rgba(194,22,47,.22),transparent 440px),linear-gradient(180deg,#0b0507 0%,#050304 100%)!important}
.login-page-body .login-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#16090d,#0c0608)!important;border:1px solid #43202a!important;box-shadow:0 28px 80px rgba(0,0,0,.45)!important}
.login-accent-line{height:4px;position:absolute;left:0;right:0;top:0;background:linear-gradient(90deg,#8b1022,#ef233c,#8b1022)}
.login-page-body .login-card h1,.login-page-body .login-brand strong{color:#fff!important}
.login-page-body .login-copy,.login-page-body .login-foot,.login-page-body .muted{color:#b8a9ad!important}
.login-page-body input{background:#0d0709!important;border-color:#45202a!important;color:#fff!important}
.login-page-body input:focus{border-color:#ef233c!important;box-shadow:0 0 0 3px rgba(239,35,60,.14)!important}

/* Players stacked in the left column, score aligned in the right column. */
.live-score-layout{display:grid;gap:10px;margin-top:8px}
.live-score-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.24fr);gap:12px;align-items:stretch}
.live-score-row .live-team{height:100%;display:flex;flex-direction:column;justify-content:center}
.live-row-score{min-height:100%;display:flex;align-items:center;justify-content:center;border:1px solid #3d1c24;border-radius:14px;background:linear-gradient(180deg,#1a0b0f,#0e0709);color:#fff;font-size:clamp(62px,6vw,104px);font-weight:950;letter-spacing:-.07em;line-height:.9;font-variant-numeric:tabular-nums}
.live-score-row:has(.live-team.is-serving) .live-row-score{border-color:#722834;background:linear-gradient(180deg,#270d13,#13080b)}
@media(max-width:700px){.live-score-row{grid-template-columns:minmax(0,1fr) 82px;gap:8px}.live-row-score{font-size:clamp(48px,16vw,72px);border-radius:11px}}

/* Dedicated court display: same stacked-team/two-column arrangement, with scores ~200% larger. */
.court-score-layout{display:grid;gap:14px;margin-top:8px}
.court-score-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.32fr);gap:18px;align-items:stretch}
.court-score-row .court-team{height:100%;display:flex;flex-direction:column;justify-content:center}
.court-row-score{display:flex;align-items:center;justify-content:center;min-height:190px;border-radius:18px;border:1px solid #442029;background:linear-gradient(180deg,#1b0b10,#0d0608);color:#fff;font-size:clamp(150px,18vw,320px);font-weight:950;letter-spacing:-.085em;line-height:.74;font-variant-numeric:tabular-nums;text-shadow:0 6px 26px rgba(0,0,0,.35)}
.court-score-row:has(.court-team.is-serving) .court-row-score{border-color:#8a2d3c;background:linear-gradient(180deg,#2b0d14,#14080c)}
.court-current-game{text-align:center;margin:12px 0 0;color:#a9959a;font-size:12px;font-weight:850;letter-spacing:.14em}
@media(max-width:900px){.court-score-row{grid-template-columns:minmax(0,1fr) minmax(150px,.35fr);gap:10px}.court-row-score{min-height:140px;font-size:clamp(104px,23vw,190px)}}
@media(max-width:560px){.court-score-row{grid-template-columns:minmax(0,1fr) 112px}.court-row-score{min-height:112px;font-size:clamp(82px,26vw,126px);border-radius:13px}}

/* Make the individual server unmistakable on every live feed. */
.server-name-highlight{display:inline-block!important;width:fit-content;color:#fff!important;background:linear-gradient(90deg,#d91932,#ef2942)!important;border:1px solid #ff5268!important;border-radius:7px;padding:3px 7px;box-shadow:0 0 0 2px rgba(239,35,60,.11)}
.is-server-player .player-photo,.is-server-player .court-player-photo{border-color:#ef2942!important;box-shadow:0 0 0 2px rgba(239,35,60,.16)!important}

/* Incident / penalty timer shared by umpire + every public feed. */
.incident-timer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;align-items:center;margin:10px 0 12px;padding:11px 14px;border-radius:12px;border:1px solid #6f2835;background:linear-gradient(180deg,#2b1017,#18090d);color:#fcebee}
.incident-timer.active{border-color:#9c3345;background:linear-gradient(180deg,#351019,#1d090f);box-shadow:inset 3px 0 0 #ef233c}
.incident-timer.expired{border-color:#b43a4e;background:linear-gradient(180deg,#40111d,#230a11)}
.incident-label{font-size:12px;font-weight:900;letter-spacing:.065em;color:#ff8998;text-transform:uppercase}
.incident-countdown{grid-row:1 / span 2;grid-column:2;font-size:clamp(30px,3.3vw,52px);font-weight:950;line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.incident-note{font-size:12px;color:#cdb9bd;overflow-wrap:anywhere}
.umpire-incident-timer{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:520px){.incident-timer{grid-template-columns:1fr}.incident-countdown{grid-row:auto;grid-column:auto;font-size:34px}}


/* === 2026-09-14 TRUE TWO-COLUMN LIVE SCORE LAYOUT === */
.live-score-layout{display:grid!important;grid-template-columns:minmax(0,1fr) clamp(110px,22%,190px)!important;grid-template-rows:auto auto!important;gap:10px 14px!important;align-items:stretch!important;margin-top:10px!important}
.live-score-row{display:contents!important}
.live-score-row>.live-team{grid-column:1!important;min-width:0!important;height:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.live-score-row>.live-row-score{grid-column:2!important;min-width:0!important;height:100%!important;min-height:120px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:clamp(82px,8vw,138px)!important;font-weight:950!important;line-height:.82!important;letter-spacing:-.07em!important;border:1px solid #4c202a!important;border-radius:14px!important;background:linear-gradient(180deg,#1b0b10,#0d0608)!important;color:#fff!important;font-variant-numeric:tabular-nums!important}
.live-score-row:nth-child(1)>.live-team,.live-score-row:nth-child(1)>.live-row-score{grid-row:1!important}
.live-score-row:nth-child(2)>.live-team,.live-score-row:nth-child(2)>.live-row-score{grid-row:2!important}
.live-team.is-serving{border-color:#8b2e3d!important;box-shadow:inset 3px 0 0 #ef233c!important}
.live-score-row:has(.live-team.is-serving)>.live-row-score{border-color:#8b2e3d!important;background:linear-gradient(180deg,#2a0d14,#14080b)!important}

.court-score-layout{display:grid!important;grid-template-columns:minmax(0,1fr) clamp(220px,30%,420px)!important;grid-template-rows:auto auto!important;gap:14px 20px!important;align-items:stretch!important;margin-top:12px!important}
.court-score-row{display:contents!important}
.court-score-row>.court-team{grid-column:1!important;min-width:0!important;height:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.court-score-row>.court-row-score{grid-column:2!important;min-width:0!important;min-height:210px!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:clamp(170px,19vw,340px)!important;font-weight:950!important;line-height:.72!important;letter-spacing:-.085em!important;border:1px solid #4c202a!important;border-radius:18px!important;background:linear-gradient(180deg,#1b0b10,#0d0608)!important;color:#fff!important;font-variant-numeric:tabular-nums!important}
.court-score-row:nth-child(1)>.court-team,.court-score-row:nth-child(1)>.court-row-score{grid-row:1!important}
.court-score-row:nth-child(2)>.court-team,.court-score-row:nth-child(2)>.court-row-score{grid-row:2!important}
.court-team.is-serving{border-color:#8b2e3d!important;box-shadow:inset 4px 0 0 #ef233c!important}
.court-score-row:has(.court-team.is-serving)>.court-row-score{border-color:#8b2e3d!important;background:linear-gradient(180deg,#2a0d14,#14080b)!important}

@media(max-width:700px){
 .live-score-layout{grid-template-columns:minmax(0,1fr) 96px!important;gap:8px!important}
 .live-score-row>.live-row-score{min-height:104px!important;font-size:clamp(64px,20vw,92px)!important;border-radius:11px!important}
 .court-score-layout{grid-template-columns:minmax(0,1fr) 126px!important;gap:10px!important}
 .court-score-row>.court-row-score{min-height:130px!important;font-size:clamp(96px,27vw,142px)!important;border-radius:13px!important}
}

/* === 2026-09-15 SCORE ALIGNMENT / RESPONSIVE HARDENING === */
.live-score-layout,
.court-score-layout{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.live-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(118px,22vw,230px)!important;
  column-gap:clamp(10px,1.6vw,22px)!important;
}
.live-score-row>.live-team,
.court-score-row>.court-team{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.live-score-row>.live-row-score,
.court-score-row>.court-row-score{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-align:center!important;
  padding:.12em .20em!important;
  letter-spacing:-.035em!important;
  line-height:.86!important;
  font-variant-numeric:tabular-nums lining-nums!important;
}
.live-score-row>.live-row-score{
  min-height:clamp(112px,13vw,160px)!important;
  font-size:clamp(76px,9vw,142px)!important;
}
.court-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(190px,30vw,460px)!important;
  column-gap:clamp(12px,2vw,28px)!important;
}
.court-score-row>.court-row-score{
  min-height:clamp(170px,23vw,320px)!important;
  font-size:clamp(132px,19vw,330px)!important;
}
@media (min-width:1400px){
  .live-score-layout{grid-template-columns:minmax(0,1fr) minmax(190px,250px)!important}
  .live-score-row>.live-row-score{font-size:clamp(112px,7vw,160px)!important}
  .court-score-layout{grid-template-columns:minmax(0,1fr) minmax(340px,480px)!important}
  .court-score-row>.court-row-score{font-size:clamp(230px,16vw,360px)!important}
}
@media (max-width:760px){
  .live-score-layout{grid-template-columns:minmax(0,1fr) clamp(88px,27vw,120px)!important;gap:8px!important}
  .live-score-row>.live-row-score{min-height:104px!important;font-size:clamp(60px,20vw,92px)!important;padding:.1em .12em!important}
  .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(104px,31vw,150px)!important;gap:9px!important}
  .court-score-row>.court-row-score{min-height:122px!important;font-size:clamp(82px,27vw,128px)!important;padding:.1em .10em!important}
}
@media (max-width:390px){
  .live-score-layout{grid-template-columns:minmax(0,1fr) 82px!important}
  .live-score-row>.live-row-score{font-size:clamp(54px,18vw,72px)!important}
  .court-score-layout{grid-template-columns:minmax(0,1fr) 96px!important}
  .court-score-row>.court-row-score{font-size:clamp(70px,23vw,96px)!important}
}

/* === 2026-09-15 DEDICATED COURT VIEWPORT FIT + SPONSOR CAROUSEL === */
@media (min-width: 901px) {
  html:has(body.court-display-body),
  body.court-display-body {
    width:100%;
    height:100%;
    min-height:100%;
    overflow:hidden!important;
  }
  body.court-display-body {
    height:100vh;
    display:flex;
    flex-direction:column;
  }
  body.court-display-body .court-display-top {
    flex:0 0 auto;
    min-height:52px;
    padding:8px clamp(16px,2vw,28px)!important;
  }
  body.court-display-body .court-display-top .top-sub{font-size:10px!important}
  body.court-display-body .court-display-wrap {
    flex:1 1 auto;
    min-height:0;
    width:min(1540px,calc(100% - 28px));
    padding:8px 0 8px!important;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr) auto auto;
    gap:7px;
    overflow:hidden;
  }
  body.court-display-body .court-display-meta {
    margin:0!important;
    min-height:0;
    font-size:11px!important;
    line-height:1.2;
  }
  body.court-display-body #calls:empty { display:none; }
  body.court-display-body #calls { min-height:0; }
  body.court-display-body .call-banner {
    margin:0!important;
    padding:6px 10px!important;
    font-size:11px!important;
  }
  body.court-display-body #score-display {
    min-height:0;
    overflow:hidden;
  }
  body.court-display-body .court-score-card {
    height:100%;
    min-height:0;
    box-sizing:border-box;
    padding:10px 14px!important;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  body.court-display-body .court-score-head {
    flex:0 0 auto;
    margin-bottom:7px!important;
    font-size:11px!important;
  }
  body.court-display-body .court-score-layout {
    flex:1 1 auto;
    min-height:0;
    grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px 16px!important;
    margin-top:0!important;
  }
  body.court-display-body .court-score-row>.court-team,
  body.court-display-body .court-score-row>.court-row-score {
    min-height:0!important;
    height:100%!important;
  }
  body.court-display-body .court-team {
    padding:10px 14px!important;
    border-radius:13px!important;
  }
  body.court-display-body .court-team-players {
    gap:7px!important;
  }
  body.court-display-body .court-player {
    gap:10px!important;
  }
  body.court-display-body .court-player-photo {
    width:clamp(46px,5.2vh,64px)!important;
    height:clamp(46px,5.2vh,64px)!important;
    border-radius:11px!important;
  }
  body.court-display-body .court-player-name {
    font-size:clamp(20px,2.5vh,31px)!important;
    line-height:1!important;
  }
  body.court-display-body .court-player-club {
    margin-top:3px!important;
    font-size:clamp(10px,1.3vh,13px)!important;
  }
  body.court-display-body .court-player-role {
    margin-top:3px!important;
    font-size:9px!important;
  }
  body.court-display-body .team-check-live {
    margin-bottom:5px!important;
    font-size:8px!important;
    padding:3px 6px!important;
  }
  body.court-display-body .court-score-row>.court-row-score {
    border-radius:14px!important;
    font-size:clamp(118px,20vh,265px)!important;
    line-height:.75!important;
    padding:.02em .08em!important;
  }
  body.court-display-body .court-current-game {
    flex:0 0 auto;
    margin:5px 0 0!important;
    font-size:9px!important;
  }
  body.court-display-body .court-game-history {
    flex:0 0 auto;
    margin-top:4px!important;
    gap:5px!important;
  }
  body.court-display-body .game-pill {
    padding:4px 8px!important;
    font-size:10px!important;
  }
  body.court-display-body .default-timer,
  body.court-display-body .incident-timer,
  body.court-display-body .match-waiting-start {
    flex:0 0 auto;
    margin:0 0 6px!important;
    padding:6px 10px!important;
  }
  body.court-display-body .default-timer .countdown,
  body.court-display-body .incident-countdown {
    font-size:clamp(24px,4vh,40px)!important;
  }
  body.court-display-body .court-next-large {
    min-height:0;
    margin:0!important;
    padding:7px 12px!important;
    border-radius:12px!important;
  }
  body.court-display-body .next-label {
    font-size:8px!important;
    margin-bottom:2px!important;
  }
  body.court-display-body .next-large-main {
    line-height:1.1;
  }
  body.court-display-body .next-large-main .next-event-title {
    font-size:13px!important;
  }
  body.court-display-body .next-large-time {
    font-size:12px!important;
  }
  body.court-display-body .next-large-teams {
    margin-top:4px!important;
    font-size:clamp(14px,1.7vw,22px)!important;
    line-height:1.05;
  }
  body.court-display-body .next-empty {
    padding:2px 0!important;
    font-size:11px!important;
  }

  /* Sponsors stay visible without increasing the court page height. */
  body.court-display-body .sponsor-section {
    min-height:48px;
    height:48px;
    margin:0!important;
    padding:4px 0 0!important;
    border-top:1px solid #35191f!important;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    overflow:hidden;
  }
  body.court-display-body .sponsor-title {
    margin:0!important;
    padding-left:4px;
    white-space:nowrap;
    font-size:8px!important;
  }
  body.court-display-body .sponsor-strip {
    position:relative;
    display:block!important;
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);
  }
  body.court-display-body .sponsor-carousel-track {
    width:max-content;
    display:flex;
    align-items:center;
    gap:12px;
    animation:courtSponsorMarquee var(--sponsor-duration,28s) linear infinite;
    will-change:transform;
  }
  body.court-display-body .sponsor-strip:hover .sponsor-carousel-track {
    animation-play-state:paused;
  }
  body.court-display-body .sponsor-logo-card {
    flex:0 0 auto;
    min-width:110px!important;
    min-height:34px!important;
    height:34px!important;
    padding:3px 9px!important;
    border-radius:8px!important;
    display:flex!important;
    flex-direction:row!important;
    gap:6px!important;
  }
  body.court-display-body .sponsor-logo-card img {
    max-width:82px!important;
    max-height:27px!important;
  }
  body.court-display-body .sponsor-logo-card span {
    max-width:90px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:8px!important;
  }
  @keyframes courtSponsorMarquee {
    from { transform:translateX(0); }
    to { transform:translateX(-50%); }
  }
}

@media (prefers-reduced-motion: reduce) {
  body.court-display-body .sponsor-carousel-track { animation:none!important; }
}

/* === 2026-09-15 LARGE RESPONSIVE SPONSOR CAROUSEL ON ALL LIVE VIEWS === */
body.public-live-body .sponsor-section,
body.court-display-body .sponsor-section {
  margin-top: clamp(10px, 1.5vw, 22px) !important;
  padding: clamp(10px, 1.2vw, 18px) 0 0 !important;
  border-top: 1px solid #35191f !important;
  overflow: hidden;
}

body.public-live-body .sponsor-title,
body.court-display-body .sponsor-title {
  margin: 0 0 clamp(8px, 1vw, 14px) !important;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: clamp(9px, .75vw, 13px) !important;
  font-weight: 900;
  color: #bca9ad !important;
}

body.public-live-body .sponsor-strip,
body.court-display-body .sponsor-strip {
  position: relative;
  display: block !important;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
}

body.public-live-body .sponsor-carousel-track,
body.court-display-body .sponsor-carousel-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.6vw, 28px);
  animation: sponsorMarqueeAll var(--sponsor-duration, 30s) linear infinite;
  will-change: transform;
}

body.public-live-body .sponsor-strip:hover .sponsor-carousel-track,
body.court-display-body .sponsor-strip:hover .sponsor-carousel-track {
  animation-play-state: paused;
}

body.public-live-body .sponsor-logo-card,
body.court-display-body .sponsor-logo-card {
  flex: 0 0 auto;
  width: clamp(190px, 16vw, 300px) !important;
  min-width: clamp(190px, 16vw, 300px) !important;
  height: clamp(92px, 8vw, 138px) !important;
  min-height: clamp(92px, 8vw, 138px) !important;
  padding: clamp(10px, 1vw, 16px) clamp(14px, 1.3vw, 22px) !important;
  border-radius: clamp(10px, .9vw, 16px) !important;
  background: #12090b !important;
  border: 1px solid #3b1b22 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(6px, .55vw, 10px) !important;
}

body.public-live-body .sponsor-logo-card img,
body.court-display-body .sponsor-logo-card img {
  display: block;
  width: auto;
  max-width: 88% !important;
  height: auto;
  max-height: clamp(58px, 5.2vw, 92px) !important;
  object-fit: contain;
}

body.public-live-body .sponsor-logo-card span,
body.court-display-body .sponsor-logo-card span {
  max-width: 100% !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: clamp(10px, .78vw, 13px) !important;
  line-height: 1.15;
  color: #d8c9cc !important;
  text-align: center;
}

@keyframes sponsorMarqueeAll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Court page keeps the carousel larger, but compact enough to preserve TV fit. */
@media (min-width: 901px) {
  body.court-display-body .sponsor-section {
    min-height: clamp(76px, 9vh, 118px) !important;
    height: clamp(76px, 9vh, 118px) !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: clamp(12px, 1.3vw, 22px);
    padding: 6px 0 !important;
    margin: 0 !important;
  }
  body.court-display-body .sponsor-title {
    margin: 0 !important;
    padding-left: 4px;
    white-space: nowrap;
  }
  body.court-display-body .sponsor-logo-card {
    width: clamp(150px, 12vw, 230px) !important;
    min-width: clamp(150px, 12vw, 230px) !important;
    height: clamp(60px, 7vh, 88px) !important;
    min-height: clamp(60px, 7vh, 88px) !important;
    flex-direction: row !important;
    gap: 10px !important;
  }
  body.court-display-body .sponsor-logo-card img {
    max-width: 72% !important;
    max-height: clamp(44px, 5.2vh, 66px) !important;
  }
  body.court-display-body .sponsor-logo-card span {
    font-size: clamp(9px, .65vw, 11px) !important;
  }
}

@media (max-width: 700px) {
  body.public-live-body .sponsor-section,
  body.court-display-body .sponsor-section {
    margin-top: 12px !important;
    padding-top: 10px !important;
  }
  body.public-live-body .sponsor-logo-card,
  body.court-display-body .sponsor-logo-card {
    width: 150px !important;
    min-width: 150px !important;
    height: 80px !important;
    min-height: 80px !important;
    padding: 9px 12px !important;
  }
  body.public-live-body .sponsor-logo-card img,
  body.court-display-body .sponsor-logo-card img {
    max-height: 48px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.public-live-body .sponsor-carousel-track,
  body.court-display-body .sponsor-carousel-track {
    animation: none !important;
  }
}

/* === 2026-09-15 LIVE 3-COLUMN COURT DASHBOARD + SPONSOR TAKEOVER === */
.live-dashboard-wrap{max-width:1800px!important;padding:clamp(12px,1.4vw,24px)!important}
.live-three-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(280px,.8fr);gap:clamp(12px,1.2vw,22px);align-items:start}
.court-group,.upcoming-group{min-width:0}.court-group>h2,.upcoming-group>h2{font-size:clamp(16px,1.1vw,22px);margin:0 0 10px;color:#fff}.court-list,.upcoming-list{display:grid;gap:10px}
.court-mini,.upcoming-mini{background:linear-gradient(145deg,#12090b,#0b0607);border:1px solid #3b1b22;border-radius:14px;padding:clamp(10px,1vw,16px);min-width:0}.court-mini.empty{min-height:70px;opacity:.72}.court-mini-head,.upcoming-mini-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.court-mini-head strong,.upcoming-mini-head strong{color:#ff3948;font-size:clamp(14px,.95vw,18px)}.court-mini-head span,.upcoming-mini-head span{font-size:clamp(10px,.7vw,12px);color:#c4b5b8;text-align:right}
.court-mini-side{display:grid;grid-template-columns:minmax(0,1fr) clamp(64px,5.4vw,104px);gap:10px;align-items:stretch;margin-top:7px}.dash-team{border:1px solid #32171d;border-radius:10px;padding:8px;min-width:0;background:#0d0708}.court-mini-score{display:flex;align-items:center;justify-content:center;border:1px solid #51202a;border-radius:10px;background:#1b0b0e;color:#fff;font-weight:950;font-size:clamp(38px,4.2vw,76px);font-variant-numeric:tabular-nums;line-height:1;min-width:0;overflow:hidden}.dash-check{display:inline-block;font-size:9px;font-weight:900;padding:2px 6px;border-radius:999px;margin-bottom:5px}.dash-check.checked{background:#0c5b3e;color:#b9ffe1}.dash-check.waiting{background:#53350d;color:#ffd89a}.dash-player{display:flex;align-items:center;gap:7px;min-width:0;margin:5px 0}.dash-player>div{min-width:0}.dash-player strong{display:block;color:#fff;font-size:clamp(11px,.8vw,15px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-player small,.dash-player em{display:block;font-size:9px;font-style:normal}.dash-player small{color:#a99398}.dash-player em{font-weight:900;letter-spacing:.06em}.dash-player-photo{width:30px;height:30px;flex:0 0 30px;border-radius:8px;object-fit:cover;border:1px solid #55212b}.dash-player-photo.empty{display:flex;align-items:center;justify-content:center;background:#261116;color:#fff;font-size:9px;font-weight:900}.server-name-highlight{color:#ff4050!important}.court-mini-foot{margin-top:7px;text-align:right;font-size:10px;color:#9c8b8f}.dash-alert{margin:6px 0;padding:5px 8px;border-radius:7px;background:#50151e;color:#fff;font-size:10px;font-weight:900}.dash-alert.incident{background:#6b430a}
.upcoming-mini b{display:block;color:#fff;font-size:clamp(12px,.82vw,15px);margin-bottom:6px}.upcoming-mini>div:not(.upcoming-mini-head){color:#eadfe1;font-size:clamp(11px,.75vw,14px);line-height:1.25}.upcoming-mini small{display:block;margin:2px 0;color:#ff4050;font-weight:900}.dashboard-calls{display:grid;gap:6px;margin-bottom:10px}.dashboard-calls:empty{display:none}
.sponsor-popup[hidden]{display:none!important}.sponsor-popup{position:fixed;inset:0;z-index:99999;background:rgba(3,1,2,.97);display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,80px);opacity:0;transform:scale(1.015);transition:opacity .45s ease,transform .45s ease}.sponsor-popup.show{opacity:1;transform:scale(1)}.sponsor-popup-inner{width:min(1500px,96vw);text-align:center}.sponsor-popup-kicker{color:#ff3341;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(16px,1.5vw,28px);font-weight:950;margin-bottom:clamp(24px,4vh,54px)}.sponsor-popup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:clamp(20px,2vw,34px)}.sponsor-popup-card{min-height:clamp(190px,25vh,320px);border:1px solid #53212b;border-radius:20px;background:linear-gradient(145deg,#1b0d10,#0e0708);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:26px}.sponsor-popup-card img{max-width:88%;max-height:clamp(120px,18vh,220px);object-fit:contain}.sponsor-popup-card strong{font-size:clamp(18px,1.5vw,28px);color:#fff}
@media(max-width:1200px){.live-three-column{grid-template-columns:1fr 1fr}.upcoming-group{grid-column:1/-1}.upcoming-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.live-three-column{grid-template-columns:1fr}.upcoming-group{grid-column:auto}.upcoming-list{grid-template-columns:1fr}.court-mini-side{grid-template-columns:minmax(0,1fr) 76px}.court-mini-score{font-size:48px}.sponsor-popup{padding:18px}.sponsor-popup-grid{grid-template-columns:1fr 1fr}.sponsor-popup-card{min-height:150px;padding:16px}.sponsor-popup-card img{max-height:90px}}

/* Courts remain visible; each card carries its own next-match preview */
.live-court-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.5vw,24px);align-items:start}
.live-court-columns .court-list{display:grid;gap:clamp(10px,1vw,16px)}
.court-next-inline{margin-top:10px;padding:9px 10px;border-top:1px solid #3b1b22;background:linear-gradient(180deg,rgba(229,29,42,.045),rgba(229,29,42,.015));border-radius:0 0 10px 10px;min-width:0}
.court-next-inline.empty{opacity:.58}
.court-next-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.court-next-head span{font-size:9px;font-weight:950;letter-spacing:.12em;color:#ff4050}.court-next-head time{font-size:10px;color:#c4b5b8;white-space:nowrap}
.court-next-inline>strong{display:block;font-size:clamp(11px,.8vw,14px);color:#fff;margin-bottom:5px}.court-next-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px}.court-next-teams b{font-size:clamp(10px,.72vw,13px);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#eadddf}.court-next-teams b:last-child{text-align:right}.court-next-teams small{font-size:9px;font-weight:900;color:#ff4050}
@media(max-width:900px){.live-court-columns{grid-template-columns:1fr}.court-next-teams b{white-space:normal}}

/* Minimal embeddable web view: names + live scores only */
.webview-body{min-height:100%;background:#050304;color:#fff;margin:0}
.webview-wrap{width:min(1500px,100%);margin:0 auto;padding:clamp(10px,2vw,24px)}
.webview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.3vw,18px)}
.webview-match{background:linear-gradient(145deg,#12090b,#090506);border:1px solid #3b1b22;border-radius:14px;overflow:hidden}
.webview-court{padding:8px 12px;border-bottom:1px solid #32171d;color:#ff4050;font-size:clamp(11px,.9vw,15px);font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.webview-row{display:grid;grid-template-columns:minmax(0,1fr) clamp(62px,8vw,120px);align-items:center;min-height:clamp(64px,8vw,110px);border-bottom:1px solid #251216}.webview-row:last-child{border-bottom:0}.webview-row strong{padding:12px 16px;font-size:clamp(17px,2vw,34px);line-height:1.08;min-width:0}.webview-row b{align-self:stretch;display:flex;align-items:center;justify-content:center;border-left:1px solid #4b2028;background:#1a0b0e;color:#fff;font-size:clamp(42px,6vw,92px);font-variant-numeric:tabular-nums;line-height:1}
.webview-empty{grid-column:1/-1;text-align:center;padding:40px;border:1px solid #3b1b22;border-radius:14px;color:#baa9ad}
@media(max-width:760px){.webview-grid{grid-template-columns:1fr}.webview-row{grid-template-columns:minmax(0,1fr) 70px}.webview-row strong{font-size:clamp(15px,5vw,24px)}.webview-row b{font-size:clamp(38px,12vw,58px)}}


/* === RESTORED UPCOMING COLUMN + MANUAL DISPLAY TAKEOVER === */
.live-three-column-restored{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(300px,.92fr)!important}
.upcoming-courts-list{display:grid;gap:10px}.upcoming-court-block{background:linear-gradient(145deg,#12090b,#0b0607);border:1px solid #3b1b22;border-radius:14px;padding:10px;min-width:0}.upcoming-court-title{color:#ff4050;font-size:clamp(13px,.9vw,17px);font-weight:950;margin-bottom:7px;text-transform:uppercase;letter-spacing:.06em}.upcoming-court-match{padding:8px 0;border-top:1px solid #2e161b}.upcoming-court-match:first-of-type{border-top:0;padding-top:2px}.upcoming-court-match-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.upcoming-court-match-head span{color:#fff;font-size:clamp(10px,.72vw,13px);font-weight:850;line-height:1.2}.upcoming-court-match-head time{color:#c7b7bb;font-size:10px;white-space:nowrap}.upcoming-court-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;align-items:center;margin-top:5px}.upcoming-court-teams b{color:#ddcfd2;font-size:clamp(9px,.66vw,12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-court-teams b:last-child{text-align:right}.upcoming-court-teams small{color:#ff4050;font-weight:900;font-size:8px}.upcoming-court-none{padding:12px 2px;color:#917f83;font-size:12px;font-style:italic}
.display-takeover[hidden]{display:none!important}.display-takeover{position:fixed;inset:0;z-index:100000;background:radial-gradient(circle at top,#241014 0,#0b0506 42%,#040203 100%);display:flex;align-items:center;justify-content:center;padding:clamp(18px,4vw,60px);opacity:0;transition:opacity .35s ease}.display-takeover.show{opacity:1}.display-takeover-inner{width:min(1600px,96vw);max-height:96vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(12px,2.2vh,28px)}.display-takeover-media{width:min(1100px,90vw);max-height:48vh}.display-takeover-media[hidden]{display:none!important}.display-takeover-media img{display:block;max-width:100%;max-height:48vh;object-fit:contain;margin:auto;border-radius:18px}.display-takeover-title{color:#fff;font-size:clamp(38px,6vw,110px);font-weight:950;line-height:.95;text-transform:uppercase;letter-spacing:-.03em}.display-takeover-text{color:#d8c8cb;font-size:clamp(18px,2vw,36px);line-height:1.25;max-width:1200px;white-space:pre-line}.display-takeover-sponsors{width:100%;margin-top:clamp(6px,1vh,14px);border-top:1px solid #3c1b22;padding-top:12px}.display-takeover-sponsors .sponsor-title{color:#ff4050;margin-bottom:8px}.display-takeover-sponsors .sponsor-strip{overflow:hidden}.display-takeover-sponsors .sponsor-logo-card{height:clamp(80px,11vh,140px)!important;min-height:clamp(80px,11vh,140px)!important;width:clamp(170px,15vw,280px)!important;min-width:clamp(170px,15vw,280px)!important}.display-takeover-sponsors .sponsor-logo-card img{max-height:clamp(54px,8vh,100px)!important}.takeover-no-sponsors{color:#8e7d81;padding:12px}.display-takeover-admin{margin-top:18px;padding:16px;border:1px solid #4a2028;border-radius:14px;background:#0e0708}.display-takeover-admin h3{margin-top:0}.takeover-admin-preview{margin-top:10px}.takeover-admin-preview img{max-width:320px;max-height:180px;object-fit:contain;border:1px solid #4a2028;border-radius:10px;background:#050304;padding:6px}
@media(max-width:1200px){.live-three-column-restored{grid-template-columns:1fr 1fr!important}.live-three-column-restored .upcoming-group{grid-column:1/-1}.upcoming-courts-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.live-three-column-restored{grid-template-columns:1fr!important}.live-three-column-restored .upcoming-group{grid-column:auto}.upcoming-courts-list{grid-template-columns:1fr}.upcoming-court-teams b{white-space:normal}.display-takeover{padding:14px}.display-takeover-title{font-size:clamp(32px,12vw,58px)}.display-takeover-text{font-size:clamp(16px,5vw,24px)}}

/* Results filters/export */
.filters-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}
.filter-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:980px){.filters-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-actions{grid-column:1/-1}}
@media(max-width:640px){.filters-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.filter-actions .btn{flex:1 1 auto;text-align:center}}

/* === 2026-09-15 COURT TV DISTANCE VIEW === */
body.court-display-body .court-display-top{
  min-height:72px!important;
  padding:10px clamp(18px,2.2vw,38px)!important;
}
body.court-display-body .court-display-top .top-brand{gap:18px!important;min-width:0}
body.court-display-body .court-tv-title{
  color:#fff!important;
  font-size:clamp(28px,3vw,58px)!important;
  line-height:.95!important;
  letter-spacing:-.035em!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.court-display-body .court-display-wrap{
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:8px!important;
}
body.court-display-body #score-display{height:100%;min-height:0}
body.court-display-body .court-score-card{
  height:100%!important;
  min-height:0!important;
  padding:clamp(12px,1.5vw,24px)!important;
}
body.court-display-body .court-score-layout{
  flex:1 1 auto!important;
  min-height:0!important;
  grid-template-columns:minmax(0,1fr) clamp(260px,28%,520px)!important;
  grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;
  gap:clamp(12px,1.4vw,22px)!important;
  margin:0!important;
}
body.court-display-body .court-team{
  padding:clamp(18px,2vh,32px) clamp(18px,1.8vw,34px)!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
}
body.court-display-body .court-team-players{
  width:100%;
  height:100%;
  display:grid!important;
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:clamp(10px,1.5vh,22px)!important;
  align-items:stretch!important;
}
body.court-display-body .court-player{
  width:100%;
  min-width:0;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:clamp(10px,1.3vh,20px) clamp(14px,1.4vw,26px)!important;
  border:2px solid transparent;
  border-radius:16px;
  background:#0d0708;
}
body.court-display-body .court-player.is-server-player{
  border-color:#e51d2a!important;
  background:linear-gradient(90deg,rgba(229,29,42,.22),rgba(229,29,42,.045))!important;
}
body.court-display-body .court-player-name{
  color:#fff!important;
  font-size:clamp(40px,5.2vh,82px)!important;
  font-weight:950!important;
  line-height:.96!important;
  letter-spacing:-.045em!important;
  overflow-wrap:anywhere;
}
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  color:#ff4050!important;
}
body.court-display-body .court-row-score{
  font-size:clamp(180px,25vh,390px)!important;
  min-height:0!important;
  padding:.02em .08em!important;
}
body.court-display-body .court-current-game{
  margin-top:7px!important;
  font-size:clamp(12px,1.4vh,18px)!important;
}
body.court-display-body .court-game-history{margin-top:5px!important}
body.court-display-body .game-pill{font-size:clamp(11px,1.25vh,16px)!important;padding:5px 10px!important}
body.court-display-body .court-next-large,
body.court-display-body > .sponsor-section,
body.court-display-body .court-display-wrap > .sponsor-section{display:none!important}

/* Full-screen waiting state after a court becomes idle/completed. */
.court-waiting-overlay[hidden]{display:none!important}
.court-waiting-overlay{
  position:fixed;
  inset:0;
  z-index:90000;
  background:radial-gradient(circle at 50% 0,#2a0d14 0,#100608 38%,#040203 100%);
  color:#fff;
  opacity:0;
  transition:opacity .45s ease;
  overflow:hidden;
}
.court-waiting-overlay.show{opacity:1}
.court-waiting-inner{
  height:100%;
  width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  gap:clamp(10px,2vh,24px);
  padding:clamp(28px,4vh,60px) clamp(30px,4vw,80px);
  text-align:center;
}
.court-waiting-title{
  font-size:clamp(52px,7vw,132px);
  font-weight:950;
  letter-spacing:-.055em;
  line-height:.9;
  text-transform:uppercase;
}
.court-waiting-subtitle{
  color:#ff4050;
  font-size:clamp(22px,2.4vw,46px);
  font-weight:900;
  line-height:1;
}
.court-waiting-sponsor-stage{
  position:relative;
  min-height:0;
  overflow:hidden;
}
.court-waiting-slide{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(22px,2.5vw,46px);
  align-items:stretch;
  opacity:0;
  transform:translateX(4%);
  transition:opacity .7s ease,transform .7s ease;
  pointer-events:none;
}
.court-waiting-slide.active{opacity:1;transform:translateX(0);pointer-events:auto}
.court-waiting-sponsor-card{
  min-width:0;
  height:100%;
  border:2px solid #4d2029;
  border-radius:clamp(18px,1.7vw,30px);
  background:linear-gradient(145deg,#1a0b0f,#0a0506);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(16px,2.2vh,34px);
  padding:clamp(22px,3vw,54px);
  box-sizing:border-box;
}
.court-waiting-sponsor-card img{
  max-width:92%;
  max-height:70%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.court-waiting-sponsor-card strong{
  color:#fff;
  font-size:clamp(22px,2vw,42px);
  line-height:1.05;
}
.court-waiting-no-sponsors{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9f8b90;
  font-size:clamp(26px,3vw,54px);
  font-weight:850;
}
@media(max-width:900px){
  body.court-display-body .court-tv-title{font-size:clamp(22px,6vw,40px)!important;white-space:normal}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(112px,30vw,190px)!important}
  body.court-display-body .court-player-name{font-size:clamp(28px,6vw,48px)!important}
  body.court-display-body .court-row-score{font-size:clamp(90px,24vw,170px)!important}
  .court-waiting-slide{grid-template-columns:1fr}
  .court-waiting-sponsor-card:nth-child(n+2){display:none}
}

/* === 2026-09-15 COURT TV WHITE + BLUE BROADCAST THEME === */
html:has(body.court-display-body){
  background:#f4f8ff!important;
  color-scheme:light!important;
}
body.court-display-body{
  background:linear-gradient(180deg,#ffffff 0%,#f4f8ff 100%)!important;
  color:#0c1420!important;
}
body.court-display-body .court-display-top{
  background:#ffffff!important;
  border-bottom:3px solid #1267d6!important;
  box-shadow:0 3px 14px rgba(18,103,214,.10)!important;
}
body.court-display-body .brand-mark,
body.court-display-body .live-badge{
  background:#1267d6!important;
  color:#ffffff!important;
  border-color:#1267d6!important;
}
body.court-display-body .court-tv-title,
body.court-display-body .court-display-top strong{
  color:#0a1220!important;
  font-size:clamp(34px,3.5vw,68px)!important;
  font-weight:950!important;
}
body.court-display-body .court-display-wrap{
  width:min(1640px,calc(100% - 24px))!important;
  padding-top:10px!important;
}
body.court-display-body .court-score-card{
  background:#ffffff!important;
  border:2px solid #cfe0f7!important;
  box-shadow:0 10px 34px rgba(18,103,214,.08)!important;
}
body.court-display-body .court-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(280px,28%,540px)!important;
  gap:clamp(12px,1.5vw,24px)!important;
}
body.court-display-body .court-team{
  background:#f8fbff!important;
  border:2px solid #d5e4f8!important;
  color:#0b1320!important;
}
body.court-display-body .court-team.is-serving{
  background:#edf5ff!important;
  border-color:#1267d6!important;
  box-shadow:inset 5px 0 0 #1267d6!important;
}
body.court-display-body .court-player{
  background:#ffffff!important;
  border:2px solid #e1ebf8!important;
  min-height:0!important;
  height:100%!important;
  padding:clamp(16px,1.8vh,28px) clamp(18px,1.8vw,34px)!important;
}
body.court-display-body .court-player-name{
  color:#0a1220!important;
  font-size:clamp(48px,6.7vh,104px)!important;
  line-height:.94!important;
  font-weight:950!important;
  letter-spacing:-.05em!important;
}
body.court-display-body .court-player.is-server-player{
  background:linear-gradient(135deg,#1267d6 0%,#0b53b5 100%)!important;
  border-color:#1267d6!important;
  box-shadow:0 7px 20px rgba(18,103,214,.24)!important;
}
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  color:#ffffff!important;
  background:transparent!important;
  text-shadow:0 1px 2px rgba(0,0,0,.18)!important;
}
body.court-display-body .court-row-score{
  background:linear-gradient(180deg,#f8fbff,#edf5ff)!important;
  border:2px solid #bcd5f4!important;
  color:#07111f!important;
  font-size:clamp(210px,29vh,430px)!important;
  font-weight:950!important;
  box-shadow:none!important;
}
body.court-display-body .court-score-row:has(.court-team.is-serving)>.court-row-score{
  background:linear-gradient(180deg,#eaf4ff,#dcecff)!important;
  border-color:#1267d6!important;
  color:#0a3f8c!important;
}
body.court-display-body .court-current-game{
  color:#334155!important;
  font-size:clamp(14px,1.7vh,22px)!important;
  font-weight:900!important;
}
body.court-display-body .game-pill{
  background:#eef5ff!important;
  border-color:#bcd5f4!important;
  color:#0a3f8c!important;
  font-size:clamp(13px,1.45vh,19px)!important;
}
body.court-display-body .game-pill.current{
  background:#1267d6!important;
  color:#ffffff!important;
  border-color:#1267d6!important;
}
body.court-display-body .call-banner,
body.court-display-body .match-waiting-start,
body.court-display-body .default-timer,
body.court-display-body .incident-timer{
  background:#eef5ff!important;
  border-color:#bcd5f4!important;
  color:#0b1320!important;
}

/* Waiting screen follows the same TV palette. */
body.court-display-body .court-waiting-overlay{
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%)!important;
  color:#0a1220!important;
}
body.court-display-body .court-waiting-title{color:#0a1220!important}
body.court-display-body .court-waiting-subtitle{color:#1267d6!important}
body.court-display-body .court-waiting-sponsor-card{
  background:#ffffff!important;
  border:3px solid #c6daf5!important;
  box-shadow:0 12px 34px rgba(18,103,214,.10)!important;
}
body.court-display-body .court-waiting-sponsor-card strong{
  color:#0a1220!important;
}
body.court-display-body .court-waiting-no-sponsors{color:#64748b!important}

@media(max-width:900px){
  body.court-display-body .court-tv-title{font-size:clamp(28px,7vw,46px)!important}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(120px,31vw,200px)!important}
  body.court-display-body .court-player-name{font-size:clamp(32px,8vw,58px)!important}
  body.court-display-body .court-row-score{font-size:clamp(96px,29vw,190px)!important}
}


/* === 2026-09-15 COURT TV FLAT BLACK + GREEN SERVICE THEME === */
html:has(body.court-display-body){
  background:#000!important;
  color-scheme:dark!important;
}
body.court-display-body{
  background:#000!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  text-transform:uppercase!important;
}
body.court-display-body .court-display-top{
  background:#000!important;
  border-bottom:2px solid #2b2b2b!important;
  box-shadow:none!important;
}
body.court-display-body .brand-mark,
body.court-display-body .live-badge{
  background:#004700!important;
  border-color:#004700!important;
  color:#fff!important;
  box-shadow:none!important;
}
body.court-display-body .court-tv-title,
body.court-display-body .court-display-top strong{
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(38px,4.2vw,80px)!important;
  font-weight:900!important;
  letter-spacing:-.025em!important;
  line-height:.95!important;
  text-transform:uppercase!important;
}
body.court-display-body .court-display-wrap{
  width:min(1700px,calc(100% - 20px))!important;
  padding:8px 0 10px!important;
}
body.court-display-body .court-score-card{
  background:#000!important;
  border:2px solid #2d2d2d!important;
  box-shadow:none!important;
  min-height:calc(100vh - 116px)!important;
  padding:clamp(10px,1.3vw,20px)!important;
}
body.court-display-body .court-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(300px,29%,560px)!important;
  gap:clamp(10px,1.2vw,20px)!important;
  min-height:calc(100vh - 150px)!important;
  height:calc(100vh - 150px)!important;
}
body.court-display-body .court-score-row{
  min-height:0!important;
}
body.court-display-body .court-team{
  background:#000!important;
  border:2px solid #2d2d2d!important;
  color:#fff!important;
  box-shadow:none!important;
  padding:clamp(10px,1.2vw,18px)!important;
}
body.court-display-body .court-team.is-serving{
  background:#000!important;
  border-color:#004700!important;
  box-shadow:none!important;
}
body.court-display-body .court-team-players{
  height:100%!important;
  display:grid!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:clamp(8px,1vh,14px)!important;
}
body.court-display-body .court-player{
  background:#000!important;
  border:2px solid #2d2d2d!important;
  box-shadow:none!important;
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  padding:clamp(18px,2.5vh,42px) clamp(20px,2vw,40px)!important;
}
body.court-display-body .court-player-name{
  color:#fff!important;
  background:transparent!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(58px,8.1vh,126px)!important;
  line-height:.92!important;
  font-weight:900!important;
  letter-spacing:-.035em!important;
  text-transform:uppercase!important;
  text-shadow:none!important;
}
body.court-display-body .court-player.is-server-player{
  background:#004700!important;
  border-color:#004700!important;
  box-shadow:none!important;
}
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  color:#fff!important;
  background:transparent!important;
  text-shadow:none!important;
}
body.court-display-body .court-row-score{
  background:#000!important;
  border:2px solid #2d2d2d!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(230px,34vh,500px)!important;
  font-weight:900!important;
  line-height:.8!important;
  text-shadow:none!important;
}
body.court-display-body .court-score-row:has(.court-team.is-serving)>.court-row-score{
  background:#000!important;
  border-color:#004700!important;
  color:#fff!important;
  box-shadow:none!important;
}
body.court-display-body .court-current-game,
body.court-display-body .court-game-history{
  display:none!important;
}
body.court-display-body .call-banner,
body.court-display-body .match-waiting-start,
body.court-display-body .default-timer,
body.court-display-body .incident-timer{
  background:#000!important;
  color:#fff!important;
  border:2px solid #2d2d2d!important;
  box-shadow:none!important;
  text-shadow:none!important;
}
body.court-display-body .court-waiting-overlay{
  background:#000!important;
  color:#fff!important;
}
body.court-display-body .court-waiting-title,
body.court-display-body .court-waiting-subtitle,
body.court-display-body .court-waiting-sponsor-card strong{
  color:#fff!important;
  text-transform:uppercase!important;
}
body.court-display-body .court-waiting-sponsor-card{
  background:#000!important;
  border:3px solid #2d2d2d!important;
  box-shadow:none!important;
}
body.court-display-body .court-waiting-no-sponsors{color:#aaa!important}

@media(max-width:900px){
  body.court-display-body .court-tv-title{font-size:clamp(30px,7.5vw,52px)!important}
  body.court-display-body .court-score-card{min-height:auto!important}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(120px,31vw,210px)!important;height:auto!important;min-height:auto!important}
  body.court-display-body .court-player-name{font-size:clamp(36px,9vw,64px)!important}
  body.court-display-body .court-row-score{font-size:clamp(110px,31vw,210px)!important}
}

/* === 2026-09-16 COURT BROADCAST SCOREBOARD + STATE OVERLAYS === */
body.court-display-body{
  overflow:hidden!important;
  background:#000!important;
  color:#fff!important;
  font-family:"Arial Narrow",Arial,Helvetica,sans-serif!important;
}
body.court-display-body .court-display-top{
  min-height:92px!important;
  height:92px!important;
  padding:10px 28px!important;
  border-bottom:2px solid #cfcfcf!important;
  background:#000!important;
}
body.court-display-body .top-brand{gap:28px!important;min-width:0!important}
body.court-display-body .brand-mark,
body.court-display-body .live-badge{
  background:#004700!important;
  border:0!important;
  border-radius:10px!important;
  color:#fff!important;
  font-size:clamp(20px,1.7vw,34px)!important;
  font-weight:950!important;
  padding:.45em .7em!important;
  box-shadow:none!important;
}
body.court-display-body .court-tv-title{
  font-size:clamp(40px,4.5vw,84px)!important;
  line-height:.9!important;
  letter-spacing:.01em!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.court-display-body .court-display-wrap{
  width:100%!important;
  max-width:none!important;
  height:calc(100vh - 92px)!important;
  padding:14px 28px 20px!important;
  box-sizing:border-box!important;
}
body.court-display-body #calls{display:none!important}
body.court-display-body #score-display,
body.court-display-body .court-score-card{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
}
body.court-display-body .court-score-card{
  padding:0!important;
  border:0!important;
  background:#000!important;
}
body.court-display-body .court-score-layout{
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(300px,28vw,560px)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  column-gap:18px!important;
  row-gap:18px!important;
}
body.court-display-body .court-score-row{display:contents!important}
body.court-display-body .court-score-row:nth-child(1)>.court-team,
body.court-display-body .court-score-row:nth-child(1)>.court-row-score{grid-row:1!important}
body.court-display-body .court-score-row:nth-child(2)>.court-team,
body.court-display-body .court-score-row:nth-child(2)>.court-row-score{grid-row:2!important}
body.court-display-body .court-team,
body.court-display-body .court-row-score{
  border:3px solid #4b4b4b!important;
  border-radius:14px!important;
  background:#050505!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body.court-display-body .court-team{
  padding:0!important;
  min-height:0!important;
}
body.court-display-body .court-team.is-serving{
  background:#004700!important;
  border-color:#0cff43!important;
  box-shadow:none!important;
}
body.court-display-body .court-team-players{
  height:100%!important;
  display:grid!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
}
body.court-display-body .court-player{
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:clamp(14px,2vh,34px) clamp(28px,3vw,56px)!important;
  box-shadow:none!important;
}
body.court-display-body .court-player + .court-player{border-top:2px solid rgba(255,255,255,.72)!important}
body.court-display-body .court-player.is-server-player{background:transparent!important;border-color:rgba(255,255,255,.72)!important}
body.court-display-body .court-player-name{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  gap:clamp(14px,1.6vw,28px)!important;
  color:#fff!important;
  font-size:clamp(62px,7.5vh,132px)!important;
  line-height:.9!important;
  font-weight:950!important;
  letter-spacing:.015em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.court-display-body .court-serve-icon{
  flex:0 0 auto!important;
  width:clamp(42px,4.2vw,78px)!important;
  height:clamp(42px,4.2vw,78px)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
}
body.court-display-body .court-serve-icon svg{display:block;width:100%;height:100%}
body.court-display-body .court-row-score{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
  font-size:clamp(250px,32vh,510px)!important;
  line-height:.72!important;
  font-weight:950!important;
  font-variant-numeric:tabular-nums!important;
  padding:.03em!important;
}
body.court-display-body .court-score-row:has(.court-team.is-serving)>.court-row-score{
  background:#004700!important;
  border-color:#0cff43!important;
  color:#fff!important;
}

/* Operational court overlays: check-in, defaulting, interval, incidents. */
.court-state-overlay[hidden]{display:none!important}
.court-state-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:9400!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:5vh 5vw!important;
  background:rgba(0,0,0,.97)!important;
  opacity:0;
  transition:opacity .2s ease;
}
.court-state-overlay.show{opacity:1}
.court-state-overlay-inner{
  width:min(1400px,92vw)!important;
  min-height:min(650px,78vh)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  border:4px solid #4b4b4b!important;
  border-radius:22px!important;
  background:#000!important;
  padding:clamp(30px,5vw,80px)!important;
  box-shadow:none!important;
}
.court-state-kicker{
  color:#fff!important;
  font-size:clamp(30px,3vw,56px)!important;
  line-height:1!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  margin-bottom:clamp(28px,4vh,54px)!important;
}
.court-state-title{
  color:#fff!important;
  font-size:clamp(68px,8vw,150px)!important;
  line-height:.9!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.court-state-timer{
  margin:clamp(22px,3vh,42px) 0!important;
  min-width:min(700px,80vw)!important;
  padding:.12em .32em!important;
  border-radius:16px!important;
  background:#004700!important;
  color:#fff!important;
  font-size:clamp(130px,18vw,320px)!important;
  line-height:.82!important;
  font-weight:950!important;
  font-variant-numeric:tabular-nums!important;
}
.court-state-text{
  margin-top:clamp(20px,3vh,42px)!important;
  color:#fff!important;
  font-size:clamp(34px,4vw,72px)!important;
  line-height:1!important;
  font-weight:900!important;
  text-transform:uppercase!important;
}
.court-state-status{
  margin-top:clamp(18px,2.6vh,36px)!important;
  color:#bdbdbd!important;
  font-size:clamp(24px,2.4vw,44px)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  white-space:pre-wrap!important;
}

/* Waiting/sponsor screen remains separate and appears only with no active court match. */
body.court-display-body .court-waiting-overlay{z-index:9300!important;background:#000!important}
body.court-display-body .display-takeover{z-index:9500!important}

@media(max-width:900px){
  body.court-display-body{overflow:auto!important}
  body.court-display-body .court-display-top{height:auto!important;min-height:74px!important;padding:10px 14px!important}
  body.court-display-body .top-brand{gap:12px!important}
  body.court-display-body .court-tv-title{font-size:clamp(24px,6vw,42px)!important;white-space:normal!important}
  body.court-display-body .court-display-wrap{height:auto!important;min-height:calc(100vh - 74px)!important;padding:10px!important}
  body.court-display-body .court-score-layout{height:auto!important;grid-template-columns:minmax(0,1fr) clamp(112px,30vw,190px)!important;grid-template-rows:repeat(2,minmax(200px,auto))!important;gap:10px!important}
  body.court-display-body .court-player-name{font-size:clamp(30px,7.5vw,56px)!important;white-space:normal!important}
  body.court-display-body .court-row-score{font-size:clamp(96px,28vw,190px)!important}
  .court-state-overlay{padding:16px!important}
  .court-state-overlay-inner{min-height:70vh!important;padding:24px 16px!important}
  .court-state-title{font-size:clamp(44px,12vw,78px)!important}
  .court-state-timer{min-width:0!important;width:100%!important;font-size:clamp(90px,28vw,180px)!important}
}

/* === 2026-09-16 FINAL SINGLE-COURT REFERENCE LAYOUT === */
body.court-display-body .court-display-top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
  min-height:94px!important;
  height:94px!important;
  padding:8px 28px!important;
  border-bottom:2px solid #d9d9d9!important;
  background:#000!important;
}
body.court-display-body .court-top-brand{
  display:flex!important;
  align-items:center!important;
  gap:30px!important;
  min-width:0!important;
  flex:1 1 auto!important;
  height:100%!important;
}
body.court-display-body .court-ibt-badge{
  width:auto!important;
  min-width:78px!important;
  height:64px!important;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  margin:0!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  background:#004700!important;
  color:#fff!important;
  border:2px solid #0b7c2b!important;
  border-radius:11px!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:30px!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
}
body.court-display-body .court-tv-title{
  display:flex!important;
  align-items:center!important;
  min-height:64px!important;
  margin:0!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(44px,4.35vw,82px)!important;
  line-height:.95!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
}
body.court-display-body .court-top-status{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:26px!important;
  flex:0 0 auto!important;
  height:100%!important;
}
body.court-display-body .court-bwf-badge{
  min-width:126px!important;
  height:58px!important;
  padding:0 24px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
  background:#e31937!important;
  clip-path:polygon(10% 50%,100% 0,100% 100%)!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:30px!important;
  font-style:italic!important;
  font-weight:950!important;
  line-height:1!important;
}
body.court-display-body .live-badge{
  min-width:96px!important;
  height:64px!important;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#004700!important;
  color:#fff!important;
  border:2px solid #0b7c2b!important;
  border-radius:11px!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:30px!important;
  font-weight:900!important;
  line-height:1!important;
}
body.court-display-body .court-display-wrap{
  height:calc(100vh - 94px)!important;
  padding:24px 30px 28px!important;
}
body.court-display-body .court-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(300px,27vw,530px)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:26px 18px!important;
}
body.court-display-body .court-team,
body.court-display-body .court-row-score{
  border:2px solid #505050!important;
  border-radius:14px!important;
  background:#070707!important;
  box-shadow:none!important;
}
body.court-display-body .court-team{
  position:relative!important;
  padding-left:28px!important;
}
body.court-display-body .court-team::before{
  content:""!important;
  position:absolute!important;
  inset:0 auto 0 0!important;
  width:24px!important;
  background:#bfbfbf!important;
  border-radius:12px 0 0 12px!important;
}
body.court-display-body .court-team.is-serving{
  background:#004700!important;
  border-color:#0a8a32!important;
}
body.court-display-body .court-team.is-serving::before{
  background:#13e83a!important;
}
body.court-display-body .court-player{
  padding:clamp(16px,2vh,30px) clamp(36px,3.2vw,64px)!important;
}
body.court-display-body .court-player + .court-player{
  border-top:2px solid rgba(255,255,255,.66)!important;
}
body.court-display-body .court-player.is-server-player,
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  color:#fff!important;
  padding:0!important;
  border-radius:0!important;
}
body.court-display-body .court-player-name{
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(62px,7.2vh,126px)!important;
  line-height:.92!important;
  font-weight:900!important;
  letter-spacing:.012em!important;
  gap:clamp(18px,1.6vw,30px)!important;
}
body.court-display-body .court-serve-icon{
  flex:0 0 auto!important;
  width:clamp(58px,5vw,92px)!important;
  height:clamp(58px,5vw,92px)!important;
  color:#fff!important;
  filter:none!important;
}
body.court-display-body .court-serve-icon svg{
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
}
body.court-display-body .court-row-score{
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(250px,31vh,500px)!important;
  font-weight:900!important;
  letter-spacing:-.04em!important;
  background:#070707!important;
  color:#fff!important;
}
body.court-display-body .court-score-row:has(.court-team.is-serving)>.court-row-score{
  background:#004700!important;
  border-color:#0a8a32!important;
  color:#fff!important;
}
@media(max-width:900px){
  body.court-display-body .court-display-top{height:auto!important;min-height:78px!important;padding:9px 12px!important;gap:10px!important}
  body.court-display-body .court-top-brand{gap:12px!important}
  body.court-display-body .court-ibt-badge{min-width:54px!important;height:48px!important;padding:0 9px!important;font-size:19px!important}
  body.court-display-body .court-tv-title{min-height:48px!important;font-size:clamp(23px,6vw,40px)!important;white-space:normal!important}
  body.court-display-body .court-top-status{gap:8px!important}
  body.court-display-body .court-bwf-badge{display:none!important}
  body.court-display-body .live-badge{min-width:58px!important;height:46px!important;padding:0 9px!important;font-size:18px!important}
  body.court-display-body .court-display-wrap{height:auto!important;min-height:calc(100vh - 78px)!important;padding:12px!important}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(110px,30vw,185px)!important;gap:12px 8px!important}
  body.court-display-body .court-team{padding-left:12px!important}
  body.court-display-body .court-team::before{width:10px!important}
  body.court-display-body .court-player{padding:12px 14px!important}
  body.court-display-body .court-player-name{font-size:clamp(28px,7.3vw,54px)!important;white-space:normal!important}
  body.court-display-body .court-serve-icon{width:clamp(32px,7vw,50px)!important;height:clamp(32px,7vw,50px)!important}
  body.court-display-body .court-row-score{font-size:clamp(92px,28vw,182px)!important}
}

/* === 2026-09-16 SINGLE COURT FULLSCREEN RESPONSIVE FINAL === */
html:has(body.court-display-body),
body.court-display-body{
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#000!important;
}
body.court-display-body{
  display:grid!important;
  grid-template-rows:clamp(78px,10.5vh,122px) minmax(0,1fr)!important;
  font-family:Arial,Helvetica,sans-serif!important;
}
body.court-display-body .court-display-top{
  width:100%!important;
  min-height:0!important;
  height:100%!important;
  padding:clamp(8px,1.15vh,16px) clamp(18px,1.8vw,38px)!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:clamp(18px,2vw,40px)!important;
  background:#000!important;
  border-bottom:2px solid #d7d7d7!important;
}
body.court-display-body .court-top-brand{
  display:contents!important;
}
body.court-display-body .court-ibt-badge{
  grid-column:1!important;
  align-self:center!important;
  justify-self:start!important;
  width:clamp(72px,5.4vw,108px)!important;
  min-width:0!important;
  height:clamp(56px,7vh,82px)!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  background:#004700!important;
  color:#fff!important;
  border:0!important;
  border-radius:clamp(8px,.7vw,14px)!important;
  font-size:clamp(24px,2vw,40px)!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:0!important;
}
body.court-display-body .court-tv-title{
  grid-column:2!important;
  align-self:center!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(36px,4.35vw,88px)!important;
  line-height:.95!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
}
body.court-display-body .court-top-status{
  grid-column:3!important;
  justify-self:end!important;
  align-self:center!important;
  display:flex!important;
  align-items:center!important;
  height:auto!important;
  gap:0!important;
}
body.court-display-body .court-bwf-badge{display:none!important}
body.court-display-body .live-badge{
  min-width:0!important;
  width:auto!important;
  height:clamp(56px,7vh,82px)!important;
  padding:0 clamp(14px,1.2vw,24px)!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  background:#004700!important;
  color:#fff!important;
  border:0!important;
  border-radius:clamp(8px,.7vw,14px)!important;
  font-size:clamp(24px,2vw,40px)!important;
  line-height:1!important;
  font-weight:900!important;
}
body.court-display-body .court-display-wrap{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:clamp(14px,2vh,28px) clamp(18px,1.8vw,34px) clamp(16px,2.2vh,32px)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body.court-display-body #score-display,
body.court-display-body .court-score-card{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
}
body.court-display-body .court-score-card{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.court-display-body .court-score-layout{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(250px,27vw,520px)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:clamp(12px,1.8vh,24px) clamp(10px,1vw,18px)!important;
}
body.court-display-body .court-score-row{display:contents!important}
body.court-display-body .court-score-row:nth-child(1)>.court-team,
body.court-display-body .court-score-row:nth-child(1)>.court-row-score{grid-row:1!important}
body.court-display-body .court-score-row:nth-child(2)>.court-team,
body.court-display-body .court-score-row:nth-child(2)>.court-row-score{grid-row:2!important}
body.court-display-body .court-team,
body.court-display-body .court-row-score{
  min-width:0!important;
  min-height:0!important;
  height:100%!important;
  box-sizing:border-box!important;
  border:2px solid #4a4a4a!important;
  border-radius:clamp(10px,.8vw,16px)!important;
  background:#050505!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body.court-display-body .court-team{
  position:relative!important;
  padding-left:clamp(12px,1.35vw,26px)!important;
}
body.court-display-body .court-team::before{
  width:clamp(10px,1vw,22px)!important;
  background:#bdbdbd!important;
}
body.court-display-body .court-team.is-serving{
  background:#004700!important;
  border-color:#0b7d2b!important;
}
body.court-display-body .court-team.is-serving::before{background:#16e641!important}
body.court-display-body .court-team-players{
  display:grid!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  height:100%!important;
  min-height:0!important;
}
body.court-display-body .court-player{
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  padding:clamp(8px,1.25vh,18px) clamp(22px,2.4vw,50px)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body.court-display-body .court-player + .court-player{border-top:2px solid rgba(255,255,255,.70)!important}
body.court-display-body .court-player-name{
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(12px,1.2vw,24px)!important;
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(42px,6.15vh,118px)!important;
  line-height:.92!important;
  font-weight:900!important;
  letter-spacing:.005em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
body.court-display-body .court-player.is-server-player,
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#fff!important;
}
body.court-display-body .court-serve-icon{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:clamp(44px,4.8vh,82px)!important;
  height:clamp(44px,4.8vh,82px)!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  vertical-align:middle!important;
}
body.court-display-body .court-serve-icon img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}
body.court-display-body .court-serve-icon svg{display:none!important}
body.court-display-body .court-row-score{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(180px,31vh,500px)!important;
  line-height:.78!important;
  font-weight:900!important;
  letter-spacing:-.055em!important;
  background:#050505!important;
}
body.court-display-body .court-score-row:has(.court-team.is-serving)>.court-row-score{
  background:#004700!important;
  border-color:#0b7d2b!important;
  color:#fff!important;
}
body.court-display-body .court-current-game,
body.court-display-body .court-game-history,
body.court-display-body .next-match,
body.court-display-body .sponsor-section{display:none!important}

@media (max-aspect-ratio: 4/3){
  body.court-display-body{grid-template-rows:clamp(70px,9vh,100px) minmax(0,1fr)!important}
  body.court-display-body .court-display-top{gap:12px!important;padding:8px 12px!important}
  body.court-display-body .court-ibt-badge{width:clamp(54px,8vw,76px)!important;height:clamp(48px,6.5vh,62px)!important;font-size:clamp(18px,3vw,26px)!important}
  body.court-display-body .court-tv-title{font-size:clamp(24px,5.8vw,54px)!important;white-space:normal!important;line-height:1!important}
  body.court-display-body .live-badge{height:clamp(48px,6.5vh,62px)!important;font-size:clamp(18px,3vw,26px)!important;padding:0 10px!important}
  body.court-display-body .court-display-wrap{padding:10px!important}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(110px,29vw,260px)!important;gap:10px 8px!important}
  body.court-display-body .court-player{padding:8px 12px!important}
  body.court-display-body .court-player-name{font-size:clamp(26px,7vw,58px)!important;white-space:normal!important;line-height:.98!important}
  body.court-display-body .court-serve-icon{width:clamp(32px,7vw,52px)!important;height:clamp(32px,7vw,52px)!important}
  body.court-display-body .court-row-score{font-size:clamp(84px,27vw,220px)!important}
}

/* === 2026-09-16 SINGLE COURT PLAYER SCALE + ALIGNMENT FIX === */
html:has(body.court-display-body){
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
}
body.court-display-body{
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  grid-template-rows:clamp(84px,11.5vh,132px) minmax(0,1fr)!important;
}
body.court-display-body .court-display-wrap{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:clamp(12px,1.7vh,24px) clamp(18px,1.6vw,32px) clamp(14px,1.8vh,26px)!important;
  overflow:hidden!important;
}
body.court-display-body #calls:empty{display:none!important}
body.court-display-body #score-display{
  min-height:0!important;
  height:100%!important;
  align-self:stretch!important;
}
body.court-display-body .court-score-card,
body.court-display-body .court-score-layout{
  min-height:0!important;
  height:100%!important;
}
body.court-display-body .court-score-layout{
  grid-template-columns:minmax(0,1fr) clamp(280px,27vw,540px)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:clamp(14px,1.8vh,24px) clamp(10px,1vw,18px)!important;
}
body.court-display-body .court-team-players{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
}
body.court-display-body .court-player{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:clamp(10px,1.2vh,18px) clamp(28px,2.25vw,52px)!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.court-display-body .court-player + .court-player{
  border-top:2px solid rgba(255,255,255,.72)!important;
}
body.court-display-body .court-player-name,
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:clamp(12px,1vw,22px)!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(72px,5.9vw,150px)!important;
  line-height:.88!important;
  font-weight:900!important;
  letter-spacing:-.015em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
body.court-display-body .court-serve-icon{
  flex:0 0 auto!important;
  width:clamp(54px,4.1vw,96px)!important;
  height:clamp(54px,4.1vw,96px)!important;
  margin:0!important;
  padding:0!important;
  align-self:center!important;
  transform:none!important;
}
body.court-display-body .court-serve-icon img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:contain!important;
}
body.court-display-body .court-row-score{
  font-size:clamp(210px,29vh,500px)!important;
}

@media (max-width:1100px), (max-aspect-ratio:4/3){
  body.court-display-body{grid-template-rows:clamp(68px,9vh,96px) minmax(0,1fr)!important}
  body.court-display-body .court-score-layout{grid-template-columns:minmax(0,1fr) clamp(120px,30vw,260px)!important;gap:10px 8px!important}
  body.court-display-body .court-player{padding:8px 14px!important}
  body.court-display-body .court-player-name,
  body.court-display-body .court-player.is-server-player .court-player-name,
  body.court-display-body .server-name-highlight{font-size:clamp(38px,7.2vw,82px)!important;line-height:.92!important;white-space:nowrap!important}
  body.court-display-body .court-serve-icon{width:clamp(34px,6vw,58px)!important;height:clamp(34px,6vw,58px)!important}
  body.court-display-body .court-row-score{font-size:clamp(100px,27vw,220px)!important}
}

/* === 2026-09-16: Single-court player left alignment + wrapping === */
body.court-display-body .court-team-players{
  padding-left:0!important;
  padding-right:0!important;
}
body.court-display-body .court-player{
  padding-left:0!important;
  padding-right:clamp(10px,1vw,20px)!important;
  overflow:visible!important;
  justify-content:flex-start!important;
  text-align:left!important;
}
body.court-display-body .court-player-name,
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  line-height:.92!important;
}
body.court-display-body .court-serve-icon{
  display:inline-block!important;
  vertical-align:middle!important;
  width:clamp(54px,4.1vw,96px)!important;
  height:clamp(54px,4.1vw,96px)!important;
  margin-left:clamp(10px,.7vw,16px)!important;
  margin-right:0!important;
  margin-top:-.08em!important;
}
body.court-display-body .court-serve-icon img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
@media (max-width:1100px), (max-aspect-ratio:4/3){
  body.court-display-body .court-player{padding-left:0!important;padding-right:8px!important}
  body.court-display-body .court-player-name,
  body.court-display-body .court-player.is-server-player .court-player-name,
  body.court-display-body .server-name-highlight{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
  }
  body.court-display-body .court-serve-icon{
    width:clamp(34px,6vw,58px)!important;
    height:clamp(34px,6vw,58px)!important;
    margin-left:8px!important;
  }
}

/* === 2026-09-16: Single-court one-line auto-fit player names === */
body.court-display-body .court-player{
  padding-left:0!important;
  padding-right:clamp(8px,.8vw,16px)!important;
  min-width:0!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
body.court-display-body .court-player-name,
body.court-display-body .court-player.is-server-player .court-player-name,
body.court-display-body .server-name-highlight{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(8px,.7vw,16px)!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  line-height:.92!important;
  text-align:left!important;
}
body.court-display-body .court-player-name-text{
  display:block!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  flex:0 1 auto!important;
}
body.court-display-body .court-serve-icon{
  flex:0 0 auto!important;
  margin:0!important;
  width:clamp(46px,3.7vw,88px)!important;
  height:clamp(46px,3.7vw,88px)!important;
}
@media (max-width:1100px), (max-aspect-ratio:4/3){
  body.court-display-body .court-player{padding-left:0!important;padding-right:6px!important}
  body.court-display-body .court-player-name,
  body.court-display-body .court-player.is-server-player .court-player-name,
  body.court-display-body .server-name-highlight{white-space:nowrap!important;overflow:hidden!important}
  body.court-display-body .court-serve-icon{width:clamp(30px,5vw,54px)!important;height:clamp(30px,5vw,54px)!important}
}


/* === 2026-09-16: compact doubles names + clean serving highlight on public live views === */
body.public-live-body .dash-team.dash-team-compact,
body.live-dashboard-body .dash-team.dash-team-compact {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  min-width:0;
  overflow:visible;
}
body.public-live-body .dash-team-line,
body.live-dashboard-body .dash-team-line {
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:4px;
  min-width:0;
  width:100%;
  line-height:1.08;
}
body.public-live-body .dash-team-player,
body.live-dashboard-body .dash-team-player {
  display:inline-flex;
  align-items:center;
  min-width:0;
  max-width:46%;
  padding:2px 4px;
  border-radius:5px;
  color:#fff;
  font-weight:900;
  font-size:clamp(12px,.95vw,18px);
  line-height:1.05;
  white-space:normal;
  overflow-wrap:anywhere;
}
body.public-live-body .dash-team-separator,
body.live-dashboard-body .dash-team-separator {
  flex:0 0 auto;
  color:#cfc3c6;
  font-weight:900;
  font-size:clamp(12px,.9vw,17px);
}
body.public-live-body .dash-team-player.server-name-highlight,
body.live-dashboard-body .dash-team-player.server-name-highlight {
  background:#d71920 !important;
  color:#fff !important;
  padding:4px 7px;
  border:0 !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
body.public-live-body .dash-team-clubs,
body.live-dashboard-body .dash-team-clubs {
  display:block;
  margin:0;
  color:#a99398;
  font-size:9px;
  line-height:1.05;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
\n\n/* === 2026-09-16: match game-win counters (Best of 3/5) === */\n.umpire-game-wins{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin-bottom:6px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);font-weight:800}.umpire-game-wins>strong{font-size:.78rem;letter-spacing:.08em;color:var(--muted)}.umpire-game-wins span{font-size:clamp(.9rem,1.4vw,1.1rem)}.umpire-game-wins span b{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:8px;background:var(--accent);color:#fff;font-size:1.15rem}.umpire-game-wins .game-wins-sep{color:var(--muted)}.umpire-game-wins small{width:100%;text-align:center;color:var(--muted);font-weight:700}.umpire-game-history{text-align:center;font-size:.8rem;color:var(--muted);line-height:1.5}\n.court-mini-foot{display:flex!important;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.mini-game-wins{display:inline-flex;align-items:center;gap:5px;font-weight:900;letter-spacing:.04em}.mini-game-wins b{display:inline-block;padding:2px 7px;border-radius:6px;background:rgba(255,255,255,.09);color:#fff;font-size:1.05em}\nbody.court-display-body .court-top-status{display:flex!important;align-items:center!important;gap:clamp(8px,.9vw,16px)!important}.court-game-counter{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:clamp(6px,.7vh,11px) clamp(10px,.9vw,18px);border:2px solid rgba(255,255,255,.65);font-family:Arial,Helvetica,sans-serif;font-size:clamp(18px,1.6vw,34px);font-weight:900;letter-spacing:.04em;color:#fff;background:#000}.court-game-counter[hidden]{display:none!important}\n.webview-court{display:flex;align-items:center;justify-content:space-between;gap:12px}.webview-game-wins{font-size:.72em;font-weight:900;letter-spacing:.05em;white-space:nowrap;opacity:.9}\n@media(max-width:700px){.umpire-game-wins{gap:6px}.court-mini-foot{align-items:flex-start;flex-direction:column}.webview-court{align-items:flex-start;flex-direction:column;gap:3px}}\n
/* === 2026-09-16 SINGLE COURT: best-of game score series === */
body.court-display-body .court-top-status{
  gap:clamp(12px,1.15vw,24px)!important;
  padding-right:clamp(8px,.8vw,18px)!important;
}
body.court-display-body .court-game-counter{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-right:clamp(10px,1vw,22px)!important;
  padding:clamp(7px,.7vh,12px) clamp(14px,1.1vw,24px)!important;
  border:2px solid #fff!important;
  border-radius:10px!important;
  background:#000!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(22px,1.8vw,38px)!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
}
body.court-display-body .court-game-counter[hidden]{display:none!important}
body.court-display-body .court-team.has-bestof-series{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-content:stretch!important;
}
body.court-display-body .court-team.has-bestof-series .court-team-players{
  min-height:0!important;
  height:auto!important;
}
body.court-display-body .court-bestof-scoreline{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:clamp(8px,1vh,16px) clamp(22px,2.4vw,50px) clamp(12px,1.3vh,20px)!important;
  border-top:2px solid rgba(255,255,255,.7)!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:clamp(30px,3.2vh,58px)!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.035em!important;
  text-align:left!important;
  font-variant-numeric:tabular-nums!important;
  white-space:nowrap!important;
}
body.court-display-body .court-team.is-serving .court-bestof-scoreline{
  border-top-color:rgba(255,255,255,.82)!important;
}
@media (max-aspect-ratio:4/3){
  body.court-display-body .court-game-counter{
    margin-right:4px!important;
    padding:6px 8px!important;
    font-size:clamp(15px,2.5vw,22px)!important;
  }
  body.court-display-body .court-bestof-scoreline{
    padding:6px 12px 8px!important;
    font-size:clamp(20px,4vw,34px)!important;
  }
}

/* === 2026-09-17 SINGLE COURT: marquee only for overflowing player names === */
body.court-display-body .court-player-name{
  position:relative!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
body.court-display-body .court-name-marquee-track{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:none!important;
  min-width:0!important;
  will-change:transform;
  transform:translate3d(0,0,0);
}
body.court-display-body .court-name-marquee-group{
  display:inline-flex!important;
  align-items:center!important;
  gap:clamp(8px,.7vw,16px)!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
body.court-display-body .court-name-marquee-clone{
  display:none!important;
}
body.court-display-body .court-player-name.is-name-marquee .court-name-marquee-track{
  animation:courtNameMarquee var(--court-name-marquee-duration,12s) linear infinite!important;
}
body.court-display-body .court-player-name.is-name-marquee .court-name-marquee-clone{
  display:inline-flex!important;
  margin-left:clamp(56px,5vw,120px)!important;
}
@keyframes courtNameMarquee{
  0%,12%{transform:translate3d(0,0,0)}
  88%,100%{transform:translate3d(calc(-1 * var(--court-name-marquee-distance,300px)),0,0)}
}
@media (prefers-reduced-motion:reduce){
  body.court-display-body .court-player-name.is-name-marquee .court-name-marquee-track{
    animation:none!important;
  }
  body.court-display-body .court-player-name.is-name-marquee{
    overflow-x:auto!important;
    scrollbar-width:none;
  }
  body.court-display-body .court-player-name.is-name-marquee::-webkit-scrollbar{display:none}
}

/* === 2026-09-17 SINGLE COURT: fixed name viewport + dedicated shuttle slot === */
body.court-display-body .court-player-line{
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(54px,4.8vw,92px)!important;
  align-items:center!important;
  overflow:hidden!important;
}
body.court-display-body .court-player-line .court-player-name{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  overflow:hidden!important;
  padding:0!important;
  margin:0!important;
}
body.court-display-body .court-player-serve-slot{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:none!important;
  overflow:hidden!important;
}
body.court-display-body .court-player-serve-slot:not(.has-server){visibility:hidden!important;}
body.court-display-body .court-player-serve-slot .court-serve-icon{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:clamp(42px,3.8vw,72px)!important;
  height:clamp(42px,3.8vw,72px)!important;
  margin:0!important;
  padding:0!important;
  flex:none!important;
}
body.court-display-body .court-player-serve-slot .court-serve-icon img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
body.court-display-body .court-player-line.server-name-highlight{
  color:#fff!important;
}
body.court-display-body .court-player-line.server-name-highlight .court-player-name{
  color:#fff!important;
}
body.court-display-body .court-name-marquee-group{
  gap:0!important;
}
@media (max-width:900px){
  body.court-display-body .court-player-line{
    grid-template-columns:minmax(0,1fr) clamp(38px,7vw,58px)!important;
  }
  body.court-display-body .court-player-serve-slot .court-serve-icon{
    width:clamp(32px,6vw,50px)!important;
    height:clamp(32px,6vw,50px)!important;
  }
}


/* === 2026-09-17: public scoreboard orientation + umpire shuttle counter === */
.public-display-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px}.public-display-controls label{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.public-display-controls select{width:auto;min-width:128px;padding:8px 34px 8px 10px;background:#0e090a;color:#fff;border:1px solid #4b242b;border-radius:9px;font-weight:800}.public-scoreboard-body.display-landscape .live-three-column-restored{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(300px,.92fr)!important}.public-scoreboard-body.display-portrait .live-dashboard-wrap{max-width:980px}.public-scoreboard-body.display-portrait .live-three-column-restored{grid-template-columns:1fr!important}.public-scoreboard-body.display-portrait .live-three-column-restored .upcoming-group{grid-column:auto!important}.public-scoreboard-body.display-portrait .court-list,.public-scoreboard-body.display-portrait .upcoming-courts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-scoreboard-body.display-portrait .court-group>h2,.public-scoreboard-body.display-portrait .upcoming-group>h2{font-size:clamp(20px,3.2vw,30px);margin-top:20px}.public-scoreboard-body.display-portrait .court-mini-score{font-size:clamp(48px,8vw,86px)}
@media(max-width:700px){.public-display-controls label{display:none}.public-display-controls select{min-width:112px}.public-scoreboard-body.display-portrait .court-list,.public-scoreboard-body.display-portrait .upcoming-courts-list{grid-template-columns:1fr}}

/* 2026-09-17 admin list tools */
.admin-search-bar{margin:0 0 14px}.admin-search-bar>label{display:block;font-weight:850;margin-bottom:7px}.admin-search-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:8px;align-items:center}.bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0d0809}.bulk-check{display:flex;align-items:center;gap:8px;font-weight:800}.bulk-check input,.row-check{width:18px;height:18px}.select-col{width:40px}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0 0}.pagination span{font-weight:800;color:var(--muted)}
@media(max-width:560px){.admin-search-row{grid-template-columns:1fr}.admin-search-row .btn,.admin-search-row button{width:100%}.bulk-toolbar{align-items:stretch}.bulk-toolbar .actions{width:100%}.pagination{justify-content:space-between}}

/* One-column TV scoreboard/live feed */
.tv-courts-section{width:100%}.tv-court-list{display:grid;grid-template-columns:1fr;gap:clamp(16px,1.8vw,28px)}.tv-court-card{overflow:hidden;border:1px solid #3d1c22;border-radius:18px;background:#090607;box-shadow:0 16px 40px rgba(0,0,0,.22)}.tv-court-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(14px,1.5vw,24px) clamp(16px,2vw,30px);background:#14090b;border-bottom:1px solid #3d1c22}.tv-court-card>header strong{font-size:clamp(28px,3vw,54px);line-height:1;text-transform:uppercase;color:#fff}.tv-court-card>header span{font-size:clamp(12px,1vw,18px);font-weight:900;letter-spacing:.12em;color:#ff4050}.tv-current-wrap{padding:clamp(14px,1.6vw,24px) clamp(16px,2vw,30px)}.tv-current-event{font-size:clamp(18px,1.7vw,30px);font-weight:900;color:#e7dfe1;margin-bottom:10px}.tv-current-empty{display:grid;place-items:center;min-height:120px;font-size:clamp(20px,2vw,34px);font-weight:900;color:#87777b}.tv-score-side{display:grid;grid-template-columns:minmax(0,1fr) clamp(120px,12vw,220px);gap:clamp(10px,1vw,18px);align-items:stretch;margin-top:10px}.tv-score-side .dash-team{padding:clamp(12px,1.3vw,20px);border-radius:14px}.tv-score-side .dash-team-line{font-size:clamp(22px,2.3vw,42px);line-height:1.15;font-weight:900}.tv-score-side .dash-team-clubs{font-size:clamp(11px,.9vw,16px);margin-top:7px}.tv-score-number{display:flex;align-items:center;justify-content:center;border:1px solid #51202a;border-radius:14px;background:#1a0b0e;font-size:clamp(76px,9vw,150px);font-weight:950;line-height:1;font-variant-numeric:tabular-nums}.tv-match-meta{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-top:12px;font-size:clamp(12px,1vw,18px);font-weight:800;color:#b9a9ad}.tv-match-meta .mini-game-wins b{font-size:1.25em;color:#fff}.tv-upcoming{border-top:1px solid #3d1c22;background:#10090a;padding:clamp(14px,1.5vw,22px) clamp(16px,2vw,30px)}.tv-upcoming-title{font-size:clamp(15px,1.25vw,22px);font-weight:950;letter-spacing:.1em;color:#ff4050;margin-bottom:10px}.tv-upcoming-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tv-upcoming-match{border:1px solid #362025;border-radius:12px;background:#090607;padding:clamp(10px,1vw,16px);min-width:0}.tv-upcoming-match>div{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.tv-upcoming-match>div span{font-weight:850;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-upcoming-match time{color:#b9a9ad;white-space:nowrap}.tv-upcoming-match strong{display:block;font-size:clamp(14px,1.15vw,20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-upcoming-match small{display:block;color:#ff4050;font-weight:900;margin:3px 0}.tv-upcoming-empty{padding:16px;border:1px dashed #3b2a2e;border-radius:10px;color:#9c8d90;font-weight:800}.tv-no-courts{text-align:center;padding:50px;font-size:24px;color:#a9969b}.server-name-highlight{background:#c91524!important;color:#fff!important;padding:.08em .22em;border-radius:.16em;text-shadow:none!important}
@media(max-width:900px){.tv-upcoming-grid{grid-template-columns:1fr}.tv-score-side{grid-template-columns:minmax(0,1fr) 100px}.tv-score-number{font-size:clamp(60px,16vw,100px)}}

/* Refined compact all-courts web view */
.webview-classy{margin:0;min-height:100vh;background:#09090b;color:#f5f5f6;font-family:Arial,Helvetica,sans-serif}.webview-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:12px clamp(14px,2vw,28px);background:rgba(9,9,11,.94);backdrop-filter:blur(12px);border-bottom:1px solid #2a2a2f}.webview-header>div{display:flex;align-items:center;gap:11px}.webview-header strong{display:block;font-size:17px;letter-spacing:.08em}.webview-header small{display:block;color:#93939b}.webview-all-courts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.webview-classy .webview-match{background:#111115;border:1px solid #2b2b31;border-radius:14px;box-shadow:0 10px 28px rgba(0,0,0,.18)}.webview-classy .webview-court{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:#17171c;border-bottom:1px solid #2b2b31;color:#fff}.webview-classy .webview-court strong{font-size:17px}.webview-classy .webview-court span{font-size:11px;color:#b7b7bf;text-transform:uppercase;letter-spacing:.08em;text-align:right}.webview-teamline{display:flex;align-items:center;gap:7px;min-width:0;padding:10px 14px;font-weight:850;font-size:clamp(15px,1.45vw,24px);white-space:nowrap;overflow:hidden}.webview-teamline span{overflow:hidden;text-overflow:ellipsis}.webview-teamline i{font-style:normal;color:#777781;flex:0 0 auto}.web-server{background:#c91524;color:#fff;padding:3px 6px;border-radius:5px}.webview-classy .webview-row{min-height:58px;grid-template-columns:minmax(0,1fr) 84px;border-bottom:1px solid #24242a}.webview-classy .webview-row b{background:#0c0c0f;border-left:1px solid #2b2b31;font-size:clamp(36px,4vw,64px)}.webview-meta{padding:8px 14px;text-align:right;color:#9e9ea6;font-size:11px;font-weight:800;letter-spacing:.05em}.webview-no-match{display:grid;place-items:center;min-height:130px;color:#76767e;font-weight:800}.webview-idle{opacity:.78}
@media(max-width:760px){.webview-all-courts{grid-template-columns:1fr}.webview-wrap{padding:10px}.webview-classy .webview-row{grid-template-columns:minmax(0,1fr) 68px}}


/* === 2026-09-17: Live/Scoreboard 4-court grid with three upcoming matches inside each court === */
.court-grid-wrap{max-width:1920px!important;width:100%!important;padding-left:clamp(10px,1.4vw,26px)!important;padding-right:clamp(10px,1.4vw,26px)!important}
.all-courts-section{width:100%}
.court-grid-four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1vw,18px);align-items:stretch}
.court-grid-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #3d1c22;border-radius:16px;background:#090607;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.court-grid-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:clamp(11px,.9vw,16px);background:#14090b;border-bottom:1px solid #3d1c22}
.court-grid-card>header strong{font-size:clamp(20px,1.55vw,30px);line-height:1;text-transform:uppercase;color:#fff}
.court-grid-card>header span{font-size:clamp(9px,.65vw,12px);font-weight:900;letter-spacing:.08em;color:#ff4050;text-align:right}
.court-grid-current{padding:clamp(10px,.8vw,14px);min-height:230px}
.court-grid-current.empty{display:grid;place-items:center;min-height:230px}
.court-grid-empty{font-size:clamp(14px,1vw,19px);font-weight:900;color:#7f7074;text-align:center}
.court-grid-event{font-size:clamp(13px,.95vw,18px);font-weight:900;color:#f5edef;margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.court-grid-side{display:grid;grid-template-columns:minmax(0,1fr) clamp(68px,5vw,96px);gap:8px;align-items:stretch;margin-top:7px}
.court-grid-card .dash-team{padding:8px;border-radius:10px}
.court-grid-card .dash-team-line{font-size:clamp(13px,.95vw,18px);font-weight:900;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.court-grid-card .dash-team-clubs{font-size:clamp(9px,.62vw,11px);margin-top:4px}
.court-grid-score{display:flex;align-items:center;justify-content:center;border:1px solid #51202a;border-radius:10px;background:#1a0b0e;color:#fff;font-size:clamp(42px,4vw,72px);font-weight:950;line-height:1;font-variant-numeric:tabular-nums}
.court-grid-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px;font-size:clamp(9px,.62vw,11px);font-weight:800;color:#b9a9ad;flex-wrap:wrap}
.court-grid-upcoming{margin-top:auto;border-top:1px solid #3d1c22;background:#10090a;padding:clamp(9px,.75vw,13px)}
.court-grid-upcoming-title{font-size:clamp(10px,.72vw,13px);font-weight:950;letter-spacing:.08em;color:#ff4050;margin-bottom:7px}
.court-upcoming-list{display:grid;gap:6px}
.court-upcoming-item{min-width:0;border:1px solid #332025;border-radius:9px;background:#090607;padding:7px 8px}
.court-upcoming-head{display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:4px}
.court-upcoming-head span{min-width:0;font-size:clamp(9px,.64vw,11px);font-weight:850;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.court-upcoming-head time{font-size:clamp(8px,.58vw,10px);font-weight:800;color:#b9a9ad;white-space:nowrap}
.court-upcoming-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;align-items:center}
.court-upcoming-teams b{font-size:clamp(10px,.7vw,12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#eee}
.court-upcoming-teams small{font-size:8px;font-weight:900;color:#ff4050;text-transform:uppercase}
.court-upcoming-empty{padding:12px;border:1px dashed #3b2a2e;border-radius:9px;color:#9c8d90;font-size:11px;font-weight:800;text-align:center}
.court-grid-no-courts{grid-column:1/-1;text-align:center;padding:40px}
.public-scoreboard-body.display-landscape .court-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.public-scoreboard-body.display-portrait .court-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1400px){.court-grid-four{grid-template-columns:repeat(3,minmax(0,1fr))}.public-scoreboard-body.display-landscape .court-grid-four{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.court-grid-four,.public-scoreboard-body.display-landscape .court-grid-four,.public-scoreboard-body.display-portrait .court-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.court-grid-four,.public-scoreboard-body.display-landscape .court-grid-four,.public-scoreboard-body.display-portrait .court-grid-four{grid-template-columns:1fr}.court-grid-current{min-height:0}.court-grid-current.empty{min-height:130px}.court-grid-side{grid-template-columns:minmax(0,1fr) 76px}.court-grid-score{font-size:48px}.court-upcoming-teams b{white-space:normal}.court-grid-card>header strong{font-size:24px}}
