:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#eaf4fa;background:#071724}*{box-sizing:border-box}body{margin:0}header{padding:19px max(20px,calc((100vw - 1200px)/2));background:#0c2739;border-bottom:1px solid #2d556c;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:22px;letter-spacing:1.2px;font-weight:900}.brand strong{color:#e5b83c}.tag{font-size:11px;font-weight:900;color:#70d4cf;letter-spacing:2px}main{max-width:1200px;margin:auto;padding:24px 18px}.hero{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero h1{font-size:clamp(24px,4vw,38px);margin:0}.hero p{color:#a8c0d1}.live{background:#0c524e;color:#b6fff2;border:1px solid #2baf9b;padding:8px 12px;border-radius:8px;font-weight:900}h2{margin-top:32px;font-size:21px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}.court,.item{background:#102a3b;border:1px solid #31536a;border-radius:12px;padding:18px}.court h3{margin:0 0 14px}.players{display:grid;grid-template-columns:1fr 1fr;gap:8px}.players span{padding:9px;background:#1a3b50;border-radius:6px;text-align:center;font-weight:600}.score{font-size:26px;text-align:center;font-weight:900;color:#f4c451;margin-top:14px}.muted{color:#9db8c9}.queue{display:grid;gap:9px}.item{display:flex;justify-content:space-between;align-items:center;gap:12px}.item b{color:#6ce0d0}.foot{text-align:center;color:#829eae;font-size:12px;margin-top:40px}@media(max-width:560px){.brand{font-size:17px}.item{align-items:flex-start}.players{grid-template-columns:1fr 1fr}}

