/* Shared module: dam-editor — auto-split from the old single styles.css, 89 rule block(s). Do not duplicate class names across files. */

.success-btn{background:var(--good)}

.gate-visual{height:110px;margin:12px 0;border-radius:11px;background:linear-gradient(180deg,#c9eff6 0 52%,#4babc5 52% 100%);position:relative;overflow:hidden}

.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}

.detail-grid>div{border:1px solid #e0eaf0;border-radius:10px;padding:10px}

.detail-grid small{display:block;color:var(--muted);margin-bottom:4px}

@media (max-width:650px){
.detail-grid{grid-template-columns:1fr}
}

.dam-gates-table td small{display:block;color:var(--muted);margin-top:2px}

.dam-gates-table .mini-control{padding:5px 8px;font-size:10px}

.dam-builder{display:flex;flex-direction:column;gap:12px}

.dam-builder-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px}

.dam-builder-form label,.dam-gate-form label{font-size:10px;color:var(--muted)}

.dam-builder-form input,.dam-builder-form select,.dam-gate-form input,.dam-gate-form select{width:100%;margin-top:4px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);padding:8px 9px}

.dam-builder-summary{display:flex;gap:18px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(33,143,185,.05)}

.dam-builder-gates{border:1px solid var(--line);border-radius:12px;overflow:hidden}

.dam-gate-form{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;padding:12px;border-bottom:1px solid var(--line)}

.dam-add-gate-btn{align-self:end;min-height:38px}

.dam-builder-tools{display:flex;gap:8px;flex-wrap:wrap}

.dam-draw-map{height:480px!important;min-height:480px}

@media (max-width:1300px){
.dam-builder-form{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:900px){
.dam-builder-form,.dam-gate-form{grid-template-columns:repeat(2,1fr)}
}

.dam-edit-help{display:inline-flex;align-items:center;color:var(--muted);font-size:10px;padding-inline:4px}

.dam-builder-devices{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:2px}

.dam-device-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px;align-items:end;border-bottom:1px solid var(--line);direction:rtl}

.dam-device-form label{font-size:10px;color:var(--muted);min-width:0;display:block}

.dam-device-form input,.dam-device-form select{width:100%;min-width:0;max-width:100%;margin-top:4px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);padding:8px 9px;box-sizing:border-box}

.dam-add-device-btn{grid-column:1/-1;min-height:40px;white-space:normal;width:100%;min-width:0;max-width:100%;align-self:end;justify-self:stretch;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;margin:0;overflow:hidden}

.dam-device-help{padding:9px 12px;color:var(--muted);font-size:10px;line-height:1.6;background:rgba(25,145,190,.045);border-bottom:1px solid var(--line)}

.dam-device-table{min-width:900px}

@media (max-width:760px){
.dam-device-form{grid-template-columns:1fr 1fr}
}

@media (max-width:760px){
.dam-device-form label:nth-child(3){grid-column:1/-1}
}

@media (max-width:760px){
.dam-add-device-btn{grid-column:1/-1}
}

@media (max-width:520px){
.dam-device-form{grid-template-columns:1fr}
}

@media (max-width:520px){
.dam-device-form label:nth-child(3),.dam-add-device-btn{grid-column:auto}
}

.v143-gate-head{align-items:flex-start}

.v143-gate-visual-wrap{display:flex;flex-direction:column;align-items:center;gap:5px}

.gate-visual{width:82px;display:flex;flex-direction:column;align-items:center;gap:3px;user-select:none}

.gate-visual svg{width:100%;height:auto;filter:drop-shadow(0 6px 13px rgba(11,56,82,.16));overflow:visible}

