.bbb-app,.bbb-login{font-family:inherit;max-width:1100px;margin:30px auto;color:#17364b}.bbb-app *,.bbb-login *{box-sizing:border-box}.bbb-app h2,.bbb-app h3{color:#123c59;margin:24px 0 15px}.bbb-service-list,.bbb-departures{display:flex;flex-wrap:wrap;gap:12px}.bbb-button,.bbb-service-list button,.bbb-slot{cursor:pointer;background:#0c6791;color:white;border:2px solid #0c6791;border-radius:7px;padding:12px 18px;font:inherit;font-weight:700}.bbb-service-list button,.bbb-slot{background:#f1f8fa;color:#154c65}.bbb-service-list .bbb-active,.bbb-slot.bbb-active{background:#0c6791;color:white}.bbb-button:disabled,.bbb-slot:disabled{opacity:.4;cursor:not-allowed}.bbb-calendar{max-width:560px;border:1px solid #d9e5ea;padding:16px;border-radius:10px;background:#fff}.bbb-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.bbb-nav-button{background:transparent;border:0;font-size:28px;cursor:pointer;color:#0c6791}.bbb-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.bbb-weekday{text-align:center;font-size:12px;font-weight:700;color:#577080}.bbb-day{border:1px solid #cde2e9;background:#eef8fa;color:#123b50;aspect-ratio:1;min-height:38px;border-radius:6px;cursor:pointer;font:inherit}.bbb-day:disabled{background:#f5f5f5;color:#bbb;border-color:#eee;cursor:not-allowed}.bbb-day.bbb-selected{background:#0c6791;color:white}.bbb-details,.bbb-manual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:700px}.bbb-details label,.bbb-manual label{display:flex;flex-direction:column;gap:5px;font-weight:600}.bbb-details input,.bbb-details textarea,.bbb-details select,.bbb-manual input,.bbb-manual textarea,.bbb-manual select{width:100%;padding:11px;border:1px solid #b9cdd6;border-radius:5px;background:white;color:#17364b;font:inherit}.bbb-details label:has(textarea),.bbb-details .bbb-summary,.bbb-details>button,.bbb-manual .bbb-phone-fields,.bbb-manual>button{grid-column:1/-1}.bbb-summary{padding:15px;background:#e9f5f8;border-left:4px solid #0c6791;line-height:1.7}.bbb-alert:not(:empty){margin:15px 0;padding:13px;border-radius:5px}.bbb-error{background:#fff1ee;color:#8e2920}.bbb-info{background:#edf7f9;color:#1c566e}.bbb-trap{position:absolute!important;left:-9999px!important}.bbb-captain-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.bbb-captain-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:30px}.bbb-booking-card{border:1px solid #d5e2e7;border-radius:8px;padding:15px;margin-bottom:10px;overflow-wrap:anywhere}.bbb-booking-card p{margin:7px 0}.bbb-link-button{background:transparent;border:0;color:#0c6791;text-decoration:underline;cursor:pointer;padding:5px 0}.bbb-phone-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bbb-phone-fields[hidden]{display:none}.bbb-muted{color:#647c87}@media(max-width:720px){.bbb-captain-grid,.bbb-details,.bbb-manual,.bbb-phone-fields{grid-template-columns:1fr}.bbb-calendar{padding:9px}.bbb-day{min-height:32px}.bbb-captain-head{align-items:flex-start;flex-direction:column}}
/* v1.0.1: Desktop two-column booking layout. Mobile stays vertically stacked. */
.bbb-booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start;margin-top:10px}
.bbb-booking-layout .bbb-booking-left,.bbb-booking-layout .bbb-booking-right{min-width:0}
.bbb-booking-layout .bbb-calendar{max-width:none;width:100%}
.bbb-booking-layout .bbb-details{max-width:none}
.bbb-booking-layout h3{margin-top:0}
.bbb-booking-right .bbb-departures{margin-bottom:24px}
.bbb-booking-layout .bbb-day{min-height:38px}
@media(max-width:900px){.bbb-booking-layout{grid-template-columns:1fr;gap:24px}.bbb-booking-layout .bbb-calendar{max-width:560px}}

/* v1.1.0: weekly captain schedule and policy consent */
.bbb-weekly-section{margin:20px 0 28px;padding:20px;border:1px solid #d5e2e7;border-radius:8px}.bbb-weekly-table-inner{width:100%;border-collapse:collapse;margin:12px 0 18px}.bbb-weekly-table-inner th,.bbb-weekly-table-inner td{padding:9px 12px;border-bottom:1px solid #e1eaed;text-align:center}.bbb-weekly-table-inner th:first-child,.bbb-weekly-table-inner td:first-child{text-align:left}.bbb-weekly-table-inner input{width:20px;height:20px;cursor:pointer}.bbb-policy-accept{display:flex!important;align-items:flex-start;gap:10px;grid-column:1/-1;line-height:1.5}.bbb-policy-accept input{width:19px!important;min-width:19px;height:19px;margin-top:3px!important}.bbb-policy-accept span{flex:1}.bbb-policy-accept a{text-decoration:underline}

/* v1.1.2: verified Stripe return confirmation, above the booking calendar */
.bbb-confirmation{padding:24px 28px;margin:0 0 28px;border-radius:10px;border:1px solid #b8d4df;background:#edf7fa;color:#17364b;line-height:1.65}
.bbb-confirmation h2{margin:0 0 8px!important;font-size:clamp(24px,3vw,34px);line-height:1.25}
.bbb-confirmation p{margin:0;font-size:17px}
.bbb-confirmation.bbb-confirmed{border-color:#9acbb6;background:#eaf7f0;border-left:6px solid #22855d}
.bbb-confirmation.bbb-pending{border-left:6px solid #0c6791}
