/* Ajustes pontuais de leitura e feedback; a identidade existente permanece. */
:where(button, a, input, select, textarea, summary) {
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease,
    box-shadow 150ms ease, opacity 150ms ease, transform 150ms ease;
}
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid #56b8ff;
  outline-offset: 2px;
}
button:not(:disabled):active { transform: translateY(1px); }
.origin-pin svg { display:block; width:19px; height:19px; }
.portal-map-marker-shell { border:0;background:transparent; }
.portal-map-origin,.portal-map-stop { display:grid;place-items:center;width:100%;height:100%;border:3px solid #fff;border-radius:50%;background:#168a61;color:#fff;box-shadow:0 2px 8px #12253a70;font-size:12px;font-weight:800; }
.portal-map-origin svg { display:block;width:17px;height:17px; }
.portal-map-stop { background:#1769ed; }

body.route-planning-active .route-progress-track {
  justify-content:space-between;
  gap:clamp(5px, .8vw, 10px);
  min-width:0;
  padding-inline:4px;
}
body.route-planning-active .route-progress-track > * { flex:0 0 26px; }
body.route-planning-active .route-progress-track button.route-progress-node {
  width:26px;
  height:26px;
  min-height:26px!important;
  font-size:9px;
}
body.route-planning-active .route-progress-track::before { left:15px; right:15px; }
body.route-planning-active .route-actions {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
body.route-planning-active .route-actions button {
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.3;
}
body.route-planning-active .route-heading-actions { flex-wrap:wrap; }
body.route-planning-active .route-heading-actions > * { min-width:0; }
body.route-planning-active .route-map-toolbar { flex-wrap:wrap; }
@media (max-width:560px) {
  body.route-planning-active .route-actions { grid-template-columns:1fr; }
  body.route-planning-active .route-progress-track { justify-content:flex-start; overflow-x:auto; }
}
@media (min-width:901px) and (max-width:1439px) {
  body.route-planning-active .route-workspace {
    grid-template-columns:minmax(250px, 290px) minmax(0, 1fr);
    align-items:start;
  }
  body.route-planning-active .route-controls {
    grid-column:1;
    grid-row:1 / span 2;
    max-height:680px;
  }
  body.route-planning-active .route-map-panel {
    grid-column:2;
    grid-row:1;
    min-height:520px;
  }
  body.route-planning-active .route-result-panel {
    grid-column:1 / -1;
    grid-row:2;
    max-height:none;
  }
  body.route-planning-active .route-heading-actions {
    display:grid;
    grid-template-columns:repeat(4,max-content);
    justify-content:start;
    align-items:end;
    width:auto;
  }
  body.route-planning-active .route-heading-actions > label { grid-column:span 2; }
  body.route-planning-active .route-heading-actions > #route-saved-toggle { grid-column:span 2; }
  body.route-planning-active .route-map-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.route-planning-active .route-map-bottom { align-items:flex-start;flex-direction:column; }
  body.route-planning-active .route-preview-status,
  body.route-planning-active .route-preview-legend { max-width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  :where(button, a, input, select, textarea, summary) { transition:none!important; }
  button:not(:disabled):active { transform:none; }
}
