.survey-route-dialog { width:min(1250px,calc(100vw - 28px)); }
.survey-route-intro,.survey-route-help,.survey-route-summary { margin:6px 0 12px; color:#363d42; line-height:1.45; }
.survey-route-selectors,.survey-route-actions,.survey-route-tools { display:flex; flex-wrap:wrap; align-items:end; gap:8px 12px; }
.survey-route-selectors { margin-bottom:12px; }
.survey-route-field { display:grid; gap:4px; min-width:0; color:#2d3439; font-size:13px; }
.survey-route-field select,.survey-route-field input { width:100%; min-width:0; border:1px solid #b7bec3; border-radius:6px; padding:7px 8px; background:#fff; color:#21262a; font:inherit; }
.survey-route-field input:focus-visible,.survey-route-field select:focus-visible { outline:2px solid #286a90; outline-offset:1px; }
.survey-route-field.source { flex:2 1 210px; }
.survey-route-field.network { flex:1 1 165px; }
.survey-route-field.page { width:96px; }
.survey-route-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:14px; align-items:start; }
.survey-route-viewport { max-height:min(60dvh,660px); overflow:auto; border:1px solid #c9cdd0; background:#eff1f2; border-radius:9px; }
.survey-route-viewport > p { padding:16px; margin:0; }
.survey-route-map { position:relative; background:#fff; user-select:none; }
.survey-route-map img { display:block; width:100%; height:auto; pointer-events:none; }
.survey-route-overlay { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.survey-route-line,.survey-route-line-back,.survey-route-scale-line { vector-effect:non-scaling-stroke; fill:none; stroke-linecap:round; }
.survey-route-line-back { stroke:#fff; stroke-width:6px; }
.survey-route-line { stroke:#a62930; stroke-width:3px; }
.survey-route-map[data-network="water"] .survey-route-line { stroke:#155a8e; }
.survey-route-scale-line { stroke:#3d3c38; stroke-width:2.5px; stroke-dasharray:6 3; }
.survey-route-map.is-marking { cursor:crosshair; touch-action:none; }
.survey-route-map:focus-visible { outline:3px solid #286a90; outline-offset:-3px; }
.survey-route-point,.survey-route-crosshair { position:absolute; transform:translate(-50%,-50%); z-index:2; }
.survey-route-point { display:grid; place-items:center; width:25px; height:25px; padding:0; border-radius:50%; border:2px solid white; background:#9c2930; color:#fff; font-size:11px; font-weight:700; box-shadow:0 0 0 1px #6a161c,0 2px 6px #2527294d; touch-action:none; }
.survey-route-map[data-network="water"] .survey-route-point { background:#155a8e; box-shadow:0 0 0 1px #124268,0 2px 6px #2527294d; }
.survey-route-point[aria-pressed="true"] { outline:3px solid #eaad30; outline-offset:2px; }
.survey-route-point.anchor { z-index:1; pointer-events:none; background:#454542; box-shadow:0 0 0 1px #373734; }
.survey-route-crosshair { width:14px; height:14px; border:2px solid #282f36; border-radius:50%; background:#fff7; pointer-events:none; z-index:3; }
.survey-route-side { display:grid; gap:8px; }
.survey-route-card { border:1px solid #d4d7d9; border-radius:9px; padding:10px 12px; min-width:0; }
.survey-route-card h3 { margin:0 0 5px; font-size:15px; }
.survey-route-card p { margin:5px 0; }
.survey-route-attestation { display:flex; align-items:flex-start; gap:7px; margin:8px 0; font-size:13px; line-height:1.4; }
.survey-route-attestation input { margin-top:3px; }
.survey-route-rows { display:grid; gap:6px; padding:0; margin:7px 0; list-style:none; }
.survey-route-node { display:flex; align-items:end; gap:7px; }
.survey-route-node .survey-route-field { flex:0 0 88px; }
.survey-route-node .survey-route-node-button { flex:1 1 auto; text-align:left; min-height:34px; padding:4px 7px; border:1px solid #c6cacc; border-radius:6px; background:#f8f9f9; color:#272c30; font:inherit; line-height:1.3; overflow-wrap:anywhere; }
.survey-route-node-button[aria-pressed="true"] { background:#fff6df; border-color:#bd7818; }
.survey-route-node-button[data-placed="true"]::after { content:" ✓"; color:#165338; }
.survey-route-summary { padding:7px 0 0; border-top:1px solid #dce0e2; font-size:13px; overflow-wrap:anywhere; }
.survey-route-summary ul { margin:4px 0 0; padding-left:18px; }
.survey-route-status { margin:10px 0; min-height:1.4em; color:#32383d; overflow-wrap:anywhere; }
.survey-route-status.error { color:#981e26; }
.survey-route-actions { justify-content:flex-end; }
.survey-route-confirm { padding:10px 12px; margin-top:10px; border:1px solid #e5bc68; border-radius:8px; background:#fff8e7; }
.survey-route-confirm[hidden],.survey-route-crosshair[hidden],.survey-route-point[hidden] { display:none; }
.survey-route-confirm p { margin:0 0 7px; }
@media(max-width:790px) {
  .survey-route-layout { grid-template-columns:1fr; }
  .survey-route-viewport { max-height:48dvh; }
  .survey-route-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px) { .survey-route-side { grid-template-columns:1fr; } }
