@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");
:root{--bg:#071e25;--panel:#09363f;--panel2:#0d414b;--teal:#11616b;--gold:#e7cb85;--gold2:#cdaa56;--ivory:#f8f5ed;--muted:#b3c9c8;--line:rgba(224,193,111,.34);--danger:#f3a9a8;--green:#74d9b0;--shadow:0 16px 45px rgba(0,0,0,.23)}
[hidden]{display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse at 92% 4%,rgba(25,117,118,.28),transparent 35%),linear-gradient(160deg,#051b21 0%,#092d37 70%,#061d25 100%);color:var(--ivory);font:15px/1.55 "DM Sans",sans-serif;margin:0;min-height:100dvh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:repeating-linear-gradient(128deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 1px,transparent 8px);opacity:.4;z-index:-1}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--gold)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,"DM Sans",sans-serif;line-height:1.22}h1{font-size:clamp(2.5rem,7.7vw,4.3rem);letter-spacing:-.06em;font-weight:800;margin-bottom:16px}h1 em,h2 em,.identity em,.footer em{font-style:normal;color:var(--gold)}h2{font-size:1.7rem;letter-spacing:-.035em}h3{font-size:1.02rem;margin:0}p{line-height:1.65}small,.hint{font-size:12.5px;color:var(--muted)}
.header{background:rgba(2,21,27,.65);border-bottom:1px solid rgba(231,203,133,.14);backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}.header-inner{max-width:960px;margin:auto;padding:11px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px}.identity{display:flex;align-items:center;gap:10px;min-width:0}.identity img{border-radius:14px;box-shadow:0 0 0 1px var(--line)}.identity span{display:flex;flex-direction:column}.identity strong{font-family:Manrope,sans-serif;letter-spacing:-.025em;font-size:13px;line-height:1.35}.identity small{font-size:10px}.tel{border:1px solid var(--line);color:var(--gold);font-size:13px;padding:9px 12px;border-radius:30px;white-space:nowrap}.shell{max-width:760px;margin:0 auto;padding:0 18px}.hero{padding:38px 4px 26px;position:relative}.hero:before{content:"";position:absolute;right:-60px;top:20px;width:180px;height:180px;border:1px solid rgba(231,203,133,.12);border-radius:50%;box-shadow:0 0 0 26px rgba(231,203,133,.025),0 0 0 52px rgba(231,203,133,.018);pointer-events:none}.hero p:not(.eyebrow){max-width:490px;color:#c8d9d6}.hero-tags{display:flex;gap:9px;flex-wrap:wrap}.hero-tags span{font-size:11px;letter-spacing:.01em;color:var(--gold);border:1px solid rgba(231,203,133,.25);padding:6px 10px;border-radius:50px;background:rgba(231,203,133,.05)}.eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.19em;color:var(--gold);margin-bottom:12px}.star{font-size:17px;margin-right:4px}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;background:rgba(4,31,39,.7);border:1px solid var(--line);padding:5px;border-radius:18px;position:sticky;top:70px;z-index:40;backdrop-filter:blur(16px);box-shadow:var(--shadow)}.tab{background:transparent;color:#c9d8d5;border:0;border-radius:13px;padding:13px 5px;font-size:12px;font-weight:700}.tab.active{background:linear-gradient(130deg,#d7ad59,#f3d794);color:#0b2830;box-shadow:0 3px 12px rgba(224,193,111,.2)}.view{display:none;padding-top:28px;animation:enter .24s ease}.view.active{display:block}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.section-heading{margin:0 4px 24px}.section-heading h2{margin-bottom:8px}.section-heading p:last-child{font-size:13px;color:var(--muted);margin-bottom:0;max-width:590px}.card{border:1px solid var(--line);border-radius:23px;background:linear-gradient(136deg,rgba(13,63,72,.97),rgba(7,44,52,.96));box-shadow:var(--shadow);padding:21px;margin-bottom:17px;position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;position:absolute;inset:0;background-image:repeating-linear-gradient(129deg,rgba(231,203,133,.02) 0,rgba(231,203,133,.02) 1px,transparent 1px,transparent 9px)}.card>*{position:relative}.section-mini{display:flex;align-items:center;gap:11px;margin-bottom:18px}.section-mini span{background:linear-gradient(135deg,#bb923f,#f6df9e);color:#092832;width:33px;height:33px;display:grid;place-items:center;border-radius:50%;font-weight:800;font-size:12px}.section-mini h3{font-size:17px}.between{display:flex;align-items:center;justify-content:space-between;gap:8px}.between h3{margin:0}.caption{font-size:10px;letter-spacing:.13em;color:var(--gold);font-weight:800}
label{display:block;font-size:12px;color:#dddfd7;font-weight:700;margin:13px 0 6px}input,select,textarea{display:block;width:100%;border-radius:13px;border:1px solid rgba(159,196,192,.38);background:rgba(2,28,37,.83);color:var(--ivory);padding:13px 14px;min-height:49px;margin-top:6px;font-size:15px;outline:0;box-shadow:inset 0 2px 7px rgba(0,0,0,.08)}textarea{resize:vertical;min-height:76px}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(231,203,133,.13)}input::placeholder,textarea::placeholder{color:#839ea3;opacity:1}input::-webkit-calendar-picker-indicator{filter:invert(85%) sepia(20%) saturate(350%) hue-rotate(347deg)}option{background:#09323c;color:#fff}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-times{display:flex;gap:8px}.choice{background:rgba(2,26,33,.56);border:1px solid rgba(231,203,133,.34);border-radius:12px;padding:12px 10px;color:var(--muted);font-size:12px;font-weight:800;flex:1}.choice.active{color:#082b33;background:linear-gradient(130deg,#d4aa56,#f2d594);border-color:#f2d594}.hint{margin:9px 0 14px}.hint strong{color:#e8dbb0}.primary,.secondary{display:flex;justify-content:center;align-items:center;gap:9px;border-radius:15px;border:1px solid var(--gold);padding:15px 16px;font-size:13px;min-height:51px;font-weight:800;letter-spacing:.05em}.primary{color:#113038;background:linear-gradient(100deg,#c9983e,#f2d68d);box-shadow:0 7px 20px rgba(210,173,84,.17)}.primary:disabled{opacity:.5;cursor:wait}.secondary{color:var(--gold);background:rgba(10,48,56,.8)}.primary:hover:not(:disabled){filter:brightness(1.075)}.secondary:hover{background:rgba(220,185,94,.12)}.full{width:100%;margin:10px 0}.tiny-btn{border:1px solid var(--line);background:#0a3942;border-radius:10px;padding:8px 11px;color:var(--gold);font-size:11px;font-weight:700}.text-button{background:none;border:0;color:var(--gold);text-decoration:underline;padding:0;font-weight:700}.subnote{font-size:12px;color:#d4e1da;background:rgba(228,197,122,.06);border:1px solid rgba(228,197,122,.19);border-radius:12px;margin-top:17px;padding:11px 13px}.location-pane{padding:4px 0}.location-pane>strong{font-size:14px;color:var(--gold)}.departments{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.departments button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:30px;font-size:11px;padding:7px 10px}.departments button.selected{background:rgba(231,203,133,.18);color:var(--gold);border-color:var(--gold)}.departments select{min-height:37px;width:auto;max-width:100%;padding:7px 9px;margin:0;font-size:11px;border-radius:30px}.loc-search{display:flex;gap:7px;align-items:end}.loc-search input{flex:1;min-width:0}.loc-search button{align-self:end;min-height:49px}.results{display:grid;gap:6px;margin:8px 0}.result{display:block;text-align:left;border-radius:12px;border:1px solid rgba(231,203,133,.2);padding:12px;background:rgba(7,37,46,.96);color:var(--ivory);font-size:12px}.result:hover{border-color:var(--gold)}.result small{display:block;margin-top:3px}.location-selected{border-left:3px solid var(--gold);margin:9px 0;padding:8px 11px;background:rgba(231,203,133,.08);font-size:12px;overflow-wrap:anywhere}.location-selected b{color:var(--gold)}.wayline{height:24px;display:flex;justify-content:center;align-items:center;color:var(--gold)}.stops-wrapper{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:12px 0;margin:8px 0}.stop-row{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.09)}.stop-row:last-child{border:0}.stop-row>button{float:right}.preview{border-color:var(--gold)}.preview h3{color:var(--gold);margin-bottom:11px}.preview-row{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:13px}.preview-row span:first-child{color:var(--muted)}.success{text-align:center}.success .mark{font-size:38px;color:var(--green)}.success .code{font:800 clamp(22px,6vw,34px) Manrope,sans-serif;overflow-wrap:anywhere;letter-spacing:-.035em;color:var(--gold);margin:12px 0}.reservation{border:1px solid rgba(231,203,133,.27);background:rgba(4,31,39,.65);border-radius:15px;padding:14px;margin:12px 0}.reservation summary{font-weight:800;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}.reservation summary::-webkit-details-marker{display:none}.reservation h4{margin:4px 0;font-size:13px}.reservation p{font-size:12px;color:var(--muted);margin:5px 0}.status-pill{font-size:10px;border-radius:40px;border:1px solid rgba(231,203,133,.4);padding:5px 8px;color:var(--gold);font-weight:800;white-space:nowrap}.reservation .action-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.reservation .action-row button{flex:1;min-width:145px}.card h3+p{margin-top:12px}.install-logo{display:flex;gap:17px;align-items:center;margin-bottom:23px}.install-logo img{border-radius:20px}.install-logo div{display:flex;flex-direction:column;gap:5px}.install-logo strong{font:800 18px Manrope,sans-serif}.install-logo span{color:var(--muted);font-size:12px}.link-action{display:inline-flex}.offline-band{position:fixed;top:0;left:0;right:0;background:#873d28;color:#fff;padding:8px 16px;text-align:center;font-size:12px;z-index:200}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#f1d28d;color:#062c34;padding:12px 18px;border-radius:13px;box-shadow:var(--shadow);z-index:150;width:min(92vw,420px);font-weight:700;text-align:center}.footer{margin:48px 0 26px;text-align:center;border-top:1px solid var(--line);padding-top:26px;color:var(--muted)}.footer strong{font-size:14px;color:var(--ivory);letter-spacing:-.04em}.footer p{font-size:12px}.footer div{display:flex;justify-content:center;gap:19px;font-size:13px;margin-bottom:19px;color:var(--gold)}.footer small{font-size:11px}
@media(max-width:520px){.shell{padding:0 13px}.header-inner{padding:10px 13px}.identity strong{font-size:11px}.identity img{width:42px;height:42px}.tel{padding:7px 9px;font-size:12px}.tel span{display:none}.hero{padding-top:31px}.hero:before{right:-100px;opacity:.6}.tabs{top:63px}.tab{font-size:11px;padding:12px 2px}.card{padding:16px;border-radius:19px}.two-cols{gap:9px}.quick-times{gap:5px}.choice{padding:10px 4px;font-size:10.5px}.loc-search{flex-wrap:wrap}.loc-search input{flex-basis:66%}.loc-search button{flex:1}.section-heading{margin-bottom:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
/* v1.1 — confirmación de traslado: tipografía legible, recorrido protagonista,
   mínima altura vertical y acciones separadas. Nada de cifras inventadas. */
.preview{
  background:linear-gradient(145deg,rgba(15,64,67,.98),rgba(8,37,45,.98));
  border-color:rgba(235,206,143,.65);
  padding:20px;
  scroll-margin-top:146px;
  overflow-wrap:anywhere;
}
.preview .preview-title{margin:0 0 17px}
.preview .preview-eyebrow{display:block;font:800 10px Manrope,sans-serif;letter-spacing:.16em;color:#ecd18e;margin-bottom:7px}
.preview .preview-title h3{font-size:clamp(20px,5vw,25px);letter-spacing:-.03em;color:#f8efdc;margin:0 0 5px}
.preview .preview-title p{font-size:12.5px;line-height:1.55;color:#d2e0d8;margin:0}
.preview-journey{
  display:grid;gap:4px;
  padding:13px 14px;
  border:1px solid rgba(216,181,106,.30);
  border-radius:16px;
  background:linear-gradient(125deg,rgba(3,30,36,.65),rgba(16,61,62,.50))
}
.preview-place{display:grid;grid-template-columns:19px minmax(0,1fr);gap:10px;align-items:start;padding:6px 0}
.preview-place-icon{display:grid;place-items:center;font-size:15px;color:#f1d391;line-height:1.8}
.preview-place-text{min-width:0}
.preview-label{font:800 10px Manrope,sans-serif;letter-spacing:.12em;color:#d9bc7e;display:block}
.preview-place-name{display:block;margin-top:4px;font-size:14px;line-height:1.45;letter-spacing:-.01em;font-weight:700;color:#f9f2e4;overflow-wrap:anywhere}
.preview-stops{padding:2px 0 4px 30px;color:#c0d4cd;font-size:12px}
.preview-stops-detail{display:inline-block;margin-left:9px;vertical-align:middle}
.preview-stops-detail summary{color:#f1d391;cursor:pointer}
.preview-stops-detail p{margin:6px 0 0;font-size:12px}
.preview-chips{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:9px;margin:11px 0}
.preview-chip{background:rgba(2,28,36,.42);border:1px solid rgba(216,181,106,.22);padding:11px 12px;border-radius:12px;min-width:0}
.preview-chip strong{display:block;margin-top:4px;font-size:13px;line-height:1.4;color:#f8efe1;font-weight:800}
.preview-budget{padding:11px 13px;border-radius:13px;border:1px solid rgba(213,181,112,.32);background:rgba(214,174,99,.085)}
.preview-budget strong{display:block;font-size:14px;color:#f3dfb7;line-height:1.45;margin-top:3px}
.preview-budget p{font-size:12px;color:#d1dfd4;margin:4px 0 0;line-height:1.5}
.preview-tools{display:flex;justify-content:flex-start;margin:9px 0 2px}
.preview-maps{display:inline-flex;align-items:center;min-height:42px;padding:7px 4px;color:#f0d393;font-size:12px;font-weight:800;line-height:1.4;text-decoration:underline;text-underline-offset:3px}
.preview-extra{border-top:1px solid rgba(231,203,133,.2);margin-top:10px;padding-top:10px}
.preview-extra>summary{list-style:none;cursor:pointer;min-height:40px;display:flex;align-items:center;gap:8px;color:#cbded4;font-size:12px;font-weight:700}
.preview-extra>summary::-webkit-details-marker{display:none}
.preview-extra>summary:before{content:"＋";color:var(--gold);font-weight:800;font-size:16px}
.preview-extra[open]>summary:before{content:"−"}
.preview-extra-body{padding:3px 0}
.preview-extra .preview-row{grid-template-columns:82px minmax(0,1fr);font-size:12px;gap:8px;padding:8px 0}
.preview-extra .preview-row span:last-child{color:#f1ece2;overflow-wrap:anywhere}
#submit-actions{padding-bottom:max(14px,env(safe-area-inset-bottom))}
#confirm-booking{font-size:13.5px;letter-spacing:.02em;line-height:1.3;text-align:center;background:linear-gradient(100deg,#e8bc63,#f6dc9d);border-color:#f5d994;color:#102c32}
#edit-booking{min-height:46px;font-size:13px}
@media(max-width:520px){
  .preview{padding:16px 14px;border-radius:19px}
  .preview-chips{gap:7px}
  .preview-chip{padding:10px 9px}
  .preview-chip strong{font-size:12px}
  .preview-place-name{font-size:13.5px}
  .preview-journey{padding:11px 10px}
  #confirm-booking{min-height:56px}
}
@media(max-width:350px){
  .preview-chips{grid-template-columns:1fr}
}


/* PWA v2 · Búsqueda general Uruguay + trayecto compacto de un vistazo */
.location-widget{min-width:0}
.location-title{font:800 12px Manrope,"DM Sans",sans-serif;letter-spacing:.09em;color:#f1d79d;margin-bottom:11px}
.location-controls{min-width:0}
.location-controls .loc-search{gap:9px}
.location-controls .loc-search input{min-width:0}
.location-widget .results{display:grid;gap:8px;margin:10px 0}
.location-widget .results button.result{
  text-align:left;padding:12px 13px!important;display:flex!important;flex-direction:column!important;
  align-items:flex-start!important;gap:4px!important;border-radius:13px!important;
  min-height:64px;background:#0b2c36;border:1px solid rgba(235,204,140,.26);
  white-space:normal;overflow-wrap:anywhere
}
.location-widget .results button.result:active,.location-widget .results button.result:hover{
  background:#153f48;border-color:#d9b96f;
}
.location-widget .results .result-place{border-color:rgba(232,197,122,.52)!important}
.location-widget .result-title{font-weight:750;font-size:14px;line-height:1.4;color:#f9f3e8;white-space:normal}
.location-widget .result-subtitle{font-size:11.5px;line-height:1.35;color:#d5d9ce;white-space:normal}
.location-widget .geo-feedback{margin:8px 0 2px;color:#d2d9ce;font-size:12px}
.location-widget .geo-attribution{font-size:10px;color:#b8c9bf;line-height:1.4}
.location-widget .location-selected{
  min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:12px;
  border:1px solid rgba(128,216,174,.36);background:linear-gradient(110deg,#0b3538,#103a42);
  border-radius:14px;padding:14px 12px;margin:10px 0;
}
.location-chosen-content{min-width:0;flex:1}
.location-selected-label{display:block;color:#fff4dd;font-size:14px;font-weight:750;line-height:1.45;overflow-wrap:anywhere}
.location-selected-hint{display:block;color:#c4d7ce;font-size:11px;line-height:1.5;margin-top:4px}
.location-edit{align-self:center;flex-shrink:0;min-height:43px!important}
.route-overview{
  margin-top:18px;padding:17px;
  background:radial-gradient(circle at 90% 5%,rgba(224,181,95,.1),transparent 50%),linear-gradient(142deg,#154048,#0b2d36);
  border:1px solid rgba(237,204,132,.62);border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.2)
}
.route-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.route-head h3{font-size:18px;font-weight:800;letter-spacing:-.035em;color:#f8ecd6}
.route-head small{color:#d1d8cb}
.route-points{padding:14px 0;border-bottom:1px solid rgba(228,198,130,.20);display:grid;gap:13px}
.route-point{display:grid;gap:4px;min-width:0}
.route-caption{font:800 10px Manrope,sans-serif;letter-spacing:.14em;color:#e5c27f}
.route-address{font-size:14px;font-weight:720;line-height:1.45;color:#fff3e2;overflow-wrap:anywhere}
.route-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:13px}
.route-metric{background:rgba(4,28,36,.52);border:1px solid rgba(220,188,120,.25);border-radius:12px;padding:12px 10px;min-width:0}
.route-metric small{display:block;font-size:10px;line-height:1.5;letter-spacing:.06em;color:#c5d5ce}
.route-metric strong{display:block;font:800 20px Manrope,sans-serif;letter-spacing:-.04em;color:#f7e4b9;margin-top:5px}
.route-metric-fare{grid-column:1/-1;background:linear-gradient(112deg,rgba(199,165,97,.14),rgba(4,28,36,.65));border-color:rgba(233,195,121,.48)}
.route-metric-fare strong{font-size:24px;color:#f9e3a8}
.route-metric-fare small:last-child{letter-spacing:normal;line-height:1.5;margin-top:4px}
.route-road-map{border-radius:13px;overflow:hidden;margin-top:10px}
.route-road-svg{display:block;width:100%;max-height:190px;background:linear-gradient(120deg,#12343a,#113039);border:1px solid rgba(217,186,118,.28);border-radius:12px}
.route-map-caption,.route-status{font-size:11.5px;line-height:1.6;color:#c8d5ce;margin:8px 0}
.route-google{
  display:flex;min-height:47px;align-items:center;justify-content:center;padding:9px 12px;
  border:1px solid rgba(237,207,150,.6);border-radius:13px;
  color:#f5dc9f;background:rgba(238,202,134,.09);
  font-weight:800;font-size:13px;line-height:1.4;text-align:center
}
.route-google:hover{background:rgba(238,202,134,.17)}
.preview-road{display:flex;flex-direction:column;gap:3px;padding:10px 12px;margin:10px 0;border-radius:12px;border:1px solid rgba(231,190,116,.38);background:#133d42}
.preview-road strong{color:#f7dfa7;font-size:15px}
.preview-road small,.preview-road-note{font-size:11.5px;color:#c6d7ca;line-height:1.5}
@media(max-width:440px){
  .route-overview{padding:14px 12px}
  .route-metric strong{font-size:18px}
  .location-widget .location-selected{padding:11px}
}


/* Reserva compacta v6 — lectura mobile-first: A/B protagonistas, una estimación,
   un solo enlace Maps y detalle opcional. Evita tarjetas anidadas gigantes. */
.route-overview{margin-top:12px;padding:14px;background:linear-gradient(145deg,#163d43,#102f37);border:1px solid rgba(225,194,132,.46);border-radius:17px;box-shadow:0 9px 22px rgba(0,0,0,.14)}
.route-head{align-items:center;gap:7px;margin-bottom:9px}
.route-headline{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.route-head h3{font-size:16px;letter-spacing:-.02em;margin:0}
.route-head small{font-size:11px;color:#c8d6ce}
.route-compact-path{display:grid;grid-template-columns:1fr;gap:7px;padding:10px 12px;background:rgba(5,34,40,.35);border-radius:12px;border:1px solid rgba(219,189,130,.15)}
.route-compact-point{display:flex;align-items:baseline;gap:9px;min-width:0}
.route-compact-point .route-caption{font-size:9px;letter-spacing:.11em;min-width:38px}
.route-compact-point .route-address{font-size:12.5px;font-weight:720;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.route-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:9px}
.route-metric{padding:8px 11px;border-radius:11px;background:rgba(4,31,36,.48)}
.route-metric small{font-size:10px;letter-spacing:.045em;line-height:1.4}
.route-metric strong{font-size:20px;line-height:1.12;margin-top:4px}
.route-metric-fare{grid-column:1/-1;padding:10px 12px;background:linear-gradient(100deg,rgba(201,165,96,.13),rgba(4,28,36,.48));border-color:rgba(221,185,109,.42)}
.route-fare-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.route-metric-fare .route-fare-heading strong{font-size:21px;color:#ffe3a6;margin:0}
.route-disclaimer{font-size:10.5px;line-height:1.5;color:#ccd9ce;margin:8px 0 0}
.route-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 9px;margin-top:8px}
.route-footer .route-status{font-size:10px;line-height:1.4;color:#c2d1c8;margin:0;flex:1 1 150px}
.route-footer .route-google{min-height:38px;padding:6px 10px;width:auto;display:inline-flex;font-size:11px;letter-spacing:0;border-radius:10px;text-decoration:none;line-height:1.35}
.route-extra{margin-top:7px;border-top:1px solid rgba(229,196,132,.16);padding-top:7px}
.route-extra summary{color:#e3cb99;font-size:11px;cursor:pointer;list-style-position:inside;min-height:34px;display:list-item;padding-top:8px}
.route-extra:not([open]) .route-road-map{display:none}
.route-extra .route-map-caption{font-size:10px}
.route-extra .route-road-map{margin-top:6px}
.route-extra .route-road-svg{max-height:128px}
@media(max-width:440px){
  .route-overview{padding:12px}
  .route-metric strong{font-size:19px}
  .route-metric-fare .route-fare-heading strong{font-size:21px}
}


/* Recogidas urgentes: consulta real sin ubicación fingida. */
.pickup-presence{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:6px 0 13px;padding:10px 12px;border:1px solid rgba(214,187,125,.32);border-radius:12px;background:rgba(9,43,49,.7)}
.pickup-presence[hidden]{display:none!important}
.pickup-presence-status{flex:1 1 180px;font-size:11.5px;line-height:1.5;color:#d0ddd5}
.pickup-presence a{display:inline-flex;align-items:center;min-height:34px;font-size:11.5px;color:#ffe0a4;text-decoration:underline;text-underline-offset:3px}

/* Invitación de paradas sin caja gigante de publicidad/ayuda. */
.stops-signin-hint{margin:7px 0 0;padding:6px 4px;color:#c9dbd3;font-size:11.5px;line-height:1.4}
.stops-signin-hint .text-button{font-size:inherit}

/* Reserva v11 — propuesta premium compacta a partir de la captura real.
   Los campos A/B ya aparecen arriba; no repetir las direcciones aquí. */
.location-widget .location-selected{
  min-height:64px;padding:10px 11px;margin:7px 0;
  border-radius:13px;
}
.location-widget .location-selected-label{font-size:13.5px;line-height:1.35}
.location-widget .location-selected-hint{font-size:10px;margin-top:3px;color:#b8d3c9}
/* Sugerencias IDE: agrupación discreta y puntos aproximados con explicación. */
.location-widget .location-result-heading{
  margin:10px 4px 6px;color:#dabb80;font-size:10px;font-weight:750;
  letter-spacing:.09em;text-transform:uppercase;line-height:1.4;
}
.location-widget .results .result{min-height:54px;max-width:100%;text-align:left}
.location-widget .results .result[disabled]{opacity:.65;pointer-events:none}
.location-widget .result-subtitle{line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.location-widget .geo-feedback{font-size:12px;line-height:1.5;overflow-wrap:anywhere}

.location-widget .location-edit{min-height:39px!important;padding-inline:11px!important}
.location-title{margin-bottom:6px}
.route-overview{
  margin-top:11px;padding:12px 13px;
  border-radius:17px;
  background:radial-gradient(ellipse at 96% 1%,rgba(222,177,96,.10),transparent 60%),linear-gradient(130deg,#164147,#092a33);
  border:1px solid rgba(225,192,129,.53);
  box-shadow:0 12px 28px rgba(0,0,0,.15);
}
.route-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.route-summary-title{display:flex;gap:7px;align-items:center;min-width:0}
.route-summary-title h3{font-size:15px;line-height:1.3;font-weight:800;letter-spacing:-.018em;color:#fff2de;margin:0}
.route-summary-symbol{font-size:15px;color:#e8c882}
.route-summary-indicator{font-size:10px;color:#c5d4ce;border:1px solid rgba(219,192,128,.26);border-radius:100px;padding:5px 8px;line-height:1.3}
.route-summary-indicator.is-verified{color:#c1e7c8;border-color:rgba(132,214,163,.5);background:rgba(49,107,73,.20)}
.route-metrics{padding-top:0;gap:7px}
.route-metric{border-radius:11px;padding:9px 12px;min-height:64px}
.route-metric small{font-size:10px;line-height:1.3;letter-spacing:.055em}
.route-metric strong{font-size:18px;line-height:1.25;margin-top:4px}
.route-metric-fare{min-height:53px;padding:11px 12px;background:linear-gradient(110deg,rgba(229,182,104,.17),rgba(8,36,43,.38))}
.route-fare-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.route-metric-fare .route-fare-heading strong{margin:0;font-size:20px}
.route-footer{padding:8px 0 0;margin:0;gap:8px;flex-wrap:wrap}
.route-footer .route-status{font-size:10.5px;line-height:1.45;flex:1 1 180px;margin:0;color:#c6d9d0}
.route-footer .route-google{font-size:10.5px;padding:7px 10px;min-height:35px;border-radius:10px;white-space:nowrap}
.route-retry{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;
  padding:7px 11px;border-radius:11px;border:1px solid rgba(235,203,138,.68);
  background:linear-gradient(130deg,rgba(244,210,143,.22),rgba(14,62,67,.45));
  color:#ffe5b1;font-size:11px;font-weight:700;line-height:1.35;letter-spacing:.01em;cursor:pointer;
  max-width:100%;white-space:normal;text-align:center}
.route-retry[hidden]{display:none!important}
.route-retry:focus-visible{outline:2px solid #ffe2a2;outline-offset:3px}
.route-retry:active{transform:scale(.985)}
.route-extra{margin-top:8px;padding-top:5px}
.route-extra summary{font-size:10.5px;min-height:30px;padding-top:6px}
.route-extra .route-map-caption{font-size:10.5px;margin:6px 0}
.route-extra .route-road-map:empty{display:none}
@media(max-width:420px){
  .route-overview{padding:11px}
  .route-metric{padding:8px 10px;min-height:60px}
  .route-metric-fare .route-fare-heading strong{font-size:19px}
  .route-footer .route-google{min-height:36px}
}

/* Presencia real: la tarjeta cambia con el heartbeat de Mapa, sin login. */
.pickup-presence{padding:11px 13px;gap:7px;align-items:center;border-radius:14px}
.pickup-presence-status{font-size:12px;line-height:1.45;font-weight:550}
.pickup-presence[data-presence="online"]{border-color:rgba(142,214,174,.55);background:linear-gradient(115deg,rgba(24,89,75,.44),rgba(7,49,54,.72))}
.pickup-presence[data-presence="online"] .pickup-presence-status{color:#d7f1d7}
.pickup-presence[data-presence="online"] .pickup-presence-status::before{content:"●";font-size:9px;color:#9ae1b5;margin-right:7px}
.pickup-presence[data-presence="offline"]{border-color:rgba(214,190,145,.25)}
.pickup-presence[data-presence="offline"] .pickup-presence-status{color:#d0dad3}
.pickup-presence[data-presence="checking"] .pickup-presence-status{color:#d6c49d}

/* Asistencia contextual de Android para GPS: discreta, visible y accesible. */
.gps-permission-help{
  margin:12px 0 4px;padding:14px 15px;border-radius:16px;
  border:1px solid rgba(225,191,119,.5);
  background:linear-gradient(145deg,rgba(216,177,102,.13),rgba(9,47,55,.93));
  box-shadow:0 12px 25px rgba(0,0,0,.12);color:#f5ead5;
}
.gps-permission-title{display:block;font-size:14px;color:#f5daa2;line-height:1.35}
.gps-permission-description{font-size:12px;color:#dbe4d8;line-height:1.6;margin:8px 0}
.gps-permission-steps{padding-left:21px;margin:9px 0 14px;font-size:12px;line-height:1.6;color:#e0e4da}
.gps-permission-steps li{padding-left:2px;margin-bottom:8px}
.gps-permission-steps li::marker{color:#eacb8e;font-weight:700}
.gps-permission-actions{display:flex;flex-wrap:wrap;gap:8px}
.gps-permission-actions .tiny-btn{min-height:44px;font-size:12px;padding:9px 13px}
.gps-permission-actions .gps-manual{border-color:rgba(213,226,220,.35);color:#e7e6dc;background:rgba(10,34,42,.6)}
.gps-permission-help[hidden]{display:none!important}

/* Instalación transparente: opciones en pantalla, no avisos efímeros. */
.install-guide{margin-top:14px;padding:17px 16px;border:1px solid rgba(231,203,133,.38);
  border-radius:17px;background:linear-gradient(135deg,rgba(231,203,133,.10),rgba(7,35,43,.55))}
.install-guide h3{color:#f1d797;font-size:16px;margin-bottom:12px}
.install-guide ol{margin:0;padding-left:23px;color:#e8e8dd;line-height:1.6;font-size:13px}
.install-guide li{margin-bottom:8px;padding-left:4px}
.install-guide li::marker{color:#e9ca83;font-weight:800}
.install-guide p{color:#c6d9d2;font-size:12px;line-height:1.5;margin:13px 0 8px}
.install-guide .secondary{font-size:12px;letter-spacing:.02em}
.install-guide[hidden]{display:none!important}

/* Instala preferentemente la web; solo ofrece la APK nativa cuando el archivo
   está verificado y el navegador no emitió su evento de instalación. */
.install-apk-option{margin-top:15px;padding:18px;border-radius:18px;
  border:1px solid rgba(231,203,133,.42);
  background:linear-gradient(143deg,rgba(15,63,68,.97),rgba(7,37,44,.92));
  box-shadow:0 13px 25px rgba(0,0,0,.12)}
.install-apk-option[hidden]{display:none!important}
.install-apk-option .install-apk-label{display:block;margin-bottom:8px;font-size:10px;
  letter-spacing:.16em;font-weight:800;color:#e9cb89}
.install-apk-option h3{color:#f9ecd0;font-size:16px;margin-bottom:9px}
.install-apk-option p{color:#cfe1db;font-size:12.5px;line-height:1.6;margin-bottom:12px}
.install-apk-option .primary{font-size:12px;letter-spacing:.025em}
.install-apk-option .install-apk-hint{font-size:11px;color:#c9d2c8}
.install-apk-option .text-button{margin-top:4px;font-size:12px}

/* Modo urgente móvil: sin fecha/hora duplicadas del modo programado. */
#pickup-datetime-block[hidden],#pickup-mode-caption[hidden]{display:none!important}
.pickup-mode-caption{margin:11px 0 7px;border:1px solid rgba(222,189,120,.34);border-radius:13px;padding:11px 13px;background:rgba(216,181,113,.09);color:#f5ddad;font-size:13px;font-weight:680;line-height:1.4}
#availability{margin:8px 0 10px;line-height:1.5}
@media(max-width:520px){.quick-times{gap:5px}.quick-times .choice{min-width:0;padding:11px 5px;font-size:13px}}

/* El pasajero puede obtener la llegada sin subir al buscador de origen. */
.pickup-locate{display:block;width:100%;margin:12px 0 6px;border:1px solid rgba(232,199,126,.65);
 background:rgba(232,199,126,.12);border-radius:13px;padding:12px 14px;
 color:#f6dd9c;font-weight:730;text-align:center;font-size:14px;cursor:pointer}
.pickup-locate[hidden]{display:none!important}
.pickup-locate:focus-visible{outline:2px solid #e4c374;outline-offset:3px}


/* Live pickup premium v31 — resultado claro y sin terminología interna. */
.pickup-presence{
  display:block;
  margin:12px 0 14px;
  padding:17px 16px 14px;
  border:1px solid rgba(169,214,188,.52);
  border-radius:21px;
  background:radial-gradient(ellipse at 100% -15%,rgba(130,199,169,.15),transparent 70%),
    linear-gradient(145deg,rgba(19,75,67,.90),rgba(7,41,48,.95));
  box-shadow:0 11px 24px rgba(0,17,24,.18),inset 0 1px 0 rgba(255,255,255,.045);
}
.pickup-card-header{display:flex;align-items:flex-start;gap:12px}
.pickup-live-indicator{display:block;position:relative;width:11px;height:11px;
  margin-top:7px;border-radius:50%;flex:0 0 auto;background:#a9dcb8;
  box-shadow:0 0 0 5px rgba(169,220,184,.10)}
.pickup-card-heading{flex:1;min-width:0}
.pickup-card-heading strong{display:block;color:#f5faec;font-size:18px;font-weight:760;
  line-height:1.3;letter-spacing:-.022em}
.pickup-card-heading p{font-size:13px;line-height:1.55;color:#d6e8df;
  margin:6px 0 0;font-weight:440}
.pickup-presence-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;margin:16px 0 10px}
.pickup-presence-metrics[hidden]{display:none!important}
.pickup-presence-metric{display:flex;flex-direction:column;justify-content:center;
  min-height:81px;padding:13px 12px;border-radius:15px;
  border:1px solid rgba(191,225,206,.23);
  background:linear-gradient(145deg,rgba(4,34,40,.67),rgba(18,64,64,.34))}
.pickup-metric-label{display:flex;align-items:center;gap:5px;font-size:10px;
  font-weight:700;letter-spacing:.085em;color:#c7dace}
.pickup-metric-label span{font-size:14px;color:#e7c981;letter-spacing:0}
.pickup-presence-metric strong{font-size:25px;line-height:1.18;color:#f7e3ae;
  font-weight:790;letter-spacing:-.035em;margin-top:8px;font-variant-numeric:tabular-nums}
.pickup-estimate-note{font-size:11px;color:#e8d5ad;line-height:1.45;margin:3px 2px 0}
.pickup-estimate-note[hidden]{display:none!important}
.pickup-presence-meta{margin:12px 1px 11px;color:#c2d9cf;font-size:11px;line-height:1.45}
.pickup-contact-action{
  display:flex!important;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:46px!important;padding:10px 13px;
  border:1px solid rgba(232,203,141,.61);border-radius:13px;
  text-decoration:none!important;
  font-size:12.5px!important;font-weight:710;color:#f6dfa9!important;
  background:linear-gradient(120deg,rgba(226,192,119,.09),rgba(6,44,46,.22));
  transition:background .18s ease,border-color .18s ease
}
.pickup-contact-action:hover{background:rgba(229,194,123,.15)}
.pickup-contact-action:focus-visible{outline:2px solid #f2d28c;outline-offset:3px}
.pickup-presence[data-presence="offline"]{border-color:rgba(226,192,148,.36);
  background:linear-gradient(145deg,rgba(65,58,44,.58),rgba(7,41,48,.89))}
.pickup-presence[data-presence="offline"] .pickup-live-indicator{background:#d7bea0;
  box-shadow:0 0 0 5px rgba(218,183,135,.10)}
.pickup-presence[data-presence="unknown"] .pickup-live-indicator,
.pickup-presence[data-presence="checking"] .pickup-live-indicator{background:#dfc98c;
  box-shadow:0 0 0 5px rgba(220,190,133,.10)}
.pickup-presence[data-presence="offline"] .pickup-card-heading strong{color:#f7e1bb}
.pickup-screen-reader-status{position:absolute!important;width:1px!important;height:1px!important;
  overflow:hidden!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.pickup-screen-reader-status::before{content:none!important}
@media(max-width:420px){
  .pickup-presence{padding:15px 13px 13px;border-radius:18px}
  .pickup-card-heading strong{font-size:16px}
  .pickup-presence-metric{min-height:74px;padding:10px 11px}
  .pickup-presence-metric strong{font-size:22px}
  .pickup-metric-label{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.pickup-contact-action{transition:none}}


/* PWA v38 — asistente plegable: conserva petróleo, textura y dorados originales. */
.booking-progress{margin:-9px 3px 17px;display:flex;align-items:center;gap:13px;min-height:20px}
.booking-progress-text{color:#dfcfaa;font-size:11px;font-weight:750;white-space:nowrap}
.booking-progress-track{flex:1;height:5px;background:rgba(229,197,129,.16);border-radius:99px;overflow:hidden}
#booking-progress-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#b9914d,#f1d691);border-radius:99px;transition:width .28s ease}
.booking-step-card{padding:0;margin-bottom:12px;border-radius:21px}
.booking-step-toggle{width:100%;min-height:76px;display:flex;align-items:center;text-align:left;gap:12px;
  padding:15px 19px;background:transparent;border:0;color:var(--ivory);cursor:pointer}
.booking-step-toggle:hover{background:rgba(240,207,143,.04)}
.booking-step-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:-3px;border-radius:20px}
.booking-step-number{background:linear-gradient(135deg,#bd9649,#f6df9e);color:#092832;
  width:37px;height:37px;flex:0 0 37px;display:grid;place-items:center;
  border-radius:50%;font:800 13px Manrope,sans-serif}
.booking-step-heading{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.booking-step-heading strong{font:800 17px/1.3 Manrope,"DM Sans",sans-serif;letter-spacing:-.025em;color:#f9f6eb}
.booking-step-heading small{font-size:11px;font-weight:560;line-height:1.4;color:#c0d5cd;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.booking-step-card.is-open .booking-step-heading small{display:none}
.booking-step-check{height:23px;min-width:23px;border-radius:50%;display:grid;place-items:center;
  background:rgba(112,196,145,.16);border:1px solid rgba(122,207,166,.45);
  font-size:13px;color:#aee7c8;font-weight:800}
.booking-step-check[hidden]{display:none!important}
.booking-step-chevron{flex:0 0 23px;color:#eed196;font-size:27px;line-height:1;display:grid;place-items:center;
  transform:rotate(0);transition:transform .22s ease}
.booking-step-card.is-open .booking-step-chevron{transform:rotate(180deg)}
.booking-step-content{padding:0 19px 17px;animation:bookingStepReveal .22s ease}
.booking-step-content[hidden]{display:none!important}
@keyframes bookingStepReveal{from{opacity:.25;transform:translateY(-3px)}to{opacity:1;transform:none}}
.booking-step-card.is-complete:not(.is-open){border-color:rgba(184,213,158,.32)}
.booking-step-card .location-pane{padding:3px 0}
.booking-step-card .departments{gap:7px;margin:8px 0 10px}
.booking-step-card .departments button{min-height:36px}
.booking-step-card .departments select{min-width:135px}
.booking-step-card .loc-search{align-items:stretch;gap:8px}
.booking-step-card .loc-search input{min-width:0;flex:1;margin-top:0;font-size:14px}
.booking-step-card .loc-search .location-search-action{min-height:48px;align-self:stretch;
  padding:8px 12px;white-space:nowrap;font-size:12px}
.booking-step-card .wayline{margin:8px 0}
.booking-step-card .stops-signin-hint{margin-top:7px}
.booking-step-next{min-height:45px;font-size:11.5px;margin:13px 0 0;letter-spacing:.04em}
.booking-step-card .quick-times{gap:7px}
.booking-step-card .quick-times .choice{min-height:46px}
.booking-step-card #availability{font-size:11.5px;line-height:1.55}
.booking-step-card #passenger-identification{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.booking-step-card #passenger-identification label{min-width:0}
.booking-step-card #passenger-identification input{font-size:14px;min-width:0}
.booking-step-card #comments{min-height:67px}
.booking-step-card label{margin-top:11px}
#review-booking{min-height:54px;margin-top:11px;letter-spacing:.055em;scroll-margin-top:155px}
.booking-step-card{scroll-margin-top:153px}
@media(max-width:520px){
  .booking-step-card{margin-bottom:11px;border-radius:19px}
  .booking-step-toggle{min-height:69px;padding:13px 15px;gap:10px}
  .booking-step-content{padding:0 15px 15px}
  .booking-step-heading strong{font-size:16px}
  .booking-step-heading small{font-size:11px}
  .booking-step-card #passenger-identification{grid-template-columns:minmax(0,1fr);gap:0}
  .booking-step-card #passenger-identification label{margin-top:10px}
  .booking-step-card #passenger-identification input{min-height:47px}
  .booking-step-card .departments select{min-width:0;max-width:160px}
  .booking-step-card .departments button{padding:7px 9px}
  .booking-step-card #pickup-datetime-block{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
  .booking-step-card #pickup-datetime-block input{font-size:14px;min-width:0;padding-inline:10px}
}
@media(max-width:370px){
  .booking-step-card #pickup-datetime-block{grid-template-columns:minmax(0,1fr)}
  .booking-step-card .loc-search .location-search-action{padding-inline:8px}
}
@media(prefers-reduced-motion:reduce){
  .booking-step-content{animation:none}
  .booking-step-chevron,#booking-progress-fill{transition:none}
}

/* Resumen del recorrido plegado: trayecto arriba, métricas verificadas debajo. */
.booking-step-heading [data-step-extra]{font-weight:760;color:#eed39b;font-size:11px;letter-spacing:.005em}
.booking-step-card.is-open [data-step-extra]{display:none!important}
@media(max-width:520px){
  .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-toggle{min-height:75px}
}


/* PWA v43 — terminación del formulario sin alterar la paleta ni el layout aprobado. */
.booking-step-chevron{
  width:30px;height:30px;flex:0 0 30px;border:1px solid rgba(231,203,133,.28);
  border-radius:50%;background:rgba(4,34,42,.52);font-size:0;
  transform:none;transition:background .2s ease,border-color .2s ease;
}
.booking-step-chevron::before{
  content:"";display:block;width:8px;height:8px;
  border-right:2px solid #edd094;border-bottom:2px solid #edd094;
  transform:translateY(-2px) rotate(45deg);transition:transform .2s ease;
}
.booking-step-card.is-open .booking-step-chevron{transform:none;background:rgba(231,203,133,.13);border-color:rgba(231,203,133,.48)}
.booking-step-card.is-open .booking-step-chevron::before{transform:translateY(2px) rotate(225deg)}
.booking-step-card .booking-step-number{box-shadow:inset 0 1px 0 rgba(255,250,230,.30)}
.booking-step-card .booking-step-content{padding-bottom:16px}
.booking-step-card label{font-weight:750;letter-spacing:.005em}
.booking-step-card input,.booking-step-card textarea,.booking-step-card select{
  border-radius:14px;border-color:rgba(175,207,198,.32);
  background-color:rgba(2,30,38,.78);transition:border-color .2s ease,box-shadow .2s ease;
}
.booking-step-card select{
  appearance:none;-webkit-appearance:none;
  padding-right:48px;min-height:52px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 20 20'%3E%3Cpath d='m5 7.5 5 5 5-5' stroke='%23e7cb85' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:20px 20px;background-position:right 17px center;
}
.booking-step-card .departments select{
  padding-right:32px;background-size:15px 15px;background-position:right 10px center;
  min-height:38px;
}
.booking-step-card .booking-passenger-hint{font-size:11.5px;line-height:1.5;color:#bed6cf;margin:0 0 12px}
.booking-optional{color:#b7ccc6;font-weight:500}
.booking-step-card #passenger-identification{gap:10px}
.booking-step-card #passenger-identification label{margin-bottom:0}
.booking-step-card #comments{min-height:69px}
.booking-final{
  position:relative;overflow:hidden;margin:16px 0 13px;padding:20px 20px 15px;
  border:1px solid rgba(233,202,133,.45);border-radius:22px;
  background:linear-gradient(120deg,rgba(18,74,76,.94),rgba(8,48,57,.96));
  box-shadow:0 15px 35px rgba(0,0,0,.16);
}
.booking-final::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(129deg,rgba(231,203,133,.022) 0,rgba(231,203,133,.022) 1px,transparent 1px,transparent 9px)}
.booking-final>*{position:relative}
.booking-final-eyebrow{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.17em;color:var(--gold)}
.booking-final h3{margin:0;font:800 20px/1.35 Manrope,"DM Sans",sans-serif;letter-spacing:-.035em;color:#f7f2e5}
.booking-final-description{margin:5px 0 14px;font-size:12.5px;color:#c9ddd3;line-height:1.5}
.booking-main-cta{
  width:100%;min-height:59px;margin:0;display:flex;justify-content:center;gap:13px;
  padding:12px 16px;text-align:center;border-radius:16px;
  font-size:13px;letter-spacing:.035em;line-height:1.35;
  background:linear-gradient(108deg,#d9a84f,#f4db97 80%);border-color:#f3d99a;
  box-shadow:0 9px 23px rgba(200,158,69,.24);
}
.booking-cta-arrow{display:grid;place-items:center;flex:0 0 27px;height:27px;
  border-radius:50%;background:rgba(9,44,51,.12);font-size:19px;line-height:1;font-weight:500}
.booking-final-note{margin:11px 0 0;color:#ccdbd1;text-align:center;font-size:11px;line-height:1.5}
#submit-actions{padding:9px 0 max(15px,env(safe-area-inset-bottom));}
.booking-confirm-description{margin:2px 5px 13px;color:#e4e1d5;font-size:12.5px;line-height:1.55;text-align:center}
#confirm-booking.booking-main-cta{min-height:61px;font-size:13px;margin:0}
#submit-actions #edit-booking{margin:12px 0 0;border-color:rgba(231,203,133,.35);font-size:12px;letter-spacing:.015em}
#review-booking{margin:0;scroll-margin-top:155px}
@media(max-width:520px){
  .booking-final{margin-top:13px;padding:17px 15px 14px;border-radius:19px}
  .booking-final h3{font-size:18px}
  .booking-main-cta{min-height:57px;font-size:12.5px;padding-inline:11px}
  #confirm-booking.booking-main-cta{font-size:12px}
  .booking-step-chevron{width:29px;height:29px;flex-basis:29px}
  .booking-step-card #passenger-identification{gap:0}
}
@media(prefers-reduced-motion:reduce){
  .booking-step-chevron,.booking-step-chevron::before,.booking-step-card input,
  .booking-step-card textarea,.booking-step-card select{transition:none}
}


/* PWA v44 — datos de cuenta visibles y elección honesta del tipo de solicitud. */
.passenger-account-summary{
  margin:8px 0 14px;padding:14px 15px 12px;
  border:1px solid rgba(231,203,133,.37);border-radius:17px;
  background:linear-gradient(115deg,rgba(7,49,55,.85),rgba(5,38,47,.89));
  overflow-wrap:anywhere;
}
.passenger-account-top{display:flex;align-items:center;gap:7px;color:var(--gold);font-size:10px;letter-spacing:.07em;font-weight:800}
.passenger-account-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#72d3a7}
.passenger-account-status{margin-left:auto;color:#cce7d4;font-size:10px;letter-spacing:0;font-weight:600;white-space:nowrap}
.passenger-account-details{display:grid;grid-template-columns:1.25fr 1fr;gap:15px;margin:15px 0 9px}
.passenger-account-details div{min-width:0;display:grid;gap:3px}
.passenger-account-details span{color:#aacbc5;font-size:11px}
.passenger-account-details strong{color:#f8f3e9;font:750 13.5px/1.4 Manrope,"DM Sans",sans-serif}
.passenger-account-link{border:0;padding:6px 0;background:transparent;color:var(--gold);font-size:11.5px;font-weight:750}
.passenger-account-link span{padding-left:4px}
.urgent-actions{
  position:relative;overflow:hidden;margin:13px 0 17px;padding:20px;
  border:1px solid rgba(231,203,133,.37);border-radius:21px;
  background:linear-gradient(128deg,rgba(13,62,70,.98),rgba(7,43,52,.96));
  box-shadow:0 12px 30px rgba(0,0,0,.14);
}
.urgent-actions::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(129deg,rgba(231,203,133,.019) 0,rgba(231,203,133,.019) 1px,transparent 1px,transparent 9px)}
.urgent-actions>*{position:relative}
.urgent-actions-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--gold);margin:0 0 5px}
.urgent-actions h3{font:800 18px/1.35 Manrope,sans-serif;color:#f9f4e8;margin:0 0 6px;letter-spacing:-.025em}
.urgent-actions>p:not(.urgent-actions-eyebrow){font-size:12px;line-height:1.55;color:#c8ddd5;margin-bottom:15px}
.urgent-actions .urgent-booking-link{margin:0;border-color:rgba(231,203,133,.65);
  padding:11px 13px;font-size:12px;text-align:center;min-height:49px;letter-spacing:.02em}
.urgent-actions-separator{display:flex;gap:12px;align-items:center;text-align:center;color:#b5d0c9;
  font-size:11px;line-height:1.4;margin:14px 0}
.urgent-actions-separator::before,.urgent-actions-separator::after{
  content:"";height:1px;flex:1;background:rgba(231,203,133,.23)}
.urgent-actions .booking-main-cta{font-size:12px;letter-spacing:.014em;min-height:56px}
@media(max-width:520px){
  .urgent-actions{padding:17px 15px;border-radius:19px}
  .passenger-account-summary{padding:13px}
  .passenger-account-details{gap:8px}
}
@media(max-width:370px){
  .passenger-account-details{grid-template-columns:minmax(0,1fr)}
  .passenger-account-status{font-size:9px}
  .urgent-actions .booking-main-cta{font-size:11px}
}


/* PWA v45 — edición visual del Paso 1 sobre la identidad aprobada.
 * Solo presentación: los motores IDE/POI, ROAD, GPS, ETA y reservas son ajenos.
 * En móvil priorizamos el campo de dirección, ritmo vertical y tactilidad.
 */
#view-reservar > .section-heading{margin:0 5px 20px}
#view-reservar > .section-heading .eyebrow{
  letter-spacing:.17em;font-size:10px;margin-bottom:9px
}
#view-reservar > .section-heading h2{
  font-size:clamp(1.65rem,6vw,1.95rem);line-height:1.22;
  margin-bottom:8px;letter-spacing:-.043em
}
#view-reservar > .section-heading p:last-child{
  font-size:12.6px;line-height:1.58;max-width:570px;color:#c5d9d3
}
#view-reservar > .section-heading strong{font-weight:700;color:#f3e2b6}
#view-reservar .booking-progress{margin:0 3px 15px;gap:12px}
#view-reservar .booking-progress-text{font-size:10.7px;letter-spacing:-.008em}
#view-reservar .booking-progress-track{
  height:5px;background:rgba(230,201,139,.15);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.12)
}
#view-reservar .booking-step-card[data-booking-step="route"]{
  border-color:rgba(225,198,133,.36);
  background:linear-gradient(135deg,rgba(12,64,70,.98),rgba(8,47,56,.97))
}
#view-reservar .booking-step-card[data-booking-step="route"].is-open{
  box-shadow:0 17px 38px rgba(0,0,0,.21),inset 0 1px 0 rgba(255,255,255,.025)
}
#view-reservar .booking-step-card[data-booking-step="route"] .booking-step-toggle{
  min-height:73px;padding-bottom:11px
}
#view-reservar .booking-step-card[data-booking-step="route"] .booking-step-content{
  padding-top:0;padding-bottom:13px
}
#view-reservar .booking-step-card #origin-picker,
#view-reservar .booking-step-card #destination-picker{padding:0}
#view-reservar .booking-step-card .location-widget{position:relative;min-width:0}
#view-reservar .booking-step-card .location-title{
  display:flex;align-items:center;gap:9px;
  color:#efdaaa;font:800 11px/1.4 Manrope,"DM Sans",sans-serif;
  letter-spacing:.14em;margin:2px 0 7px;
}
#view-reservar .location-widget .location-title::before{
  content:"";display:inline-block;width:9px;height:9px;flex:0 0 9px;
  background:var(--gold);border:2px solid #0c4148;
  box-shadow:0 0 0 1px rgba(231,203,133,.6);border-radius:50%;
}
#view-reservar .location-widget[data-location-kind="destination"] .location-title::before{
  width:8px;height:8px;flex-basis:8px;border:1px solid #f5dda1;
  border-radius:2px;background:transparent;transform:rotate(45deg);
  box-shadow:inset 0 0 0 2px rgba(222,190,122,.1)
}
#view-reservar .location-widget[data-location-kind="stop"] .location-title::before{
  width:7px;height:7px;flex-basis:7px;background:#9dd1bb
}
#view-reservar .booking-step-card .departments{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:4px 0 9px;
}
#view-reservar .booking-step-card .departments button{
  flex:0 0 auto;min-height:39px;padding:7px 11px;
  border:1px solid rgba(218,195,141,.30);border-radius:999px;
  font-size:11px;font-weight:730;line-height:1.18;letter-spacing:.002em;
  background:rgba(4,37,44,.20);color:#d5ded5;
  transition:background .17s ease,border-color .17s ease,color .17s ease,transform .17s ease
}
#view-reservar .booking-step-card .departments button.selected{
  border-color:rgba(240,211,143,.75);
  color:#f7dda4;background:linear-gradient(120deg,rgba(231,194,122,.19),rgba(206,160,74,.08));
  box-shadow:inset 0 1px 0 rgba(250,226,176,.10)
}
#view-reservar .booking-step-card .departments button:active{transform:scale(.98)}
#view-reservar .booking-step-card .departments select{
  width:auto;max-width:100%;min-width:0;min-height:39px;
  flex:0 1 auto;margin:0;padding:7px 30px 7px 11px;
  font-size:11px;font-weight:650;color:#f0eee1;
  border-radius:13px;border-color:rgba(196,212,196,.32);
  background-color:rgba(3,34,42,.76);background-size:14px 14px;
  background-position:right 8px center;box-shadow:none
}
#view-reservar .booking-step-card .departments select:focus{
  border-color:var(--gold);box-shadow:0 0 0 2px rgba(231,203,133,.14)
}
#view-reservar .booking-step-card .location-controls{min-width:0}
#view-reservar .booking-step-card .loc-search,
#view-reservar .booking-step-card .location-controls .loc-search{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,28%);
  align-items:stretch;gap:8px;min-width:0;
  flex-wrap:nowrap;margin:0
}
#view-reservar .booking-step-card .loc-search input{
  display:block;min-width:0;min-height:50px;width:100%;
  flex:auto;flex-basis:auto;margin:0;padding:0 12px;
  border-radius:14px;font-size:13.5px;line-height:1.25;
  border-color:rgba(168,210,205,.33);
  background:rgba(2,31,39,.81)
}
#view-reservar .booking-step-card .loc-search input::placeholder{
  color:#9dbab9;opacity:1
}
#view-reservar .booking-step-card .loc-search:focus-within input{
  border-color:#eed094;box-shadow:0 0 0 3px rgba(231,203,133,.10)
}
#view-reservar .booking-step-card .loc-search .location-search-action{
  width:100%;min-width:0;min-height:50px;height:auto;
  align-self:stretch;display:flex;align-items:center;justify-content:center;
  gap:7px;margin:0;padding:8px 7px;
  font-size:12px;letter-spacing:.003em;font-weight:800;white-space:nowrap;
  color:#f6dba4;border:1px solid rgba(233,204,138,.46);
  border-radius:14px;background:linear-gradient(135deg,rgba(32,91,85,.65),rgba(8,58,67,.70));
  transition:background .18s ease,box-shadow .18s ease,transform .14s ease
}
#view-reservar .booking-step-card .location-search-action::before{
  content:"";width:15px;height:15px;flex:0 0 15px;display:block;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4d795' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.8'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E")
}
#view-reservar .booking-step-card .location-search-action:active{transform:scale(.975)}
#view-reservar .booking-step-card .location-search-action:hover{
  background:linear-gradient(135deg,rgba(42,106,98,.87),rgba(10,69,77,.86));
  box-shadow:0 0 0 1px rgba(234,199,127,.12)
}
#view-reservar .booking-step-card .location-use-current{
  display:inline-flex;align-items:center;justify-content:center;
  width:auto;max-width:100%;min-height:37px;
  margin:8px 0 0;padding:7px 12px;
  background:rgba(12,61,65,.46);color:#e6ce96;
  border:1px solid rgba(225,191,121,.37);border-radius:12px;
  font-size:11.5px;letter-spacing:0;font-weight:700;
  transition:background .18s ease,border-color .18s ease
}
#view-reservar .booking-step-card .location-use-current:hover{
  background:rgba(226,192,123,.12);border-color:rgba(231,203,133,.67)
}
#view-reservar .booking-step-card .wayline{
  display:flex;align-items:center;justify-content:flex-start;
  height:27px;margin:4px 0 4px;padding:0 0 0 1px;color:#e9ca85
}
#view-reservar .booking-step-card .wayline span{
  position:relative;display:grid;place-items:center;
  width:23px;height:27px;font-size:0;line-height:0
}
#view-reservar .booking-step-card .wayline span::before{
  content:"";height:23px;width:1px;background:linear-gradient(180deg,rgba(235,202,135,.72),rgba(235,202,135,.24))
}
#view-reservar .booking-step-card .wayline span::after{
  content:"";position:absolute;left:9px;bottom:3px;
  width:5px;height:5px;border-right:1.5px solid #eed193;border-bottom:1.5px solid #eed193;
  transform:rotate(45deg)
}
#view-reservar .booking-step-card .location-selected{
  min-height:60px;margin:4px 0 2px;padding:10px 11px;
  background:linear-gradient(115deg,rgba(16,76,70,.55),rgba(7,50,54,.87));
  border:1px solid rgba(142,218,172,.36);border-radius:14px;
  box-shadow:inset 3px 0 0 rgba(146,215,167,.68);
}
#view-reservar .booking-step-card .location-selected-label{
  font-size:13px;line-height:1.38;letter-spacing:-.008em
}
#view-reservar .booking-step-card .location-selected-hint{font-size:10px}
#view-reservar .booking-step-card .location-edit{
  border-color:rgba(232,206,143,.47);color:#f2d79c;
  background:rgba(5,39,46,.76);border-radius:11px
}
#view-reservar .booking-step-card .results{gap:5px;margin:7px 0 0}
#view-reservar .booking-step-card .results button.result{
  position:relative;min-height:55px;padding:10px 34px 10px 12px!important;
  border:1px solid rgba(218,190,127,.22);border-radius:13px!important;
  background:rgba(5,39,46,.95);
  transition:border-color .16s ease,background .16s ease,transform .16s ease
}
#view-reservar .booking-step-card .results button.result::after{
  content:"";position:absolute;right:15px;top:50%;
  width:7px;height:7px;border-top:1.5px solid #edcc87;
  border-right:1.5px solid #edcc87;transform:translateY(-50%) rotate(45deg)
}
#view-reservar .booking-step-card .results button.result:active{transform:scale(.993)}
#view-reservar .booking-step-card .results .result-title{font-size:12.8px}
#view-reservar .booking-step-card .results .result-subtitle{font-size:10.6px}
#view-reservar .booking-step-card .geo-feedback{font-size:11px;margin:7px 0 0}
#view-reservar .booking-step-card .geo-attribution{font-size:10px;margin:6px 0 0}
#view-reservar .booking-step-card .stops-signin-hint{
  margin:10px 0 0;padding:8px 2px 0;font-size:11px;
  border-top:1px solid rgba(231,203,133,.13)
}
#view-reservar .booking-step-card .stops-signin-hint .text-button{text-underline-offset:3px}
#view-reservar .booking-step-card .route-overview{margin-top:10px}
@media(max-width:520px){
  #view-reservar > .section-heading{margin-bottom:17px}
  #view-reservar > .section-heading h2{font-size:1.72rem}
  #view-reservar .booking-step-card[data-booking-step="route"] .booking-step-toggle{min-height:67px;padding-bottom:9px}
  #view-reservar .booking-step-card .departments{gap:6px;margin-bottom:8px}
  #view-reservar .booking-step-card .departments button{min-height:38px;padding:6px 9px;font-size:10.8px}
  #view-reservar .booking-step-card .departments select{min-height:38px;font-size:10.8px;padding-left:9px}
  #view-reservar .booking-step-card .loc-search,
  #view-reservar .booking-step-card .location-controls .loc-search{
    grid-template-columns:minmax(0,1fr) minmax(98px,30%);gap:7px
  }
  #view-reservar .booking-step-card .loc-search input{min-height:49px;font-size:13px}
  #view-reservar .booking-step-card .loc-search .location-search-action{min-height:49px;font-size:11.5px;gap:5px}
  #view-reservar .booking-step-card .location-search-action::before{width:13px;height:13px;flex-basis:13px}
}
@media(max-width:355px){
  #view-reservar .booking-step-card .departments button{padding:6px 8px;font-size:10px}
  #view-reservar .booking-step-card .departments select{font-size:10px;max-width:142px}
  #view-reservar .booking-step-card .loc-search,
  #view-reservar .booking-step-card .location-controls .loc-search{
    grid-template-columns:minmax(0,1fr) 93px;gap:6px
  }
  #view-reservar .booking-step-card .loc-search .location-search-action{font-size:11px;padding:7px 5px}
}
@media(prefers-reduced-motion:reduce){
  #view-reservar .booking-step-card .departments button,
  #view-reservar .booking-step-card .location-search-action,
  #view-reservar .booking-step-card .location-use-current,
  #view-reservar .booking-step-card .results button.result{transition:none;transform:none}
}


/* PWA v46 — reproducción del boceto aprobado: A/B y controles en una sola fila.
 * El diseño de la v45 conservaba un buscador con texto y un GPS en otra línea;
 * esto los convierte en las dos acciones compactas mostradas en el boceto.
 * No cambia geocodificación ni flujos de reserva.
 */
#view-reservar .booking-step-card[data-booking-step="route"] .booking-step-content{
  padding-left:16px;padding-right:16px;padding-bottom:13px
}
#view-reservar .booking-step-card .departments{
  gap:6px;margin:2px 0 10px;
}
#view-reservar .booking-step-card .departments button{
  min-height:40px;padding:7px 11px;border-radius:23px;
  font-size:11px;letter-spacing:0
}
#view-reservar .booking-step-card .departments select{
  min-height:40px;max-width:120px;padding:7px 30px 7px 12px;
  font-size:11px;color:#d2e0d8;
  background-color:transparent;border-color:transparent;
  background-size:13px 13px;
  background-position:right 8px center;
}
#view-reservar .booking-step-card .departments select:hover,
#view-reservar .booking-step-card .departments select:focus{
  border-color:rgba(231,203,133,.30);
  background-color:rgba(4,42,50,.58);
}
#view-reservar .booking-step-card .departments select:has(option:checked:not([value=""])){
  border-color:rgba(231,203,133,.68);
  color:#f4d89b;background-color:rgba(213,180,109,.13)
}
#view-reservar .booking-step-card .loc-search,
#view-reservar .booking-step-card .location-controls .loc-search{
  display:grid;gap:7px;
  grid-template-columns:minmax(0,1fr) 47px;
  align-items:center;margin:0
}
#view-reservar .booking-step-card .loc-search.loc-search-origin,
#view-reservar .booking-step-card .location-controls .loc-search.loc-search-origin{
  grid-template-columns:minmax(0,1fr) 47px 47px;
}
#view-reservar .booking-step-card .loc-search input{
  min-height:49px;height:49px;
  margin:0;padding:0 13px;
  background:rgba(3,32,40,.9);
  border-radius:14px;font-size:13px;
}
#view-reservar .booking-step-card .loc-search .location-search-action,
#view-reservar .booking-step-card .loc-search .location-use-current{
  display:flex;align-items:center;justify-content:center;
  width:47px;height:49px;min-width:47px;min-height:49px;
  max-width:47px;margin:0;padding:0;
  border-radius:14px;border:1px solid rgba(232,202,134,.58);
  background:linear-gradient(135deg,rgba(19,73,76,.90),rgba(7,52,61,.96));
  box-shadow:inset 0 1px 0 rgba(248,224,172,.09);
  color:transparent;font-size:0!important;line-height:0!important;
  white-space:nowrap;overflow:hidden;
  transition:background .18s ease,border-color .18s ease,transform .14s ease
}
#view-reservar .booking-step-card .loc-search .location-search-action{
  background:linear-gradient(125deg,#d3a34f,#edd394);
  border-color:#f2dca5;
  box-shadow:0 5px 15px rgba(196,152,66,.12);
}
#view-reservar .booking-step-card .loc-search .location-search-action::before,
#view-reservar .booking-step-card .loc-search .location-use-current::before{
  content:"";width:20px;height:20px;flex:0 0 20px;
  display:block;background-position:center;
  background-size:contain;background-repeat:no-repeat
}
#view-reservar .booking-step-card .loc-search .location-search-action::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230e373e' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.7' cy='10.7' r='6.5'/%3E%3Cpath d='m15.8 15.8 5 5'/%3E%3C/svg%3E")
}
#view-reservar .booking-step-card .loc-search .location-use-current::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23f0d394' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v3m0 14v3M2 12h3m14 0h3'/%3E%3Ccircle cx='12' cy='12' r='6.5'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23f0d394' stroke='none'/%3E%3C/svg%3E")
}
#view-reservar .booking-step-card .loc-search .location-search-action:hover{
  background:linear-gradient(125deg,#e1b667,#f3dfa9);
}
#view-reservar .booking-step-card .loc-search .location-use-current:hover{
  background:rgba(226,192,123,.14)
}
#view-reservar .booking-step-card .loc-search button:disabled{
  opacity:.53;cursor:wait
}
#view-reservar .booking-step-card .loc-search button:focus-visible{
  outline:2px solid #f1d9a1;outline-offset:3px
}
#view-reservar .booking-step-card .wayline{
  height:21px;margin:3px 0 5px;padding:0 0 0 4px
}
#view-reservar .booking-step-card .wayline span{height:21px}
#view-reservar .booking-step-card .wayline span::before{height:19px}
#view-reservar .booking-step-card .wayline span::after{bottom:2px}
#view-reservar .booking-step-card .location-title{margin:1px 0 7px}
#view-reservar .booking-step-card .location-selected{margin-top:3px}
@media(max-width:400px){
  #view-reservar .booking-step-card[data-booking-step="route"] .booking-step-content{
    padding-left:13px;padding-right:13px
  }
  #view-reservar .booking-step-card .loc-search,
  #view-reservar .booking-step-card .location-controls .loc-search{
    grid-template-columns:minmax(0,1fr) 44px;gap:6px
  }
  #view-reservar .booking-step-card .loc-search.loc-search-origin,
  #view-reservar .booking-step-card .location-controls .loc-search.loc-search-origin{
    grid-template-columns:minmax(0,1fr) 44px 44px
  }
  #view-reservar .booking-step-card .loc-search .location-search-action,
  #view-reservar .booking-step-card .loc-search .location-use-current{
    width:44px;min-width:44px;max-width:44px;min-height:47px;height:47px
  }
  #view-reservar .booking-step-card .loc-search input{
    min-height:47px;height:47px;font-size:12.5px;padding:0 10px
  }
  #view-reservar .booking-step-card .departments button{padding:7px 9px}
}
@media(max-width:350px){
  #view-reservar .booking-step-card .departments{gap:4px}
  #view-reservar .booking-step-card .departments button{font-size:10px;padding:7px 7px}
  #view-reservar .booking-step-card .departments select{
    max-width:91px;font-size:10px;padding:7px 22px 7px 6px;
    background-position:right 5px center
  }
  #view-reservar .booking-step-card .loc-search input::placeholder{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  #view-reservar .booking-step-card .loc-search .location-search-action,
  #view-reservar .booking-step-card .loc-search .location-use-current{transition:none}
}


/* PWA v47 — corrección de la tarjeta consolidada A/B en Samsung.
 * Evita la franja de hover retenida en pantallas táctiles y separa
 * la cabecera del contenido. No cambia los controles mientras se edita.
 */
@media(hover:none){
  #view-reservar .booking-step-card[data-booking-step="route"] .booking-step-toggle:hover{
    background:transparent
  }
}
#view-reservar .booking-step-card[data-booking-step="route"].is-open .booking-step-toggle{
  background:transparent;
  border-bottom:0;
}
#view-reservar .booking-step-card[data-booking-step="route"].is-open .booking-step-content{
  padding-top:14px;
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-widget.is-selected .location-title{
  margin:0 0 11px 2px;line-height:1.5;
  color:#edd7a1;position:relative;z-index:1;
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-widget .location-selected{
  position:relative;isolation:isolate;
  display:flex;align-items:center;gap:12px;
  min-width:0;min-height:73px;
  margin:0 0 2px;padding:13px 12px 13px 16px;
  overflow:hidden;
  border:1px solid rgba(162,216,184,.32);
  border-radius:16px;
  background:linear-gradient(118deg,rgba(11,65,65,.79),rgba(7,49,57,.81));
  box-shadow:inset 0 1px 0 rgba(241,228,190,.08),0 7px 18px rgba(0,18,24,.13);
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-widget .location-selected::before{
  content:"";position:absolute;left:0;top:12px;bottom:12px;
  width:3px;border-radius:0 4px 4px 0;background:#96d5b0;
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-chosen-content{
  flex:1 1 auto;min-width:0;padding-right:2px
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-selected-label{
  font-size:13.2px;font-weight:760;line-height:1.42;letter-spacing:-.01em;
  overflow-wrap:anywhere;word-break:normal;color:#faf3e4
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-selected-hint{
  font-size:10.7px;line-height:1.45;margin-top:5px;color:#c0d7ce
}
#view-reservar .booking-step-card[data-booking-step="route"] .location-selected .location-edit{
  align-self:center;flex:0 0 auto;
  min-height:42px!important;padding:9px 11px!important;
  font-size:11px!important;border-radius:12px;
  background:rgba(4,38,45,.59);
  border:1px solid rgba(238,205,136,.47);
  color:#f0d69e;
}
#view-reservar .booking-step-card[data-booking-step="route"] .wayline{
  margin:8px 0 10px;
}
#view-reservar .booking-step-card[data-booking-step="route"] #destination-picker{
  padding-top:2px;
}
#view-reservar .booking-step-card[data-booking-step="route"] .stops-wrapper{
  margin:8px 0 13px;padding:12px 0;
}
#view-reservar .booking-step-card[data-booking-step="route"] .route-metric small{
  line-height:1.4;letter-spacing:.025em
}
#view-reservar .booking-step-card[data-booking-step="route"] .route-footer .route-status{
  line-height:1.55
}
@media(max-width:420px){
  #view-reservar .booking-step-card[data-booking-step="route"].is-open .booking-step-content{
    padding-top:12px;
  }
  #view-reservar .booking-step-card[data-booking-step="route"] .location-widget .location-selected{
    min-height:68px;padding:11px 10px 11px 13px;gap:8px;
  }
  #view-reservar .booking-step-card[data-booking-step="route"] .location-selected-label{
    font-size:12.6px
  }
  #view-reservar .booking-step-card[data-booking-step="route"] .location-selected-hint{
    font-size:10px
  }
  #view-reservar .booking-step-card[data-booking-step="route"] .location-selected .location-edit{
    min-height:40px!important;padding:8px 9px!important
  }
}


/* PWA v48 — recuperación explícita del envío de reservas y horario. */
#view-reservar .booking-send-error,
#view-reservar .booking-when-error{
  display:block;margin:8px 0 12px;padding:12px 14px;
  border:1px solid rgba(239,200,127,.57);border-radius:14px;
  color:#f6e5c6;background:linear-gradient(120deg,rgba(75,55,32,.68),rgba(28,52,51,.75));
  font-size:12px;line-height:1.55;font-weight:640;
}
#view-reservar .booking-send-error[hidden],
#view-reservar .booking-when-error[hidden],
#view-reservar .booking-fix-when[hidden]{display:none!important}
#view-reservar .booking-fix-when{
  display:block;width:100%;margin:0 0 14px;
  font-size:12px;min-height:43px;border-radius:13px;
  border:1px solid rgba(231,203,133,.48);color:#f0d7a1;
  background:rgba(4,44,52,.75)
}


/* PWA v49 — solicitud inmediata interna: cierre limpio, sin WhatsApp. */
#view-reservar .urgent-actions{
  margin:12px 0 17px;padding:20px 20px 17px;
  border-color:rgba(231,203,133,.40);
  border-radius:20px;
  background:linear-gradient(133deg,rgba(13,66,70,.94),rgba(5,41,50,.98));
}
#view-reservar .urgent-actions h3{
  font-size:20px;line-height:1.35;margin:0 0 7px;
  letter-spacing:-.032em
}
#view-reservar .urgent-actions>p:not(.urgent-actions-eyebrow):not(.booking-final-note):not(.booking-send-error){
  margin:0 0 15px;line-height:1.6;font-size:12.8px;color:#cce1d8
}
#view-reservar .urgent-actions .booking-main-cta{
  min-height:61px;padding:11px 16px;margin:0;width:100%;
  display:flex;align-items:center;justify-content:center;gap:12px;
  font-size:13px;letter-spacing:.025em;
  background:linear-gradient(110deg,#d7a74f,#f1d694 85%);
  box-shadow:0 9px 24px rgba(170,126,49,.16);
}
#view-reservar .urgent-actions .booking-main-cta:disabled{
  opacity:.73;cursor:wait
}
#view-reservar .urgent-actions .booking-final-note{
  margin:10px 2px 0;font-size:10.6px;color:#c6d7cb;text-align:center
}
#view-reservar .urgent-actions .booking-send-error{
  margin:0 0 13px
}
@media(max-width:520px){
  #view-reservar .urgent-actions{padding:17px 15px 15px}
  #view-reservar .urgent-actions h3{font-size:18.5px}
  #view-reservar .urgent-actions .booking-main-cta{font-size:12.6px}
}



/* PWA v50 — Mis traslados: tablero móvil premium, tactilidad y legibilidad. */
#view-viajes .trip-intro{margin-bottom:16px}
#view-viajes .trip-intro h2{font-size:clamp(1.8rem,6vw,2.1rem);margin-bottom:6px}
#view-viajes .trips-board{padding:18px 16px;border-color:rgba(229,199,137,.42)}
.trips-board-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.trips-board-heading h3{font-size:18px;color:#f9f2e6;letter-spacing:-.03em}
.trips-eyebrow{font:800 10px/1.4 Manrope,sans-serif;color:#eac884;letter-spacing:.13em;margin:0 0 5px}
.trips-refresh{flex:0 0 auto;min-height:39px}
.trips-tabs{display:flex;gap:6px;margin:17px 0 14px;overflow:auto;padding-bottom:3px;scrollbar-width:thin}
.trips-tab{flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:5px;min-height:39px;
  padding:9px 12px;border-radius:12px;border:1px solid rgba(231,203,133,.30);
  background:rgba(3,30,38,.59);color:#c8ddd4;font-size:11px;font-weight:760;white-space:nowrap}
.trips-tab.active{color:#102f35;background:linear-gradient(116deg,#d9ae62,#f1d69c);border-color:#e9ce8b}
.trips-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#dcb876;color:#113039;font-size:10px}
.trips-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}
.trips-filter-label{margin:0;color:#c9d8d0;font-size:10.5px;letter-spacing:.01em}
.trips-filter-label select{min-height:42px;height:42px;margin:6px 0 0;padding:8px 27px 8px 11px;
  border:1px solid rgba(231,203,133,.33);border-radius:11px;
  background-color:rgba(4,33,41,.81);font-size:11px;font-weight:670}
.trips-alert-optin{display:flex;align-items:flex-start;gap:9px;font-size:10.5px;line-height:1.55;
  margin:11px 0;padding:8px 10px;color:#bacfc6;font-weight:500}
.trips-alert-optin input{width:16px;height:16px;min-height:16px;flex:0 0 16px;accent-color:#e3c47b;margin:1px 0 0}
.trips-status{font-size:11px;line-height:1.45;color:#b6d1c7;margin:4px 1px 12px}
.trips-list{display:grid;gap:12px}
.trips-day{border:1px solid rgba(229,204,142,.24);border-radius:18px;overflow:hidden;background:rgba(2,28,36,.24)}
.trips-day>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 12px;background:linear-gradient(95deg,rgba(18,76,77,.67),rgba(8,51,59,.66))}
.trips-day>summary::-webkit-details-marker{display:none}
.trips-day-caption{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#f1dec1}
.trips-day-count{font-size:10px;color:#adcfc2;font-weight:600}
.trips-day-chevron{width:9px;height:9px;border-right:2px solid #e2c282;border-bottom:2px solid #e2c282;transform:rotate(45deg);transition:transform .2s}
.trips-day[open] .trips-day-chevron{transform:rotate(225deg)}
.trips-day-content{display:grid;gap:9px;padding:9px}
.trips-day:not([open]) .trips-day-content{display:none}
#view-viajes .reservation.trip-card{margin:0;padding:0;overflow:hidden;border-radius:15px;
  border:1px solid rgba(198,204,163,.3);
  background:linear-gradient(122deg,rgba(4,42,50,.92),rgba(5,33,42,.97))}
#view-viajes .reservation.trip-card>summary{display:block;list-style:none;padding:14px 12px;cursor:pointer}
#view-viajes .reservation.trip-card>summary::-webkit-details-marker{display:none}
.trip-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.trip-date-wrap{display:flex;align-items:center;gap:9px;min-width:0}
.trip-date-badge{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:11px;
  background:linear-gradient(138deg,#dfb86b,#eacb92);color:#18373e;font-size:18px}
.trip-date-wrap strong{color:#f6edda;font-size:12.2px;line-height:1.3}
.trip-date-wrap small{display:block;margin-top:3px;color:#a8c8c0;font-size:10px}
.trip-status{display:inline-flex;align-items:center;gap:5px;max-width:47%;padding:6px 9px;
  border-radius:99px;border:1px solid rgba(230,197,133,.37);font-size:10px;line-height:1.25;font-weight:800;
  white-space:normal;text-align:center;color:#f0d6a0;background:rgba(211,177,95,.08)}
.trip-status-dot{width:7px;height:7px;flex:0 0 7px;background:currentColor;border-radius:50%}
.trip-card[data-tone="attention"]{border-color:rgba(237,187,111,.65)!important;box-shadow:0 0 0 1px rgba(243,194,104,.11)}
.trip-card[data-tone="attention"] .trip-status{background:rgba(232,181,90,.19);color:#f9d991}
.trip-card[data-tone="confirmed"] .trip-status{color:#b9efcf;border-color:rgba(136,211,168,.45);background:rgba(79,144,104,.15)}
.trip-card[data-tone="complete"] .trip-status{color:#bdd3c8;border-color:rgba(177,200,181,.3)}
.trip-card[data-tone="muted"] .trip-status{color:#cfb3af;border-color:rgba(189,133,125,.3)}
.trip-card[data-tone="moving"] .trip-status{color:#a5eadf;border-color:rgba(107,216,198,.5)}
.trip-card[data-tone="moving"] .trip-status-dot{animation:tripStatusPulse 2.2s ease-in-out infinite}
@keyframes tripStatusPulse{50%{box-shadow:0 0 0 5px rgba(116,224,207,.12)}}
.trip-route{display:grid;gap:7px;margin:12px 0 10px}
.trip-route-stop{display:flex;align-items:baseline;gap:8px;min-width:0}
.trip-route-icon{width:16px;flex:0 0 16px;color:#e1c386;font-size:13px}
.trip-route-label{color:#e0e9df;font-size:11.5px;line-height:1.46;min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}
.trip-card:not([open]) .trip-route-label{-webkit-line-clamp:1}
.trip-card-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;
  border-top:1px solid rgba(232,200,137,.15);padding-top:10px}
.trip-card-prompt{font-size:10px;color:#dec698;font-weight:760}
.trip-card-quote{font-size:14px;color:#f6daa3;font-weight:850}
.trip-card-open{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:#d9d6be;white-space:nowrap}
.trip-card-open::after{content:"";width:7px;height:7px;border-bottom:1.8px solid #e3c78a;border-right:1.8px solid #e3c78a;transform:rotate(45deg)}
.trip-card[open] .trip-card-open::after{transform:rotate(225deg)}
.trip-detail{padding:0 13px 14px;border-top:1px solid rgba(231,203,133,.15)}
.trip-detail-section{margin-top:13px}
.trip-detail-heading{font-size:10px;font-weight:800;color:#eacc8b;text-transform:uppercase;letter-spacing:.13em;margin:0 0 7px}
.trip-detail-line{display:flex;gap:9px;margin:5px 0;color:#d0ded5;font-size:11.5px;line-height:1.5}
.trip-detail-line>span:first-child{color:#e0c380;flex:0 0 16px}
.trip-detail-price{font-size:24px;font-weight:850;color:#f7d892;margin:6px 0}
.trip-detail-note{font-size:10.8px;line-height:1.55;color:#c7d8cd}
.trip-steps{display:flex;gap:4px;margin:10px 0}
.trip-step{min-width:0;flex:1;text-align:center}
.trip-step-line{height:5px;background:rgba(231,203,133,.17);border-radius:99px;margin-bottom:7px}
.trip-step.completed .trip-step-line{background:#9acfb5}
.trip-step.active .trip-step-line{background:#ebc77f}
.trip-step small{color:#a8c4ba;font-size:9px;line-height:1.25;display:block}
.trip-step.active small{color:#f7d899;font-weight:800}
.trip-events{display:grid;gap:8px;margin:6px 0}
.trip-event{display:flex;gap:10px;align-items:baseline;color:#d5e2d7;font-size:11px;line-height:1.4}
.trip-event-dot{width:7px;height:7px;border:1px solid #e6c78b;border-radius:50%;flex:0 0 7px}
.trip-event time{color:#a8c1b7;font-size:10px}
.trip-detail .action-row{margin-top:12px}
.trip-detail .action-row button{min-width:0;flex:1;padding:10px 8px;font-size:11px;letter-spacing:0}
.trip-empty{padding:25px 17px;text-align:center;border:1px dashed rgba(231,203,133,.3);border-radius:16px;color:#cbdad1;font-size:12px}
.trip-alert-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:rgba(2,18,23,.76);padding:20px;backdrop-filter:blur(9px)}
.trip-alert-overlay[hidden]{display:none!important}
.trip-alert-card{position:relative;width:min(100%,440px);padding:30px 23px 23px;
  border:1px solid rgba(244,208,137,.65);border-radius:23px;
  background:linear-gradient(140deg,#124a4b,#072d37);box-shadow:0 22px 80px rgba(0,0,0,.45);text-align:center}
.trip-alert-close{position:absolute;right:11px;top:10px;background:transparent;border:0;color:#f1d9a4;font-size:28px;padding:5px 11px}
.trip-alert-symbol{font-size:28px;color:#edcf91;margin:0 0 10px}
.trip-alert-card h2{font-size:22px;margin:5px 0 10px}
.trip-alert-card p:not(.trips-eyebrow){font-size:12px;color:#cee0d4;line-height:1.55}
.trip-alert-card .primary{margin:19px 0 10px}
.trip-alert-footnote{font-size:10px!important}
@media(max-width:520px){
  #view-viajes .trips-board{padding:13px 11px}
  .trips-tabs{margin-top:13px;gap:5px}
  .trips-tab{font-size:10.3px;padding:7px 9px}
  .trip-status{font-size:9.5px}
  .trip-date-wrap strong{font-size:11.5px}
  .trip-route-label{font-size:11px}
}
@media(max-width:365px){
  .trips-controls{grid-template-columns:1fr}
  .trip-head{flex-wrap:wrap}
  .trip-status{max-width:100%;margin-left:43px}
}
@media(prefers-reduced-motion:reduce){.trip-status-dot,.trips-day-chevron{animation:none!important;transition:none!important}}


/* PWA v52 — conversación privada, sonido/vibración opt-in. */
#view-viajes .trips-feedback-preferences{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:5px 0}
#view-viajes .trips-feedback-preferences .trips-alert-optin{flex:1 1 160px;margin:0;padding:8px 7px;align-items:center}
#view-viajes .trips-push-disclaimer{margin:1px 5px 11px;color:#a8c7bd;font-size:10px;line-height:1.5}
.trip-chat{margin:15px 0 9px;border:1px solid rgba(228,198,134,.4);border-radius:15px;overflow:hidden;background:rgba(5,44,50,.60)}
.trip-chat>summary{list-style:none;display:flex;justify-content:space-between;gap:9px;align-items:center;min-height:50px;padding:12px 13px;cursor:pointer;color:#f4dda9;font-size:12px;font-weight:800}
.trip-chat>summary::-webkit-details-marker{display:none}
.trip-chat-arrow{font-size:10px;color:#adcac1;white-space:nowrap}
.trip-chat[open] .trip-chat-arrow{color:#f3d99a}
.trip-chat-body{padding:4px 11px 12px;border-top:1px solid rgba(230,197,137,.15)}
.trip-chat-feed{min-height:72px;max-height:310px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:12px 2px 10px;scroll-behavior:smooth}
.trip-chat-bubble{align-self:flex-start;width:fit-content;max-width:88%;padding:9px 11px;border:1px solid rgba(182,222,196,.29);background:rgba(20,81,78,.69);border-radius:13px 13px 13px 3px;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere;color:#e8f4eb;font-size:12px;line-height:1.5}
.trip-chat-bubble.from-customer{align-self:flex-end;border-color:rgba(232,200,129,.41);background:rgba(126,102,49,.29);border-radius:13px 13px 3px 13px}
.trip-chat-bubble small{font-size:10px;color:#f1d99f;font-weight:800}
.trip-chat-bubble time{font-size:9px;color:#bdd5cb;align-self:flex-end}
.trip-chat-empty{padding:9px 3px;margin:0;color:#b5cdc3;font-size:11px;line-height:1.55}
.trip-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:8px;align-items:stretch;margin-top:5px}
#view-viajes .trip-chat-input{display:block;width:100%;min-height:58px;max-height:130px;resize:vertical;border-radius:11px;background:rgba(1,30,38,.77);padding:10px;font-size:12px;line-height:1.5;color:#f3ede0}
#view-viajes .trip-chat-send{border:1px solid rgba(249,219,147,.5);border-radius:11px;background:linear-gradient(128deg,#d1a453,#f0d497);color:#16373b;font-size:12px;font-weight:900;padding:8px 10px}
#view-viajes .trip-chat-send:disabled{opacity:.5;cursor:not-allowed}
.trip-chat-hint{margin:9px 2px 0;font-size:10px;color:#bbd0c5;line-height:1.5}
@media(max-width:370px){.trip-chat-compose{grid-template-columns:minmax(0,1fr) 67px}}
@media(prefers-reduced-motion:reduce){.trip-chat-feed{scroll-behavior:auto}}


/* PWA v53 — móvil sin desplazamiento lateral.
   Clip (no hidden) no crea otro scroll-container: el encabezado sticky y
   el scroll vertical siguen funcionando. Se adapta el contenido, no se tapa. */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
.shell,.view,.tabs,.trips-board,.trips-list,.trips-day,.trip-detail{
  min-width:0;
  max-width:100%;
}
.tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.tabs .tab{min-width:0;overflow-wrap:anywhere}
.trips-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
.trips-day-caption,.trip-date-wrap,.trip-route-stop,.trip-chat-header>span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.footer div{flex-wrap:wrap;row-gap:8px}
@media(max-width:520px){
  /* Cuatro filtros sin carrusel oculto ni barra de scroll horizontal. */
  .trips-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    overflow:visible;
    margin-top:13px;
    gap:7px;
    padding-bottom:0;
  }
  .trips-tab{
    width:100%;
    min-width:0;
    flex:none;
    white-space:normal;
    overflow-wrap:anywhere;
    min-height:42px;
    padding:8px 7px;
    line-height:1.3;
    text-align:center;
  }
  .trips-board-heading>*{min-width:0}
  .trip-detail .action-row{flex-wrap:wrap}
  .trip-detail .action-row button{min-width:0;overflow-wrap:anywhere}
}
@media(max-width:365px){
  .trips-controls{grid-template-columns:minmax(0,1fr)}
}


/* PWA v54 — comprobación de recogida con etapas reales, sin animar un GPS falso. */
#pickup-presence{
  border-color:rgba(218,191,128,.42);
  background:linear-gradient(135deg,rgba(14,68,67,.93),rgba(5,45,52,.97));
  box-shadow:inset 0 1px 0 rgba(239,214,158,.07);
}
#pickup-presence[data-presence="busy"]{
  border-color:rgba(221,186,117,.47);
  background:linear-gradient(125deg,rgba(53,69,54,.86),rgba(7,48,54,.97));
}
#pickup-presence[data-presence="busy"] .pickup-live-indicator{
  background:#d9b877;
  box-shadow:0 0 0 5px rgba(220,187,119,.09);
}
#pickup-presence[data-presence="checking"] .pickup-live-indicator::after,
#pickup-presence[data-phase="routing"] .pickup-live-indicator::after{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  border:1px solid rgba(235,208,143,.75);
  animation:pickupCheckOrbit 2.1s ease-out infinite;
}
.pickup-route-animation{
  display:flex;align-items:center;gap:11px;margin:14px 3px 0;
  min-width:0;max-width:100%;opacity:.9;
}
.pickup-route-point{
  flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;
  border:1px solid rgba(235,211,152,.43);border-radius:50%;
  color:#f5d694;background:rgba(11,53,58,.7);font-size:12px;line-height:1;
}
.pickup-route-line{
  position:relative;flex:1;min-width:0;height:3px;border-radius:20px;
  background:repeating-linear-gradient(to right,rgba(222,204,146,.65) 0 8px,transparent 8px 14px);
}
.pickup-route-car{
  position:absolute;left:0;top:50%;display:grid;place-items:center;
  width:20px;height:20px;border-radius:8px;
  color:#122f34;background:linear-gradient(135deg,#e4ba67,#f3d999);
  box-shadow:0 0 0 4px rgba(222,185,100,.12);
  font-size:11px;transform:translateY(-50%);
}
.pickup-route-car svg{
  display:block;width:17px;height:17px;stroke:currentColor;stroke-width:2;
  fill:none;stroke-linecap:round;stroke-linejoin:round;
}
#pickup-presence[data-presence="online"] .pickup-route-line{
  background:repeating-linear-gradient(to right,rgba(133,224,174,.72) 0 9px,transparent 9px 16px);
}
#pickup-presence[data-presence="online"] .pickup-route-car{
  color:#bff7d4;background:linear-gradient(135deg,#286d5c,#0a4b43);
  box-shadow:0 0 0 4px rgba(104,219,160,.12),0 1px 8px rgba(20,95,65,.25);
}
#pickup-presence[data-phase="checking"] .pickup-route-car,
#pickup-presence[data-phase="routing"] .pickup-route-car,
#pickup-presence[data-phase="waiting"] .pickup-route-car,
#pickup-presence[data-phase="ready"] .pickup-route-car{
  animation:pickupRouteTravel 3.7s ease-in-out infinite alternate;
}
#pickup-presence[data-phase="blocked"] .pickup-route-car,
#pickup-presence[data-phase="issue"] .pickup-route-car{
  left:0;opacity:.68;box-shadow:none;
}
@keyframes pickupRouteTravel{
  from{left:0}
  to{left:calc(100% - 20px)}
}
@keyframes pickupCheckOrbit{
  0%{transform:scale(.7);opacity:.75}
  80%{transform:scale(1.4);opacity:0}
  100%{transform:scale(1.4);opacity:0}
}
@media(max-width:420px){
  .pickup-route-animation{margin-top:12px;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  #pickup-presence .pickup-route-car,
  #pickup-presence .pickup-live-indicator::after{
    animation:none!important;
  }
  #pickup-presence[data-phase="checking"] .pickup-route-car,
  #pickup-presence[data-phase="routing"] .pickup-route-car,
  #pickup-presence[data-phase="waiting"] .pickup-route-car,
  #pickup-presence[data-phase="ready"] .pickup-route-car{left:42%}
}

/* PWA v55 — cotizaciones históricas no accionables; compacto y coherente. */
.trip-card[data-tone="expired"]{border-color:rgba(220,182,117,.32)!important}
.trip-card[data-tone="expired"] .trip-status{
  color:#e4c58a;background:rgba(169,129,69,.10);border-color:rgba(231,196,134,.36);
}
.trip-expired-note{
  padding:11px 13px;margin:10px 0!important;border-radius:12px;
  background:rgba(223,181,108,.085);border:1px solid rgba(223,181,108,.31);
  color:#eddaaa!important;font-size:11.5px!important;line-height:1.55!important;
}
@media(max-width:520px){
  .trip-card[data-tone="expired"] .action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .trip-card[data-tone="expired"] .action-row button{min-width:0;font-size:11px}
  .toast{width:min(90vw,385px);font-size:13px;line-height:1.45;padding:12px 16px}
}


/* PWA v57 — Journey Atelier: detailed closed itinerary, calibrated hierarchy.
 * Scoped to reservation view; no changes to search, maps, booking APIs or other tabs.
 */
#view-reservar .booking-step-card{
  margin-bottom:10px;border-radius:18px;
  border-color:rgba(215,191,140,.28);
  background:linear-gradient(140deg,rgba(12,66,71,.92),rgba(7,46,55,.96));
  box-shadow:0 7px 22px rgba(0,23,29,.09),inset 0 1px 0 rgba(255,247,214,.035);
}
#view-reservar .booking-step-card:not(.is-open){
  background:linear-gradient(143deg,rgba(10,61,67,.94),rgba(6,46,56,.98));
}
#view-reservar .booking-step-card:not(.is-open) .booking-step-toggle{
  padding:12px 15px;min-height:65px;gap:10px;
}
#view-reservar .booking-step-card .booking-step-number{
  width:35px;height:35px;flex:0 0 35px;
  background:linear-gradient(145deg,#f0d499,#cda456);
  border:1px solid rgba(255,238,194,.27);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
  font-size:12.5px;
}
#view-reservar .booking-step-card .booking-step-heading strong{
  color:#fff5e5;font-weight:800;font-size:16px;line-height:1.28;
}
#view-reservar .booking-step-card:not(.is-open) .booking-step-heading small{
  color:#c4d8d1;font-size:11.7px;line-height:1.45;
}
#view-reservar .booking-step-card .booking-step-check{
  width:9px;height:9px;min-width:9px;flex:0 0 9px;
  border-radius:50%;background:#9bdfb9;border:0;
  color:transparent;font-size:0;
  box-shadow:0 0 0 4px rgba(139,218,175,.115),0 0 12px rgba(112,217,164,.3);
}
#view-reservar .booking-step-card .booking-step-chevron{
  width:29px;height:29px;flex-basis:29px;
  border-color:rgba(234,200,137,.29);background:rgba(6,39,46,.50)
}
#view-reservar .booking-step-card:not(.is-open).is-complete{
  border-color:rgba(150,208,174,.35)
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-toggle{
  display:grid;
  grid-template-columns:35px minmax(0,1fr) 9px 29px;
  grid-template-rows:auto auto;
  align-items:center;min-height:0;padding:13px 16px 14px;
  gap:10px 11px;text-align:left
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-number{
  grid-column:1;grid-row:1
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-heading{
  grid-column:2;grid-row:1
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-check{
  grid-column:3;grid-row:1;justify-self:center
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-chevron{
  grid-column:4;grid-row:1
}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .route-folded-preview{
  grid-column:1/-1;grid-row:2;min-width:0;display:grid;gap:11px;
  padding-top:12px;border-top:1px solid rgba(225,199,143,.16)
}
#view-reservar .route-folded-preview[hidden],
#view-reservar .route-folded-stops[hidden],
#view-reservar .request-route-recap[hidden]{display:none!important}
#view-reservar .booking-step-card[data-booking-step="route"].is-open .route-folded-preview{display:none!important}
#view-reservar .booking-step-card[data-booking-step="route"]:has(.route-folded-preview:not([hidden])) .booking-step-heading small{
  display:none!important
}
#view-reservar .route-folded-places{display:flex;gap:12px;align-items:stretch;min-width:0}
#view-reservar .route-folded-timeline{
  position:relative;display:flex;flex:0 0 15px;
  flex-direction:column;align-items:center;justify-content:space-between;
  padding:11px 0;min-height:79px
}
#view-reservar .route-folded-timeline::before{
  content:"";position:absolute;top:16px;bottom:16px;left:7px;width:1px;
  background:linear-gradient(180deg,#d6be86,#84c7b1);opacity:.7
}
#view-reservar .route-folded-timeline i{
  position:relative;display:block;width:9px;height:9px;border-radius:50%;
  background:#e5c37f;border:2px solid #123f45;box-shadow:0 0 0 1px #dac287
}
#view-reservar .route-folded-timeline i:last-child{
  border-radius:3px;background:#a4dbc3;box-shadow:0 0 0 1px #8ccab5;
  transform:rotate(45deg)
}
#view-reservar .route-folded-place-text{
  display:grid;grid-template-columns:minmax(0,1fr);gap:11px;
  min-width:0;flex:1;padding:0 2px 0 0
}
#view-reservar .route-folded-place{display:grid;gap:2px;min-width:0}
#view-reservar .route-folded-label{
  color:#b4cfc9;font-size:9px;font-weight:760;letter-spacing:.13em
}
#view-reservar .route-folded-address{
  color:#fff5e6;font-size:12.8px;font-weight:720;line-height:1.4;
  overflow-wrap:break-word;white-space:normal;letter-spacing:-.006em
}
#view-reservar .route-folded-stops{
  justify-self:start;margin:0 0 0 26px;
  padding:4px 9px;border-radius:99px;
  color:#efd4a0;background:rgba(229,198,134,.10);
  border:1px solid rgba(229,198,134,.23);
  font-size:10px;font-weight:680
}
#view-reservar .route-folded-metrics{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  padding:11px 3px 0;border-top:1px solid rgba(225,199,143,.18);
  min-width:0
}
#view-reservar .route-folded-metric{
  display:flex;flex-direction:column;gap:5px;min-width:0;padding:0 8px;
}
#view-reservar .route-folded-metric:first-child{padding-left:2px}
#view-reservar .route-folded-metric:last-child{padding-right:0}
#view-reservar .route-folded-metric + .route-folded-metric{
  border-left:1px solid rgba(222,196,140,.16)
}
#view-reservar .route-folded-metric-label{
  color:#acc9c3;font-size:9px;font-weight:760;letter-spacing:.055em;
  white-space:nowrap
}
#view-reservar .route-folded-metric strong{
  color:#f5d693;font-size:16px;line-height:1.23;font-weight:790;
  letter-spacing:-.025em;overflow-wrap:anywhere
}
#view-reservar .route-folded-metric:last-child strong{font-size:15px}
#view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .route-folded-preview:not([hidden]){
  animation:journeyFoldIn .24s ease both
}
@keyframes journeyFoldIn{from{opacity:.45;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* The action panel has more breathing room in typography, less padding in controls. */
#view-reservar .urgent-actions,#view-reservar .booking-final{
  isolation:isolate;border-radius:20px;
  border:1px solid rgba(232,199,131,.48);
  background:
    radial-gradient(ellipse at 94% 2%,rgba(224,195,124,.105),transparent 58%),
    linear-gradient(140deg,#10494f 0%,#0a343c 78%);
  box-shadow:0 14px 32px rgba(0,21,27,.17),inset 0 1px 0 rgba(249,232,183,.055)
}
#view-reservar .urgent-actions::before,#view-reservar .booking-final::before{
  opacity:.28
}
#view-reservar .urgent-actions{padding:17px 17px 15px;margin-top:12px}
#view-reservar .booking-final{padding:17px;margin-top:12px}
#view-reservar .request-hero{
  display:flex;align-items:center;gap:12px;margin-bottom:11px;min-width:0
}
#view-reservar .request-hero-icon{
  width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;
  border:1px solid rgba(237,204,138,.34);border-radius:14px;
  color:#f5d693;background:linear-gradient(135deg,rgba(235,203,136,.18),rgba(4,45,52,.6))
}
#view-reservar .request-hero-icon svg{width:24px;height:24px;display:block}
#view-reservar .request-hero-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
#view-reservar .request-hero-copy .urgent-actions-eyebrow{
  margin:0;font-size:9px;letter-spacing:.12em;font-weight:820
}
#view-reservar .urgent-actions .request-hero h3{
  margin:0;font-size:19px;line-height:1.25;letter-spacing:-.035em
}
#view-reservar .urgent-actions>p:not(.booking-final-note):not(.booking-send-error){
  font-size:12.4px;line-height:1.6;margin:2px 0 13px;color:#cde1d9
}
#view-reservar .request-route-recap{
  display:block;min-width:0;padding:12px 12px 10px;
  margin:0 0 14px;border-radius:15px;
  border:1px solid rgba(225,198,140,.27);
  background:linear-gradient(115deg,rgba(4,34,42,.55),rgba(16,72,71,.30));
}
#view-reservar .request-recap-top{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:8px;min-width:0;margin-bottom:10px;
  color:#e8cd92;font-size:9px;font-weight:790;letter-spacing:.065em
}
#view-reservar .request-recap-top span:last-child{
  color:#b5d0c7;letter-spacing:0;font-size:9px;font-weight:550;text-align:right
}
#view-reservar .request-recap-metrics{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0
}
#view-reservar .request-recap-metrics>span{
  display:flex;flex-direction:column;gap:4px;min-width:0;
  padding:0 8px
}
#view-reservar .request-recap-metrics>span:first-child{padding-left:0}
#view-reservar .request-recap-metrics>span+span{border-left:1px solid rgba(237,203,139,.18)}
#view-reservar .request-recap-metrics small{
  color:#b5cdc4;font-size:9px;letter-spacing:.07em;line-height:1.4;font-weight:660
}
#view-reservar .request-recap-metrics strong{
  color:#f3d38d;font-size:15px;line-height:1.28;letter-spacing:-.018em;
  font-weight:790;overflow-wrap:anywhere
}
#view-reservar .request-recap-metrics>span:last-child strong{font-size:14px}
#view-reservar .urgent-actions .booking-main-cta,
#view-reservar .booking-final .booking-main-cta{
  min-height:53px;padding:11px 14px;border-radius:15px;
  background:linear-gradient(110deg,#dab05e 0%,#f5dea3 86%);
  border:1px solid rgba(255,237,180,.72);
  box-shadow:inset 0 1px 0 rgba(255,253,232,.32),0 9px 22px rgba(19,23,19,.18);
  color:#14343a;font-size:12.7px;letter-spacing:.025em;transition:transform .14s ease,box-shadow .14s ease
}
#view-reservar .urgent-actions .booking-main-cta:active,
#view-reservar .booking-final .booking-main-cta:active{transform:translateY(1px) scale(.995);box-shadow:0 5px 14px rgba(19,23,19,.16)}
#view-reservar .booking-cta-arrow{
  width:27px;height:27px;flex-basis:27px;border-radius:50%;
  background:rgba(11,49,52,.105);font-size:18px
}
#view-reservar .urgent-actions .booking-final-note,
#view-reservar .booking-final .booking-final-note{
  margin-top:11px;font-size:10.7px;line-height:1.5;color:#c6d8cd
}
#view-reservar .booking-final-description{margin-bottom:12px}

@media(max-width:520px){
  #view-reservar .booking-step-card:not(.is-open) .booking-step-toggle{min-height:62px;padding:11px 13px}
  #view-reservar .booking-step-card[data-booking-step="route"]:not(.is-open) .booking-step-toggle{
    min-height:0;padding:12px 14px 14px;
    grid-template-columns:35px minmax(0,1fr) 9px 29px
  }
  #view-reservar .route-folded-place-text{gap:10px}
  #view-reservar .urgent-actions{padding:16px 15px 14px}
  #view-reservar .booking-final{padding:16px 15px}
  #view-reservar .urgent-actions .request-hero h3{font-size:18px}
}
@media(max-width:360px){
  #view-reservar .route-folded-address{font-size:12px}
  #view-reservar .route-folded-metric{padding:0 5px}
  #view-reservar .route-folded-metric strong{font-size:14px}
  #view-reservar .route-folded-metric:last-child strong{font-size:12px}
  #view-reservar .request-recap-metrics>span{padding:0 5px}
  #view-reservar .request-recap-metrics strong{font-size:13px}
  #view-reservar .request-recap-metrics>span:last-child strong{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  #view-reservar .booking-step-card[data-booking-step="route"] .route-folded-preview,
  #view-reservar .booking-main-cta{animation:none;transition:none}
}

/* PWA v58 · Passenger journey: one primary action, details on demand.
 * Preserves all server workflows. No personal data/coordinates in style or logs.
 */
#view-viajes .trip-intro{margin:9px 5px 7px}
#view-viajes .trip-intro h2{font-size:19px;line-height:1.2;letter-spacing:-.04em}
#view-viajes .trips-board{
  padding:17px 15px;border-radius:21px;
  background:linear-gradient(144deg,rgba(12,65,72,.98),rgba(6,45,55,.97));
  border-color:rgba(233,201,135,.31)
}
#view-viajes .trips-board-heading{gap:8px}
#view-viajes .trips-board-heading h3{
  font-size:18px;letter-spacing:-.027em
}
#view-viajes .trips-refresh{
  min-height:40px;padding:10px 12px;font-size:11px;white-space:nowrap
}
#view-viajes .trips-tabs{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;margin:17px 0 11px;overflow:visible;padding:0
}
#view-viajes .trips-tab{
  min-height:43px;min-width:0;white-space:normal;
  font-size:11.2px;line-height:1.3;padding:8px 5px;
  border-radius:12px;text-align:center;
  overflow-wrap:break-word
}
#view-viajes .trips-tab.active{
  box-shadow:inset 0 1px 0 rgba(255,245,206,.35),0 6px 15px rgba(0,29,31,.17)
}
#view-viajes .trips-focus{
  margin:0 0 11px;padding:10px 12px;
  background:rgba(6,42,47,.54);border:1px solid rgba(231,203,133,.17);
  border-radius:12px;font-size:11px;line-height:1.52;color:#cde2d7
}
#view-viajes .trips-advanced{margin:5px 1px 10px}
#view-viajes .trips-advanced>summary{
  cursor:pointer;list-style:none;padding:9px 12px;
  display:flex;justify-content:space-between;align-items:center;
  gap:8px;border-radius:11px;min-height:39px;
  color:#ead2a0;font-size:11px;font-weight:760;
  border:1px solid rgba(226,196,136,.23);background:rgba(1,31,41,.24)
}
#view-viajes .trips-advanced>summary::-webkit-details-marker{display:none}
#view-viajes .trips-advanced[open]>summary span{transform:rotate(180deg)}
#view-viajes .trips-advanced-body{
  margin-top:8px;padding:12px;border:1px solid rgba(225,199,142,.18);
  background:rgba(4,35,43,.54);border-radius:13px;display:grid;gap:11px
}
#view-viajes .trips-advanced-body .trips-show-all{
  width:100%;min-height:39px;display:block;box-shadow:none
}
#view-viajes .trips-controls{margin:0;gap:8px}
#view-viajes .trips-feedback-preferences{padding:0;gap:5px}
#view-viajes .trips-feedback-preferences .trips-alert-optin{margin:0}
#view-viajes .trips-push-disclaimer{margin:0 2px;font-size:10px;line-height:1.5}
#view-viajes .trips-status{margin:10px 2px 12px;color:#aaccc3;font-size:10.6px}

#view-viajes .trips-day{border-color:rgba(232,203,141,.25);border-radius:16px}
#view-viajes .trips-day>summary{padding:12px 11px}
#view-viajes .trips-day-content{padding:8px;gap:8px}
#view-viajes .reservation.trip-card{
  background:linear-gradient(140deg,rgba(5,43,50,.96),rgba(4,34,43,.99));
  border-radius:14px;border-color:rgba(231,203,133,.27)
}
#view-viajes .reservation.trip-card>summary{padding:13px 13px 11px}
#view-viajes .trip-date-badge{width:33px;height:33px;flex-basis:33px;font-size:15px}
#view-viajes .trip-date-wrap strong{font-size:12.2px}
#view-viajes .trip-status{max-width:52%;border-radius:999px}
#view-viajes .trip-route{margin:12px 0 10px;gap:9px}
#view-viajes .trip-route-stop{align-items:flex-start;gap:8px}
#view-viajes .trip-route-icon{padding-top:1px}
#view-viajes .trip-route-label,
#view-viajes .trip-card:not([open]) .trip-route-label{
  display:block;-webkit-line-clamp:unset;-webkit-box-orient:initial;
  overflow:visible;overflow-wrap:anywhere;white-space:normal;
  line-height:1.47;font-size:11.4px;color:#f1f1e4
}
#view-viajes .trip-card-footer{padding-top:11px;margin-top:10px}
#view-viajes .trip-card-quote{font-size:18px;letter-spacing:-.025em;color:#efd08a}
#view-viajes .trip-card-open{font-size:10.6px}
#view-viajes .trip-detail{padding:12px 13px 15px}
#view-viajes .trip-focus-message{
  margin:0 0 11px;font-size:11.5px;color:#d0e2d8;
  line-height:1.6
}
#view-viajes .trip-card[data-tone="attention"] .trip-focus-message{
  background:rgba(221,172,90,.115);border-left:3px solid #eac880;
  padding:10px;border-radius:6px 10px 10px 6px
}
#view-viajes .trip-detail .trip-primary-actions{
  display:flex;gap:8px;margin:9px 0 12px;flex-wrap:wrap
}
#view-viajes .trip-detail .trip-primary-actions button{
  flex:1 1 135px;min-height:44px;font-weight:820;font-size:11.2px;
  line-height:1.35;letter-spacing:0;border-radius:11px;padding:9px 10px
}
#view-viajes .trip-detail-disclosure{
  border:1px solid rgba(225,196,135,.25);
  border-radius:12px;margin:9px 0 0;
  background:rgba(5,43,51,.53);overflow:hidden
}
#view-viajes .trip-detail-disclosure>summary{
  position:relative;list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 13px;min-height:44px;
  font-size:11.8px;font-weight:750;color:#f1d7a0
}
#view-viajes .trip-detail-disclosure>summary::-webkit-details-marker{display:none}
#view-viajes .trip-detail-disclosure>summary::after{
  content:"";width:7px;height:7px;border:solid #e8c983;border-width:0 1.8px 1.8px 0;
  transform:rotate(45deg);flex:0 0 7px
}
#view-viajes .trip-detail-disclosure[open]>summary::after{transform:rotate(225deg)}
#view-viajes .trip-disclosure-body{
  padding:8px 13px 14px;border-top:1px solid rgba(231,203,133,.14)
}
#view-viajes .trip-history-disclosure .trip-steps{margin:12px 0}
#view-viajes .trip-history-disclosure .trip-events{margin:12px 0 3px}
#view-viajes .trip-chat{
  display:flex;align-items:center;gap:8px;justify-content:space-between;
  margin:12px 0 4px;min-height:46px;padding:0 12px;
  border-radius:12px;background:rgba(7,49,56,.65)
}
#view-viajes .trip-chat-open{
  flex:1 1 auto;text-align:left;min-height:45px;
  background:none;border:0;color:#f1d396;font-size:11.7px;
  font-weight:820;padding:9px 0
}
#view-viajes .trip-chat-arrow{font-size:10px;white-space:normal;text-align:right}
#view-viajes .trip-cancel-action{
  margin:13px 2px 0;display:block;background:none;border:0;
  color:#d7bbb1;text-decoration:underline;text-underline-offset:3px;
  font-size:10.7px;min-height:40px;padding:6px 0
}

/* Separate, private conversation. No edit field exists in archived conversations. */
.trip-chat-sheet{
  position:fixed;inset:0;z-index:320;
  background:rgba(0,16,22,.82);backdrop-filter:blur(9px);
  display:flex;align-items:center;justify-content:center;
  padding:16px;overflow:hidden
}
.trip-chat-sheet[hidden]{display:none!important}
body.trip-chat-modal-open{overflow:hidden}
.trip-chat-dialog{
  display:flex;flex-direction:column;
  width:min(100%,510px);height:min(650px,calc(100dvh - 32px));min-height:0;
  background:linear-gradient(160deg,#0d4149,#062d38);
  border:1px solid rgba(232,205,144,.55);
  border-radius:23px;box-shadow:0 26px 90px rgba(0,0,0,.58);
  overflow:hidden;outline:none
}
.trip-chat-dialog-header{
  flex:none;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:17px 16px 15px;border-bottom:1px solid rgba(229,197,139,.24)
}
.trip-chat-dialog-header .trips-eyebrow{margin:0 0 4px;font-size:9px}
.trip-chat-dialog-header h2{margin:0;font-size:16px;line-height:1.35;color:#fff3e1}
.trip-chat-dialog-status{font-size:10.6px;color:#b3d0c5;margin:5px 0 0}
#trip-chat-dialog-close{
  flex:0 0 41px;width:41px;height:41px;border-radius:12px;
  border:1px solid rgba(227,197,135,.4);
  background:rgba(5,34,42,.6);color:#edd49a;font-size:28px
}
.trip-chat-dialog-content{
  min-height:0;flex:1 1 auto;display:flex;flex-direction:column;
  padding:12px 15px max(14px,env(safe-area-inset-bottom))
}
.trip-chat-dialog-content .trip-chat-feed{
  flex:1 1 auto;min-height:0;max-height:none;
  overflow-y:auto;padding:13px 4px 17px;
  overscroll-behavior:contain;scroll-behavior:smooth
}
.trip-chat-dialog-content .trip-chat-compose{
  flex:none;display:grid;grid-template-columns:minmax(0,1fr) 77px;gap:8px;
  align-items:stretch;padding-top:11px;
  border-top:1px solid rgba(229,197,139,.23)
}
.trip-chat-dialog-content .trip-chat-input{
  display:block;min-height:49px;max-height:120px;
  padding:11px;font-size:12.5px;margin:0;
  border-radius:12px;background:rgba(0,25,34,.77);color:#f8f0e4
}
.trip-chat-dialog-content .trip-chat-send{
  min-width:0;min-height:49px;padding:9px 8px;
  border:1px solid #f3d99a;border-radius:12px;
  background:linear-gradient(115deg,#d4a75b,#f1d89a);
  color:#16373b;font-size:11.5px;font-weight:820
}
.trip-chat-dialog-content .trip-chat-send:disabled{opacity:.52}
.trip-chat-dialog-content .trip-chat-hint{margin:8px 1px 0}
.trip-chat-dialog-content .trip-chat-archived{
  margin:11px 2px 2px;padding:12px;
  background:rgba(152,189,167,.11);border:1px solid rgba(160,201,171,.24);
  border-radius:12px;color:#d0e2d7;
  font-size:11.3px;line-height:1.55
}
@media(max-width:520px){
  #view-viajes .trip-intro{display:none}
  #view-viajes .trips-board{padding:14px 11px;margin-top:8px}
  #view-viajes .trips-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  #view-viajes .trips-tab{font-size:10.3px;min-height:42px}
  #view-viajes .trips-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* One persistent navigation row, not two layers covering the page content. */
  .header{position:relative;top:auto}
  .tabs{position:sticky;top:0}
  /* Samsung: the independent Mapa floating bubble lives at top right, beyond CSS z-index.
     Put the conversation close control at top left, never beneath that Android overlay. */
  .trip-chat-dialog-header{flex-direction:row-reverse}
  .trip-chat-dialog-header>div{flex:1 1 auto;min-width:0}
  .trip-chat-sheet{padding:0;align-items:flex-end}
  .trip-chat-dialog{
    width:100%;height:calc(100dvh - 16px);max-height:none;
    border-radius:21px 21px 0 0;border-bottom:0
  }
}
@media(max-width:365px){
  #view-viajes .trips-controls{grid-template-columns:minmax(0,1fr)}
  #view-viajes .trip-chat-arrow{font-size:9px}
  .trip-chat-dialog-content .trip-chat-compose{grid-template-columns:minmax(0,1fr) 67px}
}
@media(prefers-reduced-motion:reduce){
  .trip-chat-dialog-content .trip-chat-feed{scroll-behavior:auto}
}

/* PWA v64 sobre v60 — recorrido ilustrativo visible en espera y llegada verificada.
 * No muestra progreso real del vehículo y nunca aparece en estados no disponibles.
 * Llegada contextual: estado primero, kilometraje y ETA después.
 * El esquema premium sigue igual; los diagnósticos quedan en memoria interna. */
#pickup-presence{padding:14px 15px 12px;gap:6px}
#pickup-presence .pickup-card-heading strong{font-size:17px;line-height:1.3}
#pickup-presence .pickup-card-heading p{margin:4px 0 0;line-height:1.42;font-size:12.5px}
#pickup-presence:not([data-phase="checking"]):not([data-phase="routing"]):not([data-phase="waiting"]):not([data-phase="ready"]) .pickup-route-animation{display:none!important}
#pickup-presence .pickup-presence-metrics{margin:12px 0 6px;gap:8px}
#pickup-presence .pickup-presence-metric{min-height:67px;padding:11px 12px;border-radius:12px}
#pickup-presence .pickup-metric-label{font-size:9px;letter-spacing:.05em;line-height:1.3}
#pickup-presence .pickup-presence-metric strong{font-size:23px;margin-top:6px}
#pickup-presence .pickup-estimate-note{margin:4px 0;color:#e7dcbf;font-size:11px;line-height:1.4}
#pickup-presence .pickup-presence-meta{margin:10px 0 0;padding-top:8px;border-top:1px solid rgba(211,222,195,.16);font-size:10.5px;line-height:1.35;color:#bfd7cf}
#pickup-presence .pickup-presence-meta:empty{display:none}
@media(max-width:420px){
  #pickup-presence{padding:13px 12px 11px}
  #pickup-presence .pickup-card-heading strong{font-size:16px}
  #pickup-presence .pickup-presence-metric{min-height:65px;padding:10px 9px}
  #pickup-presence .pickup-presence-metric strong{font-size:21px}
  #pickup-presence .pickup-metric-label{font-size:8.5px}
}

/* PWA v61 — home de servicios separada del formulario. Layout táctil sin scroll lateral. */
#view-inicio{padding-top:20px}
.home-hero{position:relative;isolation:isolate;overflow:hidden;padding:23px 22px 20px;
  border:1px solid rgba(222,195,135,.30);border-radius:23px;
  background:radial-gradient(ellipse at 92% 3%,rgba(34,136,123,.2),transparent 57%),
    linear-gradient(135deg,rgba(9,61,65,.94),rgba(5,38,48,.98));
  box-shadow:0 13px 31px rgba(0,19,24,.16)}
.home-hero:after{content:"";position:absolute;right:-55px;bottom:-95px;width:210px;height:210px;
  border:1px solid rgba(225,190,118,.16);border-radius:50%;pointer-events:none;z-index:-1;
  box-shadow:0 0 0 25px rgba(211,186,119,.035),0 0 0 51px rgba(211,186,119,.025)}
.home-hero .eyebrow{margin:0 0 12px;font-size:9.5px;letter-spacing:.13em}
.home-hero .star{color:#f2d894;font-size:15px}
.home-hero h1{font-size:clamp(2rem,6.7vw,3.25rem);letter-spacing:-.055em;margin:0 0 10px;line-height:1.13}
.home-hero h1 em{color:#f0d394}
.home-hero>p:last-child{font-size:13px;line-height:1.55;color:#c8ddd5;max-width:560px;margin:0}
.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:22px 2px 13px}
.home-section-heading .eyebrow{margin-bottom:5px;font-size:9px}
.home-section-heading h2{font-size:1.37rem;letter-spacing:-.035em;margin:0}
.home-section-heading>p{margin:0 0 2px;font-size:11px;color:#bcd0c9}
.service-list{display:grid;gap:10px;min-width:0}
.service-card{appearance:none;text-align:left;display:grid;grid-template-columns:48px minmax(0,1fr) 23px;align-items:center;
  gap:13px;min-width:0;width:100%;min-height:105px;padding:15px;border:1px solid rgba(213,192,137,.3);
  border-radius:19px;background:linear-gradient(140deg,#103f47,#092b36);
  color:#f8f5ec;box-shadow:0 9px 22px rgba(0,15,23,.12);
  transition:background .18s ease,border-color .18s ease,transform .18s ease}
.service-card:hover{border-color:rgba(240,210,139,.65);background:linear-gradient(145deg,#145058,#0c3540)}
.service-card:active{transform:scale(.995)}
.service-card-featured{border-color:rgba(239,211,148,.6);
  background:radial-gradient(ellipse at 100% 10%,rgba(224,193,130,.10),transparent 58%),linear-gradient(145deg,#14515a,#0a343e)}
.service-card-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(223,192,130,.55);
  background:linear-gradient(140deg,rgba(227,201,143,.14),rgba(9,60,63,.27));border-radius:15px;
  font:700 26px/1 Manrope,sans-serif;color:#edcf8b}
.service-card-body{display:flex;flex-direction:column;gap:5px;min-width:0}
.service-card-body strong{font:800 clamp(14px,2.6vw,18px)/1.3 Manrope,sans-serif;letter-spacing:-.025em;color:#fff8e9}
.service-card-body small{color:#c0d7cf;font-size:11.8px;line-height:1.45;overflow-wrap:anywhere}
.service-card-arrow{font:700 23px/1 Manrope,sans-serif;color:#e9cc8a;text-align:right}
.service-card-tag{display:inline-flex;align-self:flex-start;border-radius:30px;margin-top:3px;
  padding:4px 8px;font-size:9.5px;font-weight:800;line-height:1.25;letter-spacing:.045em;
  color:#eed49a;background:rgba(218,184,106,.1);border:1px solid rgba(218,184,106,.27)}
.service-card-heading{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.service-card-heading .service-card-tag{margin:0}
.service-card-soon{background:linear-gradient(140deg,rgba(26,59,61,.83),rgba(12,47,52,.9));
  border-color:rgba(188,203,176,.24)}
.service-card-soon .service-card-icon{color:#bbd3c7;border-color:rgba(181,210,194,.33)}
.service-card-soon .service-card-arrow{color:#a7bdb7}
.service-tag-soon{color:#d7d5bc;border-color:rgba(210,198,152,.31);background:rgba(210,198,152,.09)}
.service-coming-soon{margin:10px 1px 0;padding:12px 14px;border-radius:13px;
  background:rgba(212,190,130,.085);border:1px solid rgba(218,195,145,.32);
  color:#f1dfb6;font-size:12px;line-height:1.5}
.home-quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}
.home-quick-links button{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:49px;
  padding:10px;border-radius:13px;background:rgba(6,43,50,.65);border:1px solid rgba(184,207,187,.23);
  color:#e8e7d9;font-size:11.5px;font-weight:730;text-align:left;min-width:0}
.home-quick-links button:hover{border-color:rgba(231,203,133,.6)}
.home-quick-links button span:first-child{font-size:17px;color:#e9c982}
.home-quick-links button span:last-child{color:#e9c982}
.home-assurance{text-align:center;font-size:10.5px;color:#a8c5bd;margin:17px auto 9px}
.booking-entry-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-2px 3px 13px}
.booking-back-services{border:0;padding:7px 0;background:transparent;color:#edd197;
  font-size:12px;font-weight:750;text-decoration:underline;text-decoration-color:rgba(237,209,151,.35);text-underline-offset:4px}
.booking-service-caption{border:1px solid rgba(229,204,150,.27);border-radius:30px;padding:6px 10px;
  font-size:9px;letter-spacing:.08em;font-weight:800;color:#e5d4a9;background:rgba(215,193,130,.075)}
#view-reservar>.section-heading h2{font-size:clamp(1.55rem,5vw,1.95rem)}
#view-reservar>.section-heading{margin-bottom:17px}
#view-reservar>.section-heading p{max-width:550px}
@media(max-width:520px){
  #view-inicio{padding-top:13px}
  .home-hero{padding:22px 18px 19px;border-radius:21px}
  .home-hero h1{font-size:clamp(2rem,9vw,2.6rem)}
  .home-section-heading{margin:21px 1px 12px}
  .home-section-heading h2{font-size:1.27rem}
  .home-section-heading>p{display:none}
  .service-card{grid-template-columns:45px minmax(0,1fr) 17px;gap:10px;padding:13px 12px;min-height:101px}
  .service-card-icon{width:45px;height:45px}
  .service-card-body strong{font-size:14px}
  .service-card-body small{font-size:11px}
  .service-card-arrow{font-size:20px}
  .home-quick-links button{font-size:10.5px}
}
@media(max-width:360px){
  .home-quick-links{grid-template-columns:minmax(0,1fr)}
  .service-card-heading{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){.service-card{transition:none}.service-card:active{transform:none}}

/* PWA v62 · Orbital service emblems and editorial identity.
   All art is inlined SVG: lightweight, offline-ready, no font or external CDN. */
#view-inicio.home-screen{padding-top:15px}
#view-inicio .home-hero{
  overflow:hidden;min-height:170px;padding:27px 23px 23px;
  background:
    radial-gradient(circle at 85% 33%,rgba(229,195,129,.105) 0,transparent 42%),
    radial-gradient(ellipse at 10% 90%,rgba(37,152,139,.12),transparent 59%),
    repeating-linear-gradient(130deg,rgba(239,223,179,.012) 0 1px,transparent 1px 12px),
    linear-gradient(135deg,#10424a 0%,#052d36 87%);
  box-shadow:0 15px 38px rgba(0,21,27,.21),inset 0 1px rgba(255,233,188,.08);
}
#view-inicio .home-hero:after{
  width:195px;height:195px;right:-67px;bottom:-96px;
  border:1px solid rgba(237,207,148,.26);
  box-shadow:0 0 0 17px rgba(238,202,129,.026),0 0 0 43px rgba(238,202,129,.026);
}
#view-inicio .home-hero h1{
  font-size:clamp(2.18rem,7vw,3.45rem);letter-spacing:-.055em;
  max-width:570px;line-height:1.1
}
#view-inicio .home-hero h1 em{
  font-style:normal;color:#f5d994;
  text-shadow:0 4px 26px rgba(236,196,125,.17)
}
#view-inicio .home-hero .eyebrow{color:#e6cf9e}
#view-inicio .home-hero>p:last-child{max-width:480px;line-height:1.62}
#view-inicio .home-section-heading{margin-top:24px}
#view-inicio .home-section-heading h2{color:#fff2df}
#view-inicio .service-list{gap:12px}
#view-inicio .service-card{
  --card-ring:#eacb8d;--card-ink:#f7ddb1;
  position:relative;isolation:isolate;overflow:hidden;
  grid-template-columns:90px minmax(0,1fr) 18px;
  min-height:153px;gap:14px;padding:16px 16px 16px 12px;
  border-radius:23px;border-color:rgba(225,196,137,.36);
  background:
    radial-gradient(ellipse at 4% 18%,rgba(38,138,135,.2),transparent 53%),
    linear-gradient(132deg,#124650 0%,#0a313d 88%);
  box-shadow:0 12px 29px rgba(0,17,26,.17),inset 0 1px rgba(255,245,216,.07);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease
}
#view-inicio .service-card:before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  width:194px;height:194px;left:-72px;top:-44px;
  border:1px solid rgba(237,208,149,.09);border-radius:50%;
  box-shadow:0 0 0 20px rgba(238,207,139,.016),0 0 0 42px rgba(238,207,139,.014)
}
#view-inicio .service-card:after{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(245,227,169,.07) 52%,transparent 62%);
  opacity:0;transform:translateX(-28%);
  transition:opacity .3s ease,transform .48s ease
}
#view-inicio .service-card-featured{
  border-color:rgba(239,210,146,.7);
  background:
    radial-gradient(ellipse at 5% 8%,rgba(45,155,139,.28),transparent 52%),
    linear-gradient(128deg,#14515a,#08333f 92%)
}
#view-inicio .service-card-scheduled{--card-ring:#e5d3a7;--card-ink:#f1e6c5}
#view-inicio .service-card-soon{
  --card-ring:#b9d8c7;--card-ink:#deeee0;
  background:
    radial-gradient(ellipse at 0 15%,rgba(65,119,112,.18),transparent 57%),
    linear-gradient(130deg,#143b41,#0a3039);
  border-color:rgba(190,215,191,.38)
}
#view-inicio .service-card:hover,#view-inicio .service-card:focus-visible{
  border-color:#e8d19d;
  box-shadow:0 16px 36px rgba(0,18,25,.24),inset 0 1px rgba(255,247,213,.12);
  transform:translateY(-2px)
}
#view-inicio .service-card:hover:after,#view-inicio .service-card:focus-visible:after{
  opacity:1;transform:translateX(36%)
}
#view-inicio .service-card:active{transform:translateY(1px) scale(.995)}
#view-inicio .service-card:focus-visible{outline:3px solid #fff2c6;outline-offset:3px}
#view-inicio .service-card-icon{
  display:grid;place-items:center;position:relative;
  width:90px;height:90px;border:0;border-radius:50%;
  background:radial-gradient(circle at 44% 29%,#235b5e 0%,#0b3942 60%,#062a34 100%);
  box-shadow:0 9px 22px rgba(0,21,28,.38),
    inset 0 2px 3px rgba(248,218,159,.17),0 0 0 1px rgba(242,211,151,.29);
  transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease
}
#view-inicio .service-card:hover .service-card-icon,
#view-inicio .service-card:focus-visible .service-card-icon{
  transform:rotate(-4deg) scale(1.045);
  box-shadow:0 13px 26px rgba(0,18,24,.45),0 0 22px rgba(218,183,111,.11),
    inset 0 2px 3px rgba(248,218,159,.2),0 0 0 1px rgba(242,211,151,.48)
}
#view-inicio .service-card-icon:before{
  content:"";position:absolute;width:66px;height:66px;border-radius:50%;
  border:1px solid rgba(243,210,145,.12);pointer-events:none
}
#view-inicio .service-emblem{width:90px;height:90px;overflow:visible;display:block}
#view-inicio .emblem-outer{stroke:var(--card-ring);stroke-width:1.5;opacity:.72}
#view-inicio .emblem-dashed{stroke:var(--card-ring);stroke-width:.7;stroke-dasharray:1.3 5;opacity:.5}
#view-inicio .emblem-inner{fill:rgba(3,33,41,.17);stroke:var(--card-ring);stroke-width:.85;opacity:.75}
#view-inicio .emblem-lettering{
  font-family:Manrope,Arial,sans-serif;fill:var(--card-ink);
  font-size:8.4px;letter-spacing:1.45px;font-weight:800
}
#view-inicio .emblem-drawing{
  stroke:var(--card-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round
}
#view-inicio .emblem-dot{fill:#91d6c5;stroke:var(--card-ink);stroke-width:1}
#view-inicio .emblem-glint{fill:#f2d58f}
#view-inicio .emblem-clock{fill:#0c3941;stroke:#a3dbc2;stroke-width:1.6}
#view-inicio .emblem-route{stroke:#aad8c1;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
#view-inicio .service-card-body{gap:5px;min-width:0;align-items:flex-start}
#view-inicio .service-card-kicker{
  font-size:9px;line-height:1.4;letter-spacing:.135em;font-weight:850;
  color:#d9c296
}
#view-inicio .service-card-name{
  display:block;font-family:Manrope,Arial,sans-serif;
  font-weight:850;font-size:clamp(20px,3.5vw,27px);
  line-height:1.12;letter-spacing:-.045em;color:#fff5e5;
  text-wrap:balance;white-space:normal
}
#view-inicio .service-card-name em{
  color:#f1d294;font-weight:820;font-style:italic;letter-spacing:-.045em
}
#view-inicio .service-card-description{
  font-size:11.7px;line-height:1.43;color:#cddbd3;margin-top:2px;
  max-width:340px;overflow-wrap:break-word
}
#view-inicio .service-card-action{
  display:inline-flex;gap:9px;align-items:center;margin-top:7px;
  color:#f0d49c;font-size:11.4px;font-weight:800
}
#view-inicio .service-card-action span{font-size:15px;transition:transform .25s ease}
#view-inicio .service-card:hover .service-card-action span{transform:translate(2px,-2px)}
#view-inicio .service-card-arrow{
  display:grid;place-items:center;justify-self:end;align-self:center;
  width:28px;height:28px;border-radius:50%;font-size:16px;
  border:1px solid rgba(228,204,150,.3);
  color:#f0d59a;background:rgba(226,199,136,.065)
}
#view-inicio .service-card-soon .service-card-kicker{color:#a9d3bf}
#view-inicio .service-card-soon .service-card-name em{color:#c5e4ce}
#view-inicio .service-card-soon .service-card-icon:before{border-color:rgba(180,224,197,.15)}
#view-inicio .service-tag-soon{
  margin-top:8px;padding:5px 9px;letter-spacing:.09em;font-size:9px;
  border:1px solid rgba(188,224,191,.34);
  background:rgba(141,196,162,.09);color:#d2e9ce
}
#view-inicio .home-quick-links{margin-top:15px}
#view-inicio .home-quick-links button{
  min-height:52px;border-radius:15px;
  transition:background .18s ease,border-color .18s ease
}
#view-inicio .home-quick-links button:focus-visible{outline:2px solid #f5dca4;outline-offset:2px}
#view-inicio .service-coming-soon{
  animation:serviceReveal .24s ease both;
  border-color:rgba(222,201,142,.4);
  box-shadow:inset 3px 0 rgba(233,198,129,.6)
}
@keyframes serviceReveal{from{opacity:.5;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:520px){
  #view-inicio .home-hero{padding:23px 18px 21px;min-height:0}
  #view-inicio .home-hero h1{font-size:clamp(2rem,9.1vw,2.65rem)}
  #view-inicio .service-card{
    grid-template-columns:80px minmax(0,1fr) 17px;gap:12px;
    padding:15px 12px 15px 10px;min-height:139px;border-radius:21px
  }
  #view-inicio .service-card-icon,#view-inicio .service-emblem{width:80px;height:80px}
  #view-inicio .service-card-name{font-size:clamp(20px,5.25vw,24px)}
  #view-inicio .service-card-description{font-size:11.1px}
  #view-inicio .service-card-kicker{font-size:8.3px;letter-spacing:.11em}
  #view-inicio .service-card-arrow{width:24px;height:24px;font-size:14px}
  #view-inicio .home-section-heading{margin-top:20px}
}
@media(max-width:365px){
  #view-inicio .service-card{grid-template-columns:69px minmax(0,1fr) 16px;gap:9px;padding:12px 10px}
  #view-inicio .service-card-icon,#view-inicio .service-emblem{width:69px;height:69px}
  #view-inicio .service-card-kicker{font-size:7.9px}
  #view-inicio .service-card-name{font-size:20px}
  #view-inicio .service-card-description{font-size:10.8px}
}
@media(prefers-reduced-motion:reduce){
  #view-inicio .service-card,#view-inicio .service-card-icon,#view-inicio .service-card:after,
  #view-inicio .service-card-action span{transition:none!important;transform:none!important}
  #view-inicio .service-coming-soon{animation:none!important}
}

/* PWA v65 · Private contextual follow-up for this customer's own request. */
#pickup-presence[data-presence="owned"]{
  border-color:rgba(134,215,182,.61);
  background:radial-gradient(ellipse at 0 0,rgba(53,127,105,.27),transparent 69%),linear-gradient(140deg,#12464a,#073239);
}
#pickup-presence[data-presence="owned"] .pickup-live-indicator{
  background:#9fe2ba;box-shadow:0 0 0 5px rgba(139,227,178,.1);
}
.pickup-existing-open{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:47px;margin-top:11px;padding:10px 14px;
  background:linear-gradient(125deg,#eed394,#d9b471);color:#102f34;
  border:0;border-radius:12px;font:800 12.5px/1.3 Manrope,Arial,sans-serif;
  cursor:pointer;text-align:left;box-shadow:0 5px 15px rgba(0,18,23,.13);
}
.pickup-existing-open[hidden]{display:none!important}
.pickup-existing-open:focus-visible{outline:3px solid #ffffff;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.pickup-existing-open{transition:none!important}}

/* v70 · soporte de recogida con diagnósticos solo locales y discretos */
.pickup-diagnostics{margin-top:1rem;padding:1rem 1.1rem}
.pickup-diagnostics>summary{cursor:pointer;font-weight:700;color:#e7cd8f;letter-spacing:.01em;list-style:revert}
.pickup-diagnostics[open]>summary{margin-bottom:.8rem}
.pickup-diagnostics label{display:block;margin:.65rem 0 .3rem;color:#d7e6df;font-size:.88rem}
#pickup-diagnostics-preview{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:7rem;padding:.7rem;border:1px solid #547974;border-radius:.85rem;background:#08282e;color:#dce9df;font:12px/1.45 ui-monospace,SFMono-Regular,monospace;resize:vertical}
.pickup-diagnostics-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.75rem}
.pickup-diagnostics-actions button{flex:1 1 10rem;min-height:44px}

/* v71 — estado de cuenta borrada en DB sin presentar sesión ficticia */
.account-session-expired{margin:.4rem 0 1rem;padding:.9rem 1rem;border:1px solid #c59f66;border-radius:.85rem;background:#15373a;color:#f5dda7;font-weight:600;line-height:1.5}

/* PWA v73 — Estado de recogida como dato principal, no badge diminuto.
 * Movimiento reducido: no se anima con preferencias de accesibilidad. */
#view-viajes .trip-live-spotlight{
  display:flex;align-items:center;gap:12px;margin:12px 0 10px;
  padding:13px 12px;min-width:0;border:1px solid rgba(115,226,202,.62);
  border-left:4px solid #e6cb88;border-radius:13px;
  background:linear-gradient(115deg,rgba(27,90,81,.59),rgba(5,48,54,.90));
  box-shadow:inset 0 1px 0 rgba(255,242,201,.10),0 3px 14px rgba(0,18,18,.16)
}
#view-viajes .trip-live-symbol{
  flex:0 0 32px;width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;color:#103b38;background:#b7f0d3;
  font-size:17px;font-weight:850;box-shadow:0 0 0 5px rgba(177,234,209,.10)
}
#view-viajes .trip-live-copy{flex:1 1 auto;min-width:0;display:grid;gap:3px}
#view-viajes .trip-live-copy strong{
  display:block;color:#fff4d8;font-size:14.5px;font-weight:850;
  line-height:1.3;letter-spacing:-.015em
}
#view-viajes .trip-live-copy span{color:#d9e9de;font-size:11.4px;line-height:1.4}
#view-viajes .trip-live-spotlight[data-stage="arrived"]{
  border-color:rgba(235,206,139,.75);background:linear-gradient(110deg,rgba(113,87,36,.48),rgba(9,49,51,.93))
}
#view-viajes .trip-live-spotlight[data-stage="trip"]{border-left-color:#85dad3}
#view-viajes .trip-card[data-tone="moving"] .trip-focus-message{
  padding:10px 11px;border:1px solid rgba(139,221,195,.34);
  border-radius:9px;color:#ebf8ef;font-size:12px;line-height:1.5;
  background:rgba(46,113,96,.17)
}
#view-viajes .trips-focus.is-live{
  border-left:3px solid #b9e5d0;padding-left:11px;
  color:#e7f7e7;font-weight:700
}
@keyframes tripLivePulseV73{50%{box-shadow:0 0 0 7px rgba(177,234,209,.04)}}
#view-viajes .trip-live-spotlight[data-stage="approach"] .trip-live-symbol{
  animation:tripLivePulseV73 2.8s ease-in-out infinite
}
@media(max-width:370px){
  #view-viajes .trip-live-spotlight{gap:9px;padding:11px 10px}
  #view-viajes .trip-live-copy strong{font-size:13.3px}
}
@media(prefers-reduced-motion:reduce){
  #view-viajes .trip-live-symbol{animation:none!important}
}


/* Tu viaje · experiencia independiente de la agenda programada (PWA v74).
   Presentación solamente: autocompletado, GPS, tarifas y contratos existentes. */
#view-viaje.quick-journey-screen{
  max-width:760px;margin-inline:auto;padding-bottom:28px;
  --journey-gold:#f0d095;--journey-deep:#072c33;
}
#view-viaje .journey-back{margin:2px 0 13px;color:#e8d0a0}
#view-viaje .journey-hero{
  position:relative;overflow:hidden;isolation:isolate;text-align:center;
  padding:22px 18px 24px;margin:0 0 13px;
  border:1px solid rgba(239,204,136,.48);border-radius:26px;
  background:radial-gradient(ellipse at 50% 0%,rgba(220,180,103,.21),transparent 57%),
    linear-gradient(155deg,#104b53,#072e37 63%,#05252f);
  box-shadow:0 16px 38px rgba(0,9,13,.25),inset 0 1px 0 rgba(255,242,208,.08);
}
#view-viaje .journey-hero:after{
  content:"";position:absolute;inset:auto -15% -58px;height:100px;z-index:-1;
  border:1px solid rgba(240,208,149,.12);border-radius:50%;transform:rotate(-7deg);
}
#view-viaje .journey-halo{
  width:112px;height:112px;margin:0 auto 11px;padding:7px;border-radius:50%;
  color:#f1c983;background:radial-gradient(circle at 35% 25%,rgba(252,229,175,.2),transparent 59%),
    linear-gradient(135deg,#144e57,#042a34);
  border:2px solid #d3aa60;box-shadow:0 0 0 5px rgba(226,187,111,.10),
    0 12px 24px rgba(0,0,0,.28),inset 0 0 18px rgba(239,208,143,.13);
}
#view-viaje .journey-halo svg{display:block;width:100%;height:100%}
#view-viaje .journey-hero .eyebrow{font-size:10px;letter-spacing:.18em;color:#ebd0a0}
#view-viaje .journey-hero h2{font-size:clamp(24px,5.5vw,34px);font-weight:800;line-height:1.14;
  letter-spacing:-.05em;margin:7px auto 10px;max-width:390px;color:#fff5e5}
#view-viaje .journey-hero h2 em{font-style:normal;color:#f2d095}
#view-viaje .journey-hero>p:last-child{
  font-size:12.5px;line-height:1.6;color:#bedbd3;max-width:340px;margin:auto}
#view-viaje .journey-when-compact{
  display:grid;gap:11px;border:1px solid rgba(232,201,136,.35);border-radius:20px;
  background:linear-gradient(145deg,rgba(22,75,80,.96),rgba(8,46,55,.95));
  padding:17px 15px;margin-bottom:12px;box-shadow:0 9px 28px rgba(0,8,13,.22)
}
#view-viaje .journey-when-compact>div:first-child{display:grid;gap:4px}
#view-viaje .journey-when-compact strong{font-size:15px;color:#fff4df}
#view-viaje .journey-when-compact small{font-size:11.5px;color:#bad6cd}
#view-viaje .journey-time-controls{display:flex;align-items:stretch;gap:8px;min-width:0}
#view-viaje #journey-when-select{
  min-width:0;flex:1;height:51px;border:1px solid rgba(238,205,143,.63);
  border-radius:14px;padding:0 11px;color:#fff4db;font-size:14px;font-weight:700;
  background-color:#113f47;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)
}
#view-viaje #journey-when-select option{background-color:#10353d;color:#fff}
#view-viaje .journey-clock-action{
  flex:0 0 52px;min-width:52px;min-height:51px;border-radius:14px;
  font-size:28px;line-height:1;color:#f0d095;border:1px solid rgba(238,205,143,.6);
  background:linear-gradient(145deg,#174952,#0a323b);
}
#view-viaje #journey-clock-input{width:100%;min-height:48px;font-size:17px;color:#fff4db;
  background:#113d45;border:1px solid #d9b875;border-radius:13px;padding:7px 13px}
#view-viaje .journey-time-note{font-size:11px;line-height:1.55;color:#bcd1c8;margin:0}
#view-viaje .journey-form-host{display:grid;gap:10px;min-width:0}
#view-viaje .booking-step-card{
  border-color:rgba(239,207,148,.32);border-radius:21px;
  background:linear-gradient(147deg,rgba(15,60,68,.98),rgba(7,42,50,.98));
  box-shadow:0 8px 26px rgba(0,14,20,.17);margin:0
}
#view-viaje .booking-step-card.is-open{border-color:rgba(238,208,142,.62)}
#view-viaje .booking-step-number{background:#daba76;color:#133740}
#view-viaje .booking-step-card[data-booking-step="when"] .quick-times,
#view-viaje #pickup-datetime-block,
#view-viaje #when-next{display:none!important}
#view-viaje .urgent-actions{border:1px solid rgba(230,191,120,.4);border-radius:21px;
  margin-top:3px;padding:17px 15px;background:linear-gradient(140deg,#0c3d43,#072c36)}
#view-viaje .booking-main-cta{border-radius:14px;min-height:56px;
  background:linear-gradient(125deg,#c99e58,#f4d58e 55%,#d0a760);color:#102f36}
#view-viaje .location-pane,#view-viaje .route-overview{min-width:0}
#view-viaje .booking-step-toggle{min-height:70px}
#view-viaje .booking-step-content:not([hidden]){animation:journeyReveal .24s ease-out both}
@keyframes journeyReveal{from{opacity:.7;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:380px){
  #view-viaje .journey-hero{padding:18px 12px 20px}
  #view-viaje .journey-when-compact{padding:13px 10px}
  #view-viaje #journey-when-select{font-size:12.2px;padding-inline:8px}
  #view-viaje .journey-clock-action{flex-basis:48px;min-width:48px}
}
@media(prefers-reduced-motion:reduce){
  #view-viaje .booking-step-content:not([hidden]){animation:none}
}

/* Matrícula real, sincronizada por Supabase, visible solo durante fase de trayecto. */
.trip-live-copy .trip-live-vehicle-plate{
  display:inline-flex;align-self:flex-start;max-width:100%;
  margin-top:5px;padding:5px 10px;border-radius:9px;
  border:1px solid rgba(240,207,146,.48);background:rgba(15,49,54,.48);
  color:#f2d594;font-size:12px;font-weight:800;letter-spacing:.045em;
}


/* v81: confirmación breve con jerarquía legible en un Samsung estrecho. */
#booking-success.success{
  padding:clamp(20px,4vw,30px) clamp(16px,4vw,26px);
  max-width:650px;margin-inline:auto;
  border:1px solid rgba(229,195,125,.54);border-radius:24px;
  background:linear-gradient(150deg,rgba(8,59,66,.97),rgba(7,42,50,.98));
}
#booking-success.success .mark{font-size:40px;line-height:1.1;margin-bottom:7px}
#booking-success.success h2{font-size:clamp(23px,5.4vw,29px);line-height:1.2;margin:4px 0 10px}
#booking-success.success .success-lead{
  max-width:48ch;margin:0 auto 14px;
  font-size:14px;line-height:1.6;color:#e7efe9;
}
#booking-success.success .success-receipt{
  text-align:left;display:grid;gap:5px;
  padding:15px 17px;border:1px solid rgba(227,195,130,.35);
  border-radius:16px;background:rgba(5,35,43,.6);margin:12px 0;
}
#booking-success.success .success-label{
  display:block;font-size:10px;letter-spacing:.13em;font-weight:800;color:#debc7b;
}
#booking-success.success .code{
  margin:0 0 8px;font-size:clamp(20px,4.7vw,27px);
  line-height:1.35;overflow-wrap:anywhere;color:#f5d796;
}
#booking-success.success .success-price{
  color:#fff2d2;font-size:clamp(25px,6vw,32px);font-weight:850;line-height:1.2;
}
#booking-success.success .success-hint,
#booking-success.success .success-time,
#booking-success.success .success-footer{
  font-size:12.5px;line-height:1.55;margin:10px auto;color:#dcece5;max-width:52ch;
}
#booking-success.success .success-time{
  border-radius:12px;border:1px solid rgba(208,178,112,.25);
  padding:9px 12px;background:rgba(7,29,38,.47);color:#f0dab3;
}
#booking-success.success .primary.full{margin-top:18px;min-height:54px}
@media(max-width:400px){
  #booking-success.success{padding:18px 13px}
  #booking-success.success .success-receipt{padding:13px}
}


