:root{color-scheme:dark;--bg:#101310;--card:#191d19;--line:#303830;--text:#f0f3e9;--muted:#a3ae9e;--accent:#cdf66e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0%,#26321b66,transparent 50%),var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1180px;margin:auto;padding:0 32px}header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{font-weight:850;letter-spacing:2px;display:flex;align-items:center;gap:12px}.mark{background:var(--accent);color:#172009;display:grid;place-items:center;width:35px;height:35px;font-size:22px;transform:skew(-8deg)}.beta{font:10px monospace;letter-spacing:1px;color:var(--muted);border:1px solid var(--line);padding:5px 8px;margin-left:10px}.private{color:var(--muted);font-size:12px}.eyebrow{font:11px/1.5 monospace;letter-spacing:2px;color:var(--accent)}.intro{padding:52px 0 34px}h1{font-size:clamp(42px,6vw,72px);line-height:1.04;letter-spacing:-3px;margin:18px 0}h1 span{color:var(--accent)}.intro p,p{color:var(--muted)}.intro p{font-size:16px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:24px;align-items:start}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px}.cardhead{display:flex;gap:15px;align-items:center;margin-bottom:28px}.step{font:13px monospace;border:1px solid var(--line);color:var(--accent);padding:10px;border-radius:9px}h2{font-size:19px;margin:0;font-weight:650}.cardhead p{font-size:12px;margin:4px 0 0}fieldset{margin:0;padding:0;border:0;min-width:0}fieldset:disabled{opacity:.48}label{display:block;font-size:12px;color:var(--muted)}input,select,textarea{display:block;width:100%;background:#111610;border:1px solid #3b4537;border-radius:7px;color:var(--text);padding:12px;font:14px system-ui;margin:7px 0 18px}textarea{resize:vertical;font:12px/1.65 monospace}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.row,.teams{display:grid;grid-template-columns:1fr 1fr;gap:18px}.teams{margin:4px 0 24px}.team{padding:18px;background:#141914;border:1px solid var(--line);border-radius:9px}.teamlabel{display:block;font:10px monospace;letter-spacing:2px;color:var(--accent);margin-bottom:15px}.team:nth-child(2) .teamlabel{color:#91bde6}.team textarea{margin-bottom:5px}small{font-size:11px;color:var(--muted)}.checks{display:grid;gap:10px;margin:7px 0 20px}.checks label{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text)}.checks input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.hint{font-size:12px;line-height:1.7}.primary,.secondary{cursor:pointer;width:100%;border-radius:7px;padding:13px 16px;font:600 13px system-ui;display:block;text-align:center}.primary{background:var(--accent);color:#18230c;border:0;margin-top:24px;display:flex;justify-content:space-between}.primary:hover{background:#dbff90}.secondary{background:#222a20;color:var(--text);border:1px solid #3b4537;margin-top:12px}.secondary:hover{border-color:var(--accent)}.statusline{display:flex;align-items:center;gap:10px;margin-top:22px}.status h2{font-size:16px}.dot{width:8px;height:8px;background:#aa8b55;border-radius:50%;flex-shrink:0}.dot.online{background:var(--accent);box-shadow:0 0 13px #cdf66e44}dl{margin:25px 0;display:grid;gap:6px}dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}dd{font:12px monospace;margin:0 0 12px;overflow-wrap:anywhere}.join{border-top:1px solid var(--line);margin-top:25px;padding-top:24px}.join code{display:block;background:#10150f;padding:12px 8px;font-size:11px;margin:12px 0;overflow-wrap:anywhere}.join small{display:block;margin-top:12px}.notice,.error,.ok{padding:15px 18px;border-radius:8px;margin:0 0 24px;font-size:13px}.notice,.ok{background:#24351b;border:1px solid #4c6639;color:#dcf2ce}.error{background:#37241c;border:1px solid #85553d;color:#ffdbbf}.ok{padding:12px;margin-bottom:12px}.footnote{font:11px/1.8 monospace;color:var(--muted);padding:22px 4px}.diagnostic{border:1px solid var(--line);border-radius:8px;margin-top:25px;padding:14px;color:var(--muted);font-size:12px}.diagnostic summary{cursor:pointer}.diagnostic pre{white-space:pre-wrap;overflow-wrap:anywhere}footer{border-top:1px solid var(--line);margin-top:40px;padding:24px 0 40px;display:flex;justify-content:space-between;font:10px monospace;letter-spacing:1px;color:var(--muted)}@media(max-width:850px){.layout{grid-template-columns:1fr}aside{grid-row:1}.intro{padding-top:35px}.status dl{grid-template-columns:1fr 1fr}main{padding:0 18px}.card{padding:22px}.beta{display:none}}@media(max-width:500px){.row,.teams{grid-template-columns:1fr}h1{letter-spacing:-2px}.private{font-size:10px}.intro p{font-size:14px}}

/* Steam accounts, v0.2 */
.account{display:flex;align-items:center;gap:20px}.account strong{font:10px monospace;letter-spacing:2px;color:var(--accent)}.account span{display:block;font:11px monospace;color:var(--muted);margin-top:4px}.logout{border:1px solid var(--line);border-radius:6px;color:var(--muted);background:transparent;padding:9px 12px;cursor:pointer}.logout:hover{border-color:var(--accent);color:var(--text)}.login-card{max-width:540px;margin-bottom:70px}.login-card h2{font-size:24px;margin-top:18px}.login-card p{font-size:14px}.login-card .hint{font-size:12px;margin-top:24px}.diagnostic table{width:100%;border-collapse:collapse;text-align:left;margin-top:18px}.diagnostic th,.diagnostic td{padding:10px 5px;border-bottom:1px solid var(--line);font-size:11px}@media(max-width:500px){.account{gap:10px}.account span{font-size:9px}.brand{font-size:12px;gap:7px}.mark{width:27px;height:27px}.logout{font-size:11px;padding:7px}.diagnostic{overflow-x:auto}}

/* Match control, v0.3 */
[hidden]{display:none!important}.live-card{border:1px solid #3a4830;background:linear-gradient(120deg,#20291b,#141a13);border-radius:14px;padding:26px 28px;margin-bottom:26px}.live-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.live-top h2{margin-top:9px;font-size:23px}.pause-badge{border:1px solid #8e7444;background:#3b301c;color:#f3ce85;padding:7px 10px;font:10px monospace;letter-spacing:1px;border-radius:5px}.live-meta{display:flex;flex-wrap:wrap;gap:12px 28px;border-top:1px solid #35432d;border-bottom:1px solid #35432d;padding:14px 0;margin-top:22px;color:var(--muted);font-size:12px}.live-meta strong{color:var(--text);font:12px monospace;margin-left:8px}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:26px}.score-team{position:relative}.score-team+.score-team{border-left:1px solid #35432d;padding-left:30px}.score-team .teamlabel{margin-bottom:6px}.team-1 .teamlabel{color:#91bde6}.score-team h3{font-size:20px;margin:5px 0;overflow-wrap:anywhere}.score{font-size:64px;font-weight:750;letter-spacing:-3px;line-height:1.25;color:var(--accent)}.team-1 .score{color:#a7ccf0}.team-info{font-size:11px;color:var(--muted);display:flex;gap:15px;flex-wrap:wrap;margin-top:12px}.live-caption{font-size:11px;color:var(--muted);margin:24px 0 0}.danger{display:block;width:100%;padding:13px 16px;border:1px solid #8a503e;background:#3a251e;color:#ffd2c2;border-radius:7px;margin-top:20px;font:600 13px system-ui;cursor:pointer}.danger:hover{border-color:#d68b70}.danger:disabled{opacity:.5;cursor:wait}@media(max-width:500px){.live-card{padding:21px}.scoreboard{gap:16px}.score-team+.score-team{padding-left:16px}.score-team h3{font-size:16px}.score{font-size:52px}.live-meta{gap:10px 18px}}

/* Steam lobby, v0.4 */
.lobby-card{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:27px 28px;margin-bottom:26px}.lobby-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.lobby-heading h2{font-size:25px;margin-top:8px}.lobby-lock{font:10px monospace;color:var(--muted);border:1px solid var(--line);padding:9px 11px;border-radius:6px}.lobby-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin-top:24px}.lobby-zone{min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:left;background:#121711;border:1px solid #3b4536;border-radius:10px;color:var(--text);padding:20px;cursor:pointer;font:inherit;min-height:250px;transition:border-color .15s,background .15s}.lobby-zone:not(:disabled):hover{border-color:var(--accent);background:#202b17}.lobby-zone.is-mine{border-color:var(--accent);background:#202a17}.lobby-zone:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lobby-zone:disabled{cursor:default;opacity:1}.zone-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.zone-label{font:10px monospace;letter-spacing:1.8px;color:var(--accent)}#zone-team2 .zone-label{color:#91bde6}#zone-waiting .zone-label{color:var(--muted)}.zone-count{font:11px monospace;color:var(--muted)}.zone-name{display:block;font-weight:650;font-size:17px;margin:12px 0 21px;overflow-wrap:anywhere}.zone-members{display:flex;flex-direction:column;gap:9px;flex:1}.member{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13px;min-width:0}.member-name{overflow-wrap:anywhere;min-width:0;flex:1}.member-dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#64705f}.member-dot.present{background:var(--accent)}.self-badge{font:9px monospace;color:var(--accent);border:1px solid #60793f;padding:2px 4px;border-radius:3px}.empty-zone{font-size:12px;color:#7f8a77;padding-top:8px}.zone-action{display:flex;justify-content:space-between;border-top:1px solid #34402c;padding-top:14px;margin-top:20px;font-size:11px;color:var(--muted)}.lobby-settings{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;font-size:12px;color:var(--muted)}.lobby-settings summary{cursor:pointer}.lobby-settings-grid{display:grid;grid-template-columns:1fr 1fr 120px;gap:15px;margin-top:22px}.lobby-settings .secondary{width:auto;margin-top:0}.roster-summary{padding:0 0 15px;color:var(--muted);font-size:12px}.roster-summary strong{display:block;font-size:22px;color:var(--accent);margin:9px 0}.roster-summary small{display:block;max-width:260px}.account span{max-width:230px;overflow-wrap:anywhere}@media(max-width:800px){.lobby-grid{grid-template-columns:1fr 1fr}#zone-waiting{grid-column:1/-1;min-height:150px}.lobby-heading{align-items:flex-start;flex-direction:column}.lobby-settings-grid{grid-template-columns:1fr 1fr}.lobby-settings-grid label:last-child{grid-column:1/-1}}@media(max-width:500px){.lobby-card{padding:20px}.lobby-grid{gap:10px}.lobby-zone{padding:14px;min-height:220px}.zone-name{font-size:15px}.member{font-size:12px}.lobby-heading h2{font-size:22px}.lobby-settings-grid{grid-template-columns:1fr}.lobby-settings-grid label:last-child{grid-column:auto}.account span{max-width:135px}}

/* Teams above a shared waiting room and chat. */
.lobby-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.waiting-room{margin-top:15px;padding:20px;border:1px solid var(--line);border-radius:10px;background:#121711;display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:24px}.waiting-room #zone-waiting{grid-column:auto;min-height:180px}.lobby-chat{min-width:0}.chat-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.chat-heading h3{margin:0;font-size:16px}.chat-heading span{font-size:11px;color:var(--muted)}.chat-messages{height:250px;overflow-y:auto;overscroll-behavior:contain;margin:14px 0;padding:12px;background:#0e130e;border:1px solid var(--line);border-radius:7px}.chat-message{margin:0 0 13px;font-size:13px;overflow-wrap:anywhere}.chat-message:last-child{margin-bottom:0}.chat-author{color:var(--accent);font-weight:600}.chat-message time{font-size:10px;color:var(--muted);margin-left:10px}.chat-body{display:block;white-space:pre-wrap;color:var(--text);margin-top:3px}.chat-compose{display:flex;gap:10px;align-items:center}.chat-compose input{margin:6px 0 0;min-width:0}.chat-compose .secondary{width:auto;margin:6px 0 0}.lobby-chat #chat-status{margin:8px 0 0;min-height:20px}@media(max-width:650px){.waiting-room{grid-template-columns:1fr;padding:14px;gap:18px}.waiting-room #zone-waiting{min-height:140px}.chat-heading span{font-size:10px}}

/* CT blue and T orange; team identity remains stable after a side swap. */
#zone-team1 .zone-label,#zone-team1 .zone-name{color:#91bde6}#zone-team2 .zone-label,#zone-team2 .zone-name{color:#eeab62}#zone-team1.is-mine{border-color:#91bde6;background:#192531}#zone-team2.is-mine{border-color:#eeab62;background:#2d2419}#zone-team1:not(:disabled):hover{border-color:#91bde6}#zone-team2:not(:disabled):hover{border-color:#eeab62}.team-0 .score,.team-0 .teamlabel{color:#91bde6}.team-1 .score,.team-1 .teamlabel{color:#eeab62}.lobby-settings-grid{grid-template-columns:1fr 1fr 150px}.lobby-settings-grid select{border-color:#91bde6}@media(max-width:800px){.lobby-settings-grid{grid-template-columns:1fr 1fr}}@media(max-width:500px){.lobby-settings-grid{grid-template-columns:1fr}}

/* Match history */
.panel-nav{display:flex;justify-content:flex-end;padding-top:20px}.history-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;color:var(--muted);font-size:13px}.history-list{display:grid;gap:20px}.history-match{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:25px 28px}.history-match-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.history-date{font-size:11px;color:var(--muted);margin-top:7px}.history-badge{border:1px solid var(--line);border-radius:5px;padding:6px 10px;font-size:11px;color:var(--muted)}.history-completed,.history-draw{color:var(--accent);border-color:#4c6639;background:#24351b}.history-cancelled,.history-incomplete,.history-not_started{color:#eeab62;border-color:#725338}.history-active{color:#91bde6;border-color:#38566f}.history-result{display:grid;grid-template-columns:1fr auto 1fr;gap:25px;align-items:center;margin:26px 0 10px}.history-result>strong{font-size:23px;overflow-wrap:anywhere}.history-result>strong:last-child{text-align:right}.history-score{display:block;text-align:center;font-size:38px;font-weight:750;letter-spacing:-1px}.history-result small{display:block;text-align:center;color:var(--muted);font-size:10px}.history-ct{color:#91bde6}.history-t{color:#eeab62}.history-winner{text-decoration:underline;text-underline-offset:7px}.history-caption{font-size:12px;text-align:center;margin:18px 0}.history-rosters{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;color:var(--muted);font-size:12px}.history-rosters summary{cursor:pointer}.history-teams{display:grid;grid-template-columns:1fr 1fr;gap:25px}.history-teams h3{font-size:15px;margin-bottom:8px}.history-teams ul{list-style:none;padding:0;margin:0}.history-teams li{padding:6px 0;overflow-wrap:anywhere;color:var(--text)}.history-pagination{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:28px;color:var(--muted);font-size:12px}.history-empty{max-width:650px}.history-empty .secondary{max-width:220px}@media(max-width:600px){.history-match{padding:20px 16px}.history-result{gap:12px}.history-result>strong{font-size:17px}.history-score{font-size:28px}.history-match-top{align-items:flex-start}.history-badge{font-size:10px}.history-teams{gap:15px}}

.history-demo{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.demo-download{width:auto;max-width:320px;display:flex;justify-content:space-between;gap:24px;margin-top:0}.demo-download span{color:var(--muted);font-weight:400}

/* Compact match rows with native accessible disclosure. */
.history-intro{padding:34px 0 22px}.history-intro h1{font-size:32px;letter-spacing:-1px;margin:12px 0 8px}.history-intro p{font-size:13px;margin:0}.history-columns,.match-summary{display:grid;grid-template-columns:95px minmax(120px,1fr) 82px 155px 62px 165px 18px;gap:14px;align-items:center}.history-columns{padding:10px 18px;font:10px monospace;color:var(--muted);letter-spacing:1px}.compact-history{gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.match-entry{min-width:0;background:#151b16}.match-entry:nth-child(even){background:#1a1f1a}.match-entry+.match-entry{border-top:1px solid var(--line)}.match-summary{min-height:64px;padding:12px 18px;cursor:pointer;list-style:none;font-size:12px}.match-summary::-webkit-details-marker{display:none}.match-summary::marker{content:''}.match-summary:hover{background:#26311e}.match-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.match-entry[open]>.match-summary{background:#26311e;box-shadow:inset 3px 0 var(--accent)}.match-map{font-weight:700;overflow-wrap:anywhere}.match-demo-ready{display:block;color:var(--accent);font:9px monospace;letter-spacing:1px;margin-top:3px}.match-teams{display:flex;align-items:center;gap:9px;min-width:0}.match-teams strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}.match-teams>span{font-size:10px;color:var(--muted)}.match-summary-score{font-weight:750;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.match-summary-score small{display:block;color:var(--muted);font-size:9px;font-weight:400}.match-summary .history-badge{justify-self:start;font-size:10px;padding:5px 7px}.match-date,.match-format{color:var(--muted);font-size:11px}.match-chevron{font-size:18px;color:var(--muted);text-align:center;transition:transform .15s}.match-entry[open] .match-chevron{transform:rotate(180deg);color:var(--accent)}.history-expanded{border:0;border-top:1px solid var(--line);border-radius:0;background:#111811;padding:22px 24px}.history-expanded .history-result{margin-top:20px}.history-expanded .history-rosters{padding-top:10px}.history-expanded .history-match-top .history-badge{display:none}@media(max-width:1000px){.history-columns,.match-summary{grid-template-columns:80px minmax(100px,1fr) 76px 130px 45px 130px 15px;gap:10px}.match-date{font-size:10px}}@media(max-width:800px){.history-columns{display:none}.match-summary{grid-template-columns:80px minmax(90px,1fr) 80px 18px;gap:8px 12px}.match-summary .match-map{grid-column:1;grid-row:1}.match-summary .match-teams{grid-column:2;grid-row:1}.match-summary-score{grid-column:3;grid-row:1}.match-chevron{grid-column:4;grid-row:1/3}.match-summary .history-badge{grid-column:1/3;grid-row:2}.match-format{grid-column:3;grid-row:2;text-align:left}.match-date{grid-column:1/4;grid-row:3;font-size:10px}.history-expanded{padding:18px}.match-teams{gap:6px}}@media(max-width:450px){.match-summary{padding:12px;grid-template-columns:65px minmax(65px,1fr) 64px 14px;gap:8px}.match-summary-score{font-size:14px}.match-teams{font-size:11px}.history-intro h1{font-size:27px}.history-expanded .history-result{gap:8px}}

/* Per-match player statistics. */
.statistics-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 14px}.statistics-heading h3{margin:0;font-size:15px;color:var(--text)}.statistics-heading>span{font-size:10px;color:var(--muted)}.statistics-teams{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.statistics-team{min-width:0;background:#0f1715;border:1px solid #2c3935;border-radius:7px;overflow:hidden}.statistics-team-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #2c3935;padding:12px;color:#91bde6}.statistics-team-head strong{font-size:12px;overflow-wrap:anywhere}.statistics-team-head>span{font:700 21px monospace}.statistics-t .statistics-team-head{color:#eeab62}.statistics-scroll{overflow-x:auto}.statistics-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.statistics-table{border-collapse:collapse;width:100%;min-width:460px;font-size:11px;font-variant-numeric:tabular-nums}.statistics-table th,.statistics-table td{padding:9px 5px;border-bottom:1px solid #26332e;white-space:nowrap;text-align:right}.statistics-table thead th{color:var(--muted);font:9px monospace;background:#111c18}.statistics-table th:first-child{text-align:left;padding-left:12px}.statistics-table tbody th{font-weight:500;color:var(--text);max-width:130px;overflow:hidden;text-overflow:ellipsis}.statistics-table tr:last-child th,.statistics-table tr:last-child td{border-bottom:0}.statistics-table td{color:var(--text)}.statistics-table tbody tr:nth-child(even){background:#ffffff03}.statistics-table td.stat-positive{color:var(--accent)}.statistics-table td.stat-negative{color:#f08c7c}.statistics-table abbr{text-decoration:none;cursor:help}.statistics-table .statistics-empty{text-align:center;color:var(--muted)}.statistics-note{font-size:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.statistics-teams{grid-template-columns:1fr}.statistics-table{min-width:500px}.statistics-table tbody th{max-width:220px}}@media(max-width:600px){.statistics-table{min-width:460px}.statistics-table tbody th{max-width:130px}}

/* BO1 map veto. */
.veto-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px;margin-bottom:26px}.veto-card h2{font-size:25px;margin-top:8px}.veto-captains{display:flex;gap:20px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line);font-size:12px}.veto-captains b{font-weight:500;color:var(--text)}.veto-maps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:16px}.veto-map{min-height:110px;padding:15px 12px;text-align:left;color:var(--text);background:linear-gradient(140deg,#243121,#111911);border:1px solid #4b5c41;border-radius:7px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:18px}.veto-map strong{font-size:16px}.veto-map span{font-size:10px;color:var(--muted)}.veto-map:not(:disabled):hover{border-color:var(--accent);background:#2a3b20}.veto-map:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.veto-map:disabled{cursor:default}.veto-map.is-banned{background:#211d1b;border-color:#493b32;opacity:.6}.veto-map.is-banned strong{text-decoration:line-through}.veto-map.is-selected{border-color:var(--accent);background:#293c1e}.veto-map.is-selected span{color:var(--accent)}.veto-log{display:flex;gap:8px 25px;flex-wrap:wrap;color:var(--muted);font-size:11px;padding-left:20px;margin:18px 0}.veto-admin{border-top:1px solid var(--line);margin-top:18px;padding-top:16px;color:var(--muted);font-size:12px}.veto-admin summary{cursor:pointer}.veto-assignments{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.veto-assignments form{background:#121912;border:1px solid var(--line);border-radius:7px;padding:14px}.veto-assignments select{margin-bottom:8px}.veto-assignments button{margin-top:0}.veto-pool{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 20px}.veto-pool label{font-size:12px}.veto-start-settings{min-width:0}.veto-admin .primary{margin-top:8px}.veto-admin-actions{display:flex;gap:12px;flex-wrap:wrap}.veto-admin-actions form{flex:1;min-width:200px}.veto-admin button:disabled{opacity:.4;cursor:default}.veto-feedback{font-size:12px;color:#ffcfad;padding:12px;background:#36251e;border:1px solid #654733;border-radius:7px}.captain-badge{font:10px monospace;color:#91bde6;border:1px solid #4c7192;padding:2px 4px;border-radius:3px}@media(max-width:650px){.veto-card{padding:20px}.veto-assignments{grid-template-columns:1fr}.veto-pool{grid-template-columns:1fr 1fr}.veto-maps{grid-template-columns:repeat(2,minmax(0,1fr))}.veto-map{min-height:95px}}

.lobby-settings-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:500px){.lobby-settings-grid{grid-template-columns:1fr}}

.history-veto{padding-top:12px;border-top:1px solid var(--line);margin-top:14px}.history-veto h3{font-size:12px}.history-veto ol{display:flex;gap:8px 25px;flex-wrap:wrap;font-size:11px;padding-left:18px}

/* Account administration */
.panel-nav{gap:20px;flex-wrap:wrap}.admin-users{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px}.admin-users-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-users-heading h2{margin:0}.admin-users-heading>span{color:var(--muted);font-size:12px}.admin-user{display:flex;align-items:center;gap:20px;padding:22px 0;border-top:1px solid var(--line)}.admin-user-info{flex:1;min-width:0}.admin-user-info a{color:var(--text);font-weight:600;overflow-wrap:anywhere}.admin-user-info small{display:block;margin-top:8px;color:var(--muted);font-size:11px}.admin-role{color:var(--accent);font:11px monospace}.admin-user .secondary{margin:0;width:auto}.admin-user>.hint{margin:0}@media(max-width:650px){.admin-users{padding:18px}.admin-user{flex-wrap:wrap;gap:12px}.admin-user-info{flex-basis:75%}.admin-user form{width:100%}}

.veto-match-options{border-top:1px solid var(--line);padding-top:16px;margin:18px 0}.veto-match-options .checks{margin:0}.veto-match-options .hint{margin-bottom:0}

.match-heading{display:flex;flex-wrap:wrap;gap:.08em .22em}.match-heading span{white-space:nowrap}.match-heading .heading-main{color:var(--text)}

.layout.match-active{grid-template-columns:minmax(0,1fr)}

/* Player comparisons and FACEIT */
.lobby-player-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:18px 0 22px;font-size:12px}.lobby-player-stats summary{cursor:pointer;color:var(--accent)}.lobby-player-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.player-chip{padding:7px 11px;border:1px solid var(--line);border-radius:6px;background:#111810;overflow-wrap:anywhere}.player-chip:hover,.player-link:hover{color:var(--accent);border-color:var(--accent)}.leaderboard-filters{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;margin:16px 0 28px}.leaderboard-filters label{min-width:180px}.leaderboard-filters select{margin-bottom:0}.leaderboard-filters button{width:auto;margin-top:0}.leaderboard-card{padding:24px 20px}.leaderboard-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.leaderboard-heading input{margin-bottom:0}.leaderboard-table{width:100%;min-width:850px;border-collapse:collapse;text-align:left;font-size:12px}.leaderboard-table th,.leaderboard-table td{padding:15px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.leaderboard-table thead th{font:10px monospace;color:var(--muted);letter-spacing:1px}.leaderboard-table tbody th{white-space:normal;min-width:150px;max-width:250px;overflow-wrap:anywhere}.leaderboard-table tbody th small{display:block;font-weight:400;margin-top:4px}.leaderboard-method{margin:24px 0}.player-summary-heading{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.player-summary-heading h2{font-size:26px;overflow-wrap:anywhere}.sample-badge{font-size:11px;color:var(--muted)}.player-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:25px 0}.player-metrics>div{padding:18px;background:#111810;border:1px solid var(--line);border-radius:8px}.player-metrics span{font-size:11px;color:var(--muted);display:block}.player-metrics strong{font-size:28px;font-weight:650;color:var(--accent)}.faceit-profile{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0}.faceit-profile>strong{font:12px monospace;color:#f9a26a}.faceit-level{display:inline-block;color:#ffb078;font:11px monospace;padding:6px 8px;border:1px solid #70442a;border-radius:5px;background:#2b1e15}.faceit-level-10{color:#ff8679;border-color:#963f35}.player-recent>div{display:grid;grid-template-columns:1fr auto 90px;gap:20px;font-size:13px;padding:14px 0;border-bottom:1px solid var(--line)}.result-win{color:var(--accent)}.result-loss{color:#ed9a80}.result-draw{color:#91bde6}@media(max-width:600px){.player-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.leaderboard-heading{align-items:flex-start;flex-direction:column}.leaderboard-filters{gap:12px}.leaderboard-filters label{flex:1;min-width:130px}.player-recent>div{gap:10px;grid-template-columns:1fr auto 65px}}

.faceit-diagnostic{display:block;max-width:230px;margin-top:6px;white-space:normal;color:#eeab62;line-height:1.5}

/* Compact, readable player comparison */
.lobby-player-links{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:12px 0 16px}.lobby-player-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.lobby-player-name{font-weight:600;overflow-wrap:anywhere;text-decoration:none;color:var(--text)}.lobby-player-name:hover{text-decoration:underline;color:var(--accent)}.lobby-player-kd{color:var(--muted);font:12px monospace}.lobby-player-faceit{color:#ffb078;font:12px monospace}.lobby-leaderboard-link{display:inline-block;margin-top:2px;border:0;background:none;padding:0;color:var(--muted);font-size:12px}.lobby-leaderboard-link:hover{color:var(--accent)}

.lobby-player-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 28px}.lobby-player-row{flex:0 1 auto;max-width:100%;gap:6px 10px;padding:7px 0;border-bottom:0}.lobby-player-kd,.lobby-player-faceit{white-space:nowrap}

/* Prominent current veto turn, using the same CT/T colours as the lobby. */
.veto-turn{--turn-color:#91bde6;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px 18px;padding:19px 22px;margin:20px 0;border:1px solid var(--turn-color);border-left:5px solid var(--turn-color);border-radius:9px;background:#192a38;color:var(--text);overflow-wrap:anywhere}
.veto-turn-t{--turn-color:#efad66;background:#342719}
.veto-turn-label{grid-column:1/-1;font-size:12px;font-weight:800;letter-spacing:1.5px;color:var(--turn-color)}
.veto-turn-team{font-size:28px;line-height:1.25;color:var(--turn-color)}
.veto-turn-captain{font-size:15px;font-weight:650;color:var(--text)}
.veto-turn-instruction{grid-column:1/-1;font-size:14px;color:var(--text);margin-top:4px}
.veto-turn.is-your-turn{box-shadow:0 0 0 2px var(--turn-color)}
@media(max-width:500px){.veto-turn{grid-template-columns:minmax(0,1fr);padding:16px}.veto-turn-team{font-size:24px}.veto-turn-captain{grid-column:1/-1}}

.admin-user{flex-wrap:wrap}.admin-ban-form small{display:block;margin-bottom:6px}.admin-ban-form .danger{margin:0}


/* Main navigation beside the signed-in account. */
.panel-header{height:auto;min-height:100px;gap:20px;padding:20px 0;flex-wrap:wrap}.panel-header .brand{flex-shrink:0}.header-controls{display:flex;align-items:center;justify-content:flex-end;gap:26px;flex-wrap:wrap;margin-left:auto;min-width:0}.panel-header .header-nav{padding:0;gap:10px;align-items:center}.header-nav .logout{white-space:nowrap}.panel-header .account{min-width:0}.lobby-intro{padding:24px 0 20px}.lobby-intro p{font-size:14px;margin:8px 0 0}
@media(max-width:950px){.header-controls{gap:16px}.panel-header .header-nav{gap:8px}.header-nav .logout{font-size:11px;padding:9px 10px}}
@media(max-width:700px){.header-controls{width:100%;justify-content:space-between;gap:16px}.panel-header .header-nav{justify-content:flex-start}.panel-header .account{margin-left:auto}}

/* Consistent page titles based on the community administration heading. */
.page-intro{padding:34px 0 28px}.page-intro .page-title{font-family:inherit;font-size:clamp(34px,4.8vw,56px);font-weight:700;line-height:1.08;letter-spacing:-2px;margin:16px 0 14px;overflow-wrap:anywhere}.page-intro .page-title span{color:var(--accent)}.page-intro p{font-size:14px;line-height:1.65;margin:0}
@media(max-width:500px){.page-intro{padding:28px 0 24px}.page-intro .page-title{letter-spacing:-1px}}
[hidden]{display:none!important}
.lobby-ready-check{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:14px 0;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:rgba(193,255,92,.035)}
.lobby-ready-check>div{display:flex;align-items:center;flex-wrap:wrap;gap:2px 12px;min-width:0}.lobby-ready-check h3{margin:0;font-size:15px}.lobby-ready-check .hint{margin:0;font-size:11px}.lobby-ready-check #lobby-ready-hint{flex-basis:100%}.lobby-ready-check form{flex:0 0 auto}
.ready-badge{font:600 9px system-ui;letter-spacing:.4px;padding:3px 6px;border-radius:4px;background:#3a3022;color:#e7c18b;white-space:nowrap}.ready-badge.is-ready{background:#293c1c;color:var(--accent)}
@media(max-width:600px){.lobby-ready-check form{width:100%}.lobby-ready-check button{width:100%}.ready-badge{font-size:8px}}

.history-demo .demo-download{display:inline-flex;vertical-align:top}.demo-delete-form{display:inline-block;vertical-align:top;margin-left:12px}.demo-delete-form .danger{width:auto;margin:0;padding:12px 16px;font-size:12px}
@media(max-width:500px){.demo-delete-form{display:block;margin:10px 0 0}.demo-delete-form .danger{width:100%}}

/* Fixed team cards: five single-line rows without scrolling. */
.lobby-grid > .lobby-zone{height:250px;min-height:250px;overflow:hidden}
.lobby-grid .zone-top{line-height:14px}
.lobby-grid .zone-name{line-height:22px;margin:8px 0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lobby-grid .zone-members{min-height:0;gap:0;justify-content:flex-start}
.lobby-grid .member{height:22px;min-height:22px;flex:0 0 22px;padding:0;gap:6px}
.lobby-grid .member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px}
.lobby-grid .ready-badge,.lobby-grid .self-badge,.lobby-grid .captain-badge{flex-shrink:0}
.lobby-grid .zone-action{line-height:16px;padding-top:8px;margin-top:10px;flex-shrink:0}
/* Zero intrinsic list height keeps the waiting card at its empty, chat-aligned height. */
.waiting-room #zone-waiting{min-height:180px;min-width:0;overflow:hidden;cursor:default}
.waiting-room #zone-waiting:not(.is-mine):hover{background:#121711;border-color:#3b4537}
#members-waiting{height:0;min-height:0;flex:1 1 0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#60793f transparent;gap:0;padding-right:6px}
#members-waiting::-webkit-scrollbar{width:6px}#members-waiting::-webkit-scrollbar-thumb{background:#60793f;border-radius:6px}
#members-waiting:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
#members-waiting .member{flex:0 0 auto;min-height:30px;padding:5px 0;gap:7px}
#members-waiting .member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#members-waiting .lobby-player-kd,#members-waiting .lobby-player-faceit{font-size:10px;flex-shrink:0}
#members-waiting .self-badge{flex-shrink:0}
#action-waiting{width:100%;flex-shrink:0;background:transparent;border:0;border-top:1px solid #34402c;border-radius:0;color:var(--muted);font:11px/16px system-ui;text-align:left;padding:14px 0 0;cursor:pointer}
#action-waiting:disabled{cursor:default;opacity:1}#action-waiting:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:650px){.waiting-room #zone-waiting{height:300px;min-height:300px}.lobby-grid > .lobby-zone{height:220px;min-height:220px}.lobby-grid .zone-name{line-height:20px;margin:6px 0 8px}.lobby-grid .member{height:21px;min-height:21px;flex-basis:21px;gap:4px}.lobby-grid .zone-action{line-height:14px;padding-top:6px;margin-top:8px}}

.member-stats{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}
.lobby-grid .lobby-player-kd,.lobby-grid .lobby-player-faceit{font-size:10px;line-height:14px}
@media(max-width:650px){
 .lobby-grid > .lobby-zone{padding:10px}
 .lobby-grid .zone-top{line-height:12px}
 .lobby-grid .zone-name{line-height:16px;margin:2px 0 4px}
 .lobby-grid .zone-action{line-height:12px;margin-top:4px;padding-top:4px}
 .lobby-grid .member{display:grid;grid-template-columns:6px minmax(0,1fr) auto auto auto;grid-template-rows:14px 10px;gap:0 3px;height:28px;min-height:28px;flex-basis:28px;align-content:center}
 .lobby-grid .member-dot{grid-area:1/1}
 .lobby-grid .member-name{grid-area:1/2;line-height:14px;font-size:11px}
 .lobby-grid .member-stats{grid-row:2;grid-column:2/-1;line-height:10px;gap:5px}
 .lobby-grid .lobby-player-kd,.lobby-grid .lobby-player-faceit{font-size:9px;line-height:10px}
 .lobby-grid .ready-badge{grid-area:1/3;padding:1px 3px;font-size:7px}
 .lobby-grid .self-badge{grid-area:1/4;padding:0 2px;font-size:7px}
 .lobby-grid .captain-badge{grid-area:1/5;padding:0 2px;font-size:8px}
}

/* Player actions float below a name without changing fixed room heights. */
button.member-name{display:block;border:0;background:none;color:inherit;text-align:left;font:inherit;line-height:inherit;letter-spacing:inherit;padding:0;margin:0;border-radius:3px;cursor:pointer}
button.member-name:not(:disabled):hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
button.member-name:disabled{cursor:default;opacity:1}
button.member-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lobby-grid .zone-action{width:100%;background:none;border:0;border-top:1px solid #34402c;border-radius:0;color:var(--muted);text-align:left;font:11px/16px system-ui;cursor:pointer}
.lobby-grid .zone-action:disabled{opacity:1;cursor:default}
.lobby-grid .zone-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.player-actions{position:fixed;z-index:1000;margin:0;padding:8px;max-height:calc(100dvh - 16px);overflow-y:auto;background:#1d251b;border:1px solid #526147;border-radius:10px;box-shadow:0 12px 36px #0009;animation:player-actions-in .12s ease-out}
.player-actions .player-profile-link{display:block;margin:0 0 6px;padding:9px;text-align:center;font-size:12px;line-height:18px;background:rgba(255,255,255,.035);border-bottom:1px solid rgba(255,255,255,.12);border-radius:5px 5px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.player-actions button{display:block;width:100%;padding:9px;margin:0;border:0;border-radius:5px;background:none;color:var(--text);text-align:left;font:500 12px/18px system-ui;cursor:pointer}
.player-actions button:hover:not(:disabled){background:#ffffff0c}
.player-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.player-actions button:disabled{opacity:.35;cursor:default}
.player-actions .player-action-t{color:#f0b46b}.player-actions .player-action-ct{color:#91bde6}.player-actions .player-action-ban{color:#f09b86;border-top:1px solid var(--line);border-radius:0;margin-top:4px;padding-top:12px}
@keyframes player-actions-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.player-actions{animation:none}}

/* A disabled preparation button is dim even when the settings remain editable. */
#prepare-button:disabled{opacity:.48;cursor:not-allowed;background:var(--accent)}
#match-settings:disabled #prepare-button{opacity:1}

.lobby-ready-check button{margin:0;padding:9px 12px;font-size:12px}
@media(max-width:600px){.lobby-ready-check{padding:10px 12px;gap:8px}.lobby-ready-check button{padding:8px 12px}}

/* Admin settings between the two team cards; independent forms share one grid. */
.lobby-grid.has-settings{grid-template-columns:minmax(0,1fr) 200px minmax(0,1fr);gap:12px;align-items:start}
.has-settings #zone-team1{grid-column:1;grid-row:1}
.has-settings #zone-team2{grid-column:3;grid-row:1}
.lobby-grid .lobby-settings-card{grid-column:2;grid-row:1;height:250px;min-width:0;padding:12px;margin:0;border:1px solid var(--line);border-radius:10px;background:#151b15}
.lobby-settings-card h3{font-size:12px;line-height:14px;font-weight:650;color:var(--text);margin:0 0 8px;max-width:210px}
.lobby-settings-card .lobby-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 8px;margin:0}
.lobby-settings-card label{font-size:10px;line-height:12px;min-width:0}
.lobby-settings-card .setting-format,.lobby-settings-card .setting-veto{grid-column:1/-1}
.lobby-settings-card input,.lobby-settings-card select{height:28px;width:100%;min-width:0;margin:3px 0 0;padding:4px 7px;font:11px/18px system-ui;border-radius:5px}
.lobby-settings-card .secondary{width:100%;margin:8px 0 0;padding:7px 8px;font-size:11px;line-height:16px}
@media(min-width:981px){
 .has-settings>.lobby-zone{padding:12px}
 .has-settings .zone-name{margin:6px 0 8px}
 .has-settings .zone-action{line-height:14px;padding-top:6px;margin-top:8px}
 .has-settings .member{display:flex;align-items:center;gap:5px;height:22px;min-height:22px;flex-basis:22px}
 .has-settings .member-name{font-size:12px;line-height:20px}
 .has-settings .member-stats{gap:5px}
 .has-settings .lobby-player-kd,.has-settings .lobby-player-faceit{font-size:10px;line-height:14px}
 .has-settings .ready-badge{font-size:8px;padding:2px 4px}
 .has-settings .self-badge,.has-settings .captain-badge{padding:1px 3px}
}
@media(max-width:980px){
 .lobby-grid.has-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
 .has-settings #zone-team2{grid-column:2;grid-row:1}
 .lobby-grid .lobby-settings-card{grid-column:1/-1;grid-row:2;height:auto}
 .lobby-settings-card h3{max-width:none}
 .lobby-settings-card .lobby-settings-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .lobby-settings-card .setting-format,.lobby-settings-card .setting-veto{grid-column:auto}
 .lobby-settings-card .secondary{width:auto;min-width:150px;margin-left:auto}
}
@media(max-width:650px){
 .lobby-grid.has-settings{gap:10px}
 .lobby-settings-card .lobby-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lobby-settings-card .lobby-settings-grid label:last-child{grid-column:auto}
 .lobby-settings-card .secondary{width:100%}
}

/* Compact map selection header. */
.veto-card{padding:18px 24px}.veto-card .lobby-heading{margin-bottom:10px}.veto-card h2{font-size:22px;margin-top:4px}.veto-match-options{margin:12px 0;padding-top:10px}.veto-log:empty{display:none}

.veto-captain-summary{margin:0 0 10px;font-size:12px}.veto-admin [hidden]{display:none!important}

/* Team-coloured captain cards. */
.veto-captain-summary{display:flex;justify-content:center;align-items:stretch;gap:20px;margin:2px 0 18px;flex-wrap:wrap}
.veto-captain-card{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border:1px solid;border-radius:8px;font-size:13px;min-width:0;max-width:100%;flex-wrap:wrap;text-align:center;overflow-wrap:anywhere}
.veto-captain-card strong{font-size:14px;font-weight:700}
.veto-captain-ct{color:#91bde6;background:#192a38;border-color:#4c7192}
.veto-captain-t{color:#efad66;background:#342719;border-color:#90663d}
@media(max-width:600px){.veto-captain-summary{gap:10px}.veto-captain-card{width:100%;padding:12px 14px}}

/* Make locked readiness visibly inactive, including the cancel state. */
#lobby-ready-button:disabled{opacity:.4;cursor:default;box-shadow:none;pointer-events:none}

/* Separate captains by roughly one map card on desktop. */
.veto-captain-summary{column-gap:clamp(120px,14vw,155px);row-gap:12px}
@media(max-width:600px){.veto-captain-summary{gap:10px}}

.veto-pool label.is-fixed-pool{cursor:default;pointer-events:none}
.veto-pool input[hidden]{display:none!important}

/* Compact captain selectors and server overview. */
.veto-assignments{gap:16px;margin:12px auto;max-width:740px}
.veto-assignments form{padding:0;border:0;background:transparent}
.veto-assignments select{height:36px;margin:5px 0 0;padding:6px 10px}
.veto-sound-toggle{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}
.veto-sound-toggle input{width:14px;height:14px;margin:0;accent-color:var(--accent)}
.server-compact{padding:16px 20px}
.server-overview{display:flex;align-items:center;gap:18px}
.server-compact .statusline{margin:0;gap:9px}.server-compact .statusline h2{font-size:14px;margin:0}
.server-compact dl{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin:12px 0 0;font-size:12px}
.server-compact dl dt,.server-compact dl dd{margin:0}.server-compact dl dt:not(:first-child){margin-left:16px}
.server-compact #poll-status{display:none}
.server-compact #server-details{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.server-compact #server-note{margin:0 0 10px}
@media(max-width:600px){.server-overview{flex-wrap:wrap;gap:8px 14px}.server-compact dl dt:not(:first-child){margin-left:0}.veto-sound-toggle{margin-left:0}.veto-card .lobby-heading{flex-wrap:wrap;gap:10px}.veto-assignments{grid-template-columns:1fr 1fr;gap:10px}}
.server-compact{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px}
.server-compact dl{margin:0 0 0 auto}.server-compact #server-details{flex-basis:100%;width:100%;margin-top:2px}
@media(max-width:600px){.server-compact dl{margin-left:0}}

.server-compact dl>div{display:flex;align-items:baseline;gap:10px}.server-compact dl>div dt{margin:0}.server-compact dl{row-gap:6px}

/* Green lion beside the Steam sign-in. */
.login-layout{display:grid;grid-template-columns:minmax(0,540px) minmax(0,1fr);align-items:center;gap:46px;padding:0 0 58px}
.login-content{min-width:0}.login-content .login-card{margin-bottom:0}.login-content .page-intro{padding-top:34px}
.login-art{display:flex;align-items:center;justify-content:center;min-width:0;padding-top:24px}
.login-art img{display:block;width:100%;max-width:440px;height:auto;object-fit:contain;filter:drop-shadow(0 14px 28px #0004)}
@media(max-width:850px){.login-layout{gap:20px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.login-art img{max-width:330px}}
@media(max-width:650px){.login-layout{grid-template-columns:minmax(0,1fr);gap:22px;padding-bottom:32px}.login-art{padding-top:0}.login-art img{max-width:240px}.login-content .login-card{max-width:none}}

/* Subtle lion watermark behind the page, with solid cards above it. */
body{isolation:isolate;min-height:100vh}
body:not(.login-page)::before{content:"";position:fixed;top:24px;right:-100px;width:clamp(440px,47vw,740px);aspect-ratio:1;background:url("assets/login-lion.png") center/contain no-repeat;opacity:.045;pointer-events:none;z-index:-1}
@media(max-width:850px){body:not(.login-page)::before{width:480px;right:-170px;top:40px;opacity:.03}}
@media(max-width:500px){body:not(.login-page)::before{width:360px;right:-150px;opacity:.022}}

/* Only the main panel surfaces are translucent; text and inner cards stay solid. */
.lobby-card,.veto-card,.card,.admin-users{background:rgba(25,29,25,.72)}
.live-card{background:linear-gradient(120deg,rgba(32,41,27,.74),rgba(20,26,19,.74))}
.lobby-chat{background:#191d19;border-radius:7px}

.match-date-actions{display:flex;align-items:center;gap:8px;min-width:0}.match-date-actions time{white-space:nowrap}
.history-delete-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;padding:0;margin:0;border:1px solid #614438;border-radius:4px;background:#2b211d;color:#dbac98;font:18px/1 system-ui;cursor:pointer}
.history-delete-button:hover{background:#4a2924;border-color:#bb7563;color:#fff}.history-delete-button:focus-visible{outline:2px solid #efad66;outline-offset:2px}.history-delete-form{display:none}

/* Dedicated, centred delete column between date and disclosure arrow. */
.history-columns,.match-summary{grid-template-columns:95px minmax(120px,1fr) 82px 155px 62px 140px 32px 18px}
.match-summary>.history-delete-button{justify-self:center;align-self:center}
@media(max-width:1000px){.history-columns,.match-summary{grid-template-columns:80px minmax(100px,1fr) 76px 130px 45px 120px 28px 15px;gap:10px}}
@media(max-width:800px){.match-summary{grid-template-columns:80px minmax(90px,1fr) 80px 28px 18px;gap:8px 12px}.match-summary>.history-delete-button{grid-column:4;grid-row:1/3}.match-summary>.match-chevron{grid-column:5;grid-row:1/3}}
@media(max-width:450px){.match-summary{grid-template-columns:65px minmax(65px,1fr) 64px 26px 14px;gap:8px}}

/* Centre delete in the actual free space, not a fixed-width column. */
.match-meta{grid-column:6/-1;display:grid;grid-template-columns:max-content minmax(22px,1fr) 18px;align-items:center;gap:14px;min-width:0}
.match-meta>.history-delete-button{justify-self:center;align-self:center}
.match-meta>.match-date,.match-meta>.match-chevron{grid-column:auto!important;grid-row:auto!important}
.match-meta>.match-date{white-space:nowrap}
@media(max-width:1000px){.match-meta{gap:10px;grid-template-columns:max-content minmax(22px,1fr) 15px}}
@media(max-width:800px){.match-meta{grid-column:1/-1;grid-row:3;grid-template-columns:max-content minmax(22px,1fr) 18px;gap:12px}}

/* Private administrator inbox and unban requests. */
.messages-unread{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#172009;font-size:10px;font-weight:750;margin-left:4px}.messages-unread[hidden]{display:none}
.messages-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px}.messages-layout h2,.appeal-card h2{margin-top:0}
.message-compose textarea,.appeal-card textarea{display:block;width:100%;resize:vertical;min-height:130px;background:#101710;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px;font:14px/1.5 system-ui;margin:8px 0 14px}
.private-message{border:1px solid var(--line);background:#151b15;border-radius:8px;margin-top:12px;overflow:hidden}.private-message.is-unread{border-color:#718944}
.private-message summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:14px;cursor:pointer;font-size:12px}.message-kind{color:var(--accent);width:100%;font-size:10px;text-transform:uppercase;letter-spacing:.7px}.private-message time{font-size:10px;color:var(--muted);margin-left:auto}.unread-label{color:var(--accent);font-size:10px}
.message-content{padding:0 14px 14px;border-top:1px solid var(--line)}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.65}.message-read-form .secondary{font-size:11px}.appeal-card{max-width:650px}.ban-logout{margin:20px 0}.message-compose label{display:block;margin-top:14px}
@media(max-width:850px){.messages-layout{grid-template-columns:1fr}.message-compose{grid-row:1}.account{flex-wrap:wrap}}

.admin-user:target{outline:1px solid var(--accent);outline-offset:4px;scroll-margin-top:24px}

.message-tabs{display:flex;gap:8px;margin:12px 0 18px}.messages-link{white-space:nowrap}
@media(max-width:1150px){.header-controls{flex-wrap:wrap;justify-content:flex-end;gap:10px}.panel-header{min-height:100px;height:auto;padding-top:18px;padding-bottom:18px}.header-nav{flex-wrap:wrap}}

/* Compact mailbox entry next to the account name. */
.header-controls-compact .header-identity{margin-left:0;gap:12px}.header-controls-compact{gap:16px}.messages-envelope{display:inline-flex;align-items:center;gap:5px;color:var(--muted);padding:6px 2px;flex-shrink:0}.messages-envelope:hover,.messages-envelope[aria-current="page"]{color:var(--accent)}
.account .messages-unread{display:inline-flex;align-items:center;justify-content:center;font:700 10px/1 system-ui;color:#172009;margin:0;min-width:18px;max-width:none}.account .messages-unread[hidden]{display:none}
.message-read-form{display:none}.message-delete-form{margin-top:14px}.message-delete-small{font:11px system-ui;color:#dbac98;background:transparent;border:1px solid #614438;padding:6px 9px;border-radius:4px;cursor:pointer}.message-delete-small:hover{background:#4a2924;color:#fff}

.header-controls-compact .header-identity{flex-direction:row-reverse}

.message-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}.message-actions .message-delete-form{margin:0}
.message-reply-small{display:inline-flex;align-items:center;justify-content:center;font:11px system-ui;color:var(--accent);background:transparent;border:1px solid #52653a;padding:6px 9px;border-radius:4px}.message-reply-small:hover{background:#28351c}.message-reply-small:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Keep both inbox and sent history at roughly five collapsed message rows. */
#message-list{max-height:420px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior:contain;padding-right:8px;scrollbar-color:#52653a #111711;scrollbar-width:thin}
#message-list>.private-message:first-child{margin-top:0}
#message-list::-webkit-scrollbar{width:7px}#message-list::-webkit-scrollbar-track{background:#111711;border-radius:5px}#message-list::-webkit-scrollbar-thumb{background:#52653a;border-radius:5px}

/* One expandable conversation per person; scrolling is inside its history. */
#message-list{max-height:none;overflow:visible;padding-right:0;scrollbar-gutter:auto}
.thread-count{color:var(--muted);font-size:10px}.thread-history{max-height:380px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#52653a #111711;display:flex;flex-direction:column;gap:10px;padding:12px 8px 12px 0}
.thread-message{flex-shrink:0;min-height:64px;padding:12px;background:#111711;border:1px solid var(--line);border-radius:7px;margin-right:28px}.thread-message.is-outgoing{margin-right:0;margin-left:28px;background:#202b18;border-color:#3f5130}
.thread-message-heading{display:flex;align-items:center;gap:12px;font-size:11px}.thread-message-heading time{margin-left:auto}.thread-message .message-body{margin:8px 0 0}.message-thread>.message-content{padding-top:0}

/* The waiting room uses the same whole-card join shortcut as the teams. */
.waiting-room #zone-waiting:has(#action-waiting:not(:disabled)){cursor:pointer}
.waiting-room #zone-waiting:has(#action-waiting:not(:disabled)):hover{border-color:var(--accent);background:#202b17}

/* Player profile: open the same match detail inline as in history. */
.player-recent-summary{display:grid;grid-template-columns:minmax(0,1fr) auto 90px 18px;align-items:center;gap:20px;font-size:13px;padding:16px 12px;cursor:pointer;list-style:none}
.player-recent-summary::-webkit-details-marker{display:none}
.player-recent-summary:hover{background:#202b17}
.player-recent-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.player-recent-match{margin:8px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.player-recent-match .history-expanded{background:#121711}
@media(max-width:600px){.player-recent-summary{gap:10px;grid-template-columns:minmax(0,1fr) auto 65px 14px;padding:14px 8px}}

.player-search{display:flex;align-items:end;gap:10px}.player-search label{min-width:180px}.player-search input{margin-bottom:0}.player-search button.secondary{width:auto;margin:0}.admin-search{margin:18px 0}.admin-search label{flex:1;max-width:360px}@media(max-width:600px){.player-search{width:100%}.player-search label{flex:1;min-width:0}}

/* Scoreboard colours follow the current side, including side swaps. */
.score-team[data-side="CT"] .score,.score-team[data-side="CT"] .teamlabel{color:#91bde6}
.score-team[data-side="T"] .score,.score-team[data-side="T"] .teamlabel{color:#eeab62}
.score-team[data-side=""] .score,.score-team[data-side=""] .teamlabel{color:var(--text)}

#veto{scroll-margin-top:24px}

.player-profile-link{color:var(--text);text-decoration:none;font-weight:700}.player-profile-link[href]:hover{color:var(--accent);text-decoration:underline}.player-profile-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

.profile-title{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.profile-title-name{min-width:0;overflow-wrap:anywhere}.steam-profile-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;color:var(--muted);border-radius:6px;line-height:1}.steam-profile-icon:hover{color:var(--accent);background:#ffffff08}.steam-profile-icon:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.match-duration{display:block;margin-top:5px;color:var(--muted);font:10px monospace;white-space:nowrap}
