.campaign-overview{--campaign-cyan:var(--ui-cyan,#63e5ef);--campaign-line:#244855;--campaign-muted:#91acba;color:#e5f3f8;background:linear-gradient(135deg,#0b202d,#06121d 75%);border:1px solid var(--campaign-line);border-top:2px solid var(--campaign-cyan);border-radius:2px;padding:clamp(14px,2.5vw,26px);font:500 .92rem/1.45 'Segoe UI',sans-serif}
.campaign-overview *,.campaign-overview *::before,.campaign-overview *::after{box-sizing:border-box}
.campaign-overview h2,.campaign-overview h3,.campaign-overview p{margin:0}
.campaign-overview h2,.campaign-overview h3,.campaign-node-name,.campaign-stats strong,.campaign-current strong,.campaign-current-mark{font-family:var(--ui-heading,'GFA Command','Segoe UI',sans-serif)}
.campaign-overview h2{color:#e4f9fc;font-size:clamp(26px,3vw,36px);letter-spacing:.035em}
.campaign-overview h3{color:#c2f2f8;font-size:22px;letter-spacing:.035em}
.campaign-overview-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.campaign-eyebrow{color:var(--campaign-cyan);text-transform:uppercase;letter-spacing:.18em;font-size:11px}
.campaign-operation-state{border:1px solid #397b8b;padding:7px 10px;color:#b8e5ec;font-size:12px;background:#102c39}
.campaign-current{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding:16px 18px;border:1px solid #346b7c;border-left:3px solid var(--campaign-cyan);background:linear-gradient(100deg,#123b48,#0b202d)}
.campaign-current>div>span{display:block;color:#94c0cd;text-transform:uppercase;letter-spacing:.14em;font-size:10px}
.campaign-current strong{display:block;font-size:clamp(23px,3vw,30px);color:#edfcff}
.campaign-status{color:#b3d1dc;font-size:13px}
.campaign-current-mark{align-self:center;font-size:42px;color:#63e5ef66;letter-spacing:.04em}
.campaign-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:14px 0 22px;border:1px solid var(--campaign-line)}
.campaign-stats div{display:grid;gap:2px;padding:12px;border-right:1px solid var(--campaign-line);background:#0d263466}
.campaign-stats div:last-child{border-right:0}
.campaign-stats span{color:var(--campaign-muted);font-size:11px}
.campaign-stats strong{color:#d7f5fa;font-size:25px}
.campaign-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px 18px;flex-wrap:wrap;margin:14px 0 10px}
.campaign-section-heading p,.campaign-map-hint,.campaign-route-note{color:var(--campaign-muted);font-size:12px}
.campaign-route-legend{display:flex;gap:7px 18px;flex-wrap:wrap;font-size:11px;padding-bottom:9px}
.campaign-route-legend span::before{content:'';display:inline-block;width:20px;margin-right:5px;vertical-align:middle;border-top:2px solid currentColor}
.campaign-route-legend .route-loss::before{border-top-style:dashed}
.campaign-route-legend .route-current::before{border:1px solid currentColor;height:8px}
.route-win{color:#8ab8c1}.route-loss{color:#c8ab83}.route-travelled,.route-current{color:var(--campaign-cyan)}
.campaign-map-scroll{overflow-x:auto;overscroll-behavior-x:contain;margin-top:10px;border:1px solid var(--campaign-line);background:#04111a;scrollbar-color:#397b8b #081621}
.campaign-map-scroll:focus-visible{outline:2px solid var(--campaign-cyan);outline-offset:3px}
.campaign-route-map{position:relative;width:1080px;height:650px;background-image:linear-gradient(#15405225 1px,transparent 1px),linear-gradient(90deg,#15405225 1px,transparent 1px);background-size:24px 24px}
.campaign-route-lines{position:absolute;inset:0;width:1080px;height:650px;pointer-events:none}
.campaign-route-edge{fill:none;stroke:#2d6370;stroke-width:1.7;opacity:.7}
.campaign-route-edge.route-loss{stroke:#7d674b;stroke-dasharray:6 5}
.campaign-route-edge.is-next{stroke-width:2.5;opacity:1}
.campaign-route-edge.is-travelled{stroke:var(--campaign-cyan);stroke-width:3;opacity:1}
#campaign-arrow-win path,#campaign-arrow-loss path{fill:none;stroke:context-stroke;stroke-width:2}
.campaign-node-list{list-style:none;margin:0;padding:0}
.campaign-node{position:absolute;left:var(--node-x);top:var(--node-y);width:218px;height:142px;border:1px solid #31525f;padding:10px 12px;background:linear-gradient(125deg,#112a38,#091a26);border-radius:0}
.campaign-node::after{content:'';position:absolute;top:-1px;right:-1px;width:12px;height:12px;background:#06131d;border-left:1px solid #31525f;transform:skew(35deg);transform-origin:top}
.campaign-node.is-current{border-color:var(--campaign-cyan);background:linear-gradient(125deg,#164958,#0a2735);box-shadow:inset 3px 0 var(--campaign-cyan)}
.campaign-node.is-current::after{border-left-color:var(--campaign-cyan)}
.campaign-node.has-history{border-color:#47808c}.campaign-node.is-current.has-history{border-color:var(--campaign-cyan)}
.campaign-node-state{display:block;color:#8aabba;text-transform:uppercase;letter-spacing:.1em;font-size:9px}
.campaign-node.is-current .campaign-node-state{color:#8af3f6}
.campaign-node-name{display:block;margin-top:2px;color:#e0f3f8;font-size:19px;line-height:1.15}
.campaign-node-budget{display:block;color:#92aebb;font-size:10px;margin-top:5px}
.campaign-node-links{display:grid;gap:2px;margin-top:7px;font-size:10px;line-height:1.25}
.campaign-node.is-terminal{display:flex;flex-direction:column;justify-content:center;border-color:#53775d;background:linear-gradient(125deg,#15342e,#0a201e)}
.campaign-node.terminal-defeat{border-color:#7c4c4e;background:linear-gradient(125deg,#35232d,#1c1723)}
.campaign-terminal-detail{color:#a8c0bd;font-size:11px;margin-top:8px}
.campaign-overview .campaign-route-note{margin-top:10px;line-height:1.6}
.campaign-history{margin-top:22px}.campaign-history ol{list-style:none;padding:0;margin:0}
.campaign-history-item{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:3px 9px;align-items:center;padding:12px 10px;border-top:1px solid var(--campaign-line);background:#102b3726}
.campaign-history-number,.campaign-history-detail{color:var(--campaign-muted);font-size:11px}.campaign-history-mission{font-weight:650}
.campaign-history-result{grid-column:3;grid-row:1;font-weight:700;color:#9ce2c2;font-size:12px}
.campaign-result-loss .campaign-history-result{color:#f3a39d}.campaign-result-draw .campaign-history-result{color:#e1c490}
.campaign-history-detail{grid-column:2/4}.campaign-history-empty{color:#99b3c2;padding:14px;border:1px dashed var(--campaign-line);font-size:13px}
@media(max-width:650px){.campaign-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-stats div{border-bottom:1px solid var(--campaign-line)}.campaign-stats div:nth-child(3){border-right:0}.campaign-stats div:nth-child(n+4){border-bottom:0}.campaign-current{padding:12px}.campaign-operation-state{font-size:11px}}
@media(max-width:380px){.campaign-history-item{grid-template-columns:1.4rem minmax(0,1fr)}.campaign-history-result{grid-column:2;grid-row:2}.campaign-history-detail{grid-column:2}}