/* Quick Trip V83: a warm and reassuring passenger confirmation. Presentation
   only: never calculate or overwrite a real reservation state in CSS/JS. */
.trip-alert-overlay{
  padding:max(16px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));
  overscroll-behavior:contain;
}
.trip-alert-overlay:not([hidden]){
  animation:qt-trip-backdrop .32s ease-out both;
}
.trip-alert-overlay:not([hidden]) .trip-alert-card{
  animation:qt-trip-arrive .62s cubic-bezier(.16,1.04,.31,1) both;
}
.trip-alert-card{
  width:min(100%,420px);
  max-height:calc(100dvh - 40px);
  overflow:auto;overscroll-behavior:contain;
  padding:30px 24px 25px;
  border-radius:26px;
  border:1px solid rgba(228,190,113,.56);
  box-shadow:0 27px 80px rgba(0,14,18,.53),inset 0 1px 0 rgba(255,255,255,.10);
  background:radial-gradient(circle at 50% -12%,rgba(77,145,128,.27),transparent 51%),
    linear-gradient(152deg,#145051 0%,#0a383d 54%,#092e36 100%);
}
.trip-alert-overlay[data-tone="accepted"] .trip-alert-card{
  border-color:rgba(230,197,132,.75);
}
.trip-alert-card .trip-alert-symbol{
  display:grid;place-items:center;
  width:67px;height:67px;min-width:67px;
  margin:1px auto 17px;
  border:1px solid rgba(239,205,143,.70);
  border-radius:50%;
  background:radial-gradient(circle at 36% 30%,rgba(126,229,190,.18),rgba(12,73,64,.84));
  box-shadow:0 0 0 8px rgba(209,177,109,.09),0 13px 30px rgba(0,0,0,.19);
  color:#f4dba6;font-size:35px;font-weight:650;
  line-height:1;
}
.trip-alert-card .trips-eyebrow{
  color:#efce8d;
  font-size:10.2px;
  letter-spacing:.19em;
  font-weight:750;
  margin:0 0 9px;
}
.trip-alert-card h2{
  font-size:clamp(23px,6vw,29px);line-height:1.17;
  font-weight:800;letter-spacing:-.035em;
  color:#fff8e9;margin:6px 0 13px;
  text-wrap:balance;
}
.trip-alert-card #trip-alert-description{
  color:#d4e8de;font-size:14px;
  line-height:1.6;margin:0 auto;
  max-width:32ch;text-wrap:pretty;
}
.trip-alert-card #trip-alert-open{
  width:100%;min-height:56px;
  margin:23px 0 12px;
  padding:12px 17px;
  font-size:13px;font-weight:850;
  letter-spacing:.065em;
  border-radius:16px;
  background:linear-gradient(115deg,#d1a351,#f2d895);
  color:#113c3d;
  border:1px solid rgba(255,235,171,.75);
  box-shadow:0 8px 20px rgba(6,26,25,.29);
}
.trip-alert-card .trip-alert-footnote{
  color:#bbd4c7!important;
  font-size:11px!important;
  line-height:1.45;margin:6px 0 0;
}
.trip-alert-card .trip-alert-close{
  z-index:1;top:13px;right:13px;
  display:grid;place-items:center;
  width:44px;height:44px;min-height:44px;
  padding:0;border-radius:14px;
  color:#ecd09c;font-size:27px;
}
.trip-alert-card .trip-alert-close:focus-visible,
.trip-alert-card #trip-alert-open:focus-visible{
  outline:2px solid #fff2c4;outline-offset:3px;
}
.trip-alert-overlay[data-tone="moving"] .trip-alert-symbol{
  background:rgba(10,71,69,.85);color:#8be3c3;
}
.trip-alert-overlay[data-tone="message"] .trip-alert-symbol{
  color:#e6cb90;font-size:29px;
}
@keyframes qt-trip-backdrop{
  from{opacity:0;backdrop-filter:blur(1px)}
  to{opacity:1;backdrop-filter:blur(9px)}
}
@keyframes qt-trip-arrive{
  0%{opacity:0;transform:translateY(38px) scale(.91)}
  69%{opacity:1;transform:translateY(-4px) scale(1.012)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:390px){
  .trip-alert-card{padding:29px 19px 23px}
  .trip-alert-card #trip-alert-description{font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){
  .trip-alert-overlay:not([hidden]),
  .trip-alert-overlay:not([hidden]) .trip-alert-card{
    animation:none!important;
  }
}

/* V83: structural fallback for Quick Trip V7 on a mobile PWA.
   These rules do NOT depend on body.qt-clean and prevent enormous
   intrinsic SVGs, native unstyled history and a word-by-word back button.
   quicktrip-clean.css loads after this file and remains the design owner. */
#view-viaje .qtc-app,
#view-viaje .qtc-app .qtc-header,
#view-viaje .qtc-app .qtc-brand,
#view-viaje .qtc-app .qtc-content{
  min-width:0;max-width:100%;box-sizing:border-box;
}
#view-viaje .qtc-app .qtc-brand{
  display:flex;align-items:center;gap:10px;
}
#view-viaje .qtc-app .qtc-back-slot{
  flex:0 0 38px;width:38px;min-width:38px;max-width:38px;
}
#view-viaje .qtc-app .qtc-back-slot .journey-back{
  display:grid;place-items:center;
  width:38px;min-width:38px;max-width:38px;height:38px;min-height:38px;
  padding:0;overflow:hidden;white-space:nowrap;
  border-radius:11px;font-size:0;line-height:1;
  border:1px solid rgba(236,209,153,.5);
  background:#123e45;color:#f0d293;
}
#view-viaje .qtc-app .qtc-back-slot .journey-back::before{
  content:"‹";font:normal 27px/1 system-ui,sans-serif;
}
#view-viaje .qtc-app img.qtc-logo{
  display:block;flex:0 1 168px;
  width:168px;max-width:calc(100% - 48px);
  height:46px;max-height:46px;object-fit:contain;
  object-position:left center;
}
#view-viaje .qtc-app .qtc-history-button{
  appearance:none;display:inline-flex;align-items:center;gap:5px;
  min-width:0;max-width:calc(100% - 48px);width:auto;min-height:29px;
  padding:4px 10px;margin:3px 0 5px;
  border:1px solid rgba(236,209,153,.68);border-radius:18px;
  background:#10363c;color:#f1d49f;
  font-size:11px;line-height:1.2;font-weight:700;white-space:nowrap;
  box-shadow:none;
}
#view-viaje .qtc-app .qtc-history-panel[hidden]{display:none!important}
body.qt-clean.qt-clean-active #view-viaje .qtc-app{
  width:100%;max-width:620px;margin:0 auto;
}
body.qt-clean.qt-clean-active #view-viaje>.journey-hero,
body.qt-clean.qt-clean-active #view-viaje>.journey-when-compact{
  display:none!important;
}
body.qt-clean.qt-clean-active>.header,
body.qt-clean.qt-clean-active .shell>.tabs{
  display:none!important;
}
@media(max-width:520px){
  #view-viaje .qtc-app .qtc-header{min-width:0;overflow:hidden}
  #view-viaje .qtc-app .qtc-places,
  #view-viaje .qtc-app .qtc-places .booking-step-card{
    min-width:0;max-width:100%;
  }
}
