/* 编制依据：已确认讨论记录 部队编制与训练；沿用现有侧栏。 */
.formation-count{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;font-size:12px}.formation-count input{width:76px;min-height:36px}.formation-equipment{display:flex;gap:10px;align-items:center;border-bottom:1px solid #716c4b;padding:8px 0}.formation-equipment img{width:65px;height:50px;object-fit:contain}.formation-equipment>div{flex:1;font-size:12px}#formation-name{width:100%;padding:9px;background:#1d2724;color:#e5dfc9;border:1px solid #727657}#formation-details{margin:15px 0}#formation-details summary{cursor:pointer;padding:10px 0}.formation-preview{margin-top:12px}
#command{min-height:62px}#command-info{min-width:0;overflow-wrap:anywhere}#command button{min-height:40px}#confirm-order:disabled{opacity:.75;color:#d9ceae}#command:has(#confirm-order:disabled){border-color:#d2b778}
@media(max-height:550px) and (orientation:landscape){#command{min-height:48px}#command-info{max-width:none;flex:1;font-size:11px}.command-buttons button{padding:7px 9px!important;min-height:38px!important}}
/* 教学依据：docs/新手教学扩充.md；保留地图操作与独立菜单滚动。 */
#tutorial{max-height:calc(100dvh - 230px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;background:linear-gradient(135deg,#263027f7,#171e18f7);border-color:#a58d53}
.guide-phases{display:flex;gap:8px;margin:10px 0;color:#919d8d;font-size:10px;border-block:1px solid #82744d66;padding:7px 0}
.guide-phases span{flex:1;text-align:center;white-space:nowrap}
.guide-phases .current{color:#f0d99a}
.guide-step{display:block;font-size:12px;color:#edd49a;margin-top:9px}
#tutorial .guide-error{border-left:3px solid #d18b62;padding:6px 9px;color:#f0be9f;background:#603b242e}
.guide-input{font-size:10px;color:#aeb7a5}
.guide-target{outline:2px solid #e1c77e!important;outline-offset:2px;box-shadow:0 0 12px #dfc57b60!important}
#map.guide-target{outline:none!important;box-shadow:none!important}
#guide-pointer{position:absolute;z-index:12;width:26px;height:26px;margin:-13px;border:2px solid #f4d38b;border-radius:50%;pointer-events:none;box-shadow:0 0 0 5px #d7ae4933,0 0 15px #000;animation:guide-beacon 1.5s ease-in-out infinite}
#guide-pointer::after{content:'';position:absolute;inset:8px;background:#fff2bf;border-radius:50%}
#guide-route{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.guide-command-sample{display:flex;gap:5px;margin-top:9px}
.guide-command-sample span{padding:6px;border:1px solid #8c7b51;color:#ead9ac;font-size:11px}
@keyframes guide-beacon{50%{box-shadow:0 0 0 10px #d7ae4910,0 0 15px #000}}
@media(max-height:550px) and (orientation:landscape){#tutorial{width:270px;max-height:calc(100dvh - 162px);left:73px;bottom:57px;padding:9px 11px}.guide-phases{margin:6px 0;padding:5px 0;gap:4px;font-size:9px}#tutorial .guide-input{font-size:9px}#tutorial .guide-step{font-size:11px;margin-top:6px}#tutorial button{min-height:32px}#tutorial .tutorial-top button{min-height:28px}}
@media(prefers-reduced-motion:reduce){#guide-pointer{animation:none}}

/* Approved politics-panel-preview: a user-opened panel, not an event modal. */
#panel.politics-panel{left:102px;right:18px;top:86px;bottom:78px;width:auto;background:linear-gradient(120deg,#1c251dfb,#101912fc);border:3px double #aa905b;box-shadow:0 14px 40px #000b;backdrop-filter:none}
#panel.politics-panel>header{background:linear-gradient(100deg,#283024,#151d16);border-bottom:1px solid #a68b4d;padding:14px 22px}
#panel.politics-panel h2{font-size:29px;color:#ecdcb1;margin:3px 0 0}
#panel.politics-panel>header button{font-size:34px;min-width:44px;min-height:44px;color:#d8c492}
#panel.politics-panel #panel-content{padding:14px 18px;min-height:0;scroll-padding-top:60px}
.politics-overview{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:14px;margin-bottom:15px}
.politics-frame{border:3px double #7c714e;background:linear-gradient(140deg,#29302566,#10191199);padding:16px;box-shadow:inset 0 0 14px #0002;min-width:0}
.politics-frame h3{font:22px/1.45 'SimSun',serif;margin:0 0 8px;color:#e2d2a8}
.politics-frame small{display:block;color:#a9ab96;font-size:11px;line-height:1.6}
.politics-leader{display:grid;grid-template-columns:minmax(85px,.7fr) 1fr;gap:14px;position:relative;padding-bottom:32px}
.politics-leader>img{width:100%;height:174px;object-fit:cover;object-position:center 24%;border:1px solid #8c8058;border-radius:2px}
.politics-leader h3{font-size:20px;margin:7px 0}.politics-leader p{color:#c4c5aa;margin:3px 0;font-size:13px}
.politics-leader hr{border:0;border-top:1px solid #81745377;margin:12px 0}
.politics-leader .portrait-caption{position:absolute;bottom:8px;left:16px;right:8px;font-size:10px}
.politics-small{color:#a8aa95;font-size:11px;letter-spacing:1px}
.politics-support h3{margin-bottom:14px}.party-stack{height:17px;border:1px solid #bcb39866;display:flex;overflow:hidden;border-radius:3px;margin:10px 0 15px}
.party-stack i{display:block;box-shadow:inset 0 2px 4px #fff2}.party-row{display:flex;align-items:center;gap:9px;margin:10px 0;font-size:13px;color:#d0cdb0}.party-row>i{width:13px;height:13px;border:1px solid #dfd7b655;border-radius:2px}.party-row>b{margin-left:auto;color:#dfcfa4;font-weight:400}
.politics-metrics>div{padding-bottom:10px;border-bottom:1px solid #81745355}.politics-metrics .row{font-size:17px;margin:0 0 8px}.politics-metrics>div+div{padding-top:10px}.politics-metrics .meter{height:8px;margin:7px 0;background:#090f0b;border:1px solid #a2905355}.politics-metrics .meter i{background:linear-gradient(90deg,#82692f,#cab373)}
.politics-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;position:sticky;top:-14px;z-index:2;background:#151d15;padding:9px 0 12px;margin-bottom:8px;border-block:1px solid #a38c5766}
.politics-tabs button{font-size:17px;min-height:46px;background:linear-gradient(130deg,#293023,#151e17);color:#ccc8aa;border:2px groove #86774e}
.politics-tabs button.active{background:linear-gradient(130deg,#756139,#443a22);color:#fff0c5;border-color:#be9c56}
.politics-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.politics-card-grid.government-grid{grid-template-columns:1fr 1fr}
.policy-card{display:flex;flex-direction:column;gap:8px}.policy-card-head{display:flex;gap:13px;align-items:center;min-height:110px}.policy-card-head img{width:36%;height:112px;object-fit:cover;object-position:center;border:1px solid #9b875166;background:#182118;border-radius:2px}.policy-card-head h3{margin:6px 0 12px}.policy-card p,.government-record p{font-size:13px;color:#c7c6ae;margin:3px 0 8px;line-height:1.8}.policy-condition{font-size:12px;color:#c7b988;margin-bottom:6px}.policy-card>button{margin-top:auto;width:100%;background:linear-gradient(#6b5835,#433a24);border:2px groove #b29960;min-height:43px;color:#ecdfba}
.government-record>button{margin:14px 0}.government-officers{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.government-officers>div{border-bottom:1px solid #85744944;padding:5px 0;color:#d3c9a9;font-size:13px}.government-officers small{margin-top:5px}
.politics-footnote{font-size:11px!important;color:#9da490;margin-bottom:0}.policy-confirm-summary h3{color:#dcc997;font-weight:500}.policy-effect{border-left:2px solid #a58d53;padding:5px 12px;margin:7px 0;font-size:13px;line-height:1.7}
#app.politics-open:has(#tutorial:not([hidden])) #panel.politics-panel{bottom:224px}
#app.politics-open #tutorial{width:auto;left:102px;right:18px;max-height:130px;bottom:78px;display:grid;grid-template-columns:250px 1fr auto;gap:2px 20px}
#app.politics-open #tutorial .tutorial-top{grid-column:1/-1;grid-row:1}#app.politics-open #tutorial .guide-phases{grid-column:1;grid-row:2}#app.politics-open #tutorial h3{grid-column:1;grid-row:3}#app.politics-open #tutorial .guide-step{grid-column:2;grid-row:2}#app.politics-open #tutorial>p{grid-column:2;grid-row:3;margin:0}#app.politics-open #tutorial .guide-input{display:none}#app.politics-open #tutorial .actions{grid-column:3;grid-row:2/4;margin:0;align-self:end;max-width:210px}
@media(max-width:1150px){.politics-overview{gap:9px;grid-template-columns:1.15fr 1fr 1fr}.politics-frame{padding:12px}.politics-frame h3{font-size:18px}.politics-leader{gap:9px;padding-bottom:30px}.politics-leader>img{height:152px}.politics-leader h3{font-size:17px}.politics-leader .portrait-caption{left:12px}.politics-card-grid{gap:10px}.policy-card-head{gap:8px}.policy-card-head img{height:100px}}
@media(max-height:550px) and (orientation:landscape){
 #panel.politics-panel{left:72px;right:7px;top:58px;bottom:52px}#panel.politics-panel>header{padding:5px 12px}#panel.politics-panel h2{font-size:21px}#panel.politics-panel>header small{font-size:9px}#panel.politics-panel>header button{font-size:28px;min-height:40px}
 #panel.politics-panel #panel-content{padding:10px;scroll-padding-top:52px}.politics-overview{gap:7px;margin-bottom:8px;grid-template-columns:1.15fr 1fr 1fr}.politics-frame{padding:9px}.politics-frame h3{font-size:16px}.politics-frame small,.politics-small{font-size:10px}.politics-leader{grid-template-columns:78px 1fr;gap:8px;padding-bottom:25px}.politics-leader>img{height:110px}.politics-leader h3{font-size:15px;line-height:1.4;margin:3px 0}.politics-leader p{font-size:10px}.politics-leader hr{margin:6px 0}.politics-leader .portrait-caption{font-size:8px;left:9px;bottom:6px}.politics-support h3{margin-bottom:7px}.party-stack{height:12px;margin:7px 0 9px}.party-row{font-size:11px;margin:7px 0;gap:6px}.party-row>i{width:10px;height:10px}.politics-metrics .row{font-size:12px;margin-bottom:4px}.politics-metrics .meter{height:6px;margin:5px 0}.politics-metrics>div{padding-bottom:6px}.politics-metrics>div+div{padding-top:6px}.politics-tabs{top:-10px;padding:5px 0 8px;margin-bottom:6px}.politics-tabs button{font-size:13px;min-height:40px;padding:6px}.politics-card-grid{gap:8px}.policy-card-head{min-height:76px;gap:8px}.policy-card-head img{height:80px;width:40%}.policy-card-head h3{font-size:16px;margin:4px 0 8px}.policy-card p,.government-record p{font-size:12px}.policy-condition{font-size:11px}.policy-card>button{min-height:44px;font-size:12px;padding:6px}.politics-footnote{font-size:10px!important}.government-officers{grid-template-columns:1fr 1fr}.government-officers>div{font-size:12px}
 #app.politics-open:has(#tutorial:not([hidden])) #panel.politics-panel{bottom:153px}#app.politics-open #tutorial{left:72px;right:7px;bottom:52px;max-height:94px;grid-template-columns:180px 1fr 170px;gap:1px 12px}#app.politics-open #tutorial .guide-phases{margin:3px 0;padding:3px 0}#app.politics-open #tutorial h3{font-size:15px;margin:2px 0}#app.politics-open #tutorial .guide-step{font-size:11px;margin:2px 0}#app.politics-open #tutorial .actions{gap:5px}#app.politics-open #tutorial .actions button{min-height:28px}#app.politics-open:has(#tutorial:not([hidden])) #panel.politics-panel>header{padding:3px 12px}#app.politics-open:has(#tutorial:not([hidden])) #panel.politics-panel>header small{display:none}
}

/* docs/message-popup-comparison.png and newspaper-mukden-preview-v2.png */
#panel.province-panel{width:390px;background:linear-gradient(130deg,#242d22f7,#151d17f7);border:2px ridge #8a7b50}
#panel.province-panel>header{background:transparent;padding:15px 19px}
#panel.province-panel h2{font-size:29px;color:#e9dfbd}
#province-tabs{display:flex;flex-shrink:0;border-block:1px solid #8a784d;background:#192219}
#province-tabs button{flex:1;border:1px solid #665f42;border-radius:0;background:transparent;padding:12px;color:#b7b59d;font-size:15px}
#province-tabs button.active{background:linear-gradient(#73603b,#4c4229);color:#f6e8bc;border-color:#c1a367}
.capacity-block{border-bottom:1px solid #706044;padding-bottom:9px}.capacity-block p{color:#c7c5ab}
.province-panel .meter{height:8px;border:1px solid #646149;background:#151d16}.province-panel .meter>i{background:linear-gradient(#d6bd7c,#9c803f)}
.facility-heading{font:21px 'SimSun',serif;color:#e3d6ae;margin:15px 0 11px}
.facility-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.facility-tile{display:flex;align-items:center;flex-direction:column;min-width:0;padding:7px;border:2px ridge #6a674f;background:linear-gradient(135deg,#303529,#1c241d);color:#e9dfbf}
.facility-tile img{width:100%;height:67px;object-fit:contain;mix-blend-mode:lighten}.facility-tile span{font:17px 'SimSun',serif;padding:4px 0}
.facility-tile.selected{border-color:#dfc787;box-shadow:0 0 8px #d8bd6655,inset 0 0 12px #bfa95718}
.more-facilities{margin-top:12px}.more-facilities summary{cursor:pointer;color:#b8af8c;font-size:12px;padding:7px}.more-facilities .facility-grid{margin-top:7px}
.facility-detail{display:flex;gap:12px;margin-top:12px;padding:11px;border:1px solid #756a4d;background:#1d271e}.facility-detail>img{width:90px;height:75px;object-fit:contain;mix-blend-mode:lighten}.facility-detail>div{flex:1;min-width:0}.facility-detail h3{font:18px 'SimSun',serif;margin:0 0 6px;color:#e4d6af}.facility-detail p{font-size:11px;line-height:1.6;color:#b5b8a5;margin:5px 0}.facility-detail .row{font-size:11px;margin:6px 0;gap:6px}.facility-symbol{font:40px serif;display:grid;place-items:center;min-height:65px}
.build-reason{font-size:11px!important;line-height:1.6}.build-submit{font:18px 'SimSun',serif;padding:13px!important;background:linear-gradient(#75613a,#504528)!important;border:2px ridge #bda16a!important;color:#f1e4bf!important}.build-submit:disabled{opacity:.5}
.construction-job{display:flex;gap:12px;align-items:center;padding:12px 8px;border:1px solid #736348;background:#242c21;margin-bottom:10px}.construction-job>img{width:68px;height:52px;object-fit:contain}.construction-job>div{flex:1;min-width:0}.construction-job b{font:14px 'SimSun',serif}.construction-job small{font-size:10px}.construction-job .meter{margin:7px 0}
@media(max-height:550px) and (orientation:landscape){#panel.province-panel{width:300px}#panel.province-panel>header{padding:7px 12px}#panel.province-panel h2{font-size:21px}#province-tabs button{padding:8px;font-size:12px}.province-panel #panel-content{padding:10px}.capacity-block p{margin:0;font-size:11px}.capacity-block .row{margin:6px 0;font-size:11px}.facility-heading{font-size:16px;margin:9px 0}.facility-grid{gap:7px}.facility-tile{padding:4px}.facility-tile img{height:44px}.facility-tile span{font-size:13px}.facility-detail{padding:8px;gap:8px}.facility-detail>img{width:66px;height:55px}.facility-detail h3{font-size:15px}.build-submit{font-size:15px;padding:10px!important}.construction-job{padding:8px}.construction-job>img{width:50px;height:42px}}
#modal-layer.message-layer{background:#07100d55;backdrop-filter:none}
#modal-layer.telegram-layer,#modal-layer.important-layer,#modal-layer.located{justify-content:flex-end;pointer-events:none;background:transparent}
.dispatch{pointer-events:auto;position:relative;width:min(550px,82vw);border:3px ridge #998354;border-radius:5px;background:radial-gradient(ellipse at top left,#363728,#171b16 75%);box-shadow:inset 0 0 0 3px #191d16,inset 0 0 35px #0008,0 12px 35px #000a;color:#ede3c8}
.dispatch::after{content:'';position:absolute;inset:6px;border:1px solid #b3985355;pointer-events:none}
.dispatch .modal-header{justify-content:flex-start;gap:14px;padding:12px 23px;border-color:#97855380;background:linear-gradient(90deg,#88703460,transparent)}
.dispatch .modal-header h2{font:600 26px 'SimSun',serif;letter-spacing:3px;color:inherit}
.dispatch-symbol{display:grid;place-items:center;width:35px;height:35px;background:linear-gradient(#9d7227,#573d13);border:1px solid #baa06c;border-radius:5px;color:#ffe5a5;font:bold 28px Georgia,serif}
.dispatch-status{display:flex;justify-content:space-between;padding:8px 22px;font-size:11px;color:#c9b585;border-bottom:1px solid #97855345}
.dispatch .modal-content{padding:18px 25px 24px;min-height:0}
.dispatch h3{font:600 29px/1.5 'SimSun',serif;margin:0 0 15px;overflow-wrap:anywhere}
.dispatch p{font:17px/1.9 'SimSun',serif;margin:0 0 10px;color:inherit}
.dispatch figure{margin:0}.dispatch svg{width:100%;height:auto;max-height:200px;border:1px solid #847c61;display:block;background:#294350}
.dispatch figcaption{font:11px/1.7 'Microsoft YaHei',sans-serif;margin-top:4px;opacity:.7}
.dispatch-body{display:flex;gap:22px}.dispatch-body>p{flex:1}.dispatch-body>figure{width:32%;flex-shrink:0}
.dispatch .modal-footer{flex-wrap:wrap;border-color:#8e7b4e88;padding:16px 24px;gap:10px}
.dispatch button{min-height:42px;background:linear-gradient(#44453b,#272c28);color:#ecdfbf;border:1px solid #7d7d69;box-shadow:inset 0 0 0 2px #1f211aaa,0 2px 4px #0005;font:17px 'SimSun',serif;padding:10px 20px}
.dispatch button.primary{background:linear-gradient(#927033,#55401b);border-color:#c0a365;color:#fff0c9}
.dispatch.emergency .modal-header{background:linear-gradient(90deg,#912a1c,#61251caa,transparent);border-color:#a9432b}
.dispatch.emergency .dispatch-symbol{background:#a83721;color:#f5d0ad;border-color:#a5583a}
.dispatch.emergency [data-action='message-locate']{background:linear-gradient(#9c3e24,#602318);border-color:#c79a53;color:#ffe6c2}
.dispatch.telegram,.dispatch.newspaper{color:#302c23;background:radial-gradient(ellipse at center,#f0e7ce,#d4be95);border:2px solid #b19b71;box-shadow:inset 0 0 25px #8b713e44,0 12px 35px #0009}
.dispatch.telegram::after,.dispatch.newspaper::after{border-color:#90784855}
.dispatch.telegram{width:min(460px,82vw)}
.dispatch.telegram .modal-header{background:transparent;border-bottom:3px double #6f624d;padding-top:18px}
.dispatch.telegram .dispatch-symbol{background:transparent;border:0;color:#675138;font-size:33px}
.dispatch.telegram .dispatch-body>figure{display:none}
.dispatch.telegram .modal-content{background:repeating-linear-gradient(transparent 0 35px,#8e795317 35px 36px)}
.dispatch.telegram .telegram-stamp{font:13px 'SimSun',serif;margin-top:25px;color:#635845}
.dispatch.telegram .dispatch-status,.dispatch.newspaper .dispatch-status{color:#6b5b3e}
.dispatch.telegram button,.dispatch.newspaper button{background:linear-gradient(#3f5660,#263d45);border-color:#9f8152;color:#f6e8c7}
.dispatch.newspaper{width:min(1080px,94vw);border:5px double #8b7553}
.dispatch.newspaper .modal-header{background:none;justify-content:center;border-bottom:4px double #504735;padding:12px 26px}
.dispatch.newspaper .modal-header h2{font:700 48px 'SimSun',serif;letter-spacing:12px}
.dispatch.newspaper .dispatch-symbol{display:none}
.dispatch.newspaper h3{font-size:37px;text-align:center;margin:16px 0}
.edition-line{display:flex;justify-content:space-between;border-bottom:1px solid #776447;padding:0 0 9px;font:13px 'SimSun',serif}
.newspaper-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(170px,1fr);gap:22px}
.newspaper-columns>aside{border-left:1px solid #8b7857;padding-left:20px}.newspaper-columns h4{font:700 21px 'SimSun',serif;margin:0 0 10px}
.dispatch .history-scene img{display:block;width:100%;height:auto;border:1px solid #796948;filter:sepia(.2)}
.dispatch .history-scene{margin-bottom:14px}.background-note{border-block:1px solid #8b7857;padding:12px 0;margin-top:14px}.background-note p{font-size:14px;margin:7px 0 0}
.located .dispatch{width:min(410px,44vw)}
@media(max-height:550px) and (orientation:landscape){#modal-layer.message-layer{padding:8px}.dispatch{max-height:calc(100dvh - 16px);width:min(480px,68vw)}.dispatch.telegram{width:min(400px,58vw)}.dispatch .dispatch-status{padding:5px 14px;font-size:10px}.dispatch .modal-header{padding:7px 16px}.dispatch .modal-header h2{font-size:21px}.dispatch-symbol{width:25px;height:25px;font-size:20px}.dispatch .modal-content{padding:12px 17px}.dispatch h3{font-size:23px;margin-bottom:10px}.dispatch p{font-size:14px;line-height:1.7}.dispatch .modal-footer{padding:8px 16px;gap:7px}.dispatch button{font-size:13px;padding:7px 12px;min-height:35px}.dispatch.telegram .telegram-stamp{margin-top:12px}.dispatch.newspaper .modal-header{padding:6px 17px}.dispatch.newspaper .modal-header h2{font-size:30px}.dispatch.newspaper h3{font-size:27px;margin:10px 0}.newspaper-columns{gap:15px}.newspaper-columns>aside{padding-left:14px}.newspaper-columns h4{font-size:17px}.dispatch.newspaper .history-scene img{max-height:165px;object-fit:cover}.dispatch figcaption{font-size:10px}.background-note{padding:7px 0;margin-top:9px}.background-note p{font-size:12px}.located .dispatch{width:43vw}}
