.auth-shell .main{margin-left:0;min-height:100dvh;padding-bottom:0;display:grid;place-items:center}.auth-shell .page{width:100%;max-width:1160px;padding:38px 24px}.auth-shell .auth-layout{margin:0 auto;width:100%}.auth-shell .toast{left:50%}.auth-shell{background:radial-gradient(ellipse at 20% 0,#e7f3ee,transparent 60%),#f5f8f9}
.wizard{max-width:1100px;margin:0 auto}.wizard-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.wizard-topline>.link .icon{transform:rotate(180deg)}.wizard-steps{list-style:none;display:flex;padding:0;margin:0 0 32px;justify-content:space-between;gap:10px}.wizard-steps li{position:relative;flex:1;color:#899aa3;display:flex;align-items:center;gap:9px;min-width:0}.wizard-steps li:not(:last-child):after{content:'';height:1px;background:#dce7e7;flex:1;margin:0 0 0 4px}.wizard-steps li>span{width:29px;height:29px;border:1px solid #dbe5e6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:white;flex:none}.wizard-steps small{font-size:10px;font-weight:650;white-space:nowrap}.wizard-steps .current{color:var(--teal)}.wizard-steps .current>span{color:white;background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 4px #e2f1ed}.wizard-steps .complete>span{background:#e2f3ec;color:var(--teal);border-color:#cbe6dd}.wizard-steps .complete:after{background:#8ec9bc!important}.wizard-heading{margin-bottom:24px}.wizard-heading .eyebrow{font-size:9px;margin-bottom:9px}.wizard-heading h1{font-size:29px}.wizard-heading h1:focus{outline:none}.wizard-heading p{margin-top:8px;font-size:13px}.wizard-panel{padding:30px;min-height:330px}.wizard-panel>.booking-section{padding:0;margin:0;border:0;box-shadow:none;border-radius:0}.wizard-panel>.booking-section>.step-title{display:none}.wizard-controls{position:sticky;bottom:18px;display:flex;align-items:center;gap:18px;justify-content:space-between;background:#fffffff5;backdrop-filter:blur(15px);border:1px solid #e1eae7;padding:15px 20px;border-radius:14px;margin-top:20px;z-index:15;box-shadow:0 8px 30px #14364a09}.wizard-controls>.btn-secondary .icon{transform:rotate(180deg)}.wizard-price{margin-left:auto;text-align:right;line-height:1.5}.wizard-price small{display:block;font-size:8px;letter-spacing:1px;color:var(--muted)}.wizard-price strong{font-size:20px;letter-spacing:-.4px}.wizard-price>span{font-size:11px}.wizard-controls .btn-main{min-width:128px}.wizard-route{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}.wizard-route .field:last-child{margin-bottom:0}.route-intro{padding:32px;background:#eff7f3;border-radius:16px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.route-intro-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:#d7eee5;border-radius:15px;color:var(--teal);margin-bottom:21px}.route-intro h3{font-size:23px;line-height:1.4;margin-bottom:12px}.route-intro p{font-size:12px;margin-bottom:23px}.route-intro .pill{align-self:flex-start;background:#dfeee8}.boat-types{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.boat-type{position:relative;padding:23px 19px;border:1px solid var(--line);border-radius:15px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.boat-type input{position:absolute;opacity:0;inset:auto;pointer-events:none}.boat-type:has(:focus-visible){outline:3px solid var(--teal);outline-offset:3px}.boat-type.selected{border-color:var(--teal);background:#f0faf6}.boat-type .type-icon{background:#e9f2f1;color:var(--teal);width:60px;height:60px;border-radius:15px;display:grid;place-items:center;margin-bottom:25px}.boat-type .pill{font-size:8px;margin-bottom:13px;letter-spacing:1px}.boat-type h3{font-size:17px;margin-bottom:9px}.boat-type p{font-size:12px;line-height:1.8;margin-bottom:25px}.type-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:auto;font-size:10px;font-weight:700}.type-foot .radio-dot{margin-top:0;flex:none}.selected .type-foot .radio-dot{border:5px solid var(--teal)}.wizard-tip{display:flex;align-items:flex-start;gap:9px;padding:14px 16px;background:#f2f7f5;color:#638177;font-size:11px;border-radius:10px;margin-top:22px}.wizard-tip>.icon{flex:none;margin-top:1px}.boat-search-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.search-map .map,.search-map .map > svg{height:350px}.search-map .map > svg{object-fit:cover}.map-caption{display:flex;align-items:center;gap:7px;font-size:9px;margin-top:10px;color:#7c9398}.search-results{min-width:0}.search-results .section-head h3{font-size:14px}.search-results .section-head .link{font-size:10px}.searching-boats{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:350px;padding:25px}.searching-boats h3{font-size:17px;margin:25px 0 9px}.searching-boats p{font-size:12px;max-width:230px;margin-bottom:15px}.search-radar{position:relative;border-radius:50%;width:80px;height:80px;background:#e9f6f1;color:var(--teal);display:grid;place-items:center}.search-radar:before,.search-radar:after{content:'';position:absolute;inset:-12px;border:1px solid #80cec1;border-radius:50%;animation:radar 1.5s ease-out infinite}.search-radar:after{animation-delay:.7s}.result-boat{width:100%;background:white;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:15px;padding:18px;text-align:left;margin-bottom:14px;position:relative;transition:border-color .2s,background .2s}.result-boat:hover,.result-boat.selected{border-color:var(--teal);background:#f6fcf9}.result-illustration{position:absolute;top:10px;right:12px;width:95px;opacity:.8}.result-illustration img{width:100%}.result-description{display:flex;flex-direction:column;align-items:flex-start;gap:6px;grid-column:1/-1}.result-description>.pill{font-size:8px}.result-description>strong{font-size:17px;margin-top:5px;position:relative}.result-description>span:not(.pill){font-size:11px}.result-price{grid-column:1/-1;display:flex;align-items:center;gap:8px;border-top:1px solid #e9efee;padding-top:12px}.result-price>strong{font-size:16px}.result-price small{font-size:9px;color:var(--muted)}.select-boat-label{display:flex;align-items:center;gap:5px;margin-left:auto;color:var(--teal);font-weight:700;font-size:10px}.cargo-service-tabs{max-width:460px;margin-bottom:23px}.boat-detail-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:28px}.boat-showcase{border-radius:15px;background:radial-gradient(ellipse at center,#125366,#082f49 80%);color:white;padding:24px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:330px;overflow:hidden}.boat-showcase>.pill{background:#ffffff18;color:#b5eadc}.boat-showcase img{width:120%;max-width:none;margin-left:-10%}.boat-showcase p{font-size:10px;color:#b3ced4}.boat-spec>.eyebrow{font-size:9px}.boat-spec>h2{font-size:27px;margin:7px 0 10px}.boat-spec>p{font-size:12px}.capacity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:21px 0}.capacity-grid>div{background:#f1f7f4;border-radius:10px;padding:13px;display:flex;flex-direction:column;gap:4px}.capacity-grid .icon{color:var(--teal);width:19px;height:19px;margin-bottom:3px}.capacity-grid strong{font-size:12px}.capacity-grid small{font-size:10px;color:var(--muted)}.facility-list{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.facility-list>span{display:inline-flex;align-items:center;gap:6px;font-size:10px;border:1px solid #e1eae8;border-radius:7px;padding:7px 9px;color:#54766d;background:#fcfefd}.facility-list .icon{width:15px;height:15px}.detail-price{border-top:1px solid var(--line);margin-top:20px;padding-top:6px}.detail-price .price-row.total{margin-bottom:6px}.detail-price>small{font-size:10px;color:var(--muted)}.captain-card{display:flex;align-items:center;gap:13px;padding:18px;background:#f4f7f7;border:1px solid #e6edeb;border-radius:12px;margin-top:23px}.captain-avatar{width:47px;height:47px;background:#dfebe7;border-radius:50%;display:grid;place-items:center;color:#5d8279;flex:none}.captain-card small{font-size:8px;letter-spacing:.9px;color:var(--muted)}.captain-card h3{font-size:14px;margin-top:4px}.captain-card p{font-size:10px;margin-top:4px}.captain-badge{margin-left:auto;color:var(--teal)}.sailing-times{display:flex;align-items:center;gap:25px;justify-content:space-between;padding:24px 0 13px;margin-top:20px;border-top:1px solid var(--line)}.sailing-times>div{display:flex;flex-direction:column;gap:5px}.sailing-times>div:last-child{text-align:right}.sailing-times small{font-size:8px;letter-spacing:1px;color:var(--muted)}.sailing-times strong{font-size:26px;letter-spacing:-.8px}.sailing-times span{font-size:11px}.sailing-times .crossing{align-items:center;color:var(--teal);font-size:11px;position:relative;flex:1}.crossing:before,.crossing:after{content:'';height:1px;position:absolute;background:#c9e1da;width:27%;top:15px;left:0}.crossing:after{left:auto;right:0}.schedule-note{font-size:9px;color:var(--muted)}.passenger-layout{display:grid;grid-template-columns:1fr .85fr;gap:30px}.onboard-panel{padding:21px;border-radius:14px;background:#f6f9f8}.onboard-panel>h3{font-size:15px}.onboard-panel .facility-list>span{background:white}.onboard-panel .captain-card{padding:0;border:0;background:none;gap:9px}.onboard-panel .captain-avatar{width:37px;height:37px}.onboard-panel .captain-card h3{font-size:12px}.onboard-panel .captain-badge{display:none}.onboard-panel .sailing-times{gap:12px}.onboard-panel .sailing-times strong{font-size:21px}.onboard-panel .sailing-times span{font-size:10px}.seat-picker{margin:22px 0;padding:18px;border:1px solid var(--line);border-radius:13px}.seat-picker h3{font-size:14px}.seat-legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;font-size:9px;color:var(--muted)}.seat-legend>span{display:flex;align-items:center;gap:5px}.seat-legend i{display:block;width:10px;height:10px;border:1px solid #a3ccc0;border-radius:3px}.seat-legend i.chosen{background:var(--teal);border-color:var(--teal)}.seat-legend i.taken{background:#e1e7e7;border-color:#e1e7e7}.seat-hull{max-width:255px;margin:22px auto 0;border:2px solid #dce9e5;padding:30px 22px 22px;border-radius:65px 65px 20px 20px;background:#f8fbfa}.boat-front{font-size:8px;letter-spacing:1px;display:flex;justify-content:center;align-items:center;gap:8px;color:#839b93;padding-bottom:22px}.seat-grid{display:grid;grid-template-columns:repeat(2,1fr) 12px repeat(2,1fr);gap:9px 6px}.seat{height:38px;border:1px solid #a7cfc3;border-bottom:3px solid #a7cfc3;border-radius:7px 7px 10px 10px;background:white;font-size:10px;color:#497b6d}.seat:nth-child(4n+3){grid-column:4}.seat.chosen{background:var(--teal);color:white;border-color:var(--teal)}.seat:disabled{background:#e2e8e6;color:#a2b0aa;border-color:#d8e2df;opacity:1}.payment-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px}.payment-layout h3{font-size:16px}.step-subtext{font-size:12px;margin:8px 0 22px}.payment-option{border:1px solid var(--line);border-radius:12px;padding:17px;display:flex;align-items:center;gap:12px;cursor:pointer;margin-bottom:12px}.payment-option:has(:checked){border-color:var(--teal);background:#f3fbf7}.payment-option input{accent-color:var(--teal)}.payment-option>.icon{color:var(--teal)}.payment-option strong{display:block;font-size:12px}.payment-option small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.payment-option>.pill{margin-left:auto}.checkout-consent{font-size:11px;margin-top:26px}.checkout-summary{padding:23px;background:#f5f9f7;border:1px solid #e0eae5;border-radius:14px}.checkout-summary .section-head h3{font-size:16px}.checkout-summary .section-head .link{font-size:10px}.checkout-meta{display:flex;flex-direction:column;gap:10px;margin:20px 0;padding:18px 0;border-block:1px solid #e0eae5}.checkout-meta>span{font-size:11px;display:flex;gap:7px;align-items:center;overflow-wrap:anywhere}.checkout-meta .icon{color:var(--teal);flex:none}.wizard-complete{max-width:570px;margin:20px auto;text-align:center;padding:40px}.wizard-complete>h1{font-size:28px;margin:14px 0}.wizard-complete>p{font-size:13px}.complete-summary{background:#f5f9f7;border-radius:14px;padding:20px;text-align:left;margin-bottom:22px}.complete-summary p{font-size:11px}.wizard-complete .success-mark{width:76px;height:76px}.wizard-panel #wizard-error:not(:empty){margin-top:22px;padding:12px;background:#fff0ee;border-radius:8px}.wizard-panel .counter-row button{width:40px;height:40px}.wizard-panel .counter{gap:12px}.wizard-panel .field input,.wizard-panel .field select{min-height:50px}
@keyframes radar{0%{transform:scale(.75);opacity:1}100%{transform:scale(1.4);opacity:0}}
@media(max-width:1199px){.wizard-panel{padding:24px}.wizard-steps{gap:6px}.wizard-steps li{gap:6px}.wizard-steps small{font-size:9px}.boat-detail-grid{gap:22px}.boat-types{gap:12px}.boat-type{padding:20px 16px}.boat-type h3{font-size:15px}.boat-search-layout{grid-template-columns:.9fr 1.1fr;gap:20px}.passenger-layout{grid-template-columns:1fr .9fr;gap:22px}.payment-layout{gap:22px}.payment-option{padding:13px;gap:8px}.payment-option>.pill{display:none}}
@media(max-width:799px){.wizard-steps{margin-bottom:26px}.wizard-steps li{flex-direction:column;gap:8px}.wizard-steps li:after{position:absolute;width:calc(100% - 31px);left:calc(50% + 15px);top:14px;margin:0!important}.wizard-steps small{font-size:9px}.wizard-route{grid-template-columns:1fr .7fr;gap:22px}.route-intro{padding:22px}.route-intro h3{font-size:20px}.boat-types{grid-template-columns:1fr}.boat-type{display:grid;grid-template-columns:50px 1fr auto;gap:3px 16px;align-items:center;padding:18px}.boat-type .type-icon{grid-row:1/5;width:50px;height:50px;margin:0}.boat-type>.pill{grid-column:2;justify-self:start;margin:0 0 7px}.boat-type>h3{grid-column:2;margin:0}.boat-type>p{grid-column:2;margin:4px 0;font-size:11px}.type-foot{grid-column:3;grid-row:1/5;width:auto;font-size:0;gap:0}.type-foot .radio-dot{width:19px;height:19px}.boat-search-layout{grid-template-columns:1fr}.search-map .map,.search-map .map > svg{height:210px}.searching-boats{min-height:250px}.result-boat{padding:20px}.result-illustration{width:110px}.boat-detail-grid{grid-template-columns:1fr}.boat-showcase{min-height:190px;height:220px;position:relative}.boat-showcase img{position:absolute;width:360px;right:-10px;top:-28px;margin:0}.boat-showcase>.pill,.boat-showcase>p{position:relative;z-index:1}.boat-showcase>p{margin-top:auto}.boat-spec>h2{font-size:26px}.passenger-layout{grid-template-columns:1fr}.onboard-panel{padding:22px}.payment-layout{grid-template-columns:1fr}.wizard-price strong{font-size:18px}.wizard-controls{padding:14px}.wizard-controls .btn-main{min-width:110px;padding:12px 15px}.wizard-price>span{font-size:10px}.wizard-controls{gap:12px}.wizard-heading h1{font-size:26px}}
@media(max-width:599px){.auth-shell .page{padding:22px 16px}.auth-shell .main{padding-block:env(safe-area-inset-top) env(safe-area-inset-bottom)}.wizard-topline{margin-bottom:23px}.wizard-topline .link{font-size:11px}.wizard-topline .demo-chip{font-size:8px;padding:4px 7px}.wizard-steps{gap:3px;margin-bottom:25px}.wizard-steps li>span{width:25px;height:25px;font-size:10px}.wizard-steps small{font-size:8px;white-space:normal;text-align:center;line-height:1.4}.wizard-steps li:after{top:12px;width:calc(100% - 28px);left:calc(50% + 14px)}.wizard-heading{margin-bottom:20px}.wizard-heading h1{font-size:25px;line-height:1.35;letter-spacing:-.8px}.wizard-heading p{font-size:12px;line-height:1.8;margin-top:8px}.wizard-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.wizard-panel{padding:20px;min-height:0}.wizard-route{grid-template-columns:1fr;gap:0}.route-intro{display:none}.wizard-controls{bottom:calc(82px + env(safe-area-inset-bottom));padding:12px;display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:17px;border-radius:13px}.wizard-controls>.btn-secondary{grid-column:1;grid-row:2;min-height:43px;padding:10px 14px;font-size:11px}.wizard-controls>.btn-main{grid-column:2;grid-row:2;min-height:43px;font-size:11px}.wizard-price{grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:space-between;text-align:left;margin:0;padding:0 2px 9px;border-bottom:1px solid #e2ece8;gap:8px}.wizard-price small{font-size:8px}.wizard-price strong{font-size:18px}.wizard-price>span{font-size:10px}.boat-type{padding:16px 13px;gap:3px 12px}.boat-type .type-icon{width:43px;height:49px}.boat-type h3{font-size:15px}.boat-type p{font-size:10px}.boat-type{grid-template-columns:43px 1fr 20px}.wizard-tip{font-size:10px;padding:12px;margin-top:18px}.boat-search-layout{gap:20px}.search-map .map,.search-map .map > svg{height:190px}.search-map .map-label{top:10px;left:10px}.search-map .map-caption{font-size:8px}.search-results .section-head h3{font-size:13px}.search-results .section-head .link{font-size:9px}.result-boat{padding:16px}.result-illustration{width:90px;right:0;top:18px}.result-description>strong{font-size:16px}.result-description>span:not(.pill){font-size:10px}.result-price{flex-wrap:wrap;gap:5px}.result-price>strong{font-size:14px}.result-price small{font-size:8px}.select-boat-label{font-size:9px}.cargo-service-tabs button{font-size:10px}.boat-showcase{height:200px;min-height:200px;padding:18px}.boat-showcase img{width:300px;top:-8px;right:-25px}.boat-showcase p{font-size:9px}.boat-showcase .pill{font-size:8px}.boat-detail-grid{gap:22px}.boat-spec>h2{font-size:25px}.boat-spec>p{font-size:11px}.capacity-grid{gap:10px;margin:17px 0}.capacity-grid>div{padding:12px}.capacity-grid strong{font-size:11px}.facility-list{gap:7px}.facility-list>span{font-size:9px;padding:6px 8px}.sailing-times{gap:15px}.sailing-times strong{font-size:24px}.sailing-times span{font-size:10px}.captain-card{padding:14px;gap:10px}.captain-card h3{font-size:13px}.captain-card small{font-size:7px}.captain-card p{font-size:9px}.captain-avatar{width:40px;height:40px}.captain-badge{display:none}.onboard-panel{padding:18px}.payment-option strong{font-size:12px}.payment-option small{font-size:9px}.checkout-summary{padding:18px}.checkout-meta>span{font-size:10px}.wizard-complete{padding:27px 20px;margin:0 auto}.wizard-complete>h1{font-size:25px}.wizard-complete .dialog-actions{flex-wrap:wrap}.wizard-complete .dialog-actions>*{font-size:10px}.seat-picker{padding:15px}.wizard-panel .counter-row strong{font-size:11px}.wizard-panel .counter-row small{font-size:9px}.wizard-panel .counter{gap:10px}.wizard-panel .counter button{width:34px;height:36px}.wizard-panel .price-row.total span:last-child{font-size:21px}}
@media(prefers-reduced-motion:reduce){.search-radar:before,.search-radar:after{animation:none}}

/* Booking actions: a floating desktop dock and edge-to-edge mobile controls. */
.wizard-controls { padding: 12px; border-radius: 20px; gap: 24px; box-shadow: 0 12px 35px #163d4c14; }
.wizard-controls > button { min-height: 54px; gap: 13px; font-size: 13px; font-weight: 750; border-radius: 13px; transition: background .2s, box-shadow .2s; }
.wizard-controls > .btn-secondary { background: #f1f6f5; border-color: transparent; padding: 8px 19px 8px 10px; color: #4b6c76; }
.wizard-controls > .btn-main { min-width: 175px; padding: 8px 10px 8px 25px; justify-content: space-between; background: linear-gradient(115deg, #087f84, #006358); box-shadow: 0 5px 12px #00786b25; }
.wizard-controls .action-icon { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 10px; background: #ffffff25; }
.wizard-controls > .btn-secondary .action-icon { background: #fff; }
.wizard-controls > button:disabled { opacity: .45; box-shadow: none; cursor: not-allowed; }
.wizard-controls > button:focus-visible { outline: 3px solid #33b9ad; outline-offset: 3px; }
@media(hover:hover) {
  .wizard-controls > .btn-main:not(:disabled):hover { background: linear-gradient(115deg, #076c72, #004e47); box-shadow: 0 7px 18px #00786b35; }
  .wizard-controls > .btn-secondary:not(:disabled):hover { background: #e1eeea; }
}
@media(max-width:599px) {
  .wizard:has(> .wizard-controls) { padding-bottom: 180px; }
  body:has(.wizard-controls) .bottom-nav { height: calc(68px + env(safe-area-inset-bottom)); }
  .wizard-controls {
    position: fixed; inset: auto 0 calc(68px + env(safe-area-inset-bottom));
    width: 100%; margin: 0; padding: 0; gap: 0; display: flex; flex-direction: column;
    border: 0; border-top: 1px solid #dce9e5; border-radius: 18px 18px 0 0;
    box-shadow: 0 -8px 30px #173d4b12; overflow: hidden; z-index: 35;
  }
  .wizard-price { order: 0; width: 100%; min-height: 46px; padding: 10px max(18px, env(safe-area-inset-right)) 10px max(18px, env(safe-area-inset-left)); border: 0; }
  .wizard-controls > .btn-main { order: 1; min-height: 56px; padding: 9px max(18px, env(safe-area-inset-right)) 9px max(18px, env(safe-area-inset-left)); }
  .wizard-controls > .btn-secondary { order: 2; min-height: 44px; padding: 5px 18px; justify-content: center; background: #f5f9f7; }
  .wizard-controls > button { width: 100%; margin: 0; border: 0; border-radius: 0; font-size: 13px; box-shadow: none; }
  .wizard-controls > .btn-secondary .action-icon { width: 24px; height: 24px; background: none; }
  .wizard-controls > button:focus-visible { outline-offset: -4px; }
  body:has(.wizard-controls) .toast { bottom: calc(225px + env(safe-area-inset-bottom)); }
}

