:root{--bg:#f3f6fa;--surface:#fff;--line:#dce4ee;--text:#142033;--muted:#6b778c;--brand:#2563eb;--brand2:#174bb5;--green:#16864b;--red:#c62828;--amber:#b66a00;--shadow:0 7px 24px rgba(25,42,70,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{max-width:1560px;margin:auto;padding:16px}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);position:sticky;top:10px;z-index:20}.topbar h1{font-size:25px;margin:3px 0}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}.muted{color:var(--muted);font-size:12px}.top-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;font-size:10px;font-weight:850}.pill.ok{color:#126b3c;background:#ecf9f1;border-color:#bee8cd}.layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;margin-top:14px;align-items:start}.sidebar{position:sticky;top:105px;display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px;box-shadow:var(--shadow)}.nav{border:1px solid transparent;background:transparent;text-align:left;padding:10px 11px;border-radius:9px;color:#46556d;font-weight:850;font-size:12px}.nav:hover{background:#f7f9fc}.nav.active{background:var(--brand);color:#fff}.sidebar-note{margin-top:8px;padding:9px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.45}.workspace{min-width:0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 10px}.section-head h2{margin:0;font-size:21px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);min-width:0}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stack{display:grid;gap:10px}.field label{display:block;font-size:10px;font-weight:850;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea,input,select,textarea{width:100%;border:1px solid #ccd7e5;border-radius:9px;background:#fff;color:var(--text);padding:9px 10px;outline:0;min-width:0}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{border-color:#83a8f6;box-shadow:0 0 0 3px rgba(37,99,235,.1)}textarea{min-height:92px;resize:vertical}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:10px}.primary,.neutral,.ghost,.danger{border:0;border-radius:9px;padding:9px 11px;font-weight:850}.primary{background:var(--brand);color:#fff}.primary:hover{background:var(--brand2)}.neutral{background:#e9eef5;color:#25344b}.ghost{background:#fff;color:#34445c;border:1px solid var(--line)}.danger{background:#fff0f0;color:#9f2020;border:1px solid #f3c0c0}.status{position:sticky;top:94px;z-index:19;margin:8px 0;padding:9px 12px;border-radius:10px;border:1px solid #c8d8f6;background:#eef5ff;color:#2355a7;font-size:12px;font-weight:800}.status.error{border-color:#efb4b4;background:#fff0f0;color:#9f2020}.status.ok{border-color:#b9e4c7;background:#eefaf2;color:#166d3c}.team-card{position:relative}.team-accent{position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:14px 0 0 14px;background:var(--team,#2563eb)}.team-card-inner{padding-left:6px}.team-head{display:grid;grid-template-columns:minmax(0,1fr) 90px 46px auto;gap:7px;align-items:center}.roster{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.roster-grid{display:grid;grid-template-columns:70px minmax(150px,1.5fr) minmax(120px,1fr);gap:6px}.roster-grid.cf{grid-template-columns:110px 100px minmax(160px,1fr)}.roster-grid .head{font-size:9px;color:var(--muted);font-weight:900;text-transform:uppercase}.schedule-tools{display:flex;gap:7px;flex-wrap:wrap;align-items:end;margin-bottom:10px}.schedule-tools .field{min-width:125px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:8px 9px;border-bottom:1px solid #e8edf4;text-align:left;font-size:11px;vertical-align:middle}th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.035em;background:#fafbfd;position:sticky;top:0}td input,td select{padding:6px 7px;font-size:11px}.status-chip{display:inline-flex;padding:4px 6px;border-radius:999px;background:#f2f4f7;color:#58667a;font-size:9px;font-weight:900}.status-chip.live{background:#eaf9ef;color:#126b3c}.status-chip.done{background:#f2f4f7;color:#58667a}.sport-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.sport-tab{border:1px solid var(--line);background:#fff;color:#43536a;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900}.sport-tab.active{background:#1b293c;color:#fff;border-color:#1b293c}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.team-inputs{display:grid;gap:6px}.playoff-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.bracket{display:grid;gap:7px}.match-row{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.match-row strong{overflow-wrap:anywhere}.cf-schedule{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cf-zone{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.cf-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 72px 90px;gap:6px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1f5}.cf-row:last-child{border-bottom:0}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);padding:22px;border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:var(--shadow)}.login-card h1{margin:5px 0}.login-card p{color:var(--muted);font-size:12px}.login-card button{width:100%;margin-top:10px}.error-text{color:var(--red);font-size:11px;margin-top:8px}.empty{padding:16px;border:1px dashed #ccd6e3;border-radius:12px;color:var(--muted);background:#fff}.hint{font-size:11px;color:var(--muted);line-height:1.45}.separator{height:1px;background:var(--line);margin:12px 0}
@media(max-width:1000px){.layout{display:block}.sidebar{position:sticky;top:95px;z-index:18;flex-direction:row;overflow:auto;margin-bottom:10px}.sidebar-note{display:none}.nav{flex:0 0 auto}.grid2,.grid3,.setup-grid,.cf-schedule{grid-template-columns:1fr}.team-head{grid-template-columns:minmax(0,1fr) 80px 42px}.team-head .save-team{grid-column:1/-1}.topbar{position:relative;top:auto}.status{top:6px}}
@media(max-width:650px){.app{padding:8px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start}.roster-grid{grid-template-columns:58px minmax(120px,1fr) minmax(95px,1fr);gap:4px}.roster-grid.cf{grid-template-columns:90px 75px minmax(120px,1fr)}.cf-row{grid-template-columns:1fr 65px 65px}.cf-row .cf-time{grid-column:1/-1}.team-head{grid-template-columns:1fr 42px}.team-head .group-input,.team-head .save-team{grid-column:1/-1}.table-wrap{border-radius:10px}}

/* dev.10.1 — Access Control only */
.access-grid-v25{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.access-card-v25{min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.035)}.access-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.access-state{flex:0 0 auto;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}.access-state.ok{background:#ecfdf3;color:#067647}.access-state.off{background:#f2f4f7;color:#667085}.access-state.warn{background:#fff7ed;color:#b54708}.token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:11px}.token-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;min-width:0}.access-warning{margin-top:10px;padding:10px 11px;border:1px solid #fed7aa;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:11px;line-height:1.45}.access-note{margin-bottom:11px;padding:11px 12px;border:1px solid #c7d7fe;border-radius:11px;background:#f8fbff;color:#344054;font-size:11px;line-height:1.5}.access-meta{margin-top:8px;color:var(--muted);font-size:9px;line-height:1.4;overflow-wrap:anywhere}.access-card-v25 .actions button{font-size:10px;padding:8px 9px}
@media(max-width:900px){.access-grid-v25{grid-template-columns:1fr}}@media(max-width:560px){.access-card-head{align-items:flex-start}.token-row{grid-template-columns:1fr}.access-card-v25 .actions{display:grid;grid-template-columns:1fr 1fr}.access-card-v25 .actions button{width:100%}}

/* dev.12 — Extended Admin. Functional layer only; final visual polish stays for dev.15. */
.pill.warn{color:#92400e;background:#fff7ed;border-color:#fed7aa}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.summary-card{padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.035);min-width:0}.summary-card span{display:block;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.summary-card strong{display:block;margin-top:3px;font-size:24px;font-variant-numeric:tabular-nums}.summary-card small{color:var(--muted);font-size:9px}.summary-card.warn{border-color:#fed7aa;background:#fffaf3}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.control-card{appearance:none;width:100%;text-align:left;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);box-shadow:0 3px 12px rgba(15,23,42,.04);min-width:0}.control-card:hover{border-color:#b9c9dd;box-shadow:0 5px 16px rgba(15,23,42,.07)}.control-card-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.access-dot{font-size:8px;font-weight:900;padding:4px 7px;border-radius:999px;white-space:nowrap}.access-dot.ok{background:#ecfdf3;color:#067647}.access-dot.bad{background:#fff1f0;color:#b42318}.control-kicker{margin-top:10px;color:var(--muted);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.control-kicker.live{color:#b42318}.control-match{margin-top:5px;min-width:0}.control-match strong{display:block;overflow-wrap:anywhere}.control-score{margin-top:7px;font-size:24px;font-weight:950;font-variant-numeric:tabular-nums}.control-empty{margin-top:7px;color:var(--muted);font-size:11px}.subhead{margin-top:18px}.subhead h3{margin:0}.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.readiness-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}.readiness-item.ok{border-color:#ccebd7;background:#f8fdf9}.readiness-item.warn{border-color:#fed7aa;background:#fffaf3}.readiness-item.bad{border-color:#fecaca;background:#fff7f7}.readiness-mark{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#edf2f7;font-weight:950}.readiness-item.ok .readiness-mark{background:#dcfce7;color:#166534}.readiness-item.warn .readiness-mark{background:#ffedd5;color:#9a3412}.readiness-item.bad .readiness-mark{background:#fee2e2;color:#991b1b}.readiness-label{font-size:8px;font-weight:900;text-transform:uppercase;color:var(--muted)}
.live-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.live-admin-card{appearance:none;width:100%;text-align:left;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);min-width:0}.live-admin-card:not(.cf){cursor:pointer}.live-admin-top{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px;font-weight:850}.live-badge{padding:4px 7px;border-radius:999px;background:#fff1f0;color:#b42318;font-size:8px;font-weight:950}.live-admin-teams{display:grid;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);align-items:center;gap:8px;margin:12px 0 8px}.live-admin-teams strong{overflow-wrap:anywhere}.live-admin-teams .right{text-align:right}.live-admin-score{text-align:center;font-size:32px;line-height:1;font-weight:950;font-variant-numeric:tabular-nums;white-space:nowrap}
.danger-card{padding:13px;border:1px solid #f0c3c3;border-radius:12px;background:#fffafa}.audit-table{min-width:980px}.audit-change{max-width:290px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-list{display:grid;gap:8px}.competition-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.competition-row.active{border-color:#a9c2fb;background:#f8fbff}.competition-row.archived{opacity:.72;background:#f8fafc}.competition-state{font-size:8px;font-weight:950;padding:5px 8px;border-radius:999px;text-transform:uppercase;white-space:nowrap}.competition-state.active{background:#ecfdf3;color:#067647}.competition-state.saved{background:#eff6ff;color:#175cd3}.competition-state.archived{background:#f2f4f7;color:#667085}.danger-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.danger-card>.danger{margin-top:10px}
.drawer-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.24);z-index:80}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,92vw);z-index:81;background:#fff;border-left:1px solid var(--line);box-shadow:-16px 0 40px rgba(15,23,42,.14);overflow:auto}.drawer-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 14px;background:#fff;border-bottom:1px solid var(--line);z-index:2}.drawer-body{padding:14px}.drawer-section{padding:11px 0;border-bottom:1px solid #edf1f6}.drawer-label{margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.drawer-big-score{padding:18px 0;text-align:center;font-size:54px;font-weight:950;font-variant-numeric:tabular-nums}
.command-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.38);display:grid;place-items:start center;padding:12vh 15px 20px}.command-box{width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.22);overflow:hidden}.command-box>input{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 15px;font-size:14px;box-shadow:none!important}.command-list{max-height:390px;overflow:auto;padding:7px}.command-item{width:100%;display:flex;justify-content:space-between;gap:8px;padding:10px 11px;border:0;border-radius:9px;background:#fff;text-align:left;color:var(--text)}.command-item:hover,.command-item.selected{background:#f2f6fc}.command-item small{color:var(--muted)}.command-hint{padding:8px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}
@media(max-width:1000px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-grid,.readiness-grid,.live-admin-grid,.danger-zone-grid{grid-template-columns:1fr}}
@media(max-width:650px){.summary-grid{grid-template-columns:1fr 1fr}.competition-row{grid-template-columns:1fr auto}.competition-row .actions{grid-column:1/-1;margin-top:0}.live-admin-teams{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr)}.live-admin-score{font-size:27px}.readiness-item{grid-template-columns:22px minmax(0,1fr)}.readiness-label{grid-column:2}.drawer{width:100vw}.command-backdrop{padding-top:7vh}}

