:root{
  --ink:#0b211a;
  --ink-2:#1d3a31;
  --muted:#66766f;
  --muted-2:#8b9993;
  --bg:#f4f6f2;
  --card:#ffffff;
  --line:#dce5df;
  --line-strong:#cbd8d0;
  --brand:#123f31;
  --brand-deep:#092b22;
  --brand-2:#28765c;
  --brand-3:#3d9474;
  --accent:#d7ef8d;
  --accent-2:#bfe65f;
  --warm:#efbd61;
  --danger:#b85c4a;
  --shadow-sm:0 8px 24px rgba(14,45,35,.07);
  --shadow:0 24px 70px rgba(13,48,37,.12);
  --shadow-lg:0 30px 100px rgba(8,37,28,.17);
  --radius:28px;
  --radius-sm:18px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:
  radial-gradient(circle at 8% 4%,rgba(215,239,141,.16),transparent 26rem),
  radial-gradient(circle at 95% 17%,rgba(40,118,92,.08),transparent 30rem),
  var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}

/* Header */
.site-header{position:sticky;top:0;z-index:30;background:rgba(244,246,242,.82);backdrop-filter:blur(22px) saturate(1.25);border-bottom:1px solid rgba(11,33,26,.07)}
.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-weight:950;letter-spacing:-.045em;font-size:1.35rem}
.brand-mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;overflow:hidden;background:var(--brand);box-shadow:0 7px 18px rgba(18,63,49,.18)}
.brand-mark img{display:block;width:100%;height:100%}
.nav-actions{display:flex;align-items:center;gap:9px}
.btn,.icon-btn{appearance:none;border:0;border-radius:14px;padding:11px 16px;font-weight:850;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.btn:hover,.icon-btn:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px var(--line-strong),0 8px 18px rgba(11,33,26,.08)}
.btn:active,.icon-btn:active{transform:translateY(0)}
.btn.primary{background:var(--brand);color:#fff;box-shadow:0 8px 24px rgba(18,63,49,.18)}
.btn.primary:hover{background:#174e3c;box-shadow:0 12px 28px rgba(18,63,49,.24)}
.btn.soft{background:#eaf0ec}
.pro-badge{appearance:none;border:0;border-radius:999px;padding:9px 13px;background:#e4eadf;color:#31483d;font-weight:950;font-size:.76rem;letter-spacing:.08em;box-shadow:inset 0 0 0 1px rgba(49,72,61,.07)}
.pro-badge.active{background:var(--accent);color:#203616}

/* Hero */
.hero{position:relative;isolation:isolate;overflow:hidden;padding:76px 0 54px}
.hero:before{content:"";position:absolute;z-index:-2;inset:-50px 0 0;background:
  radial-gradient(ellipse at 78% 30%,rgba(40,118,92,.12),transparent 33%),
  radial-gradient(ellipse at 14% 65%,rgba(215,239,141,.17),transparent 30%)}
.hero:after{content:"";position:absolute;z-index:-1;width:680px;height:410px;right:-130px;top:18px;border-radius:50%;opacity:.14;background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 17px,rgba(18,63,49,.55) 18px 19px,transparent 20px 28px);transform:rotate(-7deg)}
.hero-grid{display:block;max-width:1000px;margin:auto}
.hero-copy{max-width:960px}
.hero-kicker-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.eyebrow{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:#e3ebe5;color:#315246;font-size:.76rem;font-weight:950;letter-spacing:.095em;text-transform:uppercase}
.live-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(18,63,49,.12);border-radius:999px;background:rgba(255,255,255,.72);color:#52655d;font-size:.78rem;font-weight:760}
.live-dot{width:7px;height:7px;border-radius:50%;background:#5da777;box-shadow:0 0 0 4px rgba(93,167,119,.13)}
.hero h1{font-size:clamp(3.55rem,7.5vw,6.8rem);line-height:.87;letter-spacing:-.082em;margin:22px 0 22px;max-width:1000px;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--brand-2);position:relative}
.hero h1 em:after{content:"";position:absolute;left:.03em;right:.02em;bottom:-.04em;height:.08em;border-radius:999px;background:var(--accent);opacity:.9;transform:rotate(-1.5deg)}
.lead{font-size:clamp(1.12rem,2vw,1.38rem);line-height:1.55;color:#50645b;max-width:820px;margin:0}
.search-card{margin-top:32px;max-width:940px;padding:12px;border-radius:24px;background:rgba(255,255,255,.82);border:1px solid rgba(18,63,49,.10);box-shadow:var(--shadow);backdrop-filter:blur(12px)}
.search-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 7px 8px;color:#53675e;font-size:.82rem;font-weight:780}
.search-label strong{color:var(--ink);font-size:.92rem}
.search-shell{background:white;border:1px solid var(--line);padding:8px;border-radius:17px;display:flex;gap:8px;position:relative;max-width:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.search-shell:focus-within{border-color:#9ebcaf;box-shadow:0 0 0 4px rgba(40,118,92,.08)}
.search-shell input{flex:1;min-width:0;border:0;padding:14px 16px;outline:0;font-size:1.04rem;background:transparent;color:var(--ink)}
.search-shell input::placeholder{color:#8a9992}
.search-results{position:absolute;left:0;right:0;top:calc(100% + 10px);background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:14}
.search-results button{display:flex;width:100%;border:0;background:white;padding:14px 17px;text-align:left;flex-direction:column;border-bottom:1px solid #edf2ee;transition:background .16s ease}
.search-results button:hover,.search-results button:focus{background:#f4f8f5;outline:0}
.search-results button strong{font-size:.98rem}
.search-results span,.no-result{font-size:.84rem;color:var(--muted)}
.status{margin:8px 8px 3px;color:var(--muted);font-size:.86rem}
.status.ok{color:#286345}.status.error{color:#9f352f}
.hero-proof{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}
.proof-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.56);border:1px solid rgba(18,63,49,.08);color:#5a6d64;font-size:.79rem;font-weight:740}
.proof-chip b{color:var(--brand-2);font-size:.72rem}

/* Dashboard framing */
.dashboard{padding:18px 0 78px}
.dashboard-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}
.dashboard-intro h2{margin:8px 0 0;font-size:clamp(2rem,4vw,3.1rem);line-height:1;letter-spacing:-.06em}
.dashboard-sync{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.85rem;margin-bottom:4px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(300px,.66fr);gap:22px}
.panel{background:rgba(255,255,255,.94);border:1px solid rgba(27,64,51,.10);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.panel.pad{padding:24px}
.brief-panel{position:relative;isolation:isolate}
.brief-panel:before{content:"";position:absolute;z-index:-1;right:-100px;top:-110px;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(215,239,141,.18),transparent 66%)}
.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:27px 28px 20px;border-bottom:0}
.result-head h2{margin:5px 0 0;font-size:clamp(1.8rem,3vw,2.45rem);line-height:1;letter-spacing:-.055em}
.result-head p{margin:7px 0 0;color:var(--muted);font-size:.92rem}
.result-kicker{display:flex;align-items:center;gap:8px;color:#557067;font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.result-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 4px rgba(191,230,95,.15)}
.score-orb{--score:0;--score-color:#bfe65f;position:relative;flex:0 0 auto;width:132px;height:132px;border-radius:50%;padding:8px;background:conic-gradient(var(--score-color) calc(var(--score)*1%),#e8eee9 0);display:grid;place-items:center;box-shadow:0 10px 30px rgba(18,63,49,.12)}
.score-orb:before{content:"";position:absolute;inset:8px;border-radius:50%;background:linear-gradient(145deg,#123f31,#0d3228);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.score-orb>div{position:relative;z-index:1;color:#fff;text-align:center}
.score-orb strong{display:block;font-size:2.75rem;line-height:.9;letter-spacing:-.055em}
.score-orb span{display:block;margin-top:6px;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#eaf3ee}
.score-orb[data-tone="tough"]{--score-color:#d88774}.score-orb[data-tone="fair"]{--score-color:#e4c06d}.score-orb[data-tone="good"]{--score-color:#bed672}.score-orb[data-tone="very-good"],.score-orb[data-tone="excellent"]{--score-color:#bfe65f}
.verdict{margin:3px 28px 0;font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.28;font-weight:900;letter-spacing:-.025em;max-width:760px}
.recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:22px 28px 18px}
.recommendation{position:relative;min-height:104px;padding:18px 18px 16px 56px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(180deg,#fff,#fafcfb);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.recommendation:hover{transform:translateY(-2px);border-color:#c9d9d0;box-shadow:0 10px 22px rgba(14,45,35,.06)}
.recommendation:before{position:absolute;left:16px;top:17px;width:30px;height:30px;border-radius:10px;background:#e7eee9;color:var(--brand);display:grid;place-items:center;font-weight:950;font-size:.92rem}
.rec-depth:before{content:"↕"}.rec-method:before{content:"≈"}.rec-retrieve:before{content:"↻"}.rec-confidence:before{content:"◎"}.rec-time:before{content:"◷"}.rec-place:before{content:"⌖"}
.recommendation span{display:block;color:#74837c;font-size:.69rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.recommendation strong{display:block;margin-top:6px;font-size:1.04rem;line-height:1.35}
.recommendation small{display:block;margin-top:5px;color:var(--muted);font-size:.7rem;font-weight:650;line-height:1.35}
.recommendation.wide{grid-column:1/-1;min-height:92px}
.reasons{margin:4px 28px 22px;padding:17px 20px 17px 39px;background:#edf4ef;border:1px solid #e2ece5;border-radius:18px;color:#345246}
.reasons li+li{margin-top:6px}
.condition-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;padding:0 28px 28px}
.condition{padding:12px 10px;border:1px solid var(--line);border-radius:14px;background:#fbfcfb;min-width:0}
.condition span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:820}
.condition strong{display:block;margin-top:3px;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Sidebar */
.sidebar-stack{display:grid;gap:18px;align-content:start}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.section-title h3{margin:0;font-size:1.28rem;letter-spacing:-.035em}
.section-title span{font-size:.8rem;color:var(--muted)}
.saved-water{width:100%;padding:14px 0;border:0;border-top:1px solid var(--line);background:transparent;text-align:left}
.saved-water span{display:block;font-weight:850}.saved-water small{color:var(--muted)}
.muted{color:var(--muted)}
.pro-card{position:relative;isolation:isolate;background:linear-gradient(145deg,#0e3429,#174f3c 72%);color:white;box-shadow:0 22px 50px rgba(15,55,43,.18);border:0}
.pro-card:before{content:"";position:absolute;z-index:-1;inset:0;opacity:.17;background:repeating-radial-gradient(ellipse at 92% 6%,transparent 0 13px,rgba(255,255,255,.52) 14px 15px,transparent 16px 24px)}
.pro-card .eyebrow{background:rgba(255,255,255,.12);color:#eaf3ee}
.pro-card h3{margin:15px 0 8px;font-size:1.7rem;line-height:1;letter-spacing:-.045em}
.pro-card p{color:#d4e4dc;margin:0 0 18px}
.pro-list{padding-left:19px;margin:0 0 20px;color:#e9f2ed;font-size:.9rem}
.pro-list li+li{margin-top:7px}
.pro-card .btn:not(.soft){background:var(--accent);color:#18351f;box-shadow:none}
.pro-card .btn.soft{background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);color:white;margin-top:8px}

/* Shared section spacing */
.dashboard>.wrap+ .wrap{margin-top:22px!important}
.map-head,.opportunity-panel .section-title,.catch-log-panel .section-title{padding-top:0}

/* Fishing map */
.fishing-map-panel{overflow:hidden}
.map-head{padding:27px 28px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}
.map-head h3{font-size:1.75rem;letter-spacing:-.048em;margin:9px 0 4px}
.map-head p{margin:0;color:var(--muted);max-width:760px}
.map-tier{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#e7eee8;color:#315244;font-weight:950;font-size:.72rem;letter-spacing:.065em}
.map-tier.pro{background:var(--accent)}
.map-layout{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(280px,.58fr);min-height:520px}
.map-wrap{position:relative;min-height:520px;background:#dfe9e2;overflow:hidden}
.fishing-map{position:absolute;inset:0;z-index:1;overflow:hidden;background:#dfe9e2;touch-action:none;cursor:grab;user-select:none}
.fishing-map.dragging{cursor:grabbing}
.map-loading{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:linear-gradient(135deg,#edf2ee,#e3ebe6);color:var(--muted);font-weight:850;text-align:center;padding:24px}
.map-loading[hidden]{display:none}
.ts-map-tiles{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#dbe6df,#e7eee9)}
.ts-map-tile{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none;filter:saturate(.82) contrast(.96)}
.ts-map-shoreline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.ts-map-shoreline polyline{fill:none;stroke:#0b5f47;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke;filter:drop-shadow(0 1px 1px rgba(255,255,255,.9))}
.ts-map-pins{position:absolute;inset:0;pointer-events:none}
.ts-map-pin{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border:3px solid white;border-radius:50%;background:#547067;color:white;box-shadow:0 6px 18px rgba(16,39,31,.30);display:grid;place-items:center;font-weight:950;z-index:4;pointer-events:auto;padding:0;transition:transform .16s ease}
.ts-map-pin:hover{transform:translate(-50%,-50%) scale(1.08)}
.ts-map-pin.primary{width:50px;height:50px;background:var(--brand);box-shadow:0 0 0 6px rgba(215,239,141,.86),0 8px 22px rgba(16,39,31,.36);z-index:5}
.ts-map-pin span{line-height:1}
.ts-map-controls{position:absolute;left:14px;top:14px;z-index:5;display:grid;border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(16,39,31,.18)}
.ts-map-controls button{width:44px;height:44px;border:0;border-bottom:1px solid #d9e2dc;background:rgba(255,255,255,.96);color:var(--ink);font-size:1.35rem;font-weight:850;padding:0}
.ts-map-controls button:last-child{border-bottom:0;font-size:1.05rem}
.ts-map-controls button:hover{background:#f2f6f3}
.ts-map-attribution{position:absolute;right:0;bottom:0;z-index:5;background:rgba(255,255,255,.88);padding:3px 6px;font-size:10px;color:#385047}
.ts-map-attribution a{color:inherit}
.ts-map-popover{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:7;width:min(380px,calc(100% - 38px));padding:14px 16px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 45px rgba(16,39,31,.24);backdrop-filter:blur(8px);pointer-events:none}
.ts-map-popover strong,.ts-map-popover span,.ts-map-popover small{display:block}.ts-map-popover span{margin-top:3px;color:var(--muted);font-size:.86rem}.ts-map-popover small{margin-top:6px;color:#486057;font-weight:800}
.spot-list{padding:20px 22px 10px}
.spot-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;padding:15px 0;border-bottom:1px solid var(--line);text-align:left}
.spot-rank{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:950}
.spot-card:first-child .spot-rank{background:var(--brand);box-shadow:0 0 0 4px var(--accent)}
.spot-card h4{margin:0 0 2px;font-size:1rem}.spot-card p{margin:0;color:var(--muted);font-size:.86rem}.spot-card small{display:block;margin-top:5px;color:#5d6f67;font-weight:700}
.spots-lock{margin:8px 20px 20px;padding:17px;border-radius:18px;background:#0e3329;color:white;display:grid;gap:12px}
.spots-lock p{margin:4px 0 0;color:#d5e3dc;font-size:.86rem}.spots-lock .btn{width:100%;background:var(--accent);color:#1c381e;box-shadow:none}
.map-note{margin:0;padding:14px 24px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem;background:#fbfcfb}.map-note strong{color:var(--ink)}
.search-shell #search-go:disabled{opacity:.65;cursor:wait}

/* Opportunity graph */
.opportunity-panel{overflow:hidden}
.opportunity-panel .section-title{align-items:flex-start}
.opportunity-panel .section-title h3{margin-top:7px;font-size:1.6rem}
.opportunity-headline{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:2px 0 12px}
.opportunity-headline>div:first-child span{display:block;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.opportunity-headline strong{display:block;font-size:1.4rem;margin-top:4px;letter-spacing:-.025em}
.opportunity-scale{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.74rem}.opportunity-scale i{display:block;width:128px;height:7px;border-radius:999px;background:linear-gradient(90deg,#e6d5c3,#e6edcf,#d8ef96,#7fbe84)}
.opportunity-graph{width:100%;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fbfdfb,#f5f8f5);overflow:hidden}
.opportunity-svg{display:block;width:100%;height:auto;min-height:250px}.opp-grid-line{stroke:#dfe7e1;stroke-width:1}.opp-axis-label,.opp-time-label{fill:#718078;font-size:12px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.opp-best-band{fill:#d8ef96;opacity:.22}.opp-line{fill:none;stroke:var(--brand-2);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 3px rgba(23,79,60,.10))}.opp-point{fill:#fff;stroke:var(--brand);stroke-width:3;cursor:pointer;outline:none}.opp-point:hover,.opp-point:focus,.opp-point.selected{fill:var(--accent);stroke-width:4}.opp-point.best{fill:var(--accent);pointer-events:none}.opp-best-label{fill:var(--brand);font-size:11px;font-weight:950;font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em}
.opportunity-svg.free{min-height:0;aspect-ratio:860/190}.opp-grid-line.free{stroke-dasharray:5 10;opacity:.35}.opp-line.free{stroke-width:7;opacity:.72;filter:none}.opp-time-label.free{font-size:13px;font-weight:850;fill:#52675e}.opp-free-peak{fill:var(--accent);stroke:white;stroke-width:5}
.opportunity-detail{margin-top:12px;border:1px solid var(--line);border-radius:17px;background:#f4f7f4;padding:15px}.opp-detail-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.opp-detail-main span{font-weight:900;color:var(--brand-2)}.opp-detail-main strong{font-size:1.08rem}.opp-detail-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:11px}.opp-detail-grid span{padding:9px 10px;background:white;border:1px solid var(--line);border-radius:12px;font-size:.82rem}.opp-detail-grid b{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.opportunity-detail p{margin:11px 0 0;color:#42584e;font-size:.88rem}.opp-free-summary{display:flex;justify-content:space-between;gap:18px;align-items:center}.opp-free-summary span{color:var(--muted);font-size:.87rem;max-width:720px}.opp-free-summary strong{white-space:nowrap}.opportunity-lock{margin-top:12px;padding:17px 18px;background:linear-gradient(145deg,#0f352b,#174f3c);color:white;border-radius:18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.opportunity-lock p{margin:4px 0 0;color:#d5e3dc;font-size:.86rem;max-width:760px}.opportunity-lock .btn{white-space:nowrap;background:var(--accent);color:#1d381f;box-shadow:none}.opportunity-note{margin:12px 2px 0;color:var(--muted);font-size:.77rem}

/* Hourly + 10 day */
.hour-row{display:grid;grid-template-columns:80px 1fr 48px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.hour-row>div:first-child span{display:block;color:var(--muted);font-size:.78rem}.hour-weather{display:flex;gap:18px;color:var(--muted);font-size:.88rem}.mini-score{width:42px;height:42px;border-radius:13px;background:#e7eee8;display:grid;place-items:center;font-weight:950}.mini-score[data-tone="excellent"],.mini-score[data-tone="very-good"]{background:#dcefa7}.mini-score[data-tone="good"]{background:#e8efcf}.mini-score[data-tone="fair"]{background:#f4e6bd}.mini-score[data-tone="tough"]{background:#f0d3cc}.lock-panel{margin-top:14px;padding:17px;border-radius:17px;background:#0e3329;color:white;display:flex;align-items:center;justify-content:space-between;gap:12px}.lock-panel p{margin:0;color:#d9e7df;font-size:.88rem}.days-list{display:grid;gap:9px}.day-card{padding:14px 15px;border:1px solid var(--line);border-radius:15px;display:grid;grid-template-columns:1fr auto;gap:3px 12px;background:#fff}.day-card small{grid-column:1/-1;color:var(--muted)}.day-card.locked{background:#f4f6f3;color:#809087}
.hour-row.pro-detail{grid-template-columns:minmax(90px,.7fr) minmax(150px,1fr) auto;align-items:start;row-gap:10px}.hour-advice{grid-column:1/-1;display:grid;grid-template-columns:.65fr 1.4fr 1.2fr;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.hour-advice span{min-width:0;color:#42584e;font-size:.82rem}.hour-advice b{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}

/* Catch log */
.catch-log-panel .section-title h3{margin-top:7px;font-size:1.6rem}.catch-log-locked{padding:19px;border-radius:19px;background:linear-gradient(145deg,#0e3329,#174f3c);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.catch-log-locked p{margin:5px 0 0;color:#d5e3dc;max-width:780px}.catch-log-locked .btn{white-space:nowrap;background:var(--accent);color:#1d381f;box-shadow:none}.catch-form{margin-top:8px;padding:19px;border:1px solid var(--line);border-radius:19px;background:#f6f8f6}.catch-form-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.catch-form label{display:grid;gap:6px;min-width:0}.catch-form label>span{font-size:.72rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}.catch-form input,.catch-form select,.catch-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:11px 12px;min-height:44px;outline:none}.catch-form input:focus,.catch-form select:focus,.catch-form textarea:focus{border-color:#7aa692;box-shadow:0 0 0 3px rgba(23,79,60,.10)}.catch-form input[readonly]{background:#edf2ee;color:#52675e}.catch-notes{margin-top:12px}.catch-form textarea{resize:vertical;min-height:92px}.catch-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.catch-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.catch-history-head h4{margin:0;font-size:1.05rem}.catch-list{display:grid;gap:10px}.catch-entry{border:1px solid var(--line);border-radius:16px;padding:14px 15px;background:#fff}.catch-entry-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.catch-entry-head strong,.catch-entry-head span{display:block}.catch-entry-head span{margin-top:2px;color:var(--muted);font-size:.82rem}.catch-entry p{margin:7px 0 0;color:#42584e;font-size:.88rem}.catch-entry-notes{padding-top:8px;border-top:1px solid var(--line)}.catch-delete{border:0;background:#edf2ee;color:#42584e;width:34px;height:34px;border-radius:10px;font-size:1.2rem;line-height:1}.catch-sep{padding:0 5px;color:#98a59f}

/* Explanation + SEO */
.explain{padding:82px 0 76px;border-top:1px solid rgba(11,33,26,.06)}
.explain h2,.seo-section h2{font-size:clamp(2.25rem,4vw,3.9rem);letter-spacing:-.064em;line-height:.98;margin:14px 0 16px;text-wrap:balance}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.step{position:relative;padding:25px;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:22px;overflow:hidden}.step:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-50px;top:-45px;background:rgba(215,239,141,.20)}.step b{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:12px;background:var(--brand);color:white;margin-bottom:34px}.step h3{margin:0 0 7px;font-size:1.15rem}.step p{margin:0;color:var(--muted)}
.seo-section{padding:68px 0;border-top:1px solid var(--line);background:rgba(255,255,255,.38)}.seo-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}.seo-grid p{color:#52645c;font-size:1.02rem;line-height:1.7}

/* Footer */
.site-footer{padding:48px 0 58px;background:#0b2b22;color:#edf4f0;border-top:0;font-size:.9rem}.footer-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{color:#d2e0d8}.site-footer .muted{color:#9fb4aa}.disclaimer{max-width:820px;color:#9fb4aa;margin-top:20px;font-size:.8rem}.disclaimer a{color:#d8e5df}

/* Modal */
.modal{border:0;border-radius:28px;padding:0;max-width:680px;width:calc(100% - 28px);box-shadow:0 34px 100px rgba(0,0,0,.34);overflow:hidden}.modal::backdrop{background:rgba(6,24,18,.60);backdrop-filter:blur(5px)}.modal-body{padding:30px}.modal-head{display:flex;justify-content:space-between;gap:18px}.modal h2{font-size:2.35rem;line-height:.98;letter-spacing:-.058em;margin:12px 0 10px}.close{width:42px;height:42px;border:0;border-radius:12px;background:#eef2ef;font-size:1.4rem}.plans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.plan{border:1px solid var(--line);border-radius:19px;padding:19px}.plan.featured{border:2px solid var(--brand);background:#f8fbf9}.plan strong{display:block;font-size:2rem}.plan small{color:var(--muted)}.plan button{width:100%;margin-top:14px}.tiny{font-size:.76rem;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#0b2b22;color:white;padding:12px 18px;border-radius:999px;font-weight:850;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}

/* Content pages */
.content-page{padding:64px 0 90px;min-height:100vh}.content-page article{max-width:820px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:28px;padding:clamp(26px,5vw,56px);margin:auto;box-shadow:var(--shadow-sm)}.content-page h1{font-size:clamp(2.55rem,5vw,4.25rem);letter-spacing:-.064em;line-height:.98;margin-top:34px}.content-page h2{margin-top:38px;letter-spacing:-.025em}.content-page p,.content-page li{color:#4f625a;line-height:1.72}.content-page .brand{display:inline-flex}.callout{padding:17px 19px;border-left:4px solid var(--brand);background:#eef5f0;border-radius:0 15px 15px 0}

/* Responsive */
@media(max-width:1000px){
  .condition-grid{grid-template-columns:repeat(3,1fr)}
  .catch-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:860px){
  .hero{padding-top:54px}.hero:after{right:-330px;opacity:.09}.dashboard-grid,.seo-grid{grid-template-columns:1fr}.sidebar-stack{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.map-wrap{min-height:440px}.fishing-map{min-height:440px;position:relative}.map-loading{min-height:440px}.map-head{align-items:center}.opp-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:660px){
  .wrap{width:min(100% - 24px,var(--max))}.site-header .nav{height:64px}.nav-actions .btn.soft{display:none}.nav-actions{gap:5px}.nav-actions button{padding:9px 10px}.brand{font-size:1.16rem}.brand-mark{width:36px;height:36px;border-radius:11px}
  .hero{padding:40px 0 34px}.hero h1{font-size:clamp(3rem,15vw,4.35rem);margin-top:18px}.lead{font-size:1.06rem}.search-card{margin-top:25px;padding:9px}.search-label{display:none}.search-shell{display:grid;grid-template-columns:1fr 1fr}.search-shell input{grid-column:1/-1;padding:13px}.search-shell #search-go{grid-column:1/-1}.hero-proof{gap:7px}.proof-chip{font-size:.73rem}
  .dashboard-intro{display:grid;gap:9px}.dashboard-intro h2{font-size:2.2rem}.dashboard-sync{margin:0}.result-head{align-items:center;padding:22px 20px 16px}.result-head h2{font-size:1.8rem}.score-orb{width:102px;height:102px;padding:7px}.score-orb:before{inset:7px}.score-orb strong{font-size:2.15rem}.verdict{margin:3px 20px 0;font-size:1.22rem}.recommendations{grid-template-columns:1fr;padding:18px 20px 15px}.recommendation.wide{grid-column:auto}.reasons{margin:2px 20px 18px}.condition-grid{grid-template-columns:repeat(2,1fr);padding:0 20px 22px}.sidebar-stack{grid-template-columns:1fr}.panel.pad{padding:20px}
  .map-head{padding:22px 20px;display:grid}.map-tier{justify-self:start}.map-wrap,.fishing-map,.map-loading{min-height:380px}.spot-list{padding:10px 16px 6px}.spots-lock{margin:8px 16px 16px}.map-note{padding:12px 16px 16px}.ts-map-pin{width:39px;height:39px}.ts-map-pin.primary{width:46px;height:46px}
  .opportunity-headline{display:grid}.opportunity-scale{display:none}.opportunity-svg.free{min-height:170px;aspect-ratio:auto}.opp-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opp-free-summary,.opportunity-lock{display:grid}.opp-free-summary strong{white-space:normal}.opportunity-lock .btn{width:100%}
  .hour-weather{display:grid;gap:2px}.lock-panel{display:grid}.hour-row.pro-detail{grid-template-columns:1fr auto}.hour-row.pro-detail .hour-weather{display:none}.hour-advice{grid-template-columns:1fr}
  .catch-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catch-log-locked{display:grid}.catch-log-locked .btn{width:100%}.footer-grid{display:grid}.plans{grid-template-columns:1fr}.seo-grid{gap:18px}
}
@media(max-width:460px){.catch-form-grid{grid-template-columns:1fr}.catch-actions .btn{width:100%}.search-shell{grid-template-columns:1fr}.search-shell #use-location,.search-shell #search-go{grid-column:1}.hero-proof{display:grid}.proof-chip{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Motion + polish */
@property --score{syntax:"<number>";inherits:false;initial-value:0}
::selection{background:rgba(191,230,95,.55);color:var(--ink)}
:focus-visible{outline:3px solid rgba(40,118,92,.30);outline-offset:3px}
.score-orb{transition:--score .85s cubic-bezier(.2,.75,.25,1),transform .2s ease}
.score-orb:hover{transform:scale(1.025)}
.dashboard:not([hidden]) .brief-panel{animation:panel-in .48s cubic-bezier(.2,.75,.25,1) both}
.dashboard:not([hidden]) .sidebar-stack{animation:panel-in .55s .05s cubic-bezier(.2,.75,.25,1) both}
.dashboard:not([hidden]) .fishing-map-panel{animation:panel-in .55s .09s cubic-bezier(.2,.75,.25,1) both}
.dashboard:not([hidden]) .opportunity-panel{animation:panel-in .55s .13s cubic-bezier(.2,.75,.25,1) both}
@keyframes panel-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.dashboard:not([hidden]) .brief-panel,.dashboard:not([hidden]) .sidebar-stack,.dashboard:not([hidden]) .fishing-map-panel,.dashboard:not([hidden]) .opportunity-panel{animation:none}}

/* =========================================================
   TroutSpy v2.1 — high-contrast outdoor intelligence system
   ========================================================= */
:root{
  --bg:#071711;
  --card:#ffffff;
  --brand:#0b3e30;
  --brand-deep:#061d17;
  --brand-2:#1f7a5c;
  --brand-3:#35a57c;
  --accent:#d9ff67;
  --accent-2:#bdf34f;
  --water:#4fb8d8;
  --water-soft:#e6f7fb;
  --line:#d7e2db;
  --line-strong:#bfd0c5;
  --shadow:0 28px 80px rgba(0,0,0,.23);
  --shadow-lg:0 40px 110px rgba(0,0,0,.30);
}
html{background:#071711}
body{background:#071711;color:var(--ink)}
.site-header{background:rgba(5,24,18,.88);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px rgba(0,0,0,.10)}
.site-header .brand{color:#fff}.site-header .brand-mark{background:var(--accent);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 10px 28px rgba(0,0,0,.25)}
.site-header .brand-mark img{filter:brightness(.26) saturate(1.2)}
.site-header .btn.soft{background:rgba(255,255,255,.09);color:#eff8f3;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.site-header .pro-badge{background:var(--accent);color:#173320;box-shadow:none}

.hero{color:#fff;padding:92px 0 74px;background:
  radial-gradient(circle at 78% 18%,rgba(79,184,216,.17),transparent 25rem),
  radial-gradient(circle at 18% 75%,rgba(217,255,103,.13),transparent 27rem),
  linear-gradient(135deg,#061711 0%,#0a2c22 54%,#0b382a 100%)}
.hero:before{inset:0;background:
  linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),
  linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 92%)}
.hero:after{width:820px;height:520px;right:-160px;top:-10px;opacity:.24;background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 16px,rgba(143,211,187,.46) 17px 18px,transparent 19px 27px)}
.hero .eyebrow{background:rgba(217,255,103,.12);color:var(--accent);border:1px solid rgba(217,255,103,.18)}
.live-pill{background:rgba(255,255,255,.07);color:#dcebe4;border-color:rgba(255,255,255,.09)}
.hero h1{max-width:1040px;text-shadow:0 12px 45px rgba(0,0,0,.24)}
.hero h1 em{color:var(--accent)}
.hero h1 em:after{background:var(--water);height:.055em;bottom:-.065em}
.hero .lead{color:#d7e6df;max-width:860px;font-size:clamp(1.12rem,2vw,1.38rem)}
.search-card{max-width:980px;background:#fff;border:1px solid rgba(255,255,255,.7);box-shadow:0 28px 80px rgba(0,0,0,.34);padding:12px;border-radius:24px}
.search-label{color:var(--ink);padding-left:8px}.search-label span{color:var(--muted)}
.search-shell input{background:#f4f7f4;border:1px solid #d7e1db;border-radius:15px;color:var(--ink)}
.search-shell input:focus{background:#fff;border-color:#76a88e;box-shadow:0 0 0 4px rgba(53,165,124,.12)}
.search-card .btn.primary{background:var(--accent);color:#16331f;box-shadow:none}
.search-card .btn.primary:hover{background:#e2ff88}
.search-card .btn.soft{background:#e9efeb}
.hero .status{color:#61756b}.hero .status.ok{color:#1b6b4f}.hero .status.error{color:#a6473a}
.hero-proof{margin-top:22px}.proof-chip{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);color:#dce9e3;box-shadow:none}.proof-chip b{color:var(--accent)}

.dashboard{position:relative;isolation:isolate;background:
  radial-gradient(circle at 3% 10%,rgba(79,184,216,.09),transparent 32rem),
  radial-gradient(circle at 95% 42%,rgba(217,255,103,.08),transparent 35rem),
  linear-gradient(180deg,#071a14 0%,#0a241c 55%,#071a14 100%);padding:58px 0 88px}
.dashboard:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.12;background:repeating-radial-gradient(ellipse at 96% 8%,transparent 0 24px,rgba(154,204,185,.36) 25px 26px,transparent 27px 38px);mask-image:linear-gradient(90deg,transparent 20%,black)}
.dashboard-intro{color:#fff;margin-bottom:24px}.dashboard-intro .eyebrow{background:rgba(217,255,103,.12);color:var(--accent)}
.dashboard-intro h2{color:#fff;font-size:clamp(2.25rem,4vw,3.65rem)}
.dashboard-sync{color:#a9beb4}.dashboard-sync .live-dot{background:var(--accent)}
.panel{border:1px solid rgba(255,255,255,.74);box-shadow:var(--shadow);background:#fff}
.dashboard-grid{gap:24px}
.brief-panel{overflow:hidden}
.brief-panel:before{display:none}
.result-head{position:relative;background:linear-gradient(125deg,#09251d,#0c4031);color:#fff;padding:31px 32px 26px}
.result-head:after{content:"";position:absolute;right:-120px;top:-145px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(79,184,216,.22),transparent 66%)}
.result-head h2{color:#fff;font-size:clamp(2rem,3.4vw,2.85rem)}
.result-head p{color:#aec5ba}.result-kicker{color:#b9d4c7}.result-kicker:before{background:var(--accent);box-shadow:0 0 0 5px rgba(217,255,103,.12)}
.score-orb{width:142px;height:142px;background:conic-gradient(var(--score-color) calc(var(--score)*1%),rgba(255,255,255,.14) 0);box-shadow:0 18px 45px rgba(0,0,0,.30)}
.score-orb:before{background:#071d17;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)}
.score-orb strong{font-size:3rem}.score-orb[data-tone="very-good"],.score-orb[data-tone="excellent"]{--score-color:var(--accent)}
.verdict{margin:24px 32px 4px;font-size:clamp(1.32rem,2.2vw,1.75rem)}
.recommendations{grid-template-columns:repeat(3,minmax(0,1fr));padding:22px 32px 18px;gap:12px}
.recommendation{min-height:118px;padding:20px 18px 17px 58px;background:#f4f7f4;border-color:#dbe5de}
.recommendation:before{background:#e3ebe6;color:#0e4937}
.rec-water{background:linear-gradient(145deg,#eefafb,#e0f5f8);border-color:#c4e6ed}.rec-water:before{content:"≈";background:#caeef5;color:#0d6780}
.rec-water strong{color:#0d6077}
.recommendation.wide{grid-column:1/-1;min-height:100px;background:linear-gradient(120deg,#edf6f1,#f7faf7)}
.reasons{margin:5px 32px 22px;background:#edf5ef;border-color:#deebe2}
.condition-grid{grid-template-columns:repeat(4,1fr);gap:9px;padding:0 32px 32px}
.condition{padding:14px 13px;background:#fafcf9}.condition.estimated{grid-column:span 2;background:linear-gradient(125deg,#e9f7fa,#f4fbfc);border-color:#cae8ee}.condition.estimated strong{color:#0e657d}.condition small{display:block;margin-top:3px;color:#6c7f77;font-size:.66rem;font-weight:700;line-height:1.25}

.pro-card{background:linear-gradient(145deg,#e3ff86,#c8f55f 60%,#a9e857);color:#17311f;box-shadow:0 24px 60px rgba(0,0,0,.22)}
.pro-card:before{opacity:.22;background:repeating-radial-gradient(ellipse at 94% 8%,transparent 0 12px,rgba(15,67,48,.36) 13px 14px,transparent 15px 23px)}
.pro-card .eyebrow{background:rgba(15,67,48,.11);color:#18432d}.pro-card p,.pro-list{color:#274936}.pro-card .btn:not(.soft){background:#0b3528;color:#fff}.pro-card .btn.soft{background:rgba(255,255,255,.42);color:#17311f;box-shadow:inset 0 0 0 1px rgba(17,60,43,.15)}
.dashboard .panel.pad:not(.pro-card){background:#fbfdfb}

.fishing-map-panel{border:0}
.map-head{background:linear-gradient(120deg,#09261e,#0e4434);color:#fff;border:0;padding:29px 32px 25px}.map-head .eyebrow{background:rgba(217,255,103,.12);color:var(--accent)}.map-head h3{color:#fff}.map-head p{color:#b9cec4}.map-tier{background:var(--accent);color:#173320}.map-tier.pro{background:#fff;color:#123e30}
.map-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.map-legend span{display:inline-flex;align-items:center;gap:7px;color:#c9dcd3;font-size:.75rem;font-weight:800}.map-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.map-legend .shore i{background:#1c7054}.map-legend .open i{background:var(--water)}
.map-wrap{background:#cbded3}.ts-map-tile{filter:saturate(.72) contrast(.98) brightness(.97)}
.ts-map-shoreline polyline{stroke:#096449;stroke-width:4.3}
.ts-map-pin.shoreline{background:#176448}.ts-map-pin.open-water{background:#157e9c;box-shadow:0 6px 18px rgba(7,78,101,.34)}
.ts-map-pin.primary{box-shadow:0 0 0 7px rgba(217,255,103,.92),0 12px 32px rgba(7,37,28,.42)}
.ts-map-pin.primary.open-water{background:#096c89}
.spot-card h4{font-size:1rem}.spot-card small{color:#507167}.spot-rank{background:#0d4937}.spots-lock{background:#0a3328}.map-note{background:#f6f9f6}

.opportunity-panel{overflow:hidden;background:#fcfefb}.opportunity-panel>.section-title{margin:-24px -24px 0;padding:25px 28px 20px;background:#0b2c22;color:#fff}.opportunity-panel>.section-title .eyebrow{background:rgba(217,255,103,.12);color:var(--accent)}.opportunity-panel>.section-title h3{color:#fff}.opportunity-panel>.section-title>span{color:#abc2b7}.opportunity-headline{padding-top:22px}.opp-line{stroke:#208e69}.opp-line.free{stroke:#1d8867}.opp-free-peak{fill:var(--accent);stroke:#0c3e30}.opp-best-band{fill:rgba(217,255,103,.19)}
.opportunity-lock{background:linear-gradient(120deg,#0a3428,#0d4937)}.opportunity-lock .btn.primary{background:var(--accent);color:#173320}

.catch-log-panel{background:#fbfdfb}.catch-log-locked{background:linear-gradient(120deg,#0a2d23,#0f4b39)}.catch-log-locked .btn{background:var(--accent);color:#173320}

.explain{background:#f1f4ef;border:0;padding-top:92px}.explain .eyebrow{background:#dfe9e2}.step{background:#fff;box-shadow:0 14px 36px rgba(12,44,34,.07)}.step b{background:#0c4836;color:var(--accent)}
.seo-section{background:#fff;border:0}.site-footer{background:#04130f}

.content-page{background:linear-gradient(180deg,#071a14,#0a2a20);padding-top:80px}.content-page article{background:#fff;box-shadow:0 35px 100px rgba(0,0,0,.26)}

@media(max-width:1000px){.recommendations{grid-template-columns:repeat(2,minmax(0,1fr))}.recommendation.wide{grid-column:1/-1}.condition-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:660px){
  .hero{padding-top:56px}.hero h1{font-size:clamp(3.2rem,16vw,4.7rem)}.hero:after{right:-490px;opacity:.16}
  .dashboard{padding-top:42px}.result-head{padding:24px 20px 22px}.score-orb{width:108px;height:108px}.score-orb strong{font-size:2.25rem}.verdict{margin:20px 20px 2px}
  .recommendations{grid-template-columns:1fr;padding:17px 20px}.recommendation.wide{grid-column:auto}.reasons{margin:3px 20px 18px}.condition-grid{grid-template-columns:repeat(2,1fr);padding:0 20px 22px}.condition.estimated{grid-column:span 2}
  .map-head{padding:23px 20px 20px}.opportunity-panel>.section-title{margin:-20px -20px 0;padding:22px 20px 18px}
}

/* v2.2 polish: tighter hero accent + brighter brand mark */
.hero h1 em:after{bottom:.015em;height:.05em;left:.02em;right:.015em}
.site-header .brand-mark{background:transparent;box-shadow:0 0 0 1px rgba(217,255,103,.28),0 10px 28px rgba(0,0,0,.25)}
.site-header .brand-mark img{filter:none}
.content-page .brand-mark{background:transparent}
.content-page .brand-mark img{filter:none}


/* v2.4 accounts + cross-device Pro */
.account-button{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.09);color:#eff8f3;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.account-button.active{background:#f4fff7;color:#103628;box-shadow:none}.account-dot{width:8px;height:8px;border-radius:50%;background:#90a59b}.account-button.active .account-dot{background:#35a57c;box-shadow:0 0 0 4px rgba(53,165,124,.12)}
.account-modal{max-width:620px}.account-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:22px}.account-form label{display:grid;gap:7px}.account-form label span{font-size:.75rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:var(--muted)}.account-form input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;outline:none}.account-form input:focus{border-color:#63a187;box-shadow:0 0 0 4px rgba(53,165,124,.11)}
.code-form{grid-template-columns:1fr auto auto}.code-sent{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 13px;border-radius:13px;background:#eef5ef;color:#52675e;font-size:.82rem}.code-sent strong{color:var(--ink)}.code-sent button{border:0;background:transparent;color:var(--brand);font-weight:850;margin-left:auto}
.account-status{min-height:22px;margin:12px 0 0;color:#53675e;font-size:.88rem}.account-status.error{color:#a34436}.account-status.ok{color:#17674c}
.account-identity{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;margin-top:23px;padding:17px;border-radius:17px;background:#eef5ef}.account-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#123f31;color:var(--accent);font-weight:950}.account-identity span,.account-identity strong{display:block}.account-identity span{color:var(--muted);font-size:.76rem}.account-identity strong{margin-top:2px;overflow-wrap:anywhere}.account-plan{padding:7px 10px!important;border-radius:999px;background:#dbe6df;color:#294f40!important;font-size:.7rem!important;font-weight:950;letter-spacing:.05em}.account-plan.pro{background:var(--accent);color:#173320!important}
.account-sync-grid{display:grid;gap:9px;margin-top:14px}.account-sync-grid div{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:13px}.account-sync-grid b{color:#1f805e}.account-sync-grid span{font-size:.88rem}.account-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.saved-water{display:flex;justify-content:space-between;gap:8px;align-items:center}.saved-water-main{min-width:0;flex:1;text-align:left}.saved-water-remove{border:0;background:#edf2ee;width:30px;height:30px;border-radius:9px;color:#60736a;flex:0 0 auto}
.cloud-note{display:inline-flex;align-items:center;gap:5px;color:#37755d;font-size:.72rem;font-weight:800;margin-top:6px}.cloud-note:before{content:'☁';font-size:.8rem}
@media(max-width:760px){.account-button{padding:9px 10px}.account-button-label{display:none}.account-form,.code-form{grid-template-columns:1fr}.code-sent{grid-column:1}.account-form .btn{width:100%}.account-identity{grid-template-columns:auto 1fr}.account-plan{grid-column:1/-1;width:max-content}.account-actions .btn{flex:1}}
@media(max-width:520px){#account-button-label{display:none}.account-button{width:39px;height:39px;padding:0;justify-content:center}.account-dot{width:10px;height:10px}}

/* v2.5.3 polish: forecast cards size to their own content. */
.forecast-detail-grid{align-items:start}
.forecast-detail-grid>.panel{align-self:start;height:auto;min-height:0}

/* v2.5.6 — clearer venue-search guidance */
.search-help{margin:9px 8px 0;color:#53675e;font-size:.78rem;line-height:1.45}
.search-help strong{color:#244f40;font-weight:800}
@media(max-width:700px){.search-help{margin:8px 5px 1px;font-size:.76rem}}


/* v2.6 launch hardening */
.modal{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.modal-body{min-height:min-content}
.subscription-status{margin:14px 0 0;padding:10px 12px;border-radius:12px;background:#f1f6f2;color:#496158;font-size:.82rem;line-height:1.45}
.btn.danger{background:#fff4f1;color:#9a3f31;box-shadow:inset 0 0 0 1px #e7c6bf}
.company-details{display:grid;gap:8px;margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f7faf7}
.company-details p{margin:0}
.legal-note{padding:14px 16px;border-radius:14px;background:#f0f5f1;color:#40594f;font-size:.88rem;line-height:1.55}
.plan.featured small strong{display:inline;font-size:inherit;color:#24513f}
@media(max-width:660px){
  .modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:24px;margin:auto}
  .modal-body{padding:22px 20px 28px}
  .modal h2{font-size:clamp(2.35rem,12vw,3.25rem);line-height:.94}
  .modal-head{gap:10px}
  .close{flex:0 0 42px}
  .plans{gap:10px;margin-top:16px}
  .plan{padding:16px}
  .plan strong{font-size:2.35rem}
}


/* v2.6.4 — clearly distinguish account sign-in from Pro sign-up */
.purchase-auth-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0 4px;padding:10px;border-radius:17px;background:#f2f7f3;border:1px solid #dbe7df}
.purchase-step{display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:start;padding:10px;border-radius:12px;color:#5c7067}
.purchase-step>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dfe8e2;color:#315246;font-weight:950;font-size:.78rem}
.purchase-step b,.purchase-step small{display:block}.purchase-step b{font-size:.78rem;color:#315246}.purchase-step small{margin-top:3px;font-size:.69rem;line-height:1.35;color:#6a7c74}
.purchase-step.done>span{background:#0c4a38;color:#fff}.purchase-step.active{background:#fff;box-shadow:0 5px 18px rgba(12,66,49,.08)}.purchase-step.active>span{background:var(--accent);color:#173320}.purchase-step.active b{color:#103e2e}
.account-modal.purchase-flow #account-eyebrow{background:rgba(217,255,103,.36);color:#173b2e}.account-modal.purchase-flow #account-modal-title{max-width:520px}
.account-modal.purchase-flow #account-intro{color:#415b50}.account-modal.purchase-flow #login-email-submit,.account-modal.purchase-flow #login-code-submit{background:#0b4c39}
@media(max-width:660px){.purchase-auth-steps{grid-template-columns:1fr;gap:4px;padding:8px}.purchase-step{grid-template-columns:28px 1fr;padding:8px}.purchase-step>span{width:28px;height:28px}}

/* v2.7 — free advertising / ad-free Pro. Auto ads create their own slots. */
html.pro-ad-free .adsbygoogle,html.pro-ad-free [data-ad-client]{display:none!important}


/* v2.10 — compact, transparent model-analysis summary */
.model-summary{margin:0 24px 20px;padding:16px 18px 15px;border:1px solid rgba(39,101,76,.16);border-radius:16px;background:linear-gradient(135deg,#f4faf5,#eef6f1);box-shadow:inset 4px 0 0 #9acb46}
.model-summary-kicker{display:block;margin-bottom:5px;color:#2a6a51;font-size:.69rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.model-summary p{margin:0;color:#51675e;font-size:.88rem;line-height:1.5}
.model-summary strong{display:block;margin-top:7px;color:#153a2d;font-size:1rem;line-height:1.4}
.model-summary small{display:block;margin-top:7px;color:#256d54;font-size:.78rem;font-weight:750;line-height:1.45}
@media(max-width:660px){.model-summary{margin:0 20px 18px;padding:14px 15px}.model-summary p{font-size:.83rem}.model-summary strong{font-size:.94rem}}

/* v2.11: explicit fallback sizing for brand artwork during navigation */
.brand-mark img{max-width:100%;max-height:100%;}


/* v2.14 — public payment release candidate */
.checkout-consent{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;margin:16px 0 8px;padding:14px 15px;border:1px solid #d9e5dd;border-radius:15px;background:#f4f8f5;cursor:pointer}
.checkout-consent input{width:19px;height:19px;margin:2px 0 0;accent-color:#0b4c39}
.checkout-consent strong,.checkout-consent small{display:block}.checkout-consent strong{font-size:.88rem;color:#173b2e}.checkout-consent small{margin-top:4px;color:#60736a;font-size:.74rem;line-height:1.45}.checkout-consent a{font-weight:800}
.checkout-consent.needs-attention{border-color:#c36b53;background:#fff4ef;box-shadow:0 0 0 3px rgba(195,107,83,.09)}
.pro-consent-status{min-height:18px;margin:4px 0 0;color:#a5432f;font-size:.75rem;font-weight:800}
.purchase-consent-confirmed{margin:9px 0 0;padding:9px 11px;border-radius:12px;background:#edf6ef;color:#36594a;font-size:.74rem;font-weight:760}
@media(max-width:660px){.checkout-consent{padding:12px 13px}.checkout-consent small{font-size:.72rem}}


/* v2.14.2 — clear Pro plan selection */
.plan{position:relative;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;outline:none}
.plan:hover{border-color:#8aa99b;transform:translateY(-1px)}
.plan:focus-visible{box-shadow:0 0 0 4px rgba(12,72,54,.16)}
.plan.featured{border:1px solid var(--line);background:#f8fbf9}
.plan-badge{position:absolute;top:12px;right:12px;display:inline-flex!important;width:auto!important;padding:5px 8px;border-radius:999px;background:#e2ef9a;color:#173b2e;font-size:.62rem;font-weight:950;letter-spacing:.055em;text-transform:uppercase;line-height:1}
.plan.selected,.plan.featured.selected{background:#0b3528;border-color:#0b3528;color:#fff;box-shadow:0 15px 34px rgba(7,42,31,.22);transform:translateY(-1px)}
.plan.selected>span:not(.plan-badge){color:#d9e8e1}
.plan.selected>strong{color:#fff}
.plan.selected small{color:#c7dad1}
.plan.selected small strong{color:var(--accent)}
.plan.selected .plan-badge{background:var(--accent);color:#173320}
.plan.selected .btn.primary{background:var(--accent);color:#173320;box-shadow:none}
.plan.selected .btn.primary:hover{filter:brightness(.97)}
@media(max-width:660px){.plan-badge{top:10px;right:10px}}
