:root {
  color-scheme: light;
  --rosa: #ff0060;
  --rosa-oscuro: #b80043;
  --menta: #007e74;
  --fondo: #f6f6f7;
  --texto: #1a1c1c;
  --texto-secundario: #62686d;
  --borde: #e3e5e7;
  --blanco: #fff;
  --radio: 16px;
  --sombra: 0 12px 32px rgba(24, 24, 27, .055);
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fondo);
  color: var(--texto);
  font: 400 15px/1.55 "Hanken Grotesk", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
h1, h2, h3, strong, .marca { font-family: "Space Grotesk", sans-serif; }
h1 { margin: .1rem 0 .45rem; font-size: clamp(2rem, 3vw, 2.7rem); letter-spacing: -.05em; line-height: 1.1; }
h2 { margin: 0 0 1rem; font-size: 1.18rem; letter-spacing: -.02em; }
h3 { letter-spacing: -.02em; }
p { line-height: 1.55; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid var(--menta);
  outline-offset: 3px;
}

label { display: flex; flex-direction: column; gap: .45rem; font-size: .88rem; font-weight: 700; }
input, textarea, select {
  min-width: 0;
  border: 1px solid #cfd3d6;
  border-radius: 10px;
  background: var(--blanco);
  color: var(--texto);
  transition: border-color .18s ease, box-shadow .18s ease;
}
input, select { min-height: 46px; padding: .68rem .82rem; }
textarea { width: 100%; min-height: 120px; padding: .8rem; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--rosa); box-shadow: 0 0 0 3px #ff00601b; }
form { display: grid; gap: 1rem; }

