:root{--brand-primary: #1f6feb;--brand-accent: #0b7285;--bg: #ffffff;--bg-subtle: #f5f6f8;--surface: #ffffff;--border: #d7dbe0;--text: #14171a;--text-muted: #5b6470;--danger: #a4232c;--danger-bg: #fdf1f1;--warn: #8a5a00;--warn-bg: #fdf6e7;--good: #1a6b3c;--good-bg: #eef8f1;--info-bg: #eef3fb;--radius: 10px;--gap: 1rem;--tap: 44px}@media (prefers-color-scheme: dark){:root{--bg: #14171a;--bg-subtle: #1b1f24;--surface: #1b1f24;--border: #333a42;--text: #f2f4f6;--text-muted: #a8b1bb;--danger: #ff8f96;--danger-bg: #2a1416;--warn: #f0c05a;--warn-bg: #2a2214;--good: #7fd6a0;--good-bg: #142a1d;--info-bg: #16202e}}*{box-sizing:border-box}body{margin:0;background:var(--bg-subtle);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}h1{font-size:clamp(1.5rem,1.2rem + 1.4vw,2rem);line-height:1.2;margin:0 0 .5rem}h2{font-size:clamp(1.15rem,1.05rem + .5vw,1.35rem);margin:2rem 0 .75rem}h3{font-size:1.05rem;margin:0 0 .25rem}p{margin:0 0 .5rem}a{color:var(--brand-primary)}a:hover{text-decoration:none}:focus-visible{outline:3px solid var(--brand-accent);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:0;z-index:10;background:var(--surface);padding:.75rem 1rem;border:2px solid var(--brand-accent)}.skip-link:focus{left:.5rem;top:.5rem}.shell{display:flex;flex-direction:column;min-height:100vh}.boot{display:grid;place-items:center;min-height:60vh}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header-inner{max-width:62rem;margin:0 auto;padding:.75rem 1rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:inherit;text-decoration:none}.brand-logo{border-radius:4px;object-fit:contain}.brand-name{font-size:1.05rem}.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.site-nav a{padding:.5rem .7rem;border-radius:var(--radius);text-decoration:none;color:var(--text);min-height:var(--tap);display:inline-flex;align-items:center}.site-nav a:hover{background:var(--bg-subtle)}.site-nav a[aria-current=page]{font-weight:600;box-shadow:inset 0 -2px 0 var(--brand-primary)}.site-main{flex:1;width:100%;max-width:62rem;margin:0 auto;padding:1.5rem 1rem 4rem}.site-main:focus{outline:none}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding:1rem;text-align:center;color:var(--text-muted);font-size:.9rem}.page>section{margin-bottom:1.5rem}.page-head{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.lede{color:var(--text-muted);max-width:46rem}.hint{color:var(--text-muted);font-size:.925rem}.breadcrumb{margin-bottom:.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card-attention{border-left:4px solid var(--danger)}.empty-state{text-align:center;padding:2.5rem 1rem}.empty-title{font-size:1.1rem;margin-bottom:1rem}.field{margin-bottom:1rem}.field-label{display:block;font-weight:600;margin-bottom:.25rem}.field-description{color:var(--text-muted);font-size:.9rem;margin:0 0 .35rem}.field-error{color:var(--danger);font-size:.9rem;margin:.35rem 0 0;font-weight:600}.field-row{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}input[type=email],input[type=password],input[type=tel],input[type=text],input[type=datetime-local],select{width:100%;min-height:var(--tap);padding:.55rem .65rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.field-invalid input,.field-invalid select{border-color:var(--danger);border-width:2px}.btn{min-height:var(--tap);padding:.6rem 1.1rem;font:inherit;font-weight:600;border-radius:var(--radius);border:1px solid transparent;cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-primary);color:#fff}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-ghost{background:transparent;color:var(--text);border-color:transparent}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:currentColor}.link-button{background:none;border:none;padding:.5rem 0;font:inherit;color:var(--brand-primary);text-decoration:underline;cursor:pointer;min-height:var(--tap)}.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem;align-items:center}.actions-sticky{position:sticky;bottom:0;background:var(--bg-subtle);padding:.75rem 0;border-top:1px solid var(--border)}.booking-shortcuts{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}.auth-page{max-width:26rem;margin:0 auto}.auth-form{margin-top:1rem}.auth-form>.btn{width:100%}.auth-switch{display:flex;flex-direction:column;align-items:flex-start;margin-top:1rem}.auth-methods{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0}.auth-method{min-height:var(--tap);padding:.55rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.auth-method.active{border:2px solid var(--brand-primary);color:var(--brand-primary)}.auth-method:disabled{opacity:.55;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--text-muted);text-align:center}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--border);flex:1}.auth-page>.btn{width:100%}.auth-provider-note{color:var(--text-muted);font-size:.875rem;text-align:center}.phone-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.75rem}.recaptcha-host{max-width:100%;overflow-x:auto;margin:.75rem 0}@media (max-width: 22rem){.phone-actions{grid-template-columns:1fr}}.confirm{margin-top:1rem;padding:1rem;border:2px solid var(--danger);border-radius:var(--radius);background:var(--danger-bg)}.confirm-question{font-weight:600;margin-bottom:.5rem}.alert{padding:.8rem 1rem;border-radius:var(--radius);margin:1rem 0;border:1px solid var(--border);border-left-width:4px}.alert-title{display:block;margin-bottom:.25rem}.alert ul{margin:.25rem 0 0;padding-left:1.25rem}.alert-error{background:var(--danger-bg);border-left-color:var(--danger);color:var(--danger)}.alert-warning{background:var(--warn-bg);border-left-color:var(--warn);color:var(--warn)}.alert-success{background:var(--good-bg);border-left-color:var(--good);color:var(--good)}.alert-info{background:var(--info-bg);border-left-color:var(--brand-primary)}.pill{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.85rem;font-weight:600;border:1px solid currentColor}.pill-neutral{color:var(--text-muted)}.pill-good{color:var(--good);background:var(--good-bg)}.pill-warn{color:var(--warn);background:var(--warn-bg)}.pill-bad{color:var(--danger);background:var(--danger-bg)}.spinner{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 0}.spinner-dot{width:1rem;height:1rem;border-radius:50%;border:2px solid var(--border);border-top-color:var(--brand-primary);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner-dot{animation-duration:4s}*{scroll-behavior:auto!important}}.booking-list,.member-list,.step-list,.bike-grid,.notification-list,.change-list{list-style:none;margin:0;padding:0}.booking-list,.member-list,.step-list{display:grid;gap:.75rem}.change-list{padding-left:1.1rem;list-style:disc}.notification-list li{padding:.4rem 0;border-bottom:1px solid var(--border)}.notification-kind{font-weight:600;text-transform:capitalize}.notification-to,.notification-status,.notification-when{color:var(--text-muted)}.booking-card,.member,.step{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;align-items:flex-start}.booking-card-main,.member-main,.step-main{min-width:12rem;flex:1 1 16rem}.booking-card-side,.member-side,.step-side{text-align:right;display:flex;flex-direction:column;gap:.35rem;align-items:flex-end}.booking-card-title{margin:0 0 .25rem}.booking-card-when,.booking-card-counts,.booking-card-expiry{color:var(--text-muted);font-size:.925rem;margin:0}.booking-card-total,.member-price,.step-amount{font-weight:600;margin:0}.member-serial,.step-serial{font-weight:600;margin-bottom:.35rem}.member-exception{color:var(--danger);font-size:.925rem;margin:.35rem 0 0}.member-stamp{color:var(--text-muted);font-size:.85rem;margin:0}.bike-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}.bike{display:flex;align-items:center;gap:.55rem;min-height:var(--tap);padding:.6rem .7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}.bike input{width:1.15rem;height:1.15rem;flex:none}.bike-selected{border-color:var(--brand-primary);border-width:2px}.bike-unavailable{opacity:.55;cursor:not-allowed}.bike-serial{font-weight:600}.bike-meta{color:var(--text-muted);font-size:.85rem;margin-left:auto}.pickup-chooser{display:grid;gap:.75rem}.pickup-map-panel{position:relative;min-height:18rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle)}.pickup-map-canvas{width:100%;height:18rem}.pickup-map-loading{position:absolute;top:0;right:0;bottom:2.25rem;left:0;display:grid;place-items:center;color:var(--text-muted);background:var(--bg-subtle);font-weight:600}.pickup-map-caption{position:absolute;inset:auto 0 0;min-height:2.25rem;margin:0;padding:.45rem .65rem;color:var(--text);background:var(--surface);border-top:1px solid var(--border);font-size:.8rem}.pickup-map-fallback{min-height:7rem;display:grid;place-items:center;padding:1rem;text-align:center;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);background:var(--surface)}.pickup-card-list{list-style:none;display:grid;gap:.65rem;margin:0;padding:0}.pickup-location-cards{display:grid;gap:.65rem;min-width:0}.pickup-more-locations{min-width:0}.pickup-more-locations>summary{min-height:var(--tap);display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;color:var(--brand-primary);background:var(--surface);font-weight:700;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.pickup-disclosure-icon{width:1.25rem;height:1.25rem;display:inline-grid;place-items:center;flex:none;border:1px solid currentColor;border-radius:50%;line-height:1}.pickup-more-locations[open]>summary{margin-bottom:.65rem}.pickup-more-locations>.hint{margin:0 0 .65rem}.pickup-card{width:100%;min-height:var(--tap);display:grid;grid-template-columns:minmax(6.25rem,34%) minmax(0,1fr);overflow:hidden;padding:0;color:var(--text);background:var(--surface);text-align:left;font:inherit;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.pickup-card:hover{border-color:var(--brand-primary)}.pickup-card-selected{border:3px solid var(--brand-primary)}.pickup-photo{display:grid;min-height:8.25rem;overflow:hidden;background:var(--bg-subtle)}.pickup-photo img{display:block;width:100%;height:100%;min-height:8.25rem;object-fit:cover}.pickup-photo-placeholder{place-content:center;gap:.25rem;padding:.65rem;color:var(--text-muted);text-align:center;font-size:.78rem;font-weight:600;background:linear-gradient(145deg,var(--bg-subtle),var(--surface))}.pickup-photo-placeholder>[aria-hidden=true]{font-size:1.5rem;line-height:1}.pickup-card-body{display:flex;flex-direction:column;gap:.18rem;min-width:0;padding:.7rem}.pickup-card-title-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.35rem}.pickup-card-title{flex:1;min-width:7rem;font-weight:700}.pickup-featured{padding:.08rem .4rem;border:1px solid currentColor;border-radius:999px;color:var(--brand-accent);font-size:.72rem;font-weight:700}.pickup-card-partner,.pickup-card-address{color:var(--text-muted);font-size:.82rem}.pickup-availability{margin-top:.2rem;color:var(--good);font-size:.88rem;font-weight:700}.pickup-card-selection{margin-top:auto;padding-top:.25rem;color:var(--brand-primary);font-size:.8rem;font-weight:700}.pickup-selection-status{margin:.55rem 0 .8rem;color:var(--text-muted);font-size:.875rem}@media (min-width: 48rem){.pickup-chooser{grid-template-columns:minmax(0,1.25fr) minmax(17rem,.75fr);align-items:start}.pickup-map-panel{position:sticky;top:.75rem;min-height:25rem}.pickup-map-canvas{height:25rem}.pickup-card{grid-template-columns:7.25rem minmax(0,1fr)}.pickup-photo,.pickup-photo img{min-height:9rem}}@media (max-width: 47.999rem){.pickup-map-panel{min-height:14rem}.pickup-map-canvas{height:14rem}.pickup-more-locations .pickup-card-list{max-height:26rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem}}.details{display:grid;gap:.5rem;margin:1rem 0}.detail{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:.35rem}.detail-label{color:var(--text-muted);margin:0}.detail-value{margin:0;text-align:right}.table-scroll{overflow-x:auto;max-width:100%}.price-table{width:100%;min-width:22rem;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.price-table th,.price-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.price-table .num{text-align:right;font-variant-numeric:tabular-nums}.price-table tfoot th,.price-table tfoot td{border-bottom:none;border-top:2px solid var(--border)}.quote{margin-top:1rem;padding:1rem;border:2px solid var(--brand-primary);border-radius:var(--radius);background:var(--surface)}.history{margin:0;padding-left:1.25rem;display:grid;gap:.75rem}.history-when{color:var(--text-muted);font-size:.875rem;margin:0}.stripe-mount:not(:empty){margin-top:1rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.payment-form{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.25rem}.payment-form-preparing{visibility:hidden;height:0;overflow:hidden;border-top:none;margin-top:0;padding-top:0}.step-position{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 0}.retained-list{margin:.5rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem}.boot-static{max-width:34rem;margin:3rem auto;padding:0 1.25rem;display:block;place-items:initial}.boot-static h1{font-size:1.375rem;margin:0 0 .75rem}.offer-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.9rem}.offer-card h3{margin:0 0 .35rem;font-size:1.05rem}.offer-price{margin:0 0 .6rem;font-weight:600}.offer-card-selected{border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary)}.benefit-list{margin:.5rem 0 0;padding-left:1.1rem;display:grid;gap:.3rem;color:var(--text-muted)}
