/* Existing activity and map data, presented with the new white component system. */
.modal-xl{width:min(1000px,100%)}.modal-header,.minigame-header{padding:26px 30px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.modal-body,.minigame-body{padding:28px 30px;overflow:auto;min-height:0}.minigame-kicker{color:#8a9fa6;font-size:10px;letter-spacing:1px}.minigame-title{font-size:21px;margin-top:8px;line-height:1.7}.minigame-locked-badge{font-size:10px;color:#a78c6c;white-space:nowrap}.dialogue-meters-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.meter-label{font-size:11px;color:#7b9098;margin-bottom:8px}.meter-label strong{color:#4b6c78}.meter-track{height:5px;background:#f0f4f5;border-radius:5px;overflow:hidden}.meter-fill{height:100%;background:#98b9ad}.fill-tension{background:#cca59b}.fill-consensus{background:#a0b5c3}.dialogue-chat-window{display:grid;gap:15px;padding:24px;background:#f7f9fa;border:1px solid #edf0f2;border-radius:10px;max-height:44dvh;overflow:auto}.chat-system-msg{font-size:12px;line-height:1.9;color:#91a1a9}.chat-bubble{padding:17px 20px;border:1px solid #e6edef;border-radius:8px;background:#fff}.bubble-sender{font-size:10px;color:#8ca3aa;margin-bottom:8px}.bubble-text{font-size:13px;line-height:1.95;color:#596f78}.chat-bubble-player{border-left:2px solid #a5c2c6}.chat-bubble-student{border-left:2px solid #c5baa3}.dialogue-action-area{margin-top:24px}.dialogue-choices-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.btn-dialogue-choice{border:1px solid #dfe8eb;border-radius:9px;background:#fff;padding:18px;text-align:left}.btn-dialogue-choice:hover{background:#f3f8f8;border-color:#a3bfc6}.opt-label{font-size:12px;color:#496b78;font-weight:500;line-height:1.8}.opt-desc{font-size:11px;color:#91a0a7;line-height:1.9;margin-top:9px}.midnight-dispatch-lead{background:#f4f8f9;padding:20px;border-left:2px solid #a9c1c8;font-size:12px;line-height:2;color:#708792;margin-bottom:22px}.galley-proof-container{border:1px solid #e5e8e9;border-radius:8px;overflow:hidden}.proof-header-stamp{padding:14px 22px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#96a3aa;background:#fafafa;border-bottom:1px solid var(--line)}.red-stamp{color:#a78476}.newspaper-proof-sheet{padding:26px;background:#fff}.newspaper-masthead{padding-bottom:18px;border-bottom:2px solid #aebcc2;margin-bottom:20px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}.masthead-title{font:600 28px/1.5 "Songti SC",serif;color:#657780}.masthead-date{font-size:10px;color:#99a6ae}.proof-passage-box{border:1px solid #e2e9eb;border-radius:8px;padding:22px;margin-top:14px;cursor:pointer;background:#fafcfc}.proof-passage-box.historical{border-left:3px solid #c29f95;background:#fdf9f7}.proof-passage-box.moderate{border-left:3px solid #8db5a5;background:#f6fbf8}.passage-tag{font-size:10px;color:#a3aeb4;display:flex;justify-content:space-between;margin-bottom:12px}.passage-headline{font-size:20px;margin-bottom:12px}.passage-content{font-size:14px;line-height:2;color:#6e7e86}.proof-action-bar{padding:22px;margin-top:20px;border:1px solid #e6edef;border-radius:9px}.proof-tip{font-size:11px;color:#899ba4;max-width:600px}.editorial-status-banner{padding:18px;border-radius:7px;font-size:12px;line-height:1.9;background:#f4f8f8;color:#708c96;margin-bottom:20px}.banner-red{background:#fcf7f4;color:#a18375}.banner-green{background:#f1f8f3;color:#779a82}.banner-yellow{background:#faf8f1;color:#a7966d}.corridor-dispatch-grid,.corridor-layout,.dispatch-units-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.corridor-card,.dispatch-unit,.corridor-zone{border:1px solid #e2eaec;border-radius:9px;padding:20px;background:#fff}.d-flex{display:flex}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.align-items-center{align-items:center}.flex-wrap{flex-wrap:wrap}.gap-2{gap:10px}.w-100{width:100%}.mt-2{margin-top:10px}.mt-3{margin-top:18px}.mt-4{margin-top:24px}.pt-3{padding-top:18px}.py-2{padding-top:10px;padding-bottom:10px}.px-4{padding-left:22px;padding-right:22px}.font-weight-bold{font-weight:500}.border-top{border-top:1px solid var(--line)}.btn-close{border:0;background:transparent;font-size:26px;color:#9aacb5;line-height:1;padding:5px}.btn-outline-warning,.btn-warning{background:#faf7f0;border-color:#e6ddca;color:#9a875e}.btn-outline-info,.btn-info{background:#f1f7f9;border-color:#d9e6eb;color:#7194a3}
/* Map presentation does not inherit layout from the former game shell. */
.fullscreen-map-wrapper{display:flex;flex-direction:column;min-width:0}.tactical-hud-topbar{display:flex;flex-direction:column;gap:15px;padding:20px;border-bottom:1px solid var(--line)}.map-heading{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.map-heading strong{font-size:15px;color:#5d7783}.map-heading>span:last-child{font-size:10px;color:#a5b2ba}.map-kicker{font-size:9px;letter-spacing:1px;color:#a4b3bc}.hud-filters{display:flex;gap:6px;flex-wrap:wrap}.layer-pill{display:flex;align-items:center;gap:5px;font-size:10px;color:#8ba0ab;padding:6px 8px;border:1px solid #e1e9ed;border-radius:5px;background:#fff}.layer-pill input{accent-color:#86a8b8}.layer-swatch{width:10px;height:2px;background:#81b2c8}.barrier-swatch{background:#c7ab7c}.troop-swatch{background:#c49c96}.medical-swatch{background:#9bbbaa}.map-selection-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 20px;font-size:10px;color:#9fafb8;background:#fbfcfd;border-bottom:1px solid var(--line)}.map-strip-hint{margin-left:auto;color:#afbbc3}.map-selection-strip strong{font-weight:500;color:#7893a3}.selection-dot{width:6px;height:6px;border-radius:50%;background:#b9cdd5}.fullscreen-tactical-svg{display:block;width:100%;height:auto;aspect-ratio:1280/760;background:#f8fbfc}.redesigned-city-map .map-base{fill:#f5f9fb}.redesigned-city-map .map-frame{fill:#fbfdfe;stroke:#dfe9ed;stroke-width:1.5}.redesigned-city-map .map-grid{opacity:.2}.redesigned-city-map text{font-family:"Segoe UI","Microsoft YaHei",sans-serif;fill:#91a7b4;font-size:12px}.city-zone-outline{fill:#f1f7fa;stroke:#d3e1e9;stroke-dasharray:6 8;stroke-width:2}.city-ring-underlay{fill:none;stroke:#ecf3f7;stroke-width:28}.city-ring{fill:none;stroke:#cadae3;stroke-width:2}.minor-road{fill:none;stroke:#d8e6ed;stroke-width:10}.main-road-casing{fill:none;stroke:#d5e3eb;stroke-width:25}.main-road{fill:none;stroke:#eaf1f5;stroke-width:13}.road-name{fill:#a0b5c2!important;font-size:14px}.road-caption{font-size:10px}.city-node{cursor:pointer}.node-pin{fill:#a1bac8;stroke:#fff;stroke-width:3}.node-card{fill:#fff;stroke:#d4e2e9;stroke-width:1.7}.node-name{fill:#6b8a9c!important;font-size:14px;font-weight:500}.node-detail{fill:#afc0cc!important;font-size:10px}.command-card{fill:#faf8f1;stroke:#ddd2b8}.medical-card{fill:#f2f8f5;stroke:#cfdfd5}.square-card{fill:#faf4f1;stroke:#dac4bc;stroke-width:2}.square-name{fill:#ac8c7e!important;font-size:16px}.square-halo{fill:#ddc3b6;opacity:.1}.square-pin{fill:#c9aa99}.node-status{fill:#b69a8a!important;font-size:10px}.landmark-card{fill:#f8f5f1;stroke:#ddd4c7}.landmark-name{fill:#b3a695!important;font-size:12px}.city-node:hover .node-card,.city-node.node-selected .node-card{stroke:#87aeba;stroke-width:2.5;fill:#eff7fa}.changan-flow{fill:none;stroke-width:3;stroke-dasharray:8 8}.street-normal{stroke:transparent}.street-marching{stroke:#c4a49e}.street-barricaded{stroke:#c9b086}.street-patrol{stroke:#bf9494}.map-march-route{fill:none;stroke:#93bbcc;stroke-width:4;stroke-dasharray:9 7}.map-medical-route{fill:none;stroke:#abc8b6;stroke-width:4;stroke-dasharray:5 8}.route-label rect,.ring-label rect,.map-legend rect,.north-marker circle{fill:#fff;stroke:#dbe6ed}.ring-label text,.map-legend text,.north-marker text{fill:#99b0bd!important;font-size:11px}.north-marker path{fill:#acbfca}.map-route-note circle,.barrier-marker circle{fill:#fcfaf4;stroke:#dbd4bf}.map-route-note text,.barrier-marker text{fill:#b0a58e!important;font-size:10px}.barrier-marker path{stroke:#c6b68f;stroke-width:3}.troop-marker circle{fill:#c5a6a1;stroke:#fff;stroke-width:2}.troop-marker text{fill:#fff!important;font-size:10px}.troop-label{fill:#b69b99!important}.map-legend text{font-size:10px}.legend-road{stroke:#c3d6e2}.legend-route{stroke:#9ab7c8}.legend-city{fill:#a4bdcb}.legend-core{fill:#c6a994}.legend-troop{fill:#c2a3a2}.map-intel{padding:22px}.drawer-header{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}.drawer-tag{font-size:9px;color:#b2a499;background:#faf7f2;padding:4px 7px;border-radius:4px}.drawer-node-name{font-size:20px;margin-top:12px}.intel-section{padding:0 0 22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.intel-sec-label{font-size:12px;color:#839eac;font-weight:500;margin-bottom:13px}.intel-sec-content,.intel-note-box{font-size:12px;line-height:1.9;color:#8a9ca6}.intel-value-tag{font-size:10px;line-height:1.9;color:#ac9b81;background:#fbf9f3;border-radius:6px;padding:12px;margin-top:14px}.intel-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.intel-stat-box{padding:14px;border:1px solid #e8eff2;border-radius:7px;background:#fbfdfe}.stat-lbl{display:block;font-size:10px;color:#a6b5bd;margin-bottom:6px}.stat-val{font-size:11px;color:#839aa8;line-height:1.8}.intel-note-box{margin-top:15px}.intel-photo-wrap img{border-radius:7px}.drawer-footer{display:grid;gap:10px}.drawer-footer .btn,.intel-section .btn{white-space:normal;font-size:11px}
@media(max-width:760px){.modal-header,.minigame-header{padding:20px;align-items:start;flex-wrap:wrap;gap:10px}.minigame-title{font-size:18px}.minigame-locked-badge{white-space:normal;font-size:9px}.modal-body,.minigame-body{padding:20px}.dialogue-meters-bar{gap:10px}.meter-label{font-size:9px}.dialogue-chat-window{padding:13px;max-height:40dvh}.chat-bubble{padding:13px}.bubble-text{font-size:12px}.dialogue-choices-grid{grid-template-columns:1fr}.btn-dialogue-choice{padding:15px}.newspaper-proof-sheet{padding:18px}.newspaper-masthead{display:block}.masthead-date{display:block;margin-top:8px}.proof-header-stamp{padding:13px;flex-wrap:wrap}.proof-passage-box{padding:17px}.passage-headline{font-size:18px}.passage-content{font-size:13px}.corridor-dispatch-grid,.corridor-layout,.dispatch-units-grid{grid-template-columns:1fr}.map-selection-strip .map-strip-hint{display:none}.map-intel{padding:20px}}
