:root{color-scheme:dark;--bg:#090c11;--panel:#121821;--line:#2d3746;--accent:#745cff;--cyan:#4cc9c0;--ct:#55a5ff;--t:#f2bd4f;--text:#f5f7fb;--muted:#9aa6b8;--error:#ff7168}
.session-score{font-weight:800}.session-score-win{color:#36d37e}.session-score-loss{color:#ff5c70}.session-score-draw,.session-score-unknown{color:var(--muted)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,system-ui,sans-serif;color:var(--text)}
header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:#0d1118}.brand{font-size:23px;font-weight:900;color:#fff;text-decoration:none}.download{background:var(--accent);color:#fff;text-decoration:none;padding:10px 15px;border-radius:7px;font-weight:800}
main{width:min(1440px,94vw);margin:0 auto;padding:28px 0}.hero{padding:40px 0 48px;max-width:780px}.eyebrow{font-size:12px;letter-spacing:0;color:var(--cyan);font-weight:900}h1{font-size:58px;line-height:1;margin:12px 0 20px;letter-spacing:0}.hero>p:not(.eyebrow){font-size:19px;color:var(--muted);line-height:1.5;max-width:650px}.hero-actions{display:flex;align-items:center;gap:10px;margin-top:24px}.big{padding:13px 18px}
button{background:#171e29;color:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 13px;cursor:pointer;font:inherit}button:hover,button:focus-visible{border-color:#7c8ba1;outline:none}.primary{background:var(--accent);border-color:var(--accent);font-weight:800}.icon-button{width:40px;height:40px;display:grid;place-items:center;padding:0;font-size:20px}.play-button{background:var(--accent);border-color:var(--accent)}button:disabled{opacity:.5;cursor:wait}
.upload-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:20px;margin:0 0 34px}.upload-title,.upload-actions,.sessions-head,.review-head,.transport,.progress-line{display:flex;align-items:center}.upload-title{justify-content:space-between}.upload-title h2,.upload-title p{margin:0}.upload-title p{color:var(--muted);font-size:13px;margin-top:5px}.upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.upload-grid label{margin:0}.upload-grid input{margin-top:7px;background:#0c1118;border:1px solid var(--line);color:var(--text);padding:10px;border-radius:6px}.upload-actions{gap:16px;margin-top:18px}.upload-progress{display:flex;align-items:center;gap:10px;flex:1}.upload-progress progress{width:min(420px,70%);height:10px;accent-color:var(--cyan)}.upload-progress span{font-size:12px;color:var(--muted)}
.demo-drop-zone{position:relative;padding:11px;border:1px dashed #46536a;border-radius:8px;background:#0c1118;transition:border-color .15s,background .15s,box-shadow .15s}.demo-drop-zone input{margin-bottom:7px}.demo-drop-zone>span{display:block;color:#7f8ba0;font-size:10px}.demo-drop-zone.is-dragging{border-color:var(--cyan);background:rgba(76,201,192,.08);box-shadow:0 0 0 3px rgba(76,201,192,.1)}.demo-drop-zone.has-file{border-color:#46d39a}.demo-drop-zone.has-file>span{color:#46d39a}.demo-drop-zone.drop-error{border-color:var(--error)}.demo-drop-zone.drop-error>span{color:var(--error)}
.sessions-head{justify-content:space-between}.sessions-head span{color:var(--cyan);font-size:14px}.session-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.session{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;min-height:118px}.session[role=button]{cursor:pointer}.session[role=button]:hover,.session[role=button]:focus{border-color:var(--accent);outline:none}.session p{color:var(--muted);font-size:13px}.session-error{color:var(--error)!important}.session progress{width:100%;height:9px;accent-color:var(--cyan)}.progress-line{justify-content:space-between;gap:12px;margin-top:7px;color:var(--muted);font-size:12px}.progress-line b{color:var(--text);white-space:nowrap}
.session-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),390px));gap:18px}.session{position:relative;display:flex;flex-direction:column;min-height:360px;padding:0;overflow:hidden;border-radius:12px;background:linear-gradient(155deg,#151c26 0%,#10161f 72%);box-shadow:0 12px 32px rgba(0,0,0,.16);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.session[role=button]:hover,.session[role=button]:focus{transform:translateY(-3px);box-shadow:0 18px 38px rgba(0,0,0,.28)}.session-result-win{border-top:3px solid #36d37e}.session-result-loss{border-top:3px solid #ff5c70}.session-summary{height:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:20px 20px 17px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.018)}.session-identity{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:5px 9px;min-width:0}.session-date{grid-column:1/-1;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em}.session-time{font-size:21px;line-height:1}.session-map{align-self:center;padding:4px 7px;border:1px solid #344154;border-radius:5px;color:#c8d5e7;background:#0b1119;font-size:10px;font-weight:900;letter-spacing:.08em}.session-platform{display:inline-flex;align-items:center;gap:4px;justify-self:start;padding:4px 7px;border:1px solid #344154;border-radius:5px;background:#0b1119;font-size:9px;font-weight:950;letter-spacing:.08em}.session-platform img{width:13px;height:13px;display:block}.session-platform-faceit{color:#ff6a2b;border-color:#6b3826}.session-platform-premier{color:#72b9ff;border-color:#2e5275}.session-ai-check{display:inline-flex;align-items:center;gap:3px;justify-self:start;padding:4px 7px;border:1px solid rgba(77,225,198,.42);border-radius:5px;background:rgba(38,201,173,.1);color:#67ecd2;font-size:9px;font-weight:950;letter-spacing:.06em;box-shadow:inset 0 0 12px rgba(55,215,189,.06)}.session-ai-check::first-letter{color:#b693ff}.session-outcome{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto}.session-outcome span{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.session-outcome strong{margin-top:3px;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}.session-outcome-win span,.session-outcome-win strong{color:#36d37e}.session-outcome-loss span,.session-outcome-loss strong{color:#ff5c70}.session-outcome-draw span,.session-outcome-unknown span,.session-outcome-unknown strong{color:var(--muted)}.session-card-roster{padding:16px 20px 8px}.session-roster-label{display:block;margin-bottom:8px;color:#748196;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.session-card-roster ol{display:flex;flex-direction:column;gap:3px;margin:0;padding:0;list-style:none}.session-card-roster li{display:flex;align-items:center;gap:9px;min-width:0;padding:5px 8px;border-radius:5px;color:#dce5f1;background:rgba(255,255,255,.025);font-size:12px}.session-card-roster li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-player-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#718096;box-shadow:0 0 0 3px rgba(113,128,150,.12)}.session-result-win .session-player-dot{background:#36d37e}.session-result-loss .session-player-dot{background:#ff5c70}.session>.voice-ready,.session>progress,.session>.progress-line,.session>.session-error,.session>button:not(.session-delete){margin-left:20px;margin-right:20px}.session-delete{align-self:flex-start;margin:auto 20px 18px;padding:7px 10px;border-color:#3b4656;background:transparent;color:#9eabba;font-size:11px}.session-delete:hover,.session-delete:focus-visible{border-color:#ff5c70;color:#ff7a8b;background:rgba(255,92,112,.08)}
.review-head{gap:10px;margin-bottom:10px}.review-head h2{margin:0;font-size:20px}.map-name{color:var(--cyan);font-size:12px}.view-tabs,.level-control,.speed-control{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.view-tabs{margin-left:auto}.view-tabs button,.level-control button,.speed-control button{border:0;border-radius:0}.view-tabs button.active,.level-control button.active,.speed-control button.active{background:var(--accent);color:#fff}.level-control[hidden]{display:none}.share-status{color:var(--cyan);font-size:10px;min-width:0}
.round-nav{display:flex;gap:5px;overflow-x:auto;padding:5px 0 10px;scrollbar-width:thin}.round-button{flex:0 0 35px;width:35px;height:32px;padding:0;border-width:1px;font-size:12px;font-weight:900}.round-button.winner-ct{color:var(--ct);border-color:#315f91}.round-button.winner-t{color:var(--t);border-color:#79632f}.round-button.active{color:#080b10;box-shadow:0 0 0 2px #fff}.round-button.active.winner-ct{background:var(--ct)}.round-button.active.winner-t{background:var(--t)}
.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:12px;align-items:start}.replay-column{min-width:0}.canvas-wrap,aside,.player-bar{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px}.canvas-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,260px);align-items:stretch;gap:10px;height:calc(100vh - 250px);min-height:430px;overflow:hidden}.map-stage{position:relative;display:grid;place-items:center;min-width:0;min-height:0}.map-stage canvas{display:block;width:min(100%,calc(100vh - 272px));height:auto;max-height:100%;background:#090d14;aspect-ratio:1}.heatmap-controls{position:absolute;z-index:2;top:8px;left:8px;right:8px;display:flex;align-items:end;gap:7px;padding:7px;background:rgba(9,13,20,.9);border:1px solid var(--line);border-radius:6px}.heatmap-controls[hidden]{display:none}.heatmap-controls label{margin:0;font-size:10px}.heatmap-controls select{display:block;margin-top:3px;padding:5px;background:#111822;color:#fff;border:1px solid var(--line);border-radius:4px}.heatmap-controls span{margin-left:auto;color:var(--cyan);font-size:10px}.team-roster{min-width:0;overflow:auto;border-left:1px solid var(--line);padding-left:10px;scrollbar-width:thin}.team-block+.team-block{margin-top:12px}.team-title{display:flex;align-items:center;justify-content:space-between;padding:2px 1px 6px;font-size:11px;font-weight:900;text-transform:uppercase}.team-title.ct{color:var(--ct)}.team-title.t{color:var(--t)}.team-title span{color:var(--muted);font-size:10px}.roster-player{padding:7px 7px 6px;margin-bottom:5px;background:#111822;border:1px solid #293443;border-left:3px solid var(--ct);border-radius:6px;cursor:pointer}.roster-player:hover,.roster-player:focus-visible{border-color:#8190a5;outline:none}.roster-player.selected{background:#20293a;box-shadow:inset 0 0 0 1px #fff}.roster-player.t{border-left-color:var(--t)}.roster-player.dead{filter:grayscale(1);opacity:.38;background:#15181d}.roster-player-head{display:flex;align-items:center;gap:7px;min-width:0}.roster-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800}.roster-hp{margin-left:auto;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.roster-weapon{margin-top:4px;color:#dbe3ef;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-weapon strong{color:#fff}.roster-gear{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px}.gear-chip{padding:2px 4px;border:1px solid currentColor;border-radius:4px;font-size:9px;font-weight:900;background:#0b1017}.gear-chip.flash{color:#ffe078}.gear-chip.smoke{color:#77c7d6}.gear-chip.he{color:#ff6b62}.gear-chip.fire{color:#ff9f43}.gear-chip.decoy{color:#b58cff}.gear-chip.passive{color:#788597;font-weight:700}.roster-empty{padding:18px 8px;color:var(--muted);font-size:11px;text-align:center}.player-bar{margin-top:8px}.transport{justify-content:center;gap:7px;margin-bottom:7px}.transport #time{font-variant-numeric:tabular-nums;min-width:84px;color:var(--muted);font-size:12px}#timeline{accent-color:var(--accent);width:100%}.playback-options{display:flex;align-items:center;justify-content:center;gap:12px;margin:4px 0 8px}.speed-control button{padding:5px 8px;font-size:10px}.skip-toggle{display:flex;align-items:center;gap:5px;margin:0;font-size:10px}.skip-toggle input{width:auto}
aside{height:calc(100vh - 160px);min-height:530px;overflow:auto}aside h3{margin:17px 0 8px;font-size:13px}.round-summary{display:flex;align-items:baseline;gap:5px;padding-bottom:9px;border-bottom:1px solid var(--line);font-size:13px}.round-summary strong{font-size:21px}.round-summary span{margin-left:auto;font-size:11px;font-weight:800}.audio-summary{margin-top:10px;padding:7px 8px;border:1px solid var(--line);border-radius:5px;color:var(--cyan);font-size:11px;font-weight:800}.ct-text{color:var(--ct)}.t-text{color:var(--t)}label{display:block;margin-top:11px;color:var(--muted);font-size:12px}input{width:100%}input:disabled{opacity:.35}.event{display:block;width:100%;padding:7px;margin-top:5px;text-align:left;font-size:11px}.utility-legend{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}.utility-legend span{padding:3px 6px;border:1px solid currentColor;border-radius:4px;font-size:10px}.smoke{color:#77c7d6}.flash{color:#ffe078}.he{color:#ff6b62}.fire{color:#ff9f43}
.insight-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:14px;border-bottom:1px solid var(--line);padding-bottom:7px}.insight-tabs button{min-width:0;padding:7px 3px;border:0;border-radius:4px;font-size:10px;color:var(--muted)}.insight-tabs button.active{background:#242d3a;color:#fff}.insight-panel[hidden]{display:none}.insight-card{display:flex;flex-direction:column;gap:3px;width:100%;padding:9px;margin-top:6px;text-align:left;border-left:3px solid currentColor;font-size:11px}.insight-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.insight-card b{color:#fff}.insight-card small{color:var(--muted);font-size:10px}.insight-card em{color:#c5cdda;font-size:10px;line-height:1.35;font-style:normal;margin-top:4px}.insight-card.flash{color:#ffe078}.insight-card.he{color:#ff6b62}.insight-card.fire{color:#ff9f43}.ranking-category{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.ranking-category h4{margin:0 0 5px;font-size:11px;color:var(--cyan)}.ranking-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:6px;align-items:center;padding:5px 2px;font-size:10px}.ranking-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-row span:last-child{color:#fff;font-weight:900}.ranking-medal{color:var(--muted);font-weight:900}.ranking-row:first-of-type .ranking-medal{color:var(--t)}
@media(max-width:1050px){.canvas-wrap{grid-template-columns:1fr;height:auto}.map-stage canvas{width:min(100%,720px)}.team-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-left:0;border-top:1px solid var(--line);padding:10px 0 0;max-height:260px}.team-block+.team-block{margin-top:0}}
@media(max-width:800px){header{padding:0 3vw}.download{font-size:11px}main{width:95vw}.hero{padding:30px 0 38px}h1{font-size:42px}.upload-grid{grid-template-columns:1fr}.review-layout{grid-template-columns:1fr}.canvas-wrap{height:auto;min-height:0}.map-stage canvas{width:100%;height:auto}.team-roster{grid-template-columns:1fr;max-height:340px}.team-block+.team-block{margin-top:8px}aside{height:auto;min-height:0;max-height:45vh}.review-head{align-items:flex-start;flex-wrap:wrap}.view-tabs{margin-left:0}.level-control{margin-left:0}.transport{gap:4px;flex-wrap:wrap}.transport button{padding:7px}.playback-options{align-items:stretch;flex-direction:column}.speed-control{align-self:center}.heatmap-controls{position:static;grid-row:2;flex-wrap:wrap;margin-top:6px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions>*{text-align:center}}
.heatmap-controls{flex-wrap:wrap}.heatmap-controls select{max-width:180px}.heatmap-controls span{flex:1 0 100%;margin-left:0}
.analysis-filters{display:grid;gap:9px;margin-top:12px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#0b1119}.analysis-filter-group{display:grid;gap:4px}.analysis-filter-group>span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.analysis-filter-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:1px;scrollbar-width:thin}.analysis-filter-tabs button{flex:0 0 auto;padding:5px 8px;border:1px solid #2c3848;border-radius:5px;background:#111822;color:#aebacd;font-size:10px;font-weight:750;white-space:nowrap}.analysis-filter-tabs button:hover,.analysis-filter-tabs button:focus-visible{border-color:#65768b;color:#fff;outline:none}.analysis-filter-tabs button.active{border-color:rgba(77,225,198,.75);background:rgba(42,201,174,.14);color:#76f2d8;box-shadow:inset 0 0 0 1px rgba(77,225,198,.12)}.analysis-filter-players{padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}.coach-role-panel[hidden]{display:none!important}.insight-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-card{display:flex;flex-direction:column;gap:4px;width:100%;padding:9px;margin-top:6px;text-align:left;border-left:3px solid #75849a;font-size:10px}.analysis-card.positive{border-left-color:#46d39a}.analysis-card.warning{border-left-color:#f0bd55}.analysis-card.negative{border-left-color:#ff6b62}.analysis-card-top{display:flex;justify-content:space-between;gap:5px}.analysis-card-top strong{color:var(--cyan);font-size:10px}.analysis-card-top small{color:var(--muted)}.analysis-card b{color:#fff;font-size:11px}.analysis-card span{color:#c9d1dd}.analysis-card em{color:var(--muted);font-style:normal;line-height:1.35}.summary-metric{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:7px;padding:8px;margin-top:6px;border:1px solid var(--line);border-left:3px solid #ffbd55;border-radius:5px;background:#111822}.summary-metric.positive{border-left-color:#46d39a}.summary-metric strong{font-size:18px;color:#fff}.summary-metric span{font-size:10px;color:#cbd4e1}
.analysis-card.utility-flash{border-left-color:#ffe078}.analysis-card.utility-he{border-left-color:#ff6b62}.analysis-card.utility-fire{border-left-color:#ff9f43}.analysis-card-top.round-only{justify-content:flex-end}.analysis-card.utility-flash b{color:#ffe078}.analysis-card.utility-he b{color:#ff6b62}.analysis-card.utility-fire b{color:#ff9f43}
.roster-weapon{display:flex;align-items:center;gap:5px;min-height:29px;margin-top:3px}.equipment-item{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:27px;padding:3px 5px;border:1px solid #344154;border-radius:5px;background:#0b1017;color:#dce5f1}.equipment-item.active{border-color:#fff;background:#20293a;box-shadow:0 0 0 1px rgba(255,255,255,.14)}.equipment-icon{display:block;width:auto;max-width:58px;height:19px;object-fit:contain}.roster-gear .equipment-item{min-width:27px;width:27px;height:25px;padding:3px}.roster-gear .equipment-icon{max-width:20px;height:17px}.equipment-item.flash{color:#ffe078;border-color:#8e7b3c;background:#302a17}.equipment-item.smoke{color:#77c7d6;border-color:#376c76;background:#14272b}.equipment-item.he{color:#ff6b62;border-color:#8b3e3a;background:#301817}.equipment-item.fire{color:#ff9f43;border-color:#8b572c;background:#301f13}.equipment-item.decoy{color:#b58cff;border-color:#634d8a;background:#221b30}.equipment-item.c4{color:#ff9f43;border-color:#8b572c;background:#301f13}.equipment-item.passive{color:#a9b5c6;border-color:#455267;background:#151c27}.equipment-count{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border:1px solid #080c12;border-radius:8px;background:currentColor;color:#080c12;font-size:8px;font-weight:950;line-height:1}.equipment-fallback{max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:800}.roster-player.dead .equipment-item{opacity:.6}
.canvas-wrap{grid-template-columns:210px minmax(0,1fr) 210px}.map-stage{grid-column:2;grid-row:1}.team-roster{display:contents}.team-roster .team-block{min-width:0;overflow:hidden;padding:0 5px}.team-roster .team-block:first-child{grid-column:1;grid-row:1}.team-roster .team-block:last-child{grid-column:3;grid-row:1}.team-block+.team-block{margin-top:0}.roster-player{box-sizing:border-box;height:92px;margin-bottom:6px;overflow:hidden}.roster-weapon{height:29px;min-height:29px}.roster-gear{height:25px;min-height:25px;overflow:visible}.team-title{height:27px;box-sizing:border-box}
@media(max-width:1250px){.canvas-wrap{grid-template-columns:180px minmax(0,1fr) 180px}.team-roster .team-block{padding:0 3px}.roster-player{padding-left:5px;padding-right:5px}.roster-gear{gap:2px}.roster-gear .equipment-item{min-width:24px;width:24px}}
@media(max-width:1050px){.canvas-wrap{grid-template-columns:1fr;height:auto}.map-stage{grid-column:1;grid-row:1}.team-roster{display:grid;grid-column:1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-left:0;border-top:1px solid var(--line);padding:10px 0 0;max-height:none;overflow:visible}.team-roster .team-block:first-child,.team-roster .team-block:last-child{grid-column:auto;grid-row:auto;padding:0}.roster-player{height:92px}}
@media(max-width:650px){.team-roster{grid-template-columns:1fr}.roster-player{height:auto;min-height:92px}}
.roster-gear{display:grid;grid-template-columns:minmax(0,1fr) 58px;align-items:center;gap:5px}.roster-utility,.roster-passive{display:flex;align-items:center;gap:3px;min-width:0;height:25px}.roster-utility{overflow:visible}.roster-passive{justify-content:flex-end;padding-left:5px;border-left:1px solid #344154}.roster-passive:empty{border-left-color:transparent}@media(max-width:1250px) and (min-width:1051px){.roster-gear{grid-template-columns:minmax(0,1fr) 45px;gap:3px}.roster-gear .equipment-item{min-width:19px;width:19px;height:22px;padding:2px}.roster-gear .equipment-icon{max-width:15px;height:15px}.roster-utility,.roster-passive{gap:2px}.roster-passive{padding-left:3px}}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:50px;padding:24px 5vw;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.site-footer nav{display:flex;flex-wrap:wrap;gap:14px}.site-footer a{color:#b8c4d5;text-decoration:none}.site-footer a:hover{color:#fff}.legal-page{max-width:1080px}.legal-page h1{font-size:52px}.legal-intro{max-width:680px;color:var(--muted);font-size:18px;line-height:1.55}.legal-publisher{display:grid;gap:5px;margin:35px 0;padding:20px;border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:8px;background:var(--panel)}.legal-publisher span{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.legal-publisher strong{font-size:20px}.legal-publisher p{margin:4px 0;color:#c8d2df;line-height:1.5}.legal-publisher a{color:var(--cyan)}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.legal-card{display:grid;gap:9px;min-height:190px;padding:22px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(145deg,#151c26,#10161f);color:var(--text);text-decoration:none}.legal-card:hover{border-color:var(--accent);transform:translateY(-2px)}.legal-card>span{color:var(--cyan);font-size:10px;font-weight:900}.legal-card>strong{font-size:19px}.legal-card p{margin:0;color:var(--muted);line-height:1.5}.legal-card b{align-self:end;color:#bfb5ff;font-size:11px}.legal-update{margin-top:20px;color:var(--muted);font-size:11px}@media(max-width:700px){.site-footer{align-items:flex-start;flex-direction:column}.legal-grid{grid-template-columns:1fr}.legal-page h1{font-size:38px}}
.audio-mixer{display:grid;gap:5px 9px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:7px;background:#0b1119}.audio-mixer label{display:flex;align-items:baseline;gap:6px;margin:0}.audio-mixer label span{color:#e8eef7;font-size:11px;font-weight:800}.audio-mixer label small{color:#6f7d91;font-size:9px}.audio-mixer input{margin:0 0 6px;accent-color:var(--cyan)}.audio-mixer input:last-child{margin-bottom:0}
.team-microphone-tracks{display:contents}.team-microphone-track{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;padding-top:5px;border-top:1px solid #202b39}.team-microphone-track label{min-width:0}.team-microphone-track label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-microphone-state{color:#718096;font-size:8px;font-weight:900;white-space:nowrap}.team-microphone-state.complete{color:#55e6b6}.team-microphone-state.uploaded{color:#ffd27a}.team-microphone-track input{grid-column:1/-1}
#inputTrackStatus.complete{color:#55e6b6;font-weight:900}
.coach-role-panel{display:grid;gap:9px;margin-top:10px;padding:12px;border:1px solid #4a426f;border-radius:8px;background:linear-gradient(145deg,#121525,#0d141d)}.coach-role-panel-head{display:flex;align-items:start;justify-content:space-between;gap:8px}.coach-role-panel-head small{display:block;color:#b799ff;font-size:8px;font-weight:900;letter-spacing:.1em}.coach-role-panel-head h3{margin:2px 0 0;color:#fff;font-size:13px}.coach-role-panel-head span{padding:4px 7px;border:1px solid #684d4c;border-radius:99px;color:#ffbd72;font-size:8px;font-weight:900}.coach-role-panel-head span.complete{border-color:#367a67;color:#62e5bf}.coach-role-panel p{margin:0;color:#aeb9c9;font-size:10px;line-height:1.4}.coach-role-panel p b{color:#fff}.coach-role-suggestion{padding:7px 8px;border-left:2px solid #a88cff;border-radius:4px;background:rgba(110,82,192,.12);color:#cfc2ff!important}.coach-role-assignments{display:grid;gap:7px}.coach-role-assignment{display:grid;gap:6px;padding:8px;border:1px solid #303a51;border-radius:6px;background:#0b1119;transition:border-color .16s,box-shadow .16s}.coach-role-assignment.is-focused{border-color:#a88cff;box-shadow:0 0 0 2px rgba(168,140,255,.16)}.coach-role-assignment strong{overflow:hidden;color:#f0f5fb;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.coach-role-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.coach-role-choice{display:grid;grid-template-columns:19px minmax(0,1fr);align-items:center;gap:4px}.coach-role-choice span{color:#8fa2b9;font-size:9px;font-weight:900;text-align:center}.coach-role-assignment select{width:100%;min-width:0;padding:6px 5px;border:1px solid #3b455b;border-radius:4px;background:#111925;color:#edf3fb;font-size:9px}.coach-role-panel .admin-error{min-height:0;margin:0}.coach-role-link{cursor:pointer}.coach-role-link:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.round-clock{position:absolute;z-index:7;top:10px;left:50%;display:grid;min-width:82px;padding:5px 13px 7px;transform:translateX(-50%);border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(7,10,15,.9);box-shadow:0 5px 20px rgba(0,0,0,.45);text-align:center;pointer-events:none}.round-clock small{color:#97a5b8;font-size:8px;font-weight:900;letter-spacing:.12em}.round-clock strong{color:#fff;font-size:22px;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 8px #000}.round-clock.planted{border-color:#ff5a61}.round-clock.planted strong{color:#ff7278}
.brand{display:inline-flex;align-items:center;gap:9px}.brand img{width:34px;height:34px;object-fit:contain}.brand span{line-height:1}
.clip-button{margin-left:8px;border-color:#6553c7;background:linear-gradient(135deg,#6755d7,#15a7c7);font-size:11px;font-weight:900;white-space:nowrap}.clip-button:not(:disabled):hover{border-color:#b9acff;box-shadow:0 0 0 2px rgba(116,92,255,.2)}.clip-status{min-height:20px;margin:-2px 0 6px;text-align:center;color:var(--muted);font-size:10px}.clip-status.is-working{color:var(--cyan)}.clip-status.is-ready{color:#46d39a}.clip-status.is-error{color:var(--error)}.clip-status a{color:#8fe7f4;font-weight:900}
.session-loading{position:fixed;z-index:50;top:76px;left:50%;display:flex;align-items:center;gap:10px;transform:translateX(-50%);padding:10px 14px;border:1px solid #4e426f;border-radius:999px;background:rgba(15,19,29,.96);box-shadow:0 12px 35px rgba(0,0,0,.42);color:#f5f7fb;font-size:12px}.session-loading[hidden]{display:none}.session-loading span,.session-opening::before{width:18px;height:18px;border:2px solid rgba(116,92,255,.28);border-top-color:#8c75ff;border-right-color:var(--cyan);border-radius:50%;animation:session-spin .7s linear infinite}@keyframes session-spin{to{transform:rotate(360deg)}}.session-grid.is-opening .session:not(.session-opening){opacity:.5;pointer-events:none}.session-opening{pointer-events:none!important;transform:none!important}.session-opening::after{content:"Ouverture…";position:absolute;z-index:3;inset:0;display:grid;place-items:center;padding-top:52px;background:rgba(8,11,17,.78);color:#fff;font-size:13px;font-weight:900;letter-spacing:.03em;backdrop-filter:blur(2px)}.session-opening::before{content:"";position:absolute;z-index:4;top:calc(50% - 18px);left:calc(50% - 9px)}
.header-actions,.session-toolbar{display:flex;align-items:center;gap:10px}.admin-mode{border-color:#3e4a5c;background:#111822;color:#aeb9c9;font-weight:900}.admin-mode.active{border-color:#ffb24d;background:rgba(255,178,77,.12);color:#ffc978;box-shadow:0 0 0 2px rgba(255,178,77,.1)}.session-toolbar label{display:flex;align-items:center;gap:7px;margin:0;font-size:10px}.session-toolbar select{padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#111822;color:#fff}.admin-dialog{width:min(430px,calc(100vw - 30px));padding:0;border:1px solid #3b4759;border-radius:12px;background:#111822;color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.62)}.admin-dialog::backdrop{background:rgba(3,6,10,.78);backdrop-filter:blur(4px)}.admin-dialog form{padding:22px}.admin-dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.admin-dialog h2{margin:2px 0 0}.admin-dialog small{color:var(--cyan);font-weight:900;letter-spacing:.12em}.admin-dialog p{color:var(--muted);font-size:12px;line-height:1.5}.admin-dialog input{margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#0b1119;color:#fff}.admin-dialog .primary{width:100%;margin-top:16px}.admin-error{display:block;min-height:18px;margin-top:8px;color:var(--error);font-size:11px}@media(max-width:700px){.header-actions{gap:5px}.admin-mode{padding:9px}.session-toolbar{align-items:flex-end;flex-direction:column;gap:5px}}
.sources-dialog{width:min(760px,calc(100vw - 30px));max-height:90vh}.source-config{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#0c121a}.source-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.source-title label{display:flex;align-items:center;gap:8px;margin:0;color:#fff;font-size:14px;font-weight:900}.source-title input{width:auto;margin:0}.source-title b{max-width:55%;color:var(--muted);font-size:10px;text-align:right}.source-title b[data-status=watching]{color:#46d39a}.source-title b[data-status=match_detected]{color:var(--cyan)}.source-account{display:flex;align-items:center;gap:10px;margin-top:12px;padding:9px;border:1px solid #273344;border-radius:7px;background:#101722}.source-account button{border-color:#6653d2;background:#211b43;font-size:11px;font-weight:900}.source-account span{overflow:hidden;color:#aab6c8;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.source-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.source-fields .wide{grid-column:1/-1}.source-fields input[readonly]{color:#8391a5;font-size:10px}.source-config a{display:inline-block;margin-top:10px;color:var(--cyan);font-size:10px}.source-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.source-actions .primary{width:auto;margin:0}@media(max-width:620px){.source-fields{grid-template-columns:1fr}.source-fields .wide{grid-column:auto}.source-account{align-items:flex-start;flex-direction:column}}
.source-requirements{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.source-requirements span{padding:4px 7px;border:1px solid #334052;border-radius:999px;background:#0b1119;color:#8f9bad;font-size:9px;font-weight:800}.source-requirements .ready{border-color:rgba(70,211,154,.35);color:#46d39a}.source-requirements .missing{border-color:rgba(255,113,104,.38);color:#ff7168}
.coach-dialog{width:min(850px,calc(100vw - 30px));max-height:90vh}.coach-dialog form{max-height:90vh;overflow:auto}.coach-dialog textarea{box-sizing:border-box;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#0b1119;color:#eaf0fa;resize:vertical;line-height:1.45;font:inherit;font-size:11px}.coach-rule{display:grid;gap:4px;margin:15px 0;padding:11px;border:1px solid rgba(78,211,222,.35);border-left:3px solid var(--cyan);border-radius:7px;background:#0b151c}.coach-rule strong{font-size:12px}.coach-rule span{color:#b9c7d6;font-size:11px;line-height:1.4}.coach-correction-add{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.coach-correction-add button{height:36px}.coach-corrections{display:grid;gap:6px;max-height:220px;margin-top:10px;overflow:auto}.coach-correction{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;padding:8px 8px 8px 10px;border:1px solid #303d4e;border-left:3px solid #7c67eb;border-radius:6px;background:#0c121a}.coach-correction p{margin:0;color:#cbd5e2;font-size:11px;line-height:1.4}.coach-correction .icon-button{width:27px;height:27px;padding:0}.coach-empty{margin:0;padding:10px;border:1px dashed #334153;border-radius:6px;color:var(--muted);font-size:11px;line-height:1.4}
.role-dialog{width:min(760px,calc(100vw - 30px));max-height:90vh}.role-dialog form{max-height:90vh;overflow:auto}.role-grid-head,.role-assignment{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(130px,1fr) minmax(130px,1fr);gap:8px;align-items:center}.role-grid-head{margin-top:15px;padding:0 9px;color:#8090a5;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.role-assignments{display:grid;gap:6px;margin-top:6px}.role-assignment{padding:8px;border:1px solid #344154;border-radius:7px;background:#0c121a}.role-assignment strong{overflow:hidden;color:#edf3fb;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.role-assignment select{width:100%;padding:8px;border:1px solid #3b485c;border-radius:5px;background:#111a26;color:#fff;font-size:11px}
.backoffice-dialog{width:min(920px,calc(100vw - 30px));max-height:90vh}.backoffice-dialog form{max-height:90vh;overflow:auto}.backoffice-summary{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.backoffice-stat{padding:8px 10px;border:1px solid #314054;border-radius:7px;background:#0c121a;color:#bcd0e5;font-size:11px;font-weight:800}.backoffice-section{margin-top:18px}.backoffice-section-head,.backoffice-card-head,.backoffice-actions{display:flex;align-items:center;justify-content:space-between;gap:9px}.backoffice-section-head h3{margin:0;font-size:14px}.backoffice-section-head button,.backoffice-actions button{padding:7px 9px;font-size:10px;font-weight:800}.backoffice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:8px}.backoffice-card{min-width:0;padding:12px;border:1px solid #303d4e;border-radius:8px;background:#0c121a}.backoffice-card h4{overflow:hidden;margin:0;color:#edf3fb;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.backoffice-card p{margin:7px 0;color:#94a5ba;font-size:10px;line-height:1.45}.backoffice-code,.backoffice-status{flex:0 0 auto;padding:4px 6px;border:1px solid #3a4b60;border-radius:5px;background:#101a25;color:#91bfe4;font-size:9px;font-weight:950;letter-spacing:.06em}.backoffice-status.done{border-color:rgba(72,211,155,.45);color:#62e4b1}.backoffice-members{display:flex;flex-wrap:wrap;gap:5px;min-height:18px;margin:8px 0}.backoffice-member{padding:4px 6px;border-radius:4px;background:#121d2a;color:#aebbd0;font-size:9px}.backoffice-member.uploaded,.backoffice-member.recording{color:#61e5ba;background:rgba(61,199,145,.1)}.backoffice-member.error{color:#ff8c9a;background:rgba(255,92,112,.09)}.backoffice-actions{justify-content:flex-end;margin-top:10px}.backoffice-actions .danger{border-color:#49333c;color:#e6a2ad;background:transparent}.backoffice-empty{display:block;padding:12px;border:1px dashed #344255;border-radius:7px;color:#8392a7;font-size:11px}.backoffice-session{grid-column:span 1}@media(max-width:680px){.backoffice-list{grid-template-columns:1fr}.backoffice-section-head{align-items:flex-start}.backoffice-actions{flex-wrap:wrap}}.session-steam-demo{margin-top:9px!important;border-color:rgba(70,181,230,.48);background:rgba(43,133,192,.1);color:#a8dcff;font-size:11px;font-weight:850}.session-steam-demo:hover,.session-steam-demo:focus-visible{border-color:#61d5ff;background:rgba(43,133,192,.18)}
.coach-analysis{margin-top:20px;padding:18px;border:1px solid #47536a;border-radius:10px;background:linear-gradient(145deg,#111a26,#0d131c);box-shadow:0 12px 34px rgba(0,0,0,.16)}.coach-analysis-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.coach-analysis-head small{display:block;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.12em}.coach-analysis-head h3{margin:3px 0 0;font-size:19px}.coach-analysis-head button{border-color:#6553c7;background:#211b43;font-size:11px;font-weight:900}.coach-analysis-status{margin:10px 0;color:var(--muted);font-size:11px}.coach-summary{margin:0 0 12px;padding:10px;border-left:3px solid var(--cyan);border-radius:5px;background:#0a121a;color:#d6e2ee;font-size:12px;line-height:1.5}.coach-narrative,.coach-team,.coach-players{margin-top:12px}.coach-analysis h4{margin:0 0 7px;color:#fff;font-size:12px}.coach-narrative{padding:12px;border:1px solid #3c345f;border-radius:7px;background:rgba(62,49,112,.15)}.coach-narrative p{margin:0;white-space:pre-wrap;color:#dbe0ec;font-size:12px;line-height:1.5}.coach-team{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:7px}.coach-team h4,.coach-players h4{grid-column:1/-1}.coach-observation{padding:9px;border:1px solid #344154;border-left:3px solid #75849a;border-radius:6px;background:#0b1119}.coach-observation.positive{border-left-color:#46d39a}.coach-observation.warning{border-left-color:#f0bd55}.coach-observation strong{display:block;color:#fff;font-size:11px}.coach-observation p{margin:4px 0 0;color:#bdc9d8;font-size:10px;line-height:1.42}.coach-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px}.coach-player{padding:10px;border:1px solid #344154;border-radius:7px;background:#0b1119}.coach-player-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.coach-player-head strong{color:#fff;font-size:12px}.coach-player-head small{color:var(--cyan);font-size:9px;text-align:right}.coach-metrics{margin:6px 0;color:#9eacbd;font-size:10px}.coach-player-note{margin:5px 0 0;padding-left:7px;border-left:2px solid #75849a;color:#c6d0dd;font-size:10px;line-height:1.4}.coach-player-note.positive{border-left-color:#46d39a}.coach-player-note.warning{border-left-color:#f0bd55}.coach-model-error{margin:10px 0 0;color:#f0bd55;font-size:10px}
.coach-sources{margin:0 0 10px;padding:10px;border:1px solid #33495c;border-radius:7px;background:#0b131c}.coach-source-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.coach-source{display:grid;gap:2px;padding:7px;border:1px solid #344154;border-radius:5px;background:#0a1018}.coach-source strong{font-size:10px}.coach-source span{color:#a8b5c6;font-size:9px;line-height:1.25}.coach-source.analyzed{border-color:rgba(70,211,154,.45)}.coach-source.analyzed strong{color:#62e5bf}.coach-source.not-analyzed strong{color:#f0bd55}.coach-facts,.coach-players{display:none}.coach-markdown-table{width:100%;margin:8px 0 14px;border-collapse:separate;border-spacing:0;border:1px solid #424d68;border-radius:6px;overflow:hidden;font-size:10px}.coach-markdown-table th,.coach-markdown-table td{padding:8px;border-right:1px solid #343e56;border-bottom:1px solid #343e56;vertical-align:top;text-align:left;line-height:1.35}.coach-markdown-table th{background:#19213a;color:#bdeaff;font-size:9px}.coach-markdown-table tr:last-child td{border-bottom:0}.coach-markdown-table th:last-child,.coach-markdown-table td:last-child{border-right:0}.coach-markdown-list{margin:5px 0;padding-left:18px;color:#dbe0ec;font-size:11px;line-height:1.5}
@media(max-width:620px){.coach-correction-add{grid-template-columns:1fr}.coach-correction-add button{width:100%}.coach-analysis{padding:12px}.coach-analysis-head{align-items:flex-start;flex-direction:column}.coach-analysis-head button{width:100%}.coach-team,.coach-players{grid-template-columns:1fr}.role-grid-head{display:none}.role-assignment{grid-template-columns:1fr}.role-assignment strong::before{content:"Joueur · ";color:#8190a5;font-size:9px;text-transform:uppercase}.role-assignment select{min-height:37px}}
body{overflow-x:hidden}main{width:min(2360px,96vw)}#home{width:100%;max-width:1600px;margin-inline:auto}.review-layout{grid-template-columns:minmax(0,1fr) clamp(280px,16vw,360px);gap:clamp(12px,1vw,22px)}.canvas-wrap{grid-template-columns:clamp(210px,12vw,270px) minmax(0,1fr) clamp(210px,12vw,270px);gap:clamp(10px,.7vw,16px);padding:clamp(10px,.65vw,15px)}.player-bar,aside{padding:clamp(10px,.65vw,15px)}.team-roster .team-block{padding-inline:clamp(4px,.35vw,8px)}.map-stage canvas{width:min(100%,calc(100vh - 272px))}.session-grid{justify-content:center}
@media(min-width:1800px) and (min-height:900px){.roster-player{height:98px;padding:9px 9px 7px}.roster-player-name{font-size:12px}.roster-hp{font-size:11px}.roster-weapon{height:31px;min-height:31px}.equipment-icon{height:21px}.team-title{height:30px;font-size:12px}.analysis-card{padding:11px;font-size:11px}.analysis-card b{font-size:12px}.round-button{width:38px;flex-basis:38px;height:34px}}
@media(min-width:2300px){main{width:min(2480px,94vw)}.review-layout{grid-template-columns:minmax(0,1fr) 380px}.canvas-wrap{grid-template-columns:280px minmax(0,1fr) 280px}.team-roster .team-block{padding-inline:9px}}
@media(max-width:1250px){main{width:96vw}.review-layout{grid-template-columns:minmax(0,1fr) 250px;gap:10px}.canvas-wrap{grid-template-columns:180px minmax(0,1fr) 180px;padding:10px;gap:8px}.team-roster .team-block{padding-inline:3px}}
@media(max-width:1050px){.canvas-wrap{grid-template-columns:1fr;height:auto}.map-stage{grid-column:1;grid-row:1}.team-roster{display:grid;grid-column:1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-left:0;border-top:1px solid var(--line);padding:10px 0 0;max-height:none;overflow:visible}.team-roster .team-block:first-child,.team-roster .team-block:last-child{grid-column:auto;grid-row:auto;padding:0}.map-stage canvas{width:min(100%,760px)}}
@media(max-width:900px){.review-layout{grid-template-columns:1fr}.review-head{flex-wrap:wrap}.review-layout aside{height:auto;min-height:0;max-height:none}.view-tabs{margin-left:auto}}
@media(max-width:650px){main{width:94vw;padding-top:18px}.canvas-wrap,.player-bar,aside{padding:8px}.team-roster{grid-template-columns:1fr}.review-head{gap:7px}.review-head>div:nth-child(2){flex:1 1 calc(100% - 120px)}.review-head h2{font-size:16px}.view-tabs{order:5;margin-left:0;width:100%}.view-tabs button{flex:1}.round-nav{padding-bottom:7px}.round-button{flex-basis:32px;width:32px;height:30px}.transport #time{width:100%;text-align:center}.session-grid{grid-template-columns:1fr}}
.transport #time{min-width:180px}.round-timeline{position:relative;height:35px;padding-top:10px}.round-timeline #timeline{position:relative;z-index:2;width:100%;margin:0;accent-color:var(--accent)}.round-kill-markers{position:absolute;z-index:3;top:1px;left:8px;right:8px;height:27px;pointer-events:none}.round-kill-marker{position:absolute;top:0;width:5px;height:25px;padding:0;transform:translateX(-50%);border:0;border-radius:3px;background:currentColor;box-shadow:0 0 0 1px #090c11,0 0 8px currentColor;pointer-events:auto}.round-kill-marker::after{content:"";position:absolute;left:50%;bottom:-3px;width:7px;height:7px;transform:translateX(-50%) rotate(45deg);border-radius:1px;background:currentColor}.round-kill-marker.ct{color:var(--ct)}.round-kill-marker.t{color:var(--t)}.round-kill-marker.unknown{color:#d6dce7}.round-kill-marker:hover,.round-kill-marker:focus-visible{z-index:5;width:8px;outline:2px solid #fff;outline-offset:2px}.round-bomb-marker{position:absolute;z-index:4;top:-4px;width:30px;height:30px;padding:2px;transform:translateX(-50%);border:2px solid #ff5a61;border-radius:50%;background:#171013;color:#fff;box-shadow:0 0 0 2px #090c11,0 0 10px rgba(255,75,83,.9);pointer-events:auto}.round-bomb-marker::after{content:"";position:absolute;left:50%;bottom:-5px;width:7px;height:7px;transform:translateX(-50%) rotate(45deg);background:#ff5a61;border-radius:1px}.round-bomb-marker svg{display:block;width:100%;height:100%;overflow:visible}.round-bomb-marker .bomb-wire,.round-bomb-marker .bomb-keypad{fill:none;stroke:#ffd5d7;stroke-width:1.8;stroke-linecap:round}.round-bomb-marker .bomb-body{fill:#d84148;stroke:#fff;stroke-width:1}.round-bomb-marker .bomb-screen{fill:#271114;stroke:#ffb7ba;stroke-width:.8}.round-bomb-marker .bomb-led{fill:#fff176;filter:drop-shadow(0 0 2px #fff176)}.round-bomb-marker:hover,.round-bomb-marker:focus-visible{transform:translateX(-50%) scale(1.15);outline:2px solid #fff;outline-offset:2px}
.kill-feed{position:absolute;z-index:4;top:14px;right:14px;display:flex;align-items:flex-end;flex-direction:column;gap:5px;width:min(62%,520px);pointer-events:none}.kill-feed-row{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:30px;padding:5px 9px;border:1px solid rgba(255,255,255,.11);border-radius:4px;background:linear-gradient(90deg,rgba(8,12,18,.68),rgba(8,12,18,.94));box-shadow:0 4px 14px rgba(0,0,0,.32);font-size:12px;font-weight:850;text-shadow:0 1px 2px #000;transition:opacity .12s linear}.kill-feed-player{overflow:hidden;max-width:145px;text-overflow:ellipsis;white-space:nowrap}.kill-feed-player.ct{color:var(--ct)}.kill-feed-player.t{color:var(--t)}.kill-feed-player.unknown{color:#e2e7ef}.kill-feed-weapon{display:inline-flex;align-items:center;gap:4px;color:#f5f7fb;font-size:10px;font-weight:900;text-transform:uppercase}.kill-feed-headshot{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid #ffdb74;border-radius:50%;color:#ffdb74;font-size:9px}.kill-feed-arrow{color:#8995a7;font-size:11px}@media(max-width:700px){.kill-feed{top:8px;right:8px;width:76%}.kill-feed-row{min-height:25px;padding:3px 6px;font-size:10px}.kill-feed-player{max-width:95px}}
.map-stage{overflow:hidden}.map-stage canvas{transform-origin:center center;will-change:transform}.map-stage.is-zoomed canvas{cursor:grab}.map-stage.is-dragging canvas{cursor:grabbing}.map-zoom-controls{position:absolute;z-index:6;right:10px;bottom:10px;display:flex;align-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:rgba(8,12,18,.9);box-shadow:0 5px 18px rgba(0,0,0,.35)}.map-zoom-controls button{min-width:34px;height:32px;padding:0;border:0;border-right:1px solid rgba(255,255,255,.12);border-radius:0;background:transparent;font-size:15px;font-weight:900}.map-zoom-controls button:last-child{border-right:0}.map-zoom-controls #mapZoomReset{min-width:58px;color:var(--cyan);font-size:10px}.map-zoom-controls button:hover,.map-zoom-controls button:focus-visible{background:#252d3a}.map-zoom-controls button:disabled{opacity:.35;cursor:default}
.player-bar>.round-timeline{margin-bottom:8px}
.coach-role-confirm{justify-self:start;padding:7px 10px;border:1px solid #5d4aa8;border-radius:5px;background:#211b43;color:#e7e0ff;font-size:10px;font-weight:900}.coach-role-confirm:hover{border-color:#a88cff;background:#30245e}.coach-role-confirm:disabled{opacity:.6;cursor:wait}
.coach-transcript-download{justify-self:start;margin-top:2px;color:#82dfff;font-size:9px;font-weight:800;text-decoration:none}.coach-transcript-download:hover{text-decoration:underline;text-underline-offset:2px}
.session-ai-processing{border-color:rgba(100,174,255,.55);background:rgba(60,126,220,.12);color:#9ecbff;animation:ai-pulse 1.35s ease-in-out infinite}.session-ai-queued{border-color:rgba(240,189,85,.48);background:rgba(240,189,85,.08);color:#ffd17a}@keyframes ai-pulse{50%{opacity:.55}}
.session-pack{align-self:flex-start;margin:auto 20px 9px;padding:7px 10px;border:1px solid #346f85;border-radius:5px;color:#8ce8ff;background:rgba(33,121,151,.11);font-size:11px;font-weight:800;text-decoration:none}.session-pack:hover{border-color:#70dffb;background:rgba(33,121,151,.22)}
.header-actions{gap:12px}.team-access{display:flex;align-items:center;gap:7px;padding:5px 6px 5px 10px;border:1px solid #263448;border-radius:10px;background:#101722}.team-access span{font-size:9px;font-weight:900;letter-spacing:.1em;color:#58d8cd}.team-access input{width:118px;border:0;background:transparent;color:#eaf1ff;font:700 12px inherit;outline:none}.team-access input::placeholder{color:#758196}.team-access button{padding:7px 10px;border-radius:7px;border:1px solid #3c526b;background:#1c2a3b;color:#dbe8ff;font-weight:850}.admin-actions{display:flex;gap:6px;padding-left:3px;border-left:1px solid #243143}.download-actions{display:flex;gap:7px}.download-actions a{display:flex;flex-direction:column;gap:2px;min-width:112px;padding:8px 12px;border-radius:9px;text-decoration:none;background:#6e55ee;color:#fff;box-shadow:0 5px 16px #17112f}.download-actions a.player{background:#113d4d;border:1px solid #23768a}.download-actions small{font-size:8px;font-weight:900;letter-spacing:.08em;opacity:.7}.download-actions b{font-size:12px}@media(max-width:1050px){header{height:auto;min-height:64px;padding-block:9px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.download-actions a{min-width:auto}.team-access input{width:90px}}
.session-audio-received{margin:14px 20px 4px;padding:12px;border:1px solid rgba(77,225,198,.22);border-radius:8px;background:rgba(31,190,165,.055)}.session-audio-received ul{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}.session-audio-received li{display:flex;align-items:center;gap:9px;min-width:0}.session-audio-check{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;color:#07120f;background:#54dfaa;font-size:12px;font-weight:950}.session-audio-received li div{display:flex;flex-direction:column;min-width:0}.session-audio-received strong{overflow:hidden;color:#e9fff9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.session-audio-received small{color:#7f9d99;font-size:10px}.session-awaiting_demo .voice-ready{margin-top:12px}
.team-dashboard-trend{margin-top:8px}.team-dashboard-trend .sparkline{display:block;width:100%;height:auto}.team-dashboard-player small{display:block;margin-top:4px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
