@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0b1118;--panel:#121c26;--panel2:#17232f;--line:#2b3a48;--muted:#8e9ba8;--text:#f3f6f8;--blue:#53aef7;--orange:#ff862f;--gold:#d5ad75}*{box-sizing:border-box}html{min-height:100%;background:var(--bg);scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#111c27 0,#0b1118 500px);color:var(--text);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}.app-shell{width:min(100% - 40px,640px);margin:0 auto;padding:24px 0 30px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 0 17px;border-bottom:1px solid #334250}.app-brand{text-decoration:none;color:var(--text);display:grid;gap:2px}.app-brand strong{font-size:27px;line-height:1;letter-spacing:.07em}.app-brand strong span{color:var(--orange)}.app-brand small{font-size:9px;letter-spacing:.13em;color:#96a2ad}.api-state{display:flex;align-items:center;gap:8px;font-size:12px;color:#c1c9d0;white-space:nowrap}.api-state i{display:block;width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 10px #ff862f77}.api-state.online i{background:#46d18b;box-shadow:0 0 10px #46d18b77}.app-intro{padding:30px 0 27px}.app-kicker{margin:0 0 16px;color:var(--orange);font-size:12px;font-weight:800;letter-spacing:.2em}.app-intro h1{margin:0;font-size:clamp(32px,8vw,44px);line-height:1.05;letter-spacing:-.04em}.app-subtitle{margin:16px 0 0;color:#a6b1bc;font-size:16px}.trips-section,.seat-section{margin-top:4px}.section-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.section-bar h2{font-size:22px;letter-spacing:-.03em;margin:0}.refresh-button{height:42px;padding:0 16px;border:1px solid #354857;background:#22313d;color:#fff;border-radius:13px;font:700 14px 'DM Sans',sans-serif;cursor:pointer}.refresh-button:disabled{opacity:.65}.direction-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.direction-tab{min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#111b25;color:#aab6c0;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.direction-tab span{color:var(--orange);padding:0 3px}.direction-tab.active{border-color:#435b6c;background:#1b2a36;color:#fff}.trip-list{display:grid;gap:10px}.message-card,.trip-card{border:1px solid #30414f;border-radius:19px;background:linear-gradient(145deg,#16222d,#101821);box-shadow:0 8px 24px #0002}.message-card{padding:20px}.message-card h3{font-size:18px;margin:0 0 7px}.message-card p{color:#9ba8b4;font-size:14px;line-height:1.5;margin:0 0 15px}.retry-button,.select-trip{border:0;background:var(--blue);color:#061522;border-radius:12px;min-height:46px;padding:0 17px;font:800 15px 'DM Sans',sans-serif;cursor:pointer}.trip-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px}.trip-card-main{display:grid;gap:6px;min-width:0}.trip-route{color:#aab7c1;font-size:12px}.trip-card-main strong{font-size:17px}.trip-card-main strong span{color:#758492;font-weight:400}.trip-card-main small{color:#94a1ac;font-size:12px}.trip-card-side{display:grid;justify-items:end;gap:9px;flex-shrink:0}.trip-card-side b{font-size:16px}.select-trip{min-height:40px;font-size:13px}.seat-section{padding-top:23px;border-top:1px solid #2e3d49;margin-top:23px}.seat-price{font-size:14px;color:#bdc9d1}.seat-status{margin:12px 0;color:#aab6bf;font-size:13px;line-height:1.5}.inline-error{display:grid;gap:5px;padding:13px 14px;border:1px solid #674923;border-radius:13px;background:#2b2117;color:#e3bd89}.inline-error span{color:#c4a57c}.cabin{max-width:340px;margin:15px auto;padding:15px 12px 11px;border:1px solid #526472;border-radius:44px 44px 20px 20px;background:#111a22}.cabin-front{height:54px;display:flex;justify-content:space-around;align-items:center;border-bottom:1px dashed #53616b;color:#8e9ba6;font-size:9px;letter-spacing:.08em}.driver{padding:8px 10px;border:1px solid #54636e;border-radius:8px;background:#26333d;color:#d4dce1}.seat-row{display:flex;justify-content:center;gap:10px;min-height:47px;padding-top:7px}.seat{width:44px;height:40px;border:1px solid #596b79;border-radius:11px 11px 7px 7px;background:#1c2a35;color:#f2f6f8;font:700 14px 'DM Sans',sans-serif;cursor:pointer}.seat.chosen{background:#53aef7;color:#071522;border-color:#53aef7}.seat.occupied{background:#414b54;border-color:#414b54;color:#a3abb1;cursor:not-allowed}.cabin-rear{text-align:center;border-top:1px dashed #53616b;padding-top:9px;color:#8e9ba6;font-size:9px;letter-spacing:.08em}.seat-legend{display:flex;justify-content:center;gap:16px;color:#a8b3bc;font-size:11px}.seat-legend span:before{content:'';display:inline-block;width:9px;height:9px;margin-right:5px;border:1px solid #667783;border-radius:3px}.seat-legend .chosen-legend:before{background:var(--blue);border-color:var(--blue)}.seat-legend .occupied-legend:before{background:#414b54;border-color:#414b54}.seat-selection{text-align:center;color:#cad3da;font-size:12px}.demo-note{margin-top:19px;padding:12px 14px;border:1px solid #654823;border-radius:13px;background:#2a2118;color:#dbbb8e;font-size:12px;line-height:1.45}.demo-note strong{font-weight:800}.app-footer{display:flex;justify-content:space-between;gap:10px;margin-top:22px;color:#788794;font-size:11px}.app-footer a{color:#94a4b1;text-decoration:none}.app-footer a:hover{text-decoration:underline}[hidden]{display:none!important}button:focus-visible,a:focus-visible{outline:3px solid #8ccaff;outline-offset:2px}
@media(max-width:480px){.app-shell{width:min(100% - 32px,420px);padding:18px 0 calc(22px + env(safe-area-inset-bottom))}.app-header{padding-bottom:14px}.app-brand strong{font-size:24px}.app-brand small{font-size:8px}.api-state{font-size:10px;gap:6px}.app-intro{padding:25px 0 23px}.app-kicker{font-size:10px;margin-bottom:13px}.app-intro h1{font-size:34px}.app-subtitle{font-size:14px;margin-top:12px}.section-bar{margin-bottom:11px}.section-bar h2{font-size:20px}.refresh-button{height:44px;padding:0 13px;font-size:13px}.direction-tabs{grid-template-columns:1fr;gap:7px}.direction-tab{min-height:48px;font-size:13px}.trip-card{align-items:flex-start;padding:14px 12px;gap:8px}.trip-card-main strong{font-size:15px}.trip-card-side b{font-size:14px}.trip-card-side{gap:8px}.select-trip{min-height:42px;padding:0 12px}.message-card{padding:17px}.message-card h3{font-size:17px}.message-card p{font-size:13px}.demo-note{font-size:11px}.app-footer{font-size:10px}.seat-section{padding-top:19px}.cabin{width:min(100%,340px)}}
@media(max-width:350px){.app-shell{width:calc(100% - 24px)}.app-brand strong{font-size:22px}.api-state{font-size:9px}.app-intro h1{font-size:31px}.trip-card-main small{font-size:11px}.trip-card-main strong{font-size:14px}}

