.budget-bar{display:flex;flex-wrap:wrap;gap:1.25rem;padding:.6rem .75rem;background:#f8fdfb;border:1px solid var(--color-border, #d4dcd8);border-radius:6px;font-weight:600;font-size:.875rem}.budget-bar span{white-space:nowrap}.power-warn{color:#e74c3c}.town-eco-hero{padding-bottom:1.2rem}.town-eco-hero .lead{max-width:620px}.launch-flow{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(390px,1.05fr) minmax(220px,.68fr);gap:1rem;align-items:stretch;margin-bottom:.9rem}.mission-card{padding:.9rem 1rem;background:#fff;border:1px solid var(--color-border, #d4dcd8);border-left:4px solid #456b56;border-radius:0 6px 6px 0}.mission-card h2{margin:0 0 .45rem;font-size:1.08rem}.mission-card p{margin:0 0 .65rem;font-size:.9rem;line-height:1.45}.mission-card ol{margin:0;padding-left:1.15rem;font-size:.84rem;line-height:1.5}.mission-card li{margin-bottom:.18rem}.launch-challenge{min-height:100%}.launch-challenge .planning-kicker{margin-bottom:.2rem}.sim-status-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:stretch;margin-bottom:.75rem}.sim-status-row .budget-bar{flex:1 1 520px}.simulation-controls{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.5rem .6rem;border:1px solid var(--color-border, #d4dcd8);border-radius:6px;background:#fff}.simulation-controls .btn{padding:.35rem .65rem;font-size:.8rem}.speed-control{display:flex;gap:.3rem;align-items:center;color:var(--color-muted, #6b7c75);font-size:.78rem;font-weight:700}.speed-btn{padding:.28rem .45rem;border:1px solid var(--color-border, #d4dcd8);border-radius:5px;background:#f8fdfb;color:var(--color-text, #1a2e28);cursor:pointer;font:inherit;font-size:.76rem}.speed-btn.active{border-color:var(--color-accent, #2d7a5e);background:#e8f5e9;color:#2d7a5e}.speed-btn:disabled{cursor:not-allowed;opacity:.55}.sim-layout{display:grid;grid-template-columns:820px 260px;gap:1rem;align-items:start}@media (max-width: 1100px){.sim-layout,.launch-flow{grid-template-columns:1fr}}.sim-left{display:flex;flex-direction:column;gap:.75rem}.canvas-wrap{position:relative;width:800px;height:560px;max-width:100%}#phaser-container{width:800px;height:560px;border-radius:6px;border:1px solid var(--color-border, #d4dcd8);overflow:hidden;background:#1a3a1a}#phaser-container canvas{display:block}.tutorial-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b8;display:flex;justify-content:center;align-items:center;border-radius:6px;z-index:50}.tutorial-content{background:#fff;padding:1.75rem 2rem;border-radius:10px;max-width:380px;text-align:left}.tutorial-content h3{margin:0 0 .75rem}.tutorial-content ol{padding-left:1.25rem;margin:0 0 1rem}.tutorial-content ol li{margin-bottom:.5rem;font-size:.9rem;line-height:1.5}.planning-notebook{padding:.9rem 1rem;background:#f8fdfb;border:1px solid var(--color-border, #d4dcd8);border-left:4px solid var(--color-accent, #2d7a5e);border-radius:0 6px 6px 0}.planning-heading{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}.planning-kicker{margin:0 0 .15rem;color:var(--color-muted, #6b7c75);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.planning-heading h3{margin:0;font-size:1rem}.planning-status{flex:0 0 auto;padding:.2rem .5rem;border-radius:999px;background:#e8f5e9;color:#2d7a5e;font-size:.72rem;font-weight:700}.planning-options{display:grid;gap:.75rem}.planning-group{margin:0;padding:0;border:0}.planning-group legend{margin-bottom:.35rem;color:var(--color-text, #1a2e28);font-size:.84rem;font-weight:700}.planning-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.45rem}.planning-choice{width:100%;min-height:42px;padding:.48rem .6rem;border:1.5px solid var(--color-border, #d4dcd8);border-radius:6px;background:#fff;color:var(--color-text, #1a2e28);cursor:pointer;font:inherit;font-size:.82rem;text-align:left;transition:background .12s,border-color .12s,box-shadow .12s}.planning-choice:hover:not(:disabled){background:#f0f7f4;border-color:var(--color-accent, #2d7a5e)}.planning-choice.selected{background:#e8f5e9;border-color:var(--color-accent, #2d7a5e);box-shadow:inset 0 0 0 1px var(--color-accent, #2d7a5e);font-weight:700}.planning-choice:disabled{cursor:default;opacity:.95}.planning-submit{margin-top:.8rem}.planning-submit:disabled{cursor:not-allowed;opacity:.55}.planning-summary{margin-top:.75rem;padding:.65rem .75rem;border-radius:6px;background:#e8f5e9;color:#1a2e28;font-size:.84rem;line-height:1.45}.planning-summary strong{color:#2d7a5e}.planning-notebook.submitted .planning-options,.planning-notebook.submitted .planning-submit{display:none}.zone-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem 0}.zone-btn{display:flex;flex-direction:column;align-items:center;padding:.4rem .6rem;border:2px solid var(--color-border, #d4dcd8);border-radius:6px;cursor:pointer;font-size:.8rem;background:#fff;min-width:64px;transition:background .12s,border-color .12s;line-height:1.3}.zone-btn:hover{background:#f0f7f4;border-color:var(--color-accent, #2d7a5e)}.zone-btn.active{border-color:var(--color-accent, #2d7a5e);background:#e8f5e9}.zone-btn span{font-weight:600;font-size:.78rem}.zone-btn small{color:var(--color-muted, #6b7c75);font-size:.7rem}.challenge-panel{padding:.75rem 1rem;border-left:4px solid var(--color-accent, #2d7a5e);background:#f8fdfb;border-radius:0 6px 6px 0}.challenge-panel h4{margin:0 0 .3rem;font-size:.95rem}.challenge-panel p{margin:.2rem 0 0;font-size:.875rem}.challenge-hint{color:var(--color-muted, #6b7c75);font-size:.82rem!important;font-style:italic;margin-top:.4rem!important}.challenge-complete{color:#2e7d32;font-weight:700;font-size:.875rem;margin-top:.5rem;padding:.4rem .75rem;background:#e8f5e9;border-radius:4px}.next-step-panel{border-left-color:#466dff;background:#f3f6ff;box-shadow:0 8px 20px #466dff14}.next-step-panel h4{color:#233b8f}.foundation-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:120}.foundation-modal[hidden]{display:none!important}.foundation-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#07101b9e}.foundation-modal__dialog{position:relative;width:min(92vw,460px);padding:1.4rem 1.5rem;border-radius:12px;border:1px solid #d7e0ff;background:#fff;box-shadow:0 24px 48px #0c182c38}.foundation-modal__dialog h3{margin:0 0 .65rem;font-size:1.15rem}.foundation-modal__dialog p{margin:0 0 1rem;font-size:.93rem;line-height:1.5}.foundation-modal__dialog .btn{min-width:170px}.event-banners-wrap{max-height:200px;overflow-y:auto}.event-banner{padding:.75rem 1rem;margin:.3rem 0;background:#fff3cd;border-left:4px solid #ffc107;border-radius:0 4px 4px 0;font-size:.875rem;animation:slideIn .2s ease}.event-banner strong{display:block;margin-bottom:.2rem}.event-banner p{margin:0;color:var(--color-text, #1a2e28)}.event-banner.resolved{background:#d4edda;border-color:#28a745}@keyframes slideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sim-right{position:sticky;top:1rem}.stats-panel{padding:1rem;background:#f8fdfb;border:1px solid var(--color-border, #d4dcd8);border-radius:8px;max-height:calc(100vh - 3rem);overflow-y:auto}.stats-panel h3{margin:0 0 .6rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted, #6b7c75)}.metric-row{display:flex;align-items:center;gap:.4rem;margin:.3rem 0;font-size:.82rem}.metric-row label{min-width:105px;color:var(--color-text, #1a2e28)}.service-note{margin:-.25rem 0 .45rem;color:var(--color-muted, #6b7c75);font-size:.75rem;line-height:1.35}.service-row span{font-weight:700}.service-ok{color:#155724}.service-warn{color:#a94400}.service-checklist{margin-top:.65rem;padding:.65rem .75rem;border:1px solid var(--color-border, #d4dcd8);border-radius:6px;background:#fff}.service-checklist h4{margin:0 0 .45rem;font-size:.78rem;color:var(--color-text, #1a2e28)}.service-checklist ul{margin:0;padding:0;list-style:none}.service-checklist li{display:flex;gap:.35rem;align-items:baseline;margin:.24rem 0;font-size:.76rem;line-height:1.35}.service-checklist .check-mark{flex:0 0 1.1rem;font-weight:800}.metric-bar-track{flex:1;height:10px;background:var(--color-border, #d4dcd8);border-radius:5px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:5px;background:var(--color-success, #4caf50);transition:width .5s ease}.metric-bar-fill.pollution{background:#e74c3c}.species-row{display:flex;align-items:center;gap:.4rem;margin:.25rem 0;font-size:.8rem}.species-row label{min-width:115px}.species-bar-track{flex:1;height:8px;background:var(--color-border, #d4dcd8);border-radius:4px;overflow:hidden}.species-bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.species-delta{font-size:.72rem;min-width:28px;text-align:right}.species-delta.up{color:#2e7d32}.species-delta.down{color:#e74c3c}#active-events-list{padding:0;margin:0;list-style:none}.active-event{color:#c0392b;font-size:.82rem;padding:.2rem 0}.no-events{color:var(--color-muted, #6b7c75);font-size:.82rem}.analysis-section{margin-top:2rem;padding-top:1.5rem;border-top:2px solid var(--color-border, #d4dcd8)}.analysis-section h2{margin-bottom:.4rem}.question-card{background:#fff;border:1px solid var(--color-border, #d4dcd8);border-radius:8px;padding:1.25rem;margin-bottom:1.25rem;box-shadow:0 1px 4px #0000000d}.q-lt-badge{display:inline-block;background:var(--color-accent, #2d7a5e);color:#fff;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:4px;margin-bottom:.6rem}.q-text{font-size:.95rem;font-weight:600;margin:0 0 .75rem}.q-options{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.875rem}.q-option{display:block;width:100%;text-align:left;padding:.5rem .875rem;font-size:.875rem;background:#f8fdfb;border:1.5px solid var(--color-border, #d4dcd8);border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s}.q-option:hover:not(:disabled){background:#e8f5e9;border-color:var(--color-accent, #2d7a5e)}.q-option.selected{border-color:var(--color-accent, #2d7a5e);background:#e8f5e9;font-weight:600}.q-option.correct{background:#d4edda;border-color:#28a745;color:#155724}.q-option.wrong{background:#f8d7da;border-color:#dc3545;color:#721c24}.q-feedback{padding:.75rem;border-radius:6px;font-size:.875rem;margin-top:.5rem}.q-feedback.correct{background:#d4edda;color:#155724}.q-feedback.wrong{background:#f8d7da;color:#721c24}.results-section{margin-top:2rem;padding-top:1.5rem;border-top:2px solid var(--color-border, #d4dcd8)}.completion-code-box{background:#f0f7f4;padding:1rem 1.25rem;border-radius:8px;margin-top:1.5rem;text-align:center}.completion-code-box p{margin:0 0 .4rem;font-size:.85rem;color:var(--color-muted, #6b7c75)}.completion-code-box code{display:block;font-size:1.4rem;font-weight:700;letter-spacing:.1em;color:var(--color-accent, #2d7a5e)}.results-actions{margin-top:1.5rem;display:flex;gap:.75rem;flex-wrap:wrap}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:#1a2e28;color:#fff;padding:.5rem 1.2rem;border-radius:20px;font-size:.875rem;opacity:0;transition:opacity .25s;z-index:9999;pointer-events:none;white-space:nowrap}.toast.visible{opacity:1}.tile-info-bar{display:flex;align-items:flex-start;gap:.6rem;padding:.45rem .75rem;background:#f0f7f4;border:1px solid var(--color-border, #d4dcd8);border-radius:6px;font-size:.82rem;min-height:42px}.tip-icon{font-size:1.3rem;line-height:1;flex-shrink:0;margin-top:.05rem}.tip-content{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.tip-content strong{font-size:.82rem;color:var(--color-text, #1a2e28)}.tip-details{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.76rem;color:var(--color-muted, #6b7c75);line-height:1.4}.tip-eco,.tip-econ{white-space:nowrap}.tip-ok{color:#155724;font-weight:700}.tip-no{color:#721c24;font-weight:700}.tile-legend{border:1px solid var(--color-border, #d4dcd8);border-radius:6px;overflow:hidden;font-size:.8rem}.tile-legend>summary{padding:.45rem .75rem;background:#f0f7f4;cursor:pointer;font-weight:600;font-size:.82rem;list-style:none;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.tile-legend>summary::-webkit-details-marker{display:none}.tile-legend>summary:after{content:"▾";opacity:.55;margin-left:.5rem}.tile-legend[open]>summary:after{content:"▴"}.tile-legend-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.75rem 1.25rem;padding:.75rem 1rem;background:#fff}.legend-group{display:flex;flex-direction:column;gap:.15rem}.legend-group-title{margin:0 0 .25rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted, #6b7c75)}.legend-item{display:flex;align-items:baseline;gap:.3rem;padding:.08rem 0;font-size:.78rem;line-height:1.3}.legend-icon{font-size:.9rem;flex-shrink:0;line-height:1}.legend-name{font-weight:600;white-space:nowrap}.legend-desc{color:var(--color-muted, #6b7c75);font-size:.72rem}.demand-tag{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;min-width:34px;text-align:center}.demand-low{background:#e9ecef;color:#6b7c75}.demand-med{background:#fff3cd;color:#856404}.demand-high{background:#d4edda;color:#155724}.economy-advisory{margin-top:.4rem}.eco-advisory-msg{margin:.2rem 0 0;font-size:.77rem;line-height:1.4;color:#7d5a00;background:#fff8e1;border-left:3px solid #ffc107;padding:.25rem .5rem;border-radius:0 3px 3px 0}@media (max-width: 840px){.canvas-wrap,#phaser-container{width:100%;height:auto;aspect-ratio:800 / 560}#phaser-container canvas{width:100%!important;height:auto!important}.budget-bar{gap:.75rem;font-size:.8rem}.zone-btn{min-width:54px;font-size:.75rem;padding:.35rem .5rem}}
