:root{color:#333a30;font-synthesis:none;text-rendering:optimizelegibility;background:#f4efe6;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit}[hidden]{display:none!important}.app{grid-template-rows:auto minmax(0,1fr) auto;height:100svh;min-height:580px;padding:22px clamp(20px,3.3vw,64px) 14px;display:grid}.app-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.eyebrow{letter-spacing:.18em;color:#69715e;margin:0 0 5px;font-size:10px;font-weight:650}h1{letter-spacing:.04em;margin:0;font-size:clamp(24px,2.4vw,32px);font-weight:600}.app-header button{font-size:12px}.workspace{grid-template-columns:minmax(0,1fr) 340px;gap:24px;min-height:0;margin-top:16px;display:grid}.viewport{min-width:0;min-height:0;position:relative}.plot-heading{z-index:1;pointer-events:none;position:absolute;top:18px;left:12px}.plot-heading p{color:#69715e;margin:8px 0;font-size:15px}.scene{position:absolute;inset:0}.scene canvas{touch-action:none;width:100%;height:100%;display:block}.scene-toolbar{pointer-events:none;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex;position:absolute;inset:auto 0 0}#scene-status{max-width:65ch;margin:0;font-size:11px;line-height:1.6}.scene-toolbar button{font-size:11px}.selection-toolbar{z-index:3;pointer-events:none;background:#fffdf7;border:1px solid #d8d2bf;border-radius:10px;gap:4px;padding:5px 6px;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 4px 14px #3c37282e}.selection-toolbar:after{content:"";background:#fffdf7;border-bottom:1px solid #d8d2bf;border-right:1px solid #d8d2bf;width:8px;height:8px;position:absolute;bottom:-4.5px;left:50%;transform:translate(-50%)rotate(45deg)}.selection-toolbar button{white-space:nowrap;padding:6px 10px;font-size:11px}.selection-toolbar button[data-action=delete]{color:#a63d2f}.hud{background:#faf8f2;border:1px solid #d9d9cc;border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.hud-overview{border-bottom:1px solid #e0e1d5;padding:16px 18px 12px}.city-metrics{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px;display:grid}.city-metrics div{gap:5px;display:grid}.city-metrics span{color:#69715e;font-size:11px}.city-metrics strong{white-space:nowrap;font-size:20px;font-weight:600}#remaining-budget{align-self:center;font-size:17px}.hud-hint{color:#69715e;margin:6px 0 0;font-size:11px;line-height:1.65}.goal-line{color:#526a42;margin-top:12px}.hud-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;padding:16px 18px;overflow-y:auto}.hud h2{margin:0;font-size:15px;font-weight:600}.building-cards{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.building-card{text-align:left;border-color:#cdd1c0;align-content:start;gap:4px;min-width:0;padding:10px;display:grid}.building-card[aria-pressed=true]{background:#e5ebdc;border-color:#597446;box-shadow:inset 0 0 0 1px #597446}.building-card span{font-size:10px;line-height:1.5}.building-card .card-heading{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.card-heading strong{font-size:14px;font-weight:600}.card-count{color:#69715e;margin-left:auto}.card-asset{color:#526a42}.card-caption{color:#665b49;min-height:15px}.building-card:disabled{opacity:.68}.selection-panel{border-top:1px solid #e0e1d5;margin-top:14px;padding-top:12px}.selected-building{margin:0 0 8px;font-size:12px;line-height:1.6}.edit-actions,.history-actions{flex-wrap:wrap;gap:6px;display:flex}.edit-actions{margin-top:8px}.edit-actions button,.history-actions button{padding:7px 10px;font-size:11px}.pollution-legend{color:#79552e;margin:14px 0 10px;font-size:11px;line-height:1.7}.pollution-legend span{font-size:15px}.asset-details{color:#69715e;font-size:11px;line-height:1.6}.asset-details summary{cursor:pointer}.asset-failed,.placement-feedback--error{color:#a44436}.hud-bottom{background:#faf8f2;border-top:1px solid #e0e1d5;padding:12px 18px}.history-actions button{flex:1}.placement-feedback{min-height:37px;margin:8px 0 6px;font-size:11px;line-height:1.65}.submit-planning{width:100%}#planning-requirements{min-height:36px}button{color:#384431;cursor:pointer;pointer-events:auto;background:#f9f7f1;border:1px solid #b7beaa;border-radius:6px;flex-shrink:0;padding:9px 16px}button:hover:enabled{background:#e9eddf}button:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #687b50}button:disabled{cursor:default;opacity:.5}.primary-action,.submit-planning{color:#f9f7f1;background:#526a42;border-color:#526a42}.primary-action:hover:enabled,.submit-planning:hover:enabled{background:#405632}.controls-hint{color:#69715e;justify-content:center;gap:28px;padding-top:12px;font-size:11px;display:flex}dialog{color:#333a30;background:#faf8f2;border:1px solid #b5bba8;border-radius:14px;width:min(570px,100vw - 36px);max-height:calc(100svh - 36px);padding:30px;line-height:1.8;box-shadow:0 20px 80px #2c33241f}dialog::backdrop{background:#1e261a61}dialog h2{margin:10px 0 16px;font-size:25px;font-weight:600;line-height:1.5}dialog p,dialog li{font-size:13px}.mission-story{color:#69715e}.mission-goals{border-block:1px solid #dfe1d4;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 0;display:grid}.mission-goals div{display:grid}.mission-goals strong{color:#526a42;font-size:25px;font-weight:600}.mission-goals span{color:#69715e;font-size:11px}.mission-rules{padding-left:20px}.mission-rules li+li{margin-top:9px}.mission-controls{color:#59614f;background:#eef0e6;border-radius:6px;padding:12px}#start-planning,#close-mission{width:100%;margin-top:12px}#planning-result{width:min(520px,100vw - 36px)}#planning-result h2{margin-top:0;font-size:24px}#planning-result-score{color:#526a42;background:#eef0e6;border-radius:6px;padding:14px;font-size:20px;font-weight:600}#planning-result-errors{color:#a44436;padding-left:22px}.result-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.result-actions button:first-child{color:#f9f7f1;background:#526a42}@media (width>=1500px){.workspace{grid-template-columns:minmax(0,1fr) 360px;gap:36px}.building-card{padding:14px}.building-card span,.hud-hint,.placement-feedback{font-size:12px}.card-caption{min-height:18px}}@media (width<=760px){.app{height:auto;min-height:100svh;padding:20px 18px 16px}.workspace{grid-template-columns:1fr;gap:14px}.viewport{height:400px}.plot-heading{top:4px;left:0}.plot-heading p{font-size:13px}.scene-toolbar{padding:0}#scene-status{max-width:22ch}.hud-scroll{overflow:visible}.building-card{padding:12px}.building-card span,.hud-hint,.placement-feedback{font-size:12px}.card-caption{min-height:18px}.controls-hint{flex-wrap:wrap;gap:12px;line-height:1.7}dialog{padding:22px}dialog h2{font-size:22px}}
