.combat-shell { max-width:1540px; margin:auto; padding:0 24px; }.combat-header { min-height:72px; display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--line); }.combat-edition { display:block; font-size:10px; margin-top:6px; letter-spacing:2px; color:var(--muted); }.combat-header nav { margin-left:auto; }.combat-header nav a,.combat-footnote { color:var(--accent); font-size:12px; }#combat-connection { font-size:11px; color:var(--muted); }
.combat-intro { margin:22px 0 18px; }.combat-intro h1 { font-size:28px; margin:8px 0; }.combat-intro>p:last-child { color:var(--muted); font-size:12px; }
.combat-hud { display:grid; grid-template-columns:1.4fr repeat(5,1fr); background:var(--panel); border:1px solid var(--line); border-radius:7px; margin-bottom:18px; }.combat-hud>div { padding:13px 18px; min-width:0; border-right:1px solid var(--line); }.combat-hud span { display:block; color:var(--muted); font-size:9px; letter-spacing:1px; margin-bottom:7px; }.combat-hud strong { display:block; font-size:25px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }#pilot { font-size:16px; line-height:30px; }#ammo,#combat-score { color:var(--uos-orange); }#health { color:#CFFF75; }
.combat-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:18px; align-items:start; }.combat-stage { position:relative; aspect-ratio:1600/1000; background:var(--bg); }#combat-arena { display:block; width:100%; height:100%; outline:none; }#combat-arena:focus-visible { outline:1px solid var(--accent); outline-offset:-2px; }.combat-stage:has(#combat-join:not(.hidden)) { min-height:410px; }.combat-overlay { position:absolute; inset:35% 10%; display:grid; place-content:center; text-align:center; pointer-events:none; background:#0b111de8; border:1px solid var(--line); border-radius:5px; font-size:22px; padding:18px; }.combat-overlay.hidden { display:none; }.combat-controls { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:10px; color:var(--muted); padding:14px; }.combat-controls b { color:var(--text); }.combat-legend { display:flex; justify-content:space-between; margin:16px; font-size:9px; color:var(--muted); }
#combat-board { list-style:none; padding:0 12px; margin:0; max-height:340px; overflow:auto; }#combat-board li { display:grid; grid-template-columns:22px minmax(0,1fr) 40px 42px; align-items:center; gap:7px; padding:11px 6px; font-size:11px; border-bottom:1px solid var(--line); }#combat-board li.self { background:#42abe810; }#combat-board .combat-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }#combat-board .combat-points { color:var(--uos-orange); text-align:right; }#combat-board .combat-kd { font-size:10px; color:var(--muted); text-align:right; }.combat-rules { margin:22px 18px; font-size:12px; color:var(--muted); line-height:1.7; }.combat-rules strong { color:var(--text); }#combat-feedback { color:var(--accent); }.combat-footnote { margin:14px 0; font-size:11px; }
.dashboard-tabs { display:flex; gap:10px; flex-wrap:wrap; margin:20px 0; }.dashboard-tabs button { padding:12px 16px; background:var(--panel); color:var(--text); border:1px solid var(--line); cursor:pointer; font:inherit; font-size:12px; }.dashboard-tabs button[aria-pressed=true] { border-color:var(--accent); }[hidden] { display:none!important; }#combat-duration { max-width:160px; margin:14px; }#overview-panel a { color:var(--accent); }#combat-panel>p { color:var(--muted); line-height:1.6; }
@media(max-width:1200px) { .combat-header { min-height:60px; }.combat-intro { margin:14px 0; }.combat-intro h1 { font-size:24px; }.combat-hud>div { padding:10px; }.combat-hud strong { font-size:22px; }.combat-layout { grid-template-columns:minmax(0,1fr) 245px; gap:12px; }.combat-shell { padding:0 16px; }.combat-controls { font-size:9px; gap:8px; } }
@media(max-width:900px) { .combat-layout { grid-template-columns:1fr; }.combat-intro>p:last-child { display:none; }.combat-sidebar { display:grid; grid-template-columns:1fr 1fr; }.combat-sidebar .panel-heading,.combat-legend { grid-column:1/-1; }#combat-board { max-height:220px; }.combat-hud { grid-template-columns:repeat(3,minmax(0,1fr)); }.combat-hud>div { padding:8px 12px; }.combat-hud span { font-size:8px; }.combat-header { flex-wrap:wrap; gap:12px; padding:12px 0; }.combat-stage .join-card { padding:22px; }.combat-overlay { font-size:16px; } }
@media(max-width:480px) { .combat-header nav { margin-left:0; }.combat-sidebar { display:block; }.combat-rules { font-size:11px; } }
/* Combat-specific projector columns retain readable K/D alongside points. */
.combat-projector .projection-board li { display:grid; grid-template-columns:48px minmax(0,1fr) 100px 120px; gap:14px; }.combat-projector .projection-board .combat-kd { font-size:.65em; text-align:right; color:var(--muted); }.combat-projector .projection-board .name { min-width:0; }.combat-projector .projection-board .points { min-width:0; }.combat-projector .projection-board { font-size:min(var(--row-font),30px); }
@media(max-width:1100px) { .combat-projector .projection-board li { grid-template-columns:38px minmax(0,1fr) 85px 105px; gap:10px; } }

/* Fit a normal lab display without shrinking the field below a useful desktop size. */
.combat-game .combat-shell { width:min(100%,max(1100px,calc((100dvh - 490px)*1.6 + 356px))); }
#combat-panel .control-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }#overview-panel .control-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
#combat-duration { background:var(--bg); color:var(--text); border:1px solid var(--line); border-radius:4px; padding:10px; font:inherit; }

.advanced-missions[hidden] { display:none!important; }.advanced-missions { margin:12px; padding:0; border:1px solid var(--line); border-radius:4px; background:var(--bg); font-size:11px; }
.advanced-missions>summary { padding:12px; color:var(--accent); cursor:pointer; font-size:10px; }#advanced-count { display:block; margin-top:7px; color:var(--text); }
.advanced-body { padding:0 12px 8px; }.advanced-body p { font-size:11px; line-height:1.5; margin:8px 0; }.advanced-clue { color:var(--muted); }#advanced-policy { color:var(--accent); }
#advanced-tasks .advanced-task { border-top:1px solid var(--line); padding:8px 0; }#advanced-tasks h3 { font-size:12px; margin:0 0 5px; }.advanced-status { color:var(--muted); font-size:10px; }.advanced-done .advanced-status,#advanced-feedback { color:var(--uos-orange); }.advanced-learning { color:var(--muted); }#advanced-feedback:empty,#combat-experiment-message:empty { display:none; }
#advanced-feedback:not(:empty) { border-top:1px solid var(--line); margin:14px 0; padding-top:14px; }
.combat-sidebar:has(.advanced-missions:not([hidden])) { display:flex; flex-direction:column; }.combat-sidebar:has(.advanced-missions:not([hidden])) .combat-rules { display:none; }.combat-sidebar:has(.advanced-missions:not([hidden])) #combat-board { max-height:180px; }.advanced-missions { order:-1; }
#combat-experiment-message { color:var(--accent); font-size:12px; margin:12px 0; }#combat-experiment-message.error { color:var(--uos-orange); }
.combat-learning { margin-top:24px; }.combat-learning td { min-width:125px; }#combat-mission-statistics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }#combat-mission-statistics div { color:var(--muted); font-size:11px; }#combat-mission-statistics strong { display:block; color:var(--accent); font-size:22px; margin:8px 0; }
@media(max-width:700px){#combat-mission-statistics { grid-template-columns:1fr 1fr; }}

.advanced-task>summary { cursor:pointer; }.advanced-task h3 { display:inline; }.advanced-status { display:block; margin:5px 0; }.advanced-task>summary::marker { color:var(--muted); }
@media(min-width:901px) and (max-width:1200px){.combat-layout:has(.advanced-missions:not([hidden])) { grid-template-columns:minmax(0,1fr) 310px; }}
