:root{
  --navy:#071f2d;--navy2:#0b3041;--sea:#0d7180;--aqua:#21b6b5;--sand:#f4f0e8;
  --ink:#14232b;--muted:#66767d;--line:#dce5e7;--white:#fff;--warn:#9a5a00;--danger:#a33a37;
  --shadow:0 14px 36px rgba(7,31,45,.10);--radius:22px;
}
*{box-sizing:border-box}body{margin:0;background:#eef4f5;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.phone-shell{max-width:980px;margin:0 auto;min-height:100vh;background:#f8fbfb;box-shadow:0 0 0 1px rgba(7,31,45,.04)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:16px 22px;background:rgba(7,31,45,.96);color:white}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.12)}.brand-name{font-weight:800;letter-spacing:.01em}.brand-subtitle{font-size:12px;opacity:.72}.availability-wrap{display:flex;align-items:center;gap:9px;font-size:13px}.toggle{width:46px;height:25px;border:0;border-radius:999px;background:#5c6c74;padding:3px;cursor:pointer}.toggle span{display:block;width:19px;height:19px;border-radius:50%;background:white;transition:.2s}.toggle.on{background:var(--aqua)}.toggle.on span{transform:translateX(21px)}
main{padding:22px 22px 96px}.view{display:none}.view.active{display:block}.hero-card{padding:28px;border-radius:28px;background:linear-gradient(145deg,var(--navy),#0b4252);color:white;box-shadow:var(--shadow)}.hero-row{display:flex;gap:18px;justify-content:space-between}.hero-card h1{font-size:clamp(26px,4vw,42px);line-height:1.03;margin:7px 0 10px}.hero-card p{max-width:670px;margin:0;opacity:.78}.shield{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:rgba(255,255,255,.10);font-size:24px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.hero-stats>div{padding:14px;border-radius:16px;background:rgba(255,255,255,.08)}.hero-stats strong{display:block;font-size:24px}.hero-stats span{display:block;font-size:11px;opacity:.65;text-transform:uppercase;letter-spacing:.08em}
.panel{position:relative;margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:0 8px 24px rgba(7,31,45,.05)}.step-number{position:absolute;right:18px;top:16px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e6f7f6;color:var(--sea);font-weight:900}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--sea)}.hero-card .eyebrow{color:#8de4df}.section-heading h2,.page-heading h1,.panel h2{margin:5px 0 7px}.section-heading.inline,.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.page-heading{margin-bottom:18px}.page-heading p,.helper{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.field{display:flex;flex-direction:column;gap:7px;margin-top:14px}.field>span{font-size:11px;font-weight:800;letter-spacing:.08em;color:#5d6d74}.field input,.field select,.upload-button{width:100%;padding:12px 13px;border:1px solid #ccd9dc;border-radius:12px;background:white;color:var(--ink);font:inherit}.capacity-field select{font-size:18px;font-weight:800}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.rule-card,.privacy-note,.marina-publish-note{margin-top:16px;padding:14px 16px;border-radius:14px;background:#eef8f8;border:1px solid #d3eceb;font-size:13px;line-height:1.5}.rule-card strong,.marina-publish-note strong{color:var(--sea)}.rule-card p,.marina-publish-note p{margin:4px 0 0}.rule-card.warning{background:#fff5e8;border-color:#f3d7ad;color:#7c4e0a}.rule-card.muted{background:#f5f7f8;border-color:#e3e8ea}.privacy-note.strong{font-weight:700}
.specialty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.specialty{min-height:110px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left;padding:15px;border:1px solid #d6e1e3;border-radius:16px;background:#fff;cursor:pointer;transition:.16s}.specialty span{font-size:24px}.specialty small{color:var(--muted);font-size:11px}.specialty:hover{transform:translateY(-1px);border-color:#9ccfd1}.specialty.active{border-color:var(--aqua);background:#ecfbfa;box-shadow:0 0 0 2px rgba(33,182,181,.12)}.specialty.locked{opacity:.46;background:#f2f4f5;cursor:not-allowed;transform:none}.specialty.locked::after{content:"LOCKED";font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--danger);margin-top:4px}
.primary-button,.secondary-button,.text-button,.round-action,.close-button{font:inherit;cursor:pointer}.primary-button{border:0;border-radius:13px;padding:13px 18px;background:var(--sea);color:white;font-weight:800}.compact-button{padding:11px 15px;white-space:nowrap}.secondary-button{border:1px solid var(--sea);border-radius:13px;padding:11px 15px;background:white;color:var(--sea);font-weight:800}.text-button{border:0;background:transparent;color:var(--sea);font-weight:800}.round-action{width:44px;height:44px;border:0;border-radius:50%;background:var(--navy);color:white;font-size:26px}.close-button{border:0;background:transparent;font-size:30px;color:var(--muted)}
.eligibility-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.eligibility-pill{padding:8px 10px;border-radius:999px;background:#eef8f8;color:#195e67;font-size:12px;font-weight:700}.eligibility-pill.locked{background:#f4f4f4;color:#8a8a8a;text-decoration:line-through}.privacy-panel{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.privacy-icon{font-size:28px}.section-block{margin-top:22px}.offer-list,.request-list{display:grid;gap:12px;margin-top:14px}.offer-card,.request-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 8px 20px rgba(7,31,45,.04)}.offer-top,.request-top{display:flex;justify-content:space-between;gap:12px}.offer-card h3,.request-card h3{margin:4px 0}.offer-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f0f5f6;font-size:11px;font-weight:700}.chip.verified{background:#e9f8ef;color:#25714a}.chip.pending{background:#fff5df;color:#8b6500}.chip.marina{background:#e9f3ff;color:#2d5f98}.offer-actions{display:flex;gap:8px;margin-top:13px}.empty-state{padding:24px;border:1px dashed #c8d7da;border-radius:18px;text-align:center;color:var(--muted);background:#fbfdfd}
.vessel-card{display:flex;gap:16px;align-items:center}.vessel-art{display:grid;place-items:center;width:82px;height:82px;border-radius:20px;background:#eaf8f7;font-size:40px}.vessel-copy h2{margin:3px 0}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.form-panel .primary-button{margin-top:18px}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:25;width:min(980px,100%);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 14px 10px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);backdrop-filter:blur(10px)}.nav-item{position:relative;border:0;background:transparent;padding:7px;color:#687a81}.nav-item span{display:block;font-size:20px}.nav-item small{display:block;font-size:10px}.nav-item.active{color:var(--sea);font-weight:800}.nav-item b{position:absolute;top:0;right:27%;min-width:18px;height:18px;display:grid;place-items:center;border-radius:999px;background:#b34b45;color:white;font-size:10px}
 dialog{width:min(760px,calc(100% - 26px));max-height:92vh;border:0;border-radius:24px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(4,22,31,.62)}.dialog-card{padding:22px;overflow:auto;max-height:92vh}.dialog-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.dialog-header h2{margin:4px 0}.privacy-builder{margin-top:18px;padding:18px;border:1px solid #d8e7e8;border-radius:18px;background:#fbfefe}.privacy-builder-head{display:flex;justify-content:space-between;gap:12px}.privacy-builder-head h3{margin:4px 0}.lock-pill{height:max-content;padding:7px 9px;border-radius:999px;background:#edf7f6;font-size:11px;font-weight:700}.route-leg{display:grid;grid-template-columns:1fr 110px 110px;gap:10px}.fine-print{font-size:11px;color:var(--muted);line-height:1.5}.centered{text-align:center}.small-dialog{max-width:420px}.success-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 10px;border-radius:50%;background:#e8f7ee;color:#2c7b50;font-size:28px;font-weight:900}
@media(max-width:700px){main{padding:16px 14px 92px}.topbar{padding:14px}.hero-card{padding:22px}.hero-stats{grid-template-columns:1fr}.specialty-grid{grid-template-columns:1fr 1fr}.two-col,.three-col{grid-template-columns:1fr}.section-heading.inline,.page-heading{flex-direction:column}.privacy-panel{grid-template-columns:1fr}.route-leg{grid-template-columns:1fr 1fr}.route-leg .grow{grid-column:1/-1}.vessel-card{align-items:flex-start}.vessel-art{width:64px;height:64px}.offer-top{flex-direction:column}}

.response-form{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:end;margin-top:14px}.response-form .field{margin-top:0}.request-note{margin:12px 0;color:#4e6067}.selection-banner{margin-top:14px;padding:12px 14px;border-radius:13px;background:#e8f7ee;color:#25714a;font-weight:800}.selection-banner.muted{background:#f2f4f5;color:#6e7b80}@media(max-width:700px){.response-form{grid-template-columns:1fr}.response-form .primary-button{width:100%}}


/* Sailor Home dashboard mapped from assets/reference/sailor-home-template.png */
.topbar{
  background:rgba(255,255,255,.97); color:#0b2d5c; border-bottom:1px solid #e5edf1;
  backdrop-filter:blur(12px);
}
.brand-mark{background:#e7f2ff;color:#1769c2}.brand-subtitle{color:#6e8193;opacity:1}
.header-actions{display:flex;align-items:center;gap:9px}.availability-wrap{color:#49606d}
.header-icon-button,.header-profile-button{
  position:relative;border:0;background:#eef5fb;color:#0c5ead;display:grid;place-items:center;cursor:pointer
}
.header-icon-button{width:38px;height:38px;border-radius:12px;font-size:19px}
.header-icon-button b{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:999px;background:#ef514a;color:white;font-size:10px;display:grid;place-items:center}
.header-profile-button{width:38px;height:38px;border-radius:50%;font-weight:900}
.sailor-welcome-card{
  min-height:215px;border-radius:26px;overflow:hidden;position:relative;
  background:
    linear-gradient(90deg,rgba(4,39,78,.93) 0%,rgba(4,55,96,.83) 44%,rgba(7,87,122,.36) 72%,rgba(7,87,122,.18) 100%),
    radial-gradient(circle at 80% 35%,#71c5da 0 15%,#1988b4 16% 32%,#0f4d77 33% 100%);
  color:white;box-shadow:var(--shadow)
}
.sailor-welcome-card::after{
  content:"⛵";position:absolute;right:5%;bottom:-16px;font-size:120px;opacity:.2;transform:rotate(-7deg)
}
.welcome-overlay{position:relative;z-index:2;display:flex;justify-content:space-between;gap:20px;padding:24px}
.welcome-kicker{font-size:18px}.welcome-copy h1{font-size:36px;margin:2px 0 12px;line-height:1}
.welcome-line{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:15px}
.welcome-slogan{align-self:flex-start;text-align:center;font:italic 26px/1.02 Georgia,serif;opacity:.9;transform:rotate(-6deg);margin:10px 24px 0 0}
.availability-pill{margin-top:12px;border:0;border-radius:12px;padding:10px 14px;background:#d6f4dc;color:#146232;display:inline-flex;align-items:center;gap:8px;font-weight:800;cursor:pointer}
.availability-dot{width:10px;height:10px;border-radius:50%;background:#14a64b;box-shadow:0 0 0 4px rgba(20,166,75,.12)}
.availability-pill.paused{background:#f2f4f5;color:#687a81}.availability-pill.paused .availability-dot{background:#89979c}

.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.dashboard-stat{border:0;border-radius:18px;padding:15px 14px;text-align:left;color:#102b54;cursor:pointer;min-height:118px;box-shadow:0 6px 18px rgba(16,48,77,.05)}
.dashboard-stat strong{display:block;font-size:27px;margin:4px 0}.dashboard-stat>span:last-child{font-size:13px}.stat-icon{display:block;font-size:22px}
.stat-blue{background:#eaf4ff}.stat-teal{background:#e8f8f5}.stat-sand{background:#fff3e7}.stat-lilac{background:#f3efff}

.dashboard-section{margin-top:18px}.dashboard-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.dashboard-section-head h2{margin:0;color:#102b54;font-size:22px}
.quick-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-action{position:relative;border:0;border-radius:18px;padding:18px 10px;min-height:95px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;cursor:pointer;font:inherit}
.quick-action span{font-size:24px}.quick-action b{font-size:13px}.qa-blue{background:linear-gradient(145deg,#3188e4,#1469bc);color:white}.qa-teal{background:linear-gradient(145deg,#49cad0,#1aa8b4);color:white}.qa-green{background:linear-gradient(145deg,#62c8b7,#2aa98f);color:white}.qa-light{background:#eaf4ff;color:#0c4f91}
.quick-action i{position:absolute;right:10px;top:8px;font-style:normal;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef514a;color:#fff;font-size:10px;display:grid;place-items:center}

.dashboard-list{display:grid;gap:10px}.home-request-card,.home-trip-card{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:13px;padding:12px;border:1px solid #e3eaee;border-radius:16px;background:white;box-shadow:0 6px 16px rgba(9,47,79,.04)}
.card-figure{width:72px;height:64px;border-radius:12px;display:grid;place-items:center;font-size:32px;background:linear-gradient(145deg,#dcefff,#b6e9ef);overflow:hidden}
.card-figure.fishing{background:linear-gradient(145deg,#d6e9ff,#a8d2e8)}.card-figure.sunset{background:linear-gradient(145deg,#ffd9a3,#e87e57)}.card-figure.dive{background:linear-gradient(145deg,#c6f4ef,#62bed0)}
.home-request-copy h3,.home-trip-copy h3{margin:0 0 6px;color:#102b54;font-size:17px}.home-card-meta{display:flex;gap:12px;flex-wrap:wrap;color:#627783;font-size:12px;margin-top:3px}
.home-card-action{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.home-card-status{padding:6px 10px;border-radius:999px;background:#e8f3ff;color:#0b67c2;font-size:11px;font-weight:800}.home-card-status.confirmed{background:#dcf4e2;color:#247044}
.small-action{border:0;border-radius:10px;padding:10px 15px;background:#0d5ba7;color:white;font-weight:800;cursor:pointer}
.home-package-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.home-package-grid .offer-card{margin:0}.home-package-grid .offer-top{align-items:flex-start}.home-package-grid .offer-meta .chip:nth-child(n+3){display:none}
.trip-list{display:grid;gap:12px}.profile-reference-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:13px 15px;border:1px dashed #b9ceda;border-radius:14px;background:#f7fbfd;color:#45606e;font-size:12px}.profile-reference-note strong{color:#0d5d83}.profile-reference-note code{font-size:11px}
.bottom-nav{grid-template-columns:repeat(5,1fr)}

@media(max-width:700px){
  .header-actions .availability-wrap{display:none}
  .welcome-overlay{padding:20px}.welcome-copy h1{font-size:30px}.welcome-slogan{font-size:21px;margin-right:4px}
  .dashboard-stats{grid-template-columns:repeat(2,1fr)}.quick-action-grid{grid-template-columns:repeat(2,1fr)}
  .home-request-card,.home-trip-card{grid-template-columns:58px 1fr}.card-figure{width:58px;height:58px}.home-card-action{grid-column:2;align-items:flex-start;flex-direction:row}
  .home-package-grid{grid-template-columns:1fr}
}

.brand-mark img,.header-icon-button img,.header-profile-button img,.welcome-line img,.stat-icon img,.quick-action img,.nav-item img,.card-figure img{
  width:1em;height:1em;display:block
}
.brand-mark img{width:24px;height:24px}.header-icon-button img,.header-profile-button img{width:20px;height:20px}
.welcome-line img{width:18px;height:18px;filter:brightness(0) invert(1)}
.stat-icon img{width:24px;height:24px}.quick-action img{width:26px;height:26px}
.nav-item img{width:21px;height:21px;margin:0 auto 2px}.card-figure img{width:34px;height:34px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.tour-operator-badge{display:inline-flex;align-items:center;gap:5px;margin:5px 0 2px;padding:5px 8px;border-radius:999px;background:#e8f3ff;color:#0b63ce;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;border:1px solid #cfe4ff}.tour-operator-badge img{width:15px;height:15px;display:block}

/* Sailors Club Room — private Sailor-only chat entry */
.club-room-tab{margin-top:12px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;min-height:68px;padding:12px 14px;border:1px solid #c7dff7;border-radius:18px;background:linear-gradient(135deg,#f4f9ff,#e6f3ff);color:#0c4f91;text-decoration:none}
.club-room-tab:hover{border-color:#8abce8}.club-room-tab:focus-visible{outline:3px solid rgba(20,105,188,.28);outline-offset:2px}
.club-room-tab-icon{width:44px;height:44px;border-radius:14px;background:#fff;display:grid;place-items:center;border:1px solid #d5e7f8}.club-room-tab-icon img{width:27px;height:27px}
.club-room-tab-copy{display:flex;flex-direction:column;min-width:0}.club-room-tab-copy b{font-size:15px}.club-room-tab-copy small{font-size:11px;color:#5a6f83;margin-top:2px}
.club-room-tab-user{font-size:11px;font-weight:700;color:#315f85;background:#fff;border:1px solid #d5e7f8;border-radius:999px;padding:6px 9px;white-space:nowrap}.club-room-tab-arrow{font-size:26px;line-height:1}
@media(max-width:520px){.club-room-tab{grid-template-columns:auto 1fr auto}.club-room-tab-user{grid-column:2;justify-self:start}.club-room-tab-arrow{grid-column:3;grid-row:1 / span 2}}

/* Approved visual-fidelity revision — additions to the existing Sailor App prototype */
:root{--sr-blue:#0877f8;--sr-navy:#082c6b}
body{background:#edf3f9;color:#102a55}
#sailorDashboardShell[hidden],#entryFlow[hidden],.entry-screen[hidden],.review-menu[hidden]{display:none!important}
.review-banner{position:sticky;top:0;z-index:55;background:#082a60;color:#fff;text-align:center;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:.08em}
.review-banner span{font-weight:500;letter-spacing:0;color:#c5defb;margin-left:8px}
.review-controls{position:fixed;right:16px;top:45px;z-index:65}
.review-controls>button{background:#fff;color:#0b3e88;border:1px solid #a6c8ee;box-shadow:0 6px 22px #08295724;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}
.review-menu{position:absolute;top:44px;right:0;width:min(315px,calc(100vw - 30px));max-height:75vh;overflow-y:auto;background:white;box-shadow:0 20px 65px #001c4460;border-radius:18px;border:1px solid #c9def5;padding:12px;display:grid;gap:3px}
.review-menu strong{color:#12356c;font-size:13px;padding:9px}.review-menu button{border:0;border-radius:8px;text-align:left;padding:9px 11px;background:transparent;color:#14376b;cursor:pointer;font:inherit;font-size:13px}.review-menu button:hover,.review-menu button:focus{background:#e8f2ff}
.entry-flow{max-width:470px;margin:0 auto 32px;min-height:calc(100vh - 32px);background:white;box-shadow:0 12px 60px #001d4930}
.entry-screen{min-height:calc(100vh - 36px);background:#fff;color:#0b2d65}
.welcome-screen{background:#051e42;padding-bottom:6px}.welcome-photo-frame{position:relative;width:100%;aspect-ratio:0.525;max-height:calc(100vh - 60px);margin:0 auto;overflow:hidden}.welcome-photo-frame img{width:100%;height:100%;object-fit:fill;display:block}
.welcome-hit{position:absolute;border:0;background:transparent;cursor:pointer;display:block;border-radius:14px}
.welcome-hit:focus-visible{outline:4px solid #f7faff;outline-offset:-3px;background:#ffffff20}
.welcome-signin{right:4%;top:5%;width:23%;height:6%}.welcome-start{left:6%;top:72%;width:88%;height:7%}.welcome-browse{left:6%;top:80%;width:88%;height:7%}.welcome-sailboats{left:5%;top:88%;width:24%;height:10%}.welcome-powerboats{left:30%;top:88%;width:24%;height:10%}
.entry-tip{color:#d8e8ff;text-align:center;font-size:11px;line-height:1.4;padding:7px 14px;margin:0}
.auth-screen{padding:40px clamp(22px,7%,45px) 35px;position:relative}.auth-back{position:absolute;top:20px;left:22px}.auth-back button,.onboard-header button{font-size:34px;color:#086ae0;border:0;background:transparent;cursor:pointer}
.auth-brand{display:flex;align-items:center;flex-direction:column;margin:18px auto 30px;color:#082c72}.auth-brand img{width:80px;height:80px;filter:invert(14%) sepia(46%) saturate(2904%) hue-rotate(200deg)}.auth-brand b{font-family:Georgia,serif;font-size:36px;letter-spacing:-.02em}.auth-brand small{font-size:15px;margin-top:-3px}
.auth-screen h1{text-align:center;font-size:24px;margin:0}.auth-subtitle{text-align:center;margin:5px 0 19px;color:#5e789b}.demo-notice{background:#eef6ff;border:1px solid #d5e8ff;border-radius:12px;padding:10px 13px;font-size:12px;line-height:1.45;color:#365d90;margin-bottom:16px}
.auth-field{position:relative;display:block;margin:10px 0}.auth-field input{width:100%;height:51px;border:1px solid #cbd7e5;border-radius:13px;padding:0 16px;color:#12305f;background:white;font:inherit}.auth-field input:focus{outline:2px solid #9ccaff;border-color:#0877f8}.auth-password input{padding-right:55px}.auth-password button{position:absolute;right:8px;top:5px;height:40px;width:40px;border:0;background:transparent;color:#0c3d82;cursor:pointer}
.auth-primary,.auth-outline{display:block;width:100%;border-radius:14px;padding:14px 17px;text-align:center;font:inherit;font-weight:800;cursor:pointer;margin-top:13px}.auth-primary{background:#0877f8;border:1px solid #0877f8;color:white;box-shadow:0 5px 15px #0a65d51f}.auth-outline{background:white;color:#0762c9;border:1px solid #0877f8}
.auth-link{border:0;background:transparent;color:#076be0;font-weight:700;cursor:pointer;padding:8px 0}.auth-link.right{display:block;margin-left:auto;font-size:13px}.auth-divider{display:flex;gap:10px;align-items:center;margin:15px 0;color:#65778b;font-size:12px}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:#dbe3ed;flex:1}.auth-social{width:100%;display:block;margin:10px 0;background:white;border:1px solid #b9cde2;border-radius:999px;padding:12px;font-weight:750;cursor:pointer;color:#0b2b64}.google-g{font-weight:900;color:#4285f4;font-size:21px}.demo-button{background:#eff7ff;border-color:#bfdcff;color:#155caa;font-size:13px;box-shadow:none}
.auth-foot{text-align:center;color:#5d708a;margin:22px 0 5px}.auth-foot button{border:0;background:transparent;color:#0877f8;text-decoration:underline;font-weight:800;cursor:pointer}.validation-error{color:#b42318;background:#fff1f1;padding:10px;border-radius:9px}
.onboard-screen{padding:24px clamp(18px,5%,30px) 32px}.onboard-header{display:flex;align-items:center;justify-content:center;gap:8px;position:relative;color:#0a397f;font-size:22px;font-weight:850}.onboard-header button{position:absolute;left:0;top:-8px}.onboard-header img{width:38px;height:38px;filter:invert(16%) sepia(53%) saturate(2000%) hue-rotate(195deg)}.onboard-step{text-align:center;color:#3373ba;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:22px 0 10px;font-weight:800}.onboard-screen h1{color:#092e79;font-size:30px;line-height:1.13;text-align:center;margin:8px 0}.onboard-screen>p{text-align:center;color:#4f709f;line-height:1.45;font-size:15px}.onboard-scene{width:100%;height:190px;object-fit:cover;border-radius:17px;margin:14px 0}.avatar-upload{display:grid;justify-items:center;gap:15px;padding:24px}.avatar-upload>div{height:125px;width:125px;border-radius:50%;background:#e3f0ff;display:grid;place-items:center;font-size:75px;color:#4285c6;overflow:hidden}.avatar-upload>div img{width:100%;height:100%;object-fit:cover}.upload-cta{border-radius:999px;padding:11px 17px;background:#e9f4ff;color:#0873de;font-weight:800;cursor:pointer}.form-grid{display:grid;gap:12px;margin:18px 0}.form-grid label,.package-label{font-size:12px;color:#3d5d89;font-weight:800;display:grid;gap:5px}.form-grid input,.form-grid select,.package-label select{padding:12px;border:1px solid #cbdcef;border-radius:11px;color:#0a3475;background:#fff;font:inherit;font-size:14px;width:100%}.compliance-note,.review-status{border-radius:14px;background:#eaf4ff;border:1px solid #d6e9fc;padding:13px 15px;margin:16px 0;font-size:12px;line-height:1.5;color:#365d8b}.review-status b{font-size:14px;color:#113f7d}.review-status p{margin:5px 0 0}.document-grid{display:grid;gap:9px;margin:16px 0}.document-grid label{padding:13px;border:1px solid #d1e1f2;border-radius:11px;color:#154985;font-size:13px;font-weight:750}.document-grid input{display:block;width:100%;margin-top:9px;font-size:11px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0}.photo-grid label{height:145px;display:grid;place-items:center;border:2px dashed #b9d3f0;border-radius:15px;color:#2b73c1;font-weight:800;font-size:14px;cursor:pointer;overflow:hidden;background:#f8fbff}.photo-grid label img{width:100%;height:100%;object-fit:cover}.submitted-icon{margin:55px auto 18px;background:#dbf7e9;color:#168652;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;font-size:60px}.welcome-package-art{width:100%;max-height:220px;object-fit:contain}.package-includes{display:grid;gap:8px;background:#f1f7ff;border:1px solid #cbdff4;border-radius:14px;padding:15px;margin:12px 0}.package-label{margin:18px 0}
#sailorDashboardShell{background:#fff}.sailor-welcome-card{background:linear-gradient(90deg,#072b5af0 0%,#073d70bc 43%,#0b4c7555 100%),url('assets/approved/sunset-water-hero.webp') center 52%/cover no-repeat!important}.sailor-welcome-card::after{content:none!important}
.topbar{background:#fff}.primary-button,.small-action{background:#0877f8}.brand-name{color:#0b3379}.brand-subtitle{color:#3373b8}.page-heading h1,.dashboard-section-head h2{color:#082c69}
.reference-gallery{border:0;border-radius:18px;width:min(1000px,96vw);max-height:92vh;padding:0}.reference-gallery::backdrop{background:#00112cbd}.reference-inner{padding:24px;overflow:auto;max-height:90vh}.reference-inner h2{color:#0b3379}.reference-inner p{font-size:13px;color:#537098}.reference-close{float:right;background:#0a66d3;color:white;border:0;border-radius:8px;padding:10px 14px;cursor:pointer}.reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.reference-grid figure{margin:0;padding:10px;background:#f2f7ff;border-radius:12px}.reference-grid img{display:block;width:100%;max-height:340px;object-fit:contain}.reference-grid figcaption{text-align:center;font-size:13px;font-weight:800;margin-top:8px}
@media(min-width:800px){.entry-flow{margin-top:20px;border-radius:25px;overflow:hidden}.review-controls{right:26px}.welcome-photo-frame{max-height:880px}}
@media(max-width:520px){.review-banner{font-size:10px;padding-right:120px;text-align:left}.review-banner span{display:none}.review-controls{top:39px;right:7px}.review-controls>button{font-size:11px;padding:8px}.welcome-photo-frame{max-height:none}.welcome-screen{min-height:auto}.entry-tip{font-size:10px}.auth-screen{padding-top:32px}.auth-brand{margin-top:20px}}

/* Request details fidelity, based on frozen request-details reference */
.request-review-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#f0f5fc;border-radius:13px;padding:5px;margin:14px 0}.request-review-tabs button{border:0;border-radius:9px;padding:10px;color:#5d7695;background:transparent;font-weight:800;cursor:pointer}.request-review-tabs button.active{color:white;background:#0877f8;box-shadow:0 4px 12px #096fe733}.request-view-actions{margin:12px 0 0}.request-view-actions button{color:#0867d0;border-color:#bad5f4}.request-detail-dialog{border:0;border-radius:24px;width:min(520px,95vw);max-height:92vh;padding:0}.request-detail-dialog::backdrop{background:#00142caa}.request-detail-body{padding:22px;max-height:90vh;overflow:auto;color:#0b306e}.request-detail-body h2{margin:0 0 14px}.request-detail-body h3{font-size:24px}.request-detail-hero{width:100%;height:180px;object-fit:cover;border-radius:16px}.request-demo-label{font-size:11px;color:#3373bd;background:#e6f2ff;border-radius:999px;padding:5px 9px}.request-detail-close{float:right;background:transparent;border:0;font-size:30px;color:#3664a3;cursor:pointer}.detail-summary{display:grid;gap:8px;background:#f1f7ff;padding:14px;border-radius:14px}.detail-summary span{font-size:14px}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.detail-actions button{margin-top:0}.request-card[hidden],#requestFilterEmpty[hidden]{display:none!important}

.sailor-welcome-card{background:linear-gradient(90deg,#072b5af0 0%,#073d70b5 43%,#0b4c7511 100%),url("assets/approved/home-dock-photo.webp") center/cover no-repeat!important}.sailor-welcome-card .welcome-slogan{display:none}

/* V3: approved Sailor Sign Up reference branding consistency; all original flows preserved. */
.auth-brand img{width:80px;height:76px;object-fit:contain;filter:none!important}
.auth-brand b{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-weight:850;font-size:36px;letter-spacing:-.045em;line-height:1.15}
.auth-brand small{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-weight:450;font-size:16px;letter-spacing:.01em;margin-top:1px}
.onboard-header img{width:38px;height:38px;object-fit:contain;filter:none!important}
.brand-mark img{width:29px;height:29px;object-fit:contain;filter:none!important}

/* Stage 1: user-approved Welcome Package visual; demo-only shipping workflow. */
.approved-welcome-package{padding:24px 22px 34px;color:#071f55;background:#fff}
.approved-welcome-package .package-brand{font-size:22px;color:#092f69;margin-bottom:14px}
.approved-welcome-package .package-brand img{filter:none;width:40px;height:40px;object-fit:contain}
.approved-welcome-package .package-brand span{display:flex;flex-direction:column;line-height:1.03}
.approved-welcome-package .package-brand small{font-size:9px;letter-spacing:.45em;text-align:center;margin-top:5px}
.approved-welcome-package .package-hero{padding:26px 5px 42px;background:linear-gradient(90deg,#ffffffed,#ffffff8c),url('assets/approved/sunset-water-hero.webp') center/cover;border-radius:12px}
.approved-welcome-package .package-hero h1{text-align:left;font-size:clamp(27px,7vw,34px);margin:0 0 12px;color:#071d51}
.approved-welcome-package .package-hero p{margin:0;color:#506991;font-size:17px;line-height:1.45}
.approved-welcome-package .package-approved-card{border:1px solid #edf2fb;border-radius:22px;background:#fff;box-shadow:0 7px 23px #1c528a0c;margin:16px 0;padding:18px}
.approved-welcome-package .package-approved-card h2,.approved-welcome-package .package-size-card legend{font-size:20px;font-weight:800;color:#061f54;margin:0 0 12px}
.approved-welcome-package .package-items{background:#eff7ff;padding:16px}
.approved-welcome-package .package-item-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.approved-welcome-package figure{margin:0;text-align:center;min-width:0}
.approved-welcome-package figure img{display:block;width:100%;height:158px;object-fit:contain;mix-blend-mode:multiply;border-radius:12px}
.approved-welcome-package figcaption{font-size:14px;color:#4e6285;margin-top:4px}
.approved-welcome-package .package-size-card{min-width:0}
.approved-welcome-package .package-size-card legend{padding:0 2px;margin-bottom:4px}
.approved-welcome-package .package-size-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #dce7f5;border-radius:13px;overflow:hidden}
.approved-welcome-package .package-size-options label{position:relative;cursor:pointer;min-width:0}
.approved-welcome-package .package-size-options label+label{border-left:1px solid #e2eaf5}
.approved-welcome-package .package-size-options input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.approved-welcome-package .package-size-options span{display:grid;place-items:center;min-height:50px;font-size:14px;color:#39517b}
.approved-welcome-package .package-size-options input:checked+span{background:#0873ed;color:#fff;font-weight:800;border-radius:10px}
.approved-welcome-package .package-size-options input:focus-visible+span{outline:3px solid #89c7ff;outline-offset:-3px}
.approved-welcome-package .package-address-example{display:flex;align-items:flex-start;gap:12px;border:1px solid #d8e5f6;border-radius:16px;padding:16px 12px;color:#09244e}
.approved-welcome-package .package-location-icon{flex:none;width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#e7f2ff;color:#0977f2}
.approved-welcome-package .package-address-example strong{font-size:16px}
.approved-welcome-package .package-address-example p{margin:4px 0;color:#61738e;font-size:13px;line-height:1.45}
.approved-welcome-package .package-address-example button{margin-left:auto;border:0;background:transparent;color:#0873ed;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.approved-welcome-package .package-address-choices{display:grid;gap:10px;margin-top:15px}
.approved-welcome-package .package-address-choices label{display:flex;gap:9px;align-items:center;font-size:14px;color:#40587d}
.approved-welcome-package .package-address-choices input{accent-color:#0873ed;width:18px;height:18px}
.approved-welcome-package .package-address-choices input:disabled+span{opacity:.55}
.approved-welcome-package .package-demo-note{font-size:11px;line-height:1.4;color:#69809e;margin:13px 0 0}
.approved-welcome-package .package-confirm-button{background:#076eec;border-color:#076eec;border-radius:16px;font-size:16px;padding:16px 13px;display:flex;justify-content:center;align-items:center;position:relative}
.approved-welcome-package .package-confirm-button span{position:absolute;right:15px;font-size:24px;font-weight:400}
.approved-welcome-package .package-skip{display:block;margin:16px auto 0;font-size:15px}
.approved-welcome-package .package-confirm-status{background:#eaf4ff;color:#15457f;border:1px solid #c8e1ff;border-radius:12px;padding:12px;font-size:13px;line-height:1.4}
@media(max-width:420px){.approved-welcome-package{padding-left:14px;padding-right:14px}.approved-welcome-package .package-item-grid figure img{height:130px}.approved-welcome-package .package-approved-card{padding:13px}.approved-welcome-package .package-hero{padding-bottom:28px}}

/* V3 official full Sails Rides logo — user-approved supplied asset. */
.auth-brand img{width:min(280px,80vw)!important;height:auto!important;max-height:160px;object-fit:contain;filter:none!important}
.onboard-header img{width:145px!important;height:auto!important;max-height:90px;object-fit:contain;filter:none!important}
.package-brand img{width:145px!important;height:auto!important;max-height:90px;object-fit:contain;filter:none!important}
.brand-mark{width:138px!important;height:auto!important;min-height:58px;background:transparent!important;border-radius:0!important}
.brand-mark img{width:138px!important;height:auto!important;max-height:75px;object-fit:contain;filter:none!important}


/* V4 home-screen visual correction #1 — approved October 10 screenshot.
   Do not change the official V3 logo, dashboard cards, or app behavior.
   Right-side slogan is from the user's approved screenshot, not a retyped font. */
.sailor-welcome-card{
  min-height:315px;
  border-radius:25px;
  background:
    linear-gradient(90deg,rgba(5,43,88,.89) 0%,rgba(5,53,102,.68) 26%,rgba(7,72,121,.16) 57%,rgba(7,72,121,0) 100%),
    url("assets/approved/home-dock-photo.webp") center center/cover no-repeat!important;
}
.sailor-welcome-card::after{
  content:""!important;display:block!important;position:absolute;
  top:0;right:0;bottom:0;width:54%;
  transform:none!important;opacity:1!important;
  background:url("assets/approved/home-hero-approved-right.webp") right center/100% 100% no-repeat;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 12%);
  mask-image:linear-gradient(to right,transparent 0%,#000 12%);
  pointer-events:none;z-index:1;
}
.sailor-welcome-card .welcome-overlay{min-height:315px;align-items:flex-start;padding:35px 35px 20px}
.sailor-welcome-card .welcome-copy{position:relative;z-index:3;max-width:45%;text-shadow:0 1px 3px #00245166}
/* The slogan is in the approved right-side photographic asset. Keep semantic text available to screen readers. */
.sailor-welcome-card .welcome-slogan{
  display:block!important;position:absolute!important;
  width:1px!important;height:1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;
  padding:0!important;margin:-1px!important;border:0!important;
}
@media(max-width:700px){
 .sailor-welcome-card{min-height:285px;background-position:center center!important}
 .sailor-welcome-card::after{width:57%}
 .sailor-welcome-card .welcome-overlay{min-height:285px;padding:22px 15px 18px}
 .sailor-welcome-card .welcome-copy{max-width:55%}
 .sailor-welcome-card .welcome-copy h1{font-size:clamp(22px,5vw,30px);line-height:1.05}
 .sailor-welcome-card .welcome-kicker{font-size:14px}
 .sailor-welcome-card .welcome-line{font-size:12px;gap:5px}
 .sailor-welcome-card .availability-pill{font-size:11px;padding:9px 8px;gap:5px}
}
@media(max-width:390px){
 .sailor-welcome-card::after{width:60%}
 .sailor-welcome-card .welcome-copy{max-width:53%}
 .sailor-welcome-card .welcome-overlay{padding:17px 11px}
 .sailor-welcome-card .welcome-copy h1{font-size:21px}
 .sailor-welcome-card .welcome-line{font-size:11px}
}


/* CHECKPOINT 2 — additive marina and public ramp review UI, no modification of approved V4 styling */
.bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.cp2-heading{margin:12px 0 16px}.cp2-heading h1{color:#0c3471;font-size:clamp(24px,4vw,36px);margin:4px 0 10px}.cp2-heading p{color:#56708c}.cp2-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.cp2-tab{cursor:pointer;background:white;border:1px solid #c9dcf4;border-radius:15px;padding:15px 12px;font-weight:800;color:#0a4f96}.cp2-tab.active{background:#0b5fac;color:white;border-color:#0b5fac}.cp2-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 16px}.cp2-controls label,.cp2-dialog label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#285680}.cp2-controls input,.cp2-controls select,.cp2-dialog input,.cp2-dialog select{min-width:0;width:100%;padding:12px;border:1px solid #ccdaea;border-radius:11px;background:#fff;color:#102a55;font:inherit}.cp2-notice{padding:15px 17px;border-radius:14px;background:#f0f6ff;border:1px solid #cfe0f5;color:#24547e;margin-bottom:17px;font-size:13px;line-height:1.6}.cp2-card-list{display:grid;gap:14px}.cp2-card{display:grid;grid-template-columns:65px 1fr;gap:16px;background:white;border:1px solid #dbe6f2;border-radius:19px;padding:18px;box-shadow:0 6px 18px #204b770b}.cp2-card-art{display:grid;place-items:center;font-size:35px;background:#e8f6fb;border-radius:17px;min-height:65px}.cp2-card h3{margin:0 0 5px;color:#10376b;font-size:19px}.cp2-card p{margin:4px 0;color:#526d87;font-size:13px}.cp2-pill{display:inline-block;font-size:11px;font-weight:800;color:#196d8a;background:#e8f7fc;border-radius:30px;padding:6px 11px;margin:7px 7px 10px 0}.cp2-card-actions{display:flex;gap:9px;flex-wrap:wrap}.cp2-card-actions button,.cp2-primary{border:0;background:#0c65b2;color:white;border-radius:12px;padding:11px 16px;cursor:pointer;font-weight:800}.cp2-card-actions .cp2-outline{border:1px solid #bfd4e8;background:#fff;color:#115595}.cp2-empty{padding:23px;text-align:center;border:1px dashed #a6c7e0;border-radius:16px;background:#f6faff;color:#3a6686;line-height:1.7}.cp2-map-placeholder{min-height:150px;margin-top:18px;display:grid;place-items:center;background:linear-gradient(145deg,#e9f5ff,#eaf8f5);border-radius:12px;color:#3b7090;font-weight:750}.cp2-home-link{width:100%;margin:15px 0;border:1px solid #b4d9ee;border-radius:16px;background:#ebf6fe;color:#0b568e;display:flex;align-items:center;gap:12px;padding:15px 18px;text-align:left;cursor:pointer}.cp2-home-link>span:first-child{font-size:25px}.cp2-home-link>span:nth-child(2){display:grid;gap:3px;flex:1}.cp2-home-link small{font-size:12px}.cp2-home-link>span:last-child{font-size:26px}.cp2-dialog{width:min(570px,calc(100% - 22px));border:0;border-radius:20px;max-height:90vh;padding:0;color:#123969;box-shadow:0 22px 70px #001f4266}.cp2-dialog::backdrop{background:#001a3cab}.cp2-dialog-inner{padding:25px;overflow:auto;max-height:88vh;display:grid;gap:12px}.cp2-dialog-inner h2{margin:0 0 7px}.cp2-close{justify-self:end;cursor:pointer;border:0;color:#305981;background:transparent;font-size:27px}.cp2-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.cp2-detail-list>div,.cp2-quote,.cp2-summary-row{padding:12px;background:#f2f7fd;border-radius:12px}.cp2-detail-list small{display:block;color:#647e9b;margin-top:5px}.cp2-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.cp2-quote{display:grid;gap:8px}.cp2-quote div,.cp2-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.cp2-quote .cp2-total{font-size:19px;color:#09549e;font-weight:900;border-top:1px solid #b6cde3;padding-top:10px}.cp2-fine{color:#708397;font-size:12px;line-height:1.5}.cp2-summary-data{display:grid;gap:8px}.cp2-dialog [hidden],#cp2RampPanel[hidden],#cp2MarinaPanel[hidden],.cp2-empty[hidden]{display:none!important}
@media(max-width:650px){.cp2-controls,.cp2-form-grid{grid-template-columns:1fr}.cp2-card{grid-template-columns:1fr}.cp2-card-art{min-height:60px}.bottom-nav{padding:6px 2px 10px}.nav-item{padding:6px 1px}.nav-item small{font-size:9px}.cp2-detail-list{grid-template-columns:1fr}}


/* ================================================================
   CHECKPOINT 2 — Visual Review v1 style reconciliation
   Reference: Sails_Rides_Sailor_App_Cloudflare_Visual_Review_v1
   The original v1 stylesheet above is byte-for-byte preserved.
   V4 approved hero/logo/onboarding behavior, CP2 flows retained.
   Style changes restricted to dashboard shell and CP2 module.
   ================================================================ */
#sailorDashboardShell {
  --navy:#071f2d; --navy2:#0b3041; --sea:#0d7180;
  --aqua:#21b6b5; --sand:#f4f0e8;
  --ink:#14232b; --muted:#66767d; --line:#dce5e7;
  background:#f8fbfb;
  color:var(--ink);
}
body:has(#sailorDashboardShell:not([hidden])) {background:#eef4f5;color:#14232b}
#sailorDashboardShell .topbar {
  background:rgba(7,31,45,.97);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.07);
}
#sailorDashboardShell .brand-name {color:#fff}
#sailorDashboardShell .brand-subtitle {color:#d7edee}
/* Official V3 logo is dark-on-clear: give it a readable ivory field
   rather than filtering/replacing the approved artwork. */
#sailorDashboardShell .brand-mark {
  background:#fff!important;
  border-radius:12px!important;
  padding:5px;
  width:130px!important;
  min-height:54px;
}
#sailorDashboardShell .brand-mark img {width:120px!important;max-height:66px}
#sailorDashboardShell .header-actions {color:#fff}
#sailorDashboardShell .header-icon-button,
#sailorDashboardShell .header-profile-button {color:#fff}
#sailorDashboardShell .header-icon-button img,
#sailorDashboardShell .header-profile-button img {filter:brightness(0) invert(1)}
#sailorDashboardShell .page-heading h1,
#sailorDashboardShell .dashboard-section-head h2,
#sailorDashboardShell .section-heading h2 {color:#102b37}
#sailorDashboardShell .eyebrow {color:var(--sea)}
#sailorDashboardShell .primary-button,
#sailorDashboardShell .small-action {background:#0d7180;border-color:#0d7180;color:#fff}
#sailorDashboardShell .primary-button:hover,
#sailorDashboardShell .small-action:hover {background:#095c69}
#sailorDashboardShell .text-button {color:#0d7180}
#sailorDashboardShell .nav-item.active {color:#0d7180}
#sailorDashboardShell .bottom-nav {border-color:var(--line)}
/* Preserve frozen V4 ocean hero with slogan image and approved layering.
   Match the rounded dashboard-card language of the v1 reference. */
#sailorDashboardShell .sailor-welcome-card {box-shadow:0 14px 36px rgba(7,31,45,.12)}
#sailorDashboardShell .panel {border-color:#dce5e7}

/* Checkpoint 2 marina module: v1 navy / sea / aqua / sand theme */
#sailorDashboardShell .cp2-heading h1 {color:#102b37}
#sailorDashboardShell .cp2-heading p {color:#66767d;line-height:1.55}
#sailorDashboardShell .cp2-tab {border-color:#cde2e4;color:#0d7180;background:#fff}
#sailorDashboardShell .cp2-tab.active {color:#fff;background:#0d7180;border-color:#0d7180}
#sailorDashboardShell .cp2-controls label {color:#385b61}
#sailorDashboardShell .cp2-controls input,
#sailorDashboardShell .cp2-controls select {border-color:#ccd9dc;color:#14232b;background:#fff}
#sailorDashboardShell .cp2-controls input:focus-visible,
#sailorDashboardShell .cp2-controls select:focus-visible {outline:3px solid #21b6b566;outline-offset:1px}
#sailorDashboardShell .cp2-notice {background:#e8f8f5;border-color:#c6e7e3;color:#2a6169}
#sailorDashboardShell .cp2-card {border-color:#dce5e7;box-shadow:0 8px 24px rgba(7,31,45,.05)}
#sailorDashboardShell .cp2-card h3 {color:#102b37}
#sailorDashboardShell .cp2-card p {color:#66767d}
#sailorDashboardShell .cp2-card-art {background:#e6f7f6;color:#0d7180}
#sailorDashboardShell .cp2-pill {background:#e8f8f5;color:#0d7180}
#sailorDashboardShell .cp2-card-actions button,
#sailorDashboardShell .cp2-primary {background:#0d7180;color:#fff}
#sailorDashboardShell .cp2-card-actions button:hover,
#sailorDashboardShell .cp2-primary:hover {background:#095c69}
#sailorDashboardShell .cp2-card-actions .cp2-outline {background:#fff;border-color:#bcd7d9;color:#0d7180}
#sailorDashboardShell .cp2-empty {background:#f8fbfb;border-color:#b8d6d9;color:#567477}
#sailorDashboardShell .cp2-map-placeholder {background:linear-gradient(145deg,#e8f8f5,#eaf4ff);color:#38666a}
#sailorDashboardShell .cp2-home-link {border-color:#bcdedb;background:#e8f8f5;color:#0b5f68}
/* Dialogs are document-level siblings of the dashboard shell. */
.cp2-dialog {color:#14232b;border-radius:22px}
.cp2-dialog .cp2-close {color:#66767d}
.cp2-dialog label {color:#385b61}
.cp2-dialog input,.cp2-dialog select {color:#14232b;border-color:#ccd9dc}
.cp2-dialog .cp2-detail-list>div,
.cp2-dialog .cp2-quote,
.cp2-dialog .cp2-summary-row {background:#e8f8f5}
.cp2-dialog .cp2-total {color:#0d7180;border-color:#acd8d7}
.cp2-dialog .cp2-primary {background:#0d7180;color:#fff}
.cp2-dialog .cp2-primary:hover {background:#095c69}
.cp2-dialog .cp2-fine {color:#66767d}
/* The review switcher is a test utility, not a guest-facing feature. */
.review-controls>button {border-color:#bcd7d9;color:#0d7180}
.review-menu {border-color:#dce5e7}
.review-menu button:hover,.review-menu button:focus-visible {background:#e8f8f5}
@media(max-width:700px) {
 #sailorDashboardShell .brand-mark {width:108px!important;min-height:45px}
 #sailorDashboardShell .brand-mark img {width:100px!important;max-height:52px}
}

/* Sailor Checkpoint 2: actual image assets and stable responsive chrome.
   2026-10-14 review build. Existing functionality unchanged. */
:root { --navy:#092a57; --sea:#087487; --aqua:#19a5b4; --line:#d9e5eb; }
body { background:#edf5f9; }
.phone-shell { max-width:1100px; overflow-x:clip; }
#sailorDashboardShell .topbar {
  min-height:72px; max-height:84px; padding:8px 18px;
  background:#102e45; display:flex; align-items:center; gap:16px;
}
#sailorDashboardShell .brand { flex:0 0 auto; min-width:0; }
#sailorDashboardShell .brand-mark {
  display:flex!important; align-items:center; justify-content:center;
  width:120px!important; height:56px!important; min-height:0!important;
  max-height:56px!important; padding:4px 7px!important;
  background:#fff!important; border-radius:11px!important;
}
#sailorDashboardShell .brand-mark img {
  display:block; width:100px!important; height:46px!important;
  max-height:46px!important; max-width:100%!important;
  object-fit:contain; flex:none;
}
#sailorDashboardShell .header-actions { margin-left:auto; gap:10px; }
#sailorDashboardShell .header-icon-button,
#sailorDashboardShell .header-profile-button { flex:none; width:38px; height:38px; }
.review-banner {
  top:0; z-index:70; display:flex; align-items:center; justify-content:space-between;
  gap:14px; min-height:44px; padding:6px max(12px,calc((100vw - 1100px) / 2));
  background:#092a57; text-align:left; letter-spacing:.035em;
}
.review-banner-copy { display:flex; align-items:center; flex-wrap:wrap; column-gap:12px; row-gap:3px; min-width:0; }
.review-banner-copy strong { font-size:11px; letter-spacing:.08em; white-space:nowrap; }
.review-banner-copy span { margin-left:0; font-size:11px; color:#c6e0f1; }
.review-controls { position:relative!important; top:auto!important; right:auto!important;
  z-index:75; flex:none; }
.review-controls>button {
  border-radius:12px; padding:7px 11px; font-size:12px; box-shadow:none;
  border:1px solid #98c7dc; background:white; color:#0d5873;
}
.review-menu { top:calc(100% + 9px); right:0; z-index:90; }
#sailorDashboardShell main { padding:20px 22px 100px; }
#sailorDashboardShell .page-heading h1 { font-size:clamp(26px,3.2vw,37px); line-height:1.13; }
#sailorDashboardShell .page-heading { margin-top:2px; }
#sailorDashboardShell .bottom-nav { width:min(1100px,100%); box-shadow:0 -6px 22px rgba(5,43,67,.05); }
.sailor-welcome-card { min-height:220px; }
/* Dashboard list cards: photos replacing tiny icon-only placeholders. */
#sailorDashboardShell .card-figure {
  width:100px; height:78px; background:#d9edf2; border-radius:13px; overflow:hidden;
}
#sailorDashboardShell .card-figure img {
  display:block; width:100%; height:100%; max-width:none; object-fit:cover;
}
#sailorDashboardShell .home-request-card,
#sailorDashboardShell .home-trip-card { grid-template-columns:100px minmax(0,1fr) auto; }
#sailorDashboardShell .home-package-grid .card-figure { width:86px; height:70px; }
/* Package cards: the same activity imagery used in the Guest App. */
.sailor-photo-offer { display:grid; grid-template-columns:minmax(145px,230px) 1fr;
  align-items:stretch; padding:0; gap:0; overflow:hidden; border:1px solid #d9e5eb; }
.sailor-offer-photo { width:100%; height:100%; min-height:175px; object-fit:cover; display:block; }
.sailor-photo-offer .offer-body { min-width:0; padding:21px 22px; }
.sailor-photo-offer .offer-top { min-width:0; }
.sailor-photo-offer .offer-top>div { min-width:0; }
.sailor-photo-offer .offer-top strong { white-space:nowrap; }
.sailor-photo-offer .offer-meta { margin:13px 0; }
/* Marina imagery: all listings are fictional demonstrations, photos are illustrative. */
.cp2-marina-visual { min-height:164px; border-radius:20px; overflow:hidden; display:flex;
  align-items:flex-end; margin:15px 0; background:linear-gradient(90deg,rgba(4,28,49,.85),rgba(4,28,49,.15)),
  url('assets/sailor-visuals/marina-dock.webp') center 55%/cover no-repeat; }
.cp2-marina-visual-copy { padding:20px 24px; color:#fff; display:grid; gap:4px;
  max-width:420px; text-shadow:0 1px 3px #06223588; }
.cp2-marina-visual-copy span { font-size:10px; letter-spacing:.16em; font-weight:800; color:#a5eff3; }
.cp2-marina-visual-copy strong { font-size:clamp(19px,3vw,28px); line-height:1.1; }
.cp2-marina-visual-copy small { font-size:12px; line-height:1.4; color:#e5f6f7; }
#sailorDashboardShell .cp2-card { grid-template-columns:150px minmax(0,1fr); gap:18px; align-items:start; }
#sailorDashboardShell .cp2-card-art { display:block; width:150px; height:150px; min-height:0;
  border-radius:14px; object-fit:cover; background:#cde9ee; }
#sailorDashboardShell .cp2-card-actions { margin-top:12px; }
#sailorDashboardShell .cp2-map-placeholder { display:grid; gap:10px; background:#eaf2f5;
  overflow:hidden; padding:0 0 12px; font-size:12px; }
#sailorDashboardShell .cp2-map-placeholder img { width:100%; height:155px; object-fit:cover; }
.sailor-profile-photo { display:flex; align-items:flex-end; height:156px; border-radius:18px;
  overflow:hidden; margin:0 0 20px; background:linear-gradient(90deg,rgba(4,28,51,.76),transparent),
  url('assets/sailor-visuals/activity-crew.webp') center 49%/cover no-repeat; }
.sailor-profile-photo span { padding:18px; color:white; font-size:12px; font-weight:800; letter-spacing:.12em; }
.review-banner button:focus-visible,.nav-item:focus-visible,
#sailorDashboardShell button:focus-visible { outline:3px solid #65cad2; outline-offset:3px; }
@media(max-width:720px) {
  .review-banner { padding:6px 10px; gap:8px; }
  .review-banner-copy strong { white-space:normal; font-size:9px; }
  .review-banner-copy span { display:none; }
  .review-controls>button { font-size:11px; padding:7px 9px; }
  #sailorDashboardShell .topbar { min-height:65px; max-height:75px; padding:7px 12px; }
  #sailorDashboardShell .brand-mark { width:94px!important; height:48px!important; max-height:48px!important; }
  #sailorDashboardShell .brand-mark img { width:79px!important; height:38px!important; max-height:38px!important; }
  #sailorDashboardShell .header-actions { gap:6px; }
  #sailorDashboardShell .header-icon-button,
  #sailorDashboardShell .header-profile-button { width:33px; height:33px; }
  #sailorDashboardShell .home-request-card,
  #sailorDashboardShell .home-trip-card { grid-template-columns:76px minmax(0,1fr); gap:11px; }
  #sailorDashboardShell .card-figure { width:76px; height:76px; }
  #sailorDashboardShell .home-card-action { grid-column:2; align-items:flex-start; flex-flow:row wrap; }
  #sailorDashboardShell .cp2-card { grid-template-columns:96px minmax(0,1fr); padding:12px; gap:11px; }
  #sailorDashboardShell .cp2-card-art { width:96px; height:120px; }
  .cp2-tabs { grid-template-columns:1fr 1fr; gap:6px; }
  .cp2-tab { padding:10px 7px; font-size:12px; }
  .cp2-marina-visual { min-height:140px; }
  .sailor-photo-offer { grid-template-columns:112px minmax(0,1fr); }
  .sailor-offer-photo { min-height:190px; }
  .sailor-photo-offer .offer-body { padding:14px; }
  .sailor-photo-offer .offer-top { flex-direction:column; gap:8px; }
  .sailor-photo-offer .offer-top strong { font-size:19px; }
}
@media(max-width:390px) {
  .review-banner-copy strong { font-size:8px; }
  .review-controls>button { max-width:114px; font-size:10px; }
  #sailorDashboardShell .topbar { gap:6px; }
  #sailorDashboardShell .brand-mark { width:78px!important; }
  #sailorDashboardShell .brand-mark img { width:67px!important; }
  #sailorDashboardShell .header-actions .availability-wrap { display:none!important; }
  #sailorDashboardShell .bottom-nav { padding-left:3px; padding-right:3px; }
  #sailorDashboardShell .nav-item { padding:7px 2px; }
}

/* Preserve the latest V32 Sailor Engine secure API check (unconnected by default). */
.engine-bridge-panel { margin:10px 18px 7px; padding:10px 14px; border:1px solid #b7dcdf;
  border-radius:13px; background:#f2fafb; color:#224b59; display:flex;
  align-items:center; gap:12px; flex-wrap:wrap; font-size:12px; }
.engine-bridge-panel>div:first-child { flex:1; min-width:200px; }
.engine-bridge-panel strong {font-size:13px;color:#164658}
.engine-bridge-panel p { margin:3px 0; line-height:1.45; }
.engine-bridge-panel>button { margin-left:auto; border:0; background:#095c70; color:#fff;
  padding:9px 12px; border-radius:9px; font:inherit; font-weight:800; cursor:pointer; }
.engine-bridge-panel>button:disabled {opacity:.65;cursor:wait}
.engine-bridge-panel #sailorEngineData {flex-basis:100%;}
@media(max-width:420px){.engine-bridge-panel{margin:8px 10px}.engine-bridge-panel>button{margin:0}}

/* CP2 financial workflow: read-only review presentation. */
.sailor-financial-policy {border:1px solid rgba(16,99,112,.24);border-radius:16px;padding:14px 16px;margin:0 0 16px;background:#f2fafb;color:#173943;}
.sailor-financial-policy strong {display:block;font-size:.95rem;}
.sailor-financial-policy p {font-size:.84rem;line-height:1.5;margin:7px 0;}
.sailor-financial-policy small {display:block;line-height:1.4;color:#4d6570;}
.sailor-finance-status {display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 12px;border-top:1px solid rgba(23,57,67,.12);font-size:.78rem;line-height:1.5;grid-column:1 / -1;}
.sailor-finance-status b {font-weight:700;}
.sailor-finance-status span {display:block;}

/* Ramp Access v6 adapter: aligned with the Checkpoint 2 navy/teal design */
#sailorDashboardShell .cp2-ramp-intro{padding:15px 16px;background:#e9f8f8;border:1px solid #c9e8e8;border-radius:15px;margin:10px 0 16px}
#sailorDashboardShell .cp2-ramp-intro h2{margin:3px 0 6px;font-size:20px;color:#113741}
#sailorDashboardShell .cp2-ramp-intro p{font-size:13px;line-height:1.5;margin:4px 0}
#sailorDashboardShell .cp2-ramp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#sailorDashboardShell .cp2-ramp-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#385b61}
#sailorDashboardShell .cp2-ramp-grid input,#sailorDashboardShell .cp2-ramp-grid select{width:100%;min-width:0;padding:11px;border:1px solid #cedfe0;border-radius:10px;background:#fff;color:#102b37;font:inherit}
#sailorDashboardShell .cp2-ramp-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:14px 0}
#sailorDashboardShell .cp2-ramp-actions button,.cp2-ramp-more{padding:10px 12px;border-radius:10px;font-weight:800;font-size:12px;cursor:pointer}
#sailorDashboardShell .cp2-outline{border:1px solid #bbd7d9;background:white;color:#0e6978}
#sailorDashboardShell .cp2-checkbox{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:800;color:#174952;cursor:pointer}
#sailorDashboardShell .cp2-checkbox input{accent-color:#0d7180}
#sailorDashboardShell .cp2-ramp-result-header{display:flex;justify-content:space-between;gap:12px;margin:14px 0 12px;font-size:13px;color:#143f49}
#sailorDashboardShell .cp2-ramp-result-header small{color:#647d80}
#sailorDashboardShell .cp2-ramp-card{grid-template-columns:50px minmax(0,1fr);gap:12px;padding:14px}
#sailorDashboardShell .cp2-ramp-symbol{border-radius:13px;background:#e3f5f6;width:50px;height:52px;display:grid;place-items:center;color:#0d7180}
#sailorDashboardShell .cp2-ramp-card h3{font-size:15px;line-height:1.3;margin:0 0 3px}
#sailorDashboardShell .cp2-ramp-card .cp2-ramp-meta{font-size:12px;overflow-wrap:anywhere}
#sailorDashboardShell .cp2-ramp-map-note{font-size:11px;color:#606f72}
#sailorDashboardShell .cp2-ramp-card button{font-size:12px;padding:9px 10px}
#sailorDashboardShell .cp2-ramp-data-help{padding:14px;font-size:12px;color:#526c72}
#sailorDashboardShell .cp2-ramp-data-help p{line-height:1.6}
.cp2-ramp-map-dialog{width:min(620px,calc(100% - 20px))}
.cp2-ramp-map-dialog iframe{width:100%;height:340px;border:1px solid #ccdfe4;border-radius:12px;background:#f2f7f8}
.cp2-ramp-map-dialog small{font-size:12px;color:#526f73}
@media(max-width:650px){#sailorDashboardShell .cp2-ramp-grid{grid-template-columns:1fr}#sailorDashboardShell .cp2-ramp-card{grid-template-columns:44px minmax(0,1fr)}.cp2-ramp-map-dialog iframe{height:265px}}

/* Ramp Access — compact real-photo cards and always-visible GPS coordinates.
   This section only styles ramp cards; existing marina cards are untouched. */
#sailorDashboardShell .cp2-ramp-card{
  grid-template-columns:104px minmax(0,1fr);
  gap:13px;
  align-items:start;
  padding:13px;
}
#sailorDashboardShell .cp2-ramp-thumbnail{
  width:104px;
  height:104px;
  border:1px solid #cbdfe2;
  border-radius:13px;
  overflow:hidden;
  background:#eef4f5;
  position:relative;
  display:grid;
  place-items:center;
}
#sailorDashboardShell .cp2-ramp-photo{
  width:100%;height:100%;display:block;object-fit:cover;
}
#sailorDashboardShell .cp2-ramp-photo[hidden],
#sailorDashboardShell .cp2-ramp-photo-empty[hidden]{display:none!important}
#sailorDashboardShell .cp2-ramp-photo-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;width:100%;height:100%;padding:7px;text-align:center;
  color:#50727a;
}
#sailorDashboardShell .cp2-ramp-photo-empty img{opacity:.65;width:23px;height:23px}
#sailorDashboardShell .cp2-ramp-photo-empty small{font-size:10px;line-height:1.25;font-weight:700}
#sailorDashboardShell .cp2-ramp-card-body{min-width:0}
#sailorDashboardShell .cp2-ramp-map-note{
  font-size:11px;line-height:1.5;overflow-wrap:anywhere;
  margin:8px 0 5px;color:#234c58;font-variant-numeric:tabular-nums;
}
#sailorDashboardShell .cp2-ramp-map-note strong{font-weight:800}
@media(max-width:650px){
  #sailorDashboardShell .cp2-ramp-card{grid-template-columns:82px minmax(0,1fr);gap:10px;padding:11px}
  #sailorDashboardShell .cp2-ramp-thumbnail{width:82px;height:88px;border-radius:11px}
  #sailorDashboardShell .cp2-ramp-photo-empty small{font-size:9px}
  #sailorDashboardShell .cp2-ramp-card h3{font-size:14px}
}

/* Ramp V6 commercially reusable photo credit, visible in every illustrated card */
#sailorDashboardShell .cp2-ramp-photo-credit{font-size:10px;line-height:1.35;color:#476977;margin:4px 0 5px;overflow-wrap:anywhere}
#sailorDashboardShell .cp2-ramp-photo-credit a{color:#0a6677;text-decoration:underline;text-underline-offset:2px}

/* Sailor Marinas & Ramp Access: grouped directory picker. */
.cp2-directory-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#fff;border:1px solid #cadbe5;border-radius:16px;padding:15px;margin:12px 0 16px;box-shadow:0 6px 16px rgba(12,54,79,.06)}
.cp2-picker-field{display:flex;flex-direction:column;gap:7px;font-weight:750;color:#123b58;font-size:13px}
.cp2-picker-field select{font:inherit;min-height:44px;border:1px solid #a9cad9;border-radius:10px;padding:9px 10px;background:#f4fafc;color:#123b58;max-width:100%}
.cp2-picker-field[hidden],.cp2-directory-legacy-tabs[hidden],#cp2MarinaDirectoryEmpty[hidden]{display:none!important}
.cp2-marina-directory-controls{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;align-items:end;margin:10px 0}
.cp2-marina-directory-controls label{display:flex;flex-direction:column;gap:6px;color:#24455a;font-size:12px;font-weight:750}
.cp2-marina-directory-controls input,.cp2-marina-directory-controls select{border:1px solid #b5c9d5;border-radius:9px;padding:11px;min-width:0;background:#fff;color:#17334c}
.cp2-directory-banner{border:1px solid #c8dde9;background:#f1f9fc;color:#28506a;border-radius:10px;padding:12px;font-size:13px;line-height:1.5;margin-bottom:12px}
.cp2-marina-directory-results .cp2-card{border:1px solid #d9e5eb}
.cp2-marina-directory-results .cp2-card.sr-approved-partner{border:2px solid #008b89;box-shadow:0 0 0 2px rgba(0,139,137,.08);background:#f6ffff}
.sr-partner-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#007d76;color:white;font-weight:850;font-size:11px;letter-spacing:.03em}
.sr-directory-kind{color:#517084;font-size:12px;margin:7px 0}
.sr-directory-note{font-size:12px;color:#546d7c;line-height:1.45}
.sr-directory-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:9px}
.sr-directory-actions a{font-weight:700;color:#006d89;border:1px solid #a9cedf;border-radius:7px;padding:7px 10px;text-decoration:none;font-size:12px}
.cp2-demo-marinas{margin-top:18px;border:1px dashed #bacbd4;border-radius:12px;padding:12px;color:#28485a}
.cp2-demo-marinas summary{font-weight:800;cursor:pointer;padding:6px}
@media(max-width:650px){.cp2-directory-picker,.cp2-marina-directory-controls{grid-template-columns:1fr}.cp2-marina-directory-results .cp2-card{grid-template-columns:1fr}}

/* Nautical Sailor notification preferences; kept within Profile view. */
.nautical-notification-panel { display: grid; gap: 17px; }
.nautical-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.nautical-notification-panel .field { min-width: 0; }
.nautical-notification-panel .field select { max-width: 100%; }
.nautical-notification-panel .field input[type="range"] { width: 100%; accent-color: #197e95; min-height: 42px; }
.nautical-sample-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.nautical-sample-grid button { text-align:left; display:flex;flex-direction:column;gap:4px; padding:12px 14px; border:1px solid #adcbd5; background:#f3fbfc; color:#163d57; border-radius:12px; font-weight:700; cursor:pointer; }
.nautical-sample-grid button small {font-size:12px; font-weight:400; color:#567386; }
.nautical-sample-grid button:hover,.nautical-sample-grid button:focus-visible { border-color:#2e8aa2; background:#e2f5f7; }
.nautical-audio-status { color:#18536a; font-size:13px; margin:0; }
.nautical-notification-panel [hidden] { display:none !important; }
@media (max-width:680px) { .nautical-settings-grid,.nautical-sample-grid { grid-template-columns:1fr; } }

/* Offline FWLSAS entry: preserve existing home-card styling for link. */
a.cp2-home-link{display:flex;text-decoration:none;color:inherit;}


/* ADDITIVE R2 QA SCREEN, NO CHANGE TO APPROVED GRAPHICAL WINDOWS */
.origin-dialog{width:min(94vw,680px);max-height:90vh;padding:0;border:0;border-radius:17px;background:#f5f9fc;color:#123650;box-shadow:0 20px 75px #05223f80}
.origin-dialog::backdrop{background:#051c32aa}.origin-panel{padding:18px;overflow-y:auto;max-height:88vh}.origin-panel-head{display:flex;justify-content:space-between;gap:15px;align-items:start}.origin-panel h2{margin:5px 0 12px;font-size:23px}.origin-panel h3{margin:16px 0 9px;font-size:18px}.origin-panel-head button{min-width:35px;border:0;border-radius:8px;font-size:25px;background:#e1eaf0}.origin-warning{padding:12px;background:#e6f1f6;border-radius:8px;font-size:13px}.origin-list{display:grid;gap:8px}.origin-location{background:white;border:1px solid #c0d4e0;border-radius:10px;padding:11px}.origin-location strong{display:block}.origin-location p{font-size:13px;margin:5px 0}.origin-location-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.origin-location-actions button,.origin-actions button{border:0;border-radius:8px;background:#0d4f8c;color:white;padding:8px 12px}.origin-form{display:grid;gap:9px}.origin-form label{display:grid;gap:4px;font-size:14px}.origin-form input,.origin-form select,.origin-form textarea{width:100%;min-width:0;border:1px solid #b2c7d5;border-radius:8px;padding:10px;font:inherit}.origin-actions{display:flex;gap:10px}#originCount{font-weight:650}#originMessage{min-height:1.3em;font-size:13px}

/* SR-SAILOR-VISUAL-R1 */
body > #registrationStatus {
  display:none;
  position:fixed;
  bottom:16px;
  left:50%;
  transform:translateX(-50%);
  z-index:999;
  width:min(92%,620px);
  box-sizing:border-box;
  background:#fff3f3;
  border:2px solid #b42a2a;
  border-radius:12px;
  box-shadow:0 6px 24px #0002;
}

body > #registrationStatus.sr-registration-error {
  display:block;
}

#avatarPreview {
  overflow:hidden;
  border-radius:50%;
}

#avatarPreview img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}

.sr-account-signout-footer {
  display:flex;
  justify-content:center;
  padding:16px 12px 24px;
}

.sr-account-signout-footer[hidden] {
  display:none!important;
}
/* SR-DOCUMENT-HELP-R1 */
.sr-document-help {
  margin:16px 0;
  border:1px solid #b5d5ed;
  border-radius:12px;
  background:#f0f8ff;
  color:#173b62;
  overflow:hidden;
}

.sr-document-help summary {
  padding:15px;
  cursor:pointer;
  font-weight:800;
  color:#075d99;
}

.sr-document-help summary:focus-visible {
  outline:3px solid #4a9fca;
  outline-offset:-3px;
}

.sr-document-help-body {
  padding:0 16px 16px;
  font-size:13px;
  line-height:1.6;
}

.sr-document-help-body ul {
  padding-left:20px;
}

.sr-document-help-body li {
  margin:8px 0;
}

.sr-document-help-body a {
  display:inline-block;
  margin:10px 0;
  font-weight:800;
  text-decoration:underline;
  color:#075d99;
}

.sr-help-note {
  font-size:12px;
  color:#536c80;
}
/* SR-SAILOR-REGISTRATION-R2 */
.sr-r2-errors {
  margin:14px 0;
  padding:13px 16px;
  background:#fff1f1;
  color:#8a2222;
  border:2px solid #c33;
  border-radius:12px;
  font-weight:700;
  line-height:1.5;
}
.sr-r2-errors[hidden] { display:none!important; }
[aria-invalid="true"] { border:2px solid #c33!important; }
#avatarPreview { overflow:hidden; border-radius:50%; }
#avatarPreview img.sr-r2-preview {
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  display:block;
}
.photo-grid label { position:relative; overflow:hidden; }
.photo-grid label img.sr-r2-preview {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:1;
  pointer-events:none;
}
.photo-grid label.sr-vessel-has-preview::after {
  content:"Change Photo";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  background:rgba(3,38,65,.8);
  color:white;
  text-align:center;
  padding:8px;
  font-size:12px;
  z-index:2;
  pointer-events:none;
}
/* SAILS RIDES R15 — Single inline signup error and bounded document previews */
.sr-r15-duplicate-actions[hidden],.sr-r15-expiry-alert[hidden],.sr-r15-document-preview[hidden]{display:none!important}
.sr-r15-duplicate-actions{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 14px;}
.sr-r15-duplicate-actions button{flex:1 1 115px;min-height:40px;border:1px solid #1a65bd;border-radius:9px;padding:10px;background:#f5f9ff;color:#123d75;font-weight:800;cursor:pointer}
.sr-r15-duplicate-actions button:focus-visible{outline:3px solid #77b8fa;outline-offset:2px}
#signupError[hidden]{display:none!important}
.sr-r15-expiry-alert{margin:3px 0 12px;padding:12px 13px;border-radius:10px;font-size:13px;font-weight:700;line-height:1.5}
.sr-r15-expiry-expired{border:1px solid #d75454;background:#fff0f0;color:#922727}
.sr-r15-expiry-soon{border:1px solid #d5aa4d;background:#fff8e6;color:#795212}
.document-grid label{min-width:0;overflow:hidden}
.document-grid .sr-r15-document-preview{box-sizing:border-box;display:flex;align-items:center;justify-content:center;max-height:155px;min-height:44px;max-width:100%;overflow:hidden;margin:9px 0;border:1px solid #d4e6f3;border-radius:9px;background:#f7fbff;padding:5px;font-size:12px;color:#365d84;text-align:center}
.document-grid .sr-r15-document-preview img.sr-r2-preview,.document-grid label>img.sr-r2-preview{display:block;max-width:100%;width:auto;height:auto;max-height:143px;object-fit:contain;margin:0 auto}
.sr-r15-account-options{margin-top:18px;border:1px solid #d4e3f4;border-radius:10px;padding:12px;color:#315786;font-size:13px}
.sr-r15-account-options summary{cursor:pointer;font-weight:700}
.sr-r15-account-options button{margin-top:12px;background:white;color:#17477c;border:1px solid #b7cbdc;padding:9px 12px;border-radius:8px;cursor:pointer}

/* R16 — Honest indeterminate progress for uploads / registration requests */
.sr-r16-activity[hidden]{display:none!important}
.sr-r16-activity{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1500;
 display:flex;align-items:center;justify-content:center;gap:12px;max-width:min(92vw,560px);
 padding:14px 18px;border:1px solid #82b2e1;border-radius:13px;background:#ffffff;
 box-shadow:0 8px 28px #0a2f5e37;color:#093e75;font-weight:700;text-align:center}
.sr-r16-spinner{display:inline-block;width:23px;height:23px;border:3px solid #c5dbed;
 border-top-color:#0667af;border-radius:50%;flex:0 0 auto;animation:srR16Turn .85s linear infinite}
@keyframes srR16Turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.sr-r16-spinner{animation-duration:1.8s}}
.entry-screen button.sr-r16-pending{opacity:.77;cursor:progress!important}
.entry-screen button.sr-r16-pending::after{content:' ◌';font-weight:bold}
.sr-r16-thanks{max-width:760px;margin:0 auto;text-align:center;padding:30px 22px}
.sr-r16-thanks .review-status{text-align:left}
.sr-r16-portal-link{display:inline-flex;align-items:center;justify-content:center;
 max-width:100%;text-decoration:none!important;padding:14px 22px;margin:14px auto;
 white-space:normal;box-sizing:border-box}
.sr-r16-reference{overflow-wrap:anywhere;font-size:.85em}
