:root{--bg-dark:#f3f4f6;--bg-panel:#ffffffd9;--bg-panel-hover:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--accent-blue:#4a1df4;--accent-cyan:#0891b2;--accent-green:#059669;--accent-purple:#7c3aed;--accent-red:#dc2626;--border-color:#0000001a;--glass-shadow:0 4px 20px #00000014;--glass-backdrop:blur(12px);--font-family:"Inter", system-ui, Avenir, Helvetica, Arial, sans-serif}body{background-color:var(--bg-dark);width:100vw;height:100vh;color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow:hidden}#root{width:100%;height:100%;display:flex}.glass-panel{background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--border-color);box-shadow:var(--glass-shadow);border-radius:12px}.toolbar{z-index:10;flex-direction:column;gap:12px;padding:12px;display:flex;position:absolute;top:20px;left:20px}.tool-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}.tool-btn:hover{color:var(--text-primary);background:#ffffff0d}.tool-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#3b82f633}.tool-btn.active[data-tool=node]{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#06b6d433}.tool-btn.active[data-tool=pipe]{color:var(--accent-blue);border-color:var(--accent-blue);background:#3b82f633}.tool-btn.active[data-tool=catchment]{color:var(--accent-green);border-color:var(--accent-green);background:#10b98133}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}.shimmer-bg{animation:2s linear infinite shimmer;background:linear-gradient(90deg,#60a5fa 25%,#93c5fd 50%,#60a5fa 75%) 0 0/200% 100%!important}.table-input{color:#0f172a;background:#fff;border:1px solid #4a1df44d;border-radius:4px;width:100%;padding:4px 6px;font-family:inherit;font-size:.85rem;font-weight:500;transition:all .15s;box-shadow:inset 0 1px 2px #00000008}.table-input:hover:not(:disabled){border-color:var(--accent-blue);box-shadow:0 0 0 2px #4a1df426}.table-input:focus:not(:disabled){border-color:var(--accent-blue);background:#fff;outline:none;box-shadow:0 0 0 3px #4a1df440}.table-input:disabled,.table-input[readonly]{opacity:.85;color:#64748b!important;cursor:not-allowed!important;box-shadow:none!important;background:#f1f5f9!important;border:1px dashed #cbd5e1!important}.read-only-val{color:#64748b;box-sizing:border-box;background:#f1f5f9;border:1px dashed #cbd5e1;border-radius:4px;padding:3px 6px;font-family:inherit;font-size:.85rem;font-weight:500;display:inline-block}.schedule-table th,.schedule-table td{border-right:1px solid var(--border-color)}.schedule-table th:last-child,.schedule-table td:last-child{border-right:none}.properties-panel{z-index:25;border-left:1px solid var(--border-color);border-top:none;border-bottom:none;border-right:none;border-radius:0;flex-direction:column;gap:16px;padding:10px 20px 20px;display:flex;position:absolute;top:75px;right:0;overflow-y:auto}.panel-title{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin:0;padding-bottom:12px;font-size:1.1rem;font-weight:600}.property-group{grid-template-columns:135px 1fr;align-items:center;gap:8px;display:grid}.property-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.75rem}.property-input{color:#0f172a;background:#fff;border:1px solid #4a1df44d;border-radius:4px;outline:none;width:100%;max-width:220px;padding:5px 8px;font-family:inherit;font-size:.85rem;font-weight:500;transition:all .15s;box-shadow:inset 0 1px 2px #00000008}.property-input:hover:not(:disabled){border-color:var(--accent-blue);box-shadow:0 0 0 2px #4a1df426}.property-input:focus:not(:disabled){border-color:var(--accent-blue);box-shadow:0 0 0 3px #4a1df440}.property-input:disabled,.property-input[readonly]{opacity:.85;color:#64748b!important;cursor:not-allowed!important;box-shadow:none!important;background:#f1f5f9!important;border:1px dashed #cbd5e1!important}.canvas-container{flex:1;width:100%;height:100%;position:relative;overflow:hidden}.bg-controls{z-index:10;flex-direction:column;gap:12px;padding:16px;display:flex;position:absolute;bottom:20px;left:20px}.control-row{align-items:center;gap:12px;display:flex}.control-row label{color:var(--text-secondary);width:60px;font-size:.85rem}input[type=range]{accent-color:var(--accent-blue);flex:1}.upload-btn{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-weight:500;transition:background .2s;display:flex}.upload-btn:hover{background:#2563eb}.cad-controls{border:1px solid var(--border-color);background:#ffffff80;border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.cad-header{align-items:center;gap:6px;display:flex}.cad-toggle-btn{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:6px;flex:1;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:.82rem;font-weight:600;transition:background .15s;display:flex}.cad-toggle-btn:hover{background:#0000000a}.cad-icon-btn{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s;display:flex}.cad-icon-btn:hover{background:#dc262614}.cad-layer-list{flex-direction:column;gap:2px;max-height:200px;padding:2px 0;display:flex;overflow-y:auto}.cad-layer-list::-webkit-scrollbar{width:5px}.cad-layer-list::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.cad-layer-actions{gap:6px;margin-bottom:4px;display:flex}.cad-layer-actions button{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#0000000d;border-radius:4px;flex:1;padding:3px 8px;font-family:inherit;font-size:.72rem;font-weight:500;transition:all .15s}.cad-layer-actions button:hover{color:var(--text-primary);background:#0000001a}.cad-layer-item{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px 6px;font-size:.78rem;transition:background .12s;display:flex}.cad-layer-item:hover{background:#0000000a}.cad-layer-item input[type=checkbox]{accent-color:#0891b2;cursor:pointer;width:14px;height:14px}.cad-layer-swatch{border:1px solid #00000026;border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.cad-layer-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);flex:1;overflow:hidden}.cad-layer-count{color:var(--text-secondary);background:#0000000f;border-radius:8px;flex-shrink:0;padding:1px 5px;font-size:.68rem}.view-only input:not(.allow-view-only),.view-only select:not(.allow-view-only),.view-only button:not(.tab-button):not(.allow-view-only){pointer-events:none;opacity:.7}.resizer-x{cursor:ew-resize;z-index:20;width:6px;transition:background-color .2s;position:absolute;top:0;bottom:0;left:0}.resizer-x:hover,.resizer-x.active{background-color:var(--accent-blue)}.resizer-y{cursor:ns-resize;z-index:20;height:6px;transition:background-color .2s;position:absolute;top:0;left:0;right:0}.resizer-y:hover,.resizer-y.active{background-color:var(--accent-blue)}.shimmer-bg{background:linear-gradient(90deg, var(--accent-blue) 0%, #60a5fa 50%, var(--accent-blue) 100%);background-size:300% 100%;animation:1.5s linear infinite shimmer}.results-row{transition:background-color .15s}.results-row:hover{background-color:#0000000a}
