*{box-sizing:border-box}body{margin:0;color:#193044;background:#eef3f7;font:14px system-ui,sans-serif}header{background:#102d43;color:white;padding:19px 22px;display:flex;justify-content:space-between;align-items:center}header b{font-size:23px}header span{color:#59d3d2}small{font-size:12px;color:#a9c1d3}nav{padding:10px;display:flex;gap:7px;flex-wrap:wrap;background:white;border-bottom:1px solid #cbd7e0}button{border:1px solid #bbcbd7;background:white;border-radius:6px;padding:9px 12px;color:#173b54;cursor:pointer}button:hover,button.active{background:#d3f2f0}button:disabled{opacity:.5;cursor:wait}#run{background:#087f81;color:white}main{display:grid;grid-template-columns:170px minmax(300px,1fr) 260px;height:560px}aside{padding:15px;background:#f9fbfd;overflow:auto}aside p{font-size:12px;line-height:1.6;color:#617482}#palette button{width:100%;text-align:left;margin-bottom:8px}#viewport{overflow:auto;background-color:#f4f8fa;background-image:radial-gradient(#bfced9 1px,transparent 1px);background-size:20px 20px}svg{width:1400px;height:850px;touch-action:none}svg text{font-family:system-ui;user-select:none}#properties label{display:block;margin:12px 0;font-size:12px}input{padding:7px;border:1px solid #b8c8d5;border-radius:4px;width:100%;margin-top:4px}footer{padding:12px 20px;background:#e0edf2;font-size:12px}#results{padding:15px 20px;overflow:auto}table{border-collapse:collapse;width:100%;background:white}th,td{text-align:left;border:1px solid #d0dce4;padding:8px;font-size:12px;vertical-align:top}h3{margin-top:0}.node{cursor:grab}.line{cursor:pointer} @media(max-width:800px){main{grid-template-columns:125px minmax(250px,1fr) 210px}body{min-width:650px}}@media print{nav,aside,footer{display:none}main{display:block;height:auto}#viewport{overflow:visible}svg{width:100%;height:auto}header{color:#102d43;background:white}#status{display:none}}

#palette button{display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:600;background:linear-gradient(white,#eef5fa)}#palette img{width:112px;height:76px;object-fit:contain;border-radius:6px;background:white}.equipment-preview{width:100%;height:145px;object-fit:contain;background:white;border-radius:10px}.node image{pointer-events:none}
main{height:620px;grid-template-columns:165px minmax(300px,1fr) 270px}#canvas{width:1800px;height:1000px}#tools{padding:18px;background:#edf5fa;margin:15px;border:1px solid #b8cfdd;border-radius:10px}#tools summary{font-size:18px;font-weight:600;cursor:pointer}#tools label{display:block;margin-top:15px}#jobInput{display:block;width:100%;height:260px;padding:12px;border:1px solid #a8c1d0;border-radius:8px;font:13px monospace}#jobOutput{max-height:330px;overflow:auto;background:#102d43;color:#bfe9e8;padding:16px}select{padding:10px;max-width:100%;margin:8px}pre{white-space:pre-wrap;overflow-wrap:anywhere}.port{cursor:crosshair}.node image{pointer-events:none}#status{font-size:12px;max-width:40%}#palette img{height:65px}button:disabled{cursor:wait}@media print{#tools{display:none}}

main{grid-template-columns:200px minmax(300px,1fr) 270px}.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.equipment-grid button{min-width:0;width:100%;display:flex;flex-direction:column;align-items:center;padding:5px 2px;gap:3px;font-size:11px;font-weight:600;background:linear-gradient(white,#edf6fa)}.equipment-grid img{display:block;width:78px!important;height:65px!important;object-fit:contain;background:white;border-radius:5px}#palette button{margin:0}aside h4{font-size:11px;text-transform:uppercase;color:#416578;margin:14px 0 7px}.equipment-grid button:hover{border-color:#087f81;background:#d3f2f0}

#streamLegend{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;background:#fff;border-bottom:1px solid #cbd7e0;max-height:95px;overflow:auto}#streamLegend:empty{display:none}.stream-key{font-size:11px;padding:5px 8px;border-radius:4px}input[type=color]{height:42px;width:100%;padding:3px;cursor:pointer}@media print{#streamLegend{max-height:none;overflow:visible}}

#solverNotice{padding:10px 15px;background:#fff6d9;border-bottom:1px solid #e1ce97;color:#684b13;overflow-wrap:anywhere;font-size:13px}#status{overflow-wrap:anywhere}nav select{margin:0;max-width:230px}