.gate-visual-label{font-size:11px;font-weight:800;color:var(--muted,#667784)}

.gate-channel{fill:#cce9f4}

.gate-leaf rect{fill:#768c99;stroke:#355b70;stroke-width:2}

.gate-leaf path{fill:none;stroke:#bcd0da;stroke-width:2}

.gate-leaf{transition:transform .65s cubic-bezier(.2,.8,.2,1);transform-origin:center}

.gate-stem{stroke:#455d6b;stroke-width:4}

.gate-visual.is-open .gate-water{opacity:.9;animation:gateWater 1.05s linear infinite}

.gate-visual.is-open .w2{animation-delay:.28s}

.gate-visual.is-closed .gate-water{opacity:.12}

.gate-visual.is-moving .gate-actuator{animation:gateActuator .55s ease-in-out infinite alternate}

.v143-gate-slider{margin:12px 0;padding:10px;border-radius:11px;background:var(--surface-2,#f6f9fb)}

.v143-gate-slider label{display:flex;justify-content:space-between;margin-bottom:7px;font-size:13px}

.v143-gate-slider input{width:100%;accent-color:#0d8ebc}

.v143-gate-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}

.v143-gate-actions button{min-width:0;padding-inline:7px}

@media (max-width:760px){
.v143-gate-actions{grid-template-columns:1fr 1fr}
}

.gate-visual{position:relative}

.gate-role-badge{position:absolute;top:-6px;inset-inline-start:-4px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;box-shadow:0 6px 14px rgba(239,68,68,.28)}

.gate-spark{fill:#fde68a;opacity:.0}

.gate-visual.is-emergency svg{filter:drop-shadow(0 0 14px rgba(251,146,60,.36)) drop-shadow(0 6px 14px rgba(11,56,82,.16))}

.gate-visual.is-emergency .gate-frame{fill:#4a6a80;stroke:#f8b44d;stroke-width:2}

.gate-visual.is-emergency .gate-channel{fill:url(#gateGlow)}

.gate-visual.is-emergency .gate-leaf rect{fill:#8ca5b4;stroke:#24485c}

.gate-visual.is-emergency .gate-actuator{fill:#ff8a00;stroke:#a94b00}

.gate-visual.is-emergency .gate-spark{opacity:1;animation:gateSpark 1.1s ease-in-out infinite alternate}

.gate-emergency-signal circle{fill:#ff6b6b;stroke:#ffe5b4;stroke-width:2;animation:gateBeacon 1.15s ease-in-out infinite}

.gate-emergency-signal path{stroke:#fff5f5;stroke-width:2.4;stroke-linecap:round}

.gate-visual{width:92px}

.gate-visual svg{overflow:visible}

.gate-abutment{fill:#b7d9e6;stroke:#6fa1b7;stroke-width:2}

.gate-channel{fill:url(#gateWallGrad);stroke:#5aa7c6;stroke-width:1.6}

.gate-orifice{fill:#0d3142;stroke:#79b9d0;stroke-width:1.8}

.gate-leaf rect{fill:url(#gateDoorGrad);stroke:#365a6b;stroke-width:2}

.gate-leaf path{fill:none;stroke:#d7e5ec;stroke-width:2;stroke-linecap:round}

.gate-topcap{fill:#f59e0b;stroke:#8a5a05;stroke-width:1.6}

.gate-stem{stroke:#577384;stroke-width:3.5;stroke-linecap:round}

.gate-pool{fill:#69c8eb;opacity:.82}

.gate-flow-column{fill:url(#gateFlowGrad);opacity:.12;transform-origin:60px 78px;transition:all .45s ease}

.gate-flow-splash{fill:none;stroke:#57d1ff;stroke-width:3;stroke-linecap:round;opacity:.08}

.gate-arrow{stroke:#f4fbff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0}

.gate-visual.is-open .gate-flow-column{opacity:.96;filter:drop-shadow(0 0 8px rgba(56,189,248,.35));animation:gatePour 1s ease-in-out infinite alternate}

.gate-visual.is-open .gate-flow-splash{opacity:.95;animation:gateWater 1s linear infinite}

.gate-visual.is-open .gate-arrow{opacity:.95;animation:gateArrowPulse 1.1s ease-in-out infinite}

.gate-visual.is-closed .gate-flow-column,.gate-visual.is-closed .gate-flow-splash,.gate-visual.is-closed .gate-arrow{opacity:0}

.gate-visual.is-inlet .gate-pool{fill:#8bd7f0}

.gate-visual.is-outlet .gate-flow-column,.gate-visual.is-spillway .gate-flow-column{fill:#38bdf8}

.gate-visual.is-outlet .gate-flow-splash,.gate-visual.is-spillway .gate-flow-splash{stroke:#2cc5ff}

.gate-visual.is-emergency .gate-pool{fill:#7fdcff}

.gate-role-badge.badge-emergency{background:linear-gradient(135deg,#f59e0b,#ef4444)}

.gate-role-badge.badge-outlet{background:linear-gradient(135deg,#0ea5e9,#0284c7)}

.gate-role-badge.badge-inlet{background:linear-gradient(135deg,#0f766e,#14b8a6)}

.gate-role-badge.badge-spillway{background:linear-gradient(135deg,#3b82f6,#06b6d4)}
