/* PWA del conductor: botones grandes, lectura rápida, una mano. */
.drv-main { max-width: 640px; margin: 0 auto; padding: .8rem; padding-bottom: 5rem; }
.offline { background: var(--danger); color: #fff; text-align: center; padding: .4rem; font-size: .9rem; }
.big { width: 100%; min-height: 56px; font-size: 1.1rem; font-weight: 700; border-radius: 12px; margin-top: .6rem; }
.avail { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.avail .dot { width: 14px; height: 14px; border-radius: 50%; background: #aaa; display: inline-block; margin-right: .4rem; }
.avail.on .dot { background: var(--ok); }
.trip-card { border-left: 6px solid var(--brand); cursor: pointer; }
.trip-card.need { border-left-color: var(--accent); background: #fffaf0; }
.trip-card .when { font-size: 1.3rem; font-weight: 800; }
.trip-card .addr { margin: .25rem 0; }
.addr b { display: inline-block; min-width: 4.2rem; color: var(--muted); font-weight: 600; font-size: .8rem; text-transform: uppercase; }
.deadline { font-weight: 700; color: var(--danger); }
.section-title { margin: 1rem 0 .4rem; font-size: 1rem; color: var(--muted); text-transform: uppercase; letter-spacing: .5px; }
.kv { display: grid; grid-template-columns: 7.5rem 1fr; gap: .3rem .6rem; font-size: .95rem; }
.kv dt { color: var(--muted); } .kv dd { margin: 0; }
.back { background: none; border: 0; color: var(--brand); font-size: 1rem; padding: .3rem 0; cursor: pointer; }
.gps { font-size: .8rem; }
/* Firma del paciente */
.lbl input, .lbl select { margin-top: .2rem; font-size: 1.05rem; min-height: 48px; color: var(--text, #222); }
.consent { margin: .9rem 0 .4rem; padding: .7rem; border: 1px solid #3d4aa8; border-radius: 10px; background: #f3f4fb; color: #14163f; font-weight: 600; }
.consent label { display: flex; gap: .6rem; align-items: flex-start; margin: 0; font-size: 1rem; color: #14163f; }
.consent input { width: 26px; height: 26px; flex: 0 0 auto; margin: 0; }
.sig-label { margin-top: .6rem; font-size: .85rem; color: var(--muted); }
.sig-pad { display: block; width: 100%; height: 220px; border: 2px dashed #3d4aa8; border-radius: 12px; background: #fff; touch-action: none; cursor: crosshair; }
.sig-btns { display: grid; grid-template-columns: 1fr 2fr; gap: .6rem; }
[hidden] { display: none !important; }
/* Aviso de servicio nuevo (refuerzo del push) */
.offer-banner { position: sticky; top: 0; z-index: 50; background: #14163f; color: #fff; padding: .8rem 1rem; box-shadow: 0 4px 14px rgba(0,0,0,.25);
  border-bottom: 4px solid #3d4aa8; animation: ob-pulse 1.2s ease-in-out 3; }
.offer-banner .row { display: flex; gap: .5rem; margin-top: .5rem; }
.offer-banner .btn { flex: 1; min-height: 46px; font-weight: 700; }
@keyframes ob-pulse { 50% { background: #3d4aa8; } }
.push-card { border-left: 6px solid #3d4aa8; background: #f3f4fb; color: #14163f; }