.salto-contenido { position: fixed; z-index: 3000; top: .75rem; left: .75rem; padding: .7rem 1rem; transform: translateY(-160%); border-radius: 10px; background: #17181b; color: #fff; font-weight: 800; box-shadow: 0 8px 20px #10111455; }
.salto-contenido:focus { transform: translateY(0); outline: 3px solid #fff; outline-offset: 3px; }

/* Acceso y botones */
.marca {
  display: grid;
  width: 138px;
  height: 46px;
  place-items: center;
  overflow: hidden;
  padding: 6px 10px;
  border-radius: 12px;
  background: var(--rosa);
}
.marca img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }

.login {
  width: min(440px, calc(100% - 2rem));
  margin: clamp(2rem, 8vh, 5rem) auto;
  padding: clamp(1.5rem, 5vw, 2.4rem);
  border: 1px solid var(--borde);
  border-radius: 22px;
  background: var(--blanco);
  box-shadow: 0 22px 70px #142a3212;
  animation: entrada .32s ease-out both;
}
.login .marca { margin: 0 auto 1.25rem; }
.login .rotulo { text-align: center; }
.login h1 { margin-bottom: 1.5rem; text-align: center; }
.login .boton { width: 100%; }
.login .ayuda { margin-top: 1.35rem; text-align: center; }

.rotulo { margin: 0 0 .55rem; color: var(--rosa-oscuro); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.boton {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .72rem 1.15rem;
  border: 1px solid #d5d8da;
  border-radius: 10px;
  background: #fff;
  color: var(--texto);
  font-weight: 700;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.boton:hover { transform: translateY(-1px); border-color: #b8bdc0; }
.boton:active { transform: scale(.98); }
.boton-cta { border-color: var(--rosa-oscuro); background: var(--rosa-oscuro); color: #fff; box-shadow: 0 6px 18px #b800431e; }
.boton-cta:hover { border-color: var(--rosa-oscuro); background: var(--rosa-oscuro); box-shadow: 0 8px 20px #ff00602b; }
.boton:disabled { opacity: .5; cursor: not-allowed; }

/* Navegación y área de trabajo */
.aplicacion { display: grid; min-height: 100vh; grid-template-columns: 252px minmax(0, 1fr); }
.menu-lateral {
  position: sticky;
  top: 0;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  padding: 1.35rem 1rem;
  background: #17181b;
  color: #fff;
}
.menu-movil-cabecera { display: flex; align-items: center; justify-content: center; }
.boton-cerrar-menu { display: none; }
.boton-menu-movil { display: none; }
.menu-lateral .marca { width: 138px; height: 46px; margin: .25rem auto 2rem; padding: 5px 8px; }
.menu-lateral > p { padding: 0 .8rem; color: #a3a5a9; font-size: .66rem; font-weight: 800; letter-spacing: .16em; }
.menu-lateral nav { display: grid; gap: .5rem; }
.menu-lateral nav a {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  padding: .7rem .8rem;
  border: 1px solid transparent;
  box-shadow: inset 3px 0 transparent;
  border-radius: 10px;
  color: #d8d9dc;
  font-size: .91rem;
  font-weight: 600;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
.menu-lateral nav a::before { display: none; content: none; }
.menu-lateral nav a:hover { background: #282a2e; color: #fff; }
.menu-lateral nav a.activo { border-color: #ffffff14; box-shadow: inset 3px 0 var(--rosa); background: #282a2e; color: #fff; font-weight: 800; letter-spacing: .01em; }
.grupo-menu { display: grid; gap: .5rem; margin: .4rem 0; }
.titulo-menu { display: flex; min-height: 42px; align-items: center; gap: .45rem; margin: 0; padding: .25rem .8rem; border-radius: 10px; color: #fff; font-size: .91rem; font-weight: 800; letter-spacing: .01em; list-style: none; cursor: pointer; user-select: none; transition: color .18s ease, background-color .18s ease; }
.titulo-menu:hover { background: #282a2e; }
.titulo-menu::-webkit-details-marker { display: none; }
.titulo-menu::after { width: .38rem; height: .38rem; margin-left: .25rem; border-right: 1.5px solid #c7c9cc; border-bottom: 1.5px solid #c7c9cc; content: ''; transform: rotate(45deg); transition: transform .18s ease; }
.grupo-menu[open] > .titulo-menu::after { transform: rotate(225deg); }
.titulo-menu:focus-visible { outline: 2px solid #ff6b91; outline-offset: 2px; border-radius: 6px; }
.subenlaces-menu { display: grid; gap: .5rem; margin-left: .8rem; padding-left: .45rem; border-left: 1px solid #ffffff26; }
.subenlaces-menu .enlace-menu { min-height: 42px; padding-block: .58rem; color: #c7c9cc; font-size: .86rem; }
.marcadores-menu { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .4rem; margin-left: auto; }
.contador-menu { min-width: 1.5rem; height: 1.5rem; padding: 0 .35rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ffffff18; border-radius: 999px; background: #ffffff12; color: #e2e3e5; font-size: .7rem; font-weight: 750; line-height: 1; }
.novedad-menu { display: inline-flex; align-items: center; gap: .27rem; color: #ff9db5; font-size: .66rem; font-weight: 750; white-space: nowrap; }
.punto-novedad-menu { width: .42rem; height: .42rem; flex: 0 0 .42rem; border-radius: 50%; background: #ff4d78; box-shadow: 0 0 0 3px #ff4d7826; }
.alerta-viaje-toast { position: fixed; z-index: 2000; inset: auto 1rem 1rem auto; width: min(480px, calc(100vw - 2rem)); display: flex; align-items: center; gap: .8rem; padding: 1rem 1.1rem; border: 1px solid #f8a6b8; border-radius: 14px; background: #251a20; color: #fff; box-shadow: 0 16px 48px #0c0b0d55; font-size: .9rem; }
.alerta-viaje-toast[data-request-alert-toast] { inset: auto 1rem 5.3rem auto; }
.alerta-viaje-toast[hidden] { display: none; }
.alerta-viaje-toast span { flex: 1; line-height: 1.4; }
.alerta-viaje-toast a { color: #ffb0c3; font-weight: 800; text-decoration: underline; white-space: nowrap; }
.alerta-viaje-toast button { border: 0; padding: .2rem .4rem; background: transparent; color: #fff; font-size: 1.25rem; line-height: 1; }
@media (max-width: 620px) { .alerta-viaje-toast { inset: auto .75rem .75rem; width: auto; gap: .5rem; padding: .85rem; font-size: .82rem; } .alerta-viaje-toast[data-request-alert-toast] { inset: auto .75rem 5.2rem; } }
.notificacion-chat-menu { display: inline-flex; min-width: 1.45rem; height: 1.45rem; flex: 0 0 auto; align-items: center; justify-content: center; margin-left: auto; padding: 0 .35rem; border: 1px solid #ff8fae70; border-radius: 999px; background: #ff00602a; color: #ffb1c8; font-size: .7rem; font-weight: 850; line-height: 1; }
.notificacion-chat-menu[hidden] { display: none !important; }
.alerta-chat-cliente { position: fixed; z-index: 2100; inset: auto 1rem calc(env(safe-area-inset-bottom) + 1rem) auto; display: flex; width: min(520px, calc(100vw - 2rem)); align-items: center; gap: .65rem; padding: .8rem .9rem; border: 1px solid #ff8fae8c; border-left: 4px solid var(--rosa); border-radius: 14px; background: #17181b; color: #fff; box-shadow: 0 16px 42px #0c0b0d55; font-size: .86rem; }
.alerta-chat-cliente[hidden] { display: none !important; }
.icono-alerta-chat { flex: 0 0 auto; color: #ff4d87; font-size: .75rem; text-shadow: 0 0 .75rem #ff4d87; }
.texto-alerta-chat { min-width: 0; flex: 1; line-height: 1.35; }
.abrir-chat-alerta, .activar-alertas-chat { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; justify-content: center; padding: .45rem .7rem; border: 1px solid #ffffff35; border-radius: 10px; background: #282a2e; color: #fff; font: inherit; font-size: .78rem; font-weight: 800; }
.abrir-chat-alerta { border-color: #ff8fae; background: #b80043; color: #fff; }
.abrir-chat-alerta:hover { background: #d0004c; }
.activar-alertas-chat:hover { border-color: #ff8fae; }
.alerta-chat-cliente :is(.abrir-chat-alerta, .activar-alertas-chat):focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (max-width: 620px) { .alerta-chat-cliente { inset: auto .75rem calc(env(safe-area-inset-bottom) + .75rem) .75rem; width: auto; flex-wrap: wrap; gap: .5rem; padding: .75rem; font-size: .82rem; } .alerta-chat-cliente .icono-alerta-chat { align-self: center; } .alerta-chat-cliente .texto-alerta-chat { flex-basis: calc(100% - 1.5rem); } .alerta-chat-cliente .activar-alertas-chat, .alerta-chat-cliente .abrir-chat-alerta { min-height: 44px; flex: 1; } }
.pie-menu { display: grid; gap: .65rem; margin-top: auto; padding: 1rem .75rem .3rem; border-top: 1px solid #ffffff1c; }
.pie-menu > a { overflow: hidden; color: #fff; font-size: .88rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.pie-menu form { display: block; }
.pie-menu button { min-height: 42px; padding: 0; border: 0; background: transparent; color: #bfc1c4; font-weight: 600; }
.pie-menu button:hover { color: #fff; }

.espacio { min-width: 0; }
.barra-superior {
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem clamp(1rem, 3vw, 2.5rem);
  border-bottom: 1px solid var(--borde);
  background: rgba(255, 255, 255, .88);
  color: var(--texto-secundario);
  font-size: .86rem;
  font-weight: 600;
}
.usuario-superior { color: var(--texto); font-weight: 700; }
.boton-sonido-notificaciones { min-width: 42px; min-height: 42px; padding: .45rem; border: 1px solid var(--borde); border-radius: 10px; background: #fff; color: #24262b; font-size: 1rem; cursor: pointer; }
.boton-sonido-notificaciones[aria-pressed="true"] { border-color: #07806e; background: #e9f8f4; color: #075b4d; }
.boton-sonido-notificaciones:focus-visible { outline: 3px solid var(--rosa); outline-offset: 2px; }
.contenido { width: min(1440px, 100%); min-width: 0; margin: auto; padding: clamp(1.2rem, 3vw, 2.7rem); }
.cabecera-pagina { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.8rem; }
.cabecera-pagina p:not(.rotulo) { margin: .35rem 0; color: var(--texto-secundario); }

/* Formularios y paneles */
.panel {
  overflow: hidden;
  margin-bottom: 1.2rem;
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  background: var(--blanco);
  box-shadow: var(--sombra);
}
.espaciado { padding: clamp(1.15rem, 2.5vw, 1.7rem); }
.estrecho { max-width: 540px; }
.estrecho form { max-width: 440px; }
.formulario-linea { display: flex; align-items: end; gap: 1rem; flex-wrap: wrap; }
.formulario-linea label { min-width: 220px; flex: 1; }
.ayuda { color: var(--texto-secundario); font-size: .82rem; }
.ayuda a { color: var(--rosa-oscuro); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Tablas */
.tabla-contenedor { overflow: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; font-size: .9rem; }
th { color: var(--texto-secundario); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
th, td { padding: .85rem .8rem; border-bottom: 1px solid var(--borde); }
th { background: #fafafb; }
td { vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
td small { color: var(--texto-secundario); }
td a { color: var(--rosa-oscuro); font-weight: 700; text-underline-offset: 3px; }
.formulario-admin { min-width: 240px; gap: .8rem; padding: .3rem 0; }
.formulario-admin label { font-size: .8rem; }
.formulario-admin input:not([type="checkbox"]) { min-height: 40px; padding: .55rem .65rem; font-size: .82rem; }
.formulario-admin .boton { min-height: 40px; padding: .55rem .8rem; font-size: .82rem; }
.formulario-admin .confirmacion { display: flex; align-items: flex-start; gap: .5rem; color: var(--texto-secundario); font-weight: 500; line-height: 1.4; }
.formulario-admin .confirmacion input { width: 18px; min-height: 18px; flex: 0 0 18px; margin: .12rem 0 0; accent-color: var(--rosa); }
.asociar-solicitud { width: 100%; max-width: 620px; padding: .8rem 0 .2rem; }
.asociar-solicitud select { min-height: 40px; padding: .55rem .65rem; font-size: .82rem; }
.asociar-solicitud p { color: var(--texto-secundario); }
.estado-solicitud { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; margin: 0; padding: .32rem .65rem; border-radius: 999px; background: #fff0d8; color: #865700; font-size: .72rem; font-weight: 800; }
.estado-solicitud.asociado { background: #e2f8f4; color: #006f68; }
.estado-solicitud.conductor-asignado { background: #e2f8f4; color: #006f68; }
.estado-solicitud.sin-conductor { background: #f0f1f2; color: #535a60; }
.estado-solicitud:where(:not(:empty)) { white-space: nowrap; }
.filtros-solicitudes { display: grid; grid-template-columns: minmax(220px, 1.35fr) repeat(2, minmax(120px, .9fr)) minmax(160px, 1fr); align-items: end; gap: .8rem; margin: 1.25rem 0; padding: 1rem; border: 1px solid var(--borde); border-radius: 14px; background: #fafafb; }
.filtros-solicitudes label { min-width: 0; font-size: .78rem; }
.filtros-solicitudes input, .filtros-solicitudes select { width: 100%; min-height: 42px; padding: .55rem .65rem; font-size: .82rem; }
.acciones-filtros { display: flex; grid-column: 2 / -1; align-items: center; justify-self: start; gap: .5rem; }
.acciones-filtros .boton { min-height: 42px; padding: .55rem .75rem; font-size: .8rem; white-space: nowrap; }
.resumen-solicitudes { margin: 1.1rem 0 .7rem; color: var(--texto-secundario); font-size: .85rem; }
.resumen-solicitudes strong { color: var(--texto); }
.lista-solicitudes { display: grid; gap: .8rem; }
.tarjeta-solicitud { min-width: 0; overflow: hidden; border: 1px solid var(--borde); border-radius: 14px; background: var(--blanco); box-shadow: 0 3px 12px #18181b08; }
.tarjeta-solicitud details > summary { display: block; padding: 1rem 1.1rem; list-style: none; cursor: pointer; }
.tarjeta-solicitud details > summary::-webkit-details-marker { display: none; }
.tarjeta-solicitud details > summary:hover { background: #fafafb; }
.solicitud-resumen { display: grid; grid-template-columns: minmax(165px, .85fr) minmax(240px, 1.5fr) minmax(185px, .9fr) 16px; align-items: center; gap: 1rem; }
.solicitud-contacto, .solicitud-ruta-resumen { display: grid; min-width: 0; gap: .15rem; }
.solicitud-contacto strong { font-size: 1rem; overflow-wrap: anywhere; }
.solicitud-contacto small, .solicitud-ruta-resumen small, .solicitud-ruta small { color: var(--texto-secundario); font-size: .72rem; }
.solicitud-ruta-resumen strong { overflow: hidden; font-size: .8rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.solicitud-estados { display: grid; justify-items: start; gap: .35rem; }
.solicitud-chevron { width: .55rem; height: .55rem; justify-self: center; border-right: 2px solid #73797d; border-bottom: 2px solid #73797d; transform: rotate(45deg) translateY(-2px); transition: transform .18s ease; }
.tarjeta-solicitud details[open] > summary { border-bottom: 1px solid var(--borde); background: #fafafb; }
.tarjeta-solicitud details[open] .solicitud-chevron { transform: rotate(225deg) translate(-2px, -1px); }
.solicitud-contenido { display: grid; gap: 1rem; padding: 1.1rem; }
.solicitud-bloque { min-width: 0; padding: 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.solicitud-bloque > .rotulo { margin: 0 0 .7rem; }
.solicitud-paneles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.solicitud-datos-historial { color: var(--texto); font-size: .86rem; overflow-wrap: anywhere; }
.solicitud-datos-historial p { margin: .2rem 0 .55rem; }
.solicitud-datos-historial form { margin-top: .75rem; }
.solicitud-ruta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.solicitud-ruta > div { display: grid; min-width: 0; gap: .3rem; padding: .75rem; border-radius: 10px; background: #f7f7f8; }
.solicitud-ruta strong { font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; }
.asignacion-solicitud { margin: 0; }
.asignacion-solicitud form { margin: 0; }
.asignacion-solicitud label { display: block; max-width: 330px; }
.asignacion-solicitud input[readonly] { width: 100%; margin: .4rem 0 .7rem; font-size: .78rem; }
.asignacion-solicitud .boton { margin-top: .55rem; }
.vacio-solicitudes { padding: 2.2rem 1rem; border: 1px dashed #cfd3d6; border-radius: 14px; color: var(--texto-secundario); text-align: center; }
.vacio-solicitudes strong { color: var(--texto); }
.vacio-solicitudes p { margin: .35rem 0 0; font-size: .85rem; }
.paginacion-solicitudes { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.2rem; }
.paginacion-solicitudes > span { color: var(--texto-secundario); font-size: .85rem; }
.paginacion-solicitudes > span strong { color: var(--texto); }
.paginacion-solicitudes .boton { min-height: 40px; padding: .45rem .75rem; font-size: .8rem; }
.paginacion-solicitudes .deshabilitado { opacity: .48; pointer-events: none; }
.formulario-rechazo { display: flex; min-width: 220px; align-items: center; gap: .65rem; flex-wrap: wrap; }
.formulario-rechazo input { flex: 1 1 130px; }
.formulario-revision { display: grid; max-width: 680px; gap: .8rem; }
.formulario-revision .confirmacion { display: flex; align-items: flex-start; gap: .5rem; color: var(--texto-secundario); font-weight: 500; line-height: 1.45; }
.formulario-revision .confirmacion input { width: 18px; min-height: 18px; flex: 0 0 18px; margin: .12rem 0 0; accent-color: var(--rosa); }
.formulario-usuario { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(210px, 1.2fr) minmax(160px, .8fr) auto; align-items: end; gap: .9rem; }
.titulo-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.titulo-panel .rotulo { margin-bottom: .25rem; }
.titulo-panel h2 { margin-bottom: 0; }
.contador { display: grid; min-width: 42px; min-height: 42px; place-items: center; border-radius: 50%; background: #fff0f5; color: var(--rosa-oscuro); font-weight: 800; }

/* Estados, datos y feedback */
.avatar { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 50%; background: #fff0f5; color: var(--rosa-oscuro); font-weight: 800; }
.estado, .fase, .linea { display: inline-flex; align-items: center; padding: .4rem .72rem; border-radius: 999px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.estado { background: #fff0d8; color: #865700; }
.fase { background: #e2f8f4; color: #006f68; }
.linea { background: #fce2ee; color: #9a0050; }
.estadisticas { display: flex; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.dato { display: grid; min-width: 185px; gap: .2rem; padding: 1.2rem 1.35rem; border: 1px solid var(--borde); border-radius: 14px; background: var(--blanco); box-shadow: 0 4px 16px #18181b07; }
.dato strong { font-size: 1.8rem; }
.dato span { color: var(--texto-secundario); font-size: .82rem; }
.aviso { padding: 1rem 1.15rem; border: 1px solid #c6eee6; border-radius: 11px; background: #e6f8f4; color: #095e59; font-size: .88rem; }
.aviso.error { border-color: #ffd0dc; background: #fff0f3; color: #981c3c; }
.acciones-revision { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1rem; }
.acciones-revision .boton { min-width: 132px; }

/* Clientes: teléfono de origen y acciones verificadas */
.tabla-clientes table { min-width: 900px; }
.telefono-cliente { display: inline-block; color: var(--texto); font: 600 .88rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: nowrap; }
.canales-clientes { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.canal-cliente { display: inline-flex; width: max-content; margin: .2rem .25rem 0 0; padding: .28rem .58rem; border-radius: 999px; background: #e2f8f4; color: #006f68; font-size: .72rem; font-weight: 750; line-height: 1.3; }
.estado-cliente { display: inline-flex; margin: 0 0 .35rem; padding: .32rem .65rem; border-radius: 999px; background: #f0f1f2; color: #454a4e; font-size: .75rem; font-weight: 800; }
.estado-cliente.asociado { background: #e2f8f4; color: #006f68; }
.estado-cliente.conflicto { background: #fff0d8; color: #865700; }
.acciones-cliente { display: grid; min-width: 220px; gap: .65rem; }
.accion-cliente { min-width: 190px; }
.accion-cliente > summary { width: max-content; min-height: 40px; padding: .55rem .8rem; list-style: none; cursor: pointer; }
.accion-cliente > summary::-webkit-details-marker { display: none; }
.accion-cliente[open] { padding-top: .4rem; }
.accion-cliente form { min-width: 220px; max-width: 420px; margin-top: .6rem; padding: .85rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.accion-cliente form .confirmacion { display: flex; align-items: flex-start; gap: .5rem; color: var(--texto-secundario); font-weight: 500; line-height: 1.4; }
.accion-cliente form .confirmacion input { width: 18px; min-height: 18px; flex: 0 0 18px; margin: .12rem 0 0; accent-color: var(--rosa); }
.boton-secundario { border-color: #cfd3d6; background: #f8f8f9; }
.boton-cliente { min-height: 38px; margin-top: .5rem; padding: .5rem .75rem; font-size: .8rem; }
.nuevo-cliente { margin: 1rem 0; padding: .9rem 1.2rem; border: 1px solid var(--borde); border-radius: 12px; background: var(--blanco); }
.nuevo-cliente > summary { cursor: pointer; color: var(--rosa-oscuro); font-weight: 700; }
.nuevo-cliente form { margin-top: 1rem; }
.nuevo-conductor { padding: 1rem 1.25rem; }
.nuevo-conductor > h2 { margin: 0 0 .45rem; }
.nuevo-conductor > p { margin: .4rem 0 1rem; }
.tarjetas-conductores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.tarjeta-conductor { min-width: 0; padding: 1.15rem; border: 1px solid var(--borde); border-radius: 14px; background: #fff; box-shadow: var(--sombra); }
.tarjeta-conductor-cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.tarjeta-conductor-cabecera h2 { margin: 0 0 .25rem; overflow-wrap: anywhere; font-size: 1.05rem; }
.tarjeta-conductor-cabecera p { margin: 0; color: var(--texto-secundario); font-size: .88rem; }
.estado-conductor { flex: 0 0 auto; padding: .28rem .58rem; border-radius: 999px; background: #f0f1f2; color: #454a4e; font-size: .72rem; font-weight: 800; }
.estado-pending { background: #fff2d8; color: #805200; }
.estado-draft { background: #edf1f5; color: #4c5967; }
.estado-approved { background: #e2f8f4; color: #006f68; }
.estado-suspended, .estado-blocked, .estado-rejected, .estado-deleted { background: #fff0f2; color: #9b1c35; }
.resumen-expediente { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin: .9rem 0; color: var(--texto-secundario); font-size: .8rem; }
.resumen-expediente strong { color: var(--texto); }
.previas-conductor { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; padding-top: .75rem; border-top: 1px solid var(--borde); }
.previas-conductor .rotulo { flex-basis: 100%; margin: 0; }
.previas-conductor .ayuda { margin: 0; }
.boton-documento-previo { min-height: 38px; padding: .45rem .65rem; font-size: .78rem; }
.abrir-expediente { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; margin-top: 1rem; padding: .55rem .8rem; }
.tarjeta-conductor-retirado { border-color: #eadadd; }
.estado-vacio-conductores { grid-column: 1 / -1; margin: 0; }
.estado-vacio-conductores h2 { margin: 0 0 .35rem; }
.estado-vacio-conductores p { margin: 0; color: var(--texto-secundario); }
.ventana-expediente { width: min(1120px, calc(100vw - 2rem)); max-width: 1120px; max-height: 92vh; overflow: hidden; padding: 0; border: 1px solid var(--borde); border-radius: 18px; background: #fff; box-shadow: 0 24px 80px #10182040; }
.ventana-expediente[open] { display: flex; flex-direction: column; }
.ventana-expediente::backdrop, .ventana-carnet::backdrop { background: #10182099; backdrop-filter: blur(3px); }
.ventana-expediente > header, .ventana-carnet > header { position: relative; z-index: 1; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.2rem; border-bottom: 1px solid var(--borde); background: #fff; }
.ventana-expediente > header .rotulo, .ventana-carnet > header .rotulo { margin: 0; }
.contenido-expediente { min-height: 0; overflow: auto; padding: 1rem; overscroll-behavior: contain; }
.expediente-panel { margin: 0; box-shadow: none; }
.expediente-titulo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.expediente-titulo .rotulo { margin: 0 0 .2rem; }
.expediente-titulo h2 { margin: 0; overflow-wrap: anywhere; }
.acciones-expediente { display: flex; flex-wrap: wrap; gap: .5rem; }
.ventana-carnet { width: min(610px, calc(100vw - 2rem)); max-width: 610px; max-height: 94vh; overflow: hidden; padding: 0; border: 1px solid var(--borde); border-radius: 18px; background: #fff; box-shadow: 0 24px 80px #10182040; }
.ventana-carnet > header h2 { margin: 0; }
.controles-carnet-preview { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem 1rem; border-bottom: 1px solid var(--borde); background: #fafafb; }
.controles-carnet-preview p { margin: 0; color: var(--texto-secundario); font-size: .78rem; line-height: 1.4; }
.controles-carnet-preview .boton { min-height: 38px; flex: 0 0 auto; padding: .45rem .7rem; font-size: .8rem; }
.visor-carnet { display: block; width: 100%; height: min(690px, 74vh); border: 0; background: #f0f2f5; }
.campos-conductor-admin { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: .85rem; margin-bottom: 1rem; }
.formulario-conductor-admin .boton { min-height: 46px; }
.lista-documentos .documento-carga { align-items: stretch; }
.formulario-documento-admin { display: grid; width: 100%; grid-template-columns: minmax(200px, 1fr) auto auto; align-items: end; gap: .7rem; }
.formulario-documento-admin label { font-size: .8rem; }
.formulario-documento-admin input[type="file"] { min-height: 42px; padding: .4rem; font-size: .78rem; }
.formulario-documento-admin .ayuda { align-self: center; white-space: nowrap; }
.envio-revision { margin: 1rem 0; }
.accion-registro { max-width: 520px; margin-top: 1.2rem; padding: 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.accion-registro .confirmacion { display: flex; align-items: flex-start; gap: .5rem; color: var(--texto-secundario); line-height: 1.4; }
.accion-registro .confirmacion input { width: 18px; min-height: 18px; flex: 0 0 18px; margin: .12rem 0 0; accent-color: var(--rosa); }
.accion-registro small { color: var(--texto-secundario); line-height: 1.5; }
.boton-peligro { border-color: #f0a8b2; background: #fff0f2; color: #9b1c35; }
.boton-peligro:hover { border-color: #d66072; background: #ffe4e8; }
.enlace-perfil-cliente { color: var(--rosa-oscuro); font-weight: 750; }
.datos-perfil-cliente { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0 1.5rem; }
.datos-perfil-cliente p { display: grid; gap: .25rem; margin: 0; padding: .85rem; border: 1px solid var(--borde); border-radius: 11px; background: #fafafb; }
.datos-perfil-cliente span { color: var(--texto-secundario); font-size: .76rem; }
.perfil-cliente h3 { margin-top: 1.4rem; }
.estadisticas-proximamente { max-width: 780px; }
.estadisticas-proximamente h2 { margin: .8rem 0 .4rem; }
.estadisticas-proximamente p { max-width: 58ch; color: var(--texto-secundario); }

/* Vista previa privada de documentos */
.lista-documentos { display: grid; max-width: 680px; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.lista-documentos li { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .8rem; border: 1px solid var(--borde); border-radius: 10px; background: #fff; }
.lista-documentos small { color: var(--texto-secundario); }
.boton-documento { min-width: 116px; }
.ventana-documento { width: min(680px, calc(100vw - 2rem)); max-width: 680px; max-height: 88vh; overflow: hidden; padding: 0; border: 1px solid var(--borde); border-radius: 16px; background: #fff; box-shadow: 0 24px 80px #10182040; }
.ventana-documento::backdrop { background: #10182099; backdrop-filter: blur(3px); }
.ventana-documento > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--borde); }
.ventana-documento > header h2 { margin: 0; }
.ventana-documento > header .rotulo { margin-bottom: .2rem; }
.visor-documento { display: grid; min-height: 300px; max-height: 72vh; place-items: center; overflow: auto; background: #f5f6f7; }
.visor-documento img { display: block; max-width: 100%; max-height: 70vh; object-fit: contain; }
.visor-documento iframe { display: block; width: 100%; height: 70vh; border: 0; background: #fff; }

/* Clientes y administración del conductor */
.paneles-conductor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.paneles-conductor .panel { margin: 0; }
.paneles-conductor .panel > form + .boton { margin-top: .8rem; }
.paneles-conductor .panel > p:not(.rotulo) { color: var(--texto-secundario); }
.datos-conductor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0; }
.datos-conductor > div, .servicio-conductor dl > div { min-width: 0; padding: .85rem; border: 1px solid var(--borde); border-radius: 11px; background: #fafafb; }
.datos-conductor dt, .servicio-conductor dt { color: var(--texto-secundario); font-size: .76rem; font-weight: 700; }
.datos-conductor dd, .servicio-conductor dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-weight: 700; }
.servicio-conductor { padding: clamp(1.1rem, 2vw, 1.5rem); }
.servicio-conductor-cabecera { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.servicio-conductor-cabecera h2 { margin: 0; }
.servicio-conductor dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0; }
.vacio-conductor { padding: clamp(1.2rem, 3vw, 2rem); }
.vacio-conductor h2 { margin-bottom: .45rem; }
.vacio-conductor p:not(.rotulo) { max-width: 58ch; color: var(--texto-secundario); }
.documentos-propios { max-width: 820px; margin: 1rem 0 0; }
.estado-documento { color: var(--texto-secundario); font-size: .8rem; font-weight: 700; }
.busqueda-clientes { display: flex; max-width: 720px; align-items: end; gap: .65rem; margin: 0 0 1rem; }
.busqueda-clientes label { flex: 1; }
.busqueda-clientes .boton { min-width: 100px; }
.editar-conductor, .estado-conductor { margin: 1rem 0; padding: 1rem 1.2rem; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.editar-conductor > summary, .estado-conductor > summary { cursor: pointer; color: var(--rosa-oscuro); font-weight: 750; }
.editar-conductor > p, .estado-conductor > p { margin: .7rem 0; }
.formulario-editar-conductor { margin-top: .9rem; }
.formulario-editar-conductor .campos-conductor-admin p.ayuda { grid-column: 1 / -1; margin: -.4rem 0 0; }
.formulario-estado-conductor { align-content: start; gap: .75rem; padding: .9rem; border: 1px solid var(--borde); border-radius: 11px; background: #fafafb; }
.formulario-estado-conductor .confirmacion { display: flex; align-items: flex-start; gap: .5rem; color: var(--texto-secundario); line-height: 1.4; }
.formulario-estado-conductor .confirmacion input { width: 18px; min-height: 18px; flex: 0 0 18px; margin: .12rem 0 0; accent-color: var(--rosa); }
.acciones-estado-conductor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: .8rem; }
.perfil-conductor-form { max-width: 820px; margin-top: 1.1rem; }
.campos-perfil-conductor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.campos-perfil-conductor label { min-width: 0; }
.solicitudes-pool { display: grid; gap: .75rem; margin-top: 1rem; }
.solicitud-pool { margin: 0; animation: entrada .22s ease both; }
.solicitud-pool:nth-child(2) { animation-delay: .03s; }
.solicitud-pool:nth-child(3) { animation-delay: .06s; }
.solicitud-pool .rotulo { margin-bottom: .25rem; }
.solicitud-pool .servicio-conductor-cabecera { align-items: flex-start; }
.solicitud-pool dl { margin-bottom: .75rem; }
.solicitud-pool .ayuda { margin-bottom: 0; }
.contenido-conductor .vacio-conductor { border: 1px dashed var(--borde); border-radius: 12px; }
.contenido-cliente .cliente-estadisticas .dato { flex: 1 1 170px; }
.cliente-paneles .panel { display: flex; min-height: 215px; align-items: flex-start; flex-direction: column; }
.cliente-paneles .panel > p:not(.rotulo) { color: var(--texto-secundario); }
.cliente-paneles .panel .boton { margin-top: auto; }
.cliente-nota-operativa h2 { margin-bottom: .4rem; }
.cliente-nota-operativa p:not(.rotulo) { max-width: 78ch; color: var(--texto-secundario); }
.cliente-nota-operativa > a { color: var(--rosa-oscuro); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.formulario-cliente { max-width: 850px; margin-top: 1.2rem; }
.campos-cliente-ruta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.campos-cliente-ruta label { min-width: 0; }
.formulario-cliente > .ayuda { max-width: 78ch; }
.solicitudes-cliente { margin-top: 1.2rem; }
.cliente-solicitud { margin: 0; }
.cliente-solicitud .servicio-conductor-cabecera { align-items: flex-start; }
.cliente-solicitud .servicio-conductor-cabecera h2 { margin: 0; font-size: 1.05rem; }
.cliente-solicitud > p { margin: .65rem 0; }
.datos-perfil-cliente { max-width: 850px; }
.lista-preferencias { display: grid; max-width: 850px; gap: .55rem; margin: .8rem 0; }
.preferencia-card { overflow: hidden; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.preferencia-card > summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: .8rem; padding: .75rem .9rem; cursor: pointer; list-style: none; }
.preferencia-card > summary::-webkit-details-marker { display: none; }
.preferencia-card > summary > span { display: grid; min-width: 0; gap: .15rem; }
.preferencia-card > summary small { overflow-wrap: anywhere; color: var(--texto-secundario); font-size: .78rem; font-weight: 450; }
.preferencia-distintivo { flex: 0 0 auto; padding: .25rem .5rem; border-radius: 999px; background: #e4f4f1; color: #00665f; font-size: .7rem; font-weight: 800; }
.formulario-preferencia { display: grid; max-width: 850px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: .75rem; margin-top: .8rem; }
.formulario-preferencia label { min-width: 0; }
.formulario-preferencia .preferencia-check { display: flex; grid-column: 1 / -1; align-items: center; flex-direction: row; gap: .55rem; color: var(--texto-secundario); }
.preferencia-check input { width: 18px; min-height: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--rosa-oscuro); }
.formulario-preferencia .boton { justify-self: start; }
.formulario-eliminar-preferencia { margin: .4rem 0 .8rem; }
.formulario-eliminar-preferencia .boton { min-height: 38px; padding: .5rem .8rem; font-size: .82rem; }
.preferencia-nueva { max-width: 850px; margin-top: .9rem; padding: .85rem 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.preferencia-nueva > summary { cursor: pointer; color: var(--rosa-oscuro); font-weight: 750; }
.preferencia-nueva .formulario-preferencia { margin-top: .9rem; }
.vacio-preferencias { max-width: 850px; margin: .8rem 0; padding: .9rem; border: 1px dashed var(--borde); border-radius: 11px; color: var(--texto-secundario); }
.cliente-chat-directo > p:not(.rotulo) { max-width: 75ch; color: var(--texto-secundario); }
.chat-iniciar-cliente { width: min(100%, 300px); margin: 1rem auto 0; }
.conductores-viaje { margin: .8rem 0 .3rem; }
.conductores-viaje > strong { font-size: .86rem; }
.conductores-viaje ul { display: grid; gap: .45rem; margin: .55rem 0 0; padding: 0; list-style: none; }
.conductores-viaje li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .65rem; padding: .55rem .7rem; border-radius: 9px; background: #f4f5f6; }
.conductores-viaje li span, .monto-viaje span { color: var(--texto-secundario); font-size: .78rem; }
.monto-viaje { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin: .7rem 0 0; padding-top: .65rem; border-top: 1px solid var(--borde); }
.monto-viaje strong { font-size: 1.05rem; }
.metodos-pago { display: grid; max-width: 820px; gap: .65rem; margin: 1rem 0; }
.metodo-pago { padding: .85rem 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.metodo-pago > summary, .metodos-pago-admin > summary { cursor: pointer; font-weight: 750; }
.metodo-pago > small { display: block; margin-top: .75rem; color: var(--texto-secundario); }
.formulario-metodo-pago { display: grid; gap: .7rem; max-width: 700px; margin: .9rem 0; }
.formulario-metodo-pago textarea { min-height: 96px; resize: vertical; }
.accion-metodo-pago { margin: .5rem 0; }
.metodo-pago-nuevo { max-width: 820px; margin-top: 1rem; }
.metodos-pago-admin { margin: 1rem 0; padding: .9rem 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.lista-metodos-pago-admin { display: grid; gap: .65rem; margin-top: .8rem; }
.metodo-pago-admin { padding: .8rem; border: 1px solid var(--borde); border-radius: 10px; background: #fff; }
.metodo-pago-admin p { margin: .5rem 0; }
.datos-pago-admin { white-space: pre-wrap; overflow-wrap: anywhere; }

@keyframes entrada { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* Adaptación móvil */
@media (max-width: 1000px) {
  .aplicacion { grid-template-columns: 220px minmax(0, 1fr); }
  .menu-lateral { padding-inline: .8rem; }
  .menu-lateral .marca { width: 130px; height: 44px; }
  .formulario-usuario { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tarjetas-conductores { grid-template-columns: 1fr; }
  .campos-conductor-admin { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  .datos-perfil-cliente { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .formulario-documento-admin { grid-template-columns: minmax(180px, 1fr) auto; }
  .formulario-documento-admin .ayuda { grid-column: 1 / -1; white-space: normal; }
  .filtros-solicitudes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filtro-busqueda { grid-column: span 2; }
  .acciones-filtros { grid-column: 1 / -1; align-self: end; }
  .solicitud-resumen { grid-template-columns: minmax(150px, .8fr) minmax(220px, 1.2fr) minmax(160px, .8fr) 16px; gap: .7rem; }
}

@media (max-width: 700px) {
  .aplicacion { display: block; }
  .menu-lateral { position: fixed; z-index: 3000; inset: 0; display: flex; width: 100%; height: 100vh; height: 100dvh; min-height: 0; flex-direction: column; overflow: hidden; padding: calc(env(safe-area-inset-top) + .8rem) 1rem calc(env(safe-area-inset-bottom) + 1rem); box-shadow: none; transform: translateY(-105%); visibility: hidden; transition: transform .22s ease, visibility .22s ease; }
  .menu-lateral.abierto { transform: translateY(0); visibility: visible; }
  .menu-movil-cabecera { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; }
  .menu-movil-cabecera .marca { width: 132px; height: 44px; margin: 0; }
  .boton-cerrar-menu { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border: 1px solid #ffffff30; border-radius: 12px; background: #282a2e; color: #fff; font-size: 1.8rem; line-height: 1; }
  .menu-lateral > p { display: block; margin: .2rem 0 .55rem; padding: 0 .2rem; }
  .menu-lateral nav { display: grid; min-height: 0; flex: 1; gap: .55rem; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: .2rem .2rem 1rem; scrollbar-width: thin; }
  .menu-lateral nav a { min-height: 48px; padding: .7rem .8rem; font-size: .95rem; white-space: normal; overflow-wrap: anywhere; }
  .menu-lateral nav a.activo { box-shadow: inset 3px 0 var(--rosa); }
  .grupo-menu { display: grid; gap: .45rem; margin: .25rem 0; }
  .titulo-menu { min-height: 48px; padding: .65rem .8rem; font-size: .95rem; white-space: normal; }
  .titulo-menu::after { width: .4rem; height: .4rem; }
  .subenlaces-menu { display: grid; gap: .4rem; margin-left: .65rem; padding-left: .5rem; }
  .subenlaces-menu .enlace-menu { min-height: 46px; padding: .6rem .7rem; font-size: .88rem; }
  .pie-menu { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .4rem 0 0; padding: .85rem .2rem 0; border-top: 1px solid #ffffff26; }
  .pie-menu > a { max-width: 68%; font-size: .9rem; }
  .pie-menu form { display: block; }
  .pie-menu button { min-height: 44px; padding: .45rem .75rem; border: 1px solid #ffffff30; border-radius: 10px; font-size: .9rem; }
  .boton-menu-movil { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; padding: 0; border: 1px solid #d8dadd; border-radius: 11px; background: #fff; color: #252629; font-size: 1.2rem; line-height: 1; }
  .barra-superior { min-height: 56px; align-items: center; gap: .55rem; font-size: .76rem; }
  .barra-superior > span { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .usuario-superior { max-width: 25vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.menu-movil-abierto { overflow: hidden; overscroll-behavior: none; }
  .contenido { padding: 1rem; }
  .cabecera-pagina { align-items: flex-start; flex-direction: column; margin-bottom: 1.2rem; }
  .formulario-usuario { grid-template-columns: 1fr; }
  .tarjeta-conductor-cabecera { flex-direction: column; }
  .resumen-expediente { flex-direction: column; }
  .ventana-expediente { width: calc(100vw - 1rem); max-height: 96vh; border-radius: 12px; }
  .ventana-expediente > header, .ventana-carnet > header { padding: .7rem .8rem; }
  .contenido-expediente { padding: .45rem; }
  .expediente-panel { padding: .9rem; }
  .expediente-titulo { align-items: stretch; flex-direction: column; }
  .acciones-expediente .boton { width: 100%; }
  .ventana-carnet { width: calc(100vw - 1rem); max-height: 96vh; border-radius: 12px; }
  .controles-carnet-preview { align-items: flex-start; padding: .55rem .7rem; }
  .controles-carnet-preview p { max-width: 24ch; }
  .visor-carnet { height: 76vh; }
  .campos-conductor-admin, .campos-perfil-conductor, .datos-perfil-cliente, .formulario-preferencia { grid-template-columns: 1fr; }
  .paneles-conductor, .datos-conductor, .servicio-conductor dl, .campos-cliente-ruta { grid-template-columns: 1fr; }
  .acciones-estado-conductor { grid-template-columns: 1fr; }
  .busqueda-clientes { align-items: stretch; flex-direction: column; }
  .formulario-documento-admin { grid-template-columns: 1fr; }
  .formulario-documento-admin .ayuda { white-space: normal; }
  .formulario-admin { min-width: 205px; }
  .formulario-rechazo { min-width: 0; width: 100%; }
  .filtros-solicitudes { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .8rem; }
  .filtro-busqueda { grid-column: 1 / -1; }
  .acciones-filtros { grid-column: 1 / -1; }
  .acciones-filtros .boton { flex: 1; justify-content: center; }
  .solicitud-resumen { grid-template-columns: minmax(0, 1fr) 18px; gap: .65rem .8rem; }
  .solicitud-contacto, .solicitud-ruta-resumen, .solicitud-estados { grid-column: 1; }
  .solicitud-ruta-resumen { grid-template-columns: 1fr; }
  .solicitud-ruta-resumen strong { white-space: normal; }
  .solicitud-estados { display: flex; flex-wrap: wrap; }
  .solicitud-chevron { grid-column: 2; grid-row: 1 / 4; }
  .solicitud-paneles, .solicitud-ruta { grid-template-columns: 1fr; }
  .tarjeta-solicitud details > summary { padding: .85rem; }
  .solicitud-contenido { padding: .8rem; }
  .paginacion-solicitudes { gap: .55rem; }
  .lista-documentos li { align-items: flex-start; }
  .acciones-revision { gap: .55rem; }
  .ventana-documento { width: calc(100vw - 1rem); max-height: 92vh; }
  .ventana-documento > header { padding: .8rem; }
  .visor-documento { max-height: 78vh; }
  .visor-documento img { max-height: 76vh; }
  .visor-documento iframe { height: 76vh; }
  .linea { font-size: .65rem; }
  .login { margin: 3vh auto; }
}

@media (max-width: 420px) {
  .barra-superior { align-items: center; flex-direction: row; gap: .45rem; padding-block: .35rem; }
  .usuario-superior { display: none; }
  .barra-superior > span { font-size: .74rem; }
  .contenido { padding: .8rem; }
  .espaciado { padding: 1rem; }
  .titulo-panel { align-items: flex-start; }
  .lista-documentos li { flex-direction: column; }
  .lista-documentos .boton-documento { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Calculadora interna de tarifas */
.tarifa-prueba, .tarifa-resultado { max-width: 1040px; }
.tarifa-aviso { margin: 0 0 1.3rem; padding: .9rem 1rem; border-left: 4px solid var(--rosa); border-radius: 8px; background: #fff5f8; color: #45343b; }
.tarifa-formulario { gap: 1.1rem; }
.tarifa-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tarifa-campo-mapa { position: relative; min-width: 0; }
.tarifa-campo-mapa .estado-mapa { display: block; min-height: 1.25rem; margin-top: .3rem; color: var(--texto-secundario); font-size: .78rem; }
.tarifa-campo-mapa .opciones-mapa { position: absolute; z-index: 10; top: calc(100% - 1.2rem); right: 0; left: 0; max-height: 240px; overflow-y: auto; margin: 0; padding: .3rem; border: 1px solid var(--borde); border-radius: 11px; background: #fff; box-shadow: 0 12px 32px #18181b24; list-style: none; }
.tarifa-campo-mapa .opciones-mapa[hidden] { display: none; }
.tarifa-campo-mapa .opciones-mapa li { margin: 0; }
.tarifa-campo-mapa .opciones-mapa button { display: block; width: 100%; min-height: 44px; padding: .65rem .75rem; border: 0; border-radius: 7px; background: #fff; color: var(--texto); font: inherit; font-size: .86rem; text-align: left; cursor: pointer; }
.tarifa-campo-mapa .opciones-mapa button:hover, .tarifa-campo-mapa .opciones-mapa button:focus-visible { background: #fff0f5; outline: 2px solid var(--rosa); outline-offset: -2px; }
.tarifa-opciones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.tarifa-paradas { padding: .9rem 1rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.tarifa-paradas summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 750; }
.tarifa-campos-paradas { margin-top: .8rem; }
.tarifa-resultado { margin-top: 1.2rem; }
.tarifa-resumen { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.tarifa-resumen h2 { margin-bottom: .35rem; text-transform: capitalize; }
.tarifa-resumen p:last-child { margin: 0; color: var(--texto-secundario); }
.tarifa-total { color: var(--rosa-oscuro); font-size: clamp(1.5rem, 3vw, 2.3rem); white-space: nowrap; }
.tarifa-desglose { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1.2rem; margin: 1.2rem 0; }
.tarifa-desglose div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .55rem; border-bottom: 1px solid var(--borde); }
.tarifa-desglose dt { color: var(--texto-secundario); }
.tarifa-desglose dd { margin: 0; font-weight: 750; white-space: nowrap; }
.tarifa-resultado .tabla-contenedor { margin-top: 1rem; }
.tarifa-resultado .ayuda { margin-bottom: 0; }
@media (max-width: 1000px) { .tarifa-opciones { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .tarifa-campos, .tarifa-opciones, .tarifa-desglose { grid-template-columns: 1fr; } .tarifa-resumen { align-items: flex-start; flex-direction: column; } }

/* Operational trip control */
.pestanas-panel-control { display: flex; gap: .45rem; margin: 1rem 0; padding: .4rem; overflow-x: auto; border: 1px solid var(--borde); border-radius: 12px; background: #fff; }
.pestanas-panel-control a { display: inline-flex; align-items: center; min-height: 42px; padding: .55rem .8rem; border-radius: 9px; color: var(--texto); font-size: .8rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.pestanas-panel-control a:hover, .pestanas-panel-control a:focus-visible { background: #f3f4f6; outline: 2px solid var(--rosa); outline-offset: 1px; }
.modo-respaldo-viaje { display: flex; align-items: end; justify-content: flex-end; gap: .7rem; margin: .8rem 0; padding: .8rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.modo-respaldo-viaje label { min-width: min(100%, 280px); font-size: .78rem; }
.modo-respaldo-viaje input { width: 100%; min-height: 40px; margin-top: .35rem; padding: .55rem .65rem; }
.lista-viajes-control { display: grid; gap: .8rem; }
.tarjeta-viaje-control { overflow: hidden; border: 1px solid var(--borde); border-radius: 14px; background: #fff; box-shadow: 0 5px 18px #20222908; }
.tarjeta-viaje-control details > summary { display: grid; grid-template-columns: minmax(150px, .75fr) minmax(220px, 1.5fr) minmax(120px, .7fr); align-items: center; gap: 1rem; min-height: 74px; padding: 1rem 1.1rem; cursor: pointer; list-style: none; }
.tarjeta-viaje-control summary::-webkit-details-marker { display: none; }
.tarjeta-viaje-control summary > span:first-child { display: grid; gap: .3rem; }
.tarjeta-viaje-control summary small { color: var(--texto-secundario); font-size: .75rem; }
.ruta-resumen-viaje { overflow: hidden; color: var(--texto-secundario); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.contenido-viaje-control { display: grid; gap: 1rem; padding: 1rem; border-top: 1px solid var(--borde); background: #fcfcfd; }
.contenido-viaje-control dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.contenido-viaje-control dl div { min-width: 0; padding: .7rem; border-radius: 9px; background: #f2f3f5; }
.contenido-viaje-control dt { color: var(--texto-secundario); font-size: .72rem; font-weight: 700; }
.contenido-viaje-control dd { margin: .25rem 0 0; overflow-wrap: anywhere; font-size: .84rem; font-weight: 650; }
.formulario-viaje { min-width: 0; max-width: 620px; padding: .9rem; border: 1px solid var(--borde); border-radius: 11px; background: #fff; }
.formulario-viaje textarea, .formulario-admin textarea { width: 100%; min-height: 88px; padding: .65rem; border: 1px solid var(--borde); border-radius: 8px; font: inherit; }
.formulario-viaje fieldset.paradas-previstas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: .8rem; border: 1px solid var(--borde); border-radius: 9px; }
.formulario-viaje fieldset.paradas-previstas legend { padding: 0 .3rem; font-size: .83rem; font-weight: 750; }
.formulario-viaje fieldset.paradas-previstas label { display: flex; flex-direction: row; align-items: center; gap: .4rem; font-size: .8rem; }
.formulario-viaje fieldset.paradas-previstas input[type="radio"] { width: 18px; min-height: 18px; height: 18px; margin: 0; accent-color: var(--rosa-oscuro); }
.formulario-viaje textarea:disabled { background: #f1f2f4; cursor: not-allowed; }
.formulario-viaje-cliente fieldset.paradas-previstas label { display: flex; grid-template-columns: none; flex-direction: row; align-items: center; gap: .5rem; min-height: 40px; }
.formulario-viaje-cliente fieldset.paradas-previstas input[type="radio"] { width: 18px; min-height: 18px; height: 18px; margin: 0; accent-color: #c50051; }
.formulario-viaje-cliente textarea:disabled { background: #f1f2f4; cursor: not-allowed; }
.incidente-viaje { display: grid; gap: .55rem; padding: .9rem; border: 1px solid #d78924; border-left: 4px solid #d78924; border-radius: 10px; background: #fff9ef; }
.incidente-viaje h3 { margin: 0; font-size: .95rem; }
.incidente-viaje p { margin: 0; }
.incidente-viaje .formulario-admin { max-width: 620px; }
.servicios-viaje-conductor { display: grid; gap: 1rem; }
.formulario-accion-viaje { min-width: 0; max-width: 440px; padding: .7rem; border: 1px solid var(--borde); border-radius: 10px; background: #fafafb; }
.servicio-conductor .formulario-accion-viaje + .formulario-accion-viaje { margin-top: .5rem; }
.bloque-cotizacion { display: grid; gap: .65rem; padding: 1rem; border: 1px solid #e7d3dc; border-radius: 12px; background: #fff9fc; }
.bloque-cotizacion > .rotulo, .bloque-cotizacion > p { margin: 0; }
.bloque-cotizacion > label { display: grid; gap: .35rem; color: var(--texto-secundario); font-size: .78rem; font-weight: 700; }
.bloque-cotizacion > label input { width: 100%; min-height: 42px; padding: .55rem .65rem; border: 1px solid var(--borde); border-radius: 8px; background: #fff; color: var(--texto); font: 500 .78rem/1.3 ui-monospace, monospace; }
.formulario-cotizacion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(100px, .45fr); gap: .65rem; padding-top: .75rem; border-top: 1px solid #eadde3; }
.formulario-cotizacion label { display: grid; gap: .35rem; font-size: .8rem; font-weight: 750; }
.formulario-cotizacion :is(input, select) { min-height: 44px; padding: .55rem .65rem; border: 1px solid var(--borde); border-radius: 8px; background: #fff; color: var(--texto); font: inherit; }
.formulario-cotizacion .ayuda, .formulario-cotizacion button { grid-column: 1 / -1; }
.cotizacion-cliente { display: grid; gap: .45rem; margin: 1rem 0; padding: 1rem; border: 1px solid #ead5df; border-radius: 12px; background: #fff9fc; }
.cotizacion-cliente .rotulo, .cotizacion-cliente > strong { margin: 0; }
.cotizacion-cliente .boton { justify-self: start; }
@media (max-width: 560px) { .formulario-cotizacion { grid-template-columns: 1fr; } .formulario-cotizacion :is(.ayuda, button) { grid-column: auto; } .cotizacion-cliente .boton { width: 100%; } }
@media (max-width: 800px) {
  .tarjeta-viaje-control details > summary { grid-template-columns: minmax(0, 1fr); gap: .55rem; }
  .ruta-resumen-viaje { white-space: normal; }
  .modo-respaldo-viaje { align-items: stretch; flex-direction: column; }
  .modo-respaldo-viaje .boton { justify-content: center; }
}
@media (max-width: 560px) {
  .pestanas-panel-control { margin-inline: -.25rem; }
  .contenido-viaje-control { padding: .7rem; }
  .contenido-viaje-control dl { grid-template-columns: 1fr; }
  .formulario-viaje, .formulario-accion-viaje { width: 100%; max-width: none; }
}

/* Carnet de cliente: la vista privada del perfil y el enlace público comparten identidad visual. */
.panel-carnet-cliente { display: grid; gap: .8rem; }
.panel-carnet-cliente > p { margin: 0; color: var(--texto-secundario); }
.etiqueta-carnet-cliente { padding: .3rem .55rem; border: 1px solid #d8e1e0; border-radius: 999px; background: #f5f7f7; color: #4d5b5a; font-size: .72rem; font-weight: 800; }
.vista-carnet-cliente { display: flex; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid #d8e5e1; border-radius: 14px; background: linear-gradient(135deg, #f4fbf9, #fff); }
.vista-carnet-cliente-foto, .vista-carnet-cliente-iniciales { width: 82px; height: 82px; flex: 0 0 82px; border: 3px solid #d7f1ea; border-radius: 50%; background: #e6f8f3; object-fit: cover; }
.vista-carnet-cliente-iniciales { display: grid; place-items: center; color: #087b6b; font-size: 1.65rem; font-weight: 850; }
.vista-carnet-cliente > div { display: grid; min-width: 0; gap: .18rem; }
.vista-carnet-cliente > div > span { color: #087b6b; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.vista-carnet-cliente > div > strong { overflow-wrap: anywhere; font-size: 1.05rem; }
.vista-carnet-cliente > div > small { color: #65716f; font-size: .75rem; line-height: 1.4; }
.formulario-foto-cliente { display: grid; justify-items: start; gap: .45rem; padding-top: .8rem; border-top: 1px solid var(--borde); }
.formulario-foto-cliente label { display: grid; gap: .35rem; font-size: .83rem; font-weight: 750; }
.formulario-foto-cliente input[type="file"] { width: 100%; min-height: 44px; }
.formulario-foto-cliente > small { color: var(--texto-secundario); font-size: .75rem; }
.estado-carnet-cliente { padding: .65rem .8rem; border-radius: 9px; font-size: .8rem; font-weight: 700; }
.estado-carnet-cliente.privado { background: #f1f4f4; color: #495957; }
.estado-carnet-cliente.compartido { background: #eaf8f2; color: #145d49; }
.formulario-compartir-carnet { display: grid; gap: .65rem; }
.formulario-compartir-carnet .preferencia-check { display: flex; align-items: flex-start; gap: .5rem; font-size: .82rem; line-height: 1.45; }
.formulario-compartir-carnet .preferencia-check input { flex: 0 0 auto; margin-top: .2rem; }
.acciones-carnet-cliente { display: flex; flex-wrap: wrap; gap: .55rem; }
.enlace-carnet-cliente { display: grid; gap: .35rem; color: var(--texto-secundario); font-size: .76rem; font-weight: 700; }
.enlace-carnet-cliente input { width: 100%; min-height: 42px; padding: .55rem .65rem; border: 1px solid var(--borde); border-radius: 8px; background: #f8f9fa; color: #34403f; font: 500 .78rem/1.3 ui-monospace, monospace; }
.panel-carnet-cliente .formulario-eliminar-preferencia { justify-self: start; }
.panel-carnet-cliente :is(button, a, input):focus-visible { outline: 3px solid #087e73; outline-offset: 3px; }
@media (max-width: 560px) {
  .vista-carnet-cliente { align-items: flex-start; }
  .vista-carnet-cliente-foto, .vista-carnet-cliente-iniciales { width: 66px; height: 66px; flex-basis: 66px; }
  .acciones-carnet-cliente { flex-direction: column; }
  .acciones-carnet-cliente .boton { width: 100%; }
}

/* Accesos por tipo de cuenta y seguimiento de servicios. */
.acceso-selector { width: min(760px, calc(100% - 2rem)); }
.acceso-selector h1 { max-width: 15ch; margin: .2rem auto 1.5rem; text-align: center; }
.accesos-login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.acceso-login-card { display: grid; min-height: 188px; align-content: start; gap: .55rem; padding: 1.1rem; border: 1px solid var(--borde); border-radius: 14px; background: #fff; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.acceso-login-card:hover { transform: translateY(-2px); border-color: #c8cdd1; background: #fcfcfd; }
.acceso-login-card > span:first-child { color: var(--rosa-oscuro); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.acceso-login-card > strong { font-size: 1.2rem; }
.acceso-login-card > small { max-width: 32ch; color: var(--texto-secundario); font-size: .86rem; line-height: 1.45; }
.acceso-login-card .acceso-login-accion { align-self: end; margin-top: .35rem; color: var(--rosa-oscuro); font-size: .83rem; font-weight: 800; }
.login-descripcion { margin: -.9rem 0 1.3rem; color: var(--texto-secundario); text-align: center; }
.login-rol > .ayuda:last-child { margin-bottom: 0; }
.pasos-servicio { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin: .9rem 0; padding: 0; list-style: none; }
.paso-servicio { display: grid; align-content: start; gap: .35rem; min-width: 0; min-height: 90px; padding: .7rem; border: 1px solid var(--borde); border-radius: 12px; background: #f7f8f9; color: #596168; }
.paso-servicio strong { font-size: .78rem; line-height: 1.25; }
.paso-servicio small { color: inherit; font-size: .75rem; line-height: 1.4; }
.paso-servicio.completado { border-color: #b8dfd5; background: #f0f8f5; color: #145b4e; }
.paso-servicio.actual { border-color: #d890a6; background: #fff4f7; color: #8e1239; }
.paso-servicio[aria-current="step"] { box-shadow: 0 0 0 2px #b8004318; }
.paso-servicio-numero { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; border-radius: 50%; background: #e5e8eb; color: #353b40; font-size: .75rem; font-variant-numeric: tabular-nums; font-weight: 850; }
.paso-servicio.completado .paso-servicio-numero { background: #d8eee6; color: #145b4e; }
.paso-servicio.actual .paso-servicio-numero { background: #f5d6df; color: #8e1239; }
.solicitud-cliente .cotizacion-cliente { display: grid; gap: .55rem; margin: .75rem 0; padding: .8rem; border: 1px solid var(--borde); border-radius: 12px; background: #fafafb; }
.cliente-nota-operativa { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem 1rem; }
.cliente-nota-operativa .rotulo { flex-basis: 100%; }
.cliente-nota-operativa h2 { margin: 0; }
.cliente-nota-operativa p:not(.rotulo) { flex: 1 1 22rem; }
.panel-siguiente-paso { display: grid; gap: .55rem; padding: 1.1rem; border: 1px solid var(--borde); border-radius: 14px; background: #fff; }
.panel-siguiente-paso h2, .panel-siguiente-paso p { margin: 0; }
.panel-siguiente-paso .boton { justify-self: start; }
.panel-siguiente-paso .rotulo { margin: 0; }
.driver-servicio-destacado { display: grid; gap: .6rem; padding: 1rem; border: 1px solid var(--borde); border-radius: 14px; background: #fff; }
.driver-servicio-destacado h2, .driver-servicio-destacado p { margin: 0; }
.driver-servicio-destacado dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.driver-servicio-destacado dl div { min-width: 0; padding: .7rem; border-radius: 10px; background: #f5f6f7; }
.driver-servicio-destacado dt { color: var(--texto-secundario); font-size: .72rem; font-weight: 700; }
.driver-servicio-destacado dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-size: .82rem; font-weight: 700; }
.driver-bottom-nav { display: none; }
.aviso-saldo-conductor { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: .8rem 0 1rem; padding: .9rem 1rem; border: 1px solid #e4b45a; border-radius: 12px; background: #fff8e9; color: #5d4516; }
.aviso-saldo-conductor > div { display: grid; gap: .15rem; }
.aviso-saldo-conductor > div > span { color: #6d592d; font-size: .82rem; }
.aviso-saldo-critico { margin: 0; }
.saldo-conductor-grid, .saldo-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.saldo-resumen { display: grid; gap: .65rem; }
.saldo-total { display: block; font-size: clamp(2rem, 6vw, 3rem); font-variant-numeric: tabular-nums; letter-spacing: -.035em; line-height: 1; }
.saldo-total small { color: var(--texto-secundario); font-size: .9rem; letter-spacing: 0; }
.saldo-resumen dl { display: grid; gap: .45rem; margin: .3rem 0; }
.saldo-resumen dl div { display: flex; justify-content: space-between; gap: .8rem; padding-top: .5rem; border-top: 1px solid var(--borde); }
.saldo-resumen dt { color: var(--texto-secundario); font-size: .8rem; }
.saldo-resumen dd { margin: 0; font-size: .82rem; font-variant-numeric: tabular-nums; font-weight: 750; }
.saldo-registros { display: grid; gap: .55rem; }
.saldo-registro, .saldo-admin-card { display: grid; gap: .25rem; padding: .75rem 0; border-top: 1px solid var(--borde); }
.saldo-registro > div, .saldo-admin-card > div { display: flex; align-items: baseline; justify-content: space-between; gap: .65rem; }
.saldo-registro > div > strong, .saldo-admin-card > div > strong { font-size: .87rem; }
.saldo-registro > div > span { color: var(--texto-secundario); font-size: .8rem; text-align: right; }
.saldo-registro > small, .saldo-admin-card > small { color: var(--texto-secundario); font-size: .74rem; line-height: 1.4; }
.saldo-registro > small + small { color: #60686f; }
.saldo-movimiento.positivo { color: #1b6a55; }
.saldo-movimiento.negativo { color: #9c2a3b; }
.saldo-pendiente { padding: .75rem; border-radius: 10px; background: #f5f6f7; color: #555e65; font-size: .82rem; line-height: 1.5; }
.saldo-aclaratoria { grid-column: 1 / -1; margin: 0; }
.saldo-panel-completo { grid-column: 1 / -1; }
.acciones-wallet { display: flex; flex-wrap: wrap; gap: .55rem; }
.formulario-tasa-wallet { max-width: 640px; }
@media (max-width: 700px) {
  .aviso-saldo-conductor { align-items: stretch; flex-direction: column; }
  .aviso-saldo-conductor .boton { width: 100%; }
  .saldo-conductor-grid, .saldo-admin-grid { grid-template-columns: 1fr; }
  .saldo-panel-completo, .saldo-aclaratoria { grid-column: 1; }
  .saldo-registro > div, .saldo-admin-card > div { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .acciones-wallet .boton { flex: 1 1 140px; }
}
@media (max-width: 700px) {
  .accesos-login { grid-template-columns: 1fr; }
  .acceso-login-card { min-height: 0; }
  .pasos-servicio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paso-servicio { min-height: 82px; }
  .paso-servicio small { font-size: .75rem; }
  .cliente-nota-operativa { align-items: stretch; flex-direction: column; }
  .cliente-nota-operativa .boton { width: 100%; }
  .driver-servicio-destacado dl { grid-template-columns: 1fr; }
  .aplicacion:has(.driver-bottom-nav) .espacio { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
  .driver-bottom-nav { position: fixed; z-index: 2000; inset: auto 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .2rem; padding: .4rem .5rem calc(.45rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--borde); background: rgba(255,255,255,.98); box-shadow: 0 -8px 24px rgba(22,28,33,.08); }
  .driver-bottom-nav a { display: grid; min-height: 48px; place-items: center; border-radius: 9px; color: var(--texto-secundario); font-size: .78rem; font-weight: 750; text-align: center; }
  .driver-bottom-nav a[aria-current="page"] { background: #fff2f6; color: var(--rosa-oscuro); }
}
