.drawing-list-row:has(.drawing-route-download) { grid-template-columns:17px 18px minmax(0,1fr) 27px 27px 38px 27px; }
.drawing-list-row .drawing-route-download { width:38px; min-width:38px; font-size:10px; font-weight:700; color:#5b21b6; background:#f2ebff; }
.drawing-list-row .drawing-route-download:hover { color:#4c1d95; background:#e8d9ff; }
.drawing-properties-actions #drawingEditRoute,.drawing-properties-actions #drawingDownloadRoute { grid-column:1 / -1; border-color:#c4b5fd; color:#5b21b6; }
.route-planner-panel { position:absolute; z-index:13; top:14px; right:14px; width:min(370px,calc(100% - 28px)); max-height:calc(100% - 28px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid #dce5f1; border-radius:10px; box-shadow:0 16px 40px #20365733; color:#233b5c; }
.route-planner-panel[hidden] { display:none; }
.route-planner-panel [hidden] { display:none!important; }
.route-planner-heading { flex-shrink:0; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:14px 15px 11px; border-bottom:1px solid #e7edf5; }
.route-planner-heading div { display:grid; gap:2px; }
.route-planner-heading strong { font-size:16px; color:#182d4c; }
.route-planner-heading small { font-size:11px; color:#71829c; }
.route-planner-panel button { min-height:32px; padding:5px 9px; border:1px solid #ccd8e9; border-radius:6px; background:#fff; color:#315071; cursor:pointer; }
.route-planner-panel button:hover:not(:disabled) { border-color:#7a9df8; background:#f4f7ff; }
.route-planner-panel button:disabled { opacity:.5; cursor:not-allowed; }
.route-planner-heading button { width:28px; min-height:28px; padding:0; border:0; font-size:21px; color:#7b8ca5; }
.route-planner-body { overflow-y:auto; min-height:0; padding:10px 15px 14px; scrollbar-width:thin; }
.route-planner-tip,.route-planner-note { margin:0 0 10px; font-size:11px; line-height:1.55; color:#60718d; }
.route-planner-note { margin:11px 0 0; padding:8px; border-radius:6px; background:#f5f7fb; }
.route-planner-panel label { display:grid; gap:4px; margin:7px 0; font-size:11px; color:#60718d; }
.route-planner-panel input,.route-planner-panel select { width:100%; min-width:0; height:34px; padding:6px 8px; border:1px solid #d1ddec; border-radius:5px; background:#fff; color:#233b5c; font-size:12px; }
.route-planner-panel input:focus,.route-planner-panel select:focus { outline:2px solid #c8d9ff; border-color:#6f99f4; }
.route-planner-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 9px; }
.route-planner-section { margin:9px 0; padding:7px 9px 10px; border:1px solid #dce5f1; border-radius:7px; }
.route-planner-section[hidden] { display:none; }
.route-planner-section > summary { cursor:pointer; color:#314d72; font-size:12px; font-weight:700; }
.route-planner-section > summary::marker { color:#6e8db6; }
.route-reference-point { margin-top:9px; padding-top:7px; border-top:1px solid #e8eef6; }
.route-reference-point > summary { cursor:pointer; color:#5a6f8c; font-size:11px; }
.route-planner-panel fieldset { margin:9px 0; padding:7px 9px 9px; border:1px solid #dce5f1; border-radius:7px; }
.route-planner-panel legend { padding:0 4px; font-size:11px; font-weight:650; color:#3c5679; }
.route-planner-panel fieldset button { width:100%; }
.route-lens-choices { display:flex; gap:12px; flex-wrap:wrap; }
.route-lens-choices label { display:flex; align-items:center; gap:5px; margin:3px 0; }
.route-lens-choices input[type="checkbox"] { width:15px; height:15px; }
.route-planner-list-heading { display:flex; align-items:center; justify-content:space-between; margin:12px 0 6px; font-size:12px; }
.route-planner-list-heading > div { display:flex; gap:5px; }
.route-planner-list-heading button { min-height:27px; font-size:11px; }
.route-waypoint-list { max-height:190px; overflow:auto; border:1px solid #e2e9f3; border-radius:6px; }
.route-waypoint-row { display:grid; grid-template-columns:28px minmax(0,1fr) 25px 25px 25px; align-items:center; gap:4px; padding:5px 7px; border-bottom:1px solid #edf1f7; font-size:11px; }
.route-waypoint-row.is-selected { background:#edf3ff; }
.route-waypoint-row:last-child { border-bottom:0; }
.route-waypoint-row .route-waypoint-number { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#2563eb; color:white; font-size:10px; }
.route-waypoint-row .route-waypoint-detail { text-align:left; min-width:0; width:100%; height:auto; padding:3px; border:0; background:transparent; white-space:normal; font-size:11px; }
.route-waypoint-row small { display:block; margin-top:2px; color:#788ba7; }
.route-waypoint-row button:not(.route-waypoint-detail) { width:25px; min-height:25px; padding:0; border:0; color:#6b7891; }
.route-waypoint-row button.route-waypoint-remove { color:#b42335; }
.route-summary { margin:7px 1px; padding:7px 8px; border-radius:6px; background:#f2f6ff; color:#3d5b86; font-size:11px; line-height:1.5; }
.route-action-heading { display:flex; justify-content:space-between; margin:10px 0 5px; font-size:11px; color:#3c5679; }
.route-point-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.route-point-actions button { font-size:11px; }
.route-action-list { max-height:180px; overflow:auto; border:1px solid #e2e9f3; border-radius:6px; }
.route-action-row { display:grid; grid-template-columns:minmax(0,1fr) 24px 24px 24px; gap:3px; align-items:center; min-height:31px; padding:3px 5px; border-bottom:1px solid #edf1f7; font-size:11px; }
.route-action-row:last-child { border-bottom:0; }
.route-action-row button { min-height:24px; padding:0; border:0; }
.route-planner-status { min-height:18px; margin:8px 0 0; color:#415b7b; font-size:11px; }
.route-planner-status.error { color:#ba2636; }
.route-planner-panel footer { flex-shrink:0; display:grid; grid-template-columns:auto 1fr auto; gap:6px; padding:10px 12px; border-top:1px solid #e7edf5; }
.route-planner-panel footer button { font-size:11px; }
.route-planner-panel footer #routeSave { color:#fff; background:#2563eb; border-color:#2563eb; }
.route-planner-panel footer #routeSave:hover:not(:disabled) { background:#1d4ed8; }
.route-planner-panel footer #routeDownload { color:#5b21b6; border-color:#c4b5fd; }
@media (max-width:900px) { .route-planner-panel { top:8px; right:8px; width:min(370px,calc(100% - 16px)); max-height:calc(100% - 16px); } }
