*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#1a1a2e;color:#eee;overflow:hidden}#app{width:100vw;height:100vh;position:relative}#plant-canvas{width:100%;height:100%;display:block;background:#0f0f1a}#toolbar{position:absolute;top:10px;left:10px;background:#1e1e32f2;padding:15px;border-radius:8px;border:1px solid #444;min-width:150px;max-height:calc(100vh - 60px);overflow-y:auto;overflow-x:hidden}#toolbar::-webkit-scrollbar{width:6px}#toolbar::-webkit-scrollbar-track{background:#0003;border-radius:3px}#toolbar::-webkit-scrollbar-thumb{background:#555;border-radius:3px}#toolbar::-webkit-scrollbar-thumb:hover{background:#777}#toolbar h3{font-size:14px;margin-bottom:10px;color:#aaa;text-transform:uppercase;letter-spacing:1px}#toolbar button{display:block;width:100%;padding:8px 12px;margin-bottom:5px;background:#2a2a4a;border:1px solid #555;color:#ddd;border-radius:4px;cursor:pointer;font-size:13px;text-align:left;transition:all .2s}#toolbar button:hover{background:#3a3a6a;border-color:#77f}#toolbar button.selected{background:#4a4a8a;border-color:#99f}#toolbar hr{border:none;border-top:1px solid #444;margin:15px 0}#status-bar{position:absolute;bottom:0;left:0;right:0;background:#141423f2;padding:8px 15px;display:flex;gap:30px;font-size:13px;font-family:Consolas,monospace;border-top:1px solid #333}#status-bar span{color:#aaa}#legend{position:absolute;bottom:50px;left:280px;background:#1e1e32f2;padding:12px;border-radius:8px;border:1px solid #444;font-size:12px}#legend h4{margin-bottom:8px;color:#aaa}.legend-water{width:150px;height:12px;background:linear-gradient(to right,#143278,#3278c8,#78b4f0);border-radius:3px;margin-bottom:3px}.legend-steam{width:150px;height:12px;background:linear-gradient(to right,#f0f5ff,#fff082,#ff8c32);border-radius:3px;margin-bottom:3px;margin-top:8px}.legend-labels{display:flex;justify-content:space-between;color:#888;font-size:10px}#construction-cost-panel{position:absolute;top:10px;left:180px;background:#141e19f2;padding:8px 12px;border-radius:8px;border:1px solid #4a5;font-size:12px;font-family:Consolas,monospace;z-index:100}#cost-header{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}#cost-toggle{color:#4a5;font-size:10px;transition:transform .2s}#construction-cost-panel.expanded #cost-toggle{transform:rotate(90deg)}.cost-title{color:#aaa}#total-cost{font-size:14px;font-weight:700;color:#4a4}#cost-breakdown{margin-top:10px;padding-top:8px;border-top:1px solid #4a5;line-height:1.5;max-height:200px;overflow-y:auto;font-size:10px}#cost-breakdown .cost-item{display:flex;justify-content:space-between;padding:2px 0;border-bottom:1px solid #333}#cost-breakdown .cost-item:last-child{border-bottom:none}#cost-breakdown .cost-label{color:#aaa;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#cost-breakdown .cost-value{color:#8cf;font-weight:700}#mw-to-grid-panel{position:absolute;top:10px;left:180px;background:#141e19f2;padding:8px 12px;border-radius:8px;border:1px solid #4a5;font-size:12px;font-family:Consolas,monospace;z-index:100}#mw-to-grid-panel .mw-label{color:#aaa}#mw-to-grid-panel #mw-value{font-size:14px;font-weight:700;color:#4f4;margin-left:5px}#debug-panel{position:absolute;top:10px;right:10px;background:#141423f2;padding:12px;border-radius:8px;border:1px solid #444;font-size:11px;font-family:Consolas,monospace;width:440px;max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden;white-space:nowrap}#debug-panel h4{margin-bottom:8px;color:#aaa;display:flex;justify-content:space-between;align-items:center}#debug-panel h4 button{padding:2px 8px;font-size:10px;background:#333;border:1px solid #555;color:#aaa;border-radius:3px;cursor:pointer}#debug-panel.collapsed #debug-content{display:none}.debug-section{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #333}.debug-section:last-child{border-bottom:none;margin-bottom:0}.debug-section strong{color:#7af;display:block;margin-bottom:4px}.debug-section div{color:#ccc;line-height:1.5}.debug-value{color:#7f7}.debug-warning{color:#fa0}.debug-danger{color:#f55}.debug-label{color:#888;display:inline-block;min-width:100px}#perf-info{margin-left:auto}#component-detail{position:absolute;top:10px;right:460px;background:#141423f2;padding:12px;border-radius:8px;border:1px solid #4a4;font-size:11px;font-family:Consolas,monospace;width:280px;max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden;white-space:nowrap}#component-detail.hidden{display:none}#component-detail h4{margin-bottom:8px;color:#4a4;display:flex;justify-content:space-between;align-items:center}#component-detail h4 button{padding:2px 8px;font-size:10px;background:#333;border:1px solid #555;color:#aaa;border-radius:3px;cursor:pointer}#component-detail-content{color:#ccc;line-height:1.6}#component-detail-content .detail-row{display:flex;justify-content:space-between;border-bottom:1px solid #333;padding:2px 0}#component-detail-content .detail-row:last-child{border-bottom:none}#component-detail-content .detail-label{color:#888}#component-detail-content .detail-value{color:#7f7;text-align:right}#component-detail-content .detail-section{margin-top:10px;padding-top:8px;border-top:1px solid #555}#component-detail-content .detail-section-title{color:#7af;font-weight:700;margin-bottom:4px}.slider-control{margin:5px 0}.slider-control label{display:block;font-size:12px;color:#aaa;margin-bottom:5px}.slider-control input[type=range]{width:100%;height:6px;background:#2a2a4a;border-radius:3px;outline:none;cursor:pointer;-webkit-appearance:none}.slider-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#678;border-radius:50%;cursor:pointer;border:2px solid #99aacc}.slider-control input[type=range]::-webkit-slider-thumb:hover{background:#89a}.slider-control .slider-labels{display:flex;justify-content:space-between;font-size:10px;color:#666;margin-top:3px}#rod-position-value{color:#7f7;font-family:Consolas,monospace}.sim-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:5px}.sim-btn{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;padding:8px 12px!important}.mode-controls{display:flex;gap:5px;margin-bottom:10px}.mode-btn{flex:1;padding:8px!important;background:#2a2a2a!important;border:2px solid #444!important;color:#888!important;transition:all .2s}.mode-btn.active{background:#3a4a3a!important;border-color:#4a7!important;color:#4a7!important;font-weight:700}.component-categories{max-height:300px;overflow-y:auto}.component-categories details{margin-bottom:8px}.component-categories summary{cursor:pointer;padding:4px;background:#2a2a2a;border-radius:3px;font-size:12px;color:#aaa;user-select:none}.component-categories summary:hover{background:#333}.component-btn{display:block!important;width:100%!important;padding:6px!important;margin:2px 0!important;text-align:left!important;font-size:11px!important}.component-btn.selected{background:#3a4a5a!important;border-color:#5af!important;color:#adf!important}.sim-btn.small{width:32px!important;padding:6px!important;font-size:16px!important;font-weight:700}.sim-btn.paused{background:#4a3a2a!important;border-color:#fa0!important;color:#fa0!important}.speed-controls{display:flex;align-items:center;justify-content:center;gap:8px}#speed-display{font-family:Consolas,monospace;font-size:14px;color:#7f7;min-width:50px;text-align:center}.speed-presets{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.speed-preset{width:auto!important;padding:4px 6px!important;font-size:10px!important;background:#222!important;min-width:36px!important}.speed-preset:hover{background:#333!important}.speed-preset.active{background:#3a5a3a!important;border-color:#7f7!important}.slowdown-control{margin-top:8px;padding-top:8px;border-top:1px solid #333}.slowdown-control label{display:flex;align-items:center;gap:6px;font-size:11px;color:#aaa;margin-bottom:4px;cursor:pointer}.slowdown-control input[type=checkbox]{width:14px;height:14px;cursor:pointer}.slowdown-control input[type=range]{width:100%;height:4px;background:#2a2a4a;border-radius:2px;outline:none;cursor:pointer;-webkit-appearance:none}.slowdown-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#678;border-radius:50%;cursor:pointer;border:1px solid #99aacc}.slowdown-control input[type=range]::-webkit-slider-thumb:hover{background:#89a}#slowdown-threshold-value{color:#7af;font-family:Consolas,monospace}.component-dialog{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-content{background:#1e2128;border:2px solid #445566;border-radius:8px;padding:0;width:500px;max-width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{background:#252830;padding:15px 20px;border-bottom:1px solid #445566;display:flex;justify-content:space-between;align-items:center}.dialog-header h3{margin:0;color:#7af;font-size:18px}.dialog-close{background:none;border:none;color:#9ac;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.dialog-close:hover{color:#7af}.dialog-body{padding:20px;overflow-y:auto;flex:1}.dialog-footer{padding:15px 20px;border-top:1px solid #445566;display:flex;justify-content:flex-end;gap:10px}.dialog-body .form-group{margin-bottom:15px}.dialog-body label{display:block;margin-bottom:5px;color:#9ac;font-size:14px}.dialog-body input,.dialog-body select{width:100%;padding:8px 12px;background:#252830;border:1px solid #445566;color:#def;border-radius:4px;font-size:14px}.dialog-body input:focus,.dialog-body select:focus{outline:none;border-color:#7af;box-shadow:0 0 0 2px #7af3}.dialog-body input[type=number]{font-family:Consolas,monospace}.dialog-body .form-row{display:flex;gap:15px}.dialog-body .form-row .form-group{flex:1}.dialog-body .help-text{font-size:12px;color:#678;margin-top:5px}.btn-primary,.btn-secondary{padding:8px 20px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background .2s}.btn-primary{background:#58c;color:#fff}.btn-primary:hover{background:#69d}.btn-secondary{background:#456;color:#def}.btn-secondary:hover{background:#567}
