/* Ajustes móviles sobre los componentes exportados de Stitch.
   Cargar después de app.css y ui/l5-panels.css. No modifica datos ni cálculos. */

/* La pila de tres controles ocupa 172 px; se reserva también el solape del drawer. */
.app{overflow-y:auto;overscroll-behavior-y:contain}
.map-area{min-height:200px}
.drawer{overscroll-behavior-y:contain;scroll-padding-block:12px}
.menu-card{overscroll-behavior-y:contain;scroll-padding-block:12px}
.menu-link,.source-details>summary,.l5-checkbox-label{min-height:48px}
.notice{overflow-wrap:anywhere}
.source-details[open]>summary:after{content:' −'}

/* La hora publicada usa la jerarquía de cifra principal del HTML de Stitch. */
.departure .l5-departure-time{min-width:74px;font:800 24px/28px 'Plus Jakarta Sans',sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.l5-departure{min-height:64px}
.l5-departure .label-lg{font-weight:700}
#backToStop{background:var(--surface-container-high);color:var(--primary);justify-content:center}
.route-stops .route-stop{min-height:56px}
.route-stops .current-stop{box-shadow:inset 3px 0 var(--primary),0 0 0 1px rgba(0,104,95,.2)}
.route-stop-time{font-variant-numeric:tabular-nums}

/* El panel cede espacio cuando hay avisos, sin tapar controles del mapa.
   La lista mantiene su propio scroll; el encabezado y la vuelta siguen a mano. */
.route-open .drawer{height:56dvh;max-height:56dvh;min-height:420px;flex:0 1 56dvh;overflow-y:auto}
.route-open .route-stops{min-height:64px;scroll-padding-block:12px}
.route-open .stop-card{min-height:0}
.simulation-overlay{max-height:calc(100% - 92px);overscroll-behavior-y:contain}

/* Búsqueda manual y cercanas: misma tarjeta interior y separación de Stitch.
   Sin resultados abiertos el mapa conserva la mayor parte de la pantalla. */
.stop-finder{margin-top:12px}
label[for="stopSearch"]{display:block;margin:12px 0 8px;font:600 14px/18px Inter,sans-serif;color:var(--on-surface)}
#stopSearch{display:block;width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid var(--outline-variant);border-radius:12px;background:#fff;color:var(--on-surface);font:400 16px/22px 'Plus Jakarta Sans',sans-serif}
#stopSearch:focus-visible{outline:3px solid #195cd1;outline-offset:2px}
#stopSearch::placeholder{color:var(--on-surface-variant);opacity:1}
#finderStatus{margin-top:8px;font:400 13px/18px 'Plus Jakarta Sans',sans-serif;color:var(--on-surface-variant)}
#finderStatus:empty{display:none}
#stopResults{display:grid;gap:8px;max-height:180px;overflow-y:auto;overscroll-behavior-y:contain;margin-top:8px;padding:3px;scroll-padding-block:8px}
.stop-result{width:100%;min-height:56px;min-width:0;text-align:left;background:var(--surface-container-low);color:var(--on-surface);justify-content:space-between;overflow-wrap:anywhere}
.stop-result-name{min-width:0;flex:1;font:600 14px/18px Inter,sans-serif}
.stop-result-distance{flex-shrink:0;color:var(--primary);font:600 12px/16px Inter,sans-serif;font-variant-numeric:tabular-nums}

/* La consulta normal y el reloj de prueba conservan su identidad separada. */
.schedule-controls{padding:12px;background:var(--surface-container-low);border-radius:16px}
.schedule-controls input,.l5-test-time{font-size:16px}
#simulationDemoControls{margin-top:8px;border-top:1px solid var(--outline-variant)}
#simulationDemoControls>.l5-test-clock{margin-inline:0}
.l5-clock-actions{grid-template-columns:minmax(0,1fr) minmax(72px,.5fr)}

/* Con teclado o pantalla baja se permite desplazar la aplicación y el panel.
   Ningún control desaparece tras overflow:hidden cuando el alto es insuficiente. */
@media(max-height:700px){
  .app{overflow-y:auto;overscroll-behavior-y:contain}
  .map-area{flex:1 0 200px;min-height:200px}
  .route-open .drawer{height:auto;max-height:none;min-height:0;flex:0 0 auto;display:block;overflow:visible}
  .route-open #stopSheet,.route-open .stop-card,.route-open #routePanel{display:block;flex:none}
  .route-open .route-stops{height:180px;min-height:0;flex:none}
  .menu-card{max-height:calc(100dvh - 144px - env(safe-area-inset-bottom))}
}
