.equipment-page { background:#f4f6f3; color:#203c32; font-family:system-ui,sans-serif; }
.equipment-page>header { display:flex; flex-wrap:wrap; gap:1rem; padding:1rem max(1rem,calc((100vw - 1360px)/2)); background:#fff; border-bottom:1px solid #cfdbd3; }
.equipment-page>main { max-width:1360px; margin:auto; padding:1.5rem 1rem 4rem; }
.equipment-editor { --eq-border:#ccd8d0; min-width:0; padding:1rem; background:#fff; border:1px solid var(--eq-border); border-radius:.7rem; color:#203c32; }
.equipment-editor fieldset { min-width:0; border:1px solid var(--eq-border); border-radius:.5rem; padding:1rem; margin:1.25rem 0; }
.equipment-editor legend { font-size:1.15rem; font-weight:650; float:none; width:auto; max-width:100%; overflow-wrap:anywhere; padding:0 .3rem; }
.equipment-editor label { display:flex; flex-direction:column; gap:.3rem; margin-bottom:.8rem; font-size:.9rem; }
.equipment-editor .equipment-policies label { flex-direction:row; align-items:flex-start; gap:.65rem; line-height:1.5; }
.equipment-editor .equipment-policies input { margin-top:.35rem; flex-shrink:0; }
.equipment-editor .equipment-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.3rem; align-items:start; }
.equipment-editor .equipment-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 .8rem; }
.equipment-editor .equipment-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin:.7rem 0; }
.equipment-editor .equipment-toolbar button { min-height:44px; }
.equipment-editor .equipment-map { height:350px; min-width:0; border:1px solid var(--eq-border); border-radius:.4rem; background:#edf1ed; z-index:0; }
.equipment-editor .equipment-canvas { display:block; width:100%; min-height:350px; max-height:560px; background:#f5f7f4; border:1px solid var(--eq-border); touch-action:none; }
.equipment-editor .equipment-canvas path,.equipment-editor .equipment-canvas polygon { vector-effect:non-scaling-stroke; }
.equipment-editor .equipment-parcel { fill:#ddebdc; stroke:#377250; stroke-width:2; }
.equipment-editor .equipment-building { fill:#e2dfe9; stroke:#8b8397; stroke-width:1; }
.equipment-editor .equipment-area { fill:#cfe1f6; fill-opacity:.6; stroke:#386b9e; stroke-width:2; }
.equipment-editor .equipment-exclusion { fill:#b8344a; fill-opacity:.25; stroke:#a0283c; stroke-width:2; }
.equipment-editor .equipment-device { stroke:#102d25; stroke-width:1.5; cursor:grab; }
.equipment-editor .equipment-inverter { fill:#e6c26b; }
.equipment-editor .equipment-battery { fill:#5bb3a5; }
.equipment-editor .equipment-wallbox { fill:#9299dd; }
.equipment-editor .equipment-planned { stroke-dasharray:5 3; }
.equipment-editor .equipment-selected,.equipment-editor .equipment-device:focus { stroke:#d3491d; stroke-width:3; outline:none; }
.equipment-editor .equipment-unchecked { border-style:dashed; }
.equipment-editor .equipment-warning { padding:1rem; border-left:4px solid #a76b16; background:#fff3d7; overflow-wrap:anywhere; }
.equipment-editor .equipment-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.equipment-editor .equipment-groups article { border:1px solid var(--eq-border); border-radius:.4rem; padding:.7rem; overflow-wrap:anywhere; }
.equipment-editor .equipment-groups h3 { font-size:1rem; }
.equipment-editor .equipment-groups p { font-size:.87rem; margin-bottom:.35rem; }
.equipment-editor .equipment-legend { display:flex; gap:.5rem 1rem; flex-wrap:wrap; font-size:.8rem; margin:.6rem 0; }
.equipment-editor .equipment-legend span:nth-child(1) { color:#795712; }
.equipment-editor .equipment-legend span:nth-child(2) { color:#1b6d60; }
.equipment-editor .equipment-legend span:nth-child(3) { color:#494f94; }
.equipment-editor .equipment-code { font-family:ui-monospace,monospace; font-size:.8rem; }
.equipment-editor .equipment-route-point { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1rem; border:1px solid var(--eq-border); border-radius:.4rem; padding:.8rem; margin:.7rem 0; }
.equipment-editor .equipment-route-point>strong,.equipment-editor .equipment-route-point>.equipment-toolbar { grid-column:1/-1; }
.equipment-editor .equipment-route-point label { min-width:0; margin:0; }
.equipment-editor [data-eq-route] input,.equipment-editor [data-eq-route] select { min-height:44px; min-width:0; max-width:100%; }
.equipment-editor [data-eq-route]>.btn { min-height:44px; white-space:normal; }
.equipment-editor .equipment-route-results { padding-left:1.3rem; }
.equipment-editor .equipment-route-results>li { margin:.6rem 0; }
.equipment-editor .equipment-route-corridor { fill-opacity:.3; stroke-width:1; pointer-events:none; }
.equipment-editor .equipment-route-cable { fill:#7a4eac; stroke:#70419e; }
.equipment-editor .equipment-route-mounting { fill:#b77b26; stroke:#936116; }
.equipment-editor .equipment-route-line { fill:none; stroke-width:3; cursor:pointer; vector-effect:non-scaling-stroke; }
.equipment-editor .equipment-route-unchecked { stroke-dasharray:5 4; }
.equipment-editor .equipment-route-selected,.equipment-editor .equipment-route-line:focus { stroke:#c33320; stroke-width:4; outline:none; }
.equipment-editor .equipment-route-draft { fill:none; stroke:#c33320; stroke-width:3; stroke-dasharray:3 3; vector-effect:non-scaling-stroke; pointer-events:none; }
.equipment-editor .equipment-route-dot { fill:#fff; stroke:#c33320; stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }
.equipment-editor .equipment-route-cursor { fill:none; stroke:#182f82; stroke-width:3; vector-effect:non-scaling-stroke; pointer-events:none; }
.equipment-editor [data-eq-route-state],.equipment-editor [data-eq-route-drawing],.equipment-editor [data-eq-route-point-count] { overflow-wrap:anywhere; }
.equipment-editor [data-eq-status],.equipment-editor [data-eq-save-note],.equipment-editor [data-eq-frame],.equipment-editor li { overflow-wrap:anywhere; }
.equipment-editor :focus-visible { outline:3px solid #b05814; outline-offset:3px; }
.equipment-editor [aria-busy="true"] { opacity:.7; }
@media(max-width:850px) { .equipment-editor .equipment-columns { grid-template-columns:1fr; } .equipment-editor .equipment-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .equipment-editor { padding:.55rem; } .equipment-editor fieldset { padding:.65rem; } .equipment-editor .equipment-inputs,.equipment-editor .equipment-groups,.equipment-editor .equipment-route-point { grid-template-columns:1fr; } .equipment-editor .equipment-canvas { min-height:300px; } }
