/* Synced Lines: landing screen + "Why I fish" entry. Brand navy = logo colour #1B2A4A (marketing reference v2, 11.2). */
:root{--navy:#1b2a4a}
.a-btn:not(.a-btn-alt):not(.a-btn-danger),.j-btn,.w-pt[aria-pressed="true"],.m-tab[aria-pressed="true"]{background:var(--navy);border-color:var(--navy)}
.a-btn-alt{color:var(--navy);border-color:var(--navy)}
.tabs a[aria-current="page"]{color:var(--navy);box-shadow:inset 0 2px 0 var(--navy)}
h1{color:var(--navy)}
.brand{display:inline-flex;align-items:center;gap:8px;color:var(--navy)}
.brand-mark{height:22px;width:auto;display:block}
body.is-welcome{padding-bottom:env(safe-area-inset-bottom)}
body.is-welcome .tabs{display:none}body.is-welcome .top .brand{visibility:hidden}   /* v25 #21: the header (Join banner + menu) now shows on the welcome page too */
.lp{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:12px;max-width:420px;margin:0 auto;padding:24px 8px}
.lp-logo{width:200px;max-width:60%;height:auto;display:block;margin:0 auto 4px}
.lp-name{text-align:center;font-weight:600;font-size:1.05rem;letter-spacing:.01em;color:var(--navy);margin:0}
.lp-head{font-size:2rem;line-height:1.15;font-weight:700;letter-spacing:-.02em;text-align:center;color:var(--navy);margin:16px 0 0}
.lp-brief{text-align:center;color:var(--muted);font-size:1.05rem;margin:0 0 12px}
.lp .a-btn{margin-top:0;min-height:52px;border-radius:14px}
.lp-note{text-align:center;color:var(--muted);font-size:.85rem;margin:8px 0 0}
.lp-note a{color:var(--navy);font-weight:600}
.wf{display:flex;flex-direction:column;gap:12px;padding-top:4px}
.wf textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:14px;resize:none;min-height:140px;-webkit-appearance:none;appearance:none}
.wf textarea:focus{outline:none;border-color:var(--navy)}
.wf-sub{margin:0;color:var(--muted)}
.wf-count{margin:0;text-align:right;color:var(--muted);font-size:.8rem}
.wf .a-btn{margin-top:0;min-height:52px;border-radius:14px}
.wf-done{background:var(--soft);border-radius:14px;padding:16px}
.wf-done p{margin:0 0 8px}
.wf-quote{font-size:1.1rem;font-weight:600;color:var(--navy);overflow-wrap:anywhere}
.sk{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.sk i{display:block;height:84px;border-radius:14px;background:var(--soft);animation:sk 1.4s ease-in-out infinite}
@keyframes sk{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.sk i{animation:none}}
.w-sam a{color:var(--navy);font-weight:600}
.lp-tag{text-align:center;color:var(--muted);font-size:.95rem;margin:-8px 0 0}
.lp-next{margin:0 0 8px;padding:10px 12px;background:var(--soft);border-radius:12px;color:var(--muted);font-size:.9rem;text-align:center}
.lp-next strong{color:var(--navy)}
.lp-head{font-size:1.6rem}
/* iOS-style sliders (session weight) */
.l-weightwrap{display:flex;flex-direction:column;gap:14px}
.l-slide-val{margin:0;text-align:center;font-size:1.6rem;font-weight:700;letter-spacing:-.01em;color:var(--navy)}
.l-slide{display:flex;align-items:center;gap:12px}
.l-slide span{width:2em;color:var(--muted);font-weight:600}
.l-range{-webkit-appearance:none;appearance:none;flex:1;height:32px;background:transparent;margin:0}
.l-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--line)}
.l-range::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}
.l-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:28px;height:28px;margin-top:-12px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px rgba(27,42,74,.25)}
.l-range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px rgba(27,42,74,.25)}
.l-range:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:6px}
.m-dot{cursor:pointer;transition:r .12s}
.leaflet-popup-content-wrapper{border-radius:14px}
.m-pop .m-open{display:inline-block;margin-top:4px;padding:8px 12px;background:var(--navy);color:#fff;border-radius:10px;text-decoration:none;text-align:center}

/* Floating Log a session button (all pages) */
.fab{position:fixed;right:16px;bottom:calc(64px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--navy);color:transparent;font-size:0;line-height:1;text-align:center;text-decoration:none;font-weight:400;border:1px solid var(--navy);z-index:20;box-sizing:border-box;overflow:hidden}
/* v82 Bug 28: the plus is drawn with two bars so font metrics (iPhone vs Android) cannot push it off centre */
.fab::before,.fab::after{content:"";position:absolute;left:50%;top:50%;background:#fff;border-radius:2px;transform:translate(-50%,-50%)}
.fab::before{width:22px;height:3px}.fab::after{width:3px;height:22px}
.fab[hidden]{display:none}
.fab:active{opacity:.85}

/* M-1 landing hierarchy (10 Oct brief): Join the waitlist is the only solid button */
.lp{gap:8px;padding:16px 8px;justify-content:flex-start;padding-top:max(16px,4vh)}
.lp-logo{width:150px;margin:0 auto}
.lp-head{font-size:1.45rem;margin:8px 0 0}
.lp-brief{margin:0}
.lp-made{text-align:center;color:var(--muted);font-size:.8rem;margin:0 0 4px}
.lp .a-link{min-height:44px;display:flex;align-items:center;justify-content:center}
.lp .lp-muted{font-size:.9rem}
.lp-note{font-size:.8rem}
.lp-note a{font-weight:400;color:var(--muted);text-decoration:underline}

.lp-end{margin:16px 0 8px;text-align:center}.lp-end p{color:var(--muted);margin:0 0 12px}.lp-end .a-btn{display:block;min-height:52px;border-radius:14px;line-height:52px;text-decoration:none;color:#fff;padding:0 16px}

/* v9 (13 Oct): marketing gate 14 landing tidy-up (copy unchanged), tap targets 44px, hide Netlify badge */
#nl-badge-frame,iframe[src*="/.netlify/scripts/hud"]{display:none!important}
.lp-beta{text-align:center;color:var(--muted);font-size:.8rem;margin:0}
.lp-more{margin-top:24px;padding-top:24px;border-top:1px solid #E3E7EC;display:flex;flex-direction:column;gap:8px}
.lp-more .lp-next{margin:0;font-size:.8rem;background:none;padding:0}
.lp-note a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
.j-report{min-height:44px;min-width:44px;padding:0 8px}
.v-az{display:inline-flex;align-items:center;min-height:44px}
.m-tab{min-height:44px}
.h-link{display:inline-flex;align-items:center;min-height:44px}
.f-signin a{display:inline-flex;align-items:center;min-height:44px}
.w-sam a{display:inline-flex;align-items:center;min-height:44px}

/* v14 tap targets + map note clear of the + button (QA run 26) */
.f-meta a{padding:12px 0}
.vc-back,.vc-full{display:inline-flex;align-items:center;min-height:44px}
.m-open{display:inline-flex;align-items:center;min-height:44px}
.leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;font:24px/44px Tahoma,Verdana,sans-serif}
#m-count{padding-right:76px;margin-bottom:72px}

/* v15 gate 19: logged-out Feed: Log button becomes the outline secondary; waitlist button is the primary */
.l-cta.l-cta-quiet{background:#fff;color:#1B2A4A;border:1.5px solid #1B2A4A;font-weight:600}
#f-join{margin:4px 0 6px;min-height:52px;display:flex;align-items:center;justify-content:center}
.f-intro{margin-bottom:8px}

.lp-fa{text-align:center;color:var(--muted);font-size:.8125rem;margin:8px 0 0}
.lp-twins{margin:0 0 12px}
.wf-us{margin:0 0 8px;color:var(--ink,#0F1B2D);font-size:1rem;line-height:1.4}

.lp-bbc{display:block;text-align:center;background:#eef2f8;color:var(--navy);border:1px solid var(--navy);border-radius:12px;padding:12px 14px;min-height:44px;font-weight:600;font-size:.95rem;text-decoration:none}

/* v25 header: Join banner + hamburger */
.top{justify-content:space-between}.top-right{display:flex;align-items:center;gap:8px}
.top-join{background:#1B2A4A;color:#fff;font-weight:700;font-size:.8rem;padding:7px 12px;border-radius:999px;text-decoration:none;white-space:nowrap}
.top-join[hidden]{display:none}
.top-menu{font:inherit;font-size:1.4rem;line-height:1;background:none;border:0;color:#1B2A4A;min-width:44px;min-height:44px;cursor:pointer}
.top-panel{position:fixed;top:calc(52px + env(safe-area-inset-top));right:8px;left:auto;width:min(280px,calc(100vw - 16px));max-height:calc(100vh - 120px);overflow:auto;background:var(--card,#fff);border:1px solid var(--line,#ddd);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.2);padding:6px 0;z-index:150}
.top-panel[hidden]{display:none}.top-panel a{display:block;padding:12px 16px;color:#1B2A4A;text-decoration:none;min-height:44px;box-sizing:border-box}
.top-h{margin:6px 16px 2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#667)}
.top-sel{display:block;width:calc(100% - 32px);margin:6px 16px;min-height:44px;font:inherit;border:1px solid var(--line,#ddd);border-radius:10px;background:var(--card,#fff);color:#1B2A4A;padding:0 8px}

/* v31: image-free map pin (leaflet marker images are not shipped) */
.m-pin{background:none;border:0}.m-pin span{display:block;width:22px;height:22px;margin:2px 2px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#c8321e;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.4)}
/* v38 (gate 23 #1): full-width Join the waitlist button on the welcome screen; gone once signed in */
body:not(.is-out) #lp-join{display:none}

/* v43 (gate 25 #1): inline email capture on the welcome screen; gone once signed in */
.lp .lp-form{display:block;margin:8px 0 0}
.lp .lp-email{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:1.1rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;min-height:52px;padding:0 14px;-webkit-appearance:none;appearance:none}
.lp .lp-email:focus{outline:none;border-color:var(--ink)}
.lp .lp-form .a-btn{min-height:52px;border-radius:14px;margin-top:8px}
.lp .lp-consent{color:var(--muted);font-size:.78rem;line-height:1.35;margin:8px 0 0;text-align:center}
.lp .lp-consent a{color:var(--navy);text-decoration:underline;display:inline-flex;align-items:center;min-height:44px}
.lp .lp-joined-h{font-weight:700;font-size:1.1rem;text-align:center;margin:8px 0 0;color:var(--ink)}
body:not(.is-out) #lp-join{display:none}

.lp-quote{margin:0 0 10px;color:var(--ink);font-size:.95rem;line-height:1.4;text-align:center;font-style:italic}.lp-quote-by{display:block;margin-top:4px;color:var(--muted);font-size:.8rem;font-style:normal}
.lp-sam{margin:0 0 10px;color:var(--muted);font-size:.8rem;text-align:center}.lp-sam a{color:inherit;text-decoration:underline}

.top-join{min-height:44px;display:inline-flex;align-items:center}
.top .brand{min-height:44px}
/* v90 item 29: "+ Start session" pill for new users */
.fab.fab-pill{width:auto;min-width:56px;height:56px;padding:0 20px 0 52px;border-radius:28px;color:#fff;font-size:.95rem;font-weight:700;line-height:56px;white-space:nowrap}
.fab.fab-pill::before{left:28px}.fab.fab-pill::after{left:28px}
body{padding-bottom:max(0px,env(safe-area-inset-bottom))}
#view{padding-bottom:140px}

/* v93: Chats button in the header */
.top-chat{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:#1B2A4A;text-decoration:none;border-radius:999px}
.top-chat[hidden]{display:none}
.top-chat.is-on{background:#E4E9F2}
.top-chat-dot{position:absolute;top:9px;right:8px;width:11px;height:11px;border-radius:50%;background:#C62828;border:2px solid #fff;box-sizing:border-box}
.top-chat-dot[hidden]{display:none}

/* v94 (Tom 31 Oct): notifications bell */
.top-bell-n{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#C62828;color:#fff;border:2px solid #fff;box-sizing:border-box;font-size:.62rem;font-weight:800;line-height:14px;text-align:center}
.top-bell-n[hidden]{display:none}
.nt-list{list-style:none;margin:0;padding:0}
.nt-row{display:flex;gap:10px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--card-line,#d5dbe3)}
.nt-row.is-new{background:#EEF3FB;border-radius:10px;padding-left:10px;padding-right:10px}
.nt-ico{font-size:1.3rem;line-height:1.2}
.nt-body{flex:1 1 auto;min-width:0}
.nt-txt{display:block;color:var(--navy,#1B2A4A);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.nt-when{display:block;font-style:normal;font-size:.8rem;color:var(--muted,#5a6676);margin-top:2px}
.nt-act{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
