:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e8ece8;background:#0a0d0c;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #0a0d0c;--panel: #111514;--panel-2: #171c1a;--panel-3: #1d2421;--line: rgba(222, 230, 222, .13);--line-strong: rgba(153, 197, 133, .45);--text: #edf1ed;--muted: #9ca79f;--soft: #6f7b73;--green: #96d36f;--amber: #e3b34d;--red: #ea6a6a;--blue: #8fb1ff}*{box-sizing:border-box}html{background:var(--bg)}body{overflow-x:clip;min-width:320px;margin:0;background:#0a0d0c}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.public-shell{overflow-x:clip;min-height:100vh;padding:18px}.public-header,.admin-topbar{position:sticky;top:0;z-index:5;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:8px;background:#0a0d0ce0;padding:10px 12px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand-lockup{display:flex;min-width:0;align-items:center;gap:12px}.brand-lockup.compact{align-items:start}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid rgba(150,211,111,.28);border-radius:8px;background:#96d36f1a;color:var(--green)}.brand-mark.secure{border-color:#8fb1ff47;background:#8fb1ff1a;color:var(--blue)}.brand-lockup p,.detail-title p,.admin-topbar p{margin:0 0 3px;color:var(--muted);font-size:12px}.brand-lockup h1,.admin-topbar h2{overflow:hidden;margin:0;color:var(--text);font-size:20px;font-weight:700;letter-spacing:0;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.public-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,460px);gap:14px;margin-top:14px;max-width:100%}.archive-panel,.detail-card,.panel,.login-panel,.admin-sidebar{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.archive-panel{min-width:0}.archive-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px 40px;gap:10px;border-bottom:1px solid var(--line);padding:12px}.archive-toolbar.admin{grid-template-columns:minmax(220px,1fr) auto auto auto}.search-control,.select-control{display:flex;min-height:40px;align-items:center;gap:9px;border:1px solid var(--line);border-radius:6px;background:#0d1110;color:var(--muted);padding:0 11px}.search-control input,.select-control select{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text)}.search-control input::placeholder{color:#77827a}.select-control{display:grid;gap:1px;padding:5px 10px}.select-control span{color:var(--soft);font-size:11px}.select-control select{appearance:none;font-size:13px}.ghost-button,.icon-tool,.primary-action,.row-actions button,.row-actions a,.segmented-control button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);text-decoration:none}.ghost-button{padding:0 12px}.icon-tool{width:40px;padding:0}.primary-action{min-height:38px;border-color:#96d36f6b;background:#20341c;color:#f2ffe9;padding:0 13px;font-weight:700}.primary-action.wide{width:100%}.ghost-button:hover,.icon-tool:hover,.row-actions button:hover,.row-actions a:hover,.segmented-control button:hover{border-color:#96d36f47;background:var(--panel-3)}.archive-list{display:grid;max-height:calc(100vh - 190px);overflow:auto}.replay-row{display:grid;grid-template-columns:40px minmax(180px,1fr) 150px 96px 120px;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:12px;text-align:left}.replay-row:hover,.replay-row.selected,tr.selected{background:#172019;box-shadow:inset 3px 0 0 var(--green)}.row-icon{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--green)}.row-main,.table-link{display:grid;min-width:0;gap:3px}.row-main strong,.table-link strong{overflow:hidden;color:#f4f6f4;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.row-main small,.table-link small,.row-meta{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.status-chip{display:inline-flex;width:fit-content;align-items:center;border:1px solid rgba(150,211,111,.24);border-radius:999px;background:#96d36f17;color:#d9f5cc;font-size:12px;padding:4px 8px}.frame-detail-chip{max-width:min(420px,42vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;padding:12px}.detail-card{display:grid;align-content:start;gap:16px;min-width:0;max-width:100%;overflow:hidden;padding:16px}.detail-title{display:flex;align-items:start;flex-wrap:wrap;justify-content:space-between;gap:14px}.detail-title>div{min-width:min(100%,260px);flex:1 1 260px}.detail-title p{overflow-wrap:anywhere;line-height:1.35}.detail-title h2{overflow-wrap:anywhere;margin:0;color:var(--text);font-size:21px;line-height:1.2}.detail-actions,.replay-top-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px}.detail-actions .ghost-button{min-height:38px}.replay-player{position:fixed;inset:0;z-index:20;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;background:#080b0a;padding:8px}.replay-player-topbar{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;background:#0c100ff0;padding:10px}.replay-ticket-strip{display:grid;flex:1 1 420px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:min(100%,300px)}.ticket-chip{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;border:1px solid var(--line);border-left:3px solid var(--soft);border-radius:7px;background:#0d1110;padding:8px}.ticket-chip.team-one{border-left-color:#58aeea}.ticket-chip.team-two{border-left-color:#ff506a}.ticket-chip img{width:22px;height:14px;object-fit:cover}.ticket-chip span{overflow:hidden;color:#dfe7e1;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ticket-chip strong{color:var(--green);font-size:18px;line-height:1}.ticket-chip small{grid-column:2 / -1;color:var(--muted);font-size:11px}.replay-player-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;min-height:0}.replay-map-panel,.replay-side-panel{min-width:0;min-height:0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.replay-map-panel{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.replay-map-hud{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;border-bottom:1px solid var(--line);padding:10px}.replay-map-surface{position:relative;min-height:0;background:linear-gradient(rgba(143,177,255,.05),transparent),#0b0f0e}.replay-map-svg{display:block;width:100%;height:100%;cursor:grab;min-height:460px;touch-action:none}.replay-map-svg.dragging{cursor:grabbing}.map-zoom-tools{position:absolute;top:10px;right:10px;z-index:1;display:flex;gap:6px}.map-zoom-tools .icon-tool{width:auto;min-width:34px;height:32px;padding:0 9px;background:#090d0cdb;font-weight:850}.map-zoom-readout{display:inline-grid;place-items:center;min-width:48px;height:32px;border:1px solid rgba(238,245,239,.16);border-radius:6px;background:#090d0cdb;color:#e8efe9;font-size:12px;font-weight:850;font-variant-numeric:tabular-nums}.replay-map-grid-bg{fill:#070a0a}.replay-map-image{opacity:.88;filter:saturate(.92) contrast(1.02) brightness(.74)}.replay-map-image-border{fill:transparent;stroke:#e8ece852;stroke-width:1.5px}.map-objective-shape{fill:#f5f5e81f;stroke:#f5f5e89e;stroke-dasharray:8 5;stroke-width:1.8px;vector-effect:non-scaling-stroke}.map-objective-link{stroke:#f6f4dfc7;stroke-dasharray:10 6;stroke-linecap:round;stroke-width:2.2px;vector-effect:non-scaling-stroke}.map-objective-marker circle{fill:#080b0adb;stroke:#f6f4dff2;stroke-width:2.4px;vector-effect:non-scaling-stroke}.map-objective-marker text{fill:#f6f4df;font-weight:800;paint-order:stroke;pointer-events:none;stroke:#080b0adb;stroke-width:4px}.map-objective-marker .cluster{font-size:10px;text-anchor:middle}.map-objective-marker .name{font-size:10px;opacity:.82;transition:opacity .12s ease}.map-objective-marker:hover .name{opacity:1}.replay-loading-state{position:absolute;inset:0;z-index:2;display:grid;place-content:center;gap:10px;background:#080b0ac2;color:#e5eee5;text-align:center}.replay-loading-state.error{color:#ffdada}.replay-loading-state.compact{inset:50% 50% auto;z-index:4;min-width:180px;border:1px solid rgba(238,245,239,.18);border-radius:8px;background:#080b0ae0;padding:14px 18px;transform:translate(50%,-50%)}.map-icon-marker text{fill:#eef5ef;font-size:12px;font-weight:800;opacity:0;paint-order:stroke;pointer-events:none;stroke:#080b0ae6;stroke-width:4px;transition:opacity .12s ease}.map-icon-marker:hover text{opacity:1}.map-entity.player .map-player-name{fill:#f8fbf8;font-size:9px;font-weight:850;opacity:.92;stroke:#030505f5;stroke-width:3.6px}.map-entity.vehicle text,.map-entity.helicopter text,.map-vehicle-asset text{opacity:.92}.map-icon-marker{cursor:default}.map-entity.vehicle,.map-entity.helicopter{cursor:pointer;outline:none}.map-entity.vehicle:focus-visible .map-vehicle-plate,.map-entity.helicopter:focus-visible .map-marker-ring,.map-entity.vehicle.selected .map-vehicle-plate,.map-entity.helicopter.selected .map-marker-ring{stroke:#f6f4df;stroke-width:3px;filter:drop-shadow(0 0 8px rgba(246,244,223,.62))}.map-vehicle-asset{opacity:.82}.map-vehicle-asset:hover{opacity:1}.map-marker-ring{fill:#e7eee824;stroke:#eef5efcc;stroke-width:2px;vector-effect:non-scaling-stroke}.map-entity.player .map-marker-ring{stroke-width:2.8px}.map-entity.player.team-one .map-marker-ring{fill:#2e96ff8f;stroke:#58b8ff}.map-entity.player.team-two .map-marker-ring{fill:#e0344c99;stroke:#ff4966}.map-entity.player .map-icon-image.player{opacity:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.95))}.map-marker-radius{fill:transparent;stroke:#eef5ef6b;stroke-dasharray:6 6;stroke-width:2px;vector-effect:non-scaling-stroke}.map-marker-radius.build{fill:#eef5ef0a;stroke-dasharray:none;stroke-width:1.8px}.map-marker-radius.exclusion{stroke-dasharray:7 5;stroke-width:1.6px}.map-vehicle-plate{fill:#080b0ac7;stroke:#eef5efad;stroke-width:2px;vector-effect:non-scaling-stroke}.map-icon-image{pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.75))}.map-icon-image.player{filter:drop-shadow(0 1px 1px rgba(0,0,0,.9))}.map-icon-marker.team-one .map-marker-ring,.map-icon-marker.team-one .map-vehicle-plate{fill:#2e96ff3b;stroke:#65b7ff}.map-icon-marker.team-one .map-marker-radius{stroke:#50a9ffb8}.map-icon-marker.team-two .map-marker-ring,.map-icon-marker.team-two .map-vehicle-plate{fill:#e0344c47;stroke:#ff506a}.map-icon-marker.team-two .map-marker-radius{stroke:#ff4d65c2}.map-icon-marker.team-neutral .map-marker-ring,.map-icon-marker.team-neutral .map-vehicle-plate{fill:#e3b34d38;stroke:#f0c15c}.map-vehicle-tooltip{opacity:0;pointer-events:none;transition:opacity .12s ease}.map-icon-marker:hover .map-vehicle-tooltip{opacity:1}.map-vehicle-tooltip rect{fill:#060808f0;stroke:#eef5ef52;stroke-width:1px;vector-effect:non-scaling-stroke}.map-vehicle-tooltip text{fill:#eaf2ec;font-size:10px;font-weight:850;opacity:1;stroke:none}.map-vehicle-tooltip text.occupant{fill:#cbd6ce;font-size:9px;font-weight:700}.map-selected-vehicle-card{pointer-events:none}.map-selected-vehicle-card rect{fill:#060808f5;stroke:#eef5ef61;stroke-width:1px;vector-effect:non-scaling-stroke}.map-selected-vehicle-card.team-one rect{stroke:#65b7ffb8}.map-selected-vehicle-card.team-two rect{stroke:#ff506ab8}.map-selected-vehicle-card line{stroke:#eef5ef29;stroke-width:1px;vector-effect:non-scaling-stroke}.map-selected-vehicle-card text{fill:#eaf2ec;font-size:10px;font-weight:760;opacity:1;stroke:none}.map-selected-vehicle-card .title,.map-selected-vehicle-card .section-label{fill:#f6f4df;font-weight:900}.map-selected-vehicle-card .meta{fill:#aeb9b2}.map-selected-vehicle-card .occupant{fill:#e5ece7}.map-selected-vehicle-card .empty{fill:#8d9891}.map-tactical-marker{cursor:default}.map-tactical-marker line{stroke-linecap:round;stroke-width:3px;vector-effect:non-scaling-stroke}.map-tactical-marker.arrow line:first-of-type{filter:drop-shadow(0 1px 2px rgba(0,0,0,.9))}.map-tactical-marker polygon{stroke:#0000008c;stroke-width:1px;vector-effect:non-scaling-stroke}.map-tactical-marker text{fill:#fff;font-size:10px;font-weight:900;paint-order:stroke;pointer-events:none;stroke:#000000e6;stroke-width:3px;text-anchor:middle}.map-tactical-marker.team-one .map-marker-ring{fill:#2e96ff3b;stroke:#65b7ff}.map-tactical-marker.team-two .map-marker-ring{fill:#e0344c47;stroke:#ff506a}.replay-side-panel{display:grid;align-content:start;gap:16px;overflow:auto;padding:14px}.team-list{display:grid;gap:8px}.team-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:7px;background:#0d1110;padding:8px}.team-row img{width:22px;height:14px;object-fit:cover}.team-row span{overflow:hidden;color:#e7eee8;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.team-row strong{color:var(--green)}.team-row small{grid-column:2 / -1;color:var(--muted);font-size:11px}.team-row.team-one{border-color:#65b7ff4d}.team-row.team-two{border-color:#ff506a57}.selected-vehicle-card{display:grid;gap:10px;border:1px solid var(--line);border-left:3px solid var(--soft);border-radius:7px;background:#0d1110;padding:10px}.selected-vehicle-card.team-one{border-left-color:#58aeea}.selected-vehicle-card.team-two{border-left-color:#ff506a}.selected-vehicle-title{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:start;gap:10px}.selected-vehicle-title div{display:grid;min-width:0;gap:3px}.selected-vehicle-title span,.occupant-list-title span{color:var(--muted);font-size:12px}.selected-vehicle-title strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.selected-vehicle-title .icon-tool{width:34px;min-height:32px}.vehicle-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.occupant-list{display:grid;gap:7px}.occupant-list-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.occupant-list-title strong{color:var(--green)}.occupant-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:7px;border:1px solid var(--line);border-left:3px solid var(--soft);border-radius:7px;background:#080c0bb8;padding:8px}.occupant-row.team-one{border-left-color:#58aeea}.occupant-row.team-two{border-left-color:#ff506a}.occupant-row span,.occupant-row small{color:var(--muted);font-size:12px}.occupant-row strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.filter-toggles,.speed-control,.lane-switcher{display:flex;flex-wrap:wrap;gap:5px}.frame-bottom-controls .speed-control{flex-wrap:nowrap;flex-shrink:1;min-width:0}.filter-toggles button,.speed-control button,.lane-switcher button{min-height:28px;border:1px solid var(--line);border-radius:5px;background:#0d1110;color:#cbd4ce;padding:0 6px;font-size:11px;text-transform:capitalize}.filter-toggles button.selected,.speed-control button.selected,.lane-switcher button.selected{border-color:#96d36f6b;background:#20341c;color:#f2ffe9}.lane-switcher{margin-top:9px}.killfeed-list,.scoreboard-list,.vehicle-damage-list,.vehicle-crew-list,.vehicle-list,.objective-list,.event-list{display:grid;gap:7px}.killfeed-row,.scoreboard-row,.squad-overview-row,.ticket-history-row,.vehicle-damage-row,.vehicle-crew-row,.vehicle-row,.objective-row,.event-row{display:grid;min-width:0;align-items:center;gap:7px;border:1px solid var(--line);border-radius:7px;background:#0d1110;color:var(--text);padding:9px}.killfeed-row{grid-template-columns:48px minmax(0,1fr) auto minmax(0,1fr);border-left:3px solid var(--soft)}.killfeed-row.team-one{border-left-color:#58aeea}.killfeed-row.team-two{border-left-color:#ff506a}.killfeed-row span,.killfeed-row small{color:var(--muted);font-size:12px}.killfeed-meta{display:inline-flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px;overflow:hidden;white-space:nowrap}.killfeed-meta b,.killfeed-meta i{overflow:hidden;text-overflow:ellipsis}.killfeed-meta b{color:var(--text);font-size:12px;font-weight:800;font-style:normal}.killfeed-meta i{color:#f0c15c;font-size:12px;font-style:normal}.killfeed-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scoreboard-row{grid-template-columns:24px minmax(0,1fr) minmax(72px,auto) auto;border-left:3px solid var(--soft)}.squad-overview-row{grid-template-columns:20px 54px minmax(0,1fr) auto;border-left:3px solid var(--soft);text-align:left}.ticket-history-row{grid-template-columns:48px minmax(92px,auto) minmax(0,1fr) auto;border-left:3px solid var(--soft)}.scoreboard-row.team-one,.ticket-history-row.team-one,.squad-overview-row.team-one{border-left-color:#58aeea}.scoreboard-row.team-two{border-left-color:#ff506a}.player-state-row.wounded{border-top-color:#ff506a57;border-right-color:#ff506a38;border-bottom-color:#ff506a38}.player-state-row.bleeding small{color:#f0c15c}.ticket-history-row.team-two,.squad-overview-row.team-two{border-left-color:#ff506a}.scoreboard-role-icon{width:22px;height:22px;object-fit:contain}.scoreboard-faction-icon{width:16px;height:16px;object-fit:contain}.scoreboard-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.squad-overview-row span{color:var(--text);font-weight:900;white-space:nowrap}.scoreboard-row small{display:inline-flex;min-width:0;align-items:center;gap:5px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.squad-overview-row small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.scoreboard-row strong{font-size:12px;white-space:nowrap}.squad-overview-row strong{color:var(--green);font-size:12px;white-space:nowrap}.ticket-history-row span,.ticket-history-row small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ticket-history-row strong{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ticket-history-row b{color:#f0c15c;font-size:12px;white-space:nowrap}.objective-row{grid-template-columns:42px minmax(0,1fr);border-left:3px solid rgba(150,211,111,.55)}.objective-row span{color:var(--green);font-weight:800}.objective-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-row{grid-template-columns:24px minmax(0,1fr) auto;border-left:3px solid var(--soft)}.drawer-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.drawer-section-title span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.drawer-section-title strong{color:var(--green);font-size:12px}.vehicle-damage-row,.vehicle-crew-row{grid-template-columns:24px minmax(0,1fr) auto;border-left:3px solid var(--soft);text-align:left}.vehicle-damage-row:hover,.vehicle-crew-row:hover{border-color:#96d36f61;background:#141a17}.vehicle-damage-row.team-one,.vehicle-crew-row.team-one{border-left-color:#58aeea}.vehicle-damage-row.team-two,.vehicle-crew-row.team-two{border-left-color:#ff506a}.vehicle-damage-row.damaged{border-top-color:#f0c15c6b;border-right-color:#f0c15c47;border-bottom-color:#f0c15c47}.vehicle-damage-row.wreck{border-top-color:#d7c9a357;border-right-color:#d7c9a338;border-bottom-color:#d7c9a338;opacity:.88}.vehicle-damage-row span,.vehicle-damage-row small,.vehicle-crew-row span,.vehicle-crew-row small,.vehicle-row span,.vehicle-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-damage-row strong,.vehicle-crew-row strong{color:#f0c15c;font-size:12px}.vehicle-damage-row small,.vehicle-crew-row small{grid-column:2 / -1;color:var(--muted);font-size:12px}.vehicle-drawer-icon{width:22px;height:22px;object-fit:contain}.vehicle-faction-icon{width:16px;height:16px;object-fit:contain}.vehicle-health-meter{grid-column:2 / -1;overflow:hidden;height:5px;border:1px solid rgba(246,244,223,.12);border-radius:999px;background:#00000057}.vehicle-health-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f44336,#f0c15c 48%,#75c56d)}.vehicle-row-button{width:100%;text-align:left}.vehicle-row-button:hover,.vehicle-row-button.selected{border-color:#96d36f61;background:#141a17}.vehicle-row-button.selected{box-shadow:inset 0 0 0 1px #f6f4df1f}.vehicle-row.team-one{border-left-color:#58aeea}.vehicle-row.team-two{border-left-color:#ff506a}.armor-vehicle-row{border-top-color:#f0c15c57;border-right-color:#f0c15c38;border-bottom-color:#f0c15c38}.vehicle-team-summary-row{border-top-color:#96d36f47;border-right-color:#96d36f2e;border-bottom-color:#96d36f2e}.vehicle-row strong{color:var(--green);font-size:12px}.armor-vehicle-row strong{color:#f0c15c}.vehicle-row small{grid-column:2 / -1;display:inline-flex;min-width:0;align-items:center;gap:5px;color:var(--muted);font-size:12px}.intel-list{display:grid;gap:7px}.intel-row{display:grid;min-width:0;width:100%;grid-template-columns:48px minmax(0,1fr);gap:2px 8px;align-items:center;border:1px solid rgba(232,236,232,.1);border-left:3px solid var(--soft);border-radius:7px;background:#0d1110db;color:var(--text);padding:8px;text-align:left}.intel-row:hover{border-color:#96d36f61;background:#141a17}.intel-row.team-one{border-left-color:#58aeea}.intel-row.team-two{border-left-color:#ff506a}.intel-row>span{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-height:30px;border-radius:5px;background:#f6f4df14;color:#f6f4df;font-size:11px;font-weight:800;text-transform:uppercase}.intel-row strong,.intel-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intel-row strong{font-size:13px}.intel-row small{grid-column:2 / -1;color:var(--muted);font-size:12px}.objective-intel-row>span{color:var(--green)}.marker-intel-row>span,.mine-intel-row>span,.admincam-intel-row>span{color:#f0c15c}.intel-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.event-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-row{grid-template-columns:48px minmax(0,1fr) auto}.event-list.compact .event-row{grid-template-columns:48px minmax(0,1fr) minmax(42px,auto)}.event-row span,.event-row small{color:var(--muted);font-size:12px}.parser-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.section-title-row,.parser-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-title-row span,.parser-page-toolbar span{color:var(--muted);font-size:12px}.notice.error.inline{margin:0}.parser-data-panel{min-width:0}.parser-section-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:232px;overflow:auto;padding-right:2px}.parser-section-tabs button{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;border:1px solid var(--line);border-radius:7px;background:#0d1110;color:#dfe6e0;padding:8px;text-align:left}.parser-section-tabs button.selected{border-color:#96d36f70;background:#20341c}.parser-section-tabs span{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.parser-section-tabs strong{color:var(--green);font-size:11px}.parser-section-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.parser-page-toolbar{justify-content:start}.parser-page-toolbar .compact-button{min-height:34px;margin-left:auto;padding:0 10px}.parser-json-list{display:grid;gap:7px}.parser-json-row{min-width:0;border:1px solid var(--line);border-radius:7px;background:#0d1110}.parser-json-row summary{display:grid;min-width:0;gap:4px;cursor:pointer;padding:9px}.parser-json-row summary::marker{color:var(--green)}.parser-json-row strong{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.parser-json-row span{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.parser-json-row pre{max-height:360px;overflow:auto;border-top:1px solid var(--line);margin:0;color:#dfe6e0;font-size:11px;line-height:1.45;padding:10px;white-space:pre-wrap;word-break:break-word}.scoreboard-row span{overflow:hidden;color:#e7eee8;text-overflow:ellipsis;white-space:nowrap}.scoreboard-row small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.scoreboard-row strong{color:var(--green)}.replay-controls{display:grid;grid-template-columns:40px auto 40px minmax(160px,1fr) auto;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:#0c100ff0;padding:7px 10px}.timeline-overview{position:relative;display:grid;grid-column:1 / -1;grid-template-columns:repeat(96,minmax(2px,1fr));align-items:end;height:24px;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:#090d0c;padding:2px}.timeline-bucket{align-self:end;width:100%;height:calc(3px + var(--bucket-intensity) * 17px);min-height:3px;border:0;border-radius:2px 2px 0 0;background:linear-gradient(to top,#ff506ac7,#96d36f75);cursor:pointer;opacity:.75;padding:0}.timeline-bucket:hover{opacity:1}.timeline-playhead{position:absolute;top:0;bottom:0;width:2px;background:#f5f7f5;box-shadow:0 0 0 1px #080b0a99,0 0 14px #96d36f8c;transform:translate(-1px)}.replay-play-button{min-width:90px;min-height:32px;font-size:13px}.replay-slider{grid-column:1 / -1;width:100%;accent-color:var(--green)}.replay-frame-player{gap:8px;overflow:hidden}.replay-frame-topbar{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(320px,1.25fr) minmax(260px,auto);align-items:center;gap:10px;min-width:0;border:1px solid var(--line);border-radius:8px;background:#0a0e0df5;padding:8px}.replay-frame-topbar .brand-lockup{min-width:0}.replay-frame-topbar .brand-lockup>div{min-width:0}.replay-frame-topbar .brand-mark{width:38px;height:38px}.replay-frame-topbar .brand-lockup h1{font-size:18px}.replay-frame-topbar .replay-top-actions{display:flex;min-width:0;justify-content:flex-end;flex-wrap:wrap;gap:6px}.replay-frame-topbar .status-chip{min-height:30px;max-width:100%;white-space:nowrap}.replay-frame-topbar .frame-detail-chip{max-width:min(430px,34vw)}.replay-frame-stage{position:relative;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#070a0a}.frame-map-canvas{display:block;width:100%;height:100%;min-height:500px;cursor:grab;touch-action:none}.frame-map-canvas:active{cursor:grabbing}.frame-map-hud{position:absolute;top:10px;left:10px;z-index:2;display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));gap:6px;width:min(620px,calc(100% - 460px));pointer-events:none}.frame-map-hud .info-tile{min-height:58px;border-color:#e8ece826;background:#090d0cbd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 8px}.frame-map-hud .info-tile small{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.frame-map-hud .info-tile strong{font-size:18px;line-height:1}.frame-map-tools{position:absolute;inset:auto auto 10px 8px;z-index:5;flex-direction:row}.frame-killfeed,.frame-filter-panel,.frame-selected-panel,.frame-parser-data,.frame-map-intel,.frame-vehicle-drawer,.frame-scoreboard{position:absolute;z-index:3;display:grid;gap:10px;border:1px solid rgba(232,236,232,.16);border-radius:8px;background:#090d0ce0;box-shadow:0 18px 50px #00000057;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px}.frame-killfeed{top:10px;right:10px;width:min(360px,calc(100% - 20px));max-height:min(50vh,480px);overflow:auto}.frame-killfeed .killfeed-row{grid-template-columns:44px minmax(0,1fr) auto;gap:6px;padding:8px}.frame-killfeed .killfeed-row strong{min-width:0}.frame-killfeed .killfeed-row small{max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame-filter-panel{top:10px;right:10px;bottom:82px;width:min(360px,calc(100% - 20px));overflow:auto}.frame-selected-panel{left:10px;bottom:82px;width:min(390px,calc(100% - 20px));border-left:3px solid var(--soft)}.frame-selected-panel.team-one{border-left-color:#58aeea}.frame-selected-panel.team-two{border-left-color:#ff506a}.frame-selected-panel>strong{overflow:hidden;color:var(--text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.frame-selected-panel>small{color:var(--muted)}.frame-parser-data{top:10px;right:10px;bottom:82px;width:min(460px,calc(100% - 20px));overflow:auto}.frame-parser-data .parser-data-panel{gap:10px}.parser-coverage-panel .key-value strong{font-size:13px;line-height:1.25}.frame-vehicle-drawer,.frame-map-intel{top:10px;right:10px;bottom:82px;width:min(410px,calc(100% - 20px));overflow:auto}.frame-scoreboard{inset:52px 52px 82px;overflow:auto}.frame-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.frame-panel-title span{overflow:hidden;color:#f5f7f5;font-size:13px;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.frame-panel-title strong{color:var(--green)}.team-visibility{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.team-visibility button{min-height:32px;border:1px solid var(--line);border-radius:6px;background:#0d1110;color:#cbd4ce;padding:0 8px}.team-visibility button.selected{border-color:#96d36f6b;background:#20341c;color:#f2ffe9}.icon-scale-control{display:grid;gap:7px;color:var(--muted);font-size:12px}.icon-scale-control input{width:100%;accent-color:var(--green)}.degraded-list{display:grid;gap:7px}.frame-bottom-bar{grid-template-columns:32px 32px auto 32px 32px minmax(0,1fr) auto;gap:5px;padding:5px 8px}.frame-bottom-controls{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;min-width:0;overflow:hidden}.frame-toolbar-actions{display:inline-flex;gap:3px;flex-shrink:0}.frame-toolbar-actions .icon-tool,.frame-bottom-bar>.icon-tool{width:30px;min-height:28px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(165px,100%),1fr));gap:10px}.info-tile{display:grid;min-width:0;align-content:start;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:12px}.info-tile span{color:var(--green)}.info-tile small,.key-value span{color:var(--muted);font-size:12px}.info-tile strong,.key-value strong{overflow-wrap:anywhere;color:var(--text);font-size:17px;line-height:1.2}.section-block{display:grid;gap:10px}.section-block h3,.panel h3{margin:0;color:#f5f7f5;font-size:15px;font-weight:700}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.key-value{display:grid;gap:4px;border:1px solid var(--line);border-radius:7px;background:#0d1110;padding:10px}.notice{border:1px solid var(--line);border-radius:7px;padding:10px 12px;color:#dce4dd;font-size:13px}.notice.error{border-color:#ea6a6a5c;background:#5b191957;color:#ffdada;margin:12px}.notice.muted{color:var(--muted)}.empty-state{display:grid;min-height:210px;place-items:center;gap:8px;color:var(--muted);text-align:center}.empty-state.compact{min-height:140px}.admin-login,.admin-shell.centered{display:grid;min-height:100vh;place-items:center;padding:18px}.login-panel{display:grid;width:min(100%,420px);gap:18px;padding:18px}.login-copy{margin:0;color:var(--muted);line-height:1.5}.admin-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.admin-sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;gap:18px;border-width:0 1px 0 0;border-radius:0;padding:18px}.admin-nav{display:grid;gap:6px}.admin-nav a{border:1px solid transparent;border-radius:6px;color:#cbd4ce;padding:9px 10px;text-decoration:none}.admin-nav a:hover{border-color:var(--line);background:var(--panel-2)}.admin-content{display:grid;align-content:start;gap:14px;min-width:0;padding:18px}.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);gap:14px}.segmented-control{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}.segmented-control button{min-width:78px;border-width:0 1px 0 0;border-radius:0;background:transparent;color:#c6cec8;padding:0 10px;text-transform:capitalize}.segmented-control button:last-child{border-right:0}.segmented-control button.selected{background:#20341c;color:#effee8}.admin-table{overflow:auto}table{width:100%;min-width:760px;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:middle}th{color:#c5cec7;font-size:12px;font-weight:700}td{color:#dfe6e0;font-size:13px}.table-link{max-width:360px;border:0;background:transparent;padding:0;text-align:left}.row-actions{display:inline-flex;gap:6px}.row-actions button,.row-actions a{width:34px;padding:0}.admin-detail{align-self:start}.admin-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.panel{display:grid;gap:12px;padding:14px}.source-list{display:grid;gap:8px}.source-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:7px;background:#0d1110;padding:10px}.source-row strong{overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.source-row small{color:var(--muted);font-size:12px}.dot{width:8px;height:8px;border-radius:999px;background:var(--soft)}.dot.good{background:var(--green)}.dot.warn{background:var(--amber)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.public-layout,.admin-grid,.replay-player-body,.replay-frame-topbar{grid-template-columns:1fr}.frame-map-hud{width:min(520px,calc(100% - 20px));grid-template-columns:repeat(2,minmax(0,1fr))}.archive-list{max-height:none}.admin-detail{order:-1}}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.admin-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-toolbar,.archive-toolbar.admin,.metric-grid,.admin-metrics,.admin-two,.replay-map-hud,.frame-map-hud,.parser-section-tabs,.parser-section-meta{grid-template-columns:1fr}.frame-map-hud{width:min(220px,calc(100% - 20px))}.frame-killfeed{width:min(330px,calc(100% - 250px))}.frame-scoreboard{inset:38px 12px 78px}.replay-row{grid-template-columns:36px minmax(0,1fr)}.row-meta,.replay-row .status-chip{grid-column:2}}@media(max-width:560px){.public-shell,.admin-content{padding:10px}.public-header,.admin-topbar,.detail-title,.archive-footer,.replay-player-topbar{align-items:stretch;flex-direction:column}.detail-grid{grid-template-columns:1fr}.detail-actions,.replay-top-actions,.primary-action,.replay-ticket-strip{width:100%}.replay-ticket-strip{grid-template-columns:1fr}.replay-player{padding:8px}.replay-controls{grid-template-columns:40px minmax(0,1fr) 40px}.frame-bottom-bar{grid-template-columns:repeat(5,40px);justify-content:start}.replay-play-button,.replay-slider,.frame-bottom-controls{grid-column:1 / -1}.frame-bottom-controls{flex-wrap:wrap}.replay-frame-topbar{align-items:stretch}.frame-map-canvas{min-height:420px}.frame-map-hud{display:none}.frame-map-tools{bottom:10px;left:8px;top:auto}.frame-killfeed{top:auto;right:8px;bottom:150px;width:min(320px,calc(100% - 16px));max-height:210px}.frame-filter-panel,.frame-selected-panel,.frame-parser-data,.frame-map-intel,.frame-vehicle-drawer{right:8px;left:8px;bottom:150px;width:auto;max-height:330px}.replay-map-svg{min-height:360px}}
