: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)}.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}.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}
