:root{
  --bg:#eef2f5;--panel:#fff;--ink:#15212b;--muted:#61707d;--line:#d4dde4;
  --accent:#d95b21;--planned:#1769aa;--standard:#d95b21;--warn:#a64b00;--ok:#246b42;
  --shadow:0 3px 14px rgba(19,36,50,.14);
}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
body{display:flex;flex-direction:column;overflow:hidden}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#16222c;color:#fff;z-index:1000}.brand{display:flex;gap:12px;align-items:baseline}.brand strong{font-size:18px}.brand span{font-size:12px;opacity:.72}.top-actions{display:flex;gap:7px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 338px;min-height:0;flex:1}.map-pane{position:relative;min-width:0}.map-pane #map{height:100%;width:100%;background:#dfe8ec}.sidebar{overflow:auto;background:#f7f9fb;border-left:1px solid var(--line);padding:8px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.04)}.panel-title{width:100%;display:flex;justify-content:space-between;border:0;background:transparent;font-weight:700;padding:10px 11px;color:var(--ink);cursor:pointer;text-align:left}.panel-body{display:none;padding:0 11px 11px}.panel.open .panel-body{display:block}.panel label{font-size:12px;font-weight:600;color:#33444f;display:block;margin:7px 0}.panel input,.panel select,.panel button{font:inherit}.panel input[type=text],.panel input[type=number],.panel select{width:100%;padding:7px 8px;border:1px solid #bcc8d0;border-radius:5px;background:#fff;color:#12202b}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px}.span2{grid-column:1/-1}.unit-input{display:flex;align-items:center;border:1px solid #bcc8d0;border-radius:5px;background:#fff;overflow:hidden}.unit-input input{border:0!important;border-radius:0!important}.unit-input span{padding:0 8px;color:var(--muted);font-size:12px}.inline-input{display:flex;gap:5px}.inline-input button{flex:0 0 auto}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid #bdc9d1;border-radius:6px;overflow:hidden;background:#fff}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented label{margin:0;padding:7px 5px;text-align:center;border-right:1px solid #d8e0e5;cursor:pointer;font-weight:500}.segmented label:last-child{border-right:0}.segmented input{margin-right:3px}.panel fieldset{border:0;padding:0;margin:8px 0}.panel legend{font-size:12px;font-weight:700;color:#33444f;margin-bottom:4px}.check{font-weight:500!important;display:flex!important;align-items:center;gap:7px}.check input{width:auto}.action-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}button{border:1px solid #aebac2;background:#fff;color:#1b2a34;border-radius:5px;padding:7px 9px;cursor:pointer}button:hover{background:#f0f5f8}button.primary{background:#e86b2c;border-color:#e86b2c;color:#fff;font-weight:700}button:disabled{opacity:.45;cursor:not-allowed}.subtle{font-size:11px;color:var(--muted);line-height:1.4}.advice{border:1px solid #e6c89e;background:#fff9ed;border-radius:6px;padding:8px;margin:8px 0}.advice p{font-size:12px;margin:4px 0 6px;line-height:1.35}.hidden{display:none!important}.statusbar{height:32px;background:#16222c;color:#fff;display:flex;align-items:center;gap:0;font-size:11px;font-weight:700;z-index:1000}.statusbar span{padding:0 12px;border-right:1px solid rgba(255,255,255,.16);white-space:nowrap}.north-arrow{position:absolute;z-index:500;right:12px;top:12px;background:rgba(255,255,255,.9);border-radius:6px;padding:5px 7px;text-align:center;box-shadow:var(--shadow);font-size:11px}.north-arrow b{display:block;font-size:18px;line-height:14px}.map-hint{position:absolute;z-index:600;top:14px;left:50%;transform:translateX(-50%);background:#16222c;color:#fff;border-radius:7px;padding:8px 12px;box-shadow:var(--shadow);font-size:12px}.modified-badge{position:absolute;z-index:600;left:12px;bottom:18px;background:#fff3d8;border:1px solid #dfaa55;color:#713b00;border-radius:6px;padding:7px 9px;font-weight:800;font-size:11px;box-shadow:var(--shadow)}.leaflet-tooltip.leg-label{background:rgba(255,255,255,.86);border:0;box-shadow:0 1px 5px rgba(0,0,0,.2);font-weight:800;color:#26343d}.handle-icon{width:24px;height:24px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#fff}.handle-csp{background:#111}.handle-rotate{background:#7a3db8}.handle-radius{background:#087a75}.handle-lead{background:#b86b00}.handle-free{background:#1769aa}.validation{font-size:11px;line-height:1.45;padding:7px;border-radius:5px;background:#f2f6f8}.validation.good{background:#edf8f1;color:#185333}.validation.note{background:#fff7e8;color:#714300}
.print-root{display:none}.print-root.preparing{display:block;position:fixed;left:-12000px;top:0;width:263.4mm;height:auto;background:#fff;pointer-events:none}.print-root.preparing .print-page{width:263.4mm}.print-root.preparing .map-page{height:199.9mm;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:2.5mm}.print-root.preparing .print-map-wrap{height:auto;min-height:0}.print-map-wrap{position:relative;height:auto;min-height:0;border:1px solid #333;background:#f4f1e8;overflow:hidden}.print-map-wrap #printMap{position:absolute;inset:0;height:100%;width:100%}.print-map-north{position:absolute;right:4mm;top:4mm;z-index:710;background:rgba(255,255,255,.92);border:1px solid #333;border-radius:3px;padding:1.6mm 2.2mm;text-align:center;font-size:8pt;line-height:1}.print-map-north span,.print-map-north b{display:block}.print-leg-label{background:rgba(255,255,255,.92)!important;border:1px solid #333!important;box-shadow:none!important;color:#111!important;font-weight:700!important;font-size:8pt!important;padding:1px 3px!important}.print-leg-label:before{display:none!important}.print-point-label{background:rgba(255,255,255,.94);border:1px solid #333;border-radius:3px;color:#111;font-weight:700;font-size:7.5pt;padding:1px 3px;white-space:nowrap}.print-point-label.lead{color:#1769aa;border-color:#1769aa}.print-point-label.csp{color:#111;border-color:#111}.print-map-north b{font-size:14pt;margin-top:.7mm}.print-page{background:#fff;color:#000}.print-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1.25px solid #111;padding:0 0 3mm;font-size:9.5pt;line-height:1.25}.print-header strong{font-size:13pt}.print-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5mm 5mm;font-size:8.5pt;border-top:1px solid #333;padding-top:2.2mm;line-height:1.15}.print-summary div strong{display:block;font-size:6.5pt;line-height:1;text-transform:uppercase;color:#555;margin-bottom:.4mm}.print-details{display:grid;grid-template-columns:repeat(5,1fr);gap:2mm 6mm;margin:4mm 0 5mm;font-size:8.5pt;line-height:1.15}.print-details div strong{display:block;font-size:6.8pt;line-height:1;text-transform:uppercase;margin-bottom:.4mm;color:#555}.nav-table{width:100%;border-collapse:collapse;font-size:8.25pt}.nav-table th,.nav-table td{padding:1.7mm 2mm;border-bottom:1px solid #bbb;text-align:left;vertical-align:top}.nav-table th{background:#eee;font-size:7.5pt;text-transform:uppercase}.nav-table thead{display:table-header-group}.nav-table tr{break-inside:avoid;page-break-inside:avoid}.print-note{font-size:7.5pt;margin-top:4mm;line-height:1.3;color:#444}.print-page-hidden{display:none!important}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr) 300px}.brand span{display:none}.top-actions button{padding:6px;font-size:11px}.sidebar{padding:5px}.statusbar span{padding:0 7px}}
@media(max-width:650px){body{overflow:auto}.workspace{display:flex;flex-direction:column}.map-pane{height:56vh;min-height:400px}.sidebar{border-left:0;border-top:1px solid var(--line)}.topbar{position:sticky;top:0}.statusbar{position:sticky;bottom:0;overflow:auto}.north-arrow{top:52px}}
@media print{
  @page{size:letter landscape;margin:8mm}
  html,body{height:auto;overflow:visible;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print{display:none!important}.print-root,.print-root.preparing{display:block!important;position:static!important;left:auto!important;top:auto!important;width:263.4mm!important;height:auto!important;pointer-events:auto}.print-page{width:263.4mm;break-after:page;page-break-after:always;position:relative;overflow:hidden}.print-page:last-child{break-after:auto;page-break-after:auto}.map-page{height:199.9mm;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:2.5mm}.map-page .print-map-wrap{height:auto;min-height:0;width:100%}.map-page #printMap{height:100%;min-height:0;border:0}.nav-page{min-height:199.9mm;padding-top:0;overflow:visible}.leaflet-control-container{font-size:7pt}.leaflet-control-attribution{font-size:5.5pt!important}
}


/* Core map handles and validation */
.handle-departure{background:#205c3b;font-size:8px}
.handle-destination{background:#205c3b;font-size:8px}
.handle-route{background:#2b7a52;font-size:8px}
.handle-route-selected{background:#b45f06;font-size:8px;box-shadow:0 0 0 4px rgba(180,95,6,.2),0 1px 6px rgba(0,0,0,.45)}
.handle-isp{background:#7c4bb3;font-size:8px}
.handle-reposition{background:#44765b;font-size:7px;min-width:28px;width:auto;padding:0 3px;border-radius:12px}
.handle-spacing{background:#5f5aa8}
.handle-crawl-start,.handle-crawl-entry,.handle-crawl-end{width:auto;min-width:28px;height:24px;padding:0 6px;border-radius:12px;font-size:9px;letter-spacing:.02em}
.handle-crawl-start{background:#236c49}.handle-crawl-entry{background:#1769aa}.handle-crawl-end{background:#8d5a14}
.validation.warning{background:#fff0df;color:#8b4600;border:1px solid #e2b06e}
button.active-mode{background:#e8f3fb;border-color:#1769aa;color:#0b4e82;font-weight:700}
/* v0.11 route direction arrows */
.direction-arrow-wrap{background:transparent!important;border:0!important;pointer-events:none!important;}
.direction-arrow{
  width:20px;height:20px;line-height:20px;text-align:center;
  font-size:16px;font-weight:900;transform-origin:50% 50%;
  text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,0 0 3px #fff;
  pointer-events:none;
}
@media print{
  .direction-arrow{font-size:13px;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff;}
}


/* v0.12 compact sector labels + ISP distance references */
.leaflet-tooltip.compact-leg-label{font-size:10px!important;padding:1px 4px!important;line-height:1.1!important;letter-spacing:.02em;}
.leaflet-tooltip.isp-distance-label{background:rgba(255,255,255,.9);border:1px solid #7c4bb3;color:#60358b;box-shadow:none;font-size:9px;font-weight:800;padding:1px 3px;}
.leaflet-tooltip.isp-distance-label:before{display:none;}
.print-isp-distance{display:inline-block;background:rgba(255,255,255,.9);border:1px solid #7c4bb3;border-radius:2px;color:#60358b;font-weight:700;font-size:7pt;padding:1px 3px;white-space:nowrap;}
@media print{.print-leg-label{font-size:7pt!important;padding:1px 3px!important;}}


/* v0.13 sector-centre/CSP terminology + ForeFlight FPL paste */
.leaflet-tooltip.csp-label{background:rgba(255,255,255,.92);border:1px solid #1769aa;color:#1769aa;box-shadow:0 1px 4px rgba(0,0,0,.16);font-size:9px;font-weight:900;padding:1px 4px;line-height:1.1;}
.leaflet-tooltip.csp-label:before{border-top-color:#1769aa!important;}
.print-point-label.center{color:#111;border-color:#111;}
.print-point-label.airport{color:#205c3b;border-color:#205c3b;}

/* v0.21 — map-first planner / timeline / inspector layout */
body{min-width:0}
.topbar{height:56px;padding:0 12px}.brand{gap:10px}.brand strong{font-size:17px}.brand span{font-size:11px}
.top-actions{align-items:center}.top-actions>button,.top-actions summary{min-height:34px}
.workspace{grid-template-columns:260px minmax(0,1fr) 330px;background:#e7edf1}
.planner-sidebar,.inspector-sidebar{min-width:0;overflow:auto;background:#f6f8fa;padding:8px}
.planner-sidebar{border-right:1px solid var(--line)}.inspector-sidebar{border-left:1px solid var(--line)}
.sidebar-heading{padding:4px 3px 9px;display:flex;flex-direction:column;gap:1px}.sidebar-heading strong{font-size:11px;letter-spacing:.1em}.sidebar-heading span{font-size:10px;color:var(--muted)}
.planner-card,.inspector-card,.empty-inspector{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:10px;box-shadow:0 1px 4px rgba(0,0,0,.035)}
.card-heading,.inspector-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.card-heading>div,.inspector-title{min-width:0}.card-heading>div{display:flex;flex-direction:column}.card-heading strong,.inspector-title strong{font-size:12px}.eyebrow,.inspector-title>span{font-size:9px;color:var(--muted);font-weight:800;letter-spacing:.08em}
.planner-card label,.inspector-card label,.tool-drawer label{font-size:11.5px;font-weight:650;color:#33444f;display:block;margin:7px 0}.planner-card input,.planner-card select,.inspector-card input,.inspector-card select,.tool-drawer input,.tool-drawer select{font:inherit}.planner-card input[type=text],.planner-card input[type=number],.planner-card select,.inspector-card input[type=text],.inspector-card input[type=number],.inspector-card select,.tool-drawer input[type=text],.tool-drawer input[type=number],.tool-drawer select{width:100%;padding:7px 8px;border:1px solid #bcc8d0;border-radius:5px;background:#fff;color:#12202b}
.link-button{border:0;background:transparent;padding:3px 4px;color:#1769aa;font-size:10px}.link-button:hover{background:#eef6fb}
.mini-toggle{margin:0!important;display:flex!important;align-items:center;gap:5px;font-size:10px!important;font-weight:700!important}.mini-toggle input{width:auto}
.assignment-card{border-left:3px solid #7c4bb3}.assignment-summary{font-size:10px;line-height:1.4;color:#5f4970;background:#f7f2fb;border-radius:5px;padding:6px;margin-top:7px}
.timeline-card{padding-bottom:8px}.sortie-sequence{margin:0;border:0;border-radius:0;background:transparent}.sortie-step{position:relative;padding:6px 4px 6px 34px;min-height:31px;border:0;font-size:10.5px;background:transparent!important}.sortie-step:before{content:"";position:absolute;left:13px;top:0;bottom:0;width:2px;background:#dbe3e8}.sortie-step:first-child:before{top:15px}.sortie-step:last-child:before{bottom:15px}.sortie-step span{position:absolute;left:3px;top:5px;width:22px;height:22px;z-index:1;background:#e8eef2;border:2px solid #fff;box-shadow:0 0 0 1px #d7e0e6}.sortie-step.search span{background:#1769aa;color:#fff}.sortie-step.departure span,.sortie-step.destination span{background:#2b7a52;color:#fff}.sortie-step.search{font-weight:800}.sortie-step.transit{color:#315a46}
.timeline-actions{padding-top:6px;border-top:1px solid #edf1f4}.inline-add-menu summary{list-style:none;cursor:pointer;border:1px dashed #aebac2;border-radius:5px;padding:6px 8px;text-align:center;font-size:10.5px;font-weight:700;color:#355261}.inline-add-menu summary::-webkit-details-marker{display:none}.inline-add-content{display:grid;gap:5px;margin-top:5px}.inline-add-content button{font-size:10px;padding:6px}

.add-menu{position:relative}.add-menu summary{list-style:none;border:1px solid #e86b2c;background:#e86b2c;color:#fff;font-weight:750;border-radius:5px;padding:7px 10px;cursor:pointer}.add-menu summary::-webkit-details-marker{display:none}.add-menu-popover{position:absolute;right:0;top:40px;z-index:1500;width:190px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);display:grid;gap:4px}.add-menu-popover button{text-align:left;width:100%}.menu-label{font-size:9px;letter-spacing:.08em;color:var(--muted);font-weight:800;padding:5px 6px 2px}
.tool-drawer{display:none;position:fixed;z-index:1450;right:10px;top:64px;width:310px;max-height:calc(100vh - 106px);overflow:auto;box-shadow:0 8px 30px rgba(16,31,43,.24);margin:0}.tool-drawer.open{display:block}.tool-drawer.panel .panel-body{display:block;padding:0 11px 11px}.tool-drawer .panel-title{position:sticky;top:0;background:#fff;z-index:1;border-bottom:1px solid #edf1f4}.drawer-divider{height:1px;background:#e3e9ed;margin:10px 0}

.map-context-menu{position:fixed;z-index:1505;width:205px;background:#fff;border:1px solid #c8d2d9;border-radius:7px;box-shadow:0 8px 24px rgba(0,0,0,.2);padding:5px}.map-context-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:7px 8px;font-size:11px}.map-context-menu button:hover{background:#eef5f9}.context-separator{height:1px;background:#e5eaee;margin:4px}

.statusbar{height:30px;font-size:10.5px}.statusbar span{padding:0 10px}.map-pane{min-width:0}.north-arrow{top:12px;right:12px}

@media(max-width:1180px){.workspace{grid-template-columns:225px minmax(0,1fr) 300px}.planner-sidebar,.inspector-sidebar{padding:6px}.top-actions button,.top-actions summary{padding:6px 7px;font-size:10.5px}.brand span{display:none}}
@media(max-width:900px){body{overflow:auto}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:minmax(520px,68vh) auto}.planner-sidebar{grid-column:1;grid-row:1;border-right:1px solid var(--line)}.map-pane{grid-column:2;grid-row:1;min-height:520px}.inspector-sidebar{grid-column:1/-1;grid-row:2;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible}.inspector-sidebar>.sidebar-heading{grid-column:1/-1}.inspector-sidebar>#searchInspector{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.inspector-sidebar>#searchInspector>.inspector-card{margin:0}.empty-inspector,.diagnostics-card,#routePointInspector{margin:0}.statusbar{position:sticky;bottom:0;overflow:auto}}
@media(max-width:650px){.workspace{display:flex;flex-direction:column}.planner-sidebar{order:2;border-right:0;border-top:1px solid var(--line);max-height:none}.map-pane{order:1;height:56vh;min-height:390px}.inspector-sidebar{order:3;display:block}.inspector-sidebar>#searchInspector{display:block}.inspector-sidebar>#searchInspector>.inspector-card{margin-bottom:8px}.topbar{position:sticky;top:0;height:auto;min-height:54px;align-items:flex-start;padding:8px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions #undoBtn,.top-actions #redoBtn{display:none}.statusbar{position:sticky;bottom:0}.tool-drawer{left:8px;right:8px;width:auto;top:62px}.north-arrow{top:12px}}

/* v0.22 — map-first workspace, drag-ordered sortie + multi-point ISP */
.workspace{grid-template-columns:248px minmax(0,1fr);position:relative;transition:grid-template-columns .16s ease}
.planner-sidebar{grid-column:1;min-width:0;z-index:800;transition:opacity .14s ease,transform .16s ease}
.map-pane{grid-column:2;min-width:0}
.workspace.planner-collapsed{grid-template-columns:0 minmax(0,1fr)}
.workspace.planner-collapsed .planner-sidebar{opacity:0;transform:translateX(-100%);pointer-events:none;padding:0;border:0;overflow:hidden}
.planner-heading-row,.inspector-heading-row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}
.planner-heading-row>div,.inspector-heading-row>div{display:flex;flex-direction:column;gap:1px}
.icon-button{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:18px;line-height:1}
.timeline-help{margin:0 0 7px;font-size:9.5px;line-height:1.35;color:var(--muted)}
.compact-actions{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:7px}.compact-actions button{font-size:10px;padding:6px 7px}.assignment-compact-actions{grid-template-columns:1fr 1fr auto}

.inspector-sidebar{display:none;position:fixed;z-index:1380;right:12px;top:66px;bottom:40px;width:min(340px,38vw);max-width:calc(100vw - 32px);overflow:auto;background:#f6f8fa;border:1px solid var(--line);border-radius:10px;padding:8px;box-shadow:0 12px 36px rgba(15,30,40,.26)}
.inspector-sidebar.open{display:block}.inspector-sidebar>.sidebar-heading{position:sticky;top:-8px;margin:-8px -8px 8px;padding:10px;background:#f6f8fa;border-bottom:1px solid var(--line);z-index:3;border-radius:10px 10px 0 0}
.inspector-sidebar #searchInspector{display:block}.inspector-sidebar #searchInspector.hidden{display:none!important}

.sortable-sequence{display:grid;gap:3px;margin:0;background:transparent;overflow:visible}
.sortie-step{position:relative;display:grid;grid-template-columns:18px 34px minmax(0,1fr);gap:5px;align-items:center;min-height:38px;padding:5px 6px;border:1px solid transparent;border-radius:6px;background:#fff!important;font-size:10px;color:var(--ink)}
.sortie-step:before{display:none!important}.sortie-step span{position:static;left:auto;top:auto;width:auto;height:auto;border:0;box-shadow:none;background:transparent;border-radius:0;display:block}
.sortie-step.fixed-step{grid-template-columns:42px minmax(0,1fr);background:#f5faf7!important;border-color:#e2ece6;cursor:pointer}.sortie-step.fixed-step .sequence-badge{width:38px}
.sortie-step.sortable-item{cursor:grab;border-color:#e4eaee}.sortie-step.sortable-item:active{cursor:grabbing}.sortie-step.sortable-item:hover{border-color:#b8c8d2;background:#f8fbfd!important}.sortie-step.selected{border-color:#1769aa;box-shadow:0 0 0 1px rgba(23,105,170,.12)}
.sortie-step.search{background:#f2f8fc!important}.sortie-step.waypoint{background:#fbfcfd!important}
.drag-grip{font-size:12px!important;color:#93a2ad;user-select:none;text-align:center}.sequence-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:30px!important;height:24px!important;padding:0 4px;background:#e8eef2!important;border-radius:12px!important;font-size:9px!important;font-weight:850!important;color:#2d414f!important}
.sortie-step.search .sequence-badge{background:#1769aa!important;color:#fff!important}.sortie-step.waypoint .sequence-badge{background:#dfeee5!important;color:#27583c!important}.sortie-step.departure .sequence-badge,.sortie-step.destination .sequence-badge{background:#2b7a52!important;color:#fff!important}
.sequence-main{display:flex!important;flex-direction:column;min-width:0}.sequence-main strong{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sequence-main small{font-size:8.8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sortable-item.dragging,.assignment-step.dragging{opacity:.38}.sortable-item.drop-before:before,.assignment-step.drop-before:before{content:"";display:block!important;position:absolute;left:4px;right:4px;top:-3px;height:3px;background:#1769aa;border-radius:3px}.sortable-item.drop-after:after,.assignment-step.drop-after:after{content:"";position:absolute;left:4px;right:4px;bottom:-3px;height:3px;background:#1769aa;border-radius:3px}

.assignment-sequence{display:grid;gap:3px;margin-top:7px}.assignment-step{position:relative;display:grid;grid-template-columns:18px 34px minmax(0,1fr);gap:5px;align-items:center;min-height:31px;padding:4px 5px;background:#fbf8fd;border:1px solid #e7dcec;border-radius:6px;cursor:grab;font-size:9.5px}.assignment-step:hover{border-color:#bda6ca}.assignment-step.selected{border-color:#7c4bb3;box-shadow:0 0 0 1px rgba(124,75,179,.12)}.assignment-step b{font-size:8.8px;color:#6d4b83}.assignment-step .sequence-main{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5f4970}
.handle-isp-selected{background:#4d227d;font-size:7px;min-width:30px;width:auto;padding:0 3px;border-radius:12px}

@media(max-width:1050px){.workspace{grid-template-columns:220px minmax(0,1fr)}.inspector-sidebar{width:min(330px,44vw)}.brand span{display:none}}
@media(max-width:760px){body{overflow:hidden}.workspace{display:block;position:relative}.planner-sidebar{position:absolute;z-index:1200;left:0;top:0;bottom:0;width:min(270px,82vw);box-shadow:6px 0 22px rgba(0,0,0,.18)}.workspace.planner-collapsed .planner-sidebar{transform:translateX(-102%)}.map-pane{height:100%;min-height:0}.inspector-sidebar{left:10px;right:10px;top:64px;bottom:38px;width:auto;max-width:none}.topbar{height:auto;min-height:56px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions #undoBtn,.top-actions #redoBtn{display:none}.statusbar{overflow:auto}.north-arrow{top:12px}}

/* v0.23 — S2sar branding + interaction refinements */
.topbar{
  background:#fff;color:#0d2742;border-bottom:1px solid #ccd7df;
  box-shadow:0 1px 5px rgba(18,40,58,.08);height:60px;
}
.s2-brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;line-height:1}
.s2-wordmark{display:inline-flex;align-items:baseline;white-space:nowrap;font-family:"Arial Narrow","Bahnschrift Condensed","Roboto Condensed","Segoe UI",sans-serif;font-style:italic;font-weight:900;font-stretch:condensed;letter-spacing:-1.15px;line-height:.9;transform:skewX(-3deg);transform-origin:left center}
.s2-wordmark .s2-s,.s2-wordmark .s2-sar{color:#0d2742}.s2-wordmark .s2-2{color:#f17722}
.s2-brand .s2-wordmark{font-size:26px}.brand-subtitle{font-size:10px!important;line-height:1.05;letter-spacing:.075em;color:#5d6d79;opacity:1!important;font-weight:650;margin-left:1px}
.top-actions button{border-color:#b8c5ce;background:#fff;color:#183042}.top-actions button:hover{background:#eef4f7}.top-actions button.primary{background:#e86b2c;border-color:#e86b2c;color:#fff}
.top-actions .add-menu summary{background:#e86b2c;border-color:#e86b2c;color:#fff}

.assignment-card-heading{gap:5px}.assignment-heading-button{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:1;min-width:0;border:0;background:transparent;padding:0;text-align:left}.assignment-heading-button:hover{background:transparent}.assignment-heading-button>span:first-child{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.assignment-chevron{font-size:15px;color:#755289;line-height:1}.assignment-card.collapsed .assignment-details{display:none}.assignment-card.collapsed .assignment-summary{margin-bottom:1px}.assignment-details{display:block}.assignment-empty-hint{padding:7px 5px;font-size:9.5px;color:var(--muted);line-height:1.35;border:1px dashed #d8cce0;border-radius:6px;background:#fdfbfe;margin-top:7px}
.field-help{display:block;margin-top:3px;font-size:8.8px;line-height:1.25;color:var(--muted);font-weight:500}.sortie-crew-setting{border-top:1px solid #edf1f4!important;border-bottom:1px solid #edf1f4!important;padding:8px 0!important;margin:10px 0!important}.setting-scope{font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6f7e88;background:#eef3f6;border-radius:10px;padding:2px 5px;margin-left:4px;vertical-align:1px}

.map-context-menu{width:220px}.context-title{font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#6b7a85;padding:5px 8px 4px;border-bottom:1px solid #e7ecef;margin-bottom:3px}.map-context-menu button.danger-context{color:#8b3625}.map-context-menu button:disabled{opacity:.38;background:transparent}.context-separator{height:1px;background:#e5eaee;margin:4px}

.print-wordmark{font-size:17pt;margin-bottom:.7mm}.print-brand-subtitle{font-size:7.5pt;font-weight:700;color:#4f5e68;letter-spacing:.04em}.print-header .s2-wordmark span{display:inline!important}

@media(max-width:1050px){
  .brand .s2-wordmark span{display:inline!important}.brand .brand-subtitle{display:none!important}
}
@media(max-width:760px){
  .s2-brand .s2-wordmark{font-size:22px}.brand .s2-wordmark span{display:inline!important}.brand .brand-subtitle{display:none!important}
}
.s2-wordmark span{display:inline;opacity:1!important}
.sortie-step.unset-step{background:#fffaf2!important;border-style:dashed;border-color:#d8c7a5;color:#7b6540}.sortie-step.unset-step .sequence-badge{background:#efe7d8!important;color:#735d37!important}.sortie-step.unset-step .sequence-main strong{font-style:italic;font-weight:650}
/* Keep legacy .brand span sizing from shrinking the S2sar letters. */
.s2-wordmark span{font-size:inherit!important;line-height:inherit}

/* v0.24 — drawer affordances, timeline contrast, additional sweep patterns */
.planner-edge-tab{
  display:none;position:absolute;z-index:1320;left:0;top:18px;
  align-items:center;gap:5px;padding:7px 9px 7px 6px;
  border:1px solid #aebdc7;border-left:0;border-radius:0 8px 8px 0;
  background:rgba(255,255,255,.97);color:#173247;font-weight:800;
  box-shadow:2px 2px 10px rgba(15,35,50,.16);cursor:pointer;
}
.planner-edge-tab.visible{display:flex}
.planner-edge-chevron{font-size:19px;line-height:1;color:#1769aa}.planner-edge-label{font-size:10px;letter-spacing:.02em}
.workspace.planner-collapsed .map-pane{grid-column:2}

/* The timeline card is light; old legacy rules coloured every span in a search row blue. */
.sortie-step.search .sequence-main{background:transparent!important;color:#172b3a!important;box-shadow:none!important;border:0!important}
.sortie-step.search .sequence-main strong{color:#10283a!important}
.sortie-step.search .sequence-main small{color:#536977!important;font-weight:700}
.sortie-step.waypoint .sequence-main small,.sortie-step.fixed-step .sequence-main small{color:#536977;font-weight:650}

.handle-spacing{background:#5f5aa8}

.tool-drawer .panel-title{align-items:center;gap:12px}
.tool-drawer .drawer-close{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;font-size:20px;line-height:1;
  color:#5d6d79;font-weight:500;flex:0 0 auto;
}
.tool-drawer .panel-title:hover .drawer-close{background:#eef3f6;color:#173247}

@media(max-width:760px){
  .planner-edge-tab{top:12px;padding:8px 9px 8px 6px}
  .planner-edge-label{font-size:9px}
}

/* v0.25 — compact branding bar + SAR sweep-pattern refinements */
.topbar{height:46px;min-height:46px;padding:0 10px;gap:10px}
.s2-brand{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:9px;white-space:nowrap;min-width:0}
.s2-brand .s2-wordmark{font-size:24px;flex:0 0 auto}
.s2-brand .brand-subtitle{display:inline!important;font-size:10px!important;letter-spacing:.055em;margin:0;color:#61717d;font-weight:700;opacity:1!important}
.s2-brand .app-version{display:inline!important;font-size:9px!important;letter-spacing:.03em;color:#81909a;background:#eef3f6;border:1px solid #d9e2e7;border-radius:10px;padding:2px 6px;opacity:1!important;font-weight:800}
.top-actions{gap:5px;align-items:center}.top-actions button,.top-actions summary{padding:5px 7px;font-size:10.5px}
.tool-drawer{top:52px;max-height:calc(100vh - 94px)}


@media(max-width:1050px){.s2-brand .brand-subtitle{display:none!important}.s2-brand .app-version{display:inline!important}}
@media(max-width:760px){.topbar{height:auto;min-height:46px;padding:5px 7px}.s2-brand .s2-wordmark{font-size:21px}.s2-brand .brand-subtitle{display:none!important}.s2-brand .app-version{display:inline!important}.tool-drawer{top:52px}}


/* Topo-map control clearance and assignment collapse */
.planner-edge-tab{top:84px}
@media(max-width:760px){.planner-edge-tab{top:84px}}
.assignment-card.collapsed .assignment-summary{display:none}
.assignment-card.collapsed .assignment-details{display:none}
.assignment-card.collapsed{padding-bottom:7px}
.drawer-section-title{font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#63737e;margin:3px 0 5px}
.basemap-selector label{font-size:11px!important;margin:0!important}
/* v0.32 — consolidated operational UI: normal type, less chrome, fewer permanent explanations. */
:root{
  --ui-surface:#f8fbff;
  --ui-surface-blue:#f1f8ff;
  --ui-panel:#eef7fd;
  --ui-line:#d6e4f2;
  --ui-line-strong:#b9cfe0;
  --ui-navy:#0f2d5b;
  --ui-slate:#475569;
  --ui-blue:#1e73e8;
  --ui-blue-dark:#0b6fa4;
  --ui-green:#16a34a;
  --ui-green-dark:#12843d;
  --ui-danger:#983b2d;
}

/* Small global utility menu for infrequent sortie-level actions. */
.utility-menu{position:relative;align-self:center}
.utility-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #b8c8d2;border-radius:6px;background:#fff;color:var(--ui-navy);font-size:18px;font-weight:800;cursor:pointer}
.utility-menu>summary::-webkit-details-marker{display:none}
.utility-menu-popover{position:absolute;right:0;top:40px;z-index:1600;width:155px;padding:6px;background:#fff;border:1px solid var(--ui-line-strong);border-radius:7px;box-shadow:var(--shadow);display:grid;gap:4px}
.utility-menu-popover button{text-align:left;width:100%}

/* Planner: keep the route/order itself prominent and remove redundant summary chrome. */
.planner-sidebar{background:#eaf4fb}
.planner-card{background:var(--ui-surface);border-color:var(--ui-line-strong)}
.timeline-card{background:#f5faff;border-color:var(--ui-line-strong)}
.timeline-help{margin:3px 0 8px;color:var(--ui-slate);font-size:11px;line-height:1.3}
.sortie-sequence{display:grid;gap:6px}
.sortie-step,
.sortie-step.fixed-step,
.sortie-step.departure,
.sortie-step.destination,
.sortie-step.waypoint,
.sortie-step.search{
  position:relative;display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;
  min-height:48px;padding:7px 9px!important;border:1px solid var(--ui-line)!important;border-radius:8px;
  background:var(--ui-surface-blue)!important;color:var(--ui-navy)!important;box-shadow:none!important;
}
.sortie-step:before{display:none!important}
.sortie-step .sequence-badge,
.sortie-step .drag-grip{
  position:static!important;left:auto!important;top:auto!important;width:auto!important;height:30px!important;min-width:48px;
  display:inline-flex!important;align-items:center;justify-content:center;border:0!important;border-radius:16px!important;box-shadow:none!important;
  padding:0 9px;background:#e5edf5;color:var(--ui-navy);font-size:11px;font-weight:850;
}
.sortie-step .drag-grip{min-width:28px;width:28px!important;padding:0;border-radius:6px!important;background:transparent;color:#255d86;font-size:18px}
.sortie-step.fixed-step .sequence-badge,
.sortie-step.departure .sequence-badge,
.sortie-step.destination .sequence-badge,
.sortie-step.departure.unset-step .sequence-badge,
.sortie-step.destination.unset-step .sequence-badge{background:var(--ui-green)!important;color:#fff!important;border:1px solid var(--ui-green-dark)!important;min-width:68px!important}
.sortie-step.search .sequence-badge{background:var(--ui-blue)!important;color:#fff!important;min-width:46px!important}
.sortie-step.search{background:#f8fbff!important;border-color:#b7cfe3!important}
.sortie-step.search.selected{border-color:var(--ui-blue)!important;box-shadow:0 0 0 1px rgba(30,115,232,.12)!important}
.sortie-step.departure.unset-step,.sortie-step.destination.unset-step{border-style:dashed!important;background:#f7fbff!important}
.sortie-step .sequence-main,
.sortie-step.fixed-step .sequence-main,
.sortie-step.departure .sequence-main,
.sortie-step.destination .sequence-main{
  position:static!important;left:auto!important;top:auto!important;width:auto!important;height:auto!important;min-width:0;
  display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center!important;
  padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:var(--ui-navy)!important;
}
.sortie-step .sequence-main strong{max-width:100%;color:var(--ui-navy)!important;font-size:12px!important;font-weight:800;line-height:1.18;white-space:normal;overflow-wrap:anywhere}
.sortie-step .sequence-main small{max-width:100%;color:var(--ui-slate)!important;font-size:10.5px!important;font-weight:550;line-height:1.25;white-space:normal!important;overflow-wrap:anywhere;opacity:1!important;margin-top:2px}

/* One right-side workspace. The panel itself is the surface; no panel-in-panel treatment. */
.inspector-sidebar,.tool-drawer{
  right:12px!important;top:54px!important;bottom:40px!important;width:min(430px,48vw)!important;max-width:calc(100vw - 28px)!important;
  background:var(--ui-panel)!important;border:1px solid var(--ui-line-strong)!important;border-radius:10px!important;
  box-shadow:0 12px 34px rgba(15,48,72,.22)!important;color:var(--ui-navy);
}
.inspector-sidebar{padding:0!important;overflow:auto}
.inspector-sidebar>.sidebar-heading{
  position:sticky;top:0;z-index:4;display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;
  min-height:45px;margin:0!important;padding:7px 10px!important;background:#e7f2fa!important;border-bottom:1px solid var(--ui-line-strong)!important;
}
.inspector-sidebar>.sidebar-heading strong{font-size:14px!important;letter-spacing:.02em;color:var(--ui-navy)}
.inspector-heading-row .icon-button{width:34px;height:34px;padding:0;font-size:20px}
.inspector-surface,.search-edit-surface{padding:11px 12px 12px;background:var(--ui-surface);border:0;border-radius:0;box-shadow:none}
#searchInspector{background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important}

/* Readability stays normal; density comes from grouping, not tiny type. */
.inspector-sidebar label,.inspector-sidebar legend,.tool-drawer label,.tool-drawer legend{font-size:12px!important;line-height:1.2;font-weight:700;color:#29465f}
.inspector-sidebar input[type=text],.inspector-sidebar input[type=number],.inspector-sidebar select,
.tool-drawer input[type=text],.tool-drawer input[type=number],.tool-drawer select{
  width:100%;min-height:35px;padding:6px 8px;border:1px solid #b9ccda;border-radius:6px;background:#fff;color:#102d48;font-size:13px;font-weight:600;
}
.inspector-sidebar .unit-input,.tool-drawer .unit-input{min-height:35px;border-color:#b9ccda;border-radius:6px}
.inspector-sidebar .unit-input input,.tool-drawer .unit-input input{min-height:33px;border:0!important}
.inspector-sidebar .unit-input span,.tool-drawer .unit-input span{padding:0 7px;color:#4e6578;font-size:11px;font-weight:700;white-space:nowrap}
.setting-scope{font-size:9px;font-weight:750;color:#587083;background:#e8f1f7;border-radius:10px;padding:2px 5px;margin-left:3px}

.compact-edit-grid{display:grid;gap:8px 10px;align-items:end}
.compact-edit-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.pattern-location-grid{grid-template-columns:minmax(145px,.85fr) minmax(0,1.45fr);padding-bottom:9px;border-bottom:1px solid #dde9f1}
.geometry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 9px;align-items:end;padding:9px 0;border-bottom:1px solid #dde9f1}
.geometry-grid label,.compact-edit-grid label{position:relative;margin:0!important;min-width:0}
.turn-row{display:grid;grid-template-columns:minmax(145px,1fr) 86px minmax(120px,1fr);gap:9px;align-items:end;padding:9px 0;border-bottom:1px solid #dde9f1}
.turn-row fieldset{border:0;padding:0;margin:0;min-width:0}
.turn-row legend{margin:0 0 4px}
.compact-segmented{min-height:35px}
.compact-segmented label{margin:0!important;padding:7px 6px!important;font-size:12px!important;font-weight:650!important}

/* Context is available on hover/focus without permanently consuming vertical space. */
.compact-info:empty{display:none}
.compact-info{margin:8px 0 0;color:var(--ui-slate);font-size:11px;line-height:1.35}
.turn-guidance:empty{display:none}
.turn-guidance{margin:8px 0 0;padding:7px 8px;border-radius:6px;font-size:11px;line-height:1.35;background:#fff3df;color:#744600;border:1px solid #dfbf88}

/* Overrides and Advanced are quiet disclosures; details only appear when asked for. */
.quiet-details{border-top:1px solid #dde9f1;margin:0;padding:0}
.quiet-details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:37px;padding:7px 1px;cursor:pointer;color:#36566f;font-size:12px;font-weight:800}
.quiet-details>summary::-webkit-details-marker{display:none}
.quiet-details>summary:after{content:'›';font-size:18px;font-weight:500;color:#6d8292;transform:rotate(0deg);transition:transform .12s ease}
.quiet-details[open]>summary:after{transform:rotate(90deg)}
.override-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 9px;padding:2px 0 10px}
.override-grid label{margin:0!important}
.override-check{grid-column:1/-1;font-weight:600!important}
.edit-advanced{padding-bottom:2px}
.advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:2px 0 8px}
.advanced-grid button{font-size:11px;padding:7px 8px}
.edit-advanced fieldset{border:0;padding:0;margin:4px 0 8px}
.edit-advanced #editHelp{margin:4px 0 8px}

.track-crawl-source{margin:0;padding:9px 0;border:0;border-bottom:1px solid #dde9f1;border-radius:0;background:transparent}
.track-crawl-source .compact-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.inline-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.inline-actions button{font-size:11px;padding:7px 9px}
.bottom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:10px;margin-top:3px;border-top:1px solid #dde9f1}
.bottom-actions button{min-height:36px;font-size:11.5px;font-weight:700}
.assignment-actions{grid-template-columns:1fr 1fr}
.danger-lite{width:auto!important;border-color:#d7b0a7!important;color:var(--ui-danger)!important;background:#fff9f7!important}

/* Assignment / aircraft-route editors use the same flat grammar. */
.route-advanced{margin-top:10px}
.route-advanced .check{margin:5px 0!important}
.route-advanced .subtle{margin:4px 0 8px}
#routePointInspector .danger-lite{margin-top:8px}

/* Settings: two compact groups, with custom values only when Custom is selected. */
.tool-drawer.panel{margin:0;overflow:auto}
.tool-drawer .panel-title{position:sticky;top:0;z-index:3;min-height:45px;background:#e7f2fa!important;color:var(--ui-navy)!important;border-bottom:1px solid var(--ui-line-strong)!important;font-size:14px;padding:8px 10px}
.tool-drawer.panel .panel-body{display:block;padding:10px 12px 12px}
.settings-group{margin:0;padding:0 0 11px;background:transparent!important;border:0!important;border-bottom:1px solid #dce8f0;border-radius:0!important}
.settings-group+ .settings-group{padding-top:10px}
.settings-group:last-child{border-bottom:0;padding-bottom:0}
.drawer-section-title{font-size:11px!important;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#526b7f!important;margin:0 0 7px!important}
.settings-group label{margin:5px 0!important}
.settings-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.settings-toggle{margin-top:9px!important;padding-top:8px;border-top:1px solid #e2ebf1}
.compact-fieldset{margin:0 0 9px!important;padding:0!important;border:0!important}
.compact-fieldset legend{margin-bottom:5px!important}

/* Layers are presentation only; developer-ish geometry layers live under Advanced. */
.layers-body .check{margin:7px 0!important;font-size:12px!important;font-weight:600!important}
.basemap-selector label{font-size:12px!important}
.layer-advanced{margin-top:7px}
.layer-advanced .check{margin:6px 0!important}

/* ForeFlight: actions first, diagnostics only on demand. */
.drawer-primary-action{width:100%;min-height:38px;font-weight:800;border-color:#8eb5d2;background:#edf7fd;color:#0e507a}
.export-copy-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.export-copy-actions button{font-size:11px}
.export-details{margin-top:9px}
.export-details .validation{margin-top:2px}

/* Status bar shows live sortie facts, not settings duplicated elsewhere. */
.statusbar{height:30px;background:#173247;color:#fff;font-size:11px;font-weight:650;justify-content:flex-start}
.statusbar span{padding:0 10px;border-right:1px solid rgba(255,255,255,.16);text-transform:none}
.statusbar span:last-of-type{border-right:0}

/* Ensure compatibility-only runtime hooks never leak into the visual UI. */

@media(max-width:1180px){
  .inspector-sidebar,.tool-drawer{width:min(410px,48vw)!important}
  .geometry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .inspector-sidebar,.tool-drawer{left:8px!important;right:8px!important;top:58px!important;bottom:36px!important;width:auto!important;max-width:none!important}
  .pattern-location-grid,.compact-edit-grid.two,.track-crawl-source .compact-edit-grid{grid-template-columns:1fr}
  .geometry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .turn-row{grid-template-columns:1fr 90px}
  .turn-row #squareTurnModeFieldWrap{grid-column:1/-1}
  .override-grid{grid-template-columns:1fr}
  .assignment-actions{grid-template-columns:1fr 1fr}
}

.coordinate-entry-help{display:block;margin-top:4px;color:#60758a;font-size:10.5px;font-weight:500;line-height:1.28}
.coordinate-help{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:3px;border:1px solid #a9bfce;border-radius:50%;color:#45677f;font-size:10px;font-weight:800;line-height:1;vertical-align:1px;cursor:help;background:#f6fbfe}
#searchSpeedFieldWrap select{margin-bottom:5px}
.sortie-step .sequence-main small:empty{display:none}

/* Flight Order draggable rows have a separate grip + badge + content column. */
.sortie-step.search,.sortie-step.waypoint{grid-template-columns:28px auto minmax(0,1fr)}

/* v0.33 — compact operational refinements */
.top-actions{align-items:center!important}
.top-actions>button,.add-menu>summary.primary-action{
  height:34px!important;min-height:34px!important;box-sizing:border-box!important;
  display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;
}
.add-menu>summary.primary-action{padding-top:0!important;padding-bottom:0!important}
.track-crawl-range-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 36px;gap:7px;align-items:end;margin-top:8px;
}
.track-crawl-range-row label{margin:0!important;min-width:0}
.swap-button{width:36px!important;height:35px!important;min-height:35px!important;padding:0!important;font-size:18px!important;align-self:end}
.compact-secondary-action{margin-top:6px!important}
.free-edit-toggle{display:inline-flex!important;align-items:center;gap:6px;margin:5px 0 7px!important;width:auto!important;min-height:30px}
.turn-row>fieldset,.turn-row>label{margin:0!important;align-self:end}
/* Hover help must dismiss when the pointer leaves; keyboard focus no longer pins a large popup open. */
.entry-corner-marker{
  width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);
  display:flex;align-items:center;justify-content:center;background:#eff6fb;color:#17405f;font-size:10px;font-weight:900;
}
.entry-corner-marker.selected{background:#1769aa;color:#fff}
.sortie-step.fixed-step[draggable="true"]{cursor:grab}
.sortie-step.drop-target{outline:2px solid #1769aa;outline-offset:1px}
@media(max-width:760px){
  .track-crawl-range-row{grid-template-columns:repeat(3,minmax(0,1fr)) 34px}
}
/* Ordinary W# points are neutral/blue-gray; green remains reserved for aircraft START/END roles. */
.sortie-step.waypoint .sequence-badge{background:#e6eff5!important;color:#31566f!important;border:1px solid #c8dae6!important}

/* Current compact operational UI. */
.pattern-actions{display:flex;gap:7px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #dde9f1}
.pattern-actions button{min-height:34px;font-size:11.5px;font-weight:700;padding:6px 9px}
.compact-advanced{grid-template-columns:minmax(130px,1fr) minmax(120px,1fr);align-items:end}
.route-point-location{margin:0!important}
.route-point-actions{grid-template-columns:1fr;margin-top:10px}
.route-point-actions button{justify-self:start;min-width:110px}
.sortie-step.fixed-step{cursor:pointer}
.sortie-step.fixed-step:hover{border-color:#8eb9d5!important;background:#f1f8fd!important}
/* Native title tooltips replace the old always-visible spacing popup. */
#trackSpacingFieldWrap{position:relative}
/* START/END are roles; ordinary route waypoints remain neutral. */
.sortie-step.waypoint .sequence-badge{background:#e6eff5!important;color:#31566f!important;border:1px solid #c8dae6!important}
@media(max-width:760px){.pattern-actions{gap:5px}.pattern-actions button{flex:1 1 auto}.compact-advanced{grid-template-columns:1fr}}

.handle-free-dot{width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #1769aa;box-shadow:0 1px 4px rgba(0,0,0,.28)}

/* v0.39: preserve copyright notice without displacing primary status fields. */
.statusbar .copyright-status{margin-left:auto;font-size:10px;font-weight:500;opacity:.78;border-right:0;padding-left:12px}

/* v0.40 — Free Edit workflow and compact contextual help */
.free-edit-workflow{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;border-top:1px solid #dde9f1;padding:6px 0}
.free-edit-workflow .free-edit-toggle{margin:0!important;min-height:31px}
.free-edit-workflow #freeActions{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.free-edit-workflow #freeActions.hidden{display:none!important}
.free-edit-workflow #editHelp{flex-basis:100%;margin:0}
.track-crawl-range-row.no-entry{grid-template-columns:repeat(2,minmax(0,1fr)) 36px}
.coordinate-help-details{margin:3px 0 1px;font-size:11px;font-weight:500}
.coordinate-help-details>summary{display:inline-block;cursor:pointer;color:#365f80;font-size:11px;font-weight:700;padding:2px 3px 2px 0}
.coordinate-help-details>summary:hover{text-decoration:underline}
.coordinate-help-details>.coordinate-entry-help{margin:2px 0 4px}
.map-legend{position:absolute;z-index:605;bottom:56px;left:12px;width:max-content;max-width:min(295px,calc(100% - 24px));background:rgba(255,255,255,.95);color:#213748;border:1px solid #bbcdd9;border-radius:7px;box-shadow:0 2px 8px rgba(0,0,0,.13);font-size:11px}
.map-legend>summary{cursor:pointer;font-weight:800;padding:7px 11px;list-style-position:inside}
.map-legend-content{padding:1px 12px 9px;display:grid;gap:7px}
.map-legend-content>div{display:flex;align-items:center;gap:9px}
.map-legend-content small{color:#526678;max-width:255px;line-height:1.35}
.map-key-line{display:inline-block;width:27px;flex:none;border-top:3px solid #1769aa}
.map-key-turn{border-top-style:dotted}
.map-key-transit{border-top:3px dashed #2b5f43}
.map-key-route{border-top:3px dashed #7c4bb3}
.map-key-patch{display:inline-block;width:24px;height:11px;flex:none;border:1px solid #6ea6bf;background:rgba(110,166,191,.25)}
@media(max-width:760px){.track-crawl-range-row.no-entry{grid-template-columns:repeat(2,minmax(0,1fr)) 34px}.map-legend{bottom:45px;left:8px}}

/* v0.41: align location selectors and keep coordinate hints unobtrusive. */
.pattern-location-grid{align-items:end}
.location-entry-field{min-width:0;position:relative;display:flex;flex-direction:column;gap:5px}
.location-label-row{display:flex;align-items:center;gap:5px;min-height:15px}
.location-label-row label{margin:0!important;font-size:12px!important;font-weight:700;line-height:1.2}
.coordinate-help-details{position:relative;margin:0;z-index:5;display:inline-flex}
.coordinate-help-details>summary{list-style:none;width:15px;height:15px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #9bb2c5;border-radius:50%;font-size:10px;line-height:1;background:#fff;color:#31536f;font-weight:800;cursor:pointer}
.coordinate-help-details>summary::-webkit-details-marker{display:none}
.coordinate-help-details[open]>summary{background:#dae9f5}
.coordinate-help-details .coordinate-entry-help{position:absolute;z-index:950;top:23px;right:-7px;width:min(275px,74vw);padding:9px 10px;background:white;border:1px solid #a4bbcf;border-radius:6px;box-shadow:0 4px 16px #243c5733;font-weight:500;line-height:1.45;color:#25435b}
.overlap-cluster-wrap{background:transparent;border:0}
.overlap-cluster{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border:2px solid white;border-radius:50%;background:#185b95;color:white;box-shadow:0 1px 6px #122b4380;font-weight:850;font-size:13px;cursor:pointer}
.overlap-cluster:hover{background:#0b426f}

/* v0.42+ — optional CSAD reference areas and distance-based quarter reference marks. */
.csad-layer-hint{font-size:10px;color:#587184;line-height:1.35;margin:-2px 0 7px 23px}
.map-key-csad1{background:rgba(226,173,81,.25);border:2px solid #ae7126}
.map-key-csad2{background:rgba(100,152,190,.17);border:2px dashed #568bb1}
.layers-body .check.csad-quarter-check{margin-left:22px!important;color:#24485d}
.map-key-csad-quarter{border-top:2px dashed #6d4c9d}
.csad-quarter-wrap{pointer-events:none!important}
.csad-quarter-label{display:inline-block;min-width:27px;padding:2px 4px;text-align:center;background:rgba(255,255,255,.93);color:#4f347d;border:1.5px solid #6d4c9d;border-radius:5px;font-size:11px;font-weight:800;line-height:15px;box-shadow:0 1px 3px rgba(0,0,0,.18);white-space:nowrap;pointer-events:none}
@media print{.csad-quarter-label{box-shadow:none;font-size:10px}}

/* v0.45: GoSAR-style code saving/loading. Native dialog over map. */
.cloud-plan-dialog{box-sizing:border-box;width:min(430px,calc(100vw - 24px));max-height:min(92vh,750px);overflow:auto;padding:18px;border:1px solid #a9bfce;border-radius:11px;background:#fff;color:#213547;box-shadow:0 16px 65px #102c4a70;z-index:5000}
.cloud-plan-dialog::backdrop{background:rgba(8,25,45,.52)}
.cloud-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.cloud-dialog-header h2{font-size:17px;font-weight:800;margin:0;color:#173950}
.cloud-dialog-intro{font-size:13px;line-height:1.45;color:#435e70;margin:8px 0 14px}
.cloud-main-action{display:block;width:100%;min-height:44px;font-weight:800;font-size:14px!important;margin-top:10px}
.cloud-dialog-divider{height:1px;background:#d9e3eb;margin:16px 0 12px}
.cloud-code-label{font-size:10px;letter-spacing:.1em;font-weight:850;color:#446273;margin-top:4px}
.cloud-saved-result{margin-top:14px;padding:13px;border:1px solid #90b5a3;border-radius:9px;background:#f0f8f3;text-align:center}
.cloud-saved-result p{font-size:11px;color:#466459;line-height:1.4;margin:9px 2px 0}
.cloud-code-display{font-size:29px;font-weight:900;letter-spacing:.16em;color:#17476b;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.cloud-code-input-label{display:block;font-size:12px;font-weight:800;margin:12px 0 5px;color:#263e51}
#cloudLoadCode{box-sizing:border-box;width:100%;height:50px;border:1px solid #91a9bc;border-radius:7px;background:#fff;color:#163a58;font-size:26px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;text-align:center;padding:6px;outline-offset:2px}
.cloud-operation-status{font-size:12px;line-height:1.4;color:#31556f;min-height:18px;margin:8px 0}
.cloud-loaded-result{margin-top:10px;padding:12px;border:1px solid #90b5a3;background:#f0f8f3;border-radius:8px;font-size:12px;line-height:1.5}
.cloud-loaded-result strong{display:block;font-size:14px;color:#24543b}
.cloud-code-warning{font-size:10px;line-height:1.4;color:#657480;margin:18px 0 0}
@media(max-width:650px){.cloud-plan-dialog{padding:14px}.cloud-code-display{font-size:26px;letter-spacing:.12em}}
@media print{.cloud-plan-dialog{display:none!important}}

/* v0.47 - scan-to-load QR, generated locally with four-module quiet zone. */
.cloud-qr{width:fit-content;max-width:100%;margin:12px auto 6px;padding:10px;background:#fff;border:1px solid #d8e3e9;border-radius:8px;line-height:0}
.cloud-qr svg{display:block;width:min(220px,65vw);height:auto;background:#fff;shape-rendering:crispEdges}
.cloud-qr-caption{font-size:12px!important;font-weight:700;line-height:1.4}
.cloud-previous-warning{color:#98530e!important;font-weight:700}
.cloud-secondary-action{width:100%;margin-top:8px;min-height:42px}
@media(max-height:650px){.cloud-qr svg{width:min(160px,55vw)}}
