@charset "UTF-8";

/* Source: app.css */
.admin-activity{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;font-size:.85rem;color:var(--muted)}
.admin-activity strong{font-size:1.15rem;font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere}
:root{--paper:#f7f5ee;--card:#fdfcf8;--ink:#153f49;--muted:#56696c;--line:#dfe3d9;--sea:#236c68;--foam:#e3eee4;--sand:#eee8d7;--coral:#be7153;--orange:#94512b;--shadow:0 8px 30px #153f4905;--radius:22px;--hover:#153f4908;--low-bg:#f1e5db;--mid-bg:#eeeccf;--mid-ink:#5f6837;--night-bg:#eaedea;--promo-bg:#153f49;--promo-ink:#f7f5ee;--promo-muted:#c2d5d2;--model-0:#236c68;--model-1:#a65c3c;--model-2:#6569a1;--model-3:#766d30;--model-4:#3c7095;--model-5:#965572;--model-6:#586751;--model-7:#735d40;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button{border:0;background:none}a{color:inherit}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--muted);outline-offset:3px}button{transition:background .18s,color .18s,box-shadow .18s,transform .18s}button:hover{filter:brightness(1.06)}button:active{transform:translateY(1px)}.shell{max-width:1240px;margin:auto;padding:0 40px}.masthead{display:flex;align-items:center;justify-content:space-between;padding:27px 0 24px}.brand{display:flex;align-items:center;gap:12px;text-align:left;padding:0;text-decoration:none}.brand span{font-weight:800;font-size:22px;letter-spacing:-.8px}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:.5px;color:var(--muted);margin-top:3px}.top-actions{display:flex;align-items:center;gap:18px}.live-pill{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.live-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sea)}.live-pill.warning:before{background:var(--coral)}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:27px;background:var(--card)}.icon-button svg{width:19px;stroke:currentColor;stroke-width:1.6;fill:none}.main-nav{display:flex;gap:28px;align-items:center;border-bottom:1px solid var(--line);padding:0 0 16px}.main-nav button,.main-nav a{position:relative;padding:10px 0;font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none;color:var(--muted)}.main-nav .active{color:var(--ink)}.main-nav .active:after{content:"";height:3px;position:absolute;bottom:-17px;left:0;right:0;background:var(--sea);border-radius:4px}.main-nav a{margin-left:auto}.main-nav span{margin-left:5px}.notice{padding:13px 18px;margin-top:20px;background:var(--sand);border:1px solid var(--line);border-radius:12px;font-size:13px}.spot-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:36px 0 26px}.eyebrow{font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;font-size:10px;font-weight:600;line-height:1.5;letter-spacing:1.9px;margin:0;color:var(--muted)}:is(h1,.seo-section-title){font-size:clamp(36px,4.5vw,60px);font-weight:650;line-height:1.06;letter-spacing:-2.5px;margin:8px 0 9px}h2{font-size:20px;line-height:1.3;letter-spacing:-.6px;font-weight:650;margin:6px 0 12px}p{line-height:1.6} .spot-title{display:flex;align-items:center;gap:17px;padding:0;text-align:left}.spot-title span{background:var(--foam);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:20px}.subtitle{margin:0;color:var(--muted);font-size:13px}.save-button{flex-shrink:0;font-size:31px;border:1px solid var(--line);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--card)}.save-button[aria-pressed=true]{background:var(--foam);color:var(--sea);border-color:var(--sea)}.day-row{display:flex;padding:6px;background:var(--sand);border-radius:15px;gap:5px;overflow-x:auto;scrollbar-width:none;margin-bottom:28px}.day-row::-webkit-scrollbar{display:none}.day-button{flex:1;min-width:80px;padding:12px 18px;border-radius:10px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:14px}.day-button b{display:block;font-size:12px;font-weight:650;margin-bottom:4px}.day-button small{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}.day-button .day-score{color:var(--sea);font-size:16px;font-weight:650}.day-button.active{background:var(--card);box-shadow:0 2px 6px #153f4908}.forecast-columns{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:25px;align-items:start}.primary-column,.secondary-column{min-width:0;display:flex;flex-direction:column;gap:22px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow)}.verdict{padding:26px 28px 0;overflow:hidden}.verdict-top,.verdict-main{display:flex;align-items:center;justify-content:space-between;gap:15px}.trust-tag{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:6px 9px;white-space:nowrap}.verdict-main{padding:24px 0 28px;align-items:flex-start}.quality{font-size:39px;line-height:1.1;letter-spacing:-1.5px;font-weight:600;color:var(--sea);margin:0 0 9px;max-width:360px}.verdict-copy{font-size:12px;color:var(--muted);max-width:300px;margin:0}.score{display:flex;align-items:center;gap:7px;color:var(--sea);white-space:nowrap}.score strong{font-size:91px;line-height:.9;letter-spacing:-6px;font-weight:550;font-variant-numeric:tabular-nums}.score>span{font-size:20px;color:var(--muted);margin-top:21px}.score small{display:block;font-family:ui-monospace,monospace;font-size:8px;letter-spacing:.5px;margin-top:6px}.surf-headline{border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:18px 0}.surf-headline>strong{font-size:32px;letter-spacing:-1px;font-weight:600;white-space:nowrap}.surf-headline>span{display:block}.surf-headline b{font-size:11px;font-weight:550}.surf-headline small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.text-button{padding:8px 0;font-size:11px;font-weight:600}.surf-headline .text-button{margin-left:auto;white-space:nowrap;color:var(--muted)}.best-window{display:flex;align-items:center;gap:17px;background:var(--foam);border-color:var(--line);padding:20px 24px}.best-window .eyebrow{color:var(--sea)}.best-window h2{font-size:22px;margin:5px 0 4px}.best-window p:not(.eyebrow){font-size:11px;color:var(--sea);margin:0}.sun-mark{font-size:30px;color:var(--sea)}.round-button{border:1px solid var(--line);border-radius:50%;width:39px;height:39px;flex-shrink:0;margin-left:auto;font-size:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading h2{font-size:18px;margin:0}.section-heading>span{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}.timeline{padding:2px 0}.hour-cards{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin-top:18px;padding:2px 0 5px;scroll-snap-type:x proximity}.hour-cards::-webkit-scrollbar{display:none}.hour-card{min-width:84px;border:1px solid transparent;border-radius:14px;background:var(--foam);padding:13px 9px;text-align:center;flex-shrink:0;scroll-snap-align:center;color:var(--sea)}.hour-card.low{background:var(--low-bg);color:var(--orange)}.hour-card.mid{background:var(--mid-bg);color:var(--mid-ink)}.hour-card.night{background:var(--night-bg);color:var(--muted)}.hour-card.active{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor}.hour-card>span{font-family:ui-monospace,monospace;font-size:10px;display:block;white-space:nowrap}.hour-card>strong{font-size:26px;display:block;line-height:1.3;font-weight:550;margin:5px 0}.hour-card>small{font-size:8px;font-weight:650;text-transform:uppercase;letter-spacing:.6px}.scrubber{padding-top:18px}input[type=range]{width:100%;accent-color:var(--sea);height:30px;cursor:pointer;touch-action:pan-y;margin:0}.range-labels{display:flex;justify-content:space-between;font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);margin-top:2px}.range-labels span:nth-child(2){font-family:inherit;font-size:9px}.conditions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;overflow:hidden}.conditions>div{padding:19px 19px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;position:relative}.conditions>div:nth-child(3n){border-right:0}.conditions>div:nth-last-child(-n+3){border-bottom:0}.conditions .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:8px;padding-right:14px}.conditions strong{font-size:24px;font-weight:600;letter-spacing:-.8px;display:block;white-space:nowrap}.conditions small{display:block;font-size:10px;line-height:1.45;color:var(--muted);margin-top:7px}.conditions .small-value{font-size:17px;padding-top:6px}.metric-icon{position:absolute;right:15px;top:15px;color:var(--muted);font-size:16px}.chart-panel .section-heading{align-items:center;margin-bottom:18px}.chart-panel h2{margin-top:5px}.chart-switch{display:flex;background:var(--sand);padding:3px;border-radius:20px;font-size:10px;flex-shrink:0}.chart-switch button{padding:7px 11px;border-radius:20px}.chart-switch .active{background:var(--card)}#day-chart{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1}.chart-area{fill:var(--foam)}.chart-line{stroke:var(--sea);stroke-width:2.8;fill:none;stroke-linejoin:round}.chart-dot{fill:var(--sea);stroke:var(--card);stroke-width:4}.chart-cursor{stroke:var(--sea);stroke-width:1;stroke-dasharray:4 5}.chart-number{fill:var(--muted);font:10px ui-monospace,monospace}.chart-labels{display:flex;justify-content:space-between;margin-top:8px;color:var(--muted);font-family:ui-monospace,monospace;font-size:9px}.fine-print{font-size:10px;color:var(--muted);line-height:1.65;margin:14px 0 0}.secondary-column .panel{padding:25px}.secondary-column h2{font-size:22px;margin:6px 0 17px}.confidence .section-heading{margin-top:8px}.status-dot{width:7px;height:7px;background:var(--sea);border-radius:50%}.confidence-number{display:flex;align-items:center;gap:12px;margin:22px 0 14px}.confidence-number strong{font-size:52px;font-weight:500;line-height:1;letter-spacing:-2px}.confidence-number>span{font-size:16px;color:var(--muted)}.confidence-number small{display:block;font-size:10px;margin-top:5px}.confidence p:not(.eyebrow):not(.fine-print){font-size:12px;color:var(--muted);margin-bottom:18px}.meter{display:flex;gap:4px;height:6px;margin-bottom:20px}.meter span{background:var(--line);border-radius:2px;flex:1}.meter .filled{background:var(--sea)}.evidence-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-top:1px solid var(--line);font-size:11px}.evidence-row span{color:var(--muted)}.evidence-row strong{font-weight:550}.confidence details{margin-top:12px}summary{cursor:pointer;font-size:11px;list-style:none}summary::-webkit-details-marker{display:none}.confidence summary{display:flex;justify-content:space-between}.model-list{display:flex;flex-wrap:wrap;gap:5px;padding-top:14px}.model-chip{font-size:9px;background:var(--foam);padding:5px 7px;border-radius:6px}.observation-station{font-size:16px;font-weight:600;margin:0}.observation-source{font-size:10px;color:var(--muted);margin:5px 0 17px}.observation-values{display:flex;gap:24px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.observation-values strong{display:block;font-size:23px;font-weight:550}.observation-values small{font-size:9px;color:var(--muted)}.obs-status{font-size:10px;margin:12px 0 0;color:var(--sea)}.reasoning>p:not(.eyebrow):not(.fine-print){font-size:12px;line-height:1.6}.factor-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:11px 0;font-size:11px}.factor-row span{color:var(--muted)}.factor-row strong{font-size:10px;font-weight:550;text-align:right}.community-card{background:var(--promo-bg);color:var(--promo-ink);padding:26px;border-radius:var(--radius)}.community-card .eyebrow{color:var(--promo-muted)}.community-card h2{font-size:24px;margin-top:12px}.community-card p{color:var(--promo-muted);font-size:12px;line-height:1.75}.community-card a{display:flex;justify-content:space-between;align-items:center;background:var(--paper);color:var(--ink);text-decoration:none;font-size:12px;font-weight:600;border-radius:11px;padding:14px;margin-top:20px;min-height:44px}.community-card a.secondary-link{background:transparent;color:var(--promo-muted);font-size:10px;padding:0;margin-top:7px;min-height:35px}footer{border-top:1px solid var(--line);margin-top:48px;padding:26px 0 35px;color:var(--muted);font-size:10px}footer>div{display:flex;align-items:center;gap:9px}footer strong{color:var(--ink);font-size:12px}footer>div span{margin-left:auto}footer p{max-width:900px;line-height:1.75}footer summary{font-size:10px;text-decoration:underline;text-underline-offset:3px}footer details{margin-top:14px}.load-state{padding:60px 25px;text-align:center;background:var(--card);border-radius:var(--radius);border:1px solid var(--line);font-size:14px}.muted{color:var(--muted);font-size:12px}.outline-button{border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-size:12px;min-height:44px}.primary-button{background:var(--ink);color:var(--paper);border-radius:11px;padding:13px 20px;font-size:13px;min-height:44px}.primary-button:hover{background:var(--sea)}.discovery-tools{display:flex;gap:30px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 24px}.discovery-tools label{display:flex;align-items:center;gap:10px;flex:1;font-size:12px;white-space:nowrap}.discovery-tools input{max-width:300px;margin-left:15px}.discovery-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.discovery-card{border:1px solid var(--line);border-radius:20px;background:var(--card);padding:23px;text-align:left;width:100%;display:flex;flex-direction:column;gap:12px}.discovery-card:hover{background:var(--foam)}.discovery-card .eyebrow{font-size:8px}.discovery-card h2{font-size:25px;margin:0}.discovery-card .ranking-score{font-size:39px;color:var(--sea);font-weight:550}.discovery-card p{font-size:11px;color:var(--muted);margin:0}.discovery-card .ranking-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:7px;font-size:11px}.empty-state{grid-column:1/-1;border:1px solid var(--line);padding:30px;border-radius:20px;text-align:center;color:var(--muted);font-size:13px}dialog{border:1px solid var(--line);border-radius:27px;width:min(620px,calc(100% - 32px));padding:26px;background:var(--paper);color:var(--ink);max-height:88dvh;box-shadow:0 20px 100px #153f4930}dialog[open]{display:flex;flex-direction:column;animation:sheet-in .2s ease-out}dialog::backdrop{background:#153f4966;backdrop-filter:blur(5px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-header h2{font-size:30px;margin:5px 0 0}.dialog-header .icon-button{flex-shrink:0}.search-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:13px;background:var(--card);gap:12px;padding:12px 14px}.search-field>span{font-size:24px;color:var(--sea)}.search-field input{width:100%;min-width:0;font-size:14px;border:0;background:transparent;color:var(--ink);height:30px;outline-offset:8px}.search-field input::placeholder{color:var(--muted)}.search-filters{display:flex;align-items:center;gap:8px;margin:17px 0}.search-filters button{padding:8px 12px;border-radius:20px;font-size:11px;min-height:38px}.search-filters .active{background:var(--foam);color:var(--sea)}.search-filters>span{margin-left:auto;font-size:10px;color:var(--muted)}.search-results{overflow-y:auto;min-height:120px;overscroll-behavior:contain;max-height:50dvh}.search-row{display:flex;align-items:center;border-top:1px solid var(--line)}.search-row>button:first-child{padding:16px 3px;flex:1;text-align:left;min-width:0}.search-row strong{display:block;font-size:15px;font-weight:550}.search-row small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.search-row .star{font-size:24px;flex-shrink:0;width:44px;min-height:44px}.search-row .star.saved{color:var(--sea)}.dialog-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;margin-top:12px}.toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:13px 22px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:12px;box-shadow:0 8px 30px #153f4920;z-index:10;max-width:calc(100% - 32px);text-align:center}.view-enter{animation:view-in .25s ease-out}.mobile-evidence-toggle{display:none}.mobile-evidence-body{display:block}@keyframes view-in{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){.shell{max-width:1330px}.forecast-columns{grid-template-columns:minmax(0,1fr) 360px;gap:30px}.primary-column,.secondary-column{gap:25px}.verdict-main{padding:30px 0}.quality{font-size:45px}.score strong{font-size:104px}.conditions>div{padding:24px}}
@media(max-width:1000px){.shell{padding:0 25px}.forecast-columns{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.panel,.secondary-column .panel{padding:20px}.verdict{padding:22px 22px 0}.quality{font-size:30px}.score strong{font-size:76px}.verdict-main{gap:10px}.score>span{font-size:17px}.conditions{padding:0}.conditions>div{padding:18px 12px}.conditions strong{font-size:22px}.conditions .eyebrow{letter-spacing:.4px;font-size:8px}.metric-icon{right:9px;top:12px}.surf-headline>strong{font-size:28px}.surf-headline{gap:12px}.discovery-results{grid-template-columns:repeat(2,minmax(0,1fr))}.day-button{padding:11px 12px}.best-window{gap:12px}.best-window h2{font-size:19px}}
@media(max-width:760px){.shell{padding:0 20px}.masthead{padding:20px 0 19px}.brand span{font-size:20px}.brand .brand-mark{width:38px;height:38px}.brand small{font-size:9px}.top-actions{gap:10px}.live-pill{font-size:9px;max-width:115px}.icon-button{width:40px;height:40px}.main-nav{gap:23px;padding-bottom:12px}.main-nav button,.main-nav a{font-size:11px;padding:7px 0}.main-nav a{display:none}.main-nav .active:after{bottom:-13px}.spot-heading{padding:29px 0 22px;gap:12px}.spot-heading .eyebrow{font-size:9px;letter-spacing:1.3px}:is(h1,.seo-section-title){font-size:42px;letter-spacing:-1.9px;line-height:1.12;margin:9px 0}.spot-title{gap:11px}.spot-title span{width:29px;height:29px;font-size:17px;flex-shrink:0}.subtitle{font-size:11px}.save-button{width:42px;height:42px;font-size:27px}.day-row{margin-bottom:21px;gap:4px;border-radius:13px;padding:4px}.day-button{padding:10px 12px;min-width:68px;display:block;flex-shrink:0;text-align:center;flex:0 0 68px}.day-button b{font-size:10px}.day-button small{font-size:9px}.day-button .day-score{display:none}.forecast-columns{display:block}.primary-column{gap:19px}.verdict{padding:20px 20px 0;border-radius:20px}.verdict-top{gap:9px}.verdict-top .eyebrow{font-size:8px;letter-spacing:1px}.trust-tag{font-size:8px;padding:5px 7px}.verdict-main{padding:25px 0 23px;gap:14px}.quality{font-size:33px;letter-spacing:-1.2px}.verdict-copy{font-size:11px;max-width:210px}.score strong{font-size:77px;letter-spacing:-4px}.score>span{font-size:15px;margin-top:19px}.score small{font-size:6px;letter-spacing:.1px}.surf-headline{padding:16px 0;gap:13px}.surf-headline>strong{font-size:27px}.surf-headline b{font-size:10px}.surf-headline small{font-size:10px}.surf-headline .text-button{font-size:9px}.best-window{padding:18px;border-radius:18px;gap:13px}.best-window .eyebrow{font-size:8px;letter-spacing:1.3px}.best-window h2{font-size:21px;margin-top:5px}.best-window p:not(.eyebrow){font-size:10px}.sun-mark{font-size:26px}.round-button{width:33px;height:33px;font-size:17px}.section-heading h2{font-size:16px}.section-heading>span{font-size:10px}.hour-cards{gap:8px;margin-top:15px;margin-right:-20px;padding-right:20px}.hour-card{min-width:73px;padding:12px 7px;border-radius:13px}.hour-card>span{font-size:9px}.hour-card>strong{font-size:25px}.hour-card>small{font-size:7px;letter-spacing:.2px}.conditions{border-radius:18px}.conditions>div{padding:17px 11px 18px}.conditions strong{font-size:23px}.conditions .eyebrow{font-size:7px;letter-spacing:.4px;margin-bottom:9px;padding-right:0}.conditions small{font-size:9px;line-height:1.5}.metric-icon{display:none}.conditions .small-value{font-size:14px;padding-top:8px}.chart-panel{padding:20px 18px;border-radius:18px}.chart-panel .eyebrow{font-size:8px;letter-spacing:1px}.chart-switch{font-size:9px}.chart-switch button{padding:7px 9px}.chart-panel h2{font-size:16px}.secondary-column{gap:13px;margin-top:23px}.secondary-column .panel{padding:18px;border-radius:18px}.secondary-column h2{font-size:20px;margin:6px 0 12px}.secondary-column>.panel>.eyebrow{font-size:8px}.mobile-evidence-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;padding:0;min-height:44px}.mobile-evidence-toggle h2{margin:0;font-size:18px}.mobile-evidence-toggle>span{font-size:18px}.mobile-evidence-body{display:none}.mobile-evidence-body.open{display:block;animation:view-in .18s}.confidence>.eyebrow,.observations>.eyebrow,.reasoning>.eyebrow{margin-bottom:8px}.confidence-number strong{font-size:42px}.confidence-number{margin:18px 0 12px}.community-card{padding:23px;border-radius:18px;margin-top:5px}.community-card h2{font-size:25px}.community-card p{font-size:12px}footer{margin-top:31px;font-size:9px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}footer summary{font-size:9px}.discovery-tools{padding:16px;gap:15px;flex-direction:column;align-items:stretch}.discovery-tools label{gap:7px;font-size:11px}.discovery-tools input{margin-left:7px}.discovery-results{grid-template-columns:1fr;gap:12px}.discovery-card{padding:20px}.discovery-card h2{font-size:25px}.discovery-card .ranking-score{font-size:34px}.discovery-card{gap:9px}.outline-button{padding:11px 13px;font-size:11px;flex-shrink:0}dialog{width:100%;margin:0;position:fixed;inset:auto 0 0;border-radius:25px 25px 0 0;padding:25px 20px calc(17px + env(safe-area-inset-bottom));max-height:90dvh;max-width:100%}dialog:before{content:"";height:4px;width:42px;background:var(--line);border-radius:9px;margin:-11px auto 20px;flex-shrink:0}.dialog-header{margin-bottom:20px}.dialog-header h2{font-size:29px}.search-field input{font-size:16px}.search-results{max-height:48dvh}.toast{font-size:11px}.notice{font-size:11px;padding:11px 13px}}
@media(max-width:360px){.shell{padding:0 15px}.quality{font-size:29px}.score strong{font-size:67px}.score small{display:none}.verdict{padding:18px 15px 0}.surf-headline>strong{font-size:23px}.surf-headline{gap:9px}.conditions strong{font-size:20px}.conditions .small-value{font-size:12px}.main-nav{gap:19px}.top-actions .live-pill{display:none}.hour-cards{margin-right:-15px;padding-right:15px}:is(h1,.seo-section-title){font-size:36px}.best-window h2{font-size:18px}.best-window{gap:9px}}
.quality.low,.score.low{color:var(--coral)}
.spot-heading>div{min-width:0}.spot-title{min-width:0}.spot-title :is(h1,.seo-section-title){overflow-wrap:anywhere}.conditions .small-value{white-space:normal}
.conditions>div:nth-last-child(n+4){border-bottom:1px solid var(--line)}.model-comparison summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.model-comparison summary h2{margin:5px 0 0;font-size:18px}.model-comparison summary>span:last-child{font-size:20px}.comparison-tools{display:flex;gap:6px;margin-top:20px}.comparison-tools button{font-size:10px;background:var(--sand);padding:10px 13px;border-radius:20px;min-height:38px}.comparison-tools .active{background:var(--foam);color:var(--sea)}.comparison-legend{display:flex;flex-wrap:wrap;gap:6px 13px;margin:17px 0 20px}.comparison-legend label{font-size:9px;display:flex;align-items:center;gap:4px}.comparison-legend input{accent-color:var(--sea)}.model-colour-0{stroke:var(--model-0);color:var(--model-0)}.model-colour-1{stroke:var(--model-1);color:var(--model-1)}.model-colour-2{stroke:var(--model-2);color:var(--model-2)}.model-colour-3{stroke:var(--model-3);color:var(--model-3)}.model-colour-4{stroke:var(--model-4);color:var(--model-4)}.model-colour-5{stroke:var(--model-5);color:var(--model-5)}.model-colour-6{stroke:var(--model-6);color:var(--model-6)}.model-colour-7{stroke:var(--model-7);color:var(--model-7)}#model-chart{width:100%;display:block}.individual-model-line{fill:none;stroke-width:2;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Light/dark controls surfaces; palettes affect accents only. */
:root[data-palette=atlantic]{--sea:#315e95;--foam:#e3ecf7}
:root[data-palette=heather]{--sea:#754e90;--foam:#eee7f4}
:root[data-mode=dark]{color-scheme:dark;--paper:#10191c;--card:#19252a;--ink:#e0eceb;--muted:#9badb1;--line:#34444a;--sea:#92d0b8;--foam:#203c33;--sand:#2c363a;--coral:#efa18a;--orange:#efb78a;--shadow:0 8px 30px #00000015;--hover:#ffffff08;--low-bg:#402d25;--mid-bg:#383b25;--mid-ink:#d7d695;--night-bg:#253238;--promo-bg:#233940;--promo-ink:#e0eceb;--promo-muted:#b9d0ce;--model-0:#92d0b8;--model-1:#e9aa88;--model-2:#b8baf2;--model-3:#d6c883;--model-4:#91c5e8;--model-5:#e0a8c4;--model-6:#bdcfa5;--model-7:#d9bb96}
:root[data-mode=dark][data-palette=atlantic]{--sea:#a0c5ee;--foam:#263849}
:root[data-mode=dark][data-palette=heather]{--sea:#ceb6e4;--foam:#3b2e46}
.appearance-button svg{stroke:none;fill:var(--sea)}.appearance-button circle:nth-child(2){fill:var(--coral)}.appearance-button circle:nth-child(3){fill:var(--muted)}.appearance-button circle:nth-child(4){fill:var(--ink)}
#appearance-dialog{width:min(480px,calc(100% - 32px))}.appearance-label{font-size:12px;font-weight:650;margin:5px 0 12px}.appearance-label:not(:first-of-type){margin-top:26px}.mode-options,.palette-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mode-options button,.palette-options button{min-height:70px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:12px 5px}.mode-options button{font-size:22px}.mode-options span{font-size:12px}.mode-options [aria-pressed=true],.palette-options [aria-pressed=true]{border-color:var(--sea);background:var(--foam);box-shadow:inset 0 0 0 1px var(--sea)}.palette-swatch{width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000018}.palette-sea{background:#85baa8}.palette-atlantic{background:#81a5d2}.palette-heather{background:#b594cd}
.search-location{display:flex;align-items:center;gap:13px;margin-top:13px}.search-location button{color:var(--sea);background:var(--foam);border-color:var(--line);white-space:nowrap}.search-location>span{font-size:10px;line-height:1.5;color:var(--muted)}.search-filters{flex-wrap:wrap;gap:5px}.search-filters>span{white-space:nowrap}.search-group-heading{padding:12px 3px 13px}.search-group-heading h3{font-size:13px;margin:0;font-weight:650}.search-group-heading p{font-size:10px;color:var(--muted);margin:4px 0 0}.search-row strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.well-known{font-size:8px;font-weight:600;color:var(--sea);background:var(--foam);border-radius:20px;padding:4px 7px;white-space:nowrap}
.secondary-column .evidence-heading{margin:8px 0 0}.mobile-evidence-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:0;min-height:44px;font-size:20px;font-weight:650;letter-spacing:-.6px}.mobile-evidence-toggle:disabled{opacity:1;color:var(--ink);background:none;transform:none}.evidence-sign{display:none}.mobile-evidence-body{margin-top:15px}.mobile-evidence-body .confidence-number{margin-top:0}.mobile-evidence-body>p:not(.fine-print){font-size:12px;line-height:1.6}.mobile-evidence-body>p:first-child{margin-top:0}
@media(max-width:760px){.masthead{flex-wrap:wrap;gap:10px}.top-actions{gap:7px}.top-actions .live-pill{position:absolute;top:73px;left:20px;font-size:8px;max-width:none;white-space:nowrap}.masthead{padding-bottom:35px}.brand span{font-size:18px}.brand .brand-mark{width:34px;height:34px}.brand{gap:8px}.top-actions .icon-button{width:40px;height:40px}.search-location{gap:10px}.search-location button{font-size:11px;padding:10px 12px}.search-location>span{font-size:9px}.search-group-heading{padding-top:8px}.well-known{font-size:8px}.search-results{min-height:70px;max-height:42dvh}.evidence-sign{display:block}.mobile-evidence-toggle{font-size:18px}.mobile-evidence-body{margin-top:14px}.mobile-evidence-body:not(.open){margin-top:0}#appearance-dialog{width:100%;max-height:90dvh}.mode-options,.palette-options{gap:8px}.palette-options button{font-size:11px}.appearance-label{margin-top:0}}
@media(max-width:360px){.top-actions .live-pill{display:flex;left:15px}.brand span{font-size:16px}.brand .brand-mark{width:30px;height:30px}.top-actions .icon-button{width:36px;height:36px}.shell{min-width:0}}
.discovery-days{display:flex;gap:7px;margin:18px 0 10px}.discovery-days button{min-height:44px;padding:10px 19px;border:1px solid var(--line);border-radius:22px;background:var(--card);font-size:12px}.discovery-days [aria-pressed=true]{background:var(--foam);border-color:var(--sea);color:var(--sea)}.discovery-summary{font-size:11px;line-height:1.65;grid-column:1/-1;color:var(--muted);margin:0}
.spot-title>span{padding:0;line-height:1;flex-shrink:0}.spot-title svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.save-button{padding:0;line-height:1}.save-button svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.save-button[aria-pressed=true] svg{fill:currentColor}
/* Rating colours are independent of the user's decorative palette. */
:root{--rating-red:#9b403b;--rating-red-bg:#f5e3dc;--rating-orange:#98512d;--rating-orange-bg:#f3e6d6;--rating-amber:#716023;--rating-amber-bg:#f0ecd2;--rating-green:#34633f;--rating-green-bg:#e5edde;--rating-best:#1a5e50;--rating-best-bg:#dcece4}
:root[data-mode=dark]{--rating-red:#f3a08d;--rating-red-bg:#3c2925;--rating-orange:#efb184;--rating-orange-bg:#3b3023;--rating-amber:#dbcf86;--rating-amber-bg:#343422;--rating-green:#b0d49c;--rating-green-bg:#28382a;--rating-best:#93d4b7;--rating-best-bg:#203a31}
[data-rating-band]{--rating-ink:var(--muted);--rating-bg:var(--night-bg)}
[data-rating-band=very-low]{--rating-ink:var(--rating-red);--rating-bg:var(--rating-red-bg)}
[data-rating-band=low]{--rating-ink:var(--rating-orange);--rating-bg:var(--rating-orange-bg)}
[data-rating-band=fair]{--rating-ink:var(--rating-amber);--rating-bg:var(--rating-amber-bg)}
[data-rating-band=good]{--rating-ink:var(--rating-green);--rating-bg:var(--rating-green-bg)}
[data-rating-band=excellent]{--rating-ink:var(--rating-best);--rating-bg:var(--rating-best-bg)}
.quality[data-rating-band],.score[data-rating-band],.day-button .day-score[data-rating-band],.ranking-score[data-rating-band],.rating-summary [data-rating-band]{color:var(--rating-ink)}
.hour-card[data-rating-band]:not(.night){background:var(--rating-bg);color:var(--rating-ink)}
.best-window[data-rating-band]{background:var(--rating-bg)}
#score-info{padding:8px 3px;border-radius:12px;flex-shrink:0;text-align:left;min-height:70px}
#score-info strong{font-size:82px;font-variant-numeric:tabular-nums;letter-spacing:-4px}
#score-info>span{font-size:20px;margin-top:19px}#score-info small{font-size:7px;letter-spacing:.2px;white-space:nowrap}
#rating-dialog,.reading-dialog{width:min(660px,calc(100% - 32px))}
#rating-dialog[open],.reading-dialog[open]{display:block;overflow-y:auto;overscroll-behavior:contain}
#rating-dialog .dialog-header,.reading-dialog .dialog-header{position:sticky;top:-1px;background:var(--card);z-index:1;padding-bottom:12px}
.rating-summary{display:flex;align-items:center;gap:20px;margin:8px 0 15px}.rating-summary>strong{font-size:62px;line-height:1.1;letter-spacing:-2px}.rating-summary small{font-size:23px;color:var(--muted);letter-spacing:0}.rating-summary>span{font-size:25px;font-weight:650}
.rating-intro{font-size:13px;color:var(--muted)}.rating-factors{display:grid;gap:11px;margin:21px 0}.rating-factor{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.rating-factor>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.rating-factor strong{font-size:13px}.rating-factor span{font-size:11px;color:var(--muted)}.rating-factor b{font-size:12px;margin-left:auto}.rating-factor p{font-size:11px;color:var(--muted);margin:7px 0 0}.rating-factor progress{width:100%;height:7px;display:block;margin-top:12px;border:0;border-radius:8px;background:var(--line);appearance:none;accent-color:var(--sea)}.rating-factor progress::-webkit-progress-bar{background:var(--line);border-radius:8px}.rating-factor progress::-webkit-progress-value{background:var(--sea);border-radius:8px}.rating-factor progress::-moz-progress-bar{background:var(--sea);border-radius:8px}.rating-factor.penalty b{color:var(--rating-red)}.rating-factor.penalty progress{accent-color:var(--rating-red)}.rating-factor.penalty progress::-webkit-progress-value{background:var(--rating-red)}.rating-factor.penalty progress::-moz-progress-bar{background:var(--rating-red)}.rating-factor.boost b{color:var(--rating-best)}
.rating-guide-title{font-size:16px;margin:25px 0 12px}.rating-bands{display:grid;gap:7px}.rating-bands>div{display:grid;grid-template-columns:60px 1fr;gap:3px 10px;background:var(--rating-bg);color:var(--rating-ink);border-radius:11px;padding:12px 14px;font-size:12px}.rating-bands span{grid-row:span 2;font-weight:700}.rating-bands small{font-size:11px}
.help-button{font-size:22px;font-weight:650}.language-button{font-size:12px;font-weight:700;letter-spacing:.4px}.colour-wheel{display:block;width:23px;height:23px;border-radius:50%;background:conic-gradient(#c98b73 0 60deg,#c9b780 60deg 120deg,#85baa8 120deg 180deg,#81a5d2 180deg 240deg,#b594cd 240deg 300deg,#c98da6 300deg);box-shadow:inset 0 0 0 1px #ffffff40;position:relative}.colour-wheel:after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--card)}
.faq-content details{border-bottom:1px solid var(--line);padding:16px 0;margin:0}.faq-content summary{font-size:14px;font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none}.faq-content summary::-webkit-details-marker{display:none}.faq-content summary:after{content:"+";font-size:20px;font-weight:400}.faq-content details[open] summary:after{content:"−"}.faq-content p{font-size:13px;color:var(--muted);margin-bottom:0}.language-options{display:grid;gap:8px}.language-options button{display:flex;justify-content:space-between;padding:16px;border:1px solid var(--line);border-radius:13px;min-height:52px;text-align:left}.language-options span{color:var(--muted);font-size:11px}.language-options [aria-pressed=true]{background:var(--foam);border-color:var(--sea);color:var(--sea)}
@media(max-width:1000px){#score-info strong{font-size:64px}#score-info>span{font-size:16px}}
@media(max-width:760px){.brand small{display:none}.top-actions{gap:6px}.top-actions .icon-button{width:36px;height:36px}.masthead{flex-wrap:nowrap}.brand span{font-size:17px}.brand .brand-mark{width:31px;height:31px}.brand{gap:7px}.verdict-main{align-items:flex-start;flex-wrap:wrap}#score-info strong{font-size:64px}#score-info>span{font-size:16px;margin-top:16px}#score-info small{font-size:6px}.verdict-main>div{flex:1;min-width:130px}.quality{overflow-wrap:anywhere}.ranking-score small{font-size:12px}#rating-dialog,.reading-dialog{width:100%;max-height:90dvh}#rating-dialog:before,.reading-dialog:before{display:block}.dialog-header h2{font-size:25px}.rating-summary>strong{font-size:55px}.rating-summary>span{font-size:21px}.rating-factor span{font-size:10px}.rating-factor b{font-size:11px}.faq-content summary{font-size:13px}}
@media(max-width:380px){.brand span{font-size:15px}.brand .brand-mark{width:27px;height:27px}.top-actions{gap:4px}.top-actions .icon-button{width:32px;height:32px}.brand{gap:5px}.language-button{font-size:10px}.colour-wheel{width:20px;height:20px}.colour-wheel:after{inset:7px}#score-info strong{font-size:58px}#score-info>span{font-size:14px}}
/* Launch controls: one settings entry, readable pages and generous touch targets. */
.skip-link{position:fixed;top:8px;left:8px;z-index:20;padding:12px;background:var(--ink);color:var(--paper);transform:translateY(-150%);border-radius:8px}.skip-link:focus{transform:none}.spot-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.spot-actions .icon-button{width:48px;height:48px}button.live-pill{min-height:44px;padding:5px 0;text-align:left}.footer-links{display:flex;flex-wrap:wrap;gap:3px 16px;margin-top:15px;align-items:center}.footer-links a,.footer-links button{font-size:12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px;padding:3px 0}.source-credit{font-size:11px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.settings-grid label{display:grid;gap:8px;font-size:13px;font-weight:600}select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;min-height:46px;width:100%;padding:9px 10px}select:focus-visible{outline:3px solid var(--sea);outline-offset:3px}.settings-shortcuts{display:flex;gap:10px;margin:22px 0}.device-settings{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.device-settings h3{font-size:17px;margin-bottom:12px}.remember-choice{display:flex;gap:12px;align-items:center;min-height:44px;font-size:14px}.remember-choice input{width:21px;height:21px;accent-color:var(--sea)}.device-settings>button{margin:10px 10px 10px 0}.device-settings>a{display:block;font-size:12px;margin:12px 0;min-height:35px}.info-content{font-size:14px;line-height:1.7}.info-content h3{font-size:18px;margin:26px 0 8px}.info-content p{margin:12px 0;color:var(--muted)}.info-content .lead{color:var(--ink);font-size:19px;line-height:1.5}.info-content a{color:var(--sea);text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}.info-content strong{color:var(--ink)}.status-list{display:grid;gap:7px;padding:15px;background:var(--foam);border-radius:12px}.status-list dt{color:var(--muted);font-size:12px}.status-list dd{margin:0 0 8px;font-weight:600;overflow-wrap:anywhere}.share-label{font-size:13px;display:grid;gap:10px}.share-label input{font:inherit;width:100%;min-height:48px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:12px}#info-dialog .dialog-header h2{font-size:25px}#settings-dialog,#info-dialog,#status-dialog,#share-dialog{background:var(--card)}#settings-dialog .fine-print{font-size:12px}#clear-confirm{padding:12px;background:var(--sand);border-radius:12px;font-size:13px}#clear-confirm button{margin-right:10px}.top-actions .icon-button{min-width:44px;min-height:44px}.main-nav button{min-height:44px}.chart-switch button,.comparison-tools button,.search-filters button{min-height:44px}.round-button{min-width:44px;min-height:44px}
@media(max-width:760px){.masthead{position:relative;padding-bottom:42px}.masthead .live-pill{position:absolute;bottom:0;left:0;max-width:none;font-size:10px;min-height:34px}.top-actions{gap:6px}.brand span{font-size:18px}.brand .brand-mark{width:34px;height:34px}.top-actions .icon-button{width:44px;height:44px}.spot-title span{width:36px;height:36px}.spot-actions{gap:7px}.spot-actions .icon-button,.spot-actions .save-button{width:44px;height:44px}.spot-heading :is(h1,.seo-section-title){font-size:clamp(32px,9vw,42px)}.settings-grid{gap:13px}.info-content{font-size:14px}#info-dialog .dialog-header h2{font-size:23px}.footer-links{gap:2px 18px}.footer-links a,.footer-links button{font-size:12px}.settings-shortcuts{flex-wrap:wrap}.settings-grid select{font-size:16px}}
@media(max-width:380px){.shell{padding:0 14px}.brand span{font-size:16px}.brand .brand-mark{width:28px;height:28px}.top-actions{gap:4px}.spot-actions{gap:5px}.settings-grid{grid-template-columns:1fr}.spot-title :is(h1,.seo-section-title){font-size:32px}.main-nav{gap:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Calm hover states and geometrically centred close icons. */
.brand:hover,.spot-title:hover{background:none;filter:none;color:var(--sea)}
.icon-button{padding:0;line-height:1;flex-shrink:0;align-items:center;justify-items:center}
.icon-button .close-icon{display:block;width:18px;height:18px;margin:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.search-field input:focus,.search-field input:focus-visible{outline:none;box-shadow:none}
.search-field:focus-within{border-color:var(--muted)}
.chart-choice{display:grid;gap:5px;min-width:165px;font-size:10px;color:var(--muted)}
.chart-choice select{font-size:12px;min-height:44px;color:var(--ink);border-radius:12px;background:var(--card)}
.chart-reading{font-size:12px;color:var(--ink);margin:14px 0 0;font-weight:600}
.chart-gusts{stroke:var(--coral);stroke-dasharray:5 4}
@media(max-width:760px){.chart-panel .section-heading{flex-wrap:wrap;align-items:flex-start;gap:14px}.chart-choice{width:100%;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.chart-choice select{font-size:16px}.chart-reading{font-size:12px;line-height:1.6}}

/* Seven-day planning: daily coverage and independent session links. */
.week-coverage{margin:0 0 20px}.week-coverage>.fine-print{margin:0 0 12px}.coverage-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.coverage-day{padding:12px;background:var(--card);border-radius:12px;border:1px solid var(--line);min-width:0}.coverage-day b,.coverage-day span,.coverage-day small{display:block}.coverage-day b{font-size:12px}.coverage-day span{font-size:11px;color:var(--muted);margin:5px 0}.coverage-day small{font-size:10px;line-height:1.5;color:var(--muted)}.coverage-day.available{background:var(--foam)}.discovery-card .session-trust{font-size:11px;color:var(--muted);margin:0 0 14px}.weekly-card>.outline-button{margin-top:17px;width:100%;text-align:left}.week-alternatives{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.week-alternatives summary{font-size:12px;min-height:36px;display:flex;align-items:center;justify-content:space-between}.week-alternatives summary:after{content:'+'}.week-alternatives[open] summary:after{content:'−'}.week-session{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:14px 0;border-top:1px solid var(--line);min-height:44px}.week-session b{font-size:12px}.week-session small{display:block;font-size:10px;color:var(--muted);line-height:1.6;margin-top:4px}.week-session>strong{font-size:23px;flex-shrink:0}.week-session>strong small{font-size:9px;text-align:right}.weekly-card{cursor:default}@media(max-width:650px){.coverage-days{display:flex;overflow-x:auto;overscroll-behavior-x:contain}.coverage-day{flex:0 0 105px}.discovery-days{gap:6px}.discovery-days button{padding:10px 13px;font-size:12px}}

.weekly-card:hover{background:var(--card)}

.site-copyright{font-variant-numeric:tabular-nums}

/* Original BestSwell overview cards: directions and rating colours. */
.direction-arrow{display:inline-block;width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.direction-missing,.calm-mark{display:inline-grid;place-items:center;width:19px;height:19px;font-size:17px}.overview-key{font-size:11px;color:var(--muted);line-height:1.6;margin:-14px 0 25px;max-width:850px}.overview-day.day-button{display:flex;flex-direction:column;align-items:stretch;gap:10px;text-align:left;padding:14px;min-width:132px;flex:1 0 132px;scroll-snap-align:start}.day-row{scroll-snap-type:x proximity;overscroll-behavior-x:contain}.overview-day-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.overview-day-heading b{font-size:12px;margin-bottom:4px}.overview-day-heading small{font-size:10px}.overview-day.day-button .day-score{display:block;font-size:19px;font-variant-numeric:tabular-nums;text-align:right;line-height:1.1}.overview-day .day-score small{display:block;font:8px system-ui;color:var(--muted);margin-top:3px}.day-surf-range{display:block;font-size:17px;font-weight:650;letter-spacing:-.4px;line-height:1.2;white-space:nowrap}.day-slot-label{font-size:9px;color:var(--muted);white-space:nowrap}.day-preview-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.day-preview-slot{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}.day-preview-slot>small{font:9px ui-monospace,monospace;color:var(--muted)}.day-preview-slot>span:nth-child(2){height:20px;display:grid;place-items:center}.day-rating-strip{width:100%;min-height:17px;border-radius:4px;background:var(--rating-bg);color:var(--rating-ink);border-bottom:3px solid var(--rating-ink);font:9px ui-monospace,monospace;display:grid;place-items:center}.day-rating-strip[data-rating-band=unknown]{background:var(--night-bg);border-color:var(--line)}.condition-hour.hour-card{width:132px;min-width:132px;display:flex;flex-direction:column;gap:9px;padding:14px 11px;text-align:left;position:relative;overflow:hidden}.condition-hour.hour-card>.hour-time{font-size:11px}.condition-hour.hour-card>.hour-quality{display:flex;align-items:baseline;gap:4px;font-size:30px;font-weight:600;margin:0}.hour-quality small{font-size:9px;font-weight:400;letter-spacing:0}.condition-hour .hour-surf{display:flex;align-items:baseline;justify-content:space-between;gap:5px;font-size:13px;font-weight:650;white-space:nowrap}.hour-surf small{font-size:11px;font-weight:500}.hour-direction{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:23px;font-size:9px}.hour-direction .direction-label{font-size:9px;opacity:.9}.direction-value{display:flex;align-items:center;gap:3px;white-space:nowrap;font-size:10px}.direction-value small{font:8px system-ui;letter-spacing:0}.hour-rating-strip{display:block;height:4px;border-radius:4px;background:var(--rating-ink);margin-top:1px}.hour-card.night .hour-rating-strip{background:var(--line)}.condition-hour.hour-card.active{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor}.condition-hour .direction-arrow{width:15px;height:15px}.hour-cards .condition-hour:not(.active){border-color:transparent}@media(max-width:760px){.overview-day.day-button{padding:12px;min-width:126px;flex:0 0 126px;gap:10px}.overview-day-heading b{font-size:11px}.day-surf-range{font-size:16px}.overview-day.day-button .day-score{font-size:18px}.overview-key{font-size:10px;margin:-8px 0 21px}.condition-hour.hour-card{width:126px;min-width:126px;padding:13px 10px}.condition-hour.hour-card>.hour-quality{font-size:28px}}

/* Original optional surf profile: native controls, no automatic safety thresholds. */
.profile-summary {margin:0 0 16px}
.profile-summary>.text-button {font-size:12px;color:var(--muted);padding:6px 0;text-align:left}
.experience-note {font-size:13px;line-height:1.55;margin:8px 0 0;padding:10px 0;border-top:1px solid var(--line);color:var(--muted)}
.experience-note[data-assessment="above"],.experience-note[data-assessment="limited"] {color:var(--ink);border-left:3px solid var(--orange);padding-left:12px}
.experience-levels {border:0;padding:0;margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.experience-levels legend {font-weight:600;margin-bottom:10px}
.experience-levels label {display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer}
.experience-levels label:has(input:checked) {background:var(--foam);border-color:var(--sea)}
.experience-levels input {margin:4px 0 0;flex-shrink:0;accent-color:var(--sea)}
.experience-levels strong,.experience-levels small {display:block}
.experience-levels small {font-size:12px;line-height:1.5;color:var(--muted);margin-top:5px}
.experience-limit-control {margin-bottom:22px}
.limit-label {display:flex;justify-content:space-between;gap:16px;font-size:13px;margin:14px 0 10px}
.limit-label output {font-weight:600}
#experience-limit {width:100%;accent-color:var(--sea)}
#experience-limit:disabled {opacity:.4}
.experience-dialog>.primary-button {width:100%;margin-top:14px}
@media(max-width:480px){.experience-levels {grid-template-columns:1fr}.experience-levels label {padding:12px}.experience-dialog .dialog-header h2 {font-size:25px}}

/* Keep the sticky profile title on the same surface as its dialog. */
.experience-dialog .dialog-header {background:var(--paper)}

/* Weather icons carry their own meaning, separate from surf-quality colours. */
.weather-icon {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;color:var(--muted)}
.weather-sun,.weather-sun-cloud {color:#906317}
:root[data-mode=dark] .weather-sun,:root[data-mode=dark] .weather-sun-cloud {color:#edc773}
.weather-storm {color:var(--orange)}
.hour-weather,.day-weather {display:flex;align-items:center;gap:6px;min-height:28px}
.hour-weather small,.day-weather small {font-size:9px;line-height:1.4;color:var(--muted)}
.hour-weather small {max-width:74px}
.day-weather .weather-icon {width:21px;height:21px}
.thunder-flag {font-size:12px;margin-left:auto}
.selected-weather {display:flex;align-items:center;gap:10px;margin:12px 0 16px}
.selected-weather strong,.selected-weather small {display:block}
.selected-weather strong {font-size:14px;font-weight:600}
.selected-weather small {font-size:10px;color:var(--muted);margin-top:3px;line-height:1.5}
#weather-day-note {margin:0 0 12px}

.brand-mark {display:block;flex-shrink:0}
.brand-mark .brand-background {fill:var(--sea)}
.brand-mark .brand-wave {fill:var(--paper)}
.brand-mark .brand-wave-line {fill:none;stroke:var(--paper);stroke-width:3;stroke-linecap:round}

/* Direction indicators follow appearance; quality bands keep their semantic colours. */
.direction-arrow {color:var(--sea)}

/* A separate compact bar avoids resizing the rich cards or moving page content. */
.sticky-days{position:fixed;z-index:20;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(1160px,calc(100% - 80px));padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 25px #00000018;display:flex;align-items:center;gap:16px}
.sticky-days[hidden]{display:none}.sticky-spot{font-size:14px;font-weight:650;padding:0 12px;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-days{display:flex;gap:4px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none;overscroll-behavior-x:contain}.compact-days::-webkit-scrollbar{display:none}.compact-day{flex:1 0 83px;min-height:50px;border-radius:10px;padding:7px 10px;text-align:left;color:var(--muted)}.compact-day.active{background:var(--card);color:var(--ink)}.compact-day b{display:block;font-size:11px;line-height:1.5}.compact-day>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.compact-day small{font-size:10px}.compact-day strong{font-size:11px;color:var(--rating-ink);margin-left:auto}.compact-day .weather-icon{width:15px;height:15px}.spot-directory{margin-top:16px}.directory-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.directory-links a{font-size:11px;color:var(--muted)}.directory-links small{display:block;font-size:9px}.noscript-content{max-width:1160px;margin:20px auto;padding:20px;line-height:1.6}
@media(min-width:1400px){.sticky-days{width:1250px}}@media(max-width:1000px){.sticky-days{width:calc(100% - 50px)}}@media(max-width:760px){.sticky-days{width:calc(100% - 20px);padding:4px;border-radius:13px;gap:0}.sticky-spot{display:none}.compact-day{flex:1 0 77px;padding:7px 8px}.compact-day b{font-size:10px}.compact-day small{font-size:9px}.directory-links{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Decorative title accents stay independent of the neutral body text. */
.brand>span,.spot-title :is(h1,.seo-section-title){color:var(--sea)}

/* Numbered palette trial: neutral surfaces stay shared by all choices. */
:root{--accent-secondary:var(--muted)}
:root[data-palette=hunt-1]{--sea:#006989;--foam:#e3eae6;--accent-secondary:#9b5e45}
:root[data-mode=dark][data-palette=hunt-1]{--sea:#4c96ac;--foam:#182a30;--accent-secondary:#e88d67}
.hunt-swatches-1{--swatch-0:#005C78;--swatch-1:#006989;--swatch-2:#F3F7EC;--swatch-3:#E88D67;}
:root[data-palette=hunt-2]{--sea:#007a8e;--foam:#e3ebe6;--accent-secondary:#946335}
:root[data-mode=dark][data-palette=hunt-2]{--sea:#2498ac;--foam:#132b30;--accent-secondary:#ffab5b}
.hunt-swatches-2{--swatch-0:#FFF2DB;--swatch-1:#FFAB5B;--swatch-2:#00879E;--swatch-3:#003092;}
:root[data-palette=hunt-3]{--sea:#22668d;--foam:#e6eae6;--accent-secondary:#856a3a}
:root[data-mode=dark][data-palette=hunt-3]{--sea:#6292ae;--foam:#1b2a30;--accent-secondary:#ffcc70}
.hunt-swatches-3{--swatch-0:#22668D;--swatch-1:#8ECDDD;--swatch-2:#FFFADD;--swatch-3:#FFCC70;}
:root[data-palette=hunt-4]{--sea:#b44e4b;--foam:#f2e8e1;--accent-secondary:#966043}
:root[data-mode=dark][data-palette=hunt-4]{--sea:#ed6663;--foam:#2f2426;--accent-secondary:#ffa372}
.hunt-swatches-4{--swatch-0:#FFA372;--swatch-1:#ED6663;--swatch-2:#0F4C81;--swatch-3:#1B262C;}
:root[data-palette=hunt-5]{--sea:#c04800;--foam:#f3e7db;--accent-secondary:#005792}
:root[data-mode=dark][data-palette=hunt-5]{--sea:#fd5f00;--foam:#312318;--accent-secondary:#5992b8}
.hunt-swatches-5{--swatch-0:#FD5F00;--swatch-1:#F6F6E9;--swatch-2:#005792;--swatch-3:#13334C;}
:root[data-palette=hunt-6]{--sea:#876830;--foam:#eeeadf;--accent-secondary:#2c4e80}
:root[data-mode=dark][data-palette=hunt-6]{--sea:#ffc55a;--foam:#313125;--accent-secondary:#788eae}
.hunt-swatches-6{--swatch-0:#2C4E80;--swatch-1:#00215E;--swatch-2:#FFC55A;--swatch-3:#FC4100;}
:root[data-palette=hunt-7]{--sea:#2845d6;--foam:#e6e7ec;--accent-secondary:#aa5832}
:root[data-mode=dark][data-palette=hunt-7]{--sea:#7386e4;--foam:#1e2838;--accent-secondary:#f68048}
.hunt-swatches-7{--swatch-0:#F68048;--swatch-1:#2845D6;--swatch-2:#1A2CA3;--swatch-3:#0D1A63;}
:root[data-palette=hunt-8]{--sea:#746890;--foam:#edeae6;--accent-secondary:#866670}
:root[data-mode=dark][data-palette=hunt-8]{--sea:#9186ac;--foam:#222830;--accent-secondary:#efb6c8}
.hunt-swatches-8{--swatch-0:#8174A0;--swatch-1:#A888B5;--swatch-2:#EFB6C8;--swatch-3:#FFD2A0;}
:root[data-palette=hunt-9]{--sea:#c93363;--foam:#f3e5e3;--accent-secondary:#40679e}
:root[data-mode=dark][data-palette=hunt-9]{--sea:#ff407d;--foam:#311e2a;--accent-secondary:#708db6}
.hunt-swatches-9{--swatch-0:#1B3C73;--swatch-1:#40679E;--swatch-2:#FFCAD4;--swatch-3:#FF407D;}
:root[data-palette=hunt-10]{--sea:#c53a50;--foam:#f3e6e1;--accent-secondary:#2b3467}
:root[data-mode=dark][data-palette=hunt-10]{--sea:#ed586f;--foam:#2f2228;--accent-secondary:#868ba8}
.hunt-swatches-10{--swatch-0:#EB455F;--swatch-1:#FCFFE7;--swatch-2:#BAD7E9;--swatch-3:#2B3467;}
:root[data-palette=hunt-11]{--sea:#3f4f44;--foam:#e8e8e0;--accent-secondary:#88674d}
:root[data-mode=dark][data-palette=hunt-11]{--sea:#848e87;--foam:#20292b;--accent-secondary:#a98467}
.hunt-swatches-11{--swatch-0:#2C3930;--swatch-1:#3F4F44;--swatch-2:#A27B5C;--swatch-3:#DCD7C9;}
:root[data-palette=hunt-12]{--sea:#926443;--foam:#efe9e0;--accent-secondary:#8f384d}
:root[data-mode=dark][data-palette=hunt-12]{--sea:#dd9866;--foam:#2d2b26;--accent-secondary:#b57c8a}
.hunt-swatches-12{--swatch-0:#DD9866;--swatch-1:#8F384D;--swatch-2:#5C6E91;--swatch-3:#EEEDED;}
:root[data-palette=hunt-13]{--sea:#5e6bad;--foam:#ebeae9;--accent-secondary:#a85642}
:root[data-mode=dark][data-palette=hunt-13]{--sea:#7f89bf;--foam:#202933;--accent-secondary:#ff8364}
.hunt-swatches-13{--swatch-0:#FF8364;--swatch-1:#FFB677;--swatch-2:#5F6CAF;--swatch-3:#EDF7FA;}
:root[data-palette=hunt-14]{--sea:#856b27;--foam:#eeeade;--accent-secondary:#c2396e}
:root[data-mode=dark][data-palette=hunt-14]{--sea:#ffcd4b;--foam:#313223;--accent-secondary:#ff4b91}
.hunt-swatches-14{--swatch-0:#FFCD4B;--swatch-1:#FF7676;--swatch-2:#FF4B91;--swatch-3:#0802A3;}
:root[data-palette=hunt-15]{--sea:#007993;--foam:#e3ebe7;--accent-secondary:#996210}
:root[data-mode=dark][data-palette=hunt-15]{--sea:#00a8cc;--foam:#0e2d35;--accent-secondary:#ffa41b}
.hunt-swatches-15{--swatch-0:#00A8CC;--swatch-1:#005082;--swatch-2:#000839;--swatch-3:#FFA41B;}
:root[data-palette=hunt-16]{--sea:#1d797d;--foam:#e6ebe5;--accent-secondary:#0766ad}
:root[data-mode=dark][data-palette=hunt-16]{--sea:#29adb2;--foam:#142e31;--accent-secondary:#4f92c5}
.hunt-swatches-16{--swatch-0:#F3F3F3;--swatch-1:#C5E898;--swatch-2:#29ADB2;--swatch-3:#0766AD;}
:root[data-palette=hunt-17]{--sea:#487488;--foam:#e9ebe6;--accent-secondary:#507853}
:root[data-mode=dark][data-palette=hunt-17]{--sea:#6fb2d2;--foam:#1d2e35;--accent-secondary:#85c88a}
.hunt-swatches-17{--swatch-0:#EEEEEE;--swatch-1:#EBD671;--swatch-2:#85C88A;--swatch-3:#6FB2D2;}
:root[data-palette=hunt-18]{--sea:#5f707b;--foam:#ebeae5;--accent-secondary:#607267}
:root[data-mode=dark][data-palette=hunt-18]{--sea:#89a3b2;--foam:#212c31;--accent-secondary:#b2d3be}
.hunt-swatches-18{--swatch-0:#5E6073;--swatch-1:#89A3B2;--swatch-2:#B2D3BE;--swatch-3:#F2F4D1;}
:root[data-palette=hunt-19]{--sea:#0b7f54;--foam:#e4ece2;--accent-secondary:#10316b}
:root[data-mode=dark][data-palette=hunt-19]{--sea:#3c9d79;--foam:#162b29;--accent-secondary:#7c8eae}
.hunt-swatches-19{--swatch-0:#DEE1EC;--swatch-1:#EAC100;--swatch-2:#0B8457;--swatch-3:#10316B;}
:root[data-palette=hunt-20]{--sea:#0b7e5c;--foam:#e4ebe2;--accent-secondary:#50719b}
:root[data-mode=dark][data-palette=hunt-20]{--sea:#12cc94;--foam:#10322d;--accent-secondary:#688ebe}
.hunt-swatches-20{--swatch-0:#6088BB;--swatch-1:#12CC94;--swatch-2:#9EF4E6;--swatch-3:#F1F6F5;}
:root[data-palette=hunt-21]{--sea:#0c7a87;--foam:#e4ebe6;--accent-secondary:#487756}
:root[data-mode=dark][data-palette=hunt-21]{--sea:#1f99a8;--foam:#122b30;--accent-secondary:#7dce94}
.hunt-swatches-21{--swatch-0:#EFEDE7;--swatch-1:#7DCE94;--swatch-2:#0E91A1;--swatch-3:#146C78;}
:root[data-palette=hunt-22]{--sea:#1c7293;--foam:#e5ebe7;--accent-secondary:#5e7465}
:root[data-mode=dark][data-palette=hunt-22]{--sea:#5294ad;--foam:#192a30;--accent-secondary:#b9e3c6}
.hunt-swatches-22{--swatch-0:#F1F2EB;--swatch-1:#B9E3C6;--swatch-2:#1C7293;--swatch-3:#272932;}
:root[data-palette=hunt-23]{--sea:#1e7986;--foam:#e6ebe6;--accent-secondary:#65761c}
:root[data-mode=dark][data-palette=hunt-23]{--sea:#3f97a4;--foam:#172b2f;--accent-secondary:#a9c52f}
.hunt-swatches-23{--swatch-0:#F5F5F5;--swatch-1:#A9C52F;--swatch-2:#228896;--swatch-3:#283739;}
:root[data-palette=hunt-24]{--sea:#29435c;--foam:#e7e7e2;--accent-secondary:#556e53}
:root[data-mode=dark][data-palette=hunt-24]{--sea:#7f8e9d;--foam:#20292e;--accent-secondary:#7e917c}
.hunt-swatches-24{--swatch-0:#D1D4C9;--swatch-1:#556E53;--swatch-2:#29435C;--swatch-3:#152A38;}
:root[data-palette=hunt-25]{--sea:#666e79;--foam:#ebeae5;--accent-secondary:#667261}
:root[data-mode=dark][data-palette=hunt-25]{--sea:#c5d3e8;--foam:#293339;--accent-secondary:#d0e8c5}
.hunt-swatches-25{--swatch-0:#FFF8DE;--swatch-1:#D0E8C5;--swatch-2:#C5D3E8;--swatch-3:#A6AEBF;}
.brand small{color:var(--sea)}
#appearance-dialog{width:min(620px,calc(100% - 32px))}.appearance-scroll{overflow-y:auto;min-height:0;overscroll-behavior:contain;padding-right:3px}#appearance-dialog>.dialog-header,#appearance-dialog>.dialog-footer{flex-shrink:0}.trial-palettes{grid-template-columns:repeat(3,minmax(0,1fr))}.trial-palettes button{gap:9px;min-height:79px;font-size:11px;line-height:1.4}.hunt-swatches{display:flex;width:100%;height:20px;overflow:hidden;border-radius:6px}.hunt-swatches i{flex:1}.hunt-swatches i:nth-child(1){background:var(--swatch-0)}.hunt-swatches i:nth-child(2){background:var(--swatch-1)}.hunt-swatches i:nth-child(3){background:var(--swatch-2)}.hunt-swatches i:nth-child(4){background:var(--swatch-3)}
@media(max-width:760px){#appearance-dialog{width:100%}.trial-palettes{grid-template-columns:repeat(2,minmax(0,1fr))}.trial-palettes button{min-height:76px;font-size:12px}#appearance-dialog>.dialog-header,#appearance-dialog>.dialog-footer{flex-shrink:0}}

/* Appearance previews remove the tinted veil without changing the page theme. */
#appearance-dialog::backdrop{background:rgb(0 0 0 / .25);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:background .18s ease,backdrop-filter .18s ease}
#appearance-dialog.appearance-preview::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
@media(prefers-reduced-motion:reduce){#appearance-dialog::backdrop{transition:none}}

.report-panel{background:var(--card);color:var(--ink)}.report-actions{display:grid;gap:8px;margin-top:16px}.report-actions button{min-height:44px;padding:11px 14px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--foam);color:var(--sea);font:inherit;font-size:13px}.report-actions button:disabled{cursor:default;opacity:1}.report-actions button:disabled:hover{background:var(--foam);filter:none;box-shadow:none}

/* Sticky reading headings use the dialog surface, without a separate rectangle. */
.reading-dialog .dialog-header{background:inherit;border:0;box-shadow:none}

.language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.language-options button{min-height:44px;white-space:normal;overflow-wrap:anywhere}#language-dialog{overflow-y:auto;max-height:90dvh}[dir=rtl] .spot-title,[dir=rtl] .brand,[dir=rtl] .report-actions button{text-align:right}[dir=rtl] .main-nav a{margin-left:0;margin-right:auto}[dir=rtl] .day-row,[dir=rtl] .hour-cards,[dir=rtl] .chart{direction:ltr}


/* Full coordinated themes: each palette has individually assigned colour roles. */
:root{--heading:var(--sea);--slogan:var(--muted);--button-bg:var(--sea);--button-ink:var(--paper)}
:root[data-palette=hunt-1]{--paper:#f4f8f7;--card:#fbfcfc;--ink:#06222f;--muted:#356c7c;--heading:#005c78;--sea:#8e563f;--foam:#d9e7e9;--sand:#f4f8f4;--line:#b7d4dc;--slogan:#033f54;--button-bg:#8e563f;--button-ink:#ffffff;--accent-secondary:#8e563f;--promo-bg:#fbfcfc;--promo-ink:#06222f;--promo-muted:#356c7c;}
:root[data-mode=dark][data-palette=hunt-1]{--paper:#081820;--card:#1b2a30;--ink:#cce1e7;--muted:#76a1af;--heading:#6ea2b2;--sea:#e88d67;--foam:#062531;--sand:#243338;--line:#062c3a;--slogan:#6ca2b3;--button-bg:#e88d67;--button-ink:#081018;--accent-secondary:#e88d67;--promo-bg:#1b2a30;--promo-ink:#cce1e7;--promo-muted:#76a1af;}
:root[data-palette=hunt-2]{--paper:#f6f6f6;--card:#fcfcfc;--ink:#392f25;--muted:#765b41;--heading:#003092;--sea:#006c7e;--foam:#dbe0eb;--sand:#f8f5ef;--line:#f8e3cf;--slogan:#1c305c;--button-bg:#006c7e;--button-ink:#ffffff;--accent-secondary:#006c7e;--promo-bg:#fcfcfc;--promo-ink:#392f25;--promo-muted:#765b41;}
:root[data-mode=dark][data-palette=hunt-2]{--paper:#081224;--card:#1c2433;--ink:#ffeede;--muted:#bd8b5e;--heading:#7d95c7;--sea:#3ba3b4;--foam:#061839;--sand:#262d3a;--line:#463832;--slogan:#8695bc;--button-bg:#3ba3b4;--button-ink:#081018;--accent-secondary:#3ba3b4;--promo-bg:#1c2433;--promo-ink:#ffeede;--promo-muted:#bd8b5e;}
:root[data-palette=hunt-3]{--paper:#f7f9f6;--card:#fcfdfc;--ink:#39362a;--muted:#746446;--heading:#22668d;--sea:#4a6b73;--foam:#e0e9ea;--sand:#f9f9f0;--line:#f9eed4;--slogan:#2e4e5c;--button-bg:#4a6b73;--button-ink:#ffffff;--accent-secondary:#4a6b73;--promo-bg:#fcfdfc;--promo-ink:#39362a;--promo-muted:#746446;}
:root[data-mode=dark][data-palette=hunt-3]{--paper:#0c1923;--card:#1f2b32;--ink:#fff5e2;--muted:#b7975b;--heading:#78a2b9;--sea:#8ecddd;--foam:#102837;--sand:#293439;--line:#494636;--slogan:#90aeb8;--button-bg:#8ecddd;--button-ink:#081018;--accent-secondary:#8ecddd;--promo-bg:#1f2b32;--promo-ink:#fff5e2;--promo-muted:#b7975b;}
:root[data-palette=hunt-4]{--paper:#f6ebe6;--card:#fcf7f6;--ink:#0b141c;--muted:#5b5f62;--heading:#0f4c81;--sea:#9a4240;--foam:#dddadb;--sand:#f8d8c8;--line:#bfbab8;--slogan:#0d304e;--button-bg:#9a4240;--button-ink:#ffffff;--accent-secondary:#9a4240;--promo-bg:#fcf7f6;--promo-ink:#0b141c;--promo-muted:#5b5f62;}
:root[data-mode=dark][data-palette=hunt-4]{--paper:#0a1622;--card:#1e2128;--ink:#d1d4d5;--muted:#8d9296;--heading:#6f94b3;--sea:#ed6663;--foam:#0b2034;--sand:#27272c;--line:#0e1a24;--slogan:#7493ae;--button-bg:#ed6663;--button-ink:#081018;--accent-secondary:#ed6663;--promo-bg:#1e2128;--promo-ink:#d1d4d5;--promo-muted:#8d9296;}
:root[data-palette=hunt-5]{--paper:#f5f8f8;--card:#fbfcfc;--ink:#091722;--muted:#526778;--heading:#005792;--sea:#ac4100;--foam:#dae6ed;--sand:#f5f7f4;--line:#bcc7cd;--slogan:#04375a;--button-bg:#ac4100;--button-ink:#ffffff;--accent-secondary:#ac4100;--promo-bg:#fbfcfc;--promo-ink:#091722;--promo-muted:#526778;}
:root[data-mode=dark][data-palette=hunt-5]{--paper:#081724;--card:#1b2934;--ink:#d0d6db;--muted:#8f9ba5;--heading:#6e9fc1;--sea:#fd6d17;--foam:#062339;--sand:#25323c;--line:#0b1e2e;--slogan:#769fbd;--button-bg:#fd6d17;--button-ink:#081018;--accent-secondary:#fd6d17;--promo-bg:#1b2934;--promo-ink:#d0d6db;--promo-muted:#8f9ba5;}
:root[data-palette=hunt-6]{--paper:#f6efe1;--card:#fcf9f4;--ink:#0e1c2d;--muted:#4f5e76;--heading:#00215e;--sea:#ae2d00;--foam:#dbd8d3;--sand:#f8e4be;--line:#c4c7c9;--slogan:#071e46;--button-bg:#ae2d00;--button-ink:#ffffff;--accent-secondary:#ae2d00;--promo-bg:#fcf9f4;--promo-ink:#0e1c2d;--promo-muted:#4f5e76;}
:root[data-mode=dark][data-palette=hunt-6]{--paper:#08101d;--card:#1c1e22;--ink:#d5dce6;--muted:#808fa6;--heading:#8090ae;--sea:#fc541a;--foam:#061329;--sand:#262624;--line:#112036;--slogan:#7d8fae;--button-bg:#fc541a;--button-ink:#081018;--accent-secondary:#fc541a;--promo-bg:#1c1e22;--promo-ink:#d5dce6;--promo-muted:#808fa6;}
:root[data-palette=hunt-7]{--paper:#d8ddf6;--card:#f0f2fc;--ink:#081227;--muted:#3c4474;--heading:#1a2ca3;--sea:#6c3820;--foam:#c3caed;--sand:#aab5ee;--line:#a5acd1;--slogan:#111f65;--button-bg:#6c3820;--button-ink:#ffffff;--accent-secondary:#6c3820;--promo-bg:#f0f2fc;--promo-ink:#081227;--promo-muted:#3c4474;}
:root[data-mode=dark][data-palette=hunt-7]{--paper:#0b1126;--card:#0d1534;--ink:#cfd1e0;--muted:#7c82a1;--heading:#7680c8;--sea:#f68048;--foam:#0e163e;--sand:#0e173b;--line:#0c1335;--slogan:#757fc3;--button-bg:#f68048;--button-ink:#081018;--accent-secondary:#f68048;--promo-bg:#0d1534;--promo-ink:#cfd1e0;--promo-muted:#7c82a1;}
:root[data-palette=hunt-8]{--paper:#faf3ee;--card:#fdfaf9;--ink:#272837;--muted:#706173;--heading:#6b6085;--sea:#7a5d66;--foam:#ede5e5;--sand:#fbeada;--line:#e6d8e0;--slogan:#544e6c;--button-bg:#7a5d66;--button-ink:#ffffff;--accent-secondary:#7a5d66;--promo-bg:#fdfaf9;--promo-ink:#272837;--promo-muted:#706173;}
:root[data-mode=dark][data-palette=hunt-8]{--paper:#1a1b26;--card:#2c2a30;--ink:#eee7f0;--muted:#a596ae;--heading:#a097b8;--sea:#efb6c8;--foam:#2e2c3d;--sand:#353135;--line:#3e364a;--slogan:#b8aec8;--button-bg:#efb6c8;--button-ink:#081018;--accent-secondary:#efb6c8;--promo-bg:#2c2a30;--promo-ink:#eee7f0;--promo-muted:#a596ae;}
:root[data-palette=hunt-9]{--paper:#f7f0f4;--card:#fcf9fb;--ink:#122133;--muted:#50607b;--heading:#1b3c73;--sea:#b02c56;--foam:#dfdce6;--sand:#f9e6ec;--line:#c9cede;--slogan:#162e53;--button-bg:#b02c56;--button-ink:#ffffff;--accent-secondary:#b02c56;--promo-bg:#fcf9fb;--promo-ink:#122133;--promo-muted:#50607b;}
:root[data-mode=dark][data-palette=hunt-9]{--paper:#0c1420;--card:#1f232e;--ink:#d9e1ec;--muted:#8395ae;--heading:#8294b2;--sea:#ff538a;--foam:#0f1c30;--sand:#292a36;--line:#192940;--slogan:#8194b4;--button-bg:#ff538a;--button-ink:#081018;--accent-secondary:#ff538a;--promo-bg:#1f232e;--promo-ink:#d9e1ec;--promo-muted:#8395ae;}
:root[data-palette=hunt-10]{--paper:#f7f8f6;--card:#fcfcfc;--ink:#2b3842;--muted:#5a6368;--heading:#2b3467;--sea:#b33448;--foam:#e1e2e6;--sand:#f8faf2;--line:#e8f0f3;--slogan:#2b3654;--button-bg:#b33448;--button-ink:#ffffff;--accent-secondary:#b33448;--promo-bg:#fcfcfc;--promo-ink:#2b3842;--promo-muted:#5a6368;}
:root[data-mode=dark][data-palette=hunt-10]{--paper:#0e121e;--card:#21252e;--ink:#f1f7fb;--muted:#869cac;--heading:#9195b0;--sea:#ef6c81;--foam:#14182c;--sand:#2b2e36;--line:#394351;--slogan:#8e96b1;--button-bg:#ef6c81;--button-ink:#081018;--accent-secondary:#ef6c81;--promo-bg:#21252e;--promo-ink:#f1f7fb;--promo-muted:#869cac;}
:root[data-palette=hunt-11]{--paper:#f2f2f0;--card:#fafaf9;--ink:#121d21;--muted:#59615b;--heading:#2c3930;--sea:#765a43;--foam:#dcdedb;--sand:#ecebe6;--line:#c5c9c5;--slogan:#1f2b28;--button-bg:#765a43;--button-ink:#ffffff;--accent-secondary:#765a43;--promo-bg:#fafaf9;--promo-ink:#121d21;--promo-muted:#59615b;}
:root[data-mode=dark][data-palette=hunt-11]{--paper:#0e1316;--card:#1e2324;--ink:#d9dcda;--muted:#8d9490;--heading:#8d948f;--sea:#ae8c71;--foam:#141a1b;--sand:#272b2b;--line:#1a2222;--slogan:#8d9590;--button-bg:#ae8c71;--button-ink:#081018;--accent-secondary:#ae8c71;--promo-bg:#1e2324;--promo-ink:#d9dcda;--promo-muted:#8d9490;}
:root[data-palette=hunt-12]{--paper:#f7f7f9;--card:#fcfcfd;--ink:#322b28;--muted:#7c614f;--heading:#566788;--sea:#8f384d;--foam:#e6e8ee;--sand:#f5f4f6;--line:#f0dfd4;--slogan:#474c5c;--button-bg:#8f384d;--button-ink:#ffffff;--accent-secondary:#8f384d;--promo-bg:#fcfcfd;--promo-ink:#322b28;--promo-muted:#7c614f;}
:root[data-mode=dark][data-palette=hunt-12]{--paper:#151b24;--card:#262c34;--ink:#f8eae0;--muted:#b9977f;--heading:#929eb5;--sea:#c1929d;--foam:#222b39;--sand:#2f343c;--line:#473a34;--slogan:#aaacb8;--button-bg:#c1929d;--button-ink:#081018;--accent-secondary:#c1929d;--promo-bg:#262c34;--promo-ink:#f8eae0;--promo-muted:#b9977f;}
:root[data-palette=hunt-13]{--paper:#f7f9fb;--card:#fcfdfd;--ink:#39312b;--muted:#7c634e;--heading:#5763a1;--sea:#9e513e;--foam:#e6e9f3;--sand:#f4f8fb;--line:#f9e8da;--slogan:#4c4e6d;--button-bg:#9e513e;--button-ink:#ffffff;--accent-secondary:#9e513e;--promo-bg:#fcfdfd;--promo-ink:#39312b;--promo-muted:#7c634e;}
:root[data-mode=dark][data-palette=hunt-13]{--paper:#151a28;--card:#262c39;--ink:#fff0e4;--muted:#c29774;--heading:#949dc9;--sea:#ff8364;--foam:#232a42;--sand:#2f3541;--line:#50413c;--slogan:#afaeca;--button-bg:#ff8364;--button-ink:#081018;--accent-secondary:#ff8364;--promo-bg:#262c39;--promo-ink:#fff0e4;--promo-muted:#c29774;}
:root[data-palette=hunt-14]{--paper:#f6efe2;--card:#fcf9f4;--ink:#39242b;--muted:#814f4c;--heading:#0802a3;--sea:#a3305d;--foam:#dcd5db;--sand:#f8e6bb;--line:#f8d1c7;--slogan:#201367;--button-bg:#a3305d;--button-ink:#ffffff;--accent-secondary:#a3305d;--promo-bg:#fcf9f4;--promo-ink:#39242b;--promo-muted:#814f4c;}
:root[data-mode=dark][data-palette=hunt-14]{--paper:#090b26;--card:#1d1b29;--ink:#ffe4e4;--muted:#c3767d;--heading:#8886d3;--sea:#ff4b91;--foam:#09093e;--sand:#27222a;--line:#46263a;--slogan:#9282ca;--button-bg:#ff4b91;--button-ink:#081018;--accent-secondary:#ff4b91;--promo-bg:#1d1b29;--promo-ink:#ffe4e4;--promo-muted:#c3767d;}
:root[data-palette=hunt-15]{--paper:#f6ecda;--card:#fcf8f1;--ink:#060e1f;--muted:#4a4c69;--heading:#005082;--sea:#00667c;--foam:#dbdbd0;--sand:#f8d9a8;--line:#b8b3b2;--slogan:#032f50;--button-bg:#00667c;--button-ink:#ffffff;--accent-secondary:#00667c;--promo-bg:#fcf8f1;--promo-ink:#060e1f;--promo-muted:#4a4c69;}
:root[data-mode=dark][data-palette=hunt-15]{--paper:#081622;--card:#1c2121;--ink:#ccced7;--muted:#8b8fa1;--heading:#6394b3;--sea:#00a8cc;--foam:#062134;--sand:#262721;--line:#061228;--slogan:#6c93af;--button-bg:#00a8cc;--button-ink:#081018;--accent-secondary:#00a8cc;--promo-bg:#1c2121;--promo-ink:#ccced7;--promo-muted:#8b8fa1;}
:root[data-palette=hunt-16]{--paper:#f4f8fa;--card:#fbfcfd;--ink:#2d3b32;--muted:#5d6850;--heading:#0766ad;--sea:#1b7074;--foam:#dae8f2;--sand:#f4f7f8;--line:#e8f4e2;--slogan:#1a5070;--button-bg:#1b7074;--button-ink:#ffffff;--accent-secondary:#1b7074;--promo-bg:#fbfcfd;--promo-ink:#2d3b32;--promo-muted:#5d6850;}
:root[data-mode=dark][data-palette=hunt-16]{--paper:#091928;--card:#1c2a38;--ink:#f3faea;--muted:#8daa76;--heading:#68a2cd;--sea:#29adb2;--foam:#092841;--sand:#253340;--line:#384d44;--slogan:#7db0cc;--button-bg:#29adb2;--button-ink:#081018;--accent-secondary:#29adb2;--promo-bg:#1c2a38;--promo-ink:#f3faea;--promo-muted:#8daa76;}
:root[data-palette=hunt-17]{--paper:#f7fafb;--card:#fcfdfd;--ink:#35382a;--muted:#736c4a;--heading:#467084;--sea:#4d7450;--foam:#e8f2f6;--sand:#f5f7f8;--line:#f4f1d8;--slogan:#50717a;--button-bg:#4d7450;--button-ink:#ffffff;--accent-secondary:#4d7450;--promo-bg:#fcfdfd;--promo-ink:#35382a;--promo-muted:#736c4a;}
:root[data-mode=dark][data-palette=hunt-17]{--paper:#17242d;--card:#28343c;--ink:#fbf7e3;--muted:#b2a96a;--heading:#6fb2d2;--sea:#85c88a;--foam:#283f4c;--sand:#313c44;--line:#4c503e;--slogan:#b5d4da;--button-bg:#85c88a;--button-ink:#081018;--accent-secondary:#85c88a;--promo-bg:#28343c;--promo-ink:#fbf7e3;--promo-muted:#b2a96a;}
:root[data-palette=hunt-18]{--paper:#f7f8f3;--card:#fcfcfa;--ink:#293739;--muted:#5e6861;--heading:#5e6073;--sea:#586872;--foam:#e6e7e5;--sand:#f6f7ea;--line:#e6efe6;--slogan:#444c56;--button-bg:#586872;--button-ink:#ffffff;--accent-secondary:#586872;--promo-bg:#fcfcfa;--promo-ink:#293739;--promo-muted:#5e6861;}
:root[data-mode=dark][data-palette=hunt-18]{--paper:#151920;--card:#272b2e;--ink:#f0f6f2;--muted:#8aa196;--heading:#9a9ba7;--sea:#89a3b2;--foam:#232630;--sand:#303335;--line:#3c4848;--slogan:#a7abb2;--button-bg:#89a3b2;--button-ink:#081018;--accent-secondary:#89a3b2;--promo-bg:#272b2e;--promo-ink:#f0f6f2;--promo-muted:#8aa196;}
:root[data-palette=hunt-19]{--paper:#f2f3f7;--card:#fafafc;--ink:#343313;--muted:#6d6022;--heading:#10316b;--sea:#096f49;--foam:#d9dee8;--sand:#edeef4;--line:#f0e6b9;--slogan:#22323f;--button-bg:#096f49;--button-ink:#ffffff;--accent-secondary:#096f49;--promo-bg:#fafafc;--promo-ink:#343313;--promo-muted:#6d6022;}
:root[data-mode=dark][data-palette=hunt-19]{--paper:#0a121e;--card:#1b232e;--ink:#fbf3cc;--muted:#ab9113;--heading:#8394b2;--sea:#48a381;--foam:#0b182d;--sand:#232b37;--line:#423e16;--slogan:#88949e;--button-bg:#48a381;--button-ink:#081018;--accent-secondary:#48a381;--promo-bg:#1b232e;--promo-ink:#fbf3cc;--promo-muted:#ab9113;}
:root[data-palette=hunt-20]{--paper:#f7f9fb;--card:#fcfdfd;--ink:#253e41;--muted:#536f6a;--heading:#4c6b94;--sea:#0b7857;--foam:#e6edf4;--sand:#f5f8f9;--line:#e1f8f6;--slogan:#42637e;--button-bg:#0b7857;--button-ink:#ffffff;--accent-secondary:#0b7857;--promo-bg:#fcfdfd;--promo-ink:#253e41;--promo-muted:#536f6a;}
:root[data-mode=dark][data-palette=hunt-20]{--paper:#151e2a;--card:#272f3a;--ink:#ecfdfa;--muted:#75b4ae;--heading:#86a5cb;--sea:#12cc94;--foam:#233246;--sand:#2f3842;--line:#375459;--slogan:#a6c2da;--button-bg:#12cc94;--button-ink:#081018;--accent-secondary:#12cc94;--promo-bg:#272f3a;--promo-ink:#ecfdfa;--promo-muted:#75b4ae;}
:root[data-palette=hunt-21]{--paper:#f4f7f7;--card:#fbfcfc;--ink:#1f3631;--muted:#4f6b57;--heading:#146c78;--sea:#0b707c;--foam:#dbe8e9;--sand:#f3f4f3;--line:#d6edde;--slogan:#1a5154;--button-bg:#0b707c;--button-ink:#ffffff;--accent-secondary:#0b707c;--promo-bg:#fbfcfc;--promo-ink:#1f3631;--promo-muted:#4f6b57;}
:root[data-mode=dark][data-palette=hunt-21]{--paper:#0b1a20;--card:#1d2b30;--ink:#e5f5ea;--muted:#72a685;--heading:#6da4ab;--sea:#41a8b5;--foam:#0d2a31;--sand:#263338;--line:#28473d;--slogan:#7cb0b1;--button-bg:#41a8b5;--button-ink:#081018;--accent-secondary:#41a8b5;--promo-bg:#1d2b30;--promo-ink:#e5f5ea;--promo-muted:#72a685;}
:root[data-palette=hunt-22]{--paper:#f5f8f8;--card:#fbfcfc;--ink:#0d151d;--muted:#64666c;--heading:#1b6d8d;--sea:#576b5d;--foam:#dde9ed;--sand:#f4f6f5;--line:#c2c4c6;--slogan:#144458;--button-bg:#576b5d;--button-ink:#ffffff;--accent-secondary:#576b5d;--promo-bg:#fbfcfc;--promo-ink:#0d151d;--promo-muted:#64666c;}
:root[data-mode=dark][data-palette=hunt-22]{--paper:#0c1b24;--card:#1e2c34;--ink:#d4d4d6;--muted:#9a9da1;--heading:#6ea5ba;--sea:#b9e3c6;--foam:#0f2c39;--sand:#27353c;--line:#131e28;--slogan:#78a3b4;--button-bg:#b9e3c6;--button-ink:#081018;--accent-secondary:#b9e3c6;--promo-bg:#1e2c34;--promo-ink:#d4d4d6;--promo-muted:#9a9da1;}
:root[data-palette=hunt-23]{--paper:#f6f6f6;--card:#fcfcfc;--ink:#27341d;--muted:#5c6633;--heading:#283739;--sea:#1b6b76;--foam:#dfe1e1;--sand:#f6f6f6;--line:#e3eac4;--slogan:#28362b;--button-bg:#1b6b76;--button-ink:#ffffff;--accent-secondary:#1b6b76;--promo-bg:#fcfcfc;--promo-ink:#27341d;--promo-muted:#5c6633;}
:root[data-mode=dark][data-palette=hunt-23]{--paper:#0d1317;--card:#202529;--ink:#eef3d5;--muted:#8b9e44;--heading:#8f9798;--sea:#53a2ad;--foam:#121a1d;--sand:#292e32;--line:#34401d;--slogan:#90998c;--button-bg:#53a2ad;--button-ink:#081018;--accent-secondary:#53a2ad;--promo-bg:#202529;--promo-ink:#eef3d5;--promo-muted:#8b9e44;}
:root[data-palette=hunt-24]{--paper:#f0f1f0;--card:#f9faf9;--ink:#0e1a26;--muted:#52606e;--heading:#152a38;--sea:#4d644c;--foam:#d8dbdc;--sand:#e8e9e6;--line:#bec6cb;--slogan:#12222f;--button-bg:#4d644c;--button-ink:#ffffff;--accent-secondary:#4d644c;--promo-bg:#f9faf9;--promo-ink:#0e1a26;--promo-muted:#52606e;}
:root[data-mode=dark][data-palette=hunt-24]{--paper:#0b1117;--card:#1b2125;--ink:#d4d9de;--muted:#87919c;--heading:#88929a;--sea:#839581;--foam:#0d161d;--sand:#23282c;--line:#121e28;--slogan:#859199;--button-bg:#839581;--button-ink:#081018;--accent-secondary:#839581;--promo-bg:#1b2125;--promo-ink:#d4d9de;--promo-muted:#87919c;}
:root[data-palette=hunt-25]{--paper:#fcfbf8;--card:#fefdfc;--ink:#2f3b3b;--muted:#687064;--heading:#696e78;--sea:#666e79;--foam:#f3f3f2;--sand:#fdfaf1;--line:#f1f6eb;--slogan:#666f78;--button-bg:#666e79;--button-ink:#ffffff;--accent-secondary:#666e79;--promo-bg:#fefdfc;--promo-ink:#2f3b3b;--promo-muted:#687064;}
:root[data-mode=dark][data-palette=hunt-25]{--paper:#1f242a;--card:#313538;--ink:#f6faf3;--muted:#9daf98;--heading:#a6aebf;--sea:#c5d3e8;--foam:#393e46;--sand:#3a3d40;--line:#4b5551;--slogan:#ced4d9;--button-bg:#c5d3e8;--button-ink:#081018;--accent-secondary:#c5d3e8;--promo-bg:#313538;--promo-ink:#f6faf3;--promo-muted:#9daf98;}

:is(h1,.seo-section-title),h2,h3,.brand>span,.spot-title :is(h1,.seo-section-title){color:var(--heading)}
.brand-mark .brand-background{fill:var(--heading)}
.brand small{color:var(--slogan)}
.primary-button{background:var(--button-bg);color:var(--button-ink)}
.outline-button,.text-button,.icon-button{color:var(--sea)}
.brand:hover,.spot-title:hover{color:var(--heading)}

/* A condensed continuation of the full daily strip. */
.sticky-days{left:var(--day-bar-left,50%);width:var(--day-bar-width,min(1160px,calc(100% - 80px)));transform:none;background:var(--sand);padding:6px;border:0;border-radius:15px;gap:10px;box-shadow:0 6px 22px #00000020;animation:day-strip-detach .18s ease-out}
.sticky-days:not([style]){transform:translateX(-50%)}
.sticky-spot{color:var(--heading);padding:0 10px}
.compact-days{gap:5px}
.compact-day{flex:1 0 98px;min-height:68px;padding:9px 12px;border-radius:10px;color:var(--ink)}
.compact-day.active{background:var(--card)}
.compact-day>span{display:flex;justify-content:space-between;gap:8px}
.compact-day-heading{align-items:flex-start}.compact-day-heading b{font-size:12px;line-height:1.5;margin:0 0 3px}.compact-day-heading small{font-size:10px;color:var(--muted)}.compact-day-heading strong{font-size:17px;line-height:1.5;margin:0}
.compact-day-details{align-items:center;margin-top:5px}.compact-day-details svg{width:17px;height:17px;flex-shrink:0}.compact-surf-range{font-size:11px;font-weight:650;color:var(--ink)}
@keyframes day-strip-detach{from{opacity:.7;translate:0 6px}to{opacity:1;translate:0 0}}
@media(max-width:760px){.sticky-days{padding:5px;gap:0}.compact-day{flex-basis:91px;padding:8px 10px}.compact-day-heading b{font-size:11px}.compact-day-heading strong{font-size:16px}.compact-surf-range{font-size:10px}}
@media(prefers-reduced-motion:reduce){.sticky-days{animation:none}}

/* Fade with the source bar's departure; reverse naturally on upward scroll. */
.sticky-days{animation:none;opacity:var(--day-bar-opacity,0);transition:opacity .16s ease-out;pointer-events:none;will-change:opacity}
.sticky-days.day-bar-visible{pointer-events:auto}
@media(prefers-reduced-motion:reduce){.sticky-days{transition:none}}

.day-surf-range,.compact-surf-range{display:inline-flex;align-items:center;gap:6px}.surf-size-icon{width:17px;height:17px;flex-shrink:0;fill:none;stroke:var(--heading);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.compact-surf-range .surf-size-icon{width:14px;height:14px}.compact-day-details .surf-size-icon{width:14px;height:14px}

.surf-size-icon{width:21px;height:21px;stroke:currentColor;color:var(--muted)}.compact-surf-range .surf-size-icon,.compact-day-details .surf-size-icon{width:15px;height:15px}

/* BestSwell subtle hourly ratings */
.hour-cards .condition-hour.hour-card[data-rating-band]{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:none}
.hour-cards .condition-hour.hour-card .hour-quality{color:var(--rating-ink)}
.hour-cards .condition-hour.hour-card .hour-quality small,.hour-cards .condition-hour.hour-card .hour-time,.hour-cards .condition-hour.hour-card .hour-direction{color:var(--muted)}
.hour-cards .condition-hour.hour-card.active{border-color:var(--sea);box-shadow:inset 0 0 0 1px var(--sea)}
.hour-cards .condition-hour .hour-rating-strip{height:4px;margin-top:3px}
.account-form{display:grid;gap:16px}.account-form label{display:grid;gap:6px;font-size:13px}.account-form input,.account-form select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);padding:10px}.account-form details{padding:12px 0}.account-form details label{margin:10px 0}#account-message{font-size:13px;min-height:24px}#open-account{font-size:12px;white-space:nowrap;padding:9px 12px}

#account-registration{display:grid;gap:14px}.account-form .account-checkbox{display:flex;align-items:flex-start;gap:8px;line-height:1.5}.account-checkbox input{width:18px;min-height:18px;margin-top:2px;flex-shrink:0}#account-beaches{min-height:140px}
/* Account journeys: one clear step at a time, with comfortable touch targets. */
.account-entry{display:flex;align-items:center;gap:12px;min-width:0}.account-entry #account-status{font-size:12px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-entry strong{color:var(--ink)}
#account-dialog[open]{display:block;overflow-y:auto;overscroll-behavior:contain;width:min(510px,calc(100% - 32px));padding:28px;max-height:90dvh}
#account-dialog .dialog-header{align-items:flex-start;margin:0 0 14px;gap:18px}#account-dialog h2{font-size:29px;letter-spacing:-.8px;line-height:1.15;margin:0}#account-dialog .eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 9px}#account-dialog .dialog-header .icon-button{flex:none;width:40px;height:40px;display:grid;place-items:center}
#account-dialog .account-description{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 24px}#account-dialog .account-form{display:grid;gap:18px}#account-dialog .account-form label{display:grid;gap:8px;font-size:13px;font-weight:600}#account-dialog input:not([type=checkbox]),#account-dialog select{width:100%;min-width:0;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;min-height:48px;padding:12px;font:inherit;box-sizing:border-box}#account-dialog .fine-print{font-weight:400;line-height:1.6;font-size:12px;margin:0;color:var(--muted)}
#account-dialog #account-registration{gap:18px}#account-dialog .account-checkbox{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5;font-weight:400}#account-dialog .account-checkbox input{margin:2px 0 0;flex:none;width:18px;height:18px;accent-color:var(--sea)}#account-dialog .account-checkbox small{display:block;margin-top:5px;color:var(--muted)}#account-dialog a{color:var(--sea);text-underline-offset:3px}
.account-progress{display:flex;gap:14px;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:22px;color:var(--muted)}.account-progress [aria-current=true]{color:var(--sea);font-weight:700}
#account-dialog .account-favourites{padding:0;border:0;background:transparent}#account-dialog .account-favourites summary{font-size:13px;cursor:pointer;padding:4px 0}#account-dialog .account-favourites summary .muted{font-size:11px;margin-left:8px}#account-dialog .account-favourites[open] label{margin-top:15px}#account-dialog .account-favourites select{min-height:135px;padding:6px}#account-dialog .account-favourites option{padding:8px}#account-dialog .account-favourites p{margin-top:8px}
.account-email-card{display:flex;gap:14px;align-items:center;padding:16px;background:var(--card);border-radius:16px;font-size:12px;color:var(--muted);line-height:1.6}.account-email-card strong{display:block;color:var(--ink);font-size:14px;overflow-wrap:anywhere}.account-email-card svg{width:27px;height:27px;stroke:var(--sea);fill:none;stroke-width:1.7;flex:none}
#account-dialog .account-code-digits{display:grid;grid-template-columns:repeat(var(--code-count,8),minmax(0,1fr));gap:7px}#account-dialog .account-code-digits input{padding:0;text-align:center;min-height:54px;height:54px;font-size:24px;font-weight:600;border-radius:10px;font-variant-numeric:tabular-nums}#account-dialog .account-code-digits input:focus{outline:2px solid var(--sea);outline-offset:2px;border-color:var(--sea)}
#account-dialog .account-primary{width:100%;min-height:49px;margin-top:18px;font-size:15px}.account-security{margin-top:20px;min-height:0;overflow:hidden}.account-message{padding:12px 0 0;line-height:1.6;color:var(--sea);font-size:13px!important;margin:0!important;min-height:0!important}.account-message[data-tone=error]{color:var(--danger,#db806f)}.account-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:13px}.account-secondary button{min-height:44px;font-size:13px}#account-dialog button:disabled{opacity:.55;cursor:wait}.account-social{border-top:1px solid var(--line);margin-top:20px;padding-top:20px;text-align:center;font-size:12px;color:var(--muted)}.account-social>div{display:flex;gap:12px;margin-top:12px}.account-social button{flex:1;min-height:46px}
#account-dialog .dialog-footer{margin-top:22px;padding-top:18px;gap:12px;border-top:1px solid var(--line);align-items:center;display:flex;justify-content:space-between}.account-footer-note{font-size:11px;color:var(--muted)}#account-dialog .dialog-footer button{min-height:44px;font-size:12px}
.account-welcome{text-align:center;padding:6px 0 0}.account-success-mark{width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:var(--card);color:var(--sea);margin:0 auto 20px}.account-success-mark svg{width:32px;height:32px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.account-welcome h3{font-size:24px;margin:0 0 12px}.account-welcome p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 22px}.account-welcome .primary-button{display:block;width:100%;min-height:49px}.account-welcome .text-button{margin-top:12px;min-height:44px}
#account-oauth-cancel{min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.account-profile-heading{display:flex;align-items:center;gap:14px;margin-bottom:22px}.account-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--card);color:var(--sea);font-weight:700;font-size:23px}.account-profile-heading strong{font-size:20px;overflow-wrap:anywhere}.account-profile-heading .fine-print{font-size:10px!important;letter-spacing:1.5px;margin-bottom:3px!important}.account-preference-card{padding:18px;border:1px solid var(--line);border-radius:16px;margin-top:16px}.account-preference-card h3{font-size:16px;margin:0 0 9px}.account-profile-actions{display:grid;gap:10px;margin-top:16px}.account-profile-actions button{min-height:45px}.account-profile-bottom{display:flex;align-items:center;gap:20px;justify-content:space-between;margin-top:22px}.account-profile-bottom button{white-space:nowrap;min-height:44px}
.forecast-profile-label{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;color:var(--muted)}.forecast-profile-label select{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:10px 30px 10px 13px;font:inherit;min-height:42px;max-width:100%}.profile-summary{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.profile-summary .experience-note{flex-basis:100%;margin-top:0;line-height:1.65;font-size:12px}.profile-summary #edit-experience{font-size:12px}
@media(max-width:760px){#account-dialog[open]{width:100%;padding:25px 20px max(18px,env(safe-area-inset-bottom));max-height:92dvh}#account-dialog .account-code-digits{gap:5px}#account-dialog .account-code-digits input{font-size:22px;height:50px;min-height:50px}#account-dialog h2{font-size:27px}.top-actions .account-entry{display:contents}.top-actions #account-status{position:absolute;right:0;top:100%;max-width:190px;font-size:10px;line-height:22px}.top-actions{position:relative}#account-dialog .dialog-footer{flex-wrap:wrap}.forecast-profile-label{width:100%;justify-content:space-between}.forecast-profile-label select{max-width:75%}.account-footer-note{font-size:10px}}

/* Signup controls: explicit two-column labels override the general form grid. */
#account-dialog .account-form label.account-checkbox,
#account-dialog label.account-checkbox{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;cursor:pointer;font-weight:400;line-height:1.6;min-height:28px}
#account-dialog label.account-checkbox input[type=checkbox]{width:18px;height:18px;min-height:18px;padding:0;margin:2px 0 0;border-radius:4px;justify-self:start;align-self:start;accent-color:var(--sea)}
#account-dialog label.account-checkbox>span{min-width:0}
#account-dialog .account-favourites summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}
#account-dialog .account-favourites summary strong{display:block;font-size:14px;font-weight:600}
#account-dialog .account-favourites summary small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}
.disclosure-chevron{width:20px;height:20px;fill:none;stroke:var(--sea);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .18s ease}
#account-dialog .account-favourites[open] .disclosure-chevron{transform:rotate(180deg)}
#account-dialog .account-favourites-body{padding:3px 2px 8px}
#account-dialog .account-favourites-body .account-checkbox{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line)}
#account-dialog .account-favourites:not([open])>.account-favourites-body{display:none}
.forecast-profile-label .profile-picker{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;border:1px solid var(--line);border-radius:99px;background:var(--paper);color:var(--ink);padding:10px 14px;font:inherit;text-align:left}
.profile-picker svg{width:16px;height:16px;fill:none;stroke:var(--sea);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.experience-levels .general-level{grid-column:1/-1}
.experience-levels label{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:12px}
.experience-levels input[type=radio]{width:17px;height:17px;margin:3px 0 0;align-self:start;padding:0;accent-color:var(--sea)}
#quality,#rating-quality,.hour-card>small{text-transform:none}
@media(prefers-reduced-motion:reduce){.disclosure-chevron{transition:none}}
/* The layered wave follows the selected palette in both modes. */
.brand-mark .brand-wave{fill:var(--paper)}
.brand-mark .brand-wave-shadow{fill:var(--paper);opacity:.55}
.brand-mark .brand-wave-foam{fill:var(--paper);opacity:.95}
.brand-mark .brand-wave-highlight{fill:var(--paper);opacity:.75}
@supports(color:color-mix(in srgb,white,black)){
 .brand-mark .brand-wave{fill:color-mix(in srgb,var(--paper) 75%,var(--heading))}
 .brand-mark .brand-wave-shadow{fill:color-mix(in srgb,var(--paper) 45%,var(--heading));opacity:1}
 .brand-mark .brand-wave-highlight{fill:color-mix(in srgb,var(--paper) 88%,var(--heading));opacity:1}
}

/* Experience accents progress from seafoam to blue, indigo and violet.
   These describe the chosen experience, not the forecast quality or safety. */
.experience-levels [data-skill=learning]{--skill-accent:#24775f;--skill-tint:#e5f3ed}
.experience-levels [data-skill=developing]{--skill-accent:#236a91;--skill-tint:#e8f0f8}
.experience-levels [data-skill=confident]{--skill-accent:#515da0;--skill-tint:#ecedf9}
.experience-levels [data-skill=experienced]{--skill-accent:#79468f;--skill-tint:#f1e9f7}
:root[data-mode=dark] .experience-levels [data-skill=learning]{--skill-accent:#9cddc4;--skill-tint:#19382f}
:root[data-mode=dark] .experience-levels [data-skill=developing]{--skill-accent:#a4cfea;--skill-tint:#20344a}
:root[data-mode=dark] .experience-levels [data-skill=confident]{--skill-accent:#b4bdf3;--skill-tint:#2b304e}
:root[data-mode=dark] .experience-levels [data-skill=experienced]{--skill-accent:#d9b5ef;--skill-tint:#3b2948}
.experience-levels label[data-skill]{background:var(--skill-tint);border-color:var(--line);border-inline-start:4px solid var(--skill-accent)}
.experience-levels label[data-skill] strong{color:var(--skill-accent)}
.experience-levels label[data-skill] small{color:var(--skill-accent);font-weight:400}
.experience-levels label[data-skill] input{accent-color:var(--skill-accent)}
.experience-levels label[data-skill]:has(input:checked){background:var(--skill-tint);border-color:var(--skill-accent);box-shadow:inset 0 0 0 1px var(--skill-accent)}
.experience-levels .general-level{background:var(--card)}

/* Five original BestSwell logo-inspired trial themes. */
:root[data-palette=brand-1]{--paper:#f0f7f5;--card:#fbfdfc;--foam:#dfeee9;--sand:#e7f2ee;--ink:#143841;--muted:#496862;--heading:#18534f;--sea:#236d64;--slogan:#18534f;--button-bg:#236d64;--button-ink:#ffffff;--line:#bdcfc8;--accent-secondary:#236d64;--promo-bg:#fbfdfc;--promo-ink:#143841;--promo-muted:#496862;}
:root[data-mode=dark][data-palette=brand-1]{--paper:#0c202b;--card:#122d38;--foam:#173c40;--sand:#18323c;--ink:#e8f6f0;--muted:#b3d3cd;--heading:#d8f4e7;--sea:#9ddfce;--slogan:#bdeade;--button-bg:#79c5b2;--button-ink:#08252a;--line:#2d5059;--accent-secondary:#9ddfce;--promo-bg:#122d38;--promo-ink:#e8f6f0;--promo-muted:#b3d3cd;}
.brand-swatches-1{--swatch-0:#0c202b;--swatch-1:#3b9e9e;--swatch-2:#79c5b2;--swatch-3:#d8f4e7;}
:root[data-palette=brand-2]{--paper:#f0f5fa;--card:#fafcfe;--foam:#ddeaf3;--sand:#e6eef5;--ink:#183448;--muted:#49667b;--heading:#193f59;--sea:#236484;--slogan:#254e69;--button-bg:#236484;--button-ink:#ffffff;--line:#bdcfde;--accent-secondary:#236484;--promo-bg:#fafcfe;--promo-ink:#183448;--promo-muted:#49667b;}
:root[data-mode=dark][data-palette=brand-2]{--paper:#0b1d30;--card:#122b43;--foam:#16354b;--sand:#1b344a;--ink:#e9f3fc;--muted:#b3cedf;--heading:#d8ebfb;--sea:#9ddbe4;--slogan:#b8d9ec;--button-bg:#82ccc9;--button-ink:#092635;--line:#304b63;--accent-secondary:#9ddbe4;--promo-bg:#122b43;--promo-ink:#e9f3fc;--promo-muted:#b3cedf;}
.brand-swatches-2{--swatch-0:#0d2236;--swatch-1:#4a8ca8;--swatch-2:#82ccc9;--swatch-3:#dcedf4;}
:root[data-palette=brand-3]{--paper:#f1f7ef;--card:#fcfdf8;--foam:#e1eee0;--sand:#e9f0e4;--ink:#203e35;--muted:#516a57;--heading:#264c3c;--sea:#336849;--slogan:#2c5544;--button-bg:#336849;--button-ink:#ffffff;--line:#c0d0ba;--accent-secondary:#336849;--promo-bg:#fcfdf8;--promo-ink:#203e35;--promo-muted:#516a57;}
:root[data-mode=dark][data-palette=brand-3]{--paper:#0c2422;--card:#173632;--foam:#1c3e36;--sand:#223d32;--ink:#edf6e9;--muted:#bed5c3;--heading:#deefdd;--sea:#a5dcc0;--slogan:#c5e2cf;--button-bg:#8ad1b5;--button-ink:#122a22;--line:#36584a;--accent-secondary:#a5dcc0;--promo-bg:#173632;--promo-ink:#edf6e9;--promo-muted:#bed5c3;}
.brand-swatches-3{--swatch-0:#102b2c;--swatch-1:#3b8c78;--swatch-2:#8ad1b5;--swatch-3:#deefdd;}
:root[data-palette=brand-4]{--paper:#edf3f5;--card:#f9fcfd;--foam:#dce6eb;--sand:#e4edf0;--ink:#15303d;--muted:#4c6470;--heading:#214754;--sea:#275e70;--slogan:#254e60;--button-bg:#275e70;--button-ink:#ffffff;--line:#b8cbd3;--accent-secondary:#275e70;--promo-bg:#f9fcfd;--promo-ink:#15303d;--promo-muted:#4c6470;}
:root[data-mode=dark][data-palette=brand-4]{--paper:#07141f;--card:#0f2533;--foam:#15323c;--sand:#192f3a;--ink:#e3f0f3;--muted:#abc9d2;--heading:#c4ece1;--sea:#97d4d4;--slogan:#b5dddf;--button-bg:#67b4b4;--button-ink:#09212b;--line:#294552;--accent-secondary:#97d4d4;--promo-bg:#0f2533;--promo-ink:#e3f0f3;--promo-muted:#abc9d2;}
.brand-swatches-4{--swatch-0:#07141f;--swatch-1:#24566c;--swatch-2:#67b4b4;--swatch-3:#c4ece1;}
:root[data-palette=brand-5]{--paper:#f4f9f7;--card:#fdfffe;--foam:#e6f1ec;--sand:#eaf2f0;--ink:#243f43;--muted:#516c6c;--heading:#2b5154;--sea:#376c6b;--slogan:#2b5657;--button-bg:#376c6b;--button-ink:#ffffff;--line:#c5d7d1;--accent-secondary:#376c6b;--promo-bg:#fdfffe;--promo-ink:#243f43;--promo-muted:#516c6c;}
:root[data-mode=dark][data-palette=brand-5]{--paper:#142a30;--card:#1c343b;--foam:#223f43;--sand:#283e44;--ink:#eff8f5;--muted:#c0d6d3;--heading:#e5f4e9;--sea:#b4e4d9;--slogan:#c4e7e0;--button-bg:#9ed5cb;--button-ink:#173238;--line:#45616a;--accent-secondary:#b4e4d9;--promo-bg:#1c343b;--promo-ink:#eff8f5;--promo-muted:#c0d6d3;}
.brand-swatches-5{--swatch-0:#163038;--swatch-1:#527d82;--swatch-2:#9ed5cb;--swatch-3:#e5f4e9;}
/* The logo is a fixed brand asset; interface colours remain a visitor preference. */
.brand-mark .brand-background{fill:#0c202b}
.brand-mark .brand-wave{fill:#79c5b2}
.brand-mark .brand-wave-shadow{fill:#3b9e9e;opacity:1}
.brand-mark .brand-wave-foam{fill:#d8f4e7;opacity:1}
.brand-mark .brand-wave-highlight{fill:#ace4d4;opacity:1}
.brand-palettes{margin-bottom:24px}

/* Public HTML stays useful before or without JavaScript. */
.server-content{margin-bottom:24px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.server-content>p:first-child{margin-top:0}.server-content p,.server-content li{line-height:1.7}
.server-content details{margin:12px 0;border-top:1px solid var(--line);padding-top:12px}
.server-content summary{cursor:pointer;font-weight:650;color:var(--heading);padding:8px 0}
.forecast-table-wrap{max-width:100%;overflow-x:auto}.forecast-table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
.forecast-table caption{text-align:left;color:var(--muted);padding:12px 0}.forecast-table th,.forecast-table td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.forecast-table th{color:var(--heading)}
.news-list{display:grid;gap:22px}.news-list article{padding:20px 0;border-bottom:1px solid var(--line)}.news-list h3{margin:10px 0}.news-list a{color:var(--sea);text-underline-offset:4px}
@media(max-width:760px){.main-nav{gap:20px;overflow-x:auto;scrollbar-width:none}.main-nav a{margin-left:0}.server-content{padding:18px}.forecast-table{font-size:12px}}

/* All menus dim the underlying page neutrally, without a coloured wash. */
dialog::backdrop{background:rgb(0 0 0 / .28);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
#appearance-dialog::backdrop{background:rgb(0 0 0 / .28)}
#appearance-dialog.appearance-preview::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
/* Account beaches and alerts have separate, aligned actions. */
.account-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.account-card-heading h3{margin:0}.account-card-heading .fine-print{white-space:nowrap}
.account-saved-beaches{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.account-saved-beaches>p{padding:4px 0}
.account-beach-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:11px;padding:3px 3px 3px 11px;max-width:100%;font-size:12px;background:var(--card)}.account-beach-chip>span{overflow-wrap:anywhere}
#account-dialog .account-add-beaches{width:100%;margin:0;font-size:13px;text-align:left;min-height:46px}
.account-beach-picker{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
#account-dialog .account-beach-picker .search-field{padding:3px 10px}.account-beach-picker .search-field input{border:0!important;background:transparent!important;padding:8px 0!important;min-height:42px!important}
.account-saved-options{margin:12px 0;max-height:300px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.account-region{border-bottom:1px solid var(--line);padding:4px 0}.account-region summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 2px;min-height:50px;font-size:13px}.account-region summary strong{font-weight:600}.account-region summary small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.account-region summary>span:last-child{font-size:22px;color:var(--sea)}
#account-dialog label.account-region-all{padding:10px 8px;margin:4px 0 6px;background:var(--card);border-radius:10px;font-size:12px}
#account-dialog label.account-beach-option{padding:9px 8px;font-size:12px;min-height:44px;font-weight:400}.account-beach-option strong{font-weight:500}#account-dialog .account-beach-option small{font-size:10px;margin-top:2px}
.account-beach-picker>.outline-button{width:100%;margin:12px 0 0;font-size:13px}.account-preference-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}.account-preference-links button{font-size:12px;min-height:44px;padding:0;color:var(--sea)}
.account-save-line{display:flex;align-items:center;gap:10px;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.account-save-line button{font-size:12px;min-height:40px;white-space:nowrap}
.account-alert-state{font-size:10px;border:1px solid var(--line);border-radius:99px;padding:5px 9px;color:var(--muted)}.account-alert-state[data-enabled=true]{color:var(--sea)}
#account-dialog .account-alert-setting{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
#account-dialog .account-alert-link{margin-top:18px;min-height:48px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;padding:12px 15px;text-align:left;background:var(--card)}
@media(max-width:500px){.account-preference-card{padding:16px}.account-card-heading{align-items:flex-start}.account-card-heading h3{font-size:15px}.account-preference-links{gap:18px}.account-save-line{align-items:flex-start}.account-save-line .fine-print{padding-top:9px}}

/* BestSwell rating explanation v10 */
#score-info{display:grid;grid-template-columns:auto auto;column-gap:7px;row-gap:4px;align-items:center;justify-content:start;justify-items:start;padding:8px 0;white-space:normal;max-width:100%;background:transparent;box-shadow:none}
#score-info>strong{grid-column:1;grid-row:1}
#score-info>.score-scale{grid-column:2;grid-row:1}
#score-info #score-label{font-size:10px;letter-spacing:.3px;margin-top:7px;white-space:nowrap}
#score-info>.score-explainer{grid-column:1/-1;grid-row:2;display:flex;align-items:center;gap:7px;min-height:44px;margin:0;font-size:13px;font-weight:600;line-height:1.35;letter-spacing:0;color:var(--ink);text-align:start}
#score-info .score-explainer>span{min-width:0;white-space:normal;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;text-decoration-thickness:1px}
#score-info .score-help-icon,#score-info .score-help-arrow{display:block;width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#score-info .score-help-arrow{width:15px;height:15px;flex-basis:15px;color:var(--sea)}
#score-info:hover{background:transparent;box-shadow:none}
#score-info:hover .score-explainer>span{text-decoration-color:currentColor}
#rating-dialog{min-width:0;max-width:calc(100% - 32px)}
#rating-dialog .dialog-header>div{min-width:0}
#rating-dialog .dialog-header h2{overflow-wrap:anywhere}
#rating-dialog .dialog-footer{flex-wrap:wrap;gap:12px}
#rating-dialog .dialog-footer button{min-height:44px;max-width:100%;white-space:normal}
@media(max-width:760px){#score-info>.score-explainer{font-size:12px}#rating-dialog{inset:10dvh auto auto 0;width:100dvw;max-width:100dvw;max-height:90dvh}}

/* BestSwell webcam and information panels v12 */
#info-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
#info-dialog>.dialog-header{position:static;flex:0 0 auto;gap:16px;background:transparent;padding-bottom:0;margin-bottom:20px}
#info-dialog>.dialog-header h2{min-width:0;overflow-wrap:anywhere}
#info-language-note{flex:0 0 auto;margin-top:0}
#info-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable;padding-right:12px}
#info-dialog>.dialog-footer{flex:0 0 auto;flex-wrap:wrap;gap:12px}
#info-dialog>.dialog-footer button{min-height:44px;max-width:100%;white-space:normal}
@media(max-width:760px){#info-dialog{width:100dvw;max-width:100dvw;inset:10dvh auto auto 0;max-height:90dvh}}

/* BestSwell forecast freshness placement v13 */
.spot-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}
.spot-meta>.subtitle{margin:0}
.spot-meta #freshness{position:static;inset:auto;display:inline-flex;align-items:center;flex:none;gap:8px;min-height:44px;max-width:none;margin:0;padding:0;font-size:11px;white-space:nowrap;text-align:start}
.spot-meta #freshness::before{flex:none}
@media(max-width:760px){.masthead{flex-wrap:wrap;gap:12px;padding-bottom:28px}.spot-meta{align-items:flex-start;gap:0}.spot-meta>.subtitle{flex-basis:100%}.spot-meta #freshness{font-size:10px}}

/* BestSwell profile-v16: compact onboarding, reachable actions, semantic gold favourites. */
:root{--favourite-gold:#946516}
:root[data-mode="dark"]{--favourite-gold:#dfbd73}
#save-spot,.search-row .star,.search-row .star.saved{color:var(--favourite-gold)}
#save-spot[aria-pressed="true"]{background:var(--card);color:var(--favourite-gold);border-color:var(--line)}
#experience-dialog[open]{display:flex;flex-direction:column;overflow:hidden;max-height:90dvh;padding-bottom:20px}
#experience-dialog .dialog-header{position:static;flex-shrink:0;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:0}
#experience-dialog .dialog-header .eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:5px}
#experience-dialog .dialog-header h2{font-size:clamp(23px,4vw,30px);line-height:1.2;margin:0}
#experience-title:focus{outline:none}
#experience-dialog .dialog-header .icon-button{flex-shrink:0}
.experience-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 3px 0 0}
#experience-intro{font-size:14px;line-height:1.45;margin:0 0 4px}
.experience-skip-top{min-height:44px;padding:6px 0;color:var(--sea);font-weight:600}
#experience-dialog .experience-levels{margin:8px 0 14px;gap:8px}
#experience-dialog .experience-levels legend{font-size:13px;margin-bottom:8px}
#experience-dialog .experience-levels label{padding:11px 12px;gap:10px;min-height:66px;align-items:start}
#experience-dialog .experience-levels strong{font-size:15px;line-height:1.25}
#experience-dialog .experience-levels small{font-size:12px;line-height:1.35;margin-top:3px}
.experience-advanced{border-top:1px solid var(--line)}
.experience-advanced summary{min-height:44px;display:list-item;cursor:pointer;font-size:13px;font-weight:600;padding:13px 0}
.experience-advanced summary span{font-weight:400;color:var(--muted)}
#experience-dialog .experience-limit-control{margin:4px 0 12px;font-size:13px}
.experience-safety{font-size:11px;line-height:1.4;margin:8px 0 12px}
.experience-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex-shrink:0;border-top:1px solid var(--line);padding-top:12px;background:inherit}
.experience-actions button{min-height:44px;padding:10px 12px;font-size:14px;margin:0}
@media(max-width:600px){#experience-dialog[open]{padding:22px 18px max(14px,env(safe-area-inset-bottom));max-height:90dvh}#experience-dialog:before{margin:-8px auto 15px}#experience-dialog .dialog-header{padding-bottom:12px}.experience-actions{gap:8px}}
@media(max-width:480px){#experience-dialog .experience-levels{grid-template-columns:1fr}}

/* BestSwell social-v17: official artwork, self-hosted font; no provider SDK on page load. */
@font-face{font-family:'BestSwell Google Sans';font-style:normal;font-weight:500;font-display:swap;src:url(./google-signin-latin.woff) format('woff')}
.account-social>div{display:grid;grid-template-columns:1fr;gap:10px}.account-social .social-signin{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;font:500 14px/20px 'BestSwell Google Sans',Arial,sans-serif;border-radius:10px;padding:11px 12px;border:1px solid #747775;cursor:pointer}.social-signin img{width:20px;height:20px;flex:none}.social-signin span{min-width:0}.account-social .social-google{background:#fff;color:#1f1f1f}html[data-mode="dark"] .account-social .social-google{background:#131314;color:#e3e3e3;border-color:#8e918f}.account-social .social-apple{background:#000;color:#fff;border-color:#555;padding:0 12px;font-family:var(--font-body,Arial,sans-serif)}.social-apple img{width:44px;height:44px}.analytics-footer-note{font-size:11px!important;line-height:1.5;color:var(--muted);margin:12px 0 0}#account-dialog .social-signin:disabled{cursor:default;opacity:.55}


/* BESTSWELL_FORECAST_FOCUS_FIX_V27
   Prevent iOS Safari retaining a full-page focus rectangle.
   Interactive controls keep their own focus indicators. */
#forecast-view:focus {
    outline: none !important;
}


/* BESTSWELL_DIALOG_SCROLL_SURFACE_V28
   All sheets share one solid surface. Their headers always mask scrolling
   content, and long Settings/Appearance content scrolls below the header. */

dialog {
    background: var(--card);
}

dialog[open] > .dialog-header {
    position: sticky;
    top: 0;
    z-index: 20;
    flex: 0 0 auto;
    background: var(--card) !important;
    isolation: isolate;
}

dialog[open] > .dialog-header::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -30px;
    right: -4px;
    bottom: -1px;
    left: -4px;
    background: var(--card);
    pointer-events: none;
}

#settings-dialog[open],
#appearance-dialog[open] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--card);
}

#settings-dialog > .dialog-header,
#appearance-dialog > .dialog-header {
    position: static;
    margin-bottom: 0;
    padding-bottom: 20px;
}

.dialog-scroll-body,
.appearance-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-right: 3px;
}

#settings-dialog > .dialog-footer,
#appearance-dialog > .dialog-footer {
    flex: 0 0 auto;
    margin-top: 0;
    background: var(--card);
}

@media (max-width: 760px) {
    dialog[open] > .dialog-header::before {
        top: -28px;
        right: -2px;
        left: -2px;
    }
}

/* BESTSWELL_COUNTRY_DIALOG_V30
   Static dialog headers made the old absolute background mask cover the
   entire dialog. The header already has an opaque background; its extra
   mask is unnecessary. Preserve the existing header/body scroll layout. */
dialog[open] > .dialog-header::before { content: none !important; }

/* BESTSWELL_COUNTRY_REGIONS_V31 */
dialog[open] > .dialog-header::before{content:none!important}
.country-regions{display:grid;gap:6px;margin:16px 0}
.country-region{border:1px solid var(--line);border-radius:12px;margin:0;overflow:hidden;background:transparent}
.country-region>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 14px;cursor:pointer;list-style:none;color:var(--ink);font-weight:650}
.country-region>summary::-webkit-details-marker{display:none}
.country-region>summary>span{flex:1;min-width:0;overflow-wrap:anywhere}
.country-region>summary>small{flex:none;color:var(--muted);font-size:11px;font-weight:400}
.country-region>summary:after{content:"";flex:none;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 3px 4px 4px;transition:transform .15s ease}
.country-region[open]>summary:after{transform:rotate(225deg);margin-bottom:0}
.country-region>ul{margin:0;padding:0 14px 12px 32px;line-height:1.7}
.country-region>ul>li{padding:3px 0}
.country-region a{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.country-region>summary:after{transition:none}}

/* BESTSWELL_SEO_STRUCTURE_V35 */

/* Keep the homepage neutral until its single initial beach is ready. */
html.homepage-loading #forecast-view .spot-heading,
html.homepage-loading #forecast-view #server-content,
html.homepage-loading #forecast-view #days,
html.homepage-loading #forecast-view .forecast-guide,
html.homepage-loading #forecast-view #forecast-content,
html.homepage-loading #sticky-days{display:none!important}
html.homepage-loading #forecast-view #load-state{display:flex!important}
/* Keep the footer below the viewport while the chosen forecast is pending. */
html.homepage-loading #forecast-view{min-height:calc(100svh - 180px)}
/* An inline surf illustration; no image request or minimum display delay. */
.load-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:240px;margin-block:22px;padding:36px 24px;overflow:hidden}
.load-state p{width:100%;max-width:48ch;margin:0;font-size:14px;line-height:1.65;text-wrap:balance}
/* One original paddler follows the selected theme through existing tokens. */
.surf-loader{display:block;flex:none;width:96px;height:60px;overflow:visible;color:var(--sea)}
.surf-loader .stroke{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.surf-loader .foam{fill:var(--foam);stroke:var(--heading,var(--ink));opacity:1}
.surf-loader>g>g.stroke{color:var(--muted)}
.load-state:not(.is-loading) .surf-loader{display:none}
.is-loading .surf-loader .paddle-body{animation:surf-paddle-bob 2s ease-in-out infinite}
.is-loading .surf-loader .arm-left{animation:surf-paddle-left 2s ease-in-out infinite}
.is-loading .surf-loader .arm-right{animation:surf-paddle-right 2s ease-in-out -1s infinite}
.is-loading .surf-loader .splash-left,.is-loading .surf-loader .splash-right{animation:surf-paddle-splash 2s ease-out infinite;transform-box:fill-box;transform-origin:center}
.is-loading .surf-loader .splash-right{animation-delay:-1s}
@keyframes surf-paddle-bob{0%,100%{transform:translateY(1px)}50%{transform:translateY(-1px)}}
@keyframes surf-paddle-left{0%,100%{transform:rotate(-28deg)}48%{transform:rotate(42deg)}}
@keyframes surf-paddle-right{0%,100%{transform:rotate(28deg)}48%{transform:rotate(-42deg)}}
@keyframes surf-paddle-splash{0%,42%,100%{opacity:0;transform:scale(.6)}56%{opacity:.65}82%{opacity:0;transform:scale(1.35)}}
@media(max-width:600px){.load-state{min-height:220px;padding:30px 20px}}
@media(prefers-reduced-motion:reduce){.surf-loader *{animation:none!important}}
.spot-meta .forecast-refresh{min-height:44px;font-size:11px;padding:9px 13px}
/* Fixed page underneath native dialogs prevents mobile scroll chaining. */
html.dialog-scroll-locked{overflow:hidden;overscroll-behavior:none}
html.dialog-scroll-locked body{position:fixed;top:var(--dialog-page-top);left:0;width:100%;padding-right:var(--dialog-scrollbar-gap);overflow:hidden}
dialog{overscroll-behavior:contain}
.theme-default-badge{font-size:9px;font-weight:600;line-height:1.2;color:var(--muted)}
.visit-details{margin-block:16px 8px}
.visit-disclosure>summary{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-weight:650;color:var(--heading,var(--ink))}
.parking-mark{display:inline-grid;place-items:center;width:25px;height:28px;border:1px solid var(--sea);border-radius:6px;color:var(--sea);font-size:18px}
.visit-place{padding-block:10px;overflow-wrap:anywhere}.visit-place+.visit-place{border-top:1px solid var(--line)}
.visit-place h3{font-family:inherit;font-size:16px;line-height:1.4;font-weight:650;margin:10px 0;color:var(--heading,var(--ink))}
.visit-place p{margin-block:10px}.visit-tariffs{display:grid;gap:8px;margin:14px 0}.visit-tariffs div{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:12px}.visit-tariffs dt{color:var(--muted)}.visit-tariffs dd{margin:0;font-variant-numeric:tabular-nums}
.visit-suggest{font-size:12px}.region-guide{margin-block:22px}.wetsuit-art{display:block;width:100%;max-width:380px;height:auto;margin:20px auto}
.tool-form:has(#suit-temperature){display:grid;gap:18px}
.tool-form:has(#suit-temperature) .tool-field{display:grid;gap:8px}
@media(max-width:600px){.visit-tariffs div{grid-template-columns:1fr;gap:3px}}

/* Native forecast readers use the text data and ordinary navigation. */
:root:not([data-mode]) :is(.spot-actions,.top-actions,.spot-meta){display:none}
:root:not([data-mode]) #choose-spot>span{display:none}


/* Source: coverage.css */
/* BESTSWELL_COVERAGE_FOOTER_V34: short visible row, optional grouped secondary links. */
.shell footer .footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-top:18px;position:relative}
.shell footer .footer-links>a,.shell footer .footer-links>button,.shell footer .footer-more>summary{font-size:13px;font-weight:500;min-height:36px;display:inline-flex;align-items:center;padding:4px 0;color:var(--muted);background:transparent}
.shell footer .footer-more{flex-basis:100%;margin:0}
.shell footer .footer-more>summary{list-style:none;cursor:pointer;gap:8px}
.shell footer .footer-more>summary::-webkit-details-marker{display:none}
.shell footer .footer-more>summary::after{content:'⌄';font-size:15px;line-height:1;transition:transform .15s ease}
.shell footer .footer-more[open]>summary::after{transform:rotate(180deg)}
.shell footer .footer-link-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:16px 0 4px;max-width:560px;border-top:1px solid var(--line)}
.shell footer .footer-link-groups>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.shell footer .footer-link-groups strong{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:2px}
.shell footer .footer-link-groups a,.shell footer .footer-link-groups button{font:inherit;font-size:12px;padding:3px 0;min-height:32px;white-space:normal;text-align:left;background:transparent;color:var(--muted)}
.shell footer .footer-links a:hover,.shell footer .footer-links button:hover,.shell footer .footer-more>summary:hover{color:var(--ink)}
.shell footer .analytics-footer-note,.shell footer [data-coverage-copy]{font-size:12px;line-height:1.55;color:var(--muted)}
.shell footer .footer-about-copy{max-width:780px;font-size:12px;line-height:1.65;color:var(--muted)}
.shell footer .footer-account-copy{max-width:780px;font-size:11px;line-height:1.65;color:var(--muted)}
@media(min-width:761px){.shell footer .footer-more{flex-basis:auto;flex:1}.shell footer .footer-link-groups{margin-top:8px}.shell footer .footer-more[open]{flex-basis:100%;order:2}}
@media(max-width:500px){.shell footer .footer-links{gap:6px 17px}.shell footer .footer-link-groups{grid-template-columns:1fr 1fr;gap:16px}.shell footer .footer-link-groups button{max-width:100%}}
@media(prefers-reduced-motion:reduce){.shell footer .footer-more>summary::after{transition:none}}

/* BESTSWELL_COMPACT_FOOTER_V37 */
.shell footer{padding-top:20px;padding-bottom:24px}
.shell footer .footer-links{gap:4px 18px;margin-top:10px}
.shell footer .footer-more{flex-basis:auto;flex:0 0 auto}
.shell footer .footer-more[open]{flex-basis:100%}
.shell footer .footer-more>summary{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;min-height:40px;line-height:1.2}
.shell footer .footer-more>summary::after{content:none}
.shell footer .footer-chevron{display:block;width:16px;height:16px;flex:none;transform-origin:center;transition:transform .15s ease}
.shell footer .footer-more[open] .footer-chevron{transform:rotate(180deg)}
.shell footer .footer-link-groups{max-width:760px;gap:14px 24px;padding:12px 0 2px}
.shell footer .footer-directory-group{grid-column:1/-1;display:block}
.shell footer .footer-directory-group .spot-directory{width:100%;margin:4px 0;border:0;padding:0}
.shell footer .footer-directory-group summary{min-height:36px;display:flex;align-items:center;font-size:12px}
.shell footer .footer-directory-group .directory-links{padding-top:8px}
.shell footer .footer-warning{margin:10px 0 5px;font-size:11px;line-height:1.5}
.shell footer .source-credit{margin:5px 0 0;max-width:none;font-size:11px;line-height:1.7}
.shell footer .source-credit a{white-space:normal}
.shell footer .footer-links>button{font:inherit;font-size:13px;text-align:left;white-space:normal;border:0}
@media(max-width:500px){.shell footer .footer-links{gap:2px 14px}.shell footer .source-credit{max-width:100%}}
@media(prefers-reduced-motion:reduce){.shell footer .footer-chevron{transition:none}}

/* BESTSWELL_FOOTER_LINKS_V38 */
.shell footer .footer-more,.shell footer .footer-more[open]{display:contents}
.shell footer .footer-more>summary{flex:0 0 auto;order:0}
.shell footer .footer-more>.footer-link-groups{flex:0 0 100%;order:1;width:100%;max-width:none;box-sizing:border-box;display:flex;align-items:center;flex-wrap:wrap;gap:2px 18px;border-top:0;padding:2px 0}
.shell footer .footer-more:not([open])>.footer-link-groups{display:none}
.shell footer .footer-directories{display:flex;align-items:center;flex-wrap:wrap;gap:0 10px;margin:8px 0 2px}
.shell footer .footer-directories>.spot-directory,.shell footer .footer-directories>.spot-directory[open]{display:contents}
.shell footer .footer-directories>.spot-directory>summary{display:inline-flex;align-items:center;min-height:36px;font-size:12px;line-height:1.4;list-style:none;cursor:pointer;order:0;padding:0;margin:0}
.shell footer .footer-directories summary::-webkit-details-marker{display:none}
.shell footer .footer-directory-separator{font-size:12px;line-height:1.4;color:var(--muted);order:0}
.shell footer .footer-directories>.spot-directory>.directory-links{flex:0 0 100%;order:1;width:100%;box-sizing:border-box;padding:8px 0;max-height:360px;overflow:auto}
.shell footer .footer-directories>.spot-directory:not([open])>.directory-links{display:none}
@media(max-width:420px){.shell footer .footer-directories{gap:0 7px}.shell footer .footer-directories>.spot-directory>summary,.shell footer .footer-directory-separator{font-size:11px}}

/* BESTSWELL_FOOTER_ORDER_V39 */
.shell footer>.footer-link-groups{display:flex;align-items:center;flex-wrap:wrap;gap:2px 18px;width:100%;max-width:none;box-sizing:border-box;padding:4px 0;margin:0;border:0}
.shell footer>.footer-link-groups[hidden]{display:none}
.shell footer>.footer-link-groups>a,.shell footer>.footer-link-groups>button{display:inline-flex;align-items:center;min-height:36px;padding:4px 0;font:inherit;font-size:13px;font-weight:500;color:var(--muted);background:transparent;border:0}
.shell footer>.footer-link-groups>a:hover,.shell footer>.footer-link-groups>button:hover{color:var(--ink)}
.shell footer .footer-links>#footer-more-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;line-height:1.2}
.shell footer #footer-more-toggle[aria-expanded=true] .footer-chevron{transform:rotate(180deg)}

/* BESTSWELL_FOOTER_POLISH_V40 */
.shell footer{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.shell footer>div:first-child>strong{font-family:inherit;font-size:16px;font-weight:750;letter-spacing:-.35px;line-height:1.3}
.shell footer .footer-links>a,.shell footer .footer-links>button,.shell footer>.footer-link-groups>a,.shell footer>.footer-link-groups>button{font-family:inherit;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;min-height:36px;padding:4px 0}
.shell footer .footer-links>#footer-more-toggle{min-height:36px}
.shell footer .footer-directories{margin:2px 0 0}
.shell footer .footer-directories>.spot-directory>summary{font-family:inherit;font-size:13px;font-weight:500;line-height:1.4;min-height:32px;text-decoration:none}
.shell footer .footer-links>a:hover,.shell footer .footer-links>button:hover,.shell footer>.footer-link-groups>a:hover,.shell footer>.footer-link-groups>button:hover,.shell footer .footer-directories summary:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(max-width:420px){.shell footer .footer-directories>.spot-directory>summary{font-size:12px}}

/* BESTSWELL_FOOTER_COUNTS_V41 */
.shell footer .footer-directories{column-gap:0}
.shell footer .footer-directory-separator{flex:0 0 auto;margin:0 10px;padding:0;line-height:1.4}
@media(max-width:420px){.shell footer .footer-directories{column-gap:0}.shell footer .footer-directory-separator{margin-inline:8px}}


/* Source: features.css */
/* BestSwell planning tools: inherit all existing appearance roles. */
.main-nav{overflow-x:auto;white-space:nowrap;scrollbar-width:thin;gap:clamp(16px,3vw,34px)}
.main-nav a.active{color:var(--ink);border-bottom:3px solid var(--sea)}
.feature-view{padding-top:32px}.feature-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.feature-heading .seo-section-title{font-size:clamp(30px,5vw,58px);letter-spacing:-.045em;margin:6px 0}.feature-heading p{color:var(--muted)}
.feature-controls,.feature-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.feature-controls label{display:grid;gap:7px}.feature-controls p{width:100%;margin:2px 0;color:var(--muted)}
.feature-controls select,.feature-form select,.feature-form input:not([type=checkbox]):not([type=range]),#direction-hour{min-height:46px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px;font:inherit}
.compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.compare-card{min-width:0}.compare-card h2{font-size:25px}.compare-clock{font-size:14px;color:var(--muted)}.compare-metrics{display:grid;gap:0;margin:24px 0}.compare-metrics>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.compare-metrics dt{color:var(--muted)}.compare-metrics dd{margin:0;font-weight:650;text-align:right;display:flex;align-items:center;gap:5px}.compare-metrics svg,.map-legend svg{width:24px;height:24px}.compare-card .outline-button{width:100%}
.feature-picker{max-height:50dvh;overflow:auto}.picker-row{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:15px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink)}.picker-row small,.alert-beaches small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.picker-row:disabled{opacity:.5}
.feature-dialog{width:min(720px,calc(100% - 28px))}.feature-dialog h2{border:0;background:none;outline:none}.feature-form{display:grid;gap:20px}.feature-form>label,.form-pair label{display:grid;gap:9px;color:var(--ink);text-align:left}.feature-check{display:flex!important;align-items:flex-start!important;gap:12px!important;line-height:1.5}.feature-check input[type=checkbox]{appearance:auto;flex:0 0 18px;width:18px;height:18px;padding:0;margin:3px 0 0;accent-color:var(--sea)}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.feature-form input[type=range]{width:100%;accent-color:var(--sea)}
.alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.alert-card h2{font-size:23px;line-height:1.4}.alert-beaches{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:14px}.alert-beaches label{padding:9px 0;border-bottom:1px solid var(--line)}.community-reports{margin-top:20px}.community-reports time{display:block;font-weight:600}.community-reports p{font-size:14px;line-height:1.6}
.camera-links{display:grid;gap:12px}.camera-link{display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink)}.camera-link small{color:var(--muted)}
.satellite-map{position:relative;aspect-ratio:5/3;min-height:250px;max-height:450px;overflow:hidden;border-radius:18px;background:#102535;isolation:isolate}.map-tiles{position:absolute;display:grid;grid-template-columns:repeat(4,256px);width:1024px;height:1024px}.map-tiles img{display:block;width:256px;height:256px;max-width:none}.satellite-map>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-beach-dot{fill:#fff;stroke:#152a38;stroke-width:4}.map-swell-arrow{stroke:#92f2db}.map-wind-arrow{stroke:#ffc484}.map-swell-arrow,.map-wind-arrow{fill:none;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 2px #000)}.map-north{position:absolute;top:10px;left:12px;color:#fff;background:#102535dd;padding:8px;border-radius:8px;font-size:14px}.map-buttons{position:absolute;top:12px;right:12px;display:grid;gap:5px}.map-buttons button{width:40px;height:40px;border:1px solid #9bafb6;color:#fff;background:#102535dd;border-radius:10px;font-size:22px;display:grid;place-items:center;padding:0}.map-credit{position:absolute;bottom:0;left:0;right:0;margin:0;background:#06131bed;color:#fff;font-size:10px;line-height:1.4;padding:7px 10px}.map-credit a{color:#d8f4e7}.map-legend{display:flex;flex-wrap:wrap;gap:14px}.map-legend p{display:flex;align-items:center;gap:6px}.map-swell{color:var(--sea)}.map-wind{color:var(--ink)}.map-consent{padding:18px;background:var(--foam);border-radius:16px;margin-bottom:18px}
@media(max-width:900px){.compare-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compare-card:last-child:nth-child(3){grid-column:1/-1}.spot-actions{flex-wrap:wrap;justify-content:flex-end}.spot-actions #add-compare{font-size:12px;padding:10px}}
@media(max-width:600px){.feature-heading{align-items:flex-start;flex-direction:column}.compare-grid,.alert-list{grid-template-columns:1fr}.compare-card:last-child:nth-child(3){grid-column:auto}.feature-controls{gap:12px}.feature-controls label{flex:1;min-width:110px}.feature-dialog{padding:22px 18px}.form-pair{grid-template-columns:1fr}.spot-actions #add-compare{order:3;width:100%;white-space:nowrap}.spot-heading>.spot-actions{max-width:140px;gap:8px}.feature-toolbar{gap:10px}.satellite-map{min-height:275px}.map-legend{font-size:14px}}
@media(prefers-reduced-motion:reduce){.feature-view{animation:none}}
.main-nav a{margin-left:0}.main-nav a.active{border-bottom:0}
.compare-metrics [data-rating-band="flat"]{color:var(--rating-red)}.compare-metrics [data-rating-band="very-low"]{color:var(--rating-red)}.compare-metrics [data-rating-band="low"]{color:var(--rating-orange)}.compare-metrics [data-rating-band="fair"]{color:var(--rating-amber)}.compare-metrics [data-rating-band="good"]{color:var(--rating-green)}.compare-metrics [data-rating-band="excellent"]{color:var(--rating-best)}
@media(max-width:600px){.spot-heading:has(#add-compare){flex-wrap:wrap}.spot-heading:has(#add-compare)>div:first-child{flex:1 1 100%}.spot-heading>.spot-actions{width:100%;max-width:none;justify-content:flex-start;flex-wrap:nowrap}.spot-actions #add-compare{order:0;width:auto;margin-right:auto}.spot-actions .icon-button,.spot-actions .save-button{flex:0 0 44px}}

/* v8: one clock and one scroll track for every compared beach. */
.compare-planner{padding:0 0 20px;border-bottom:1px solid var(--line)}
.compare-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.compare-toolbar .primary-button{font-size:14px;padding:13px 20px;background:var(--sea);color:var(--paper)}
.compare-toolbar #compare-profile{margin-left:auto;font-size:13px}
.compare-selection{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.compare-choice{display:inline-flex;align-items:center;gap:14px;padding:10px 7px 10px 14px;border:1px solid var(--line);border-radius:13px;background:var(--card);min-width:0}
.compare-choice strong{font-size:14px}.compare-choice small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.compare-choice button,.account-beach-chip button{display:grid;place-items:center;width:36px;height:36px;flex:none;padding:0;border-radius:50%;color:var(--muted)}
.compare-choice svg,.account-beach-chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
#compare-status{margin:16px 0 0;line-height:1.6}
.compare-days{display:flex;gap:7px;overflow-x:auto;padding:8px;background:var(--card);border-radius:16px;margin-top:20px;scrollbar-width:thin}
.compare-day-button{min-width:94px;flex:1 0 94px;min-height:62px;border-radius:11px;display:grid;align-content:center;gap:5px;text-align:left;padding:10px 14px;color:var(--muted)}
.compare-day-button strong{font-size:14px}.compare-day-button small{font-size:11px}
.compare-day-button[aria-pressed=true]{background:var(--paper);color:var(--sea)}
.compare-time-controls{display:grid;grid-template-columns:minmax(140px,190px) minmax(160px,200px) 1fr;align-items:center;gap:18px;margin:18px 0 0}
.compare-time-controls label{display:grid;gap:8px;font-size:12px;color:var(--muted);min-width:0}
.compare-time-controls select{width:100%;background:var(--card);font-size:14px;padding:10px 12px}
.compare-time-controls p{font-size:12px;line-height:1.6;color:var(--muted);margin:15px 0 0}
.compare-timeline-section{margin-top:24px;min-width:0}
.compare-timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}
.compare-timeline-heading h2{margin:0;font-size:20px}.compare-timeline-heading p{margin:0}
.compare-timeline{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:17px;background:var(--paper);padding:0 6px 8px 0;scrollbar-width:thin}
.compare-table{border-collapse:separate;border-spacing:0;width:max-content;table-layout:fixed;text-align:left}
.compare-table th,.compare-table td{padding:5px;font-weight:400;vertical-align:top;width:136px;min-width:136px}
.compare-table thead th{padding:12px 5px 3px}.compare-table thead th button{width:100%;min-height:40px;font-size:12px;font-weight:650;border-radius:8px;color:var(--muted)}
.compare-table thead th button[aria-pressed=true]{color:var(--sea);background:var(--card)}
.compare-table .compare-row-label{position:sticky;left:0;background:var(--paper);width:180px;min-width:180px;max-width:180px;z-index:1;padding:16px;border-right:1px solid var(--line)}
.compare-row-label>strong{display:block;font-size:17px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}.compare-row-label>small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}.compare-row-label>.text-button{font-size:12px;padding:0;min-height:44px;margin-top:4px;color:var(--sea)}
.compare-table tbody tr:not(:last-child)>*{border-bottom:1px solid var(--line);padding-bottom:14px}.compare-table tbody tr+tr>*{padding-top:14px}
.compare-hour{display:flex;flex-direction:column;gap:7px;width:100%;min-height:208px;text-align:left;padding:12px 10px 9px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-variant-numeric:tabular-nums}
.compare-hour[aria-pressed=true]{border-color:var(--sea)}
.compare-hour-weather{display:flex;gap:5px;align-items:center;min-height:22px;color:var(--muted)}.compare-hour-weather .weather-icon{width:20px;height:20px;color:var(--sea)}.compare-hour-weather small{font-size:9px;line-height:1.4}
.compare-hour-surf{font-size:19px;white-space:nowrap;font-weight:650}.compare-hour-period,.compare-hour-wind{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.compare-hour .direction-arrow,.compare-hour .calm-mark{width:17px;height:17px}
.compare-hour-scores{display:grid;gap:5px;margin-top:4px}.compare-hour-scores>span{display:flex;justify-content:space-between;align-items:baseline;gap:4px;font-size:10px;color:var(--muted)}.compare-hour-scores b{font-size:15px;color:var(--rating-ink,var(--ink))}.compare-hour-scores b small{font-size:9px;font-weight:400;color:var(--muted)}
.compare-hour-confidence{font-size:9px;color:var(--muted);margin-top:auto}.compare-hour .hour-rating-strip{height:3px;flex:none;width:100%;margin-top:3px;border-radius:3px;background:var(--rating-ink,var(--line))}
.compare-hour-missing{justify-content:center;align-items:center;text-align:center;color:var(--muted)}.compare-hour-missing span{font-size:12px;line-height:1.5}.compare-hour-missing small{font-size:10px}
.compare-scrubber{display:flex;align-items:center;gap:18px;margin-top:16px}.compare-scrubber span{font-size:13px;font-weight:650;white-space:nowrap;min-width:78px}.compare-scrubber input{width:100%;margin:0;accent-color:var(--sea)}
.compare-card h2{margin:0;font-size:24px}.compare-card .section-heading{min-height:0}.compare-empty{padding:32px 20px}.compare-empty h2{color:var(--ink);font-size:21px;margin:0 0 12px}.compare-empty p{margin:0;line-height:1.6}
.alert-page-actions{display:grid;grid-template-columns:minmax(170px,230px) minmax(170px,230px);gap:12px;align-items:center;margin:20px 0}.alert-page-actions button{width:100%;font-size:14px;min-height:48px;margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.compare-toolbar{gap:10px}.compare-toolbar #compare-profile{margin-left:0}.compare-toolbar #compare-capacity{margin-left:auto}.compare-toolbar #compare-profile{flex-basis:100%}.compare-time-controls{grid-template-columns:1fr 1fr;gap:14px}.compare-time-controls p{grid-column:1/-1;margin:0}.compare-timeline-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}.compare-table .compare-row-label{min-width:112px;width:112px;max-width:112px;padding:12px 10px}.compare-row-label>strong{font-size:14px}.compare-row-label>small{font-size:10px}.compare-table th,.compare-table td{width:124px;min-width:124px}.compare-hour{padding:10px 8px;min-height:208px}.compare-hour-surf{font-size:17px}.compare-choice{flex:1 1 150px;justify-content:space-between}.compare-grid{grid-template-columns:1fr}.compare-card:last-child:nth-child(3){grid-column:auto}.alert-page-actions{grid-template-columns:1fr}}
/* Old mobile rules hid the former external link; feature tabs must remain available. */
.main-nav a{display:inline-flex;align-items:center;min-height:44px;flex:none}
#compare-empty-message{margin:24px 0}.compare-details{margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}.compare-details>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;font-weight:600;color:var(--ink)}.compare-details>summary:after{content:'+';color:var(--sea);font-size:24px;font-weight:400}.compare-details[open]>summary:after{content:'−'}

/* BestSwell navigation overflow v11 */
.main-nav{overflow-y:hidden;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav .active::after{bottom:-16px}
.main-nav button:focus-visible,.main-nav a:focus-visible{outline-offset:-2px}
@media(max-width:760px){.main-nav .active::after{bottom:-12px}}

/* BestSwell inline coastline map v15 */
.coastal-map{padding:20px;overflow:hidden}.coastal-map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.coastal-map-heading h2{font-size:18px;margin:0;color:var(--heading)}.coastal-map-heading>div{display:flex;gap:14px;flex-shrink:0}.coastal-map-heading .text-button{min-height:44px;white-space:nowrap;color:var(--muted)}
#inline-map-content #direction-time{font:11px ui-monospace,monospace;color:var(--muted);margin:3px 0 12px}#inline-map-content .satellite-map{aspect-ratio:auto;height:280px;min-height:0;max-height:none;border-radius:12px;background:linear-gradient(145deg,#102535,#071723)}
#inline-map-content #map-status{font-size:10px;color:var(--muted);margin:7px 0;line-height:1.4}#inline-map-content .map-legend{gap:6px 18px}#inline-map-content .map-legend p{font-size:11px;line-height:1.5;margin:3px 0;color:var(--ink)}#inline-map-content .map-legend .map-swell .direction-arrow{color:#92f2db}#inline-map-content .map-legend .map-wind .direction-arrow{color:#ffc484}
#inline-map-content #direction-content>label,#inline-map-content #direction-content>.fine-print{display:none}.coastal-map-note{font-size:10px;line-height:1.5;color:var(--muted);margin:9px 0 0}.coastal-map.map-collapsed .coastal-map-note{display:none}.coastal-map .map-buttons button{width:44px;height:44px}.coastal-map .map-credit{font-size:9px;padding:5px 8px}
@media(max-width:760px){.coastal-map{padding:16px}.coastal-map-heading{align-items:flex-start;gap:8px}.coastal-map-heading h2{font-size:16px;max-width:170px}.coastal-map-heading>div{gap:10px}.coastal-map-heading .text-button{font-size:10px;padding:0;min-height:44px}#inline-map-content .satellite-map{height:230px;border-radius:10px}#inline-map-content .map-legend{gap:3px}#inline-map-content .map-legend p{width:100%;font-size:11px}#inline-map-content #direction-time{font-size:10px;margin-top:8px}}

.map-buttons button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* BESTSWELL_SEO_STRUCTURE_V35 */

/* BESTSWELL_COASTLINE_V46 */
.satellite-map .map-swell-arrow,.satellite-map .map-wind-arrow{fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #000a)}
.satellite-map .map-swell-arrow{stroke:#94e4d4;stroke-width:2.3}.satellite-map .map-wind-arrow{stroke:#ffbd7b;stroke-width:1.8}
.satellite-map .map-beach-halo{fill:#10223088;stroke:#f4f8fa;stroke-width:1}.satellite-map .map-beach-dot{fill:#f4f8fa;stroke:#16313f;stroke-width:1.5}
#map-legend{gap:8px 18px;margin:10px 0 0}#map-legend .map-direction-key{display:flex;align-items:center;gap:7px;border:0;border-radius:0;background:transparent;padding:0;min-height:32px;text-align:left;font:inherit;font-size:12px;line-height:1.5;color:var(--ink);box-shadow:none}
#map-legend .map-direction-key svg{width:24px;height:24px;flex:0 0 24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#map-legend .map-swell svg{color:#94e4d4;filter:drop-shadow(0 1px .4px #245d5777)}#map-legend .map-wind svg{color:#ffbd7b;filter:drop-shadow(0 1px .4px #7d4b1977)}
#map-legend .map-direction-key[aria-pressed="false"]{opacity:.45}#map-legend .map-direction-key strong{font-weight:650}
#map-legend .map-direction-key:hover{background:transparent;box-shadow:none}#map-status .map-coast-retry{border:0;border-radius:0;padding:0;background:transparent;color:var(--sea);font:inherit;text-decoration:underline;text-underline-offset:3px;min-height:32px}
.satellite-map .map-credit{font-size:10px;line-height:1.4;padding:5px 9px}.satellite-map .map-north{font-size:12px;padding:7px 9px;background:#102535dd}
#inline-map-content #map-status{font-size:11px}#inline-map-content #map-legend .map-direction-key{font-size:11px;min-height:28px}
@media(max-width:760px){#map-legend .map-direction-key{width:100%;font-size:12px}#inline-map-content #map-legend{gap:4px}#map-status .map-coast-retry{min-height:36px}}

#direction-content>.map-credit{position:static;inset:auto;margin:8px 0 4px;padding:0;background:transparent;color:var(--muted);font-size:10px;line-height:1.45}#direction-content>.map-credit a{color:inherit;text-underline-offset:2px}


/* Source: analytics.css */
/* BestSwell analytics-v17: settings on request, never an entry gate. */
#analytics-dialog{width:min(540px,calc(100% - 32px));max-height:90dvh;overflow-y:auto;background:var(--card)}
#analytics-dialog[open]{display:block}#analytics-dialog .dialog-header{gap:12px;margin-bottom:12px;background:transparent;position:static}#analytics-dialog h2{font-size:24px;line-height:1.2;margin:0}#analytics-title:focus{outline:none}
#analytics-dialog p{font-size:13px;line-height:1.55;color:var(--muted)}.analytics-control{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:16px;min-height:60px;cursor:pointer}.analytics-control input{appearance:auto;accent-color:var(--sea);width:20px;height:20px;padding:0;flex:none}.analytics-control strong{font-size:14px}.analytics-control small{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
#analytics-dialog .dialog-footer{justify-content:flex-end;margin-top:16px}#analytics-dialog button{min-height:44px}#analytics-choice{min-height:2.5em}
@media(max-width:600px){#analytics-dialog{width:100%;max-width:100%}}

.analytics-banner{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:200;width:min(760px,calc(100% - 24px));box-sizing:border-box;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 28px #0004}.analytics-banner[hidden]{display:none}.analytics-banner p{margin:0 0 12px;font-size:13px;line-height:1.5}.analytics-banner strong{color:var(--heading)}.analytics-banner>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.analytics-banner button{min-height:44px;flex:1}.analytics-banner a{font-size:12px}body:has(dialog[open],.nav-overflow[open]) .analytics-banner{visibility:hidden}


/* Source: day-scroll.css */
/* BestSwell day-strip affordance v14 */
.day-scroll-frame{position:relative;min-width:0;max-width:100%;overflow:hidden;border-radius:15px;background:var(--sand);margin-bottom:28px;direction:ltr}
.day-scroll-frame.has-overflow{padding-inline:28px}
.day-scroll-frame>#days{margin-bottom:0;border-radius:0;scroll-snap-type:x proximity;scroll-padding-inline:6px;scroll-behavior:smooth;touch-action:pan-x pan-y;overscroll-behavior-x:contain}
.day-scroll-frame #days>[data-day],.day-scroll-frame #compact-days>[data-day]{scroll-snap-align:start}
.day-scroll-compact{flex:1;min-width:0;margin:0;border-radius:10px;background:transparent}
.day-scroll-compact>#compact-days{width:100%;scroll-snap-type:x proximity;scroll-behavior:smooth;scroll-padding-inline:0;touch-action:pan-x pan-y;overscroll-behavior-x:contain}
.day-scroll-edge{position:absolute;top:0;bottom:0;width:32px;min-height:44px;display:grid;place-items:center;padding:0;z-index:1;border:0;border-radius:0;color:var(--ink);opacity:1;touch-action:manipulation}
.day-scroll-left{left:0;background:linear-gradient(to right,var(--sand) 55%,transparent)}
.day-scroll-right{right:0;background:linear-gradient(to left,var(--sand) 55%,transparent)}
.day-scroll-edge svg{width:16px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.day-scroll-edge:disabled{color:var(--muted);opacity:1;cursor:default}.day-scroll-edge:disabled svg{opacity:.45}.day-scroll-edge:not(:disabled):hover{color:var(--ink);filter:none}.day-scroll-edge:active{transform:none}.day-scroll-edge:focus-visible{outline:2px solid var(--sea);outline-offset:-3px}
@media(max-width:760px){.day-scroll-frame{margin-bottom:21px;border-radius:13px}.day-scroll-compact{margin-bottom:0;border-radius:9px}.day-scroll-frame>#days{scroll-padding-inline:4px}}
@media(prefers-reduced-motion:reduce){.day-scroll-frame>#days,.day-scroll-compact>#compact-days{scroll-behavior:auto}}


/* Source: contact-socials.css */
.contact-form{display:grid;gap:18px;margin:24px 0 12px;max-width:680px}.contact-form fieldset{border:0;padding:0;margin:0;min-width:0}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-fields label{display:grid;gap:8px;font-weight:600;font-size:14px;color:var(--ink)}.contact-fields .contact-wide{grid-column:1/-1}.contact-fields label small{font-size:12px;font-weight:400;color:var(--muted)}.contact-fields input,.contact-fields textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:13px 14px;font:inherit;font-size:16px;line-height:1.5;min-height:48px;box-shadow:none}.contact-fields textarea{min-height:155px;resize:vertical}.contact-fields input:focus-visible,.contact-fields textarea:focus-visible{outline:2px solid var(--sea);outline-offset:2px}.contact-form .contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-form [data-contact-captcha]{min-height:65px;max-width:100%;overflow:hidden}.contact-form [data-contact-status]{margin:0;line-height:1.6;font-size:14px;color:var(--ink)}.contact-form .contact-error{color:var(--coral)}.contact-form [data-contact-status]:focus{outline:none}.contact-form [data-contact-submit]{justify-self:start;min-width:160px;min-height:48px;border:0;border-radius:12px;background:var(--sea);color:var(--paper);padding:12px 24px;font-weight:650}.contact-form button:disabled{opacity:.45;cursor:not-allowed}.contact-form [data-contact-again]{justify-self:start}.contact-privacy,.contact-helper{font-size:13px!important;color:var(--muted);line-height:1.65!important}.social-links{display:grid;gap:12px;margin:24px 0}.social-link{display:flex;align-items:center;gap:16px;min-height:80px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);text-decoration:none}.social-link svg,.home-community>svg{width:32px;height:32px;flex:0 0 auto;fill:none;stroke:var(--sea);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.social-link strong{font-size:18px}.social-link small{display:block;margin-top:4px;font-size:13px;color:var(--muted)}.social-link>span:last-child{margin-left:auto;color:var(--sea)}.social-link[data-unavailable]{opacity:.65}.social-link:focus-visible{outline:2px solid var(--sea);outline-offset:3px}.home-community{display:flex;gap:14px;align-items:center;margin:18px 0 26px;padding:16px 20px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.home-community[hidden]{display:none}.home-community strong{display:block;font-size:15px}.home-community p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.home-community a{margin-left:auto;white-space:nowrap;text-decoration:none;font-size:13px;font-weight:650;color:var(--sea);min-height:44px;display:flex;align-items:center;gap:6px}.contact-form [hidden]{display:none!important}@media(max-width:600px){.contact-fields{grid-template-columns:1fr;gap:15px}.contact-fields .contact-wide{grid-column:auto}.contact-form{gap:15px;margin-top:20px}.home-community{padding:14px;gap:12px;flex-wrap:wrap}.home-community>div{flex:1;min-width:160px}.home-community a{margin-left:44px}.social-link{padding:15px}.contact-form [data-contact-submit]{width:100%;justify-self:stretch}}

/* BestSwell compact forecast header v21: spacing only, retain touch targets. */
.masthead{padding:16px 0 10px}
.main-nav{padding-bottom:8px}
.main-nav .active:after{bottom:-9px}
.home-community{margin:12px 0 0;padding:8px 16px;gap:12px}
.home-community>svg{width:26px;height:26px}
.home-community strong{font-size:14px;line-height:1.4}
.home-community a{min-height:44px}
#forecast-view>.spot-heading{padding:20px 0 14px}
.spot-meta #freshness{min-height:32px}
#forecast-view>.day-scroll-frame{margin-bottom:0}
.forecast-guide{margin:8px 0 18px;color:var(--muted)}
.forecast-guide>summary{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:4px 0;font-size:11px;font-weight:550;list-style:none}
.forecast-guide>summary::-webkit-details-marker{display:none}
.forecast-guide>summary span{display:inline-block;transition:transform .15s}
.forecast-guide[open]>summary span{transform:rotate(180deg)}
.forecast-guide .overview-key{margin:2px 0 8px;max-width:760px;line-height:1.6;font-size:11px}
@media(max-width:760px){
 .masthead{padding:14px 0 10px;gap:8px}
 .masthead:has(#account-status:not([hidden])){padding-bottom:30px}
 .main-nav{padding-bottom:6px}
 .main-nav .active:after{bottom:-7px}
 .home-community{margin:10px 0 0;padding:7px 12px;gap:8px;flex-wrap:nowrap}
 .home-community>svg{width:22px;height:22px}
 .home-community>div{min-width:0;flex:1}
 .home-community strong{font-size:12px}
 .home-community a{margin-left:auto;font-size:12px;flex-shrink:0}
 #forecast-view>.spot-heading{padding:18px 0 12px;row-gap:8px}
 .spot-meta{align-items:center;gap:0 12px}
 .spot-meta>.subtitle{flex-basis:auto}
 .spot-meta #freshness{min-height:44px}
 .forecast-guide{margin:5px 0 12px}
 .forecast-guide>summary{min-height:44px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.forecast-guide>summary span{transition:none}}

/* BestSwell community message rotation — reserve the longest message's height. */
.home-community>.community-copy{min-width:0;flex:1}
.community-heading{display:flex;align-items:center;gap:8px}
.home-community .community-heading strong{flex:0 1 auto}
.home-community [data-community-messages]{display:grid;margin:2px 0 0;line-height:1.5}
.community-message{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity 160ms ease,visibility 0s linear 160ms;pointer-events:none}
.community-message.is-current{opacity:1;visibility:visible;transition-delay:0s}
@media(prefers-reduced-motion:reduce){.community-message{transition:none}}

/* BestSwell community invitation: inline heading and rotating message. */
.home-community>.community-copy{display:flex;align-items:center;flex-wrap:wrap;column-gap:12px;row-gap:0}
.home-community .community-heading{flex:0 0 auto}
.home-community [data-community-messages]{margin:0;flex:0 1 auto;min-width:0}

/* BestSwell matching community gaps */
.home-community{margin-top:20px}
@media(max-width:760px){.home-community{margin-top:18px}}


/* Source: global.css */
.global-search-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.global-search-filters label{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}.global-search-filters select{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);padding:12px}.global-beta-note{font-size:.85rem;color:var(--muted)}


/* Source: vendor/leaflet/leaflet.css */
/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(images/layers.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(images/layers-2x.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(images/marker-icon.png);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}


/* Source: advanced-swell.css */
.forecast-horizon{margin-bottom:18px}.swell-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.swell-toolbar label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.swell-toolbar select,.swell-toolbar input[type=search],#model-variable{max-width:100%;font:inherit;font-size:12px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 10px}.swell-hourly button{border:1px solid var(--line);color:var(--ink);background:var(--card);padding:9px 13px;border-radius:9px;cursor:pointer}.segmented{display:flex;gap:4px}.segmented .outline-button[aria-pressed=true]{background:var(--button-bg);color:var(--button-ink)}#forecast-horizon,#swell-map-time{width:100%;margin:18px 0 6px;accent-color:var(--sea);min-height:30px}#swell-components,#advanced-table,#advanced-geography{margin-bottom:20px}.component-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.component-grid article{padding:15px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.component-grid h3{font-size:.9rem;color:var(--muted);margin:0 0 12px}.component-grid strong{font-size:1.4rem}.component-grid p{font-size:.8rem;line-height:1.5}.hourly-table-wrap{max-width:100%;overflow:auto;max-height:540px;border:1px solid var(--line);border-radius:12px}.swell-hourly{border-collapse:separate;border-spacing:0;font-size:.8rem;white-space:nowrap;width:100%}.swell-hourly th,.swell-hourly td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.swell-hourly thead th{position:sticky;top:0;background:var(--card);z-index:2}.swell-hourly th:first-child{position:sticky;left:0;background:var(--card);z-index:1}.swell-hourly thead th:first-child{z-index:3}.swell-hourly .selected td{background:var(--paper)}.swell-hourly [aria-pressed=true]{border-color:var(--sea);color:var(--sea)}#swell-map{height:560px;border:1px solid var(--line);border-radius:14px;background:#dce9ec;margin-top:14px;isolation:isolate;color:#18303b}#swell-maps-view .panel{padding:24px}#swell-map .leaflet-popup-content{min-width:0;font-size:13px;line-height:1.6}#swell-map .leaflet-popup-content a{color:#09647b}#swell-map .leaflet-control-attribution{color:#333}.swell-map-search-results{display:flex;flex-wrap:wrap;gap:5px}.swell-map-search-results button{min-width:0;text-align:start;white-space:normal;overflow-wrap:anywhere}#ocean-point{max-height:360px;overflow:auto}.advanced-forecast #day-chart,.advanced-forecast #model-chart{touch-action:pan-y;cursor:crosshair}.advanced-forecast #model-variable{display:block;margin:12px 0}.forecast-horizon strong{font-size:.9rem}.swell-map-grid{pointer-events:none}#swell-maps-view [hidden]{display:none!important}@media(max-width:650px){#swell-map{height:440px}#swell-maps-view .panel{padding:14px}.swell-toolbar{gap:10px}.swell-toolbar label{flex:1;min-width:130px}.component-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.component-grid article{padding:12px}.component-grid strong{font-size:1.1rem}.swell-hourly th,.swell-hourly td{padding:8px}.forecast-horizon .swell-toolbar strong{order:3;width:100%}#swell-maps-view h1{font-size:2rem}}

.swell-series-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}.swell-chart-tooltip{position:fixed;z-index:5000;max-width:300px;padding:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;font-size:.8rem;box-shadow:0 4px 18px #0003;pointer-events:none}

/* Keyboard and touch targets share the existing BestSwell theme. */
.swell-toolbar button,
.segmented button,
.swell-map-search-results button,
.swell-hourly button,
#model-variable,
.swell-toolbar select,
.swell-toolbar input[type="search"] {
  min-height: 44px;
}
/* Native SVG focus outlines also appear after pointer interaction.
   Keep the themed ring for keyboard focus only. */
#day-chart:focus:not(:focus-visible),
#model-chart:focus:not(:focus-visible) {outline:none}
#day-chart:focus-visible,
#model-chart:focus-visible,
.hourly-table-wrap:focus-visible {
  outline: 2px solid var(--sea);
  outline-offset: 4px;
}
.component-grid article { border-top: 3px solid var(--model-0); }
.component-grid article:nth-child(2) { border-top-color: var(--model-1); }
.component-grid article:nth-child(3) { border-top-color: var(--model-2); }
.component-grid article:nth-child(4) { border-top-color: var(--model-3); }
.component-grid article:nth-child(5) { border-top-color: var(--model-4); }
#swell-components .fine-print,
#advanced-table .fine-print,
#advanced-geography .fine-print,
#swell-maps-view .fine-print,
#horizon-range { font-size: 12px; }
.swell-hourly tbody tr.selected th { box-shadow: inset 3px 0 var(--sea); }
.swell-hourly tbody tr.selected td { background: var(--foam); }
#swell-map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.grid-legend-entry { white-space: nowrap; }
#ocean-point { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 12px; }

/* The default dark palette needs full-contrast copy on highlighted panels. */
:root[data-mode="dark"] .best-window :is(h2, p, .eyebrow),
:root[data-mode="dark"] .hour-direction .direction-label { color: var(--ink); opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .swell-toolbar button, .segmented button { transition: none; }
}

.swell-source-details { margin-top: 14px; }
.swell-source-details summary { font-size: 12px; min-height: 32px; display: flex; align-items: center; }
.advanced-forecast .primary-column > .verdict { order: -3; }
.advanced-forecast .primary-column > .chart-panel { order: -2; }
.advanced-forecast .primary-column > .best-window { order: -1; }

.swell-toolbar input[type="number"] { min-height:44px; max-width:100%; font:inherit; font-size:12px; background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:9px 10px; }
#ocean-point-fields { border:0; padding:0; margin:14px 0 0; }
#ocean-point-fields legend { font-size:12px; margin-bottom:10px; }

.swell-toolbar input::placeholder {color:var(--muted);opacity:1}

/* Match the existing chart/form controls and avoid input zoom on phones. */
@media(max-width:760px) {
 .swell-toolbar select,.swell-toolbar input[type="search"],.swell-toolbar input[type="number"],#model-variable {font-size:16px}
}


/* Source: coast-atlas.css */
/* Selected Coast forecast layout. Theme preferences remain user controlled. */
body .shell {max-width:1300px;padding-inline:38px}
body .masthead {padding-block:20px}
body .notice {font-size:12px;line-height:1.55;margin-top:16px}
body .spot-heading {padding-block:18px 14px}
body .spot-heading h1 {font-size:48px}
body .forecast-guide {margin-block:0 10px}
body .day-row {margin-bottom:14px}
body .overview-day.day-button {min-width:116px;flex-basis:116px;padding:12px;gap:7px}
body .panel {border-radius:20px;padding:20px;box-shadow:0 8px 28px #153f4905}
body .chart-panel .forecast-horizon {margin:16px 0 14px;padding:16px 0 0;border-top:1px solid var(--line)}
body .forecast-horizon .fine-print {margin-block:6px 0}
body #forecast-horizon {margin-block:10px 2px}
body #swell-components {margin-bottom:16px}
body .component-grid {grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
body .component-grid article {border:0;border-left:3px solid var(--sea);border-radius:10px;padding:12px;background:var(--paper)}
body .component-grid article:nth-child(2) {border-left-color:var(--model-1)}
body .component-grid article:nth-child(3) {border-left-color:var(--model-2)}
body .component-grid article:nth-child(4) {border-left-color:var(--model-3)}
body .component-grid article:nth-child(5) {border-left-color:var(--model-4)}
body .component-grid h3 {margin-bottom:9px;font-size:12px}
body .component-grid p {margin-bottom:0;font-size:11px}
body .swell-source-details {margin-top:8px}
body #swell-components > .fine-print {margin-block:10px 0;font-size:11px}
/* One selected hour, with a compact planner and its own rating card. */
body .coast-row {display:grid;grid-template-columns:minmax(0,1fr) 325px;grid-template-areas:"main rating" "main sidebar";grid-template-rows:auto 1fr;gap:20px;align-items:start;margin-bottom:20px}
body .session-primary {grid-area:main;min-width:0;display:flex;flex-direction:column;gap:20px}
body .coast-row > .session-verdict {grid-area:rating}
body .session-primary > :is(.panel,.coast-atlas) {margin-block:0}
body .session-sidebar {grid-area:sidebar}
body .session-planner {min-width:0;margin-bottom:0}
body .session-sidebar {min-width:0;display:flex;flex-direction:column;gap:20px}
body .session-sidebar > .report-panel {margin:0}
body .session-planner h3 {font-size:15px;letter-spacing:-.2px;margin:0}
body .session-planner .section-heading {margin-bottom:12px;gap:12px}
body .session-heading .segmented button {min-height:44px}
body .session-window {border-radius:12px;padding:10px 12px;gap:10px}
body .session-window h2 {display:inline-block;font-size:18px;margin:0}
body .session-window .eyebrow {display:inline;margin-inline-end:10px;font-size:9px;letter-spacing:1px}
body .session-window .sun-mark {font-size:24px}
body .session-hours {margin-top:14px;min-width:0}
body .session-hours #weather-day-note {margin:0 0 8px}
body .session-hours #slider-time {font-size:12px;white-space:nowrap}
body .session-hours .hour-cards {margin:0;padding-right:0;max-width:100%}
body .session-hours .condition-hour.hour-card {gap:4px;padding:10px}
body .session-hours .condition-hour.hour-card > .hour-quality {font-size:27px}
body .session-planner .hour-direction .direction-label {opacity:1}
body .session-planner .forecast-horizon {border-top:0;padding-top:0;margin:12px 0 0}
body .session-planner #horizon-first-time {white-space:normal;text-align:start;overflow-wrap:anywhere}
body #forecast-horizon {--horizon-thumb-size:18px;--horizon-progress:0%;appearance:none;-webkit-appearance:none;height:32px;padding:0;border:0;background:transparent;margin:6px 0 0}
body #forecast-horizon::-webkit-slider-runnable-track {height:4px;border-radius:3px;background:linear-gradient(to right,var(--sea) var(--horizon-progress),var(--line) var(--horizon-progress))}
body #forecast-horizon::-webkit-slider-thumb {-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;background:var(--sea);border:0;border-radius:50%}
body #forecast-horizon::-moz-range-track {height:4px;border-radius:3px;background:var(--line)}
body #forecast-horizon::-moz-range-progress {height:4px;border-radius:3px;background:var(--sea)}
body #forecast-horizon::-moz-range-thumb {width:18px;height:18px;background:var(--sea);border:0;border-radius:50%}
body .horizon-days {min-width:0}
body .horizon-day-ticks {position:relative;height:6px}
body .horizon-day-tick {position:absolute;top:0;width:1px;height:4px;background:var(--muted);opacity:.65}
body .horizon-day-tick.selected {height:6px;background:var(--sea);opacity:1}
body .horizon-day-labels {display:grid;grid-template-columns:repeat(var(--horizon-day-count),minmax(44px,1fr));gap:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
body .horizon-day {min-width:0;min-height:44px;display:grid;place-content:center;gap:1px;padding:3px 1px;border:1px solid transparent;border-radius:7px;font-family:ui-monospace,monospace;font-size:10px;line-height:1.4;color:var(--muted)}
body .horizon-day span {white-space:nowrap}
body .horizon-day[aria-pressed=true] {color:var(--sea);border-color:var(--line);background:var(--paper)}
body .horizon-day:hover {background:var(--foam)}
body #horizon-range {margin-top:6px;font-size:10px;line-height:1.5}
body .session-graph {padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
body .session-graph #day-chart,body #forecast-details #model-chart {height:180px;width:100%;display:block}
body .session-graph .chart-choice {max-width:220px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}
body .session-graph .chart-labels {margin-top:5px;font-size:10px}
body .session-graph .chart-reading {margin-block:10px 0}
body .session-graph #chart-note {margin-top:6px;font-size:10px;line-height:1.5}
body .session-verdict {padding:20px 20px 0;min-width:0;overflow:visible}
body .session-verdict .verdict-top {display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px}
body .session-verdict .verdict-time {display:flex;align-items:center;gap:6px;min-width:0}
body .session-verdict #selected-time {white-space:nowrap;font-size:9px;letter-spacing:.8px}
body .session-verdict .verdict-daylight {flex:none;display:flex;color:var(--muted)}
body .session-verdict .verdict-daylight svg {width:16px;height:16px}
body .session-verdict .trust-tag {flex:none}
body .session-verdict .verdict-main {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding-block:18px 12px;gap:12px}
body .session-verdict .verdict-label {min-width:0}
body .session-verdict .rating-help {margin-top:8px}
body .session-verdict .rating-help svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
body .session-verdict .quality {font-size:30px;max-width:180px}
body .session-verdict .score strong {font-size:64px;letter-spacing:-3px}
body .session-verdict .surf-headline {gap:12px;padding-block:14px}
body .session-verdict .surf-headline > strong {font-size:27px}
body .forecast-details {margin-bottom:20px;min-width:0}
body .forecast-details > .section-heading {margin-bottom:18px}
body .session-confidence {min-width:0;max-width:620px}
body .session-confidence h2 {font-size:18px;margin-top:5px}
body .session-confidence .confidence-number {margin:12px 0}
body .session-confidence .confidence-number strong {font-size:44px}
body .session-confidence #confidence-copy {font-size:12px;margin-block:12px;line-height:1.6}
body .session-conditions {padding:0;margin-bottom:20px}
body .session-conditions > div {padding:16px 18px}
body .session-section {min-width:0;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
body .forecast-details #swell-components,body .forecast-details #advanced-table,body .forecast-details #advanced-geography {margin-bottom:0}
body .session-disclosure {border-top:1px solid var(--line);margin-top:12px;min-width:0}
body .session-disclosure > summary {display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-size:13px;font-weight:600;cursor:pointer;list-style:none}
body .session-disclosure > summary::-webkit-details-marker {display:none}
body .session-disclosure > summary > span {font-size:20px;font-weight:400;transition:transform .15s}
body .session-disclosure[open] > summary > span {transform:rotate(45deg)}
body .session-disclosure > p {font-size:12px;line-height:1.6}
body #advanced-table > .session-disclosure {margin-top:0;border:0}
body .session-extras .conditions {border-radius:0;margin-bottom:8px}
body .forecast-details .model-comparison summary {min-height:48px;cursor:pointer}
body .forecast-details .model-comparison summary h2 {font-size:15px}
body .forecast-details .swell-source-details summary {min-height:44px;display:flex;align-items:center;font-size:12px;cursor:pointer}
@media(max-width:650px) {
 body .shell {padding-inline:16px}
 body .masthead {padding-block:14px}
 body .brand small {display:none}
 body .top-actions {gap:8px}
 body .main-nav {gap:22px;padding-bottom:12px}
 body .notice {font-size:11px;padding:10px 12px}
 body .spot-heading {padding-block:18px 12px}
 body .spot-heading {position:relative;align-items:flex-start}
 body .spot-meta {font-size:10px}
 body .spot-heading h1 {font-size:42px}
 body .panel {padding:14px;border-radius:16px}
 body .swell-toolbar {gap:7px}
 body .forecast-horizon .swell-toolbar strong {font-size:12px;order:3}
 body #horizon-range {font-size:10px;line-height:1.5}
 body .component-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 body .component-grid article {padding:9px;border-left-width:2px}
 body .component-grid h3 {font-size:10px;line-height:1.3;margin-bottom:7px}
 body .component-grid strong {font-size:18px}
 body .component-grid p {font-size:10px;line-height:1.4}
 body #swell-components > .fine-print {font-size:10px;line-height:1.4}
 body .session-graph #day-chart,body #forecast-details #model-chart {height:150px}
 body .chart-panel .section-heading {flex-wrap:wrap;gap:14px}
 body .chart-choice {width:100%;min-width:0;max-width:none;grid-template-columns:1fr;gap:6px}
 body .chart-choice select {width:100%;min-width:0;min-height:48px;font-size:16px;padding:12px 38px 12px 12px}
 body .swell-series-legend {font-size:10px;gap:7px}
 body #chart-note {font-size:10px}
}

/* Keep the save control clear of the beach title on mobile. */
@media(max-width:650px) {
 body .spot-actions {left:auto;right:0;width:auto;display:flex}
}

@media(max-width:650px) {body .hour-cards {margin-right:0}}
.coast-atlas {margin:0 0 22px;border:1px solid var(--line);border-radius:20px;background:var(--card);overflow:hidden}
.coast-atlas > summary {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;min-height:72px;cursor:pointer;list-style:none}
.coast-atlas > summary::-webkit-details-marker {display:none}
.coast-atlas > summary > span:first-child {display:grid;gap:7px}
.coast-atlas > summary strong {font-size:20px;font-weight:650;line-height:1.3;letter-spacing:-.6px;color:var(--heading)}
.coast-atlas > summary small {color:var(--muted);font-size:12px;line-height:1.5}
.atlas-expand {font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;color:var(--sea)}
.coast-atlas[open] > summary {border-bottom:1px solid var(--line)}
.coast-atlas > summary:focus-visible {outline:3px solid var(--sea);outline-offset:-4px}
#swell-maps-view {color:var(--ink);color-scheme:inherit}
#swell-map {background:var(--foam);color:var(--ink);font-family:inherit}
#swell-map .leaflet-popup-content-wrapper,#swell-map .leaflet-popup-tip,
#swell-map .leaflet-control-zoom a,#swell-map .leaflet-control-attribution {background:var(--card);color:var(--ink)}
#swell-map .leaflet-popup-content a,#swell-map .leaflet-control-attribution a {color:var(--sea)}
#swell-map .leaflet-control-zoom a:hover {background:var(--foam)}
#swell-map .leaflet-bar,#swell-map .leaflet-control-zoom a {border-color:var(--line)}
#swell-map a.leaflet-popup-close-button {color:var(--muted)}
#swell-maps-view > .panel {background:var(--card);border-radius:20px}
#swell-maps-view #atlas-title {color:var(--heading);font-size:38px;letter-spacing:-1px;margin:8px 0 14px}
#swell-maps-view .swell-toolbar {display:grid;grid-template-columns:1.2fr .8fr 1.1fr auto;gap:14px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
#swell-maps-view .swell-toolbar label {min-width:0;color:var(--muted)}
#swell-maps-view .swell-toolbar select,#swell-maps-view .swell-toolbar input {width:100%;min-width:0}
#swell-maps-view > .panel > p:not(.eyebrow):not(.fine-print) {font-size:12px;line-height:1.6;color:var(--muted)}
#swell-map-play {align-self:end}
#coast-atlas-host #swell-maps-view > .panel {border:0;border-radius:0;margin:0}
#coast-atlas-host #atlas-title,#coast-atlas-host .eyebrow {display:none}
#swell-map-status,#swell-map-legend {line-height:1.7}
#swell-map-time-reading {font-size:12px;font-weight:600;line-height:1.5;margin-top:16px}
/* Move the top gutter into the header so scrolled content cannot peek above it.
   Existing body scroll regions, form nodes and dialog focus behavior stay intact. */
dialog[id] {--dialog-side-pad:26px;--dialog-top-pad:26px;scroll-padding-top:calc(var(--dialog-top-pad) + 72px)}
dialog[id][open] {padding-top:0!important}
dialog[id]::before {display:none!important}
dialog[id] > .dialog-header {position:sticky!important;top:0!important;z-index:5;flex:0 0 auto;margin-inline:calc(-1 * var(--dialog-side-pad))!important;padding:var(--dialog-top-pad) var(--dialog-side-pad) 12px;background:inherit!important}
dialog[id] > .dialog-header > :first-child {min-width:0}
dialog[id] > .dialog-header h2 {overflow-wrap:anywhere}
#account-dialog {--dialog-side-pad:28px;--dialog-top-pad:28px}
@media(max-width:760px) {
 dialog[id] {--dialog-side-pad:20px;--dialog-top-pad:25px}
 #account-dialog {--dialog-side-pad:20px;--dialog-top-pad:25px}
 dialog[id] > .dialog-header::before {content:""!important;position:absolute;z-index:0;top:10px;bottom:auto;right:auto;left:50%;transform:translateX(-50%);width:42px;height:4px;border-radius:9px;background:var(--line)}
}
@media(max-width:600px) {
 dialog.feature-dialog,#experience-dialog {--dialog-side-pad:18px;--dialog-top-pad:22px}
}
@media(max-width:980px) {
 body .coast-row {grid-template-columns:minmax(0,1fr);grid-template-areas:"rating" "main" "sidebar";grid-template-rows:auto;gap:16px}
 body .session-primary {gap:16px}
 body .session-sidebar {gap:16px}
}
@media(max-width:650px) {
 body .session-window {padding:10px;gap:10px}
 body .session-window h2 {font-size:18px}
 body .session-graph .chart-choice {max-width:none;grid-template-columns:1fr;gap:6px}
 body .session-verdict .quality {font-size:26px}
 body .session-verdict .score strong {font-size:56px}
 body .session-verdict .verdict-main {gap:12px}
 body .session-verdict .score .score-scale {font-size:16px}
 body .session-verdict .score .score-explainer {font-size:11px;gap:5px}
 body .session-heading {flex-wrap:wrap}
 body .session-conditions {grid-template-columns:repeat(2,minmax(0,1fr))}
 body .session-conditions > div {padding:14px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
 body .session-conditions > div:nth-child(3n+1) {padding-left:10px}
 body .session-conditions > div:nth-child(2n+1) {padding-left:10px}
 body .session-conditions > div:nth-child(2n) {border-right:0}
 body .session-conditions > div:nth-last-child(-n+2) {border-bottom:0}
 body .session-conditions .eyebrow {font-size:8px;letter-spacing:.6px}
 body .session-conditions strong {font-size:23px}
 body .session-conditions .small-value {font-size:15px}
 body .session-extras .conditions {grid-template-columns:minmax(0,1fr)}
 body .session-extras .conditions > div {border-right:0;border-bottom:1px solid var(--line);padding:14px 0}
 body .session-extras .conditions > div:last-child {border-bottom:0}
}
@media(max-width:650px) {
 body .spot-heading {gap:12px} body .spot-actions {position:static;flex-wrap:wrap;justify-content:flex-end}
 body .spot-heading h1 {font-size:36px} body .spot-title {min-width:0}
 .coast-atlas > summary {padding:16px;align-items:flex-start}.coast-atlas > summary strong {font-size:20px}.atlas-expand {font-size:11px}
 #swell-maps-view .swell-toolbar {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px}
 #swell-map {height:365px}
 #swell-maps-view #atlas-title {font-size:30px}
}

/* Readable forecast: real HTML, native disclosure and the site's own tokens. */
.ssr-forecast {min-width:0}
.ssr-forecast h2 {margin-top:8px}
.ssr-current {display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:24px;padding:20px;margin:20px 0;background:var(--foam);border:1px solid var(--line);border-radius:16px}
.ssr-score {font-size:44px;font-weight:650;line-height:1.15;margin:14px 0;color:var(--sea)}
.ssr-score small {display:block;font-size:12px;font-weight:400;margin-top:6px;color:var(--muted)}
.ssr-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:12px 0}
.ssr-metrics>div {min-width:0;padding:12px;border-bottom:1px solid var(--line)}
.ssr-metrics dt {font-size:12px;color:var(--muted);line-height:1.5}
.ssr-metrics dd {font-size:16px;margin:5px 0 0;overflow-wrap:anywhere}
.ssr-notice {border-left:3px solid var(--sea);background:var(--sand);padding:12px 16px;border-radius:4px}
.ssr-days {display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.ssr-days a {padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--foam);text-decoration:none;font-size:13px}
.server-content .ssr-day {border-top:1px solid var(--line);margin:12px 0;padding-top:8px;scroll-margin-top:24px}
.ssr-day>summary {display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;list-style:none}
.ssr-day>summary::after {content:'+';font-size:20px}
.ssr-day[open]>summary::after {content:'−'}
.ssr-day>summary small {font-size:12px;font-weight:400;color:var(--muted);margin-left:auto}
.ssr-day h3 {font-size:16px;margin:22px 0 8px}
.server-content .ssr-hour {border:1px solid var(--line);border-radius:12px;background:var(--card);padding:10px 14px;margin:8px 0}
.ssr-hour>summary {font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.ssr-hour-status {display:block;font-size:11px;color:var(--muted);margin-left:16px}
.ssr-hour h4 {margin:18px 12px 6px;font-size:14px;color:var(--heading)}
.ssr-forecast .forecast-table-wrap {max-width:100%;overscroll-behavior-x:contain}
.ssr-forecast .forecast-table-wrap:focus-visible {outline:2px solid var(--sea);outline-offset:2px}
.ssr-forecast .forecast-table th {position:static}
.ssr-forecast .forecast-table td {vertical-align:top}
:root:not([data-mode]) .top-actions,:root:not([data-mode]) .main-nav button,:root:not([data-mode]) .spot-actions,:root:not([data-mode]) .spot-meta #freshness,:root:not([data-mode]) #days,:root:not([data-mode]) .forecast-guide,:root:not([data-mode]) #spot-subtitle,:root:not([data-mode]) .spot-title>span,:root:not([data-mode]) #home-community button {display:none!important}
:root:not([data-mode]) .spot-title {pointer-events:none;cursor:default}
:root:not([data-mode]) .main-nav a {margin-left:0}
@media(max-width:760px) {
 .ssr-current {grid-template-columns:1fr;gap:8px;padding:16px}
 .ssr-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
 .ssr-current .ssr-metrics {margin:0}
 .ssr-days a {padding:10px 12px}
 .ssr-day>summary {font-size:14px}
 .server-content .ssr-hour {padding:8px 10px}
}
:root:not([data-mode])[data-palette="hunt-24"] {color-scheme:dark;--paper:#0b1117;--card:#1b2125;--ink:#d4d9de;--muted:#87919c;--heading:#88929a;--sea:#839581;--foam:#0d161d;--sand:#23282c;--line:#121e28;--slogan:#859199;--button-bg:#839581;--button-ink:#081018;--accent-secondary:#839581;--promo-bg:#1b2125;--promo-ink:#d4d9de;--promo-muted:#87919c}

.ssr-score-unavailable {font-size:20px;overflow-wrap:anywhere}
:root:not([data-mode]) .footer-links button {display:none!important}
/* Neutral rating-guide row uses the same readable surface in every palette. */
#rating-dialog .rating-bands>[data-rating-band="flat"] {background:var(--foam);color:var(--ink)}

/* The same forecast columns continue through conditions and both maps. */
body .session-sidebar .session-confidence {max-width:none}
body .session-sidebar h2 {font-size:18px;margin-top:6px}
body .session-sidebar .fine-print {line-height:1.6}
body .session-sidebar .model-list {gap:6px;margin-block:14px}
body .session-sidebar .model-chip {max-width:100%;white-space:normal;overflow-wrap:anywhere}
body .sidebar-nearby nav {display:grid;gap:0;margin-block:10px}
body .sidebar-nearby a {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding-block:10px;border-bottom:1px solid var(--line);text-decoration:none;font-size:13px}
body .sidebar-nearby a span {min-width:0;overflow-wrap:anywhere}
body .sidebar-nearby a small {white-space:nowrap;color:var(--muted);font-size:11px}
body .sidebar-nearby a:hover span {text-decoration:underline;text-underline-offset:4px}
body .sidebar-facts {margin:14px 0 0}
body .sidebar-facts div {display:flex;justify-content:space-between;gap:14px;padding-block:10px;border-bottom:1px solid var(--line);font-size:13px}
body .sidebar-facts dt {color:var(--muted)}
body .sidebar-facts dd {margin:0;text-align:end;overflow-wrap:anywhere;min-width:0}
body .sidebar-buoy .observation-values strong {font-size:26px}
body .sidebar-buoy .observation-source,body .sidebar-buoy .obs-status {font-size:12px}
body .session-primary .component-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px) {body .session-primary .component-grid {grid-template-columns:repeat(2,minmax(0,1fr))}}
/* A real 404 with the same site surfaces, typography and native navigation. */
body .missing-shell {padding-bottom:28px}
.missing-shell .brand {text-decoration:none}
body .missing-page {padding:clamp(24px,5vw,64px);margin-block:22px;text-align:center}
.missing-code {margin:12px 0 0;font-size:clamp(76px,12vw,132px);font-weight:650;line-height:1;color:var(--sea);letter-spacing:-5px}
.missing-page h1 {font-size:clamp(30px,5vw,52px);letter-spacing:-1.5px;max-width:760px;margin:20px auto 12px}
.missing-copy {max-width:530px;margin:0 auto 22px;color:var(--muted);font-size:15px}
.missing-actions {display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-bottom:32px}
.missing-actions a,.missing-shell .masthead>a:last-child {display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
.missing-picks {border-top:1px solid var(--line);padding-top:24px}
.missing-picks h2 {font-size:17px}
.missing-picks nav,.missing-directory nav {display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.missing-picks a,.missing-directory nav a {display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;background:var(--foam);border:1px solid var(--line);border-radius:12px;text-decoration:none;font-size:13px}
.missing-picks a:hover,.missing-directory nav a:hover {text-decoration:underline;text-underline-offset:4px}
.missing-directory h2 {font-size:18px;margin-bottom:16px}
.missing-directory nav {justify-content:start}
@media(max-width:650px){.missing-shell .masthead {padding-bottom:16px;flex-wrap:wrap;gap:12px}.missing-shell .masthead>a:last-child {font-size:12px}.missing-actions a {width:100%}.missing-copy {font-size:14px}}

/* Mobile beach controls: status with refresh, then one aligned action row. */
@media(max-width:760px) {
 #forecast-view > .spot-heading {flex-direction:column;align-items:stretch;gap:10px}
 #forecast-view > .spot-heading > div:first-child {width:100%}
 #forecast-view .spot-meta {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px}
 #forecast-view .spot-meta > .subtitle {grid-column:1/-1}
 #forecast-view .spot-meta #freshness {min-width:0;white-space:normal}
 #forecast-view .spot-meta .forecast-refresh {max-width:48vw;white-space:normal}
 #forecast-view #homepage-choice {margin:8px 0 0}
 #forecast-view .spot-actions {display:grid;grid-template-columns:minmax(0,1fr) repeat(3,44px);align-items:center;gap:8px;width:100%;max-width:none}
 #forecast-view .spot-actions #add-compare {order:0;width:100%;min-width:0;margin:0;white-space:normal;min-height:44px}
 #forecast-view .spot-actions .icon-button,#forecast-view .spot-actions .save-button {width:44px;height:44px}
 #forecast-view .coastal-map-heading {flex-wrap:wrap}
 #forecast-view .coastal-map-heading > div {margin-left:auto}
}
@media(max-width:360px) {body .session-conditions strong {font-size:20px}}

/* Confidence starts open; the native summary also works without JavaScript. */
.confidence-summary {cursor:pointer;list-style:none;min-height:44px}
.confidence-summary::-webkit-details-marker {display:none}
.confidence-summary h2 {margin:0;font-size:18px}
.confidence-summary .eyebrow {display:block;margin-bottom:6px}
.confidence-summary-row {display:flex;align-items:center;justify-content:space-between;gap:12px}
.context-action {color:var(--muted);white-space:nowrap;font-weight:550}
.confidence-summary:focus-visible {outline:2px solid var(--muted);outline-offset:4px;border-radius:4px}
#forecast-context[open] .context-expand,#forecast-context:not([open]) .context-minimise {display:none}
.context-evidence h3 {font-size:12px;margin:20px 0 8px;font-weight:600;color:var(--heading)}
/* Locality copy and planning tips, with native parking disclosures. */
#beach-guide {margin-top:20px}
body .session-primary>#beach-guide {margin-top:0}
.beach-guide h2 {margin:10px 0 16px;font-size:22px;line-height:1.3}
.beach-guide-description {font-size:15px;line-height:1.8;max-width:75ch;color:var(--ink)}
.beach-guide details {border:0;margin:4px 0;padding:0}
.beach-guide summary {cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;color:var(--muted)}
.beach-guide .visit-disclosure>summary {padding-block:8px}
.beach-guide .visit-details>.fine-print {margin:8px 0 0}
.beach-guide ul {padding-left:20px;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.beach-guide li {margin-bottom:12px}
.beach-guide li small {display:block;color:var(--muted)}
.beach-guide .beach-guide-tips-heading {font-size:16px;line-height:1.5;margin:20px 0 10px}
.beach-guide .beach-guide-tips {font-size:15px;line-height:1.8;max-width:75ch;margin:0 0 16px;padding-left:22px}
.beach-guide .beach-guide-tips li:last-child {margin-bottom:0}
.beach-guide .beach-guide-reviewed {margin:16px 0 0}
.beach-guide-links {display:flex;flex-wrap:wrap;column-gap:24px;row-gap:0}
.beach-guide .text-button {display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;font-size:13px}
.server-content>.beach-guide {margin-top:24px}


/* Source: navigation.css */
/* Shared navigation: plain More text/chevron appears only when links overflow. */
:root[data-mode] .main-nav:not(.nav-enhanced){display:flex;align-items:center;flex-wrap:nowrap;gap:22px;min-height:56px;padding:0;overflow:hidden}
:root[data-mode] .main-nav:not(.nav-enhanced)>:is(a,button){display:inline-flex;align-items:center;flex:0 0 auto;min-height:56px;margin:0;padding:14px 0;font-size:13px;line-height:1.4;font-weight:600;white-space:nowrap}
.main-nav.nav-enhanced {--nav-gap:22px;position:relative;display:flex;align-items:center;gap:var(--nav-gap);padding:0;min-height:56px;overflow:visible;z-index:30}
.main-nav.nav-enhanced .nav-visible {display:flex;align-items:center;gap:var(--nav-gap);flex:1;min-width:0}
.main-nav.nav-enhanced .nav-visible>:is(a,button) {display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;position:relative;margin:0;padding:14px 0;min-height:56px;font-size:13px;line-height:1.4;font-weight:600;white-space:nowrap;text-decoration:none}
.main-nav.nav-enhanced .nav-visible>.active::after {bottom:0;left:0;right:0}
.main-nav.nav-enhanced .nav-overflow {flex:0 0 auto;position:relative;margin:0;padding:0;border:0;background:none}
.main-nav.nav-enhanced .nav-more-toggle {display:flex;align-items:center;justify-content:center;gap:7px;min-height:56px;margin:0;padding:14px 0;border:0;border-radius:0;background:none;box-shadow:none;font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;list-style:none;color:var(--muted);white-space:nowrap;cursor:pointer}
.main-nav.nav-enhanced .nav-more-toggle::-webkit-details-marker {display:none}
.main-nav.nav-enhanced .nav-more-toggle span {margin:0}
.main-nav.nav-enhanced .nav-more-toggle svg {flex:none;transition:transform .15s}
.main-nav.nav-enhanced .nav-overflow[open]>.nav-more-toggle svg {transform:rotate(180deg)}
.main-nav.nav-enhanced .nav-overflow:is([open],.has-current)>.nav-more-toggle {color:var(--ink)}
.main-nav.nav-enhanced .nav-more-toggle:focus-visible {outline:none}
.main-nav.nav-enhanced .nav-more-toggle:focus-visible span {text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.main-nav.nav-enhanced .nav-overflow-panel {position:absolute;inset-inline-end:0;top:calc(100% + 7px);width:min(260px,calc(100vw - 32px));max-height:min(430px,var(--nav-panel-room,60dvh));overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 12px 35px #0003}
.main-nav.nav-enhanced .nav-overflow-panel>:is(a,button) {display:flex;align-items:center;min-height:46px;width:100%;margin:0;padding:11px 12px;border:0;border-radius:8px;background:none;text-align:start;font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;white-space:normal;text-decoration:none;color:var(--ink)}
.main-nav.nav-enhanced .nav-overflow-panel>:is(a,button):is(:hover,:focus-visible) {background:var(--foam);color:var(--ink)}
.main-nav.nav-enhanced .nav-overflow-panel>.active {color:var(--sea);font-weight:650}
.main-nav.nav-enhanced .nav-overflow-panel>.active::after {display:none}
/* Native links remain discoverable and wrap when scripting/appearance is absent. */
:root:not([data-mode]) .main-nav {display:flex;flex-wrap:wrap;overflow:visible;gap:8px 22px;padding-bottom:0}
:root:not([data-mode]) .main-nav a {display:inline-flex;align-items:center;min-height:44px;margin:0}
@media(prefers-reduced-motion:reduce){.main-nav.nav-enhanced .nav-more-toggle svg{transition:none}}

