@font-face{font-family:Geist;src:url('/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('/geist-mono.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#153650;--blue:#14658f;--blue-dark:#0d4b70;--paper:#fbfdfc;--mint:#e8f7f1;--acid:#b7e6d5;--coral:#ff775c;--line:#d8e5e9;--muted:#607b8c;--aqua:#14658f;--gold:#b7e6d5;--section-space:48px;--section-space-mobile:36px}
body{font-family:Geist,Arial,sans-serif;background:radial-gradient(circle at 92% 5%,#e7f6f0,transparent 30%),var(--paper)}
header,main,.family-footer{max-width:1180px;margin-inline:auto;padding-inline:30px}
header{height:72px;padding-block:0;flex-wrap:nowrap;gap:11px;border-bottom:1px solid var(--line)}
header .brand{font-size:18px;font-weight:800;letter-spacing:-.04em;gap:10px;min-width:0}
.brand-mark{width:43px;height:38px;flex-shrink:0}.brand-copy{display:grid;line-height:1.15}.brand-copy small{font:600 9px 'Geist Mono',monospace;color:var(--blue);letter-spacing:.03em}
header .compact{width:40px;height:40px;min-height:40px;padding:9px;border:1px solid #bed0d6;border-radius:10px;flex-shrink:0}
header svg.header-svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
button,.button{border-radius:10px}button:hover,.button:hover{background:#eff7f5;border-color:var(--blue)}
.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 3px 0 var(--blue-dark)}.primary:hover{background:var(--blue-dark);color:white}
.card{border-radius:14px;box-shadow:0 5px 22px #15365006}.eyebrow{font-family:'Geist Mono',monospace;font-size:12px;color:var(--blue)}
.hero{max-width:none;margin:var(--section-space) 0;padding:0;background:transparent;color:var(--ink);border-radius:0}.hero .eyebrow{text-transform:uppercase;letter-spacing:.09em}.hero h1{font-size:clamp(44px,7vw,82px);font-weight:650;line-height:.97;letter-spacing:-.055em;margin:24px 0}.hero h1 em{font-family:Georgia,serif;font-weight:500;position:relative;display:inline-block}.hero h1 em:after{content:'';height:6px;background:var(--coral);border-radius:99px;position:absolute;bottom:-6px;left:0;right:0;transform:rotate(-1deg)}.hero p,.hero .steps{color:var(--muted)}.hero p{max-width:570px;font-size:18px}.hero .steps{font-size:15px;line-height:1.9}
.notice,.tag,.ride-summary.ride-free{background:var(--mint);color:var(--ink)}.ride-summary{border-radius:14px;border-color:var(--acid)}.ride-summary.ride-due{background:#fff0eb;border-color:var(--coral)}.tag.warn{background:#fff0eb;color:#893c2e}.weeks .current{background:var(--mint)}.weeks thead{background:#edf4f6}.option.selected{box-shadow:inset 5px 0 var(--acid)}
dialog{border-radius:19px;background:white;color:var(--ink);border:1px solid var(--line)}dialog::backdrop{background:rgba(10,37,54,.56);backdrop-filter:blur(4px)}dialog p{color:var(--muted)}
.family-footer{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:center;border-top:1px solid var(--line);padding-block:25px;font-size:13px;color:var(--muted)}.family-footer a{color:var(--blue);text-decoration:none}.family-footer a:hover{text-decoration:underline}.footer-actions{display:flex;gap:14px}.footer-actions button{font-size:13px;min-height:40px;padding:7px 10px}
@media(max-width:760px){header,main,.family-footer{padding-inline:16px}header{height:64px}header .brand{font-size:14px;gap:7px}.brand-mark{width:32px;height:30px}.brand-copy small{font-size:8px}.hero{margin:var(--section-space-mobile) 0}.family-footer{grid-template-columns:1fr;gap:10px}.admin-top h1{font-size:1.7rem}.hero .eyebrow{font-size:10px}.hero p{font-size:16px}}
