.outdoor-pv-page { background:#f4f6f3; color:#203c32; font-family:system-ui,sans-serif; }
.outdoor-pv-page>header { display:flex; flex-wrap:wrap; gap:1rem; padding:1rem max(1rem,calc((100vw - 1360px)/2)); background:#fff; border-bottom:1px solid #ccd8d0; }
.outdoor-pv-page>main { max-width:1360px; margin:auto; padding:1.5rem 1rem 4rem; }
.outdoor-pv-editor { min-width:0; padding:1rem; border:1px solid #ccd8d0; border-radius:.7rem; background:#fff; color:#203c32; }
.outdoor-pv-editor fieldset { min-width:0; margin:1.25rem 0; padding:1rem; border:1px solid #ccd8d0; border-radius:.5rem; }
.outdoor-pv-editor legend { float:none; width:auto; padding:0 .3rem; font-size:1.15rem; font-weight:650; }
.outdoor-pv-editor label { display:flex; flex-direction:column; gap:.3rem; margin-bottom:.8rem; font-size:.9rem; }
.outdoor-pv-editor .outdoor-policies label,.outdoor-pv-editor .outdoor-check { flex-direction:row; align-items:flex-start; gap:.65rem; line-height:1.5; }
.outdoor-pv-editor .outdoor-policies input { margin-top:.35rem; flex-shrink:0; }
.outdoor-pv-editor .outdoor-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.3rem; align-items:start; }
.outdoor-pv-editor .outdoor-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 .8rem; }
.outdoor-pv-editor .outdoor-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin:.7rem 0; }
.outdoor-pv-editor button { min-height:44px; }
.outdoor-pv-editor .outdoor-map { height:350px; min-width:0; border:1px solid #ccd8d0; border-radius:.4rem; background:#edf1ed; z-index:0; }
.outdoor-pv-editor .outdoor-canvas { display:block; width:100%; min-height:350px; max-height:560px; border:1px solid #ccd8d0; background:#f5f7f4; touch-action:none; }
.outdoor-pv-editor .outdoor-canvas path,.outdoor-pv-editor .outdoor-canvas polygon { vector-effect:non-scaling-stroke; }
.outdoor-pv-editor .outdoor-parcel { fill:#ddebdc; stroke:#377250; stroke-width:2; }
.outdoor-pv-editor .outdoor-area { fill:#d2e2f6; fill-opacity:.5; stroke:#386b9e; stroke-width:1; }
.outdoor-pv-editor .outdoor-active-area { stroke-width:2; }
.outdoor-pv-editor .outdoor-exclusion { fill:#b8344a; fill-opacity:.25; stroke:#a0283c; stroke-width:2; }
.outdoor-pv-editor .outdoor-module { stroke-width:2; cursor:grab; }
.outdoor-pv-editor .outdoor-planned { stroke-dasharray:5 3; }
.outdoor-pv-editor .outdoor-selected,.outdoor-pv-editor .outdoor-module:focus { stroke:#d3491d; stroke-width:3; outline:none; }
.outdoor-pv-editor .outdoor-unchecked { border-style:dashed; }
.outdoor-pv-editor .outdoor-warning { padding:1rem; border-left:4px solid #a76b16; background:#fff3d7; overflow-wrap:anywhere; }
.outdoor-pv-editor .outdoor-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; }
.outdoor-pv-editor .outdoor-groups article { border:1px solid #ccd8d0; border-radius:.4rem; padding:.7rem; overflow-wrap:anywhere; }
.outdoor-pv-editor .outdoor-groups h3 { font-size:1rem; }
.outdoor-pv-editor .outdoor-groups p { font-size:.87rem; margin-bottom:.35rem; }
.outdoor-pv-editor .outdoor-code { font-family:ui-monospace,monospace; font-size:.8rem; }
.outdoor-pv-editor .outdoor-legend { display:flex; gap:.5rem 1rem; flex-wrap:wrap; font-size:.8rem; margin:.6rem 0; }
.outdoor-pv-editor .outdoor-legend span:first-child { color:#246662; }
.outdoor-pv-editor .outdoor-legend span:nth-child(2) { color:#50649a; }
.outdoor-pv-editor [data-op-status],.outdoor-pv-editor [data-op-save-note],.outdoor-pv-editor [data-op-frame],.outdoor-pv-editor li { overflow-wrap:anywhere; }
.outdoor-pv-editor :focus-visible { outline:3px solid #b05814; outline-offset:3px; }
@media(max-width:850px) { .outdoor-pv-editor .outdoor-columns { grid-template-columns:1fr; } .outdoor-pv-editor .outdoor-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .outdoor-pv-editor { padding:.55rem; } .outdoor-pv-editor fieldset { padding:.65rem; } .outdoor-pv-editor .outdoor-inputs,.outdoor-pv-editor .outdoor-groups { grid-template-columns:1fr; } .outdoor-pv-editor .outdoor-canvas { min-height:300px; } }
