:root{--bg:#f7f7f5;--fg:#1d2321;--muted:#56605c;--card:#fff;--line:#d6dbd8;--control-line:#818985;--accent:#0b6e4f;--accent-fg:#fff;--warn-bg:#fff4d6;--warn-fg:#5c4300;--err:#a3261b;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#141816;--fg:#eef2ef;--muted:#a8b2ad;--card:#1d2321;--line:#38423e;--control-line:#7c8982;--accent:#4cc39a;--accent-fg:#141816;--warn-bg:#3d3112;--warn-fg:#ffe2a0;--err:#ff8a7e;color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.banner{position:sticky;top:0;z-index:1;margin:0;padding:12px 16px;background:var(--warn-bg);color:var(--warn-fg);font-weight:700;text-align:center;border-bottom:2px solid currentColor}
main{max-width:560px;margin:0 auto;padding:16px}
header{display:flex;align-items:center;justify-content:space-between;gap:12px}
h1{font-size:1.5rem;margin:16px 0}
form,.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:16px 0;display:grid;gap:12px}
label{display:grid;gap:4px;font-weight:600}
input,textarea,select{min-height:48px;padding:10px 12px;border:1px solid var(--control-line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit;width:100%}
textarea{min-height:96px}
button{min-height:48px;min-width:48px;padding:10px 16px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg);font:inherit;font-weight:600;cursor:pointer}
button.primary,form button[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
button.danger{border:2px solid var(--err);color:var(--err)}
button:disabled{opacity:.6;cursor:not-allowed}
.cancel-area{margin-top:32px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.slot[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}
[data-status]{min-height:24px}
[data-status][data-kind=error]{color:var(--err);font-weight:600}
.muted{color:var(--muted)}
.check{display:flex;align-items:flex-start;gap:12px;min-height:48px;font-weight:400;cursor:pointer}
.check input{width:24px;height:24px;min-height:24px;margin:4px 0 0;flex:none}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.summary{grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 16px;margin:16px 0;overflow-wrap:anywhere}
.summary dt{font-weight:600;color:var(--muted)}
.summary dt,.summary dd{min-width:0}
.summary dd{margin:0}
@media(max-width:400px){.summary{grid-template-columns:minmax(0,1fr);gap:4px}.summary dd:not(:last-child){margin-bottom:12px}}
.manage-link input[readonly]{font-family:ui-monospace,Consolas,monospace;font-size:.85rem}
.captcha{min-height:78px;max-width:100%;overflow-x:auto}
.captcha[data-provider=pow]{min-height:0}
.captcha[data-provider=pow] p{margin:0;font-size:.875rem}
a.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:10px 16px;border-radius:8px;background:var(--accent);color:var(--accent-fg);font-weight:600;text-decoration:none}
.booking-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.booking-help-prompt{display:flex;align-items:flex-start;gap:12px;max-width:400px;margin:8px 0 16px;padding:12px;background:var(--card);border:1px solid var(--accent);border-radius:16px 16px 16px 4px;box-shadow:0 3px 12px #0000000d}
.booking-help-prompt p{margin:0}.booking-help-assistant{font-size:.8rem}.booking-help-prompt [data-help-prompt-title]{font-weight:600}
.booking-help-avatar{display:block;width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:50%;border:1px solid var(--accent)}
.booking-help-prompt-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.booking-help-prompt-actions [data-help-prompt-accept]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.booking-help{border:2px solid var(--accent);gap:10px;scroll-margin-top:16px}
.booking-help-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.booking-help h2{font-size:1.15rem;margin:0;line-height:1.4}
.booking-help h3{font-size:1rem;margin:0}
.booking-help p{margin:0}
.booking-help-progress{font-size:.875rem}
.booking-help-controls{display:flex;flex-wrap:wrap;gap:8px}
.booking-help-chat{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.booking-help-chat a{white-space:normal;text-align:center;overflow-wrap:anywhere}
.booking-help-chat p{font-size:.875rem}
@media(max-width:400px){header{flex-wrap:wrap}header h1{margin-bottom:4px}.booking-header-actions{justify-content:flex-start;width:100%}.booking-help-heading{align-items:center}.booking-help-controls button{flex:1 1 auto}}
/* 058 «puente de 20 millas»: the additional travel card (two columns: the concept wraps, the amount stays on one line). */
.travel{border:2px solid var(--accent);gap:10px;scroll-margin-top:16px}
.travel h2{font-size:1.15rem;margin:0;line-height:1.4}
.travel p{margin:0}
.travel-breakdown{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.travel-breakdown dt,.travel-breakdown dd{margin:0;min-width:0}
.travel-breakdown dd{text-align:right;white-space:nowrap}
.travel-breakdown .travel-total{font-weight:700;padding-top:4px;border-top:1px solid var(--line)}
button.travel-pay{width:100%}
.travel-special{border:2px solid var(--accent);border-radius:12px;padding:12px 16px;margin:0;font-size:1rem;overflow-wrap:anywhere}
/* The travel message by the button (the status line is far above it on a phone): the wait, a refusal with the phone, the box to check. */
.travel-notice{margin:0;font-size:1rem;overflow-wrap:anywhere;scroll-margin:16px}
.travel-notice[data-kind=error]{color:var(--err);font-weight:600}
.travel-notice[data-kind=info]{color:var(--muted)}

select{min-width:0;max-width:100%}