/* dev.13 — Protocols only */
.protocol-info{margin-bottom:12px;padding:11px 12px;border:1px solid #c7d7fe;border-radius:11px;background:#f8fbff;color:#344054;font-size:10px;line-height:1.55}.protocol-grid-v25{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.protocol-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.035)}.protocol-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.protocol-card h3{margin:3px 0 4px;font-size:12px;overflow-wrap:anywhere}.protocol-kicker{color:var(--muted);font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.protocol-score{flex:0 0 auto;min-width:76px;text-align:right;font-size:22px;font-weight:950;font-variant-numeric:tabular-nums;white-space:nowrap}.protocol-card .actions{margin-top:9px}.protocol-card .actions button{font-size:9px;padding:7px 9px}@media(max-width:850px){.protocol-grid-v25{grid-template-columns:1fr}}@media(max-width:520px){.protocol-card-head{display:block}.protocol-score{text-align:left;margin-top:7px}}

/* v25.0.0-dev.15.5.3.3 — Admin Tournament Operations */
.tournament-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:#fff}.tournament-filter>span{font-size:10px;font-weight:900;color:#46556d}.tournament-filter-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.tournament-sections{display:grid;gap:14px}.tournament-sport-section{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.tournament-sport-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid #e8edf4}.tournament-sport-head h3{margin:0;font-size:16px;letter-spacing:-.015em}.tournament-current-stage{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#617086;font-size:9px;font-weight:900}.tournament-stage-tabs{display:flex;gap:4px;padding:7px 14px 0}.tournament-stage-tab{border:0;border-radius:9px 9px 0 0;padding:9px 12px;background:#f1f3f6;color:#707d90;font-size:10px;font-weight:900}.tournament-stage-tab.active{background:#fff;color:#185bd6;box-shadow:0 -1px 0 var(--line),1px 0 0 var(--line),-1px 0 0 var(--line)}.tournament-stage-body{padding:15px}.tournament-stage-body>h4{margin:0 0 10px;font-size:16px}.tournament-groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tournament-group-card{min-width:0;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fbfcfe}.tournament-group-card>h5{margin:0 0 8px;font-size:14px}.tournament-table-wrap{overflow:auto;border:1px solid #e4e9f0;border-radius:10px;background:#fff}.tournament-table{min-width:560px}.tournament-table.volleyball{min-width:690px}.tournament-table th,.tournament-table td{padding:7px 6px;font-size:9.5px}.tournament-table th{font-size:8.5px}.tournament-table tbody tr:nth-child(-n+2){background:#f1faf5}.tournament-team{display:inline-flex;align-items:center;gap:5px;font-weight:850;white-space:nowrap}.tournament-team i,.tournament-bracket-team i{width:4px;height:13px;border-radius:999px;background:var(--team,#2563eb);flex:0 0 auto}.tournament-matches-title{margin-top:13px!important}.tournament-group-matches{display:grid;gap:7px}.tournament-group-match{padding:8px 9px;border:1px solid #e3e9f0;border-radius:10px;background:#fff}.tournament-group-match.live{border-color:#b7dfc7;background:#f4fbf6}.tournament-group-match.done{background:#f8fafc}.tournament-group-match-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px;color:#738095;font-size:8px;font-weight:750}.tournament-group-match-meta .status-chip{margin-left:auto}.tournament-group-match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px;align-items:center;font-size:10px}.tournament-group-match-teams strong:last-child{text-align:right}.tournament-group-match-teams b{font-size:13px}.tournament-group-match-teams>span{text-align:center;color:#9aa5b4}.tournament-seed-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 13px;border:1px solid #dfe6ef;border-radius:12px;background:#f8fafc}.tournament-seed-panel>div:first-child{display:grid;gap:3px}.tournament-seed-panel strong{font-size:11px}.tournament-seed-panel span{color:#69788e;font-size:9px;line-height:1.4}.tournament-seed-panel.pending{background:#f8fafc}.tournament-seed-panel.ready,.tournament-seed-panel.confirm{border-color:#f0d09c;background:#fff8ec}.tournament-seed-panel.success{border-color:#bee5cc;background:#f0faf4}.tournament-seed-panel .actions{margin:0}.tournament-format-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,380px);gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.tournament-format-card>div{display:grid;gap:2px}.tournament-format-card strong{font-size:11px}.tournament-format-card span{color:#718096;font-size:9px}.tournament-playoff-state{display:grid;gap:3px;margin-top:10px;padding:10px 12px;border-radius:11px}.tournament-playoff-state strong{font-size:10px}.tournament-playoff-state span{font-size:9px;color:#69788e}.tournament-playoff-state.locked{border:1px solid #efd5a9;background:#fff9ef}.tournament-playoff-state.active{border:1px solid #bae4c9;background:#f1faf4}.tournament-bracket{display:grid;gap:22px;margin-top:16px;padding:6px 2px 3px;overflow-x:auto}.tournament-bracket.single{grid-template-columns:minmax(250px,1fr) minmax(250px,1fr);align-items:center}.tournament-bracket.double{grid-auto-flow:column;grid-auto-columns:minmax(245px,1fr)}.tournament-bracket-column{display:grid;gap:12px;align-content:center;min-width:0;position:relative}.tournament-bracket-column>h5{margin:0;text-align:center;color:#66758b;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.tournament-bracket.single .semis:after{content:"";position:absolute;right:-12px;top:50%;width:12px;border-top:1px solid #c7d3e0}.tournament-bracket-match{position:relative;padding:9px;border:1px solid #cfdbe8;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.035)}.tournament-bracket-match.pending{background:#fbfcfd}.tournament-bracket-meta{display:flex;justify-content:space-between;gap:7px;margin-bottom:6px}.tournament-bracket-meta strong{font-size:8.5px;text-transform:uppercase;color:#68768b}.tournament-bracket-meta span{font-size:8px;color:#78869a}.tournament-bracket-team{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 7px;margin-top:4px;border-radius:8px;background:#f6f8fa;font-size:10px;font-weight:800}.tournament-bracket-team span{overflow-wrap:anywhere}.tournament-bracket-team b{font-size:11px}.tournament-bracket-match>.status-chip{margin-top:6px}.tournament-crossfit-format{display:grid;gap:7px;padding:14px}.tournament-crossfit-format>div{padding:9px 10px;border:1px solid #dfe6ef;border-radius:9px;background:#f8fafc;font-size:12px}.tournament-crossfit-format .strong{font-weight:850}.tournament-crossfit-format b{padding:0 4px;color:#53657d}.tournament-setup{margin:14px}
@media(max-width:1000px){.tournament-groups-grid{grid-template-columns:1fr}.tournament-filter{align-items:flex-start;flex-direction:column}.tournament-filter-actions{justify-content:flex-start}.tournament-format-card{grid-template-columns:1fr}.tournament-bracket.single{grid-template-columns:1fr}.tournament-bracket.single .semis:after{display:none}.tournament-seed-panel{align-items:flex-start;flex-direction:column}.tournament-bracket.double{grid-auto-flow:row;grid-auto-columns:auto}.tournament-current-stage{display:none}}
.tournament-format-actions{display:flex;align-items:center;gap:7px}.tournament-format-actions select{min-width:260px}.status-chip.pending{background:#fff5e8;color:#9a5b09}
@media(max-width:700px){.tournament-format-actions{align-items:stretch;flex-direction:column}.tournament-format-actions select{min-width:0}}

/* v25.0.0-dev.15.5.3.3.1 — Tournament bracket / matrix / seeding hotfix */
.tournament-stage-actions{display:flex;align-items:center;gap:8px;padding:12px 15px;border-bottom:1px solid #e8edf4;background:#fbfcfe}.tournament-stage-btn{appearance:none;border:1px solid #d7e0eb;border-radius:10px;padding:9px 14px;background:#fff;color:#516077;font-size:10px;font-weight:900;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}.tournament-stage-btn:hover{border-color:#b7c7dd;background:#f8fafc}.tournament-stage-btn.active{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 5px 14px rgba(37,99,235,.18)}
.tournament-stage-body{padding:14px 15px 16px}.tournament-stage-body>h4{margin:0 0 10px;font-size:15px}.tournament-seed-panel{margin:0 0 12px}.tournament-seed-panel+.tournament-seed-editor{margin-top:0}.tournament-seed-panel.ready,.tournament-seed-panel.confirm{box-shadow:inset 3px 0 0 #f59e0b}.tournament-seed-panel.success{box-shadow:inset 3px 0 0 #16a34a}.tournament-seed-panel.pending{box-shadow:inset 3px 0 0 #94a3b8}
.tournament-groups-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}.tournament-group-card{padding:11px;overflow:hidden}.tournament-group-title,.tournament-matches-head{display:flex;align-items:flex-end;justify-content:space-between;gap:9px;margin-bottom:8px}.tournament-group-title h5,.tournament-matches-head h5{margin:0;font-size:13px}.tournament-group-title span,.tournament-matches-head span{color:#7a8799;font-size:8px;font-weight:750;text-align:right}.tournament-matches-head{align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid #e8edf4}
.tournament-matrix-wrap{width:100%;overflow:hidden;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.tournament-matrix{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}.tournament-matrix th,.tournament-matrix td{padding:6px 4px;border-bottom:1px solid #edf1f5;border-right:1px solid #edf1f5;text-align:center;font-size:8.5px;line-height:1.18;vertical-align:middle}.tournament-matrix tr:last-child td{border-bottom:0}.tournament-matrix th:last-child,.tournament-matrix td:last-child{border-right:0}.tournament-matrix th{background:#f7f9fc;color:#6b778b;font-size:7.7px;font-weight:900;letter-spacing:.01em}.tournament-matrix th:nth-child(1){width:28px}.tournament-matrix th:nth-child(2){width:25%;text-align:left}.tournament-matrix.futsal th:nth-last-child(2){width:64px}.tournament-matrix.futsal th:last-child{width:48px}.tournament-matrix.volleyball th:nth-last-child(3),.tournament-matrix.volleyball th:nth-last-child(2){width:64px}.tournament-matrix.volleyball th:last-child{width:48px}.tournament-matrix .matrix-team{text-align:left}.tournament-matrix .tournament-team{min-width:0;max-width:100%;white-space:normal}.tournament-matrix .tournament-team i{flex:0 0 auto}.tournament-matrix .qualify{background:#f2fbf5}.tournament-matrix .qualify .matrix-place{box-shadow:inset 3px 0 0 #22c55e}.tournament-matrix .fifth{background:#faf7ff}.tournament-matrix .fifth .matrix-place{box-shadow:inset 3px 0 0 #8b5cf6}.matrix-opponent{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-diagonal{background:#f8fafc;color:#b1bac8;font-weight:900}.matrix-score{display:inline-flex;min-width:28px;justify-content:center;padding:3px 4px;border-radius:6px;font-weight:900;font-variant-numeric:tabular-nums}.matrix-score.win{background:#dcfce7;color:#166534}.matrix-score.loss{background:#fee2e2;color:#991b1b}.matrix-score.draw{background:#f1f5f9;color:#475569}.matrix-score.live{background:#fee2e2;color:#b91c1c;box-shadow:inset 0 0 0 1px #fecaca}.matrix-score.upcoming,.matrix-score.empty{background:#f8fafc;color:#a0aaba}.matrix-total{font-variant-numeric:tabular-nums}.matrix-total strong{display:block;font-size:8.5px}.matrix-total small{display:block;margin-top:1px;color:#7a8799;font-size:7px}.matrix-points strong{font-size:10px}
.tournament-group-matches{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}.tournament-group-match{min-width:0;padding:7px 8px}.tournament-group-match-meta{gap:5px;margin-bottom:4px}.tournament-group-match-teams{font-size:9px}.tournament-group-match-teams b{font-size:12px}.tournament-group-match-teams strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tournament-format-card{grid-template-columns:minmax(220px,.8fr) minmax(420px,1.2fr);padding:11px 12px;margin-bottom:12px}.tournament-format-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.tournament-format-option{appearance:none;border:1px solid #dbe3ec;border-radius:10px;padding:9px 11px;background:#fff;color:#55647a;text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.tournament-format-option strong{display:block;font-size:9.5px}.tournament-format-option span{display:block;margin-top:2px;color:#8591a3;font-size:7.5px}.tournament-format-option.active{border-color:#2563eb;background:#eff6ff;color:#174ea6;box-shadow:inset 0 0 0 1px #bfdbfe}.tournament-format-option.active span{color:#4773b7}.tournament-format-option:disabled{cursor:not-allowed;opacity:.58}
.tournament-seed-editor{margin-bottom:12px;padding:12px;border:1px solid #cfd9e7;border-radius:12px;background:#fbfcfe}.tournament-seed-editor-head{margin-bottom:9px}.tournament-seed-editor-head>div{display:grid;gap:3px}.tournament-seed-editor-head strong{font-size:11px}.tournament-seed-editor-head span{max-width:760px;color:#728095;font-size:8.5px;line-height:1.45}.tournament-seed-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.tournament-seed-editor-grid>div{display:grid;gap:6px;padding:9px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.tournament-seed-editor-grid b{font-size:9px}.tournament-seed-editor-grid label{display:grid;gap:3px}.tournament-seed-editor-grid label>span{color:#748196;font-size:7.5px;font-weight:800}.tournament-seed-editor-grid select{width:100%;min-width:0;padding:7px 8px;font-size:8.5px}.tournament-seed-editor>.actions{margin:10px 0 0;justify-content:flex-end}
.tournament-bracket-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:8px 10px;border:1px solid #e1e7ef;border-radius:10px;background:#f8fafc}.tournament-bracket-note strong{font-size:9px}.tournament-bracket-note span{color:#748196;font-size:8px;text-align:right}.tournament-bracket{overflow:visible;margin:0 auto;padding:12px 10px 8px;max-width:980px}.tournament-bracket.single{grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:78px;align-items:center}.tournament-bracket-column{gap:14px}.tournament-bracket-column>h5{font-size:8.5px}.tournament-bracket.single .semis:after{right:-40px;width:40px;border-color:#cbd5e1}.tournament-bracket.single .semis:before{content:"";position:absolute;right:-40px;top:24%;bottom:24%;border-right:1px solid #cbd5e1}.tournament-bracket.single .finals:before{content:"";position:absolute;left:-38px;top:50%;width:38px;border-top:1px solid #cbd5e1}.tournament-bracket-match{padding:9px 10px;border-radius:10px}.tournament-bracket-match.preview{border-style:dashed;background:#fbfdff}.tournament-bracket-team{min-height:31px}.tournament-bracket.double{max-width:none;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:14px;overflow-x:auto}.tournament-bracket.double .placement{border-left:1px dashed #d7dee8;padding-left:14px}
@media(max-width:1120px){.tournament-groups-grid{grid-template-columns:1fr}.tournament-format-card{grid-template-columns:1fr}.tournament-seed-editor-grid{grid-template-columns:1fr}.tournament-bracket.single{gap:38px}.tournament-bracket.single .semis:after{right:-20px;width:20px}.tournament-bracket.single .semis:before{right:-20px}.tournament-bracket.single .finals:before{left:-18px;width:18px}}
@media(max-width:760px){.tournament-stage-actions{flex-wrap:wrap}.tournament-stage-btn{flex:1 1 150px}.tournament-group-title,.tournament-matches-head,.tournament-bracket-note{align-items:flex-start;flex-direction:column}.tournament-group-title span,.tournament-matches-head span,.tournament-bracket-note span{text-align:left}.tournament-format-options{grid-template-columns:1fr}.tournament-bracket.single{grid-template-columns:1fr;gap:16px}.tournament-bracket.single .semis:before,.tournament-bracket.single .semis:after,.tournament-bracket.single .finals:before{display:none}.tournament-matrix th,.tournament-matrix td{padding:5px 3px;font-size:7.5px}.tournament-matrix th:nth-child(2){width:28%}.tournament-group-matches{grid-template-columns:1fr}}
/* v25.0.0-dev.15.5.3.3.3 — bracket layout cleanup hotfix */
.tournament-bracket.single-v3{display:grid;gap:24px;max-width:1100px;margin:0 auto;padding:8px 0 6px;overflow:visible}
.single-bracket-main{display:grid;grid-template-columns:minmax(280px,320px) 120px minmax(280px,320px);justify-content:center;align-items:start;column-gap:26px}
.single-bracket-left{display:grid;gap:94px}
.single-bracket-right{padding-top:120px}
.single-bracket-slot{display:grid;gap:10px;min-width:0}
.single-bracket-slot>h5{margin:0;text-align:center;color:#6b7890;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.11em}
.single-bracket-connectors{position:relative;height:388px;width:120px;align-self:start}
.single-bracket-connectors .single-line{position:absolute;display:block;background:#cad5e1;border-radius:999px}
.single-bracket-connectors .single-line.top{left:0;top:94px;width:42px;height:2px}
.single-bracket-connectors .single-line.vert{left:42px;top:94px;width:2px;height:200px}
.single-bracket-connectors .single-line.bot{left:0;top:294px;width:42px;height:2px}
.single-bracket-connectors .single-line.mid{left:42px;top:194px;width:78px;height:2px}
.tournament-bracket.single-v3 .tournament-bracket-match{height:170px;display:flex;flex-direction:column;justify-content:flex-start}
.tournament-bracket.single-v3 .tournament-bracket-meta{min-height:18px;align-items:center}
.tournament-bracket.single-v3 .tournament-bracket-team{min-height:37px}
.tournament-bracket.single-v3 .tournament-bracket-match>.status-chip{margin-top:auto;align-self:flex-start}
.single-bracket-placement-row{display:grid;grid-template-columns:minmax(280px,320px) minmax(280px,320px);justify-content:space-between;gap:30px;padding-top:22px;border-top:1px dashed #dde5ef}
.single-bracket-placement-row .single-bracket-slot:first-child{justify-self:start}
.single-bracket-placement-row .single-bracket-slot:last-child{justify-self:end}
@media(max-width:1080px){.single-bracket-main{grid-template-columns:minmax(260px,1fr) 80px minmax(260px,1fr);column-gap:18px}.single-bracket-right{padding-top:122px}.single-bracket-connectors{width:80px}.single-bracket-connectors .single-line.mid{width:38px}}
@media(max-width:820px){.single-bracket-main{grid-template-columns:1fr;gap:18px}.single-bracket-left{gap:18px}.single-bracket-right{padding-top:0}.single-bracket-connectors{display:none}.single-bracket-placement-row{grid-template-columns:1fr;gap:18px}.single-bracket-placement-row .single-bracket-slot:first-child,.single-bracket-placement-row .single-bracket-slot:last-child{justify-self:stretch}.tournament-bracket.single-v3 .tournament-bracket-match{height:auto;min-height:160px}}

/* v25.0.0-dev.15.5.3.3.4 — uniform playoff cards hotfix */
.tournament-bracket.single-v4{--bracket-card-w:320px;--bracket-gap:92px;display:grid;gap:28px;max-width:824px;margin:0 auto;padding:10px 0 6px;overflow:visible}
.single-bracket-main-v4{display:grid;grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w);grid-template-rows:auto 86px auto;align-items:start;justify-content:center}
.single-bracket-main-v4>.semi-top{grid-column:1;grid-row:1}.single-bracket-main-v4>.semi-bottom{grid-column:1;grid-row:3}.single-bracket-main-v4>.final{grid-column:3;grid-row:1/4;align-self:center}
.single-bracket-slot{width:var(--bracket-card-w);display:grid;gap:8px;min-width:0}
.single-bracket-heading{min-height:18px;display:flex;align-items:baseline;justify-content:center;gap:7px;color:#68768b;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}
.single-bracket-heading span{color:#8794a6;font-size:8px;font-weight:800;letter-spacing:.02em}
.tournament-bracket.single-v4 .bracket-uniform-card{height:148px;width:100%;padding:11px;display:flex;flex-direction:column;gap:6px;justify-content:flex-start;border-radius:11px}
.tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team{min-height:38px;margin-top:0;padding:7px 8px}
.tournament-bracket.single-v4 .bracket-uniform-card>.status-chip{margin-top:auto;align-self:flex-start}
.single-bracket-connectors-v4{grid-column:2;grid-row:1/4;position:relative;align-self:stretch;min-height:436px}
.single-bracket-connectors-v4 .line{position:absolute;display:block;background:#c8d4e1;border-radius:999px}
.single-bracket-connectors-v4 .top{left:0;top:91px;width:38px;height:2px}
.single-bracket-connectors-v4 .bot{left:0;bottom:91px;width:38px;height:2px}
.single-bracket-connectors-v4 .vert{left:38px;top:91px;bottom:91px;width:2px}
.single-bracket-connectors-v4 .mid{left:38px;top:50%;width:54px;height:2px;transform:translateY(-1px)}
.single-bracket-placement-v4{display:grid;grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w);align-items:start;justify-content:center;padding-top:24px;border-top:1px dashed #dde5ef}
.single-bracket-placement-v4>.fifth{grid-column:1}.single-bracket-placement-v4>.third{grid-column:3}.single-bracket-placement-v4>.placement-spacer{grid-column:2}
@media(max-width:940px){.tournament-bracket.single-v4{--bracket-card-w:min(300px,calc((100vw - 150px)/2));--bracket-gap:64px;max-width:none}.single-bracket-connectors-v4 .mid{width:26px}}
@media(max-width:760px){.tournament-bracket.single-v4{--bracket-card-w:100%;display:block}.single-bracket-main-v4,.single-bracket-placement-v4{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:16px}.single-bracket-main-v4>.semi-top,.single-bracket-main-v4>.semi-bottom,.single-bracket-main-v4>.final,.single-bracket-placement-v4>.fifth,.single-bracket-placement-v4>.third{grid-column:1;grid-row:auto;align-self:auto}.single-bracket-connectors-v4,.placement-spacer{display:none}.single-bracket-placement-v4{margin-top:18px;padding-top:18px}.single-bracket-slot{width:100%}.single-bracket-heading{justify-content:flex-start}.tournament-bracket.single-v4 .bracket-uniform-card{height:148px}}

/* v25.0.0-dev.15.5.3.3.5 — restore visual Кроссфит tournament format */
.tournament-crossfit-visual{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:16px;background:linear-gradient(180deg,#fbfcfe 0%,#f7f9fc 100%)}
.cf-format-team-label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:190px;padding:14px;border:1px solid #dbe4ef;border-radius:14px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.035);text-align:center}
.cf-format-team-label span,.cf-format-pair span,.cf-format-stage-box>span,.cf-format-result span,.cf-format-total span{color:#758297;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.cf-format-team-label strong{font-size:12px;line-height:1.35}
.cf-format-lanes{display:grid;gap:10px}
.cf-format-lane{display:grid;grid-template-columns:minmax(145px,.8fr) 24px minmax(260px,1.35fr) 24px minmax(120px,.65fr);gap:8px;align-items:center;padding:10px;border:1px solid #e1e8f0;border-radius:13px;background:#fff}
.cf-format-pair,.cf-format-stage-box,.cf-format-result{min-height:68px;border:1px solid #e3e9f1;border-radius:10px;background:#f9fbfd;padding:9px 10px}
.cf-format-pair,.cf-format-result{display:flex;flex-direction:column;justify-content:center;gap:4px}
.cf-format-pair strong,.cf-format-result strong{font-size:10px}
.cf-format-arrow{color:#a0aec0;font-size:18px;font-weight:800;text-align:center}
.cf-format-stage-box{display:grid;gap:7px}
.cf-format-stages{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cf-format-stages span{display:grid;place-items:center;min-height:28px;border:1px solid #cfe0ff;border-radius:7px;background:#eff6ff;color:#2563eb;font-size:9px;font-weight:950}
.cf-format-merge{grid-column:2;position:relative;display:flex;justify-content:flex-end;padding-top:14px}
.cf-format-merge-line{position:absolute;left:8%;right:24%;top:0;border-top:2px solid #d6dee9}
.cf-format-merge-line:before,.cf-format-merge-line:after{content:"";position:absolute;top:-15px;height:15px;border-left:2px solid #d6dee9}
.cf-format-merge-line:before{left:0}.cf-format-merge-line:after{right:0}
.cf-format-total{width:min(420px,100%);padding:11px 13px;border:1px solid #c8d9f7;border-radius:12px;background:#f2f7ff;box-shadow:0 4px 14px rgba(37,99,235,.06)}
.cf-format-total strong{display:block;margin-top:3px;font-size:11px}.cf-format-total small{display:block;margin-top:3px;color:#77859a;font-size:8px}
@media(max-width:1050px){.tournament-crossfit-visual{grid-template-columns:1fr}.cf-format-team-label{min-height:0}.cf-format-merge{grid-column:1}}
@media(max-width:760px){.cf-format-lane{grid-template-columns:1fr}.cf-format-arrow{transform:rotate(90deg)}.cf-format-merge-line{display:none}.cf-format-merge{padding-top:0}.cf-format-total{width:100%}}
/* v25.0.0-dev.15.5.3.3.6 — playoff status / penalties / winner parity */
.tournament-bracket-match.live{border:2px solid #ef4444;background:#fff8f8}.tournament-bracket-match.live>.status-chip{background:#fff0f0;color:#c92323;border:1px solid #fecaca}
.tournament-bracket-match.done{border:2px solid #36a269;background:#f4fbf6}.tournament-bracket-match.done>.status-chip{background:#eaf8ef;color:#18794e;border:1px solid #b8e4c7}
.tournament-bracket-match.upcoming{border:1px solid #cfdbe8;background:#fff}.tournament-bracket-match.upcoming>.status-chip{background:#f2f4f7;color:#58667a}
.tournament-bracket-team.advance-winner{background:#eaf8ef;border:1px solid #b8e4c7}
.tournament-bracket-penalties{margin-top:2px;padding:5px 7px;border-radius:8px;background:#fff8e8;color:#8a5b00;font-size:8px;font-weight:900;text-align:center}
.alo-tie-decision{margin:10px 0;padding:12px;border:1px solid #f0cf92;border-radius:12px;background:#fff8e8;display:grid;gap:10px}.alo-tie-decision>div:first-child{display:grid;gap:3px}.alo-tie-decision strong{font-size:11px}.alo-tie-decision span{font-size:9px;color:#715f3e;line-height:1.4}.alo-tie-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.alo-tie-actions button{min-height:40px}.alo-tie-actions .danger{background:#ef4444;color:#fff;border:0}
@media(max-width:760px){.alo-tie-actions{grid-template-columns:1fr}}
/* v25.0.0-dev.15.5.3.3.7 — playoff advancement/layout integrity */
.tournament-bracket.single-v4 .bracket-uniform-card{height:176px;min-height:176px;max-height:176px;overflow:hidden}
.tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team{height:38px;min-height:38px;max-height:38px}
.tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.25}
.tournament-bracket.single-v4 .bracket-uniform-card>.status-chip{flex:0 0 auto;max-width:100%;white-space:nowrap}
.tournament-bracket.single-v4 .tournament-bracket-penalties{min-height:22px;height:22px;display:flex;align-items:center;justify-content:center;flex:0 0 22px;margin-top:0}
.tournament-bracket.single-v4 .tournament-bracket-penalties.penalty-spacer{visibility:hidden}
.single-bracket-connectors-v4{min-height:492px}
.single-bracket-connectors-v4 .top{top:101px}.single-bracket-connectors-v4 .bot{bottom:101px}.single-bracket-connectors-v4 .vert{top:101px;bottom:101px}
@media(max-width:760px){.single-bracket-connectors-v4{min-height:0}}
/* v25.0.0-dev.15.5.3.3.8 — playoff reconcile / compact adaptive cards */
.tournament-group-match.live{border:2px solid #ef4444;background:#fff8f8}.tournament-group-match.live .status-chip{background:#fff0f0;color:#c92323;border:1px solid #fecaca}
.tournament-group-match.done{border:2px solid #36a269;background:#f4fbf6}.tournament-group-match.done .status-chip{background:#eaf8ef;color:#18794e;border:1px solid #b8e4c7}
.tournament-group-match.upcoming{border:1px solid #d7dee8;background:#fff}.tournament-group-match.upcoming .status-chip{background:#f2f4f7;color:#58667a;border:1px solid transparent}
.tournament-bracket.single-v4{--bracket-card-w:270px;--bracket-gap:58px;gap:14px;max-width:598px;padding:6px 0 2px}
.single-bracket-main-v4{grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w);grid-template-rows:auto 34px auto}
.single-bracket-slot{gap:5px}.single-bracket-heading{min-height:15px;font-size:8px}.single-bracket-heading span{font-size:7.5px}
.tournament-bracket.single-v4 .bracket-uniform-card{height:auto;min-height:118px;max-height:none;overflow:visible;padding:8px;gap:4px}
.tournament-bracket.single-v4 .bracket-uniform-card.has-penalties{min-height:143px}
.tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team{height:31px;min-height:31px;max-height:31px;padding:5px 7px;font-size:9px}
.tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team b{font-size:10px}
.tournament-bracket.single-v4 .bracket-uniform-card>.status-chip{margin-top:auto;font-size:8px;padding:3px 6px}
.tournament-bracket-penalties{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;margin-top:1px;padding:5px 7px;min-height:24px;height:auto!important;flex:0 0 auto!important;line-height:1.25;text-align:left}
.tournament-bracket-penalties>span{font-size:7px;text-transform:uppercase;letter-spacing:.05em;color:#9a6700}
.tournament-bracket-penalties>strong{min-width:0;font-size:8px;color:#7a4f00;overflow-wrap:anywhere;text-align:right}
.tournament-bracket-penalties.penalty-spacer{display:none!important}
.single-bracket-connectors-v4{min-height:312px}
.single-bracket-connectors-v4 .top{top:72px}.single-bracket-connectors-v4 .bot{bottom:72px}.single-bracket-connectors-v4 .vert{top:72px;bottom:72px}.single-bracket-connectors-v4 .mid{width:34px}
.single-bracket-placement-v4{padding-top:12px;grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w)}
@media(max-width:940px){.tournament-bracket.single-v4{--bracket-card-w:min(260px,calc((100vw - 116px)/2));--bracket-gap:48px;max-width:none}.single-bracket-connectors-v4 .mid{width:24px}}
@media(max-width:760px){.tournament-bracket.single-v4{--bracket-card-w:100%;display:block}.single-bracket-main-v4,.single-bracket-placement-v4{gap:10px}.single-bracket-placement-v4{margin-top:12px;padding-top:12px}.tournament-bracket.single-v4 .bracket-uniform-card,.tournament-bracket.single-v4 .bracket-uniform-card.has-penalties{height:auto;min-height:112px}.single-bracket-connectors-v4{min-height:0}}
/* connector positions scale with adaptive card height */
.single-bracket-connectors-v4 .top{top:23%}.single-bracket-connectors-v4 .bot{bottom:23%}.single-bracket-connectors-v4 .vert{top:23%;bottom:23%}
/* v25.0.0-dev.15.5.3.4 — Competition Operations */
.competition-center-label{align-self:center;padding:6px 11px;border-radius:999px;background:#eef2f7;color:#45536a;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.competition-top-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:14px;align-items:stretch;margin-bottom:14px}
.competition-active-card,.competition-control-card,.competition-section-card,.competition-readiness,.competition-scheme,.competition-data-management{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:var(--shadow);min-width:0}
.competition-section-title,.competition-readiness-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.competition-section-title h3,.competition-readiness-head h3{margin:0;font-size:18px;letter-spacing:-.02em}.competition-section-title p,.competition-readiness-head p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.competition-active-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:#edf2f7;color:#4b596e;font-size:8.5px;font-weight:950;text-transform:uppercase;white-space:nowrap}.competition-active-badge.ok{background:#eaf8ef;color:#14804a}
.competition-select-label{display:grid;gap:6px;margin-top:12px}.competition-select-label>span,.competition-brand-grid label>span,.competition-new-form label>span{font-size:9px;font-weight:900;color:#5e6d82}.competition-select-label>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.competition-select-label select{font-weight:850}
.competition-save-name{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.competition-save-name input{font-size:15px;font-weight:800}.competition-subtitle{margin:14px 0 7px;font-size:13px;font-weight:950}
.competition-brand-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.competition-brand-grid label{display:grid;gap:5px}.competition-brand-grid .wide{grid-column:1/-1}.competition-color-field{display:grid;grid-template-columns:46px minmax(0,1fr);gap:6px}.competition-color-field input[type=color]{padding:3px;height:38px}
.competition-brand-preview{position:relative;display:grid;grid-template-columns:5px minmax(0,1fr);gap:10px;align-items:center;margin-top:10px;padding:11px;border:1px solid #e3e8ef;border-radius:11px;background:linear-gradient(90deg,color-mix(in srgb,var(--preview-primary) 8%,#fff),#fff 34%);overflow:hidden}.competition-brand-accent{height:100%;border-radius:999px;background:var(--preview-primary)}.competition-brand-preview>div:last-child{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:center}.competition-brand-preview img{grid-row:1/4;width:34px;height:34px;object-fit:contain;border-radius:6px}.competition-brand-preview strong{font-size:12px}.competition-brand-preview span{font-size:9px;color:#728097}.competition-brand-preview small{font-size:8.5px;color:var(--preview-secondary)}
.competition-section-card{margin-bottom:14px}.competition-sport-switches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.competition-sport-switch{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px;border:1px solid #e2e7ee;border-radius:11px;background:#fbfcfe;cursor:pointer}.competition-sport-switch input{display:none}.competition-sport-switch .switch-track{position:relative;width:34px;height:19px;border-radius:999px;background:#cbd5e1;transition:.16s}.competition-sport-switch .switch-track i{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.16s}.competition-sport-switch.on .switch-track{background:#2672ed}.competition-sport-switch.on .switch-track i{transform:translateX(15px)}.competition-sport-switch .cc-sport-icon{width:22px;height:22px}.competition-sport-switch b{font-size:11px}.competition-sport-switch small{font-size:8px;color:#7b8798;font-weight:900}.competition-sport-switch.on small{color:#167a46}
.competition-param-list{display:grid;gap:0}.competition-param-row{display:grid;grid-template-columns:minmax(180px,1fr) 140px minmax(260px,1.2fr);gap:12px;align-items:end;padding:13px 2px;border-bottom:1px solid #edf0f4}.competition-param-row:last-child{border-bottom:0}.competition-param-row.disabled{opacity:.48}.competition-param-name{display:flex;align-items:center;gap:9px;align-self:center}.competition-param-name .cc-sport-icon{width:21px;height:21px}.competition-param-name strong{font-size:12px}.competition-param-row label{display:grid;gap:5px}.competition-param-row label>span,.competition-format-mini>span{font-size:9px;font-weight:900;color:#6a778c}.competition-format-mini{display:grid;gap:5px}.competition-format-mini>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.competition-format-mini button{border:1px solid var(--line);background:#fff;padding:9px;border-radius:9px;font-size:9px;font-weight:900}.competition-format-mini button.active{background:#edf4ff;color:#1558d6;border-color:#a7c1f8}.competition-param-note{align-self:center;color:#69778c;font-size:10px}
.competition-data-management{margin-bottom:14px;border-color:#f0d1d1;background:#fffafa}.competition-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.competition-data-grid>div{display:flex;flex-direction:column;min-height:135px;padding:12px;border:1px solid #e3e8ef;border-radius:11px;background:#fff}.competition-data-grid>div.danger{border-color:#f4c9c9;background:#fffafa}.competition-data-grid h4{margin:0 0 6px;font-size:12px}.competition-data-grid p{margin:0 0 11px;color:#66758a;font-size:9.5px;line-height:1.45}.competition-data-grid button{margin-top:auto;width:100%}
.competition-ready-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:11px}.competition-ready-summary>div{padding:10px;border:1px solid #dde4ed;border-radius:11px;background:#fff}.competition-ready-summary small{display:block;color:#718096;font-size:8px}.competition-ready-summary strong{display:block;margin:4px 0 1px;font-size:15px}.competition-ready-summary span{font-size:8px;color:#8290a3}.competition-ready-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.competition-ready-card{padding:11px;border:1px solid #dfe6ef;border-radius:11px;background:#fff}.competition-ready-card-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}.competition-ready-card-head h4{margin:0;font-size:12px}.competition-ready-card-head em{margin-left:auto;padding:3px 7px;border-radius:999px;background:#fff0c9;color:#9a6900;font-size:7.5px;font-style:normal;font-weight:900}.competition-ready-card-head .cc-sport-icon{width:20px;height:20px}.competition-ready-line{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 7px;margin-top:4px;border-radius:8px;font-size:8.5px}.competition-ready-line.ok{background:#effaf3}.competition-ready-line.warn{background:#fff8e8}.competition-ready-line>span{font-weight:950}.competition-ready-line.ok>span{color:#14804a}.competition-ready-line.warn>span{color:#a66d00}.competition-ready-line b{font-weight:800}.competition-ready-line strong{font-size:8.5px}
.competition-scheme{margin-top:14px}.competition-scheme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.competition-scheme-card{padding:13px;border:1px solid #e0e6ee;border-radius:12px;background:#fff}.competition-scheme-card.crossfit{grid-column:1/-1}.competition-scheme-card h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px}.competition-scheme-card h4 .cc-sport-icon{width:23px;height:23px}.competition-scheme-card p{margin:9px 0 0;color:#6b798d;font-size:9.5px}.competition-stage-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.competition-stage-chip,.competition-crossfit-steps span{display:flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #e1e6ed;border-radius:9px;background:#f4f6f9;color:#9aa5b4;font-size:9px;font-weight:950;text-align:center}.competition-stage-chip.done{background:#f0f7ff;color:#5c75a0}.competition-stage-chip.active,.competition-crossfit-steps span.active{border-color:#9dbaff;background:#eaf2ff;color:#1359dc;box-shadow:inset 0 0 0 1px rgba(37,99,235,.06)}.competition-crossfit-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.competition-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}.competition-modal.hidden{display:none!important}.competition-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}.competition-modal-card{position:relative;width:min(760px,100%);max-height:min(84vh,780px);overflow:auto;padding:16px;border-radius:15px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.25)}.competition-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #edf0f4}.competition-modal-head small{font-size:8px;color:#77859a;font-weight:900;text-transform:uppercase}.competition-modal-head h3{margin:2px 0 0;font-size:18px}.competition-modal-close{width:32px;height:32px;border:0;border-radius:50%;background:#f0f2f5;font-size:20px}.competition-modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.competition-new-form{display:grid;gap:13px;padding-top:13px}.competition-new-form>label{display:grid;gap:5px}.competition-new-sports{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.competition-new-sports>div{display:grid;gap:8px;padding:11px;border:1px solid #e2e7ee;border-radius:11px;background:#fafbfd}.competition-new-switch{display:flex!important;align-items:center;gap:7px;font-size:10px}.competition-new-switch input{width:auto}.competition-new-sports small{color:#6d7a8d;font-size:8px}.competition-confirm-text{color:#5e6c80;font-size:11px;line-height:1.5}.competition-modal-card #competitionModalBody>label{display:grid;gap:6px;margin-top:12px}.competition-modal-card #competitionModalBody>label span{font-size:9px;color:#657489}.competition-modal-card #competitionModalBody>label b{font-size:10px}
@media(max-width:1100px){.competition-top-grid{grid-template-columns:1fr}.competition-sport-switches,.competition-data-grid{grid-template-columns:1fr}.competition-param-row{grid-template-columns:1fr 140px minmax(220px,1fr)}}
@media(max-width:760px){.competition-brand-grid,.competition-ready-grid,.competition-ready-summary,.competition-scheme-grid,.competition-new-sports{grid-template-columns:1fr}.competition-scheme-card.crossfit{grid-column:auto}.competition-param-row{grid-template-columns:1fr}.competition-stage-chips,.competition-crossfit-steps{grid-template-columns:1fr}.competition-section-title,.competition-readiness-head{flex-direction:column}.competition-save-name,.competition-select-label>div{grid-template-columns:1fr}}
.roster-incomplete-card{border-color:#f0cc86!important;background:#fffdf8}.roster-completeness-note{margin:0 0 8px;padding:7px 9px;border-radius:8px;background:#fff5dd;color:#956300;font-size:9px;font-weight:900}

/* v25.0.0-dev.15.5.3.4 — exact roster warning parity */
.alo-live-roster.roster-incomplete{border-color:#f0cf96;background:#fff9ee}.alo-live-roster.roster-incomplete>summary{color:#a96708}

/* v25.0.0-dev.15.5.3.4.1 — viewer link hotfix */
.competition-open-viewer{display:inline-flex;align-items:center;justify-content:center;width:max-content;text-decoration:none}

/* v25.0.0-dev.15.5.3.4.1 — Competition UI extended hotfix */
.competition-format-mini>div{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-format-mini button{min-height:40px;padding:9px 10px;line-height:1.15;white-space:normal}
/* Real Viewer hero preview: mirrors viewer/index.html + viewer/styles.css hierarchy */
.competition-viewer-preview{margin-top:11px}.competition-preview-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;min-height:158px;padding:22px 24px;border-radius:19px;color:#fff;overflow:hidden;background:linear-gradient(132deg,var(--preview-primary),#241b23 52%,#101318);box-shadow:0 10px 28px rgba(15,23,42,.14)}.competition-preview-hero:before{content:"";position:absolute;width:300px;height:300px;right:-80px;bottom:-180px;border:48px solid rgba(255,255,255,.075);border-radius:50%}.competition-preview-hero:after{content:"";position:absolute;width:135px;height:135px;right:155px;top:-70px;border:1px solid rgba(255,255,255,.12);border-radius:50%}.competition-preview-copy{position:relative;z-index:1;min-width:0;max-width:78%}.competition-preview-brand-line{display:flex;align-items:flex-start;gap:11px}.competition-preview-brand-line img{width:48px;height:48px;object-fit:contain;border-radius:9px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:5px;flex:0 0 auto}.competition-preview-brand-line>div{min-width:0}.competition-preview-eyebrow{font-size:7px;font-weight:950;letter-spacing:.14em;opacity:.76}.competition-preview-title{display:block;margin:5px 0 8px;font-size:clamp(20px,2.4vw,31px);line-height:1.02;letter-spacing:-.035em;overflow-wrap:anywhere}.competition-preview-hero-text{margin-top:-2px;margin-bottom:9px;font-size:9px;font-weight:700;opacity:.78}.competition-preview-meta{display:grid;grid-template-columns:repeat(2,minmax(120px,max-content));gap:7px 12px;margin-top:8px}.competition-preview-meta-item{display:grid;grid-template-columns:25px minmax(0,1fr);gap:6px;align-items:center}.competition-preview-meta-icon{width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.09)}.competition-preview-meta-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.competition-preview-meta-item b{display:block;margin-bottom:1px;font-size:6px;letter-spacing:.09em;text-transform:uppercase;opacity:.58}.competition-preview-meta-item div>span{display:block;font-size:9px;font-weight:850;overflow-wrap:anywhere}.competition-preview-connection{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 9px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);border-radius:999px;font-size:7px;font-weight:900;white-space:nowrap}.competition-preview-connection i{width:6px;height:6px;border-radius:50%;background:#32d583}
.competition-viewer-preview.theme-v1 .competition-preview-hero{min-height:150px;padding:20px 6px 18px;border:0;border-bottom:3px solid #171717;border-radius:0;background:transparent;color:#171717;box-shadow:none;overflow:visible}.competition-viewer-preview.theme-v1 .competition-preview-hero:before{width:52px;height:6px;left:6px;right:auto;top:auto;bottom:-3px;border:0;border-radius:0;background:var(--preview-primary)}.competition-viewer-preview.theme-v1 .competition-preview-hero:after{display:none}.competition-viewer-preview.theme-v1 .competition-preview-title{font-family:Georgia,"Times New Roman",serif;font-size:31px;color:#111}.competition-viewer-preview.theme-v1 .competition-preview-eyebrow{color:var(--preview-primary);opacity:1}.competition-viewer-preview.theme-v1 .competition-preview-meta-icon,.competition-viewer-preview.theme-v1 .competition-preview-connection{border-color:#deddd7;background:#fff;color:#333}.competition-viewer-preview.theme-v1 .competition-preview-meta-item b{color:#8b8d89;opacity:1}.competition-viewer-preview.theme-v1 .competition-preview-meta-item div>span{color:#1e1f1d}.competition-viewer-preview.theme-v1 .competition-preview-brand-line img{background:#fff;border-color:#deddd7}
.competition-viewer-preview.theme-v2 .competition-preview-hero{min-height:168px;border:1px solid #273746;background:radial-gradient(circle at 82% 10%,rgba(255,58,67,.34),transparent 16rem),linear-gradient(125deg,#0b141d,#111f2c 58%,#1b1118);box-shadow:0 16px 40px rgba(0,0,0,.3)}.competition-viewer-preview.theme-v2 .competition-preview-title{text-transform:uppercase;font-size:32px}.competition-viewer-preview.theme-v2 .competition-preview-meta-icon,.competition-viewer-preview.theme-v2 .competition-preview-connection{background:#101b26;border-color:#304151}
.competition-viewer-preview.theme-v3 .competition-preview-hero{min-height:170px;border:1px solid rgba(178,190,255,.2);border-radius:21px;background:radial-gradient(circle at 78% 10%,rgba(73,217,255,.32),transparent 16rem),radial-gradient(circle at 90% 90%,rgba(255,60,172,.28),transparent 18rem),linear-gradient(135deg,#17183a,#241747 55%,#151b39);box-shadow:0 18px 45px rgba(5,6,24,.34)}.competition-viewer-preview.theme-v3 .competition-preview-eyebrow{color:#76eaff;opacity:1}.competition-viewer-preview.theme-v3 .competition-preview-meta-icon,.competition-viewer-preview.theme-v3 .competition-preview-connection{border-color:rgba(182,196,255,.22);background:rgba(15,16,37,.35)}
.competition-data-grid h4{display:flex;align-items:center;gap:8px}.competition-data-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#f2f5f9;color:#40506a;flex:0 0 auto}.competition-data-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.competition-data-icon.reset{background:#eef5ff;color:#2261c9}.competition-data-icon.restart{background:#eef1f5;color:#34445c}.competition-data-icon.clear{background:#fff0f0;color:#c62828}
.competition-stage-chip,.competition-crossfit-steps span{gap:5px}.competition-stage-chip.done,.competition-crossfit-steps span.done{border-color:#bde3ca;background:#eef9f2;color:#137a45}.competition-stage-chip.active,.competition-crossfit-steps span.active{border-color:#f5a9a4;background:#fff0ef;color:#b42318;box-shadow:inset 0 0 0 1px rgba(217,45,32,.04)}.competition-stage-chip em,.competition-crossfit-steps span em{display:inline-flex;align-items:center;padding:2px 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:6.5px;font-style:normal;font-weight:950;letter-spacing:.04em}.competition-stage-chip.done em,.competition-crossfit-steps span.done em{display:none}
@media(max-width:760px){.competition-preview-hero{min-height:0;padding:18px;align-items:flex-start;flex-direction:column}.competition-preview-copy{max-width:100%}.competition-preview-meta{grid-template-columns:1fr}.competition-preview-title{font-size:24px}.competition-preview-connection{align-self:flex-start}.competition-viewer-preview.theme-v1 .competition-preview-hero{padding:18px 4px}.competition-format-mini>div{grid-template-columns:1fr}}

/* v25.0.0-dev.15.5.3.4.2 — compact Teams & Rosters */
.teams-section-head{margin-bottom:10px}.teams-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:#fff}.teams-filter>span{font-size:10px;font-weight:900;color:#46556d}.teams-filter-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.teams-filter .sport-tab{display:inline-flex;align-items:center;gap:6px}.teams-filter .sport-tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.teams-all-icon{font-size:11px;line-height:1}.teams-disciplines{display:grid;gap:12px}.teams-discipline{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.teams-discipline-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;border:0;border-bottom:1px solid #e7edf4;background:#fff;color:var(--text);text-align:left}.teams-discipline-head:hover{background:#fbfcfe}.teams-discipline-title{display:flex;align-items:center;gap:8px;font-size:15px}.teams-discipline-title svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.teams-discipline-chevron{display:grid;place-items:center;width:24px;height:24px;color:#9aa6b5;opacity:.75;transition:transform .15s ease}.teams-discipline-chevron svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.teams-discipline-chevron.collapsed{transform:rotate(-90deg)}.teams-discipline-body{padding:10px 12px 12px}.teams-groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.teams-group-panel{min-width:0;padding:10px;border:1px solid #dce5ef;border-radius:13px;background:#f8fafc}.teams-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 1px 8px;border-bottom:1px solid #e5ebf2}.teams-group-head strong{font-size:13px}.teams-group-head span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#eef2f7;color:#56667c;font-size:9px;font-weight:900}.teams-group-list{display:grid;gap:8px;padding-top:8px}.teams-crossfit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.teams-compact-card{position:relative;min-width:0;overflow:hidden;border:1px solid #dce4ee;border-radius:11px;background:#fff}.teams-compact-card.roster-incomplete-card{border-color:#efcf93;background:#fffdf8}.teams-team-accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--team,#2563eb)}.teams-team-main{padding:9px 9px 9px 13px}.teams-team-controls{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;gap:7px;align-items:center}.teams-team-controls .team-name{min-width:0;height:36px;padding:7px 9px;font-size:12px;font-weight:750}.teams-color-control{height:36px;display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid #d5deea;border-radius:9px;background:#fff;color:#6b788b;font-size:9px;font-weight:850;white-space:nowrap}.teams-color-dot{width:10px;height:10px;border-radius:999px;background:var(--team);box-shadow:0 0 0 1px rgba(15,23,42,.08)}.teams-color-control input[type=color]{width:31px;height:27px;min-width:31px;padding:2px;border:1px solid #d6dfeb;border-radius:7px;background:#fff}.teams-team-controls .save-team{height:36px;padding:0 11px;font-size:10px}.teams-team-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 1px 7px;color:#7a8799;font-size:8px}.teams-save-state.dirty{color:#a46a05;font-weight:850}.teams-roster-count{font-weight:900}.teams-roster-count.ok{color:#18794e}.teams-roster-count.warn{color:#a46a05}.teams-roster-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid #dae3ee;border-radius:9px;background:#fff;color:#1d293b;font-size:9.5px;font-weight:900;text-align:left}.teams-roster-toggle:hover{background:#f8fafc}.teams-roster-toggle-note{color:#8490a1;font-size:8px;font-weight:750}.teams-roster-body{margin-top:8px;padding:9px;border:1px solid #dce5ef;border-radius:10px;background:#fbfcfe}.teams-roster-table{display:grid;gap:0}.teams-roster-head,.teams-roster-row{display:grid;grid-template-columns:52px minmax(0,1.35fr) minmax(0,1fr);gap:8px;align-items:center}.teams-roster-table.cf .teams-roster-head,.teams-roster-table.cf .teams-roster-row{grid-template-columns:70px 82px minmax(0,1fr)}.teams-roster-head{padding:0 5px 5px;color:#6e7b90;font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.teams-roster-row{min-height:28px;padding:5px;border-top:1px solid #e6ebf2;font-size:9.5px}.teams-roster-row:first-of-type{border-top:0}.teams-roster-empty{padding:9px;color:#7b8798;font-size:9px}.teams-roster-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.teams-roster-actions button{padding:7px 10px;font-size:9.5px}.teams-roster-editor-grid{display:grid;grid-template-columns:55px minmax(0,1.4fr) minmax(0,1fr);gap:5px;align-items:center}.teams-roster-editor-grid.cf{grid-template-columns:70px 82px minmax(0,1fr)}.teams-editor-head{padding:0 4px 2px;color:#6e7b90;font-size:8px;font-weight:950;text-transform:uppercase}.teams-roster-editor-grid input{height:33px;padding:6px 8px;font-size:9.5px}.teams-roster-editor-grid>div,.teams-roster-editor-grid>b{font-size:9px}.teams-compact-card .roster-completeness-note{margin:0 0 7px;padding:6px 8px;font-size:8.5px}.teams-discipline .empty{margin:2px}
@media(max-width:1200px){.teams-team-controls{grid-template-columns:minmax(110px,1fr) auto}.teams-team-controls .save-team{grid-column:1/-1;width:max-content}.teams-roster-head,.teams-roster-row{grid-template-columns:42px minmax(0,1.2fr) minmax(0,1fr)}}
@media(max-width:900px){.teams-groups-grid,.teams-crossfit-grid{grid-template-columns:1fr}.teams-filter{align-items:flex-start;flex-direction:column}.teams-filter-actions{justify-content:flex-start}.teams-team-controls{grid-template-columns:minmax(0,1fr) auto auto}.teams-team-controls .save-team{grid-column:auto}}
@media(max-width:620px){.teams-team-controls{grid-template-columns:1fr auto}.teams-team-controls .team-name{grid-column:1/-1}.teams-team-controls .save-team{grid-column:auto}.teams-roster-head,.teams-roster-row,.teams-roster-editor-grid{grid-template-columns:42px minmax(0,1fr) minmax(90px,.8fr);gap:4px}.teams-roster-toggle-note{display:none}.teams-discipline-body{padding:8px}.teams-group-panel{padding:8px}}

/* v25.0.0-dev.15.5.3.4.3 — Teams card / kit color / detail drawer hotfix */
.teams-team-controls{grid-template-columns:minmax(0,1fr) auto auto;align-items:start}
.teams-team-identity{min-width:0;display:grid;gap:5px}
.teams-team-identity .team-name{width:100%;min-width:0}
.teams-color-mini{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;height:28px;padding:3px 5px 3px 7px;border:1px solid #d9e2ed;border-radius:8px;background:#fff;color:#68778c;font-size:8.5px;font-weight:850;overflow:hidden;white-space:nowrap}
.teams-color-mini .teams-color-dot{width:8px;height:8px;flex:0 0 8px}
.teams-color-mini input[type=color]{display:block!important;width:28px!important;min-width:28px!important;max-width:28px!important;height:22px!important;min-height:22px!important;padding:1px!important;margin:0!important;border:1px solid #d2dce8!important;border-radius:6px!important;background:#fff!important;overflow:hidden;flex:0 0 28px}
.teams-color-mini input[type=color]::-webkit-color-swatch-wrapper{padding:1px}
.teams-color-mini input[type=color]::-webkit-color-swatch{border:0;border-radius:4px}
.teams-color-mini input[type=color]::-moz-color-swatch{border:0;border-radius:4px}
.teams-team-controls .team-card-open,.teams-team-controls .save-team{height:36px;align-self:start;padding:0 11px;font-size:10px;white-space:nowrap}
.teams-compact-card,.teams-team-main,.teams-team-controls,.teams-team-identity{max-width:100%}

.drawer.team-card-mode{width:min(520px,96vw)}
.drawer.team-card-mode .drawer-body{padding:0 16px 18px}
.team-drawer-hero{margin:0 -16px;padding:16px;border-bottom:1px solid #e8edf4;background:#fff}
.team-drawer-kicker{margin-bottom:5px;color:#718096;font-size:10px;font-weight:750}
.team-drawer-title{display:flex;align-items:center;gap:10px;min-width:0}
.team-drawer-title>i{width:12px;height:12px;border-radius:4px;flex:0 0 12px;box-shadow:0 0 0 1px rgba(15,23,42,.08)}
.team-drawer-title>strong{min-width:0;font-size:20px;line-height:1.15;overflow-wrap:anywhere}
.team-drawer-facts{display:flex;align-items:center;gap:9px 14px;flex-wrap:wrap;margin-top:10px;color:#617086;font-size:9.5px}
.team-drawer-facts b{color:#1b2738}
.team-drawer-color{display:inline-block;width:12px;height:12px;margin-left:5px;border-radius:4px;vertical-align:-2px;box-shadow:0 0 0 1px rgba(15,23,42,.12)}
.team-drawer-section{padding:15px 0;border-bottom:1px solid #edf1f6}
.team-drawer-section h4{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px;font-size:12px}
.team-drawer-section h4 span{color:#7b8797;font-size:9px;font-weight:850}
.team-drawer-matches{display:grid;gap:7px}
.team-drawer-match{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #dce5ef;border-radius:10px;background:#fff;color:#1b2738;text-align:left}
.team-drawer-match:hover{background:#f8fafc}
.team-drawer-match.live{border-color:#efb5b5;background:#fff8f8}
.team-drawer-match.done{border-color:#bde3ca;background:#f7fcf8}
.team-drawer-match.future{background:#fff}
.team-drawer-match-main{min-width:0;display:grid;gap:3px}
.team-drawer-match-main strong{font-size:10.5px;overflow-wrap:anywhere}
.team-drawer-match-main span{color:#738096;font-size:8.5px;line-height:1.35}
.team-drawer-match-side{display:grid;grid-template-columns:auto auto 18px;gap:6px;align-items:center;justify-content:end}
.team-drawer-match-side svg{width:16px;height:16px;fill:none;stroke:#6e7c90;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.team-drawer-status{display:inline-flex;align-items:center;padding:4px 6px;border-radius:999px;background:#f1f4f7;color:#68778b;font-size:7.5px;font-weight:900;white-space:nowrap}
.team-drawer-status.live{background:#feecec;color:#b42323}
.team-drawer-status.done{background:#eaf8ef;color:#157347}
.team-drawer-score{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.team-drawer-pen{grid-column:1/-1;color:#68778b;font-size:7.5px;font-weight:800;text-align:right;white-space:nowrap}
.team-drawer-run{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid #dce5ef;border-radius:10px;background:#fff}
.team-drawer-run.live{border-color:#efb5b5;background:#fff8f8}
.team-drawer-run.done{border-color:#bde3ca;background:#f7fcf8}
.team-drawer-run>div{display:grid;gap:3px;min-width:0}
.team-drawer-run>div:last-child{justify-items:end}
.team-drawer-run strong{font-size:10px}
.team-drawer-run span:not(.team-drawer-status){color:#738096;font-size:8.5px}
.team-drawer-run b{font-size:9px;color:#1c293b}
.team-drawer-empty{padding:10px;border:1px dashed #d5dee9;border-radius:9px;color:#7b8798;background:#fbfcfd;font-size:9px}
.drawer.team-card-mode .teams-roster-table{border:1px solid #e3e9f0;border-radius:9px;overflow:hidden}
.drawer.team-card-mode .teams-roster-head{padding:7px 8px;background:#f8fafc}
.drawer.team-card-mode .teams-roster-row{padding:7px 8px;background:#fff}
.drawer.team-card-mode .teams-roster-empty{background:#fff}
.team-drawer-edit{width:100%;margin-top:16px;padding:11px 13px}
@media(max-width:620px){.teams-team-controls{grid-template-columns:minmax(0,1fr) auto}.teams-team-identity{grid-column:1/-1}.teams-team-controls .team-card-open,.teams-team-controls .save-team{grid-column:auto}.team-drawer-match-side{grid-template-columns:auto 18px}.team-drawer-score{grid-row:2;grid-column:1}.team-drawer-status{grid-column:1}.team-drawer-match-side svg{grid-column:2;grid-row:1/3}.team-drawer-pen{grid-column:1}}

/* v25.0.0-dev.15.5.3.5 — Schedule Operations */
.schedule-page-head{align-items:center}.schedule-page-head .primary{flex:0 0 auto}.schedule-filter{margin-bottom:14px}.schedule-filter .sport-tab{display:inline-flex;align-items:center;gap:6px;border-radius:10px;padding:8px 12px}.schedule-filter .sport-tab .cc-sport-icon{width:15px;height:15px;color:currentColor}.schedule-discipline-stack{display:grid;gap:16px}.schedule-discipline{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.schedule-discipline-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #e7edf4}.schedule-discipline-head>div{display:flex;align-items:flex-start;gap:10px;min-width:0}.schedule-discipline-head .cc-sport-icon{width:20px;height:20px;margin-top:1px;color:#1d2939}.schedule-discipline-head h3{margin:0;font-size:17px}.schedule-discipline-head p{margin:3px 0 0;color:#69778d;font-size:10px;line-height:1.4}.schedule-auto-panel{margin:12px 16px 0;padding:13px;border:1px solid #bed1ff;border-radius:13px;background:#f7faff}.schedule-auto-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.schedule-auto-grid label{display:grid;gap:5px}.schedule-auto-grid label>span{font-size:10px;font-weight:900;color:#34445c}.schedule-auto-grid input{min-height:40px}.schedule-only-empty{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:#41516a}.schedule-only-empty input{width:auto}.schedule-venues-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 16px}.schedule-venue-card{min-width:0;border:1px solid #dce4ee;border-radius:14px;background:#f9fbfd;padding:12px}.schedule-venue-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-venue-head>div{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}.schedule-venue-head h4{margin:0;font-size:16px}.schedule-venue-head span{padding:5px 8px;border-radius:999px;background:#eef2f6;color:#65748a;font-size:9px;font-weight:900}.schedule-venue-help{margin:6px 0 10px;color:#78869a;font-size:9px}.schedule-drop-zone{display:grid;gap:8px;min-height:54px}.schedule-match-card{position:relative;display:grid;grid-template-columns:18px 30px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 9px 9px 7px;border:1px solid #dfe6ef;border-radius:12px;background:#fff;transition:border-color .14s ease,box-shadow .14s ease,opacity .14s ease}.schedule-match-card:hover{border-color:#c8d5e5}.schedule-match-card.show{border-color:#e0d4ff;background:#fcfaff}.schedule-match-card.dragging{opacity:.45}.schedule-match-card.drag-over{border-color:#7ba2ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.schedule-drag-handle{color:#a3afbf;font-size:13px;font-weight:900;cursor:grab;user-select:none}.schedule-order{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#f0f4f8;color:#26364e;font-size:10px;font-weight:950}.schedule-match-main{min-width:0}.schedule-match-main>strong{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.25;overflow-wrap:anywhere}.schedule-match-main>span{display:block;margin-top:2px;color:#6c7a90;font-size:8.5px}.schedule-time-row{margin-top:5px}.schedule-time-control{display:inline-flex;align-items:center;gap:6px;padding:3px 7px;border-radius:9px;background:#f5f7fa;color:#3d4d65}.schedule-time-control span{font-size:8px;font-weight:850}.schedule-time-control input{width:94px;min-width:94px;padding:4px 5px;border:0;background:transparent;font-size:10px;font-weight:900;box-shadow:none}.schedule-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;max-width:280px}.schedule-card-actions .compact{padding:6px 8px;border-radius:8px;font-size:9px;white-space:nowrap}.schedule-team-dot{display:inline-block;width:5px;height:14px;border-radius:999px;flex:0 0 auto}.schedule-past-block{margin-top:12px;padding-top:10px;border-top:1px dashed #dce4ee}.schedule-past-block h5{margin:0 0 7px;color:#68778c;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.schedule-past-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;margin-top:5px;border:1px solid #e2e8f0;border-radius:9px;background:#fff}.schedule-past-row.live{border-color:#f1a7a7;background:#fff8f8}.schedule-past-row.done{border-color:#bfe2cb;background:#f6fbf8}.schedule-past-row>div{min-width:0}.schedule-past-row strong{display:block;font-size:9.5px;overflow-wrap:anywhere}.schedule-past-row span:not(.schedule-status){display:block;margin-top:2px;color:#738096;font-size:8px}.schedule-past-empty{color:#8b97a8;font-size:9px}.schedule-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#f1f4f8;color:#66758a;font-size:8px;font-weight:950;white-space:nowrap}.schedule-status.live{background:#ffe9e9;color:#bc2525}.schedule-status.done{background:#eaf8ef;color:#18733d}.schedule-shows{margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.schedule-shows-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-shows-head h3{margin:0;font-size:17px}.schedule-shows-head p{margin:3px 0 0;color:#6f7d91;font-size:10px}.schedule-show-list{display:grid;gap:8px;margin-top:11px}.schedule-show-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid #e0e6ee;border-radius:11px}.schedule-show-row>div strong{display:block;font-size:10px}.schedule-show-row>div span{display:block;margin-top:2px;color:#718096;font-size:8px}.show-badge{padding:5px 8px;border-radius:999px;background:#f1e8ff;color:#6e3ccb;font-size:8px;font-weight:950}.show-match-form{display:grid;gap:12px}.show-match-form .field{display:grid;gap:5px}.show-match-form .field>span{font-size:9px;font-weight:900;color:#5b6980}.show-rosters-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.show-roster-box{padding:10px;border:1px solid #e0e6ee;border-radius:12px;background:#fafbfd}.show-roster-box h4{margin:0 0 8px;font-size:12px}.show-roster-head,.show-roster-row{display:grid;grid-template-columns:58px minmax(0,1.4fr) minmax(0,1fr);gap:6px}.show-roster-head{padding:0 4px 5px;color:#6e7b90;font-size:8px;font-weight:900;text-transform:uppercase}.show-roster-row{margin-top:5px}.show-roster-row input{padding:7px 8px;font-size:9px}.drawer .show-match-form{padding-bottom:20px}
@media(max-width:1180px){.schedule-match-card{grid-template-columns:18px 30px minmax(0,1fr)}.schedule-card-actions{grid-column:3;justify-content:flex-start;max-width:none}.schedule-show-row{grid-template-columns:auto minmax(0,1fr) auto}.schedule-show-row .edit-show,.schedule-show-row .delete-show{grid-row:2}.schedule-show-row .edit-show{grid-column:2}.schedule-show-row .delete-show{grid-column:3}}
@media(max-width:900px){.schedule-venues-grid,.show-rosters-grid,.schedule-auto-grid{grid-template-columns:1fr}.schedule-discipline-head,.schedule-shows-head{align-items:flex-start;flex-direction:column}.schedule-page-head{align-items:flex-start;flex-direction:column}.schedule-match-card{grid-template-columns:18px 28px minmax(0,1fr)}.schedule-card-actions{grid-column:1/-1;padding-left:54px}.schedule-show-row{grid-template-columns:auto minmax(0,1fr)}.schedule-show-row>.schedule-status{grid-column:2}.schedule-show-row .edit-show,.schedule-show-row .delete-show{grid-row:auto;grid-column:auto}}

/* v25.0.0-dev.15.5.3.5.1 — Schedule UI / show-match workflow hotfix */
.schedule-filter{margin-bottom:14px}.schedule-filter .sport-tab{display:inline-flex;align-items:center;gap:6px}.schedule-filter .sport-tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.schedule-page-head{margin-bottom:10px}
.schedule-match-title,.schedule-past-title,.schedule-show-teams{min-width:0}.schedule-team-pair{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}.schedule-team-pair>em{color:#9aa5b4;font-style:normal;font-weight:900}.schedule-team-inline{display:inline-flex;align-items:center;gap:6px;min-width:0}.schedule-team-inline b{overflow-wrap:anywhere}.schedule-team-bar{width:4px;height:15px;border-radius:999px;flex:0 0 auto}
.schedule-time-row{margin-top:6px}.schedule-time-compact{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.schedule-time-chip{height:28px;display:inline-flex;align-items:center;gap:5px;max-width:160px;padding:0 9px;border-radius:9px;background:#f3f6f9;color:#34445c;font-size:9px}.schedule-time-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.schedule-time-chip b{font-size:10px;white-space:nowrap}.schedule-time-chip.empty{color:#68778d}.schedule-time-button{height:28px;padding:0 9px!important;border-radius:8px!important;font-size:8.5px!important;white-space:nowrap}.schedule-time-editor{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:5px 6px;border:1px solid #c9d8f4;border-radius:9px;background:#f7faff;width:max-content;max-width:100%}.schedule-time-editor input[type=time]{width:102px;min-width:102px;height:29px;padding:3px 6px;font-size:9.5px;font-weight:850}.schedule-time-editor .compact{height:29px;padding:0 8px;font-size:8.5px}
.schedule-match-card{padding-top:8px;padding-bottom:8px}.schedule-match-main>span{margin-top:3px}.schedule-card-actions{gap:4px}.schedule-card-actions .compact{padding:5px 7px}
.schedule-past-row .schedule-team-pair{gap:5px}.schedule-past-row .schedule-team-bar{height:13px}.schedule-past-row .schedule-team-inline b{font-size:9.5px}
.schedule-shows{scroll-margin-top:92px}.schedule-show-list{gap:9px}.schedule-show-item{display:grid;gap:8px}.schedule-show-item.editing>.schedule-show-row{border-color:#b9cdf7;background:#f9fbff}.schedule-show-row{grid-template-columns:auto minmax(0,1fr) auto auto;gap:9px;align-items:center}.schedule-show-summary{min-width:0}.schedule-show-summary>span{display:block;margin-top:3px;color:#718096;font-size:8px}.schedule-show-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.schedule-show-actions button{padding:7px 9px;font-size:9px}.schedule-show-actions .show-start{background:#2563eb;color:#fff}.schedule-show-actions button:disabled{opacity:.45;cursor:not-allowed}
.schedule-show-editor{margin-top:9px;padding:12px;border:1px solid #cfdcf0;border-radius:13px;background:#f9fbfe}.schedule-show-editor.draft{border-style:dashed;border-color:#9ab7f6}.schedule-show-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.schedule-show-editor-head>div{display:grid;gap:3px}.schedule-show-editor-head strong{font-size:12px}.schedule-show-editor-head small{font-size:8.5px;color:#6f7d92}.schedule-show-editor .show-badge{width:max-content}.show-match-basics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.show-match-basics .field{min-width:0}.show-match-basics .field input,.show-match-basics .field select{height:36px;padding:6px 8px;font-size:9.5px}.show-match-basics .show-color-field input[type=color]{width:100%;min-width:0;padding:3px}.schedule-show-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.schedule-show-form-footer>span{color:#6e7c91;font-size:8.5px}.schedule-show-form-footer .actions{margin:0}.schedule-show-form-footer button{padding:8px 10px;font-size:9px}
.show-rosters-grid{margin-top:0}.show-roster-box{padding:9px}.show-roster-box h4{font-size:11px}.show-roster-row input{height:31px;padding:5px 7px}
@media(max-width:1180px){.show-match-basics{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-show-row{grid-template-columns:auto minmax(0,1fr) auto}.schedule-show-actions{grid-column:2/4}.schedule-show-form-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.show-match-basics,.show-rosters-grid{grid-template-columns:1fr}.schedule-show-row{grid-template-columns:auto minmax(0,1fr)}.schedule-show-row>.schedule-status{grid-column:2}.schedule-show-actions{grid-column:1/-1;justify-content:flex-start}.schedule-time-editor{width:100%}.schedule-time-compact{align-items:flex-start}.schedule-team-pair{align-items:flex-start}.schedule-show-editor{padding:10px}}

/* v25.0.0-dev.15.5.3.5.2 — compact schedule cards hotfix */
.schedule-match-card{grid-template-columns:14px 27px minmax(0,1fr);gap:7px;align-items:start;padding:8px;border-radius:11px}
.schedule-drag-handle{padding-top:5px;font-size:11px;line-height:1;color:#b0bac7}
.schedule-order{width:27px;height:27px;font-size:9px}
.schedule-match-main{display:grid;gap:0;min-width:0}
.schedule-match-title{min-width:0}
.schedule-match-card .schedule-team-pair,.schedule-past-row .schedule-team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;width:100%;flex-wrap:nowrap}
.schedule-match-card .schedule-team-pair>em,.schedule-past-row .schedule-team-pair>em{font-size:9px;text-align:center}
.schedule-match-card .schedule-team-inline,.schedule-past-row .schedule-team-inline{width:100%;min-width:0;gap:5px}
.schedule-match-card .schedule-team-inline b,.schedule-past-row .schedule-team-inline b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:1.2}
.schedule-team-bar{width:3px;height:14px}
.schedule-match-meta{margin-top:2px;color:#718096;font-size:8px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-match-footer{display:grid;grid-template-columns:1fr;gap:5px;margin-top:5px;padding-top:5px;border-top:1px solid #eef2f6}
.schedule-time-row{margin:0;min-width:0}
.schedule-time-compact{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}
.schedule-time-chip{height:25px;max-width:none;padding:0 7px;border-radius:8px;background:#f2f5f8}
.schedule-time-chip svg{width:12px;height:12px}
.schedule-time-chip b{font-size:11.5px;line-height:1;letter-spacing:-.01em}
.schedule-time-button{height:25px;padding:0 7px!important;border-radius:7px!important;font-size:7.5px!important;font-weight:850!important}
.schedule-time-editor{padding:4px 5px;border-radius:8px;gap:4px}
.schedule-time-editor input[type=time]{width:95px;min-width:95px;height:27px;padding:2px 5px;font-size:10px}
.schedule-time-editor .compact{height:27px;padding:0 7px;font-size:8px}
.schedule-card-actions{display:flex;align-items:center;justify-content:flex-start;gap:4px;flex-wrap:wrap;max-width:none}
.schedule-card-actions .compact{height:25px;padding:0 7px;border-radius:7px;font-size:8px;line-height:1;white-space:nowrap}
.schedule-card-actions .icon-only{width:27px;padding:0;font-size:11px}
.schedule-card-actions .venue-action{font-weight:900}
.schedule-card-actions .swap-action{color:#526178}

.schedule-past-block{margin-top:9px;padding-top:8px}
.schedule-past-block h5{margin-bottom:5px;font-size:8px}
.schedule-past-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;margin-top:5px;border-radius:9px;min-height:48px}
.schedule-past-main{min-width:0}
.schedule-past-main>span{display:block;margin-top:3px;color:#738096;font-size:7.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-past-side{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
.schedule-score-box{display:grid;justify-items:center;gap:0;min-width:44px;padding:4px 7px;border:1px solid #dce4ed;border-radius:8px;background:#fff}
.schedule-score-box b{font-size:13px;line-height:1;color:#172033}
.schedule-score-box small{display:block;margin-top:2px;max-width:180px;color:#65748a;font-size:6.8px;font-weight:800;line-height:1.2;text-align:center;white-space:normal}
.schedule-score-box.cf b{font-size:11px}
.schedule-status{padding:4px 6px;font-size:7.5px}
.schedule-past-row.live .schedule-score-box{border-color:#efb1b1;background:#fffafa}
.schedule-past-row.done .schedule-score-box{border-color:#c2e4cd;background:#fbfefc}

.schedule-drop-zone{gap:6px}.schedule-venue-card{padding:10px}.schedule-venue-help{margin:5px 0 8px;font-size:8px}.schedule-venues-grid{gap:10px;padding:12px 14px 14px}

@media(max-width:1260px){
  .schedule-match-footer{gap:4px}
  .schedule-card-actions .compact{font-size:7.5px;padding:0 6px}
  .schedule-time-button{font-size:7px!important}
}
@media(max-width:900px){
  .schedule-match-card{grid-template-columns:14px 27px minmax(0,1fr)}
  .schedule-card-actions{grid-column:auto;padding-left:0}
  .schedule-time-compact{flex-wrap:wrap}
  .schedule-past-row{grid-template-columns:1fr auto}
}
@media(max-width:560px){
  .schedule-match-card .schedule-team-pair,.schedule-past-row .schedule-team-pair{grid-template-columns:minmax(0,1fr);gap:2px}
  .schedule-match-card .schedule-team-pair>em,.schedule-past-row .schedule-team-pair>em{display:none}
  .schedule-past-row{grid-template-columns:1fr}
  .schedule-past-side{justify-content:flex-start}
  .schedule-score-box small{max-width:240px;text-align:left}
}

/* v25.0.0-dev.15.5.3.5.3 — single-line schedule cards hotfix */
.schedule-match-card.schedule-match-card-inline{
  display:grid;
  grid-template-columns:12px 25px minmax(150px,1fr) auto auto;
  gap:6px;
  align-items:center;
  padding:6px 7px;
  min-height:46px;
  border-radius:10px;
}
.schedule-match-card-inline .schedule-drag-handle{padding:0;font-size:10px;line-height:1;color:#b1bbc8}
.schedule-match-card-inline .schedule-order{width:25px;height:25px;font-size:8.5px}
.schedule-inline-info{min-width:0;display:grid;gap:1px}
.schedule-match-card-inline .schedule-match-title{min-width:0;overflow:hidden}
.schedule-match-card-inline .schedule-team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;align-items:center;width:100%;min-width:0;flex-wrap:nowrap}
.schedule-match-card-inline .schedule-team-inline{display:flex;min-width:0;width:100%;gap:4px}
.schedule-match-card-inline .schedule-team-inline b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1.15}
.schedule-match-card-inline .schedule-team-pair>em{font-size:8px;color:#9aa6b5}
.schedule-match-card-inline .schedule-team-bar{width:3px;height:12px}
.schedule-match-card-inline .schedule-match-meta{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8799;font-size:7px;line-height:1.2}
.schedule-inline-time{min-width:0}
.schedule-match-card-inline .schedule-time-compact{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;white-space:nowrap}
.schedule-match-card-inline .schedule-time-chip{height:24px;min-width:48px;max-width:82px;padding:0 6px;border-radius:7px}
.schedule-match-card-inline .schedule-time-chip svg{width:11px;height:11px}
.schedule-match-card-inline .schedule-time-chip b{font-size:10.5px;line-height:1}
.schedule-match-card-inline .schedule-time-button{height:24px;padding:0 6px!important;border-radius:7px!important;font-size:7px!important;font-weight:850!important;white-space:nowrap}
.schedule-match-card-inline .schedule-time-editor{display:flex;flex-wrap:nowrap;padding:3px 4px;gap:3px}
.schedule-match-card-inline .schedule-time-editor input[type=time]{width:76px;min-width:76px;height:24px;font-size:8px;padding:1px 4px}
.schedule-match-card-inline .schedule-time-editor .compact{height:24px;padding:0 5px;font-size:7px}
.schedule-card-actions-inline{display:flex;align-items:center;justify-content:flex-end;gap:3px;flex-wrap:nowrap;max-width:none;white-space:nowrap}
.schedule-card-actions-inline .compact{height:24px;padding:0 6px;border-radius:7px;font-size:7.2px;line-height:1;white-space:nowrap}
.schedule-card-actions-inline .icon-only{width:24px;min-width:24px;padding:0;font-size:10px}
.schedule-card-actions-inline .venue-action{padding:0 6px;font-weight:900}
.schedule-card-actions-inline .details-action{padding:0 6px}
.schedule-card-actions-inline .swap-action{width:24px;color:#526178}
.schedule-drop-zone{gap:5px}
.schedule-venue-card{padding:9px}
.schedule-venue-help{margin:4px 0 7px;font-size:7.5px}

.schedule-past-block{margin-top:8px;padding-top:7px}
.schedule-past-block h5{margin:0 0 5px;font-size:7.5px}
.schedule-past-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:5px}
.schedule-past-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(52px,auto) auto auto;
  align-items:center;
  gap:5px;
  min-width:0;
  min-height:36px;
  margin:0;
  padding:5px 6px;
  border-radius:8px;
}
.schedule-past-teams{min-width:0;overflow:hidden}
.schedule-past-row .schedule-team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:3px;align-items:center;min-width:0;width:100%}
.schedule-past-row .schedule-team-inline{min-width:0;width:100%;gap:3px}
.schedule-past-row .schedule-team-inline b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.1}
.schedule-past-row .schedule-team-bar{width:2px;height:10px}
.schedule-past-row .schedule-team-pair>em{font-size:7px}
.schedule-past-context{display:block;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8799;font-size:6.7px;line-height:1.1}
.schedule-past-row .schedule-score-box{display:flex;align-items:center;gap:3px;min-width:34px;padding:3px 5px;border-radius:6px}
.schedule-past-row .schedule-score-box b{font-size:10px;line-height:1}
.schedule-past-row .schedule-score-box small{margin:0;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:5.7px;line-height:1}
.schedule-past-row .schedule-status{padding:3px 5px;font-size:6.3px}
.schedule-past-empty{font-size:8px}

@media(max-width:1260px){
  .schedule-venues-grid{grid-template-columns:1fr}
  .schedule-match-card.schedule-match-card-inline{grid-template-columns:12px 25px minmax(180px,1fr) auto auto}
}
@media(max-width:760px){
  .schedule-match-card.schedule-match-card-inline{grid-template-columns:12px 25px minmax(0,1fr);align-items:center}
  .schedule-inline-time{grid-column:3}
  .schedule-card-actions-inline{grid-column:3;justify-content:flex-start;overflow-x:auto;padding-bottom:1px}
  .schedule-past-list{grid-template-columns:1fr}
  .schedule-past-row{grid-template-columns:minmax(0,1fr) auto auto}
  .schedule-past-context{display:none}
}

/* v25.0.0-dev.15.5.3.5.4 — schedule card hierarchy hotfix */
.schedule-match-card.schedule-match-card-v4{display:grid;grid-template-columns:12px 27px minmax(0,1fr) minmax(148px,auto);gap:8px;align-items:center;padding:8px 9px;min-height:72px;border-radius:11px}
.schedule-match-card-v4 .schedule-drag-handle{padding:0;font-size:10px;line-height:1;color:#b1bbc8;align-self:center}
.schedule-match-card-v4 .schedule-order{width:27px;height:27px;font-size:9px}
.schedule-card-v4-info{display:grid;gap:3px;min-width:0}
.schedule-card-v4-teams{min-width:0;overflow:hidden}
.schedule-card-v4-teams .schedule-team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;align-items:center;min-width:0;width:100%}
.schedule-card-v4-teams .schedule-team-inline{display:flex;align-items:center;min-width:0;width:100%;gap:5px}
.schedule-card-v4-teams .schedule-team-inline b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:1.15}
.schedule-card-v4-teams .schedule-team-pair>em{color:#9aa5b4;font-size:8.5px;font-style:normal;font-weight:900}
.schedule-card-v4-teams .schedule-team-bar{width:3px;height:13px}
.schedule-card-v4-stage{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#77849a;font-size:7.8px;line-height:1.2}
.schedule-card-v4-time{min-width:0;margin-top:1px}
.schedule-card-v4-time .schedule-time-compact{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}
.schedule-card-v4-time .schedule-time-chip{height:25px;min-width:55px;max-width:95px;padding:0 7px;border-radius:7px}
.schedule-card-v4-time .schedule-time-chip svg{width:11px;height:11px}
.schedule-card-v4-time .schedule-time-chip b{font-size:10.5px}
.schedule-card-v4-time .schedule-time-button{height:25px;padding:0 7px!important;border-radius:7px!important;font-size:7.5px!important;font-weight:850!important;white-space:nowrap}
.schedule-card-v4-time .schedule-time-editor{display:flex;flex-wrap:nowrap;padding:3px 4px;gap:3px;width:max-content;max-width:100%}
.schedule-card-v4-time .schedule-time-editor input[type=time]{width:80px;min-width:80px;height:25px;font-size:8.5px;padding:1px 4px}
.schedule-card-v4-time .schedule-time-editor .compact{height:25px;padding:0 5px;font-size:7px}
.schedule-card-v4-actions{display:flex;align-content:center;justify-content:flex-end;gap:4px;flex-wrap:wrap;max-width:205px}
.schedule-card-v4-actions .compact{height:25px;padding:0 7px;border-radius:7px;font-size:7.5px;line-height:1;white-space:nowrap}
.schedule-card-v4-actions .icon-only{width:25px;min-width:25px;padding:0;font-size:10px}
.schedule-card-v4-actions .venue-action{font-weight:900}
.schedule-card-v4-actions .swap-action{color:#526178}
.schedule-match-card-v4.cf .schedule-card-v4-teams .schedule-team-inline b{font-size:11px}
.schedule-past-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}
.schedule-past-card{flex:0 1 auto;width:auto;min-width:225px;max-width:350px;padding:6px 7px;border:1px solid #e1e7ee;border-radius:9px;background:#fff;box-shadow:none}
.schedule-past-card.live{border-color:#efb4b4;background:#fffafa}
.schedule-past-card.done{border-color:#bfe2ca;background:#fbfefc}
.schedule-past-card-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;min-width:0}
.schedule-past-card-line .schedule-team-inline{display:flex;align-items:center;min-width:0;gap:4px}
.schedule-past-card-line .schedule-team-inline b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.6px;line-height:1.15}
.schedule-past-card-line .schedule-team-bar{width:2px;height:10px}
.schedule-past-inline-score{font-size:10.5px;line-height:1;white-space:nowrap;color:#172033}
.schedule-past-card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px;min-width:0;color:#758298;font-size:6.8px}
.schedule-past-card-meta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-past-card .schedule-status{flex:0 0 auto;padding:3px 5px;font-size:6.2px}
.schedule-past-penalties{margin-top:4px;padding-top:4px;border-top:1px solid #e8edf3;color:#5c6a7f;font-size:6.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-past-card.cf{min-width:185px;max-width:270px}
.schedule-past-card.cf .schedule-past-card-line{grid-template-columns:minmax(0,1fr) auto}
.schedule-past-block{margin-top:7px;padding-top:7px}
.schedule-past-block h5{margin:0 0 5px;font-size:7.5px}
@media(max-width:1180px){.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 27px minmax(0,1fr) minmax(135px,185px)}.schedule-card-v4-actions{max-width:185px}}
@media(max-width:760px){.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 27px minmax(0,1fr);align-items:start}.schedule-card-v4-actions{grid-column:3;justify-content:flex-start;max-width:none}.schedule-past-card{min-width:min(100%,225px);max-width:100%}}


/* v25.0.0-dev.15.5.3.5.5 — schedule time block and past cards alignment hotfix */
.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 29px minmax(0,1fr) auto;gap:10px;min-height:84px;padding:10px 11px}
.schedule-card-v4-info{gap:5px}
.schedule-card-v4-teams .schedule-team-inline b{font-size:12px}
.schedule-card-v4-stage{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-card-v4-time{margin-top:2px}
.schedule-card-v4-time .schedule-time-compact{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.schedule-card-v4-time .schedule-time-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 10px;border-radius:10px;background:#f3f6f9;max-width:none}
.schedule-card-v4-time .schedule-time-chip svg{width:13px;height:13px;flex:0 0 auto}
.schedule-time-chip-text{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}
.schedule-time-chip-text small{font-size:9px;font-weight:900;letter-spacing:.01em;color:#718096}
.schedule-time-chip-text b{font-size:12px;line-height:1;font-weight:950;color:#22324c}
.schedule-time-chip.empty .schedule-time-chip-text b{font-size:11px;color:#5e6d82}
.schedule-card-v4-time .schedule-time-button{height:32px;padding:0 10px!important;border-radius:9px!important;font-size:8.5px!important;font-weight:850!important;white-space:nowrap}
.schedule-card-v4-time .schedule-time-editor{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 6px;border:1px solid #c9d8f4;border-radius:10px;background:#f7faff}
.schedule-card-v4-time .schedule-time-editor input[type=time]{width:96px;min-width:96px;height:30px;padding:2px 7px;font-size:10px;font-weight:900}
.schedule-card-v4-time .schedule-time-editor .compact{height:30px;padding:0 8px;font-size:8px}
.schedule-card-v4-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:330px}
.schedule-card-v4-actions .compact{height:30px;padding:0 10px;border-radius:9px;font-size:8.5px;line-height:1;white-space:nowrap}
.schedule-card-v4-actions .icon-only{width:30px;min-width:30px;padding:0;font-size:12px}
.schedule-past-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
.schedule-past-card{width:100%;min-width:0;max-width:none;min-height:96px;padding:10px 12px;display:grid;gap:8px;align-content:start;border-radius:12px}
.schedule-past-card-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;justify-items:center;gap:8px;min-width:0}
.schedule-past-card-line .schedule-team-inline{display:flex;align-items:center;justify-content:center;min-width:0;gap:5px;width:100%}
.schedule-past-card-line .schedule-team-inline b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:1.2;text-align:center}
.schedule-past-card-line .schedule-team-bar{width:3px;height:12px}
.schedule-past-inline-score{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:4px 8px;border-radius:999px;background:#f3f6fa;color:#24344e;font-size:12px;font-weight:950;line-height:1}
.schedule-past-card-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-items:center;justify-items:center;color:#718096;font-size:8.4px;text-align:center}
.schedule-past-card-meta-grid>span{min-width:0}
.schedule-past-card-meta-grid .schedule-status{padding:4px 8px;font-size:7px}
.schedule-past-penalties{text-align:center;color:#5f6e82;font-size:8.6px;line-height:1.35}
.schedule-past-card.cf .schedule-past-card-line{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:1180px){.schedule-card-v4-actions{max-width:250px}}
@media(max-width:960px){.schedule-past-list{grid-template-columns:1fr}.schedule-card-v4-time .schedule-time-compact{align-items:flex-start}}
@media(max-width:760px){.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 29px minmax(0,1fr)}.schedule-card-v4-actions{grid-column:3;justify-content:flex-start;max-width:none}.schedule-card-v4-time .schedule-time-button{width:auto}.schedule-past-card-meta-grid{grid-template-columns:1fr}}


/* v25.0.0-dev.15.5.3.5.6 — schedule card readability and structured past-cards hotfix */
.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 32px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:10px 12px}
.schedule-match-card-v4 .schedule-order{width:32px;height:32px;font-size:10px}
.schedule-card-v4-info{display:grid;gap:4px;min-width:0}
.schedule-card-v4-teams{overflow:visible}
.schedule-card-v4-teams .schedule-team-pair{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;width:100%}
.schedule-card-v4-teams .schedule-team-inline{flex:1 1 0;min-width:0;gap:6px}
.schedule-card-v4-teams .schedule-team-inline b{overflow:visible;text-overflow:clip;white-space:nowrap;font-size:13px;line-height:1.18;font-weight:900}
.schedule-card-v4-teams .schedule-team-inline:first-child{justify-content:flex-start}.schedule-card-v4-teams .schedule-team-inline:last-child{justify-content:flex-start}
.schedule-card-v4-teams .schedule-team-pair>em{flex:0 0 auto;font-size:11px;color:#8d99ab;font-weight:900}
.schedule-card-v4-stage{font-size:9px;line-height:1.2;color:#748297;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-card-v4-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.schedule-card-v4-time{margin-top:0;min-width:0}
.schedule-card-v4-time .schedule-time-compact{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.schedule-card-v4-time .schedule-time-chip{min-height:30px;padding:0 10px;border-radius:10px;gap:7px;flex:0 0 auto}
.schedule-card-v4-time .schedule-time-chip svg{width:13px;height:13px}
.schedule-time-chip-text{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.schedule-time-chip-text small{font-size:9px;font-weight:900;color:#718096}.schedule-time-chip-text b{font-size:12px;font-weight:950;color:#22324c}
.schedule-card-v4-time .schedule-time-button{height:30px;padding:0 10px!important;border-radius:9px!important;font-size:8.2px!important;white-space:nowrap}
.schedule-card-v4-time .schedule-time-editor{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 6px;border-radius:10px}
.schedule-card-v4-time .schedule-time-editor input[type=time]{width:96px;min-width:96px;height:30px;font-size:10px}
.schedule-card-v4-time .schedule-time-editor .compact{height:30px;padding:0 8px;font-size:8px}
.schedule-card-v4-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:310px}
.schedule-card-v4-actions .compact{height:30px;padding:0 10px;border-radius:9px;font-size:8.2px;line-height:1;white-space:nowrap}
.schedule-card-v4-actions .icon-only{width:30px;min-width:30px;padding:0;font-size:12px}
.schedule-card-v4-actions .venue-action,.schedule-card-v4-actions .details-action,.schedule-card-v4-actions .swap-action{font-weight:900}
.schedule-past-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:start}
.schedule-past-card{width:100%;min-width:0;max-width:none;min-height:0;padding:10px 12px 9px;display:grid;gap:6px;align-content:start;border-radius:12px}
.schedule-past-card-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}
.schedule-past-card-line .schedule-team-inline{display:flex;align-items:center;justify-content:center;min-width:0;gap:5px;width:100%}
.schedule-past-card-line .schedule-team-inline b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.15;text-align:center}
.schedule-past-inline-score{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:4px 10px;border-radius:999px;background:#f3f6fa;color:#24344e;font-size:12px;font-weight:950;line-height:1}
.schedule-past-stage-line{text-align:center;color:#708097;font-size:8.3px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-past-footer{display:grid;grid-template-columns:repeat(2,max-content) auto;align-items:center;justify-content:center;gap:6px 8px}
.schedule-past-meta-chip{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 9px;border-radius:999px;background:#f4f7fb;color:#516178;font-size:7.8px;font-weight:800;white-space:nowrap}
.schedule-past-footer .schedule-status{justify-self:end;padding:4px 8px;font-size:7px}
.schedule-past-penalties{text-align:center;color:#5f6e82;font-size:8px;line-height:1.3;margin-top:1px}
.schedule-past-card.cf .schedule-past-card-line{grid-template-columns:minmax(0,1fr) auto}
.schedule-past-card.cf .schedule-past-footer{grid-template-columns:repeat(2,max-content) auto}
@media(max-width:1260px){.schedule-card-v4-teams .schedule-team-inline b{font-size:12px}.schedule-card-v4-actions{max-width:280px}.schedule-card-v4-actions .compact{font-size:7.7px;padding:0 8px}}
@media(max-width:1080px){.schedule-match-card.schedule-match-card-v4{grid-template-columns:12px 32px minmax(0,1fr)}.schedule-card-v4-actions{grid-column:3;justify-content:flex-start;max-width:none}.schedule-card-v4-bottom{flex-wrap:wrap;justify-content:flex-start}.schedule-card-v4-time .schedule-time-compact{flex-wrap:wrap}.schedule-past-list{grid-template-columns:1fr}}
@media(max-width:760px){.schedule-card-v4-teams .schedule-team-pair{flex-wrap:wrap;row-gap:2px}.schedule-card-v4-teams .schedule-team-inline{flex:1 1 100%}.schedule-card-v4-teams .schedule-team-pair>em{display:none}.schedule-card-v4-teams .schedule-team-inline b{white-space:normal}.schedule-past-footer{grid-template-columns:1fr;justify-items:center}}


/* v25.0.0-dev.15.5.3.5.7 — isolated schedule v7 layout fix */
.schedule-match-card.schedule-match-card-v7{container-type:inline-size;display:grid;grid-template-columns:14px 32px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;min-height:0;border-radius:12px}
.schedule-match-card-v7 .schedule-drag-handle{align-self:center;color:#aab5c3;font-size:10px;line-height:1}
.schedule-match-card-v7 .schedule-order{width:32px;height:32px;font-size:10px}
.schedule-card-v7-content{display:grid;gap:4px;min-width:0;width:100%}
.schedule-card-v7-teams{min-width:0;width:100%}
.schedule-card-v7-teams .schedule-team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0}
.schedule-card-v7-teams .schedule-team-inline{display:flex;align-items:center;gap:6px;min-width:0;width:100%}
.schedule-card-v7-teams .schedule-team-inline b{display:block;min-width:0;white-space:nowrap;overflow:visible;text-overflow:clip;font-size:13px;line-height:1.15;font-weight:950;letter-spacing:-.01em}
.schedule-card-v7-teams .schedule-team-pair>em{font-style:normal;color:#8f9bad;font-size:10px;font-weight:900;flex:0 0 auto}
.schedule-card-v7-teams .schedule-team-bar{width:3px;height:14px;flex:0 0 auto}
.schedule-card-v7-teams.single-team .schedule-team-inline{width:auto}.schedule-card-v7-teams.single-team .schedule-team-inline b{font-size:12.5px}
.schedule-card-v7-stage{color:#758399;font-size:8.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-card-v7-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;min-width:0;margin-top:2px}
.schedule-card-v7-time{flex:0 1 auto;min-width:0}
.schedule-card-v7-time .schedule-time-compact{display:flex;align-items:center;gap:7px;flex-wrap:nowrap}
.schedule-card-v7-time .schedule-time-chip{height:30px;min-width:0;max-width:none;padding:0 9px;border-radius:9px;gap:6px;flex:0 0 auto}
.schedule-card-v7-time .schedule-time-chip svg{width:12px;height:12px}.schedule-card-v7-time .schedule-time-chip-text{gap:5px}.schedule-card-v7-time .schedule-time-chip-text small{font-size:8.2px}.schedule-card-v7-time .schedule-time-chip-text b{font-size:11.5px}
.schedule-card-v7-time .schedule-time-button{height:30px;padding:0 9px!important;border-radius:8px!important;font-size:8px!important;font-weight:850!important;white-space:nowrap}
.schedule-card-v7-time .schedule-time-editor{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:4px 5px;border-radius:9px}.schedule-card-v7-time .schedule-time-editor input[type=time]{width:92px;min-width:92px;height:29px;font-size:9.5px}.schedule-card-v7-time .schedule-time-editor .compact{height:29px;padding:0 7px;font-size:7.8px}
.schedule-card-v7-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:1 1 280px;flex-wrap:wrap;min-width:0}
.schedule-card-v7-actions .compact{height:30px;padding:0 9px;border-radius:8px;font-size:8px;line-height:1;white-space:nowrap}
.schedule-card-v7-actions .icon-only{width:30px;min-width:30px;padding:0;font-size:11px}
.schedule-card-v7-actions .venue-action,.schedule-card-v7-actions .details-action,.schedule-card-v7-actions .swap-action{font-weight:900}
/* keep current/finished cards dense: no inherited minimum height / stretching */
.schedule-past-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-items:start!important}
.schedule-past-card{height:auto!important;min-height:0!important;padding:8px 10px!important;gap:5px!important;align-self:start!important;align-content:start!important}
.schedule-past-card-line .schedule-team-inline b{font-size:10px!important}
.schedule-past-inline-score{min-width:46px!important;padding:4px 8px!important;font-size:11px!important}
.schedule-past-stage-line{font-size:7.8px!important;line-height:1.15!important;margin:0!important}
.schedule-past-footer{gap:5px 6px!important}.schedule-past-meta-chip{height:22px!important;padding:0 7px!important;font-size:7.2px!important}.schedule-past-footer .schedule-status{padding:3px 7px!important;font-size:6.7px!important}
.schedule-past-penalties{font-size:7.5px!important;line-height:1.2!important;margin:0!important;padding-top:2px!important}
@container (max-width:720px){.schedule-card-v7-teams .schedule-team-inline b{font-size:11.5px}.schedule-card-v7-actions{flex-basis:240px}.schedule-card-v7-actions .compact{height:28px;padding:0 7px;font-size:7.4px}.schedule-card-v7-actions .icon-only{width:28px;min-width:28px}}
@container (max-width:600px){.schedule-card-v7-teams .schedule-team-inline b{font-size:10.5px}.schedule-card-v7-bottom{align-items:flex-start}.schedule-card-v7-actions{flex:1 1 100%;justify-content:flex-start}.schedule-card-v7-time .schedule-time-chip,.schedule-card-v7-time .schedule-time-button{height:28px}}
@container (max-width:500px){.schedule-card-v7-teams .schedule-team-inline b{font-size:9.2px}.schedule-card-v7-teams .schedule-team-pair{gap:5px}.schedule-card-v7-actions .compact{font-size:7px;padding:0 6px}.schedule-card-v7-stage{font-size:7.6px}}
@media(max-width:900px){.schedule-past-list{grid-template-columns:1fr}}
@media(max-width:620px){.schedule-card-v7-teams .schedule-team-pair{grid-template-columns:1fr}.schedule-card-v7-teams .schedule-team-pair>em{display:none}.schedule-card-v7-teams .schedule-team-inline b{white-space:normal;font-size:11px}.schedule-past-footer{grid-template-columns:1fr!important;justify-items:center}}


/* v25.0.0-dev.15.5.3.5.8 — future schedule team names closer together */
.schedule-card-v7-teams .schedule-team-pair{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;flex-wrap:nowrap!important;width:100%!important;min-width:0!important}
.schedule-card-v7-teams .schedule-team-inline{display:inline-flex!important;align-items:center!important;gap:6px!important;min-width:0!important;flex:0 1 auto!important;width:auto!important;max-width:none!important}
.schedule-card-v7-teams .schedule-team-inline b{display:block!important;min-width:0!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.schedule-card-v7-teams .schedule-team-pair>em{margin:0!important;flex:0 0 auto!important}
.schedule-card-v7-teams.single-team .schedule-team-inline{width:auto!important;flex:0 1 auto!important}
@container (max-width:720px){.schedule-card-v7-teams .schedule-team-pair{gap:6px!important}}
@container (max-width:600px){.schedule-card-v7-teams .schedule-team-pair{gap:5px!important}}


/* v25.0.0-dev.15.5.3.6 — unified Results + Protocols */
.results-finished,.results-personal,.results-crossfit,.results-cf-protocols{margin-top:14px}.results-match-list{display:grid;gap:8px}.results-match-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}.results-match-main{min-width:0}.results-match-scoreline{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.results-match-scoreline strong{font-size:12px;line-height:1.2}.results-match-scoreline>b{font-size:12px;font-weight:950;font-variant-numeric:tabular-nums;white-space:nowrap}.results-match-meta{margin-top:3px;color:var(--muted);font-size:8.5px}.results-match-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.results-match-actions button{height:30px;padding:0 10px;font-size:8px}.results-finished-pill{display:inline-flex;align-items:center;height:26px;padding:0 9px;border-radius:999px;background:#eef2f6;color:#475467;font-size:7.5px;font-weight:950;letter-spacing:.03em}.results-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.results-stat-card,.results-cf-rating{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;min-width:0}.results-stat-card h3,.results-cf-rating h3{margin:0 0 8px;font-size:11px}.results-stat-head,.results-stat-row,.results-athlete-head,.results-athlete-row{display:grid;grid-template-columns:34px minmax(0,1.2fr) minmax(0,1fr) 80px;align-items:center;gap:8px;min-height:28px;padding:0 4px;border-bottom:1px solid #edf1f6;font-size:8.2px}.results-stat-head,.results-athlete-head{color:#667085;font-weight:900;font-size:7.5px}.results-stat-row:last-child,.results-athlete-row:last-child{border-bottom:0}.results-stat-empty{padding:12px 4px;color:var(--muted);font-size:8.5px}.results-team-with-color{display:inline-flex;align-items:center;gap:6px;min-width:0}.results-team-with-color i,.results-cf-team-title i{width:6px;height:14px;border-radius:999px;flex:0 0 auto}.results-cf-rating{margin-bottom:10px}.results-cf-head,.results-cf-row{display:grid;grid-template-columns:34px minmax(0,1.4fr) minmax(80px,.7fr) minmax(80px,.7fr) minmax(80px,.7fr);align-items:center;gap:8px;min-height:30px;padding:0 4px;border-bottom:1px solid #edf1f6;font-size:8.4px}.results-cf-head{color:#667085;font-weight:900;font-size:7.5px}.results-cf-row:last-child{border-bottom:0}.results-cf-protocol-list{display:grid;gap:9px}.results-cf-protocol-team{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px}.results-cf-team-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.results-cf-team-title strong{font-size:11px}.results-cf-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.results-cf-protocol-pair{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 9px;border:1px solid #e8edf4;border-radius:9px;background:#f9fbfd}.results-cf-protocol-pair>div:first-child{display:grid;gap:2px}.results-cf-protocol-pair>div:first-child strong{font-size:9px}.results-cf-protocol-pair>div:first-child span{color:var(--muted);font-size:7.5px}.results-cf-protocol-actions{display:flex;gap:6px;align-items:center}.results-cf-protocol-actions button{height:29px;padding:0 9px;font-size:7.5px}.results-cf-protocol-pair.waiting{opacity:.72}.results-cf-protocol-pair button:disabled{opacity:.48;cursor:not-allowed}.results-personal .section-head,.results-crossfit .section-head,.results-cf-protocols .section-head,.results-finished .section-head{margin-bottom:7px}
@media(max-width:1000px){.results-match-row{grid-template-columns:1fr}.results-match-actions{justify-content:flex-start}.results-stats-grid,.results-cf-pairs{grid-template-columns:1fr}}
@media(max-width:680px){.results-stat-head,.results-stat-row,.results-athlete-head,.results-athlete-row{grid-template-columns:28px minmax(0,1fr) 70px}.results-stat-head span:nth-child(3),.results-stat-row span:nth-child(3),.results-athlete-head span:nth-child(3),.results-athlete-row span:nth-child(3){display:none}.results-cf-head,.results-cf-row{grid-template-columns:28px minmax(0,1fr) 60px}.results-cf-head span:nth-child(3),.results-cf-head span:nth-child(4),.results-cf-row span:nth-child(3),.results-cf-row span:nth-child(4){display:none}.results-cf-protocol-pair{grid-template-columns:1fr}.results-cf-protocol-actions{justify-content:flex-start}}


/* v25.0.0-dev.15.5.3.6.1 — Results filters / Кроссфит chronology / compact statistics */
.results-filter{margin:12px 0 14px}.results-filter .sport-tab{display:inline-flex;align-items:center;gap:6px}.results-filter .sport-tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.results-crossfit-summary-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start}
.results-crossfit-summary-grid .results-stat-card,.results-crossfit-summary-grid .results-cf-rating{margin:0;min-width:0;height:100%}
.results-cf-rating.compact .results-cf-head,.results-cf-rating.compact .results-cf-row{grid-template-columns:24px minmax(0,1.25fr) 42px 42px 52px;gap:5px;min-height:27px;font-size:7.6px}
.results-cf-rating.compact .results-cf-head{font-size:6.8px}.results-cf-rating.compact .results-team-with-color{gap:4px}.results-cf-rating.compact .results-team-with-color i{width:5px;height:12px}.results-cf-rating.compact .results-team-with-color strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.results-stat-card.crossfit.compact .results-athlete-head,.results-stat-card.crossfit.compact .results-athlete-row{grid-template-columns:24px minmax(0,1.2fr) minmax(0,.85fr) 52px;gap:5px;min-height:27px;font-size:7.6px}.results-stat-card.crossfit.compact .results-athlete-head{font-size:6.8px}.results-stat-card.crossfit.compact .results-team-with-color{gap:4px}.results-stat-card.crossfit.compact .results-team-with-color i{width:5px;height:12px}
.results-cf-protocol-list.chronology{display:grid;gap:7px}.results-cf-protocol-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.results-cf-protocol-row.waiting{opacity:.72}.results-cf-protocol-main{display:grid;gap:3px;min-width:0}.results-cf-protocol-main .results-team-with-color strong{font-size:10px}.results-cf-protocol-meta{color:var(--muted);font-size:7.5px;line-height:1.25}.results-cf-protocol-row .results-cf-protocol-actions{display:flex;gap:6px;align-items:center}.results-cf-protocol-row .results-cf-protocol-actions button{height:29px;padding:0 9px;font-size:7.5px}
@media(max-width:1180px){.results-crossfit-summary-grid{grid-template-columns:1fr 1fr}.results-crossfit-summary-grid .results-cf-rating{grid-column:1/-1}}
@media(max-width:760px){.results-crossfit-summary-grid{grid-template-columns:1fr}.results-crossfit-summary-grid .results-cf-rating{grid-column:auto}.results-cf-protocol-row{grid-template-columns:1fr}.results-cf-protocol-row .results-cf-protocol-actions{justify-content:flex-start}}

/* v25.0.0-dev.15.5.3.7 — Admin IA / Broadcast / Archive */
.layout{grid-template-columns:220px minmax(0,1fr)}
.sidebar{gap:4px}
.nav{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:42px;padding:9px 10px}
.nav-icon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:#718096}
.nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav.active .nav-icon{color:#fff}
.nav-live-count,.nav-warning-count{display:inline-flex;min-width:22px;height:22px;padding:0 6px;align-items:center;justify-content:center;border-radius:999px;font-size:9px;font-weight:950;line-height:1}
.nav-warning-count{background:#fff0df;color:#a65a00;border:1px solid #ffd9a6}
.nav-warning-count.warning{background:#fff0df;color:#a65a00;border-color:#ffd9a6}
.nav-warning-count.critical{background:#ffe9ea;color:#b4232d;border-color:#ffc3c8;animation:navWarnPulse 1.8s ease-in-out infinite}
.nav-warning-count.zero{background:#eef8f1;color:#287449;border-color:#d4eadb;animation:none}
@keyframes navWarnPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{box-shadow:0 0 0 4px rgba(220,38,38,.09)}}

/* Broadcast */
.broadcast-status-row{display:flex;align-items:stretch;gap:10px;margin-bottom:12px}
.broadcast-status-card{flex:1;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.broadcast-status-card strong{font-size:13px}.broadcast-status-card span{font-size:10px;color:var(--muted)}
.broadcast-status-card.ok{border-color:#bfe5ce;background:#f4fbf7}.broadcast-status-card.warn{border-color:#f2d9a7;background:#fffbf1}.broadcast-status-card.bad{border-color:#f0bcbc;background:#fff6f6}
.broadcast-viewer-link{display:flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
.broadcast-config-card,.broadcast-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow)}
.broadcast-config-grid{display:grid;grid-template-columns:1fr 1fr 1fr minmax(220px,1.4fr);gap:9px;margin-top:10px}
.broadcast-config-grid label>span{display:block;margin:0 0 5px;font-size:9px;font-weight:900;color:var(--muted)}
.broadcast-current-url{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:7px;align-items:center;margin-top:10px;padding:8px;border:1px solid #dce5f0;border-radius:11px;background:#f8fafc}
.broadcast-current-url>span{font-size:9px;font-weight:900;color:var(--muted);white-space:nowrap}
.broadcast-current-url code,.broadcast-endpoint-row code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:#34445c}
.broadcast-error{margin-top:8px;padding:8px 10px;border-radius:9px;background:#fff0f0;color:#a12323;font-size:10px;font-weight:800}
.broadcast-preview-empty{margin-top:10px;padding:16px;border:1px dashed #cdd8e6;border-radius:11px;color:var(--muted);font-size:10px;text-align:center}
.broadcast-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:10px;margin-top:10px;align-items:start}
.broadcast-friendly{border:1px solid #dce5ef;border-radius:12px;background:#fff;padding:12px;display:grid;gap:9px}
.broadcast-friendly-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.broadcast-friendly-head strong{font-size:12px}.broadcast-state{padding:4px 7px;border-radius:999px;background:#eef2f6;font-size:8px;font-weight:950}.broadcast-state.live{background:#ffe8e8;color:#b5232c}.broadcast-state.idle{color:#65748a}
.broadcast-score-preview{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}.broadcast-score-preview>span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:900}.broadcast-score-preview>span:last-child{justify-content:flex-end}.broadcast-score-preview i,.broadcast-live-line i{width:4px;height:16px;border-radius:999px;display:inline-block}.broadcast-score-preview>strong{font-size:20px}.broadcast-score-preview small{font-size:8px;color:var(--muted)}
.broadcast-preview-meta{text-align:center;color:var(--muted);font-size:9px}.broadcast-next{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding-top:7px;border-top:1px solid #edf1f5;font-size:9px}.broadcast-next b{color:#536278}.broadcast-live-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #edf1f5;font-size:9px}.broadcast-live-line span{display:flex;align-items:center;gap:5px}.broadcast-live-line strong{font-size:13px}.broadcast-live-line small{color:var(--muted)}.broadcast-empty{color:var(--muted);font-size:10px;padding:8px 0}
.broadcast-raw-details{border:1px solid #dce5ef;border-radius:12px;background:#fbfcfe;overflow:hidden}.broadcast-raw-details summary{padding:9px 11px;font-size:9px;font-weight:900;cursor:pointer}.broadcast-raw{margin:0;padding:10px;max-height:360px;overflow:auto;background:#111827;color:#d9e4f5;font:500 8.5px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.broadcast-raw.standalone{border-radius:12px;min-height:150px}
.broadcast-endpoint-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.broadcast-endpoint-card{border:1px solid #dce5ef;border-radius:12px;padding:10px;background:#fbfcfe;min-width:0}.broadcast-endpoint-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.broadcast-endpoint-title .cc-sport-icon{width:22px;height:22px}.broadcast-endpoint-title strong{display:block;font-size:11px}.broadcast-endpoint-title small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.broadcast-endpoint-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:6px;align-items:center;padding:5px 0;border-top:1px solid #e7edf4}.broadcast-endpoint-row>span{font-size:8px;font-weight:950;color:#5e6c80}.broadcast-endpoint-row .compact{height:27px;padding:0 8px;font-size:7.5px}
.broadcast-code-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.broadcast-code-grid article{border:1px solid #dce5ef;border-radius:12px;overflow:hidden;background:#fff;min-width:0}.broadcast-code-grid article>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px}.broadcast-code-grid strong{font-size:10px}.broadcast-code-grid pre{margin:0;padding:10px;min-height:94px;overflow:auto;background:#f8fafc;border-top:1px solid #edf1f5;font:500 8px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:#35465e;white-space:pre-wrap;word-break:break-all}

/* Archive */
.archive-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;margin-bottom:12px;box-shadow:var(--shadow)}
.archive-count{display:inline-flex;min-width:28px;height:28px;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;background:#eef2f7;color:#47566d;font-size:9px;font-weight:950}
.archive-competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.archive-competition-card{border:1px solid #dce4ef;border-radius:12px;padding:11px;background:#fbfcfe;min-width:0}.archive-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.archive-card-head strong{display:block;font-size:12px}.archive-card-head div>span{display:block;margin-top:3px;color:var(--muted);font-size:8.5px}.archive-card-head>span{padding:4px 7px;border-radius:999px;background:#f1f3f6;color:#657286;font-size:7px;font-weight:900}.archive-card-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;padding:8px 0;border-top:1px solid #e8edf4;border-bottom:1px solid #e8edf4}.archive-card-stats span{font-size:8.5px;color:#65748a}.archive-card-stats b{font-size:11px;color:#21314a}.archive-card-date{margin-top:7px;color:#8190a4;font-size:8px}.archive-record-list{display:grid;gap:6px}.archive-record-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid #dce4ef;border-radius:10px;background:#fff;padding:9px 10px;text-align:left;color:inherit}.archive-record-row:hover{background:#f7f9fc}.archive-record-row span strong{display:block;font-size:10px}.archive-record-row span small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.archive-record-row em{font-style:normal;color:#66758b;font-size:8px}.archive-record-row>b{font-size:8px;color:var(--brand)}.archive-current-note{padding:9px 11px;border:1px solid #dce5ef;border-radius:10px;background:#f8fafc;color:#5e6d82;font-size:9px}.archive-loading,.archive-error{padding:20px;text-align:center;color:var(--muted)}.archive-error{color:#a12323}
.archive-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid #e7edf4}.archive-detail-head small{display:block;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.archive-detail-head h3{margin:3px 0;font-size:18px}.archive-detail-head div>span{font-size:9px;color:#66758b}.archive-brand-line{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.archive-brand-line span,.archive-record-badge{padding:5px 8px;border-radius:999px;background:#f3f6fa;color:#5e6d82;font-size:8px;font-weight:800}.archive-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.archive-overview-grid>div{border:1px solid #e0e7f0;border-radius:10px;padding:9px;background:#fbfcfe}.archive-overview-grid span{display:block;color:#7a899d;font-size:8px}.archive-overview-grid strong{display:block;margin-top:2px;font-size:16px}.archive-overview-grid small{font-size:7.5px;color:#7a899d}
.archive-detail-section{margin-top:13px}.archive-detail-section h4{margin:0 0 7px;font-size:11px}.archive-data-group{border:1px solid #e0e7f0;border-radius:10px;padding:8px;margin-bottom:7px}.archive-data-group>strong{display:block;margin-bottom:4px;font-size:9px}.archive-data-group>span{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:6px;align-items:center;padding:5px 0;border-top:1px solid #edf1f5;font-size:8.5px}.archive-data-group>span i{width:4px;height:13px;border-radius:999px}.archive-data-group>span em{font-style:normal;color:#7b899c;font-size:7.5px}.archive-match-list{display:grid;gap:5px}.archive-match-row{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:6px 8px;align-items:center;padding:7px 8px;border:1px solid #e0e7f0;border-radius:9px}.archive-match-row>span{font-size:7.5px;color:#64748b}.archive-match-row>strong{font-size:9px;min-width:0}.archive-match-row>b{font-size:10px}.archive-match-row>small{grid-column:2/-1;color:#8492a5;font-size:7.5px}.archive-cf-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.archive-cf-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 7px;padding:7px 8px;border:1px solid #e0e7f0;border-radius:9px}.archive-cf-list span{font-size:8px}.archive-cf-list strong{font-size:10px}.archive-cf-list small{grid-column:1/-1;color:#7f8da0;font-size:7.5px}.archive-history{display:grid;gap:4px;max-height:310px;overflow:auto}.archive-history>div{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 7px;border-bottom:1px solid #edf1f5;font-size:8px}.archive-history span,.archive-history small{color:#7a899d}.archive-restore-zone{margin-top:14px;padding:11px;border:1px solid #bfe2ca;border-radius:11px;background:#f4fbf6;display:grid;gap:5px}.archive-restore-zone.warning{border-color:#ead4a5;background:#fffbf1}.archive-restore-zone strong{font-size:10px}.archive-restore-zone span{font-size:8.5px;color:#64748b}.archive-restore-zone button{justify-self:start;margin-top:3px}.archive-note{margin-top:12px;padding:9px 10px;border-radius:9px;background:#f6f8fb;color:#67768b;font-size:8.5px}.archive-empty{padding:10px;color:#7c8a9d;font-size:8.5px;text-align:center}

@media(max-width:1150px){.broadcast-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.broadcast-code-grid{grid-template-columns:1fr}.broadcast-preview-grid{grid-template-columns:1fr}.archive-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.layout{display:block}.sidebar{display:flex;grid-template-columns:none}.nav{display:grid;grid-template-columns:18px auto auto;min-width:max-content}.broadcast-endpoint-grid,.archive-competition-grid{grid-template-columns:1fr}}
@media(max-width:700px){.broadcast-status-row{flex-direction:column}.broadcast-config-grid{grid-template-columns:1fr}.broadcast-current-url{grid-template-columns:1fr}.broadcast-endpoint-row{grid-template-columns:32px minmax(0,1fr)}.broadcast-endpoint-row button{grid-column:2}.archive-overview-grid,.archive-cf-list{grid-template-columns:1fr}.archive-match-row{grid-template-columns:1fr auto}.archive-match-row>span{grid-column:1/-1}.archive-match-row>small{grid-column:1/-1}.archive-history>div{grid-template-columns:1fr}.archive-record-row{grid-template-columns:1fr auto}.archive-record-row>b{display:none}}


/* v25.0.0-dev.15.5.3.7.1 — structured Broadcast feeds */
.broadcast-feed-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.broadcast-feed-group{border:1px solid #dce5ef;border-radius:12px;background:#fbfcfe;padding:10px;min-width:0}.broadcast-feed-group-head{margin-bottom:7px}.broadcast-feed-group-head h4{margin:0;font-size:11px}.broadcast-feed-group-head span{display:block;margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35}.broadcast-feed-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #e7edf4}.broadcast-feed-ident{display:flex;align-items:center;gap:7px;min-width:0}.broadcast-feed-icon{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:8px;background:#eef4ff;color:#245fda;flex:0 0 auto}.broadcast-feed-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.broadcast-feed-ident strong{display:block;font-size:9.5px}.broadcast-feed-ident small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.3}.broadcast-feed-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.broadcast-feed-actions .compact{height:26px;padding:0 7px;font-size:7px}.broadcast-table-preview,.broadcast-bracket-preview,.broadcast-roster-preview{display:grid;gap:5px}.broadcast-table-preview>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 0;border-top:1px solid #edf1f5;font-size:9px}.broadcast-table-preview span{display:flex;align-items:center;gap:5px;min-width:0}.broadcast-table-preview i,.broadcast-roster-preview i{display:inline-block;width:4px;height:14px;border-radius:999px}.broadcast-bracket-preview>div{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 0;border-top:1px solid #edf1f5;font-size:8.5px}.broadcast-bracket-preview small{color:var(--muted)}.broadcast-roster-preview>div{padding:6px 0;border-top:1px solid #edf1f5}.broadcast-roster-preview>div>strong{display:flex;align-items:center;gap:5px;font-size:9.5px}.broadcast-roster-preview>div>span{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;margin-top:4px;font-size:8px}.broadcast-roster-preview em{font-style:normal}.broadcast-format-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.broadcast-format-preview>*{padding:9px;border-radius:9px;background:#f4f7fb;text-align:center;font-size:9px}.broadcast-format-preview b{font-size:11px}
@media(max-width:1250px){.broadcast-feed-groups{grid-template-columns:1fr}.broadcast-feed-row{grid-template-columns:minmax(0,1fr) auto}}@media(max-width:700px){.broadcast-feed-row{grid-template-columns:1fr}.broadcast-feed-actions{justify-content:flex-start}}


/* v25.0.0-dev.15.5.3.7.2 — Broadcast presentation parity hotfix */
.broadcast-parity-preview{min-width:0;overflow:hidden}.broadcast-standings-parity{display:grid;grid-template-columns:1fr;gap:10px;min-width:0}.broadcast-tournament-group{margin:0;box-shadow:none}.broadcast-parity-preview .tournament-matrix-wrap{max-width:100%;overflow:auto}.broadcast-parity-preview.bracket{overflow:visible}.broadcast-bracket-parity{min-width:0;overflow:auto;padding:2px 0 8px}.broadcast-bracket-parity .tournament-bracket{min-width:720px;margin:0}.broadcast-parity-preview .single-v4{padding:4px 0}.broadcast-parity-preview .tournament-bracket-match{box-shadow:none}.broadcast-parity-preview .tournament-group-title{margin-bottom:7px}.broadcast-parity-preview .tournament-group-title span{font-size:8px}.broadcast-parity-preview .tournament-matrix{margin:0}
@media(max-width:700px){.broadcast-bracket-parity .tournament-bracket{min-width:680px}.broadcast-parity-preview{padding:9px}}

/* v25.0.0-dev.15.5.3.8.2 — standings matrix typography/parity hotfix */
.tournament-matrix-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.tournament-matrix{min-width:600px;table-layout:auto}
.tournament-matrix.volleyball{min-width:680px}
.tournament-matrix th,.tournament-matrix td{padding:8px 6px;font-size:10.5px;line-height:1.25}
.tournament-matrix th{font-size:9px;letter-spacing:.025em;white-space:nowrap}
.tournament-matrix th:nth-child(1){width:34px}.tournament-matrix th:nth-child(2){width:170px;min-width:145px}
.tournament-matrix .matrix-team{font-size:11px}.tournament-matrix .matrix-opponent{min-width:58px;max-width:82px}
.matrix-score{min-width:34px;padding:4px 6px;font-size:10px}.matrix-total strong{font-size:10.5px}.matrix-total small{font-size:8.5px}.matrix-points strong{font-size:12px}
@media(max-width:760px){.tournament-matrix th,.tournament-matrix td{padding:7px 5px;font-size:10px}.tournament-matrix th{font-size:8.5px}.tournament-matrix th:nth-child(2){width:145px}}

/* 25.0.0-dev.15.5.3.8.2 — status presentation parity */

.team-drawer-match.finishing{border-color:#f0d79f;background:#fffaf0}
.team-drawer-status.finishing{background:#fff0c8;color:#946200}
.team-drawer-match.cancelled{border-color:#f5b7b1;background:#fff7f6}
.team-drawer-status.cancelled{background:#fee4e2;color:#b42318}
.status-chip.finishing,.schedule-status.finishing{background:#fff0c8;color:#946200;border-color:#f0d79f}
.status-chip.cancelled,.schedule-status.cancelled{background:#fee4e2;color:#b42318;border-color:#f5b7b1}
.tournament-group-match.finishing,.tournament-bracket-match.finishing{border:2px solid #f59e0b;background:#fffaf0}
.tournament-group-match.finishing .status-chip,.tournament-bracket-match.finishing>.status-chip{background:#fff0c8;color:#946200;border:1px solid #f0d79f}
.tournament-group-match.cancelled,.tournament-bracket-match.cancelled{border:1px solid #f5b7b1;background:#fff7f6}
.tournament-group-match.cancelled .status-chip,.tournament-bracket-match.cancelled>.status-chip{background:#fee4e2;color:#b42318;border:1px solid #f5b7b1}
.schedule-past-row.finishing{border-color:#f0d79f;background:#fffaf0}


/* 25.0.0-dev.15.5.3.8.3 — Viewer presentation control */
.competition-viewer-setting{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:12px 13px;border:1px solid #e2e7ee;border-radius:12px;background:#fbfcfe}
.competition-viewer-setting>div{min-width:0;display:grid;gap:3px}.competition-viewer-setting b{font-size:11px}.competition-viewer-setting small{color:#738197;font-size:8.5px;line-height:1.4}
.viewer-ui-switch{display:flex;align-items:center;gap:8px;flex:0 0 auto;cursor:pointer;user-select:none}.viewer-ui-switch input{position:absolute;opacity:0;pointer-events:none}.viewer-ui-switch-track{position:relative;width:38px;height:22px;border-radius:999px;background:#cbd5e1;transition:.16s}.viewer-ui-switch-track i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.22);transition:.16s}.viewer-ui-switch input:checked+.viewer-ui-switch-track{background:#2672ed}.viewer-ui-switch input:checked+.viewer-ui-switch-track i{transform:translateX(16px)}.viewer-ui-switch-state{min-width:58px;color:#667085;font-size:8.5px;font-weight:900}.viewer-ui-switch input:checked~.viewer-ui-switch-state{color:#167a46}
@media(max-width:620px){.competition-viewer-setting{align-items:flex-start;flex-direction:column}.viewer-ui-switch{width:100%;justify-content:flex-start}}

/* v25.0.0-dev.15.5.3.8.6 — safe group swap controls */
.group-swap-lock-note{margin:8px 0 10px;padding:8px 10px;border:1px solid #efd8aa;border-radius:10px;background:#fff9ef;color:#8a6112;font-size:8.5px;font-weight:800;line-height:1.4}
.group-swap-controls{display:grid;gap:5px;margin:0 0 9px;padding:8px;border:1px solid #e3e9f0;border-radius:10px;background:#fff}
.group-swap-controls-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:5px;border-bottom:1px solid #eef2f6}.group-swap-controls-head strong{font-size:9px}.group-swap-controls-head span{color:#7a8799;font-size:7.5px;font-weight:750}
.group-swap-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:30px}.group-swap-team-name{display:flex;align-items:center;gap:6px;min-width:0;font-size:9px;font-weight:850}.group-swap-team-name i{width:4px;height:14px;border-radius:999px;background:var(--team,#2563eb);flex:0 0 auto}.group-swap-team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-swap-button{white-space:nowrap;font-size:7.5px}.group-swap-button:disabled{opacity:.45;cursor:not-allowed}
.group-swap-modal-copy{display:grid;gap:12px;padding-top:12px}.group-swap-modal-copy p{margin:0;color:#526176;font-size:10px;line-height:1.5}.group-swap-modal-copy label{display:grid;gap:6px}.group-swap-modal-copy label span{color:#657489;font-size:8.5px;font-weight:850}.group-swap-modal-note{padding:9px 10px;border:1px solid #dbe5f0;border-radius:10px;background:#f7faff;color:#5f6f83;font-size:8.5px;line-height:1.45}
@media(max-width:760px){.group-swap-controls-head{align-items:flex-start;flex-direction:column}.group-swap-team-row{grid-template-columns:1fr}.group-swap-button{width:100%}}


/* v25.0.0-dev.15.5.3.8.10 — group draw/seeding + show side swap */
.group-draw-panel{display:grid;gap:12px;padding:14px}.group-draw-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px;border:1px solid #dfe6ef;border-radius:12px;background:#f8fafc}.group-draw-toolbar>div:first-child{display:grid;gap:4px;min-width:0}.group-draw-toolbar strong{font-size:12px}.group-draw-toolbar span{max-width:720px;color:#68778c;font-size:9px;line-height:1.45}.group-draw-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.group-draw-toolbar-actions select{width:auto;min-width:190px}.group-draw-grid{display:grid;grid-template-columns:minmax(220px,.9fr) repeat(2,minmax(260px,1fr));gap:10px;align-items:start}.group-draw-zone{min-height:190px;padding:9px;border:1px dashed #ccd7e4;border-radius:12px;background:#fbfcfe;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.group-draw-zone.A,.group-draw-zone.B{border-style:solid;background:#fff}.group-draw-zone.drag-over{border-color:#2563eb;background:#f3f7ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}.group-draw-zone-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 8px;border-bottom:1px solid #edf1f5}.group-draw-zone-head strong{font-size:10px}.group-draw-zone-head span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:#edf2f7;color:#536277;font-size:8px;font-weight:900}.group-draw-zone-list{display:grid;gap:6px;padding-top:8px}.group-draw-team{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid #e1e7ef;border-radius:10px;background:#fff;cursor:grab;box-shadow:0 2px 7px rgba(15,23,42,.025)}.group-draw-team.dragging{opacity:.5}.group-draw-team>span{display:flex;align-items:center;gap:7px;min-width:0}.group-draw-team>span i{width:4px;height:16px;border-radius:999px;background:var(--team,#2563eb);flex:0 0 auto}.group-draw-team strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.group-draw-team>div{display:flex;gap:4px}.group-draw-team button{padding:5px 7px;font-size:7.5px;white-space:nowrap}.group-draw-empty{display:flex;align-items:center;justify-content:center;min-height:110px;padding:12px;border-radius:9px;color:#94a0b0;font-size:9px;text-align:center}.group-draw-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.group-draw-status{font-size:9px;font-weight:850}.group-draw-status.pending{color:#8a651e}.group-draw-status.ready{color:#197243}.schedule-show-actions .swap-show{white-space:nowrap}.schedule-show-actions .swap-show:disabled{opacity:.4}
@media(max-width:1120px){.group-draw-grid{grid-template-columns:1fr 1fr}.group-draw-zone.pool{grid-column:1/-1}.group-draw-toolbar{flex-direction:column}.group-draw-toolbar-actions{justify-content:flex-start}}
@media(max-width:760px){.group-draw-grid{grid-template-columns:1fr}.group-draw-zone.pool{grid-column:auto}.group-draw-team{grid-template-columns:1fr}.group-draw-team>div{justify-content:flex-start}.group-draw-footer{align-items:flex-start;flex-direction:column}.group-draw-footer button{width:100%}.group-draw-toolbar-actions{width:100%}.group-draw-toolbar-actions select,.group-draw-toolbar-actions button{width:100%}}

.group-draw-reset{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:9px 10px;border:1px solid #dce5ef;border-radius:10px;background:#f8fafc}.group-draw-reset>div{display:grid;gap:2px;min-width:0}.group-draw-reset strong{font-size:9px}.group-draw-reset span{color:#738197;font-size:8px;line-height:1.4}.group-draw-reset button{white-space:nowrap}
@media(max-width:760px){.group-draw-reset{align-items:flex-start;flex-direction:column}.group-draw-reset button{width:100%}}

/* v25.0.0-dev.15.5.3.8.11 — mobile schedule input + compact Tournament mobile layout */
.matrix-head-mobile,.schedule-time-mobile{display:none}

/* Direct native time control on touch devices. It is intentionally always present:
   opening a newly-rendered input via setTimeout loses the native iOS/Android user gesture. */
@media (max-width:900px), (hover:none) and (pointer:coarse){
  .schedule-time-desktop{display:none!important}
  .schedule-time-mobile{display:inline-flex!important;align-items:center;gap:7px;min-width:0;min-height:40px;padding:4px 7px;border:1px solid #c9d8f4;border-radius:10px;background:#f7faff;color:#34445c;touch-action:manipulation}
  .schedule-time-mobile-label{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;color:#61718a;font-weight:900}
  .schedule-time-mobile-label svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .schedule-time-mobile-label small{font-size:8px;line-height:1}
  .schedule-time-mobile input[type=time]{display:block!important;width:126px!important;min-width:126px!important;max-width:126px!important;height:34px!important;margin:0!important;padding:3px 6px!important;border:1px solid #b9c9df!important;border-radius:8px!important;background:#fff!important;color:#172033!important;font-size:16px!important;font-weight:900!important;line-height:1!important;box-shadow:none!important;-webkit-appearance:auto!important;appearance:auto!important;touch-action:manipulation}
  .schedule-time-mobile input[type=time]:focus{border-color:#6d99ef!important;box-shadow:0 0 0 3px rgba(37,99,235,.10)!important}
  .schedule-card-v7-time{flex:0 1 auto;max-width:100%}
}

/* On a touch layout HTML drag competes with taps/long presses. The JS disables drag;
   these rules keep team names bounded so cards never paint over each other. */
@media (max-width:760px), (hover:none) and (pointer:coarse) and (max-width:1024px){
  .schedule-match-card.schedule-match-card-v7{grid-template-columns:12px 27px minmax(0,1fr)!important;gap:7px!important;padding:8px 9px!important;align-items:start!important}
  .schedule-match-card-v7 .schedule-order{width:27px!important;height:27px!important;font-size:9px!important}
  .schedule-card-v7-teams .schedule-team-pair{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:3px!important;align-items:start!important;width:100%!important;max-width:100%!important;flex-wrap:initial!important}
  .schedule-card-v7-teams .schedule-team-pair>em{display:none!important}
  .schedule-card-v7-teams .schedule-team-inline{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:0 1 auto!important;align-items:flex-start!important}
  .schedule-card-v7-teams .schedule-team-inline b{display:-webkit-box!important;width:100%!important;min-width:0!important;max-width:100%!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-word!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2!important;font-size:10.5px!important;line-height:1.16!important}
  .schedule-card-v7-stage{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:7.5px!important}
  .schedule-card-v7-bottom{align-items:flex-start!important;gap:6px!important}
  .schedule-card-v7-actions{flex:1 1 100%!important;justify-content:flex-start!important;gap:4px!important}
}

@media(max-width:760px){
  /* Groups: no horizontal scroll; compact matrix headers use 1/2/3… and М/П/О. */
  .tournament-stage-body{padding:10px 8px 12px!important}
  .tournament-groups-grid{gap:8px!important}
  .tournament-group-card{padding:7px!important;border-radius:10px!important}
  .tournament-group-title{margin-bottom:6px!important;gap:3px!important}
  .tournament-group-title h5{font-size:11px!important}
  .tournament-group-title span{font-size:6.7px!important;line-height:1.25!important}
  .tournament-matrix-wrap{width:100%!important;max-width:100%!important;overflow:hidden!important;border-radius:8px!important}
  .tournament-matrix,.tournament-matrix.volleyball{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
  .tournament-matrix th,.tournament-matrix td{min-width:0!important;max-width:none!important;padding:4px 2px!important;font-size:6.8px!important;line-height:1.08!important;overflow:hidden!important}
  .tournament-matrix th{font-size:6.3px!important;white-space:nowrap!important;letter-spacing:0!important}
  .tournament-matrix th:nth-child(1){width:18px!important}
  .tournament-matrix th:nth-child(2){width:76px!important;min-width:76px!important;max-width:76px!important;text-align:left!important}
  .tournament-matrix .matrix-opponent{width:auto!important;min-width:0!important;max-width:none!important}
  .matrix-head-full{display:none!important}.matrix-head-mobile{display:inline!important}
  .tournament-matrix .matrix-team{padding-left:3px!important;padding-right:2px!important}
  .tournament-matrix .matrix-team .tournament-team{display:inline-flex!important;align-items:flex-start!important;gap:3px!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;font-size:6.8px!important;line-height:1.08!important}
  .tournament-matrix .tournament-team i{width:2px!important;height:10px!important;margin-top:1px!important}
  .matrix-score{display:flex!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:2px 1px!important;border-radius:4px!important;font-size:6.4px!important;line-height:1!important}
  .matrix-total strong{font-size:6.5px!important;white-space:nowrap!important}.matrix-total small{font-size:5.2px!important;white-space:nowrap!important}
  .matrix-points strong{font-size:7.4px!important}
  .tournament-matches-head{margin-top:8px!important;padding-top:7px!important}.tournament-matches-head h5{font-size:10px!important}.tournament-matches-head span{font-size:6.5px!important}
  .tournament-group-match{padding:6px 7px!important}.tournament-group-match-meta{font-size:6.5px!important}.tournament-group-match-teams{font-size:8px!important;gap:4px!important}.tournament-group-match-teams b{font-size:10px!important}

  /* Single elimination stays a real bracket on mobile instead of collapsing to a long list. */
  .tournament-bracket-note{margin-bottom:6px!important;padding:6px 7px!important;gap:2px!important}.tournament-bracket-note strong{font-size:7.5px!important}.tournament-bracket-note span{font-size:6.5px!important;line-height:1.25!important}
  .tournament-bracket.single-v4{--bracket-card-w:clamp(112px,calc((100vw - 86px)/2),156px)!important;--bracket-gap:18px!important;display:grid!important;width:max-content!important;max-width:100%!important;margin:0 auto!important;gap:7px!important;padding:2px 0!important;overflow:visible!important}
  .single-bracket-main-v4{display:grid!important;grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w)!important;grid-template-rows:auto 10px auto!important;gap:0!important;align-items:start!important;justify-content:center!important}
  .single-bracket-main-v4>.semi-top{grid-column:1!important;grid-row:1!important}.single-bracket-main-v4>.semi-bottom{grid-column:1!important;grid-row:3!important}.single-bracket-main-v4>.final{grid-column:3!important;grid-row:1/4!important;align-self:center!important}
  .single-bracket-slot{width:var(--bracket-card-w)!important;max-width:var(--bracket-card-w)!important;gap:3px!important;min-width:0!important}
  .single-bracket-heading{justify-content:center!important;min-height:11px!important;gap:3px!important;padding:0!important;font-size:6.4px!important;letter-spacing:.025em!important;white-space:nowrap!important}.single-bracket-heading span{font-size:6px!important}
  .tournament-bracket.single-v4 .bracket-uniform-card,.tournament-bracket.single-v4 .bracket-uniform-card.has-penalties{width:100%!important;height:auto!important;min-height:80px!important;max-height:none!important;padding:5px!important;gap:3px!important;border-radius:8px!important;overflow:visible!important}
  .tournament-bracket.single-v4 .bracket-uniform-card.has-penalties{min-height:98px!important}
  .tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team{height:25px!important;min-height:25px!important;max-height:25px!important;margin:0!important;padding:3px 4px!important;grid-template-columns:2px minmax(0,1fr) auto!important;gap:3px!important;font-size:7px!important;line-height:1.1!important}
  .tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team i{width:2px!important;height:10px!important}
  .tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team span{display:-webkit-box!important;min-width:0!important;white-space:normal!important;overflow:hidden!important;overflow-wrap:anywhere!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2!important;line-height:1.05!important}
  .tournament-bracket.single-v4 .bracket-uniform-card .tournament-bracket-team b{font-size:7.5px!important}
  .tournament-bracket.single-v4 .bracket-uniform-card>.status-chip{margin-top:auto!important;padding:2px 4px!important;font-size:5.8px!important;line-height:1!important}
  .tournament-bracket.single-v4 .tournament-bracket-penalties{min-height:16px!important;padding:3px 4px!important;gap:3px!important}.tournament-bracket.single-v4 .tournament-bracket-penalties>span{font-size:5px!important}.tournament-bracket.single-v4 .tournament-bracket-penalties>strong{font-size:5.6px!important}
  .single-bracket-connectors-v4{display:block!important;grid-column:2!important;grid-row:1/4!important;position:relative!important;align-self:stretch!important;width:var(--bracket-gap)!important;min-height:188px!important}
  .single-bracket-connectors-v4 .top,.single-bracket-connectors-v4 .bot{left:0!important;width:10px!important;height:1px!important}.single-bracket-connectors-v4 .top{top:41px!important}.single-bracket-connectors-v4 .bot{bottom:41px!important}
  .single-bracket-connectors-v4 .vert{left:10px!important;top:41px!important;bottom:41px!important;width:1px!important}.single-bracket-connectors-v4 .mid{left:10px!important;top:50%!important;width:calc(var(--bracket-gap) - 10px)!important;height:1px!important;transform:translateY(-.5px)!important}
  .single-bracket-placement-v4{display:grid!important;grid-template-columns:var(--bracket-card-w) var(--bracket-gap) var(--bracket-card-w)!important;grid-template-rows:auto!important;gap:0!important;align-items:start!important;justify-content:center!important;margin-top:5px!important;padding-top:7px!important}
  .single-bracket-placement-v4>.fifth{grid-column:1!important;grid-row:1!important}.single-bracket-placement-v4>.third{grid-column:3!important;grid-row:1!important}.single-bracket-placement-v4>.placement-spacer{display:block!important;grid-column:2!important}

  /* Double elimination cannot preserve all horizontal rounds on a phone; keep every round full-width and readable without horizontal scrolling. */
  .tournament-bracket.double{display:grid!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;gap:8px!important;overflow:visible!important;padding:2px 0!important}
  .tournament-bracket.double .tournament-bracket-column{width:100%!important;min-width:0!important;gap:5px!important;padding:0!important;border-left:0!important}.tournament-bracket.double .tournament-bracket-column>h5{font-size:6.8px!important}
  .tournament-bracket.double .tournament-bracket-match{padding:6px!important}.tournament-bracket.double .tournament-bracket-team{padding:4px 5px!important;font-size:8px!important}
}

/* v25.0.0-dev.15.5.3.8.12 — compact touch time picker surface.
   The native input still receives the tap directly (iOS/Android picker reliability),
   but it is transparent over a small chip so its oversized native chrome is not rendered. */
@media (max-width:900px), (hover:none) and (pointer:coarse){
  .schedule-time-mobile{position:relative!important;display:inline-flex!important;align-items:center!important;min-width:0!important;width:auto!important;min-height:30px!important;height:30px!important;padding:0 8px!important;border:1px solid #d5dfec!important;border-radius:8px!important;background:#f5f7fa!important;color:#41516a!important;overflow:hidden!important;touch-action:manipulation!important}
  .schedule-time-mobile.set{background:#f3f7fd!important;border-color:#cad8ec!important;color:#2d405d!important}
  .schedule-time-mobile-label{display:inline-flex!important;align-items:center!important;gap:4px!important;min-width:0!important;height:100%!important;pointer-events:none!important}
  .schedule-time-mobile-label svg{width:11px!important;height:11px!important;flex:0 0 11px!important}
  .schedule-time-mobile-label small{font-size:6.8px!important;line-height:1!important;color:#7b899d!important;font-weight:900!important}
  .schedule-time-mobile-label b{font-size:10px!important;line-height:1!important;color:inherit!important;font-weight:950!important;font-variant-numeric:tabular-nums!important;white-space:nowrap!important}
  .schedule-time-mobile input[type=time]{position:absolute!important;inset:0!important;display:block!important;width:100%!important;min-width:100%!important;max-width:none!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:inherit!important;opacity:0!important;background:transparent!important;font-size:16px!important;line-height:1!important;box-shadow:none!important;-webkit-appearance:auto!important;appearance:auto!important;cursor:pointer!important;touch-action:manipulation!important}
  .schedule-time-mobile:focus-within{border-color:#87a9e9!important;box-shadow:0 0 0 2px rgba(37,99,235,.08)!important}
}
@media (max-width:430px){
  .schedule-time-mobile{height:28px!important;min-height:28px!important;padding:0 7px!important}
  .schedule-time-mobile-label small{display:none!important}
  .schedule-time-mobile-label b{font-size:9.5px!important}
}


/* v25.0.0-dev.15.5.3.8.13 — mobile schedule time is a local draft until explicit commit.
   Spinning the native iOS/Android time picker must never persist or reorder the schedule. */
@media (max-width:900px), (hover:none) and (pointer:coarse){
  .schedule-time-mobile-wrap{display:inline-flex!important;align-items:center!important;gap:5px!important;min-width:0!important;max-width:100%!important}
  .schedule-time-mobile-wrap .schedule-time-mobile{flex:0 0 auto!important}
  .schedule-time-mobile-wrap .schedule-time-mobile-save{display:inline-flex!important;align-items:center!important;justify-content:center!important;height:30px!important;min-height:30px!important;padding:0 8px!important;border-radius:8px!important;font-size:7.4px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important}
  .schedule-time-mobile-wrap .schedule-time-mobile-save:disabled{opacity:.38!important;cursor:default!important}
  .schedule-time-mobile.draft{border-color:#e3a52f!important;background:#fff9eb!important;color:#6c4b0b!important;box-shadow:0 0 0 2px rgba(227,165,47,.08)!important}
  .schedule-time-mobile.draft .schedule-time-mobile-label small{color:#9b6a11!important}
}
@media (max-width:430px){
  .schedule-time-mobile-wrap{gap:4px!important}
  .schedule-time-mobile-wrap .schedule-time-mobile-save{height:28px!important;min-height:28px!important;padding:0 6px!important;font-size:6.8px!important}
}
