.route-heading-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:flex-end; }
.route-heading-actions svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; }
.route-dialog { width:min(1260px,calc(100% - 40px)); max-height:92dvh; padding:0; border:0; border-radius:22px; background:#fff; color:#16191d; box-shadow:0 24px 100px #0004; }
.route-dialog::backdrop { background:#11182788; backdrop-filter:blur(3px); }
.route-dialog *, .route-dialog *::before, .route-dialog *::after { box-sizing:border-box; }
.route-dialog [hidden] { display:none !important; }
.route-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:28px 32px 22px; border-bottom:1px solid #e6e8ec; }
.route-header h2 { margin:4px 0 8px; font-size:30px; line-height:1.15; letter-spacing:-.8px; }
.route-header p:not(.eyebrow) { margin:0; color:#69707b; font-size:15px; }
.route-close { border:0; border-radius:50%; width:44px; height:44px; background:#f1f2f4; color:#6a7079; font-size:28px; cursor:pointer; flex-shrink:0; }
.route-body { padding:24px 32px 32px; }
.route-api { border:1px solid #dce3ea; border-radius:12px; background:#f5f8fa; margin-bottom:14px; }
.route-api summary { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; gap:16px; font-weight:700; cursor:pointer; font-size:15px; }
.route-api summary::after { content:'⌄'; }
.route-api #route-connection-state { color:#61737e; font-size:13px; margin-left:auto; font-weight:500; }
.route-api-body { padding:0 18px 18px; font-size:14px; line-height:1.5; }
.route-api-body p { margin:0 0 10px; }
.route-api-body code { display:block; padding:9px 12px; background:#fff; border:1px solid #dde3e8; border-radius:8px; overflow-wrap:anywhere; margin-bottom:12px; font-size:13px; }
.route-dialog label { display:block; font-size:14px; font-weight:650; margin:0 0 7px; }
.route-dialog input:not([type=checkbox]), .route-dialog select, .route-dialog textarea { width:100%; min-width:0; min-height:44px; border:1px solid #d6dbe2; border-radius:9px; padding:11px 12px; font-family:inherit; font-size:15px; color:#24282f; background:#fff; }
.route-dialog input:focus-visible, .route-dialog select:focus-visible, .route-dialog textarea:focus-visible, .route-dialog button:focus-visible, .route-dialog a:focus-visible { outline:2px solid #b71125; outline-offset:3px; }
.route-dialog textarea { resize:vertical; line-height:1.55; }
.route-dialog input::placeholder, .route-dialog textarea::placeholder { color:#88909b; font-weight:400; }
.route-key-row { display:flex; gap:10px; }
.route-key-row input { flex:1; }
.route-key-row button { flex-shrink:0; }
.route-dialog small { font-size:13px; color:#737b87; }
#route-key-note { display:block; margin-top:8px; }
.route-status { min-height:24px; margin:0 0 20px; font-size:14px; color:#5a626e; }
.route-dialog .route-error { color:#b42332; }
.route-workspace { display:grid; grid-template-columns:minmax(280px, .9fr) minmax(0,1.5fr); gap:28px; }
.route-dialog h3 { font-size:19px; letter-spacing:-.3px; margin:0 0 20px; display:flex; gap:10px; align-items:center; }
.route-step { display:inline-flex; align-items:center; justify-content:center; background:#fbecef; color:#b61025; width:28px; height:28px; border-radius:50%; font-size:14px; }
.route-input-panel input:not([type=checkbox]), .route-input-panel select { margin-bottom:16px; }
.route-label-row { display:flex; justify-content:space-between; gap:10px; }
.route-label-row span { color:#7b828c; font-size:13px; }
.route-label-row strong { font-size:14px; font-weight:650; }
.route-entry-tabs { display:flex; gap:4px; padding:4px; background:#f0f2f5; border-radius:9px; margin:10px 0 14px; }
.route-entry-tabs button { flex:1; border:0; background:none; color:#646c77; font-family:inherit; font-weight:600; font-size:14px; padding:9px 6px; border-radius:6px; cursor:pointer; }
.route-entry-tabs button[aria-pressed=true] { background:#fff; color:#1c242b; box-shadow:0 1px 4px #0001; }
.route-stop-editor-row { border:1px solid #dfe3e8; border-radius:10px; padding:12px; margin-bottom:12px; }
.route-stop-row-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; font-size:14px; }
.route-remove-stop { border:0; background:none; color:#9b182a; padding:6px; font-size:13px; cursor:pointer; }
.route-dialog .route-order-reference { font-size:13px; margin:12px 0 0; }
.route-dialog .route-order-reference input { margin:6px 0 0; min-height:38px; padding:8px 10px; font-size:14px; }
.route-order-reference small { margin-left:5px; font-weight:400; }
.route-address-field { position:relative; min-width:0; margin-bottom:16px; }
.shipping-address-field { margin-bottom:0; font-weight:400; }
.shipping-address-field .route-suggestions { top:100%; max-height:280px; overflow-y:auto; }
.route-stop-editor-row .route-address-field { margin-bottom:0; }
.route-dialog .route-address-field input { margin-bottom:0; }
.route-autocomplete-hint { display:block; font-size:12px; line-height:1.4; font-weight:400; margin-top:5px; color:#737b87; }
.route-autocomplete-hint:empty { display:none; }
.route-suggestions { position:absolute; z-index:50; top:46px; left:0; right:0; border:1px solid #d6dce3; background:#fff; border-radius:9px; box-shadow:0 8px 24px #14233625; overflow:hidden; }
.route-suggestions button { display:block; width:100%; min-height:48px; border:0; border-bottom:1px solid #eef0f3; padding:11px 13px; background:#fff; color:#252c33; text-align:left; cursor:pointer; font-family:inherit; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.route-suggestions button:hover, .route-suggestions button.is-active { background:#f2f6f9; }
.route-google-attribution { padding:8px 12px; color:#5e5e5e; text-align:right; font-family:Roboto,Arial,sans-serif; font-size:12px; font-weight:400; font-style:normal; letter-spacing:normal; white-space:nowrap; }
.route-muted { color:#717986; font-size:13px; line-height:1.5; margin:8px 0 12px; }
.route-text-button { color:#a61124; border:0; padding:0; background:none; cursor:pointer; font-size:13px; text-decoration:underline; text-underline-offset:3px; margin-bottom:20px; }
.route-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.route-options:has([hidden]) { grid-template-columns:1fr; }
.route-dialog .route-checkbox { display:flex; align-items:center; gap:9px; font-size:14px; line-height:1.4; font-weight:500; }
.route-checkbox input { width:17px; height:17px; flex-shrink:0; accent-color:#c91026; margin:0; }
.route-wide { width:100%; justify-content:center; }
.route-map-panel { min-width:0; display:flex; flex-direction:column; align-self:start; position:sticky; top:18px; }
#route-map { height:520px; min-height:480px; width:100%; border-radius:14px; overflow:hidden; border:1px solid #e0e5e9; background:#f3f6f7; }
.route-map-empty { height:100%; min-height:480px; padding:30px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; color:#79868d; }
.route-map-empty svg { width:64px; height:64px; fill:none; stroke:#a2adb3; stroke-width:2; margin-bottom:24px; }
.route-map-empty h3 { font-size:20px; justify-content:center; margin:0 0 10px; color:#53626c; }
.route-map-empty p { font-size:14px; line-height:1.5; max-width:280px; margin:0; }
.route-map-note { color:#717986; font-size:13px; line-height:1.5; margin:10px 0 0; }
.route-map-pin { background:#c91026; color:white; border:2px solid white; box-shadow:0 2px 6px #0004; min-width:32px; height:32px; border-radius:18px; display:flex; align-items:center; justify-content:center; padding:3px 6px; font:bold 13px Arial,sans-serif; }
.route-map-pin-terminal { background:#202d38; min-width:36px; }
.route-review, .route-result { margin-top:28px; padding-top:25px; border-top:1px solid #e2e6eb; }
.route-section-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.route-section-heading h3 { margin:0; }
.route-section-heading > span { font-size:13px; color:#717986; }
.route-location { display:grid; grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr); gap:18px; border:1px solid #e3e7eb; border-radius:10px; padding:14px 16px; margin-bottom:10px; }
.route-location strong { font-size:14px; }
.route-location p { margin:6px 0; }
.route-location-warning { background:#fffcf4; border-color:#eee3c4; }
.route-location select { font-size:14px; }
.route-warning { color:#967019; font-size:13px; line-height:1.5; }
.route-match-ok { color:#22724f; font-size:12px; display:block; margin-top:6px; }
.route-review-actions { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:10px; }
.route-calculation-status { margin-top:14px; padding:12px 16px; border:1px solid #dce3ea; border-radius:9px; background:#f5f8fa; font-size:14px; line-height:1.5; }
.route-calculation-status.route-error { background:#fff5f5; border-color:#edc8ce; }
.route-calculation-error { margin-top:10px; color:#717986; font-size:13px; }
.route-calculation-error summary { cursor:pointer; }
.route-calculation-error p { overflow-wrap:anywhere; white-space:pre-wrap; }
.route-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:20px; border-radius:12px; background:#f5f7f9; }
.route-summary div { display:flex; flex-direction:column; gap:8px; }
.route-summary span { font-size:13px; color:#747c87; }
.route-summary strong { font-size:21px; font-weight:700; }
.route-toll-summary { margin-top:16px; }
.route-toll-summary p { margin:8px 0 0; font-size:14px; line-height:1.5; }
.route-toll-badge { display:inline-block; padding:5px 9px; border-radius:7px; font-size:12px; line-height:1.5; font-weight:600; }
.route-toll-clear { color:#176345; background:#eaf5ef; }
.route-toll-tolls { color:#8a4b14; background:#fff1df; }
.route-toll-unknown { color:#58616b; background:#eef0f3; }
.route-leg-toll { margin-top:7px; }
#route-stop-list { list-style:none; padding:0; margin:18px 0; }
#route-stop-list li { display:flex; align-items:center; gap:14px; padding:17px 0; border-top:1px solid #e7eaee; }
#route-stop-list li > div { flex:1; min-width:0; }
#route-stop-list li strong { font-size:15px; }
#route-stop-list li p { font-size:14px; margin:5px 0; overflow-wrap:anywhere; }
#route-stop-list li a { font-size:13px; white-space:nowrap; flex-shrink:0; }
.route-stop-number { width:36px; height:36px; border-radius:50%; background:#fbecef; color:#b61025; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; flex-shrink:0; }
.route-terminal { font-size:11px; background:#edf0f3; color:#53616f; }
.route-sr-only { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); overflow:hidden; }
.route-dialog button:disabled { opacity:.5; cursor:not-allowed; }
@media(max-width:800px) {
  .route-workspace { grid-template-columns:1fr; gap:22px; }
  .route-map-panel { position:static; }
  #route-map { height:330px; }
  #route-map, .route-map-empty { min-height:330px; }
  .route-summary { grid-template-columns:1fr 1fr; gap:22px; }
  .route-heading-actions { justify-content:flex-start; }
}
@media(max-width:540px) {
  #schedule-view > .page-heading { flex-direction:column; gap:16px; }
  .route-dialog { width:calc(100% - 16px); max-height:96dvh; border-radius:15px; }
  .route-header { padding:22px 18px 18px; gap:12px; }
  .route-header h2 { font-size:25px; }
  .route-body { padding:18px; }
  .route-header p:not(.eyebrow) { font-size:14px; }
  .route-key-row, .route-review-actions { flex-direction:column; align-items:stretch; }
  .route-location { grid-template-columns:1fr; gap:8px; }
  .route-section-heading { flex-wrap:wrap; }
  .route-summary { padding:16px; }
  .route-summary strong { font-size:18px; }
  #route-stop-list li { flex-wrap:wrap; gap:10px; }
  #route-stop-list li a { margin-left:46px; }
  .route-options { grid-template-columns:1fr; }
  .route-heading-actions { gap:8px; width:100%; }
  .route-heading-actions .button { flex:1 1 140px; min-width:0; font-size:14px; padding:11px 12px; }
}
.route-schedule-selection { margin-bottom:24px; }
.route-selection-fields { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
#route-orders-state { margin:12px 0;color:#5a626e;font-size:14px; }
#route-order-picker { border:0;padding:0;margin:18px 0; }
#route-order-picker legend { font-weight:700;font-size:16px;margin-bottom:12px; }
#route-order-options { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.route-dialog .route-schedule-order { display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #dce3ea;border-radius:10px;margin:0;cursor:pointer; }
.route-schedule-order input { width:18px;height:18px;margin:2px 0;accent-color:#c91026;flex-shrink:0; }
.route-schedule-order > span { display:flex;flex-direction:column;gap:5px;font-size:14px; }
.route-schedule-order span span { font-weight:400; }
.route-schedule-order small { font-weight:400;white-space:pre-wrap; }
.route-schedule-order:has(input:checked) { background:#fff6f7;border-color:#c91026; }
.route-selection-context { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;margin-bottom:12px; }
.route-export-controls { display:flex;align-items:center;gap:10px; }
.route-export-controls select { min-width:90px; }
#route-sheet-preview { display:flex;align-items:center;flex-direction:column;gap:18px;background:#edf0f3;padding:18px;border-radius:12px; }
#route-sheet-preview canvas { width:min(100%,680px);height:auto;background:#fff;box-shadow:0 2px 12px #0001; }
#route-export-status { font-size:14px;min-height:20px; }
@media(max-width:650px) { .route-selection-fields,#route-order-options { grid-template-columns:1fr; } .route-selection-context { align-items:flex-start;flex-direction:column; } #route-sheet-preview { padding:6px; } }

.route-plan-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.order-map-dialog { width:min(1100px,calc(100vw - 28px)); }
.order-map-toolbar { display:flex; gap:16px; justify-content:space-between; align-items:center; margin-bottom:16px; }
#order-map-status { margin:0; font-size:14px; line-height:1.5; color:#5a626e; }
#order-map-canvas { width:100%; height:min(64vh,640px); min-height:320px; border-radius:12px; background:#f3f6f7; border:1px solid #e0e5e9; }
.order-map-dot { display:flex; align-items:center; justify-content:center; width:24px; height:24px; min-height:24px; padding:0; border:3px solid white; border-radius:50%; background:#cf1226; color:white; box-shadow:0 2px 6px #0004; cursor:pointer; font-size:11px; font-weight:700; }
.order-map-dots { display:flex; align-items:center; gap:4px; }
.order-map-dot-today { background:#16803c; }
.order-map-dot:focus-visible { outline:3px solid #252c33; outline-offset:3px; }
.order-map-legend { display:flex; flex-wrap:wrap; gap:16px; margin:0 0 12px; font-size:14px; color:#5a626e; }
.order-map-legend > span { display:inline-flex; align-items:center; gap:6px; }
.order-map-key { width:12px; height:12px; border-radius:50%; background:#cf1226; }
.order-map-key.order-map-key-today { background:#16803c; }
.order-map-tooltip { max-height:260px; overflow:auto; min-width:180px; padding:4px; font-family:Arial,sans-serif; }
.order-map-tooltip > div + div { border-top:1px solid #e4e6e9; margin-top:10px; padding-top:10px; }
.order-map-tooltip strong,.order-map-tooltip span { display:block; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.order-map-tooltip span { color:#616975; font-size:13px; }
@media(max-width:600px) { .route-plan-actions { justify-content:flex-end; } #order-map-canvas { height:55vh; min-height:300px; } .order-map-toolbar { align-items:flex-start; } }