/* Clear side-by-side partnerships in a responsive, scrollable table. */
.table-scroll{width:100%;overflow-x:auto;border:1px solid #31536a;border-radius:12px;background:#102a3b}
.live-table{width:100%;border-collapse:collapse;min-width:690px;font-size:14px}
.live-table th{background:#183a4d;color:#a8d4e5;text-align:left;padding:13px 14px;white-space:nowrap;font-size:12px;letter-spacing:.4px}
.live-table td{padding:13px 14px;border-top:1px solid #31536a;vertical-align:middle}
.live-table tbody tr:nth-child(even){background:#122f42}
.live-table .versus{text-align:center;font-weight:900;color:#f4c451;min-width:45px}
.live-table .strong,.live-table .queue-number{font-weight:800;color:#75e0d8;white-space:nowrap}
.live-table .timer-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
.live-table .score-cell{font-weight:800;color:#f4c451;white-space:nowrap}
#courts,#queue{display:block}
@media(max-width:600px){.live-table{font-size:13px}.live-table th,.live-table td{padding:11px 10px}}

/* Compact live scoreboard tables: fit standard desktop widths without truncating players. */
main{max-width:1380px;padding:18px 14px}
h2{margin-top:23px;margin-bottom:12px}
.live-table{min-width:0;width:100%;table-layout:auto;font-size:clamp(11px,.87vw,13px)}
.live-table th{padding:9px 10px;font-size:11px;letter-spacing:0}
.live-table td{padding:10px 10px;line-height:1.3}
.live-table .versus{min-width:28px;width:36px;padding-left:3px;padding-right:3px}
.live-table .team-cell{white-space:nowrap;color:#b6d8e7;font-weight:700}
.live-table .queue-status{white-space:nowrap}
.live-table .timer-cell{white-space:nowrap}
#courts .live-table td:nth-child(3),#courts .live-table td:nth-child(5),
#queue .live-table td:nth-child(2),#queue .live-table td:nth-child(4){white-space:normal;overflow-wrap:break-word}
@media(max-width:750px){.live-table{min-width:570px;font-size:11px}.live-table th,.live-table td{padding:8px 7px}.live-table .queue-status{white-space:normal}}

/* Vertical match cards, with team pairs stacked above/below VS. */
.vertical-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));gap:12px;align-items:stretch}
.match-card{min-width:0;background:#102a3b;border:1px solid #31536a;border-radius:12px;padding:13px;display:flex;flex-direction:column;gap:7px}
.match-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid #31536a}
.match-head strong{color:#75e0d8;font-size:14px}
.match-meta{font-size:12px;color:#b6d8e7;text-align:right;overflow-wrap:anywhere}
.match-pair{background:#1a3b50;border-radius:6px;padding:10px 9px;text-align:center;font-weight:700;font-size:14px;overflow-wrap:anywhere}
.match-versus{color:#f4c451;font-weight:900;text-align:center;font-size:13px;line-height:1.2}
.match-waiting{color:#a8c0d1;text-align:center;font-size:12px;padding:6px;overflow-wrap:anywhere}
@media(max-width:600px){.vertical-grid{grid-template-columns:1fr;gap:9px}.match-card{padding:11px}.match-pair{padding:9px}}

/* Midnight Rally polished vertical scoreboard */
body{background:radial-gradient(ellipse at 50% -25%,#12354a 0%,#071724 55%) fixed}
main{max-width:1320px}
.hero{padding:4px 0 10px}
h2{font-weight:800;letter-spacing:.2px}
#courts.vertical-grid,#queue.vertical-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
#queue.vertical-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#courts .match-card,#queue .match-card{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0;padding:16px;background:linear-gradient(160deg,#15374b,#0d2535);border:1px solid #356078;border-radius:14px;box-shadow:0 7px 22px rgba(0,0,0,.16);overflow:hidden}
#courts .match-card:before,#queue .match-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#45d7cb,#e9b944)}
#courts .match-head,#queue .match-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 0 12px;border-bottom:1px solid #34536a}
#courts .match-head strong,#queue .match-head strong{color:#6de4d8;font-size:15px;font-weight:850}
#courts .match-meta,#queue .match-meta{font-size:12px;font-weight:650;color:#c1d8e5;text-align:right}
#courts .match-pair,#queue .match-pair{background:#204258;border:1px solid #30576b;border-radius:9px;padding:13px 10px;color:#f5fbff;font-size:15px;font-weight:750;text-align:center;overflow-wrap:anywhere}
#courts .match-versus,#queue .match-versus{align-self:center;color:#ffc951;font-size:13px;font-weight:950;letter-spacing:1.5px;background:#193044;border:1px solid #4b5260;border-radius:100px;padding:4px 14px;line-height:1}
#courts .match-waiting,#queue .match-waiting{color:#b4c8d6;text-align:center;font-size:13px;padding:12px 8px;background:#112d40;border:1px dashed #456479;border-radius:9px}
@media(max-width:900px){#courts.vertical-grid,#queue.vertical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#courts.vertical-grid,#queue.vertical-grid{grid-template-columns:1fr;gap:10px}#courts .match-card,#queue .match-card{padding:12px}#courts .match-pair,#queue .match-pair{padding:10px;font-size:14px}}

/* Screenshot-inspired phone-first Live Share scoreboard */
main{max-width:1120px;padding:20px 18px}
body{background:#061827}
#courts.court-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:12px}
#queue.queue-list{display:flex;flex-direction:column;gap:2px}
.court-card{background:linear-gradient(125deg,#102e43,#092237);border:1px solid #24516a;border-radius:13px;padding:14px 16px;min-width:0;box-shadow:0 4px 16px #0002}
.court-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}
.court-heading{display:flex;flex-direction:column;gap:3px}
.court-heading strong{font-size:18px;color:#32d3f1}
.court-team{font-size:12px;color:#a5c2d6}
.court-timer{color:#f1f7fc;font-size:15px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.court-matchup{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);align-items:center;gap:5px}
.court-side{display:flex;flex-direction:column;min-width:0}
.court-player{background:#1a3c53;border:1px solid #244f68;padding:10px 5px;text-align:center;font-size:13px;color:#f2f7fa;overflow-wrap:anywhere}
.court-player:first-child{border-radius:7px 7px 0 0}
.court-player:last-child{border-radius:0 0 7px 7px}
.court-vs{text-align:center;color:#ffc13b;font-size:17px;font-weight:900}
.queue-row{display:grid;grid-template-columns:40px minmax(0,1fr) 32px minmax(0,1.4fr) minmax(115px,.9fr);align-items:center;gap:8px;min-height:58px;padding:8px 12px;background:#102b3f;border:1px solid #28526a;border-radius:10px}
.queue-number{color:#34d6f2;font-size:17px}
.queue-pair{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:12px;overflow-wrap:anywhere}
.queue-vs{color:#ffc13b;font-size:15px;text-align:center}
.queue-wait-text{color:#a8c1d1;font-size:11px}
.queue-state{display:flex;align-items:center;gap:9px;min-width:0}
.status-dot{width:11px;height:11px;flex:none;border-radius:50%;background:#328eff}
.status-dot.ready{background:#1dd98b}.status-dot.next{background:#ffc438}
.queue-state-text{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:11px}
.queue-state-text strong{font-size:12px;color:#eef7ff}
.queue-state-text span{color:#9ebdd0;overflow-wrap:anywhere}
@media(min-width:900px){#courts.court-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:500px){main{padding:16px 10px}.court-card{padding:12px}.queue-row{grid-template-columns:26px minmax(0,1fr) 22px minmax(0,1.15fr) minmax(78px,.8fr);gap:5px;padding:8px 6px}.queue-number{font-size:14px}.queue-pair{font-size:11px}.queue-state{gap:5px}.queue-state-text{font-size:10px}.queue-state-text strong{font-size:10px}.status-dot{width:8px;height:8px}.queue-vs{font-size:13px}.court-player{font-size:13px}}

/* Queue readability and corrected status palette: blue Next, green Ready, yellow Waiting */
#queue .queue-pair{font-size:15px;line-height:1.45}
#queue .queue-wait-text{font-size:14px;line-height:1.4}
#queue .queue-state-text{font-size:14px;line-height:1.35}
#queue .queue-state-text strong{font-size:14px}
#queue .queue-number{font-size:18px}
#queue .queue-vs{font-size:17px}
#queue .queue-row{min-height:72px}
#queue .status-dot.next{background:#328eff}
#queue .status-dot.ready{background:#1dd98b}
#queue .status-dot.waiting{background:#ffc438}
@media(max-width:500px){
 #queue .queue-row{grid-template-columns:31px minmax(0,1fr) 24px minmax(0,1.15fr) minmax(84px,.8fr);gap:6px;min-height:76px;padding:9px 7px}
 #queue .queue-pair{font-size:14px;line-height:1.4}
 #queue .queue-wait-text{font-size:13px}
 #queue .queue-state-text{font-size:12px}
 #queue .queue-state-text strong{font-size:12px}
 #queue .queue-number{font-size:17px}
 #queue .queue-vs{font-size:15px}
 #queue .status-dot{width:10px;height:10px}
}