/* Seat map: HiAce layout with a separate driver area and roomy tap targets. */
.cabin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:92px repeat(4,70px) 24px;gap:11px;width:min(100%,410px);max-width:none;margin:18px auto;padding:18px;border:2px solid #35485a;border-radius:34px;background:linear-gradient(145deg,#e8eef6,#dce5ef);box-shadow:0 14px 34px #0003}
.driver{grid-column:1/3;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:15px;background:#344e68;color:#fff;box-shadow:inset 0 -4px 0 #24394f}
.driver span{font-size:28px;line-height:1;color:#fff}
.driver small{font-size:12px;font-weight:700;letter-spacing:.08em}
.seat{width:100%;height:100%;min-width:0;border:2px solid #aebfd0;border-radius:17px 17px 14px 14px;background:#fff;color:#344e68;font-size:21px;box-shadow:0 4px 0 #c5d2df;transition:transform .12s ease,background .12s ease,border-color .12s ease;touch-action:manipulation}
.seat:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 #c5d2df}
.seat.chosen{background:#f6c453;border-color:#e2ae38;color:#28384a;box-shadow:0 4px 0 #c89522}
.seat.occupied{background:#e8a4aa;border-color:#d78991;color:#6d3d43;box-shadow:0 4px 0 #cf858e;opacity:1}
.cabin-rear{grid-column:1/4;grid-row:6;align-self:end;padding-top:5px;text-align:center;border-top:1px dashed #9eafc1;color:#65798e;font-size:10px;font-weight:700;letter-spacing:.12em}
.seat-legend{flex-wrap:wrap;row-gap:8px;color:#aebac5;font-size:12px}
.seat-legend span:before{width:11px;height:11px;background:#fff;border-color:#aebfd0}
.seat-legend .chosen-legend:before{background:#f6c453;border-color:#e2ae38}
.seat-legend .occupied-legend:before{background:#e8a4aa;border-color:#d78991}
.seat-selection{max-width:440px;margin:14px auto 0;padding:12px 14px;border:1px solid #35485a;border-radius:14px;background:#121c26;color:#e7edf3;font-size:13px;line-height:1.5}
@media(max-width:480px){.cabin{grid-template-rows:82px repeat(4,64px) 22px;gap:9px;padding:14px;border-radius:30px}.driver{border-radius:13px}.seat{font-size:20px;border-radius:15px 15px 12px 12px}.seat-selection{font-size:12px}}
.rear-discount-note{color:#f4c973;font-size:11px;text-align:right}.seat{display:grid;place-content:center;gap:0}.seat small{font-size:8px;font-weight:700;line-height:1.1;white-space:nowrap}.seat.discounted-seat{border-color:#d6a746}.seat-selection{line-height:1.5}

.account-section{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#16222d,#101821)}.account-help{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}.account-form{display:flex;align-items:end;gap:9px}.account-form label{display:grid;flex:1;gap:6px;color:#c9d2da;font-size:12px;font-weight:700}.account-form input:not([type=checkbox]){min-height:44px;min-width:0;padding:0 12px;border:1px solid #354857;border-radius:11px;background:#17232f;color:var(--text);font:600 14px 'DM Sans',sans-serif}.account-form button,.account-section button{min-height:44px;padding:0 14px;border:1px solid var(--blue);border-radius:11px;background:var(--blue);color:#081522;font:800 13px 'DM Sans',sans-serif}.account-section button:disabled{opacity:.6}.account-message{min-height:18px;margin:10px 0 0;color:#aebac5;font-size:12px}.account-balance{font-size:18px;font-weight:800}.marketing-consent{display:flex;align-items:center;gap:9px;margin:12px 0;color:#c9d2da;font-size:13px}.marketing-consent input{width:18px;height:18px;accent-color:var(--blue)}
@media(max-width:480px){.account-section{padding:15px}.account-form{align-items:stretch;flex-direction:column}.account-form button{width:100%}}

.booking-section{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#16222d,#101821)}.booking-help{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}.passenger-card{display:grid;gap:10px;margin:0 0 12px;padding:14px;border:1px solid #354857;border-radius:14px}.passenger-card legend{padding:0 5px;color:#f2c56b;font-size:13px;font-weight:800}.booking-label{display:grid;gap:6px;margin:0 0 12px;color:#c9d2da;font-size:12px;font-weight:700}.booking-label input{min-height:46px;min-width:0;padding:0 12px;border:1px solid #354857;border-radius:11px;background:#17232f;color:var(--text);font:600 14px 'DM Sans',sans-serif}.booking-summary{padding:11px 13px;border-radius:11px;background:#1b2a36;color:#d9e2e9;font-size:13px;line-height:1.5}.booking-submit,.whatsapp-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 14px;border:0;border-radius:12px;background:var(--blue);color:#061522;text-align:center;text-decoration:none;font:800 14px 'DM Sans',sans-serif;cursor:pointer}.booking-submit:disabled{opacity:.65}.booking-message{min-height:18px;margin:10px 0;color:#bdc9d1;font-size:12px;line-height:1.5}.whatsapp-link{background:#25d366;color:#062719}.booking-privacy{display:block;margin-top:10px;color:#8f9ba5;font-size:11px;line-height:1.45}@media(max-width:480px){.booking-section{padding:15px}.passenger-card{padding:12px}}
.payment-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin:8px 0;padding:10px 14px;border:1px solid #6cc2ff;border-radius:12px;background:#53aef7;color:#061522;text-align:center;text-decoration:none;font:800 14px 'DM Sans',sans-serif}.payment-link[hidden]{display:none}
