.selection-tools { display:grid; gap:.65rem; min-width:0; }
.selection-buttons { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.selection-buttons button { min-height:40px; padding:.45rem .65rem; border:1px solid #cbd5e1; border-radius:.6rem; background:#f8fafc; color:#1e3a5f; font:inherit; font-size:.875rem; cursor:pointer; }
.selection-buttons button:hover { background:#eff6ff; border-color:#60a5fa; }
.selection-buttons button:focus-visible, .selection-tools summary:focus-visible { outline:3px solid #2563eb; outline-offset:2px; }
.selection-buttons button:disabled { opacity:.5; cursor:default; }
.selection-tools details { padding:.65rem .8rem; border:1px solid #e2e8f0; border-radius:.65rem; }
.selection-tools summary { cursor:pointer; font-size:.875rem; font-weight:600; color:#1e3a5f; }
.selection-tools fieldset { border:0; min-width:0; margin:.5rem 0 0; padding:0; }
.selection-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; margin:.7rem 0; }
.selection-fields label { display:grid; gap:.25rem; font-size:.8rem; color:#374151; min-width:0; }
.selection-fields input,.selection-fields select { width:100%; min-width:0; box-sizing:border-box; border:1px solid #cbd5e1; border-radius:.4rem; background:white; padding:.5rem; font:inherit; font-size:16px; }
.selection-tools [hidden] { display:none!important; }
#selection-feedback:empty { display:none; }
#map.selection-freehand { cursor:crosshair; touch-action:none; }
