:root{--bg:#f5f8fb;--surface:#fff;--border:#d8e2ec;--text:#0f2436;--text-muted:#4a6076;--accent:#069;--accent-hover:#00507a;--danger:#b00020;--success:#1f6b3a;--radius:10px;--shadow:0 4px 16px #0f24360f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{color:var(--text);background:linear-gradient(#e3edf5 0%,#f5f8fb 220px);min-height:100vh;margin:0}.shell{max-width:760px;margin:0 auto;padding:32px 20px 80px}header.brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}header.brand h1{margin:0;font-size:22px;font-weight:600}header.brand .tag{color:var(--text-muted);font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:24px}h2{margin:0 0 16px;font-size:18px}label{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}input,select,textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #00669926}.row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.row.full{grid-template-columns:1fr}.row.wharf-row{grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}.swap-ends{border:1px solid var(--border);width:40px;height:40px;color:var(--accent);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;margin-bottom:2px;padding:0;font-size:20px;line-height:1;display:inline-flex}.swap-ends:hover:not(:disabled){border-color:var(--accent);background:#f1f7fb}.swap-ends:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #00669926}.swap-ends:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px 20px;font-size:15px;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.primary:disabled{opacity:.6;cursor:not-allowed}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.price-summary{background:#f0f5f9;border-radius:8px;gap:10px;margin-bottom:16px;padding:16px;display:grid}.price-row{color:var(--text-muted);justify-content:space-between;font-size:14px;display:flex}.price-row.total{color:var(--text);border-top:1px solid var(--border);margin-top:4px;padding-top:10px;font-size:17px;font-weight:600}.boat-pill{color:var(--accent);background:#e0eef5;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.error{color:var(--danger);background:#fdecef;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:14px}.success-banner{color:var(--success);background:#e6f4ec;border-radius:8px;margin-bottom:16px;padding:14px 16px;font-weight:500}.muted{color:var(--text-muted);font-size:14px}.stripe-card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px}.steps{color:var(--text-muted);gap:8px;margin-bottom:24px;font-size:13px;display:flex}.steps .step{border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 10px}.steps .step.active{background:var(--accent);color:#fff;border-color:var(--accent)}.trip-type{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.trip-type button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:10px 12px;font-size:15px;font-weight:500}.trip-type button:hover:not(.active){border-color:var(--accent)}.trip-type button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.leg-summary{background:#f0f5f9;border-radius:8px;gap:10px;margin-bottom:16px;padding:14px 16px;display:grid}.leg-line{color:var(--text);grid-template-columns:84px 1fr auto;align-items:baseline;gap:10px;font-size:14px;display:grid}.leg-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:600}.leg-when{color:var(--text-muted);text-align:right;white-space:nowrap}@media (width<=520px){.leg-line{grid-template-columns:1fr auto}.leg-tag{grid-column:1/-1}.row{grid-template-columns:1fr;gap:12px}.row.wharf-row{grid-template-columns:1fr;gap:4px}.swap-ends{justify-self:center;margin:0}.swap-ends span{display:inline-block;transform:rotate(90deg)}}.notice.closed-day{color:#7a1520;background:#fbe9eb;border:1px solid #e8a0a8;border-radius:8px;margin:8px 0 0;padding:10px 12px;font-weight:600}.split-shell{max-width:820px}.split-shell h1{font-size:clamp(1.6rem,5vw,2.25rem);line-height:1.2}.split-panel,.split-share{color:#173a50;background:#eff7fa;border:1px solid #b5ccd7;border-radius:14px;margin:22px 0;padding:20px}.split-names{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.split-check{align-items:flex-start;gap:12px;margin:16px 0;font-size:1rem;display:flex}.split-check input[type=checkbox]{accent-color:#08647a;flex:0 0 22px;width:22px;height:22px;margin:2px 0 0}.split-check small{color:#425e6e;line-height:1.5;display:block}.split-amount{white-space:nowrap;margin-left:auto}.split-people{border:0;min-width:0;margin:24px 0;padding:0}.split-people legend{font-size:1.2rem;font-weight:700}.split-person{border-bottom:1px solid #d6e1e6;padding-bottom:12px}.split-progress{color:#173a50;background:#edf5f4;border-radius:12px;gap:10px;padding:20px;display:grid}.split-progress progress{accent-color:#087a64;width:100%;height:14px}.split-success{color:#14552d;background:#e1f3e8;border-radius:10px;padding:16px}.split-warning{color:#684817;background:#fff3d7;border-radius:10px;padding:16px}.split-terms{color:#3c5361;margin:20px 0;font-size:.9rem;line-height:1.6}.split-actions{flex-wrap:wrap;gap:16px;margin-top:20px;display:flex}.split-total{margin-top:20px;font-size:1.15rem}.split-shell .row>label{min-width:0}.split-shell button,.split-panel button{min-height:44px}@media (width<=560px){.split-names{grid-template-columns:1fr}.split-panel,.split-share{padding:14px}.split-actions{flex-direction:column}}
