:root{font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:#334e42;background:#cdd6bf;--ink:#334e42;--muted:#7c8b74;--paper:#f3eedc;--gold:#e7bd67;--green:#335e4e;--line:#c7ceb2}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,select,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.1)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.48;cursor:default}button:focus-visible,select:focus-visible,canvas:focus-visible,a:focus-visible{outline:3px solid #ca9843;outline-offset:3px}button:focus:not(:focus-visible){outline:0}h1,h2,h3,p{margin:0}b,strong{font-weight:650}i,em{font-style:normal}small{font-size:11px}svg{vertical-align:middle;pointer-events:none}.icon{width:20px;height:20px;flex-shrink:0}.product-icon{width:22px;height:22px;flex-shrink:0}[hidden]{display:none!important}#world,#region{position:fixed;inset:0;width:100%;height:100%;touch-action:none}#world{cursor:grab}body.building #world{cursor:crosshair}#region{cursor:pointer}.topbar{position:absolute;inset:0 0 auto;height:72px;padding:0 24px;display:flex;align-items:center;gap:24px;background:linear-gradient(#355849,#28463e);color:#eee7cf;border-bottom:3px solid #203c32;box-shadow:0 3px #b9a26055,0 8px 22px #30463025;z-index:5}.brand{display:flex;align-items:center;gap:12px;text-align:left;min-width:200px}.brand>.icon,.brand>span>.icon{width:36px;height:36px;color:#e3be70}.brand strong{display:block;font-size:21px;letter-spacing:2px}.brand small{display:block;margin-top:3px;font-size:9px;color:#b6c7a9}.resources{display:flex;gap:32px;align-items:center;margin:0 auto}.resource{display:flex;align-items:center;gap:9px;text-align:left;min-width:80px;white-space:nowrap}.resource .icon{color:#dfbd75}.resource small{display:block;color:#b1c1a8;font-size:10px;margin-bottom:2px}.resource b{font-size:21px;font-variant-numeric:tabular-nums;color:#f5e8c7}.resource:nth-child(2) .icon{color:#b6c991}.resource:nth-child(3) .icon{color:#a8c9c7}.power-metric.warning b{color:#ffc581}.icon-button{width:34px;height:34px;border:1px solid #84937555;border-radius:5px;display:inline-grid;place-items:center}.view-switch{position:absolute;top:88px;left:50%;transform:translateX(-50%);display:flex;border:2px solid #f0ebd480;background:#4d6b57dd;border-radius:9px;padding:3px;z-index:4;box-shadow:0 3px 8px #243d2d18;white-space:nowrap}.view-switch button{color:#d8dfc6;font-size:12px;padding:8px 20px;border-radius:5px}.view-switch button.active{background:#f2e8cd;color:#39523f;box-shadow:0 2px 3px #243e2d55}.view-switch span{margin-left:5px;opacity:.7;font-size:10px}.time-controls{position:absolute;right:22px;top:88px;display:flex;gap:1px;padding:3px;border-radius:6px;background:#eef0d8e6;border:1px solid #aabc9f;z-index:4}.time-controls button{height:30px;min-width:30px;border-radius:4px;font-size:12px}.time-controls .icon{width:15px;height:15px}.time-controls button.active{background:#597558;color:#fbf0cf}.paper{background:linear-gradient(135deg,#f7f1df,#e9ead5);border:1px solid #aebd9a;border-radius:9px;box-shadow:0 4px 0 #8a9f7740,0 9px 28px #344c3112;z-index:3}.mission{position:absolute;top:99px;left:22px;width:246px;padding:19px 18px;max-height:calc(100% - 275px);overflow:auto}.eyebrow{font-size:9px;letter-spacing:2px;color:#8a957a;display:block;margin-bottom:10px}.mission h2{font-size:23px;line-height:1.4;letter-spacing:.5px}.mission p{font-size:12px;color:#76856d;line-height:1.85;margin:12px 0}.chapter-track{display:flex;gap:5px;margin:0 0 18px}.chapter-track i{height:4px;width:100%;border-radius:3px;background:#b8c5a466}.chapter-track i.done{background:#a2b16b}.portrait-line{display:flex;gap:9px;align-items:center;border-top:1px solid #c6ceb144;padding-top:12px;font-size:10px;color:#829175}.portrait{width:31px;height:31px;background:#d5ba7e;border:2px solid #b5ad82;border-radius:50%;display:grid;place-items:center;color:#3f6753}.portrait .icon{width:18px;height:18px}.need-row{display:flex;align-items:center;gap:7px;margin-top:11px;font-size:12px}.need-row b{margin-left:auto;font-variant-numeric:tabular-nums}.need-row small{color:#8b967e}.track{height:5px;border-radius:4px;background:#c5cfb480;overflow:hidden;margin-top:7px}.track>i{display:block;height:100%;background:#91a464;border-radius:4px;transition:width .35s}.track.gold>i{background:#d3ae59}.status-note{padding:9px 10px;margin-top:12px;background:#ced9ba55;border-radius:5px;font-size:11px;line-height:1.7;color:#6c805f}.primary,.secondary,.quiet{min-height:36px;padding:9px 13px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px}.primary{background:linear-gradient(#dfbc70,#d5aa58);border:1px solid #bb9349;box-shadow:0 2px 0 #a9874840;color:#3e513b;font-weight:650}.secondary{background:#dce3c8;border:1px solid #b4c3a2;color:#446041}.quiet{border:1px solid #b7c4a255;color:#6e8563}.full{width:100%;margin-top:12px}.field-panel{position:absolute;right:22px;top:138px;width:238px;padding:18px;max-height:calc(100% - 330px);overflow:auto;font-size:12px}.field-panel h2{font-size:20px;margin:3px 0 11px}.field-panel p{font-size:11px;line-height:1.8;color:#7c8b72;margin:9px 0}.panel-top{display:flex;justify-content:space-between;align-items:center}.panel-top .icon-button{width:26px;height:26px;border:0}.mini-map{width:100%;height:128px;background:#d3dcc0;border-radius:7px;overflow:hidden;margin:11px 0;position:relative}.mini-map svg{width:100%;height:100%}.mini-map-label{position:absolute;bottom:7px;left:9px;font-size:8px;letter-spacing:1px;color:#627a59}.crew-summary{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid #c1ccb0;color:#758568}.crew-summary b{color:#375641}.mini-log{font-size:11px;line-height:1.8;padding:10px;background:#d9dfc652;border-radius:5px;margin-top:10px}.machine-title{display:flex;align-items:center;gap:9px}.machine-title>.icon{width:28px;height:28px}.machine-title h2{font-size:19px;margin:0}.machine-title small{font-size:9px;color:#89997f}.machine-state{font-size:11px;margin:13px 0;padding:8px;background:#ccdcc45c;border-radius:4px}.machine-state.warning,.machine-state.blocked{background:#e4c89266;color:#916934}.machine-data{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:11px;margin:15px 0}.machine-data dt{color:#7c8c71}.machine-data dd{margin:0;font-variant-numeric:tabular-nums}.recipe{display:flex;align-items:center;gap:8px;background:#dce2cc;padding:8px;border-radius:5px}.recipe span{display:flex;gap:3px;align-items:center}.recipe small{margin-left:auto;color:#7e8c6c}.machine-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.machine-actions button{flex:1;font-size:11px}.split-modes{display:flex;margin:12px 0 8px;gap:3px}.split-modes button{padding:7px 6px;border:1px solid #bbc8a9;border-radius:4px;font-size:10px;flex:1}.split-modes button.active{background:#4e755b;color:#f4e7c5}.field-panel select{padding:5px;border:1px solid #b1c29c;background:#eef0da;border-radius:4px;font-size:12px;width:100%}.radio{position:absolute;left:22px;bottom:170px;display:flex;align-items:center;gap:10px;background:#426957;color:#eee4c4;padding:13px 16px;border:2px solid #d8c08a;border-radius:7px;z-index:4;box-shadow:0 3px 10px #2d4b2e25;font-size:11px;width:246px}.radio i{margin-left:auto;background:#dfb764;color:#34533c;border-radius:50%;height:18px;width:18px;display:grid;place-items:center}.construction-hint{position:absolute;bottom:170px;left:50%;transform:translateX(-50%);background:#f4ecd0ec;border:1px solid #c6bc90;border-radius:6px;padding:10px 14px;font-size:11px;line-height:1.6;color:#637653;max-width:440px;text-align:center;pointer-events:none;z-index:2}.rail-strip{position:absolute;bottom:116px;left:50%;transform:translateX(-50%);width:420px;background:#355948e8;border:1px solid #869e725c;box-shadow:0 3px 12px #344b321a;border-radius:8px;padding:10px 13px;color:#e7e8cc;z-index:4}.rail-strip button{display:flex;align-items:center;gap:13px;text-align:left;width:100%}.rail-strip .icon{width:26px;height:26px;color:#e4c57e}.rail-strip strong{display:block;font-size:12px}.rail-strip small{font-size:10px;display:block;color:#afc0a2;margin-top:3px;max-width:330px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-strip .track{margin:8px 0 0;background:#6e896244;height:3px}.map-controls{position:absolute;right:25px;bottom:117px;display:flex;border:1px solid #acba99;background:#edf0d5e6;border-radius:5px;z-index:4}.map-controls button{width:32px;height:33px;display:grid;place-items:center;font-size:18px}.map-controls .icon{width:15px;height:15px}.build-dock{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;padding:7px 9px;gap:4px;background:linear-gradient(#395c4e,#294b40);border:2px solid #7b957061;border-top-color:#a6b38d;border-radius:10px 10px 5px 5px;box-shadow:0 3px 0 #1e382d,0 8px 24px #203f3226;z-index:5}.tool{position:relative;width:66px;height:65px;color:#cdd8b9;border:1px solid transparent;border-radius:5px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;white-space:nowrap}.tool>.icon{width:23px;height:23px;color:#d8c68e}.tool span{font-size:10px}.tool small{font-size:8px;color:#a4b59a}.tool kbd{position:absolute;left:4px;top:3px;font:8px sans-serif;color:#adc19588}.tool.active{border-color:#d7bd7b;background:#edc66b;color:#294b39;box-shadow:0 2px 0 #936e3666}.tool.active>.icon,.tool.active small{color:#4c6948}.tool.locked{opacity:.5}.tool.slim{width:42px}.tool-divider{width:1px;background:#76907055;margin:5px 3px}.footer-version{font-size:8px;letter-spacing:1px}footer{position:absolute;left:20px;right:20px;bottom:7px;display:flex;justify-content:space-between;align-items:center;color:#6e8366;font-size:9px;z-index:4}footer button{font-size:10px}kbd{font-size:9px;border:1px solid #aebd9c;border-radius:2px;padding:1px 3px}.overlay{position:fixed;inset:0;background:#1d392b75;backdrop-filter:blur(4px);z-index:20;display:grid;place-items:center;padding:24px}.modal{width:min(780px,100%);max-height:calc(100dvh - 48px);background:linear-gradient(135deg,#f7f0dc,#e9ebd3);border:2px solid #b9c7a1;border-radius:12px;box-shadow:0 12px 70px #1a382944;display:flex;flex-direction:column}.modal.small{width:min(540px,100%)}.modal-head{padding:21px 25px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c5cfb0}.modal-head h2{font-size:25px;margin-top:5px}.modal-head small{font-size:9px;letter-spacing:2px;color:#929d7e}.modal-body{padding:22px 25px;overflow:auto;overscroll-behavior:contain;font-size:13px;line-height:1.8}.modal-body p{color:#748569;margin-bottom:15px}.modal-body h3{font-size:16px;margin:18px 0 9px}.modal-body h3:first-child{margin-top:0}.modal-body a{color:#537852}.modal-actions{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{padding:17px;border:1px solid #bdcaa8;background:#edf0d99c;border-radius:8px}.card.active{border-color:#c6a157;background:#efe5c6}.card h3{margin:0 0 8px;font-size:16px}.card p{font-size:12px;margin:0 0 12px}.card small{color:#788b6b}.card .primary,.card .secondary{width:100%;margin-top:12px}.cargo-chips{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.cargo-chips>span{background:#d8e1c666;border-radius:5px;padding:7px 9px;display:flex;align-items:center;gap:6px;font-size:12px}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #c9d1b482;font-size:12px;gap:15px}.stat-row span:first-child{display:flex;align-items:center;gap:7px}.stat-row button{min-height:32px;padding:4px 10px}.stock-floor{display:flex;gap:3px}.stock-floor button{padding:4px 9px;border-radius:4px;border:1px solid #b8c9a4}.stock-floor button.active{background:#56794e;color:#f6efd1}.notice{padding:13px 15px;background:#cddab855;border-left:3px solid #a6b776;border-radius:0 5px 5px 0;font-size:12px;color:#6f815e;margin-top:14px;line-height:1.9}.journey{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-radius:8px;background:#3d6150;color:#f3e6bf;margin-bottom:18px}.journey .icon{width:38px;height:38px;color:#e8bd68}.journey strong{font-size:21px}.journey small{display:block;color:#b9cba5}.event-speaker{display:flex;gap:11px;align-items:center;color:#708362;font-size:12px;margin-bottom:18px}.event-body{font-size:16px!important;line-height:2!important;color:#526d52!important}.event-choices{display:grid;gap:9px;margin-top:22px}.event-choices button{justify-content:flex-start;text-align:left;min-height:49px}.log-entry{padding:10px 0;border-bottom:1px solid #c8d2b5;font-size:12px;color:#6d8364}.log-entry small{display:inline-block;margin-right:12px;color:#96a287;min-width:37px}.progress-world{display:flex;gap:12px;align-items:center;margin:14px 0;color:#55734f}.progress-world .icon{color:#b59146;width:32px;height:32px}.offline-earnings{font-size:34px;font-weight:600;color:#708652;margin:15px 0}.offline-earnings small{font-size:12px;margin-left:8px}.guide-flow{display:flex;gap:8px;align-items:center;padding:14px;border-radius:7px;background:#dae3c9}.guide-flow .icon{color:#788d61}.warning-text{color:#a0713a!important}.guide-list{padding-left:20px;color:#6b7f61}.guide-list li{margin:8px 0}.blueprint{width:100%;background:#dde5cd;border-radius:8px;padding:16px;margin:12px 0}.blueprint svg{width:100%;height:105px}.blueprint text{font-family:"Microsoft YaHei",sans-serif;font-size:12px}#toast{position:fixed;z-index:40;left:50%;bottom:190px;transform:translate(-50%,10px);max-width:min(520px,90%);border:1px solid #b7c599;border-radius:7px;background:#2e5549f2;color:#f0e3bf;font-size:12px;line-height:1.7;padding:12px 19px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}body[data-view=valley] .build-dock,body[data-view=valley] .map-controls,body[data-view=valley] .construction-hint{display:none}body[data-view=valley] .rail-strip{bottom:38px}body[data-view=valley] .field-panel{display:none}body[data-view=valley] .radio{bottom:38px}.file-input-label{display:block;margin-top:12px}.save-options{display:flex;gap:8px;flex-wrap:wrap}.setting-line{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0}.setting-line select{padding:6px 9px;background:#eef0d8;border:1px solid #b8c7a0;border-radius:5px}.danger{color:#936f49}.busy{text-align:center;padding:40px 10px}.busy .icon{width:36px;height:36px;animation:gentle-spin 4s linear infinite}@keyframes gentle-spin{to{transform:rotate(360deg)}}
@media(max-width:1150px){.topbar{padding:0 16px;gap:12px}.brand{min-width:150px}.resources{gap:20px}.resource{min-width:65px}.resource b{font-size:19px}.brand strong{font-size:19px}.mission{left:14px;width:223px}.field-panel{right:14px;width:210px}.view-switch{left:47%}.view-switch button{padding:8px 12px}.radio{left:14px;width:223px}.construction-hint{max-width:340px}.rail-strip{width:360px}.time-controls{right:14px}.tool{width:59px}}
@media(max-height:760px) and (min-width:761px){.mission{top:89px;padding:14px;max-height:calc(100% - 240px)}.mission h2{font-size:20px}.mission p{line-height:1.7;margin:8px 0}.chapter-track{margin-bottom:10px}.field-panel{top:131px;max-height:calc(100% - 260px);padding:14px}.mini-map{height:88px}.mini-log{display:none}.radio{bottom:118px;padding:10px 12px}.construction-hint{bottom:162px}.mission .portrait-line{display:none}}
@media(max-width:760px){.topbar{height:62px;padding:0 10px;gap:5px}.brand{min-width:85px;gap:5px;padding:0}.brand>span>.icon{width:24px;height:24px}.brand strong{font-size:14px;letter-spacing:0}.brand small{font-size:7px;letter-spacing:0}.resources{gap:12px}.resource{min-width:0;gap:3px}.resource .icon{width:14px;height:14px}.resource small{font-size:8px}.resource b{font-size:15px}.power-metric{position:absolute;right:12px;top:66px;background:#ebeed6e6;border:1px solid #b5c8a2;border-radius:5px;padding:5px 7px;min-width:72px;z-index:5}.power-metric b{font-size:13px;color:#536d49}.power-metric small{color:#7a8c6c;font-size:7px}.topbar>.icon-button{width:27px;height:30px;min-width:27px}.topbar>.icon-button .icon{width:16px;height:16px}.view-switch{top:70px;left:10px;transform:none;padding:2px;border-radius:6px}.view-switch button{font-size:10px;padding:6px 10px}.view-switch span{font-size:8px}.time-controls{top:110px;right:10px;padding:2px}.time-controls button{min-width:27px;height:27px;font-size:10px}.mission{top:110px;left:10px;right:155px;width:auto;padding:11px 12px;max-height:210px;border-radius:7px;overflow:auto}.mission .eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:5px}.mission h2{font-size:16px;line-height:1.35}.mission p{font-size:10px;line-height:1.6;margin:7px 0}.mission .portrait-line,.mission .chapter-track{display:none}.mission .need-row{font-size:10px;margin-top:6px;gap:4px}.mission .need-row .product-icon{width:15px;height:15px}.mission .track{height:3px;margin-top:4px}.mission .primary,.mission .secondary{font-size:10px;min-height:28px;padding:6px;margin-top:8px}.mission .status-note{font-size:9px;padding:5px 7px;margin-top:7px}.field-panel{top:150px;right:10px;width:136px;padding:11px;max-height:230px;font-size:10px}.field-panel h2{font-size:14px;margin-bottom:6px}.field-panel p{font-size:9px;line-height:1.65}.field-panel .eyebrow{font-size:7px;letter-spacing:.5px}.mini-map{height:62px;margin:7px 0}.mini-map-label{font-size:6px}.crew-summary{font-size:9px;display:block;padding:6px 0}.crew-summary b{float:right}.mini-log{display:none}.field-panel>.full{font-size:9px;padding:6px;min-height:28px;margin-top:8px}.field-panel.selected{left:10px;right:10px;width:auto;top:auto;bottom:125px;max-height:290px;padding:13px;box-shadow:0 3px 30px #34512f44;z-index:7}.field-panel.selected .machine-title h2{font-size:17px}.field-panel.selected p{font-size:11px}.field-panel.selected .machine-data{display:grid;grid-template-columns:1fr auto 1fr auto;margin:10px 0;font-size:10px}.field-panel.selected .machine-state{margin:8px 0;padding:5px 8px}.field-panel.selected .recipe{display:inline-flex;margin-right:8px;padding:6px}.field-panel.selected .machine-actions{margin-top:8px}.field-panel.selected .status-note{margin-top:7px;font-size:10px}.field-panel.selected .machine-title>.icon{width:22px;height:22px}.radio{left:auto;right:10px;bottom:185px;top:auto;width:auto;padding:9px;border-width:1px;gap:6px;font-size:9px}.radio>.icon{width:15px;height:15px}.radio i{width:14px;height:14px;font-size:9px}.construction-hint{bottom:181px;left:10px;transform:none;max-width:215px;padding:7px 9px;font-size:9px;text-align:left}.rail-strip{bottom:128px;left:10px;right:10px;transform:none;width:auto;padding:8px 12px}.rail-strip strong{font-size:11px}.rail-strip small{font-size:9px;max-width:290px}.rail-strip .icon{width:23px;height:23px}.rail-strip .track{margin-top:5px}.build-dock{bottom:30px;left:7px;right:7px;transform:none;width:auto;padding:6px;gap:2px;border-radius:8px;display:grid;grid-template-columns:repeat(9,1fr);overflow-x:auto}.tool{width:100%;min-width:31px;height:66px;gap:4px}.tool>.icon{width:21px;height:21px}.tool span{font-size:9px}.tool small{font-size:7px}.tool kbd{display:none}.tool.slim{width:auto;min-width:31px}.tool-divider{display:none}.map-controls{right:10px;bottom:388px}.map-controls button{width:28px;height:28px;font-size:16px}footer{left:10px;right:10px;bottom:7px;font-size:8px}.footer-version{display:none}footer button{font-size:9px}.overlay{padding:12px}.modal{max-height:calc(100dvh - 24px);border-radius:9px}.modal-head{padding:15px 16px}.modal-head h2{font-size:21px}.modal-head small{font-size:7px}.modal-body{padding:16px;font-size:12px}.modal-body p{font-size:12px}.card-grid{grid-template-columns:1fr}.card{padding:14px}.card h3{font-size:15px}.modal-body .notice{font-size:11px;padding:10px}.stat-row{font-size:11px}.stock-floor button{padding:4px 6px}.journey{padding:12px;gap:10px}.journey strong{font-size:16px}.event-body{font-size:14px!important}.modal-actions{gap:6px}.modal-actions .primary,.modal-actions .secondary{font-size:11px}.field-panel.selected .panel-top{position:absolute;right:10px;top:8px}.field-panel.selected .panel-top>.eyebrow{display:none}body[data-view=valley] .mission{max-height:205px;right:155px}body[data-view=valley] .radio{bottom:94px}body[data-view=valley] .rail-strip{bottom:32px}#toast{bottom:225px;font-size:11px}.guide-flow{gap:5px;font-size:10px}.guide-flow .icon{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.busy .icon{animation:none}}
@media(max-width:760px){.map-controls{bottom:242px}}
@media(max-width:760px) and (max-height:760px){.field-panel:not(.selected){max-height:180px}.mission{max-height:185px}.field-panel:not(.selected) .mini-map{height:45px}.field-panel:not(.selected) p{display:none}}
