:root{color-scheme:light;--color-ink:#121111;--color-ink-soft:#363232;--color-ink-light:#151819;--color-bg:#f8f2e7;--color-panel:#ffffff;--color-accent:#e07a4b;--color-accent-dark:#0f2d33;--color-accent-soft:#d1e0f8;--color-line:#e3ded6;--shadow-soft:0 18px 40px rgba(15,45,51,0.12);--radius-lg:28px;--radius-md:18px;--radius-sm:12px}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden}body{color:var(--color-ink);background:radial-gradient(circle at 10% 10%,#ffffff 0,#f8f4ee 40%,#efe8dd 100%);font-family:var(--font-body),"Manrope","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{color:#000000}body.landing-mode{background-image:linear-gradient(rgba(247,244,238,.1),rgba(247,244,238,.1)),url(/backgrounds/KawauBay.jpg);--landing-glass-bg:rgba(9,15,24,0.34);--landing-glass-border:rgba(255,255,255,0.22);--landing-glass-shadow:0 18px 36px rgba(6,12,22,0.28);--landing-glass-blur:10px}body.landing-mode,body.signup-mode{background-size:cover;background-repeat:no-repeat;background-position:top;background-attachment:fixed}body.signup-mode{background-image:linear-gradient(rgba(15,23,42,.32),rgba(15,23,42,.32)),url(/backgrounds/valleymist.jpg)}body.signup-mode .auth-card{background:rgba(15,23,42,.22);border-color:rgba(255,255,255,.22);color:#ffffff;box-shadow:0 18px 36px rgba(15,23,42,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body.signup-mode .auth-card h2{color:#ffffff;text-shadow:0 10px 26px rgba(15,23,42,.4)}body.signup-mode .auth-card p,body.signup-mode .form-grid label,body.signup-mode .form-helper{color:rgba(255,255,255,.82)}body.signup-mode .form-success{color:#ffffff}body.signup-mode .form-grid input,body.signup-mode .form-grid select,body.signup-mode .form-grid textarea{background:rgba(255,255,255,.92);color:#0f172a;border-color:rgba(255,255,255,.32)}body.signup-mode .auth-card .feature-card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);box-shadow:none}@media (max-width:900px){.fts-page{background-attachment:scroll!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;isolation:isolate}.fts-page .chip,.fts-page .forecast-tile,.fts-page .frosted-card,.fts-page .fts-forecast-inner,.fts-page .modal-card,.fts-page .module-lock-container,.fts-page .theme-card,.fts-page .theme-title-bar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;background-image:none!important}.fts-page .address-modal{z-index:2400!important}}@media (max-width:768px){.fts-page .address-modal{align-items:flex-start!important;padding:82px 12px 12px!important;overflow-y:auto;-webkit-overflow-scrolling:touch}.fts-page .modal-card.address-modal-card{width:min(560px,94vw)!important;max-height:calc(100dvh - 104px)!important;margin:0 auto}}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.page-shell{min-height:100vh;display:flex;flex-direction:column}.page-main{flex:1 1}.site-header{justify-content:space-between;gap:24px;padding:24px 6vw 16px;position:sticky;top:0;background:rgba(245,241,234,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-line);z-index:20}.brand,.site-header{display:flex;align-items:center}.brand{gap:14px;text-decoration:none}.brand-mark{width:65px;height:65px;border-radius:12px;background:#ffffff;border:1px solid var(--color-line);display:grid;place-items:center;padding:0;overflow:hidden;box-sizing:border-box}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-name{font-family:var(--font-display),"Outfit",serif;font-size:20px;letter-spacing:.3px}.brand-tag{font-size:12px;color:var(--color-ink-light);text-transform:uppercase;letter-spacing:1.6px}.nav-panel{display:flex;align-items:center;gap:16px}.site-nav{display:flex;gap:18px;font-size:14px;color:var(--color-ink-soft)}.site-nav a{padding:6px 10px;border-radius:999px;border:1px solid transparent}.site-nav a:hover{border-color:var(--color-line);background:#ffffff}.header-actions{display:flex;gap:10px}.header-toolbar{display:flex;align-items:center;gap:14px}.page-title{font-family:var(--font-display),"Outfit",serif;font-weight:700;font-size:20px;letter-spacing:.2px;color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.page-title-stack{display:grid;gap:2px;min-width:0;flex:1 1}.page-subtitle{font-size:12px;color:var(--color-ink-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-button{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--color-line);background:#ffffff;align-items:center;justify-content:center;gap:4px;flex-direction:column}.menu-button span{display:block;width:20px;height:2px;background:var(--color-ink);border-radius:999px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 20px;font-weight:600;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.button.square{border-radius:14px}.button.theme{background:rgba(15,23,42,.22);border-color:rgba(255,255,255,.22);color:#ffffff;box-shadow:0 18px 36px rgba(15,23,42,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.button.theme:hover{background:rgba(15,23,42,.28)}.theme-pill{background:rgba(15,23,42,.22);border:1px solid rgba(255,255,255,.22);color:#ffffff;border-radius:999px;padding:12px 16px;font-weight:600;box-shadow:0 18px 36px rgba(15,23,42,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-auth-bar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;flex-wrap:nowrap;-webkit-backdrop-filter:none;backdrop-filter:none}.dashboard-auth-bar,.dashboard-auth-bar .theme-pill{white-space:nowrap;padding:0;border:none;background:transparent;box-shadow:none}.dashboard-auth-bar .theme-pill{font-size:10px;flex:0 1 auto}.dashboard-auth-bar .button{font-size:12px;flex:0 0 auto;box-shadow:none}.dashboard-auth-bar .button,.text-link{padding:0;background:transparent;border:none;color:rgba(255,255,255,.9)}.text-link{cursor:pointer;font:inherit;font-weight:600;justify-self:end;align-self:center}.text-link:hover{text-decoration:underline}.theme-title-bar{margin-top:18px;margin-bottom:10px;background:rgba(15,23,42,.22);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-md);padding:16px 18px;color:#ffffff;box-shadow:0 18px 36px rgba(15,23,42,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.theme-title-bar h2{margin:0;color:#ffffff}.dashboard-section-actions,.theme-title-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dashboard-section-actions{position:relative;z-index:6}.info-button{position:relative;z-index:7;pointer-events:auto;touch-action:manipulation}.button.primary{background:var(--color-accent-dark);color:#ffffff;box-shadow:0 12px 24px rgba(15,45,51,.2)}.button.ghost{background:#ffffff;border-color:var(--color-line);color:var(--color-accent-dark)}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.6;cursor:not-allowed;transform:none}.landing{display:flex;flex-direction:column;gap:56px;padding-bottom:80px}body.landing-mode .site-header{display:none}body.landing-mode .page-main,body.landing-mode .site-footer,body.landing-mode .weather-alerts-container{margin-left:0}body.landing-mode .section-header{background:var(--landing-glass-bg);border:1px solid var(--landing-glass-border);border-radius:18px;padding:16px 18px;box-shadow:var(--landing-glass-shadow);-webkit-backdrop-filter:blur(var(--landing-glass-blur));backdrop-filter:blur(var(--landing-glass-blur))}body.landing-mode .section-header h2{color:#ffffff;text-shadow:0 10px 26px rgba(15,23,42,.4)}body.landing-mode .section-header p{color:rgba(255,255,255,.82)}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;padding:56px 6vw 10px;align-items:center}body.landing-mode .hero-copy{position:relative;padding:24px 22px;border-radius:22px;background:var(--landing-glass-bg);border:1px solid var(--landing-glass-border);box-shadow:var(--landing-glass-shadow);-webkit-backdrop-filter:blur(var(--landing-glass-blur));backdrop-filter:blur(var(--landing-glass-blur))}.hero-copy h1{font-family:var(--font-display),"Outfit",serif;font-size:clamp(36px,5vw,60px);line-height:1.03;margin-bottom:20px}body.landing-mode .hero-copy h1,body.landing-mode .hero-price,body.landing-mode .hero-summary{color:#ffffff;text-shadow:0 10px 26px rgba(15,23,42,.55)}body.landing-mode .chip{background:rgba(255,255,255,.18);color:#ffffff;border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:0 10px 26px rgba(15,23,42,.4)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--color-ink-light);margin-bottom:14px}.lead{font-size:18px;color:var(--color-ink-soft);max-width:520px;margin-bottom:24px}.hero-actions{gap:12px;margin-bottom:24px}.hero-actions,.hero-tags{display:flex;flex-wrap:wrap}.hero-tags{gap:10px;list-style:none;padding-left:0}.chip{padding:6px 14px;background:var(--color-accent-soft);color:var(--color-accent-dark);border-radius:999px;font-size:12px;font-weight:600}.status-card{background:var(--color-panel);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-soft);border:1px solid #f1ece3}body.landing-mode .status-card{background:var(--landing-glass-bg);border-color:var(--landing-glass-border);color:#ffffff;box-shadow:var(--landing-glass-shadow);-webkit-backdrop-filter:blur(var(--landing-glass-blur));backdrop-filter:blur(var(--landing-glass-blur));padding:18px}.status-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-ink-light);margin-bottom:18px}body.landing-mode .status-header{color:rgba(255,255,255,.75)}.status-location{font-weight:600;color:var(--color-ink)}.pill,body.landing-mode .status-location{color:#ffffff}.pill{padding:4px 10px;background:var(--color-accent-dark);border-radius:999px;font-size:11px;letter-spacing:1px;text-transform:uppercase}.status-temp{font-size:54px;font-family:var(--font-display),"Outfit",serif;margin-bottom:4px}body.landing-mode .status-temp{color:#ffffff;font-size:32px}body.landing-mode .status-card .status-note{margin-bottom:12px}body.landing-mode .status-card .status-grid{gap:10px}body.landing-mode .status-card .status-footer{padding-top:12px;margin-top:12px}body.landing-mode .hero-actions .button{font-size:17px;padding:14px 22px;border-radius:14px}.status-note{color:var(--color-ink-soft);margin-bottom:18px}body.landing-mode .status-note{color:rgba(255,255,255,.82)}.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:13px}.status-grid span{color:var(--color-ink-light);display:block;margin-bottom:4px}body.landing-mode .status-grid span{color:rgba(255,255,255,.7)}.status-footer{display:flex;justify-content:space-between;padding-top:18px;margin-top:18px;border-top:1px solid var(--color-line);font-size:13px}.status-footer span{color:var(--color-ink-light);display:block;margin-bottom:4px}body.landing-mode .status-footer span{color:rgba(255,255,255,.7)}.section{padding:0 6vw;display:flex;flex-direction:column;gap:24px}.section-header h2{font-family:var(--font-display),"Outfit",serif;font-size:clamp(28px,3.6vw,44px);margin-bottom:12px}.section-header p{color:var(--color-ink-soft);max-width:640px}.tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tile{background:var(--color-panel);border-radius:var(--radius-md);padding:22px;border:1px solid var(--color-line);position:relative;overflow:hidden;display:grid;gap:8px;box-shadow:0 12px 24px rgba(15,45,51,.06);min-height:150px}.tile:before{content:"";position:absolute;inset:0;background-image:var(--tile-bg,none);background-size:cover;background-position:50%;opacity:.35;filter:saturate(1.08) contrast(1.06);pointer-events:none}.tile>*{position:relative}.tile:hover{border-color:#d6c8bb}.tile-title{font-size:24px;font-weight:1000}.tile-meta{color:var(--color-ink-light);font-size:13px}.mission-board .board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.board-card{background:var(--color-panel);border-radius:var(--radius-md);padding:24px;border:1px solid var(--color-line);min-height:200px}.board-card.accent{background:var(--color-accent-dark);color:#ffffff}.board-card ul{list-style:none;padding-left:0;display:grid;gap:10px;margin-top:16px}.board-card li:before{content:"•";margin-right:8px}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.feature-card{background:var(--color-panel);border-radius:var(--radius-md);padding:24px;border:1px solid var(--color-line);min-height:200px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 24px rgba(15,45,51,.06)}body.landing-mode .feature-card{background:var(--landing-glass-bg);border-color:var(--landing-glass-border);color:#ffffff;box-shadow:var(--landing-glass-shadow);-webkit-backdrop-filter:blur(var(--landing-glass-blur));backdrop-filter:blur(var(--landing-glass-blur));display:grid;gap:8px;min-height:unset}.feature-card h3{font-size:20px}.feature-meta{font-size:12px;color:var(--color-ink-light);text-transform:uppercase;letter-spacing:2px}body.landing-mode .feature-card p,body.landing-mode .feature-meta{color:rgba(255,255,255,.82)}body.landing-mode .feature-card h3{color:#ffffff}body.landing-mode .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;padding-top:30px}.module-copy h2{font-family:var(--font-display),"Outfit",serif;font-size:clamp(26px,3vw,40px);margin-bottom:10px}.module-copy p{color:var(--color-ink-soft);margin-bottom:18px}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.module-card{background:#ffffff;border-radius:var(--radius-sm);padding:18px;border:1px solid var(--color-line);font-weight:600}body.landing-mode .module-card{background:var(--landing-glass-bg);border-color:var(--landing-glass-border);color:#ffffff;box-shadow:var(--landing-glass-shadow);-webkit-backdrop-filter:blur(var(--landing-glass-blur));backdrop-filter:blur(var(--landing-glass-blur))}.dashboard-preview .preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.preview-card{background:var(--color-panel);border-radius:var(--radius-md);padding:24px;border:1px solid var(--color-line);min-height:200px}.preview-card.accent{background:var(--color-accent-dark);color:#ffffff}.preview-card ul{list-style:none;padding-left:0;display:grid;gap:10px;margin-top:16px}.preview-card li:before{content:"•";margin-right:8px}.cta-row{display:flex;gap:12px}.tracks-layout{padding:48px 6vw 80px;display:grid;gap:20px;color:#f8fafc}.tracks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.track-card{background:rgba(255,255,255,.92);border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.35);display:grid;gap:12px;box-shadow:0 12px 24px rgba(15,23,42,.16)}.track-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.track-card h3{margin:0;color:#0f172a}.track-pill{padding:4px 10px;background:#e7f6ed;color:#11643a;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.track-summary{font-size:13px;color:#334155}.track-actions{display:flex;flex-wrap:wrap;gap:10px}.button.ghost.small.danger{border-color:#fca5a5;color:#7f1d1d}.track-empty{padding:20px;border-radius:var(--radius-md);border:1px dashed var(--color-line);color:var(--color-ink-light);font-size:14px}.site-footer{border-top:1px solid var(--color-line);padding:14px 4vw 16px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px;color:var(--color-ink-soft);background:rgba(245,241,234,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.footer-title{font-family:var(--font-display),"Outfit",serif;font-size:20px;color:var(--color-ink)}.footer-copy{margin-top:10px;max-width:320px;font-size:14px}.footer-links,.footer-meta{display:flex;flex-direction:column;gap:8px;font-size:13px}.footer-meta span{font-size:11px;text-transform:uppercase;letter-spacing:1.6px}.footer-contact-link{font-size:13px;color:var(--color-accent-dark);text-decoration:underline;text-underline-offset:2px;word-break:break-word}.footer-contact-note{font-size:11px!important;text-transform:none!important;letter-spacing:0!important;color:var(--color-ink-light)}.reveal{opacity:0;transform:translateY(16px);animation:fadeUp .7s ease forwards;animation-delay:var(--delay,0s)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:32px;padding:60px 6vw;align-items:start}.auth-card{background:var(--color-panel);border-radius:var(--radius-md);padding:28px;border:1px solid var(--color-line);box-shadow:0 16px 32px rgba(15,45,51,.1)}.auth-card h2{font-family:var(--font-display),"Outfit",serif;margin-bottom:6px}.auth-card p{color:var(--color-ink-soft);margin-bottom:18px}.auth-card .feature-grid{grid-template-columns:1fr}.auth-card .feature-card{min-height:auto}.form-grid{display:grid;gap:14px}.form-grid label{display:grid;gap:8px;font-size:14px;color:var(--color-ink-soft)}.form-grid input,.form-grid select,.form-grid textarea{padding:12px 14px;border-radius:12px;border:1px solid var(--color-line);font-size:14px;font-family:inherit}.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:80px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:1px solid var(--color-line);background:#ffffff;color:var(--color-accent-dark);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;line-height:1;cursor:pointer}.checkbox-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-ink-soft)}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent-dark)}.form-helper{font-size:12px;color:var(--color-ink-light)}.embedded-header>div{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 16px;border-radius:16px;background:rgba(15,23,42,.24);border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 36px rgba(15,23,42,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#ffffff}.embedded-header>div h2{margin:0}.embedded-header>div .form-helper{color:rgba(255,255,255,.82);text-shadow:none}.dashboard-header>div:first-child{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 16px;border-radius:16px;background:rgba(255,255,255,.92);border:1px solid var(--color-line);box-shadow:0 10px 22px rgba(15,45,51,.12)}.dashboard-header .plain-auth-bar{flex-direction:row;align-items:center}.dashboard-header .plain-auth-bar,.dashboard-header.plain-auth-header>div:first-child{padding:0;border-radius:0;background:transparent;border:none;box-shadow:none}.dashboard-header>div:first-child h2{margin:0}.background-grid{display:grid;gap:12px;margin-top:16px}.background-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--color-line);background:#f7f3ee;font-weight:600;cursor:pointer;text-align:left}.background-toggle-icon{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#ffffff;border:1px solid var(--color-line);color:var(--color-ink);font-size:18px;line-height:1}.background-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--color-line);border-radius:12px;background:#f7f3ee}.background-row select{min-width:200px}.forecast-day,.forecast-grid,.frosted-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.frosted-card{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.35);border-radius:16px;box-shadow:0 18px 36px rgba(15,23,42,.18)}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:10px 12px 16px}.forecast-day{background:#ffffff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:12px;box-shadow:0 10px 20px rgba(15,23,42,.08)}.forecast-date{font-weight:800;margin-bottom:6px;color:#0f172a}.forecast-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;color:#0f172a}.forecast-list{display:grid;gap:10px}.forecast-tile{position:relative;background:rgba(255,255,255,.9);border-radius:14px;border:1px solid rgba(255,255,255,.4);box-shadow:0 12px 24px rgba(15,23,42,.18);overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.forecast-bar{position:absolute;left:0;top:0;bottom:0;width:6px}.forecast-tile-body{padding:12px 14px 14px 18px;display:grid;gap:6px}.forecast-tile-title{font-weight:800;color:#0f172a}.forecast-tile-text,.forecast-tile-why{font-size:13px;color:#475569}.fts-day-metrics{display:grid;gap:4px;margin-top:2px}.fts-day-metric-line{font-size:11px;line-height:1.3;color:#334155;background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.25);border-radius:7px;padding:4px 8px}.fts-forecast-inner{background:rgba(12,32,43,.29);border-radius:20px;border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 40px rgba(0,0,0,.22);padding:22px;display:grid;gap:16px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.fts-forecast-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.fts-forecast-subtitle{margin:4px 0 0;font-size:14px;color:#475569;max-width:320px}.fts-forecast-pill{background:rgba(255,255,255,.15);color:#eaf4ff;border:1px solid rgba(255,255,255,.35)}.fts-hourly-dropdown{background:rgba(255,255,255,.92)}.fts-hourly-dropdown summary{list-style:none}.fts-hourly-dropdown summary::-webkit-details-marker{display:none}.fts-hourly-summary{cursor:pointer;padding:11px 14px 11px 18px;font-size:12px;font-weight:800;color:#0f172a;border-bottom:1px solid rgba(148,163,184,.22)}.fts-hourly-summary:after{content:"Show";float:right;font-weight:700;color:#334155}.fts-hourly-dropdown[open] .fts-hourly-summary:after{content:"Hide"}.fts-hourly-list{gap:8px}.fts-hourly-row{display:flex;flex-wrap:wrap;column-gap:10px;row-gap:4px;align-items:center;padding:7px 8px;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:rgba(248,250,252,.9);color:#1e293b;font-size:12px}.fts-hourly-time{flex:0 0 62px;font-weight:700;color:#0f172a}.fts-hourly-sky{flex:1 1 140px;min-width:120px;font-weight:600}.fts-hourly-metric{flex:0 0 auto;white-space:nowrap;color:#334155}@media (max-width:768px){.fts-hourly-time{flex-basis:54px}.fts-hourly-sky{flex-basis:calc(100% - 64px);min-width:0}}.address-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:50;padding:20px}.address-modal.address-modal--anchored{place-items:flex-start;padding:0}.address-modal-card{width:min(520px,90vw);background:rgba(255,255,255,.96);border-radius:14px;border:1px solid rgba(15,23,42,.1);box-shadow:0 18px 36px rgba(15,23,42,.24);padding:16px;display:grid;gap:12px}.modal-card.address-modal-card{max-height:min(88vh,720px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:24px}@media (max-width:640px){.modal-card.address-modal-card{max-height:90vh}.address-results{max-height:200px}}.address-search{display:grid;gap:8px}.address-input{padding:12px 14px;border-radius:12px;border:1px solid #d7d7d7;font-size:14px}.address-results{display:grid;gap:8px;max-height:260px;overflow:auto}.address-result{text-align:left;padding:10px 12px;border-radius:10px;border:1px solid #e4e4e4;background:#fff;box-shadow:0 10px 18px rgba(15,23,42,.08)}.address-name{font-weight:700;color:#0f172a}.address-label{font-size:12px;color:#475569}.sport-fishing-page .gfm-actions-only{display:flex;justify-content:flex-start;margin:6px 0}.sport-fishing-page .gfm-action-bar{display:flex;justify-content:flex-start;margin:4px 0 2px}.sport-fishing-page .gfm-outlook{margin-top:0}.sport-fishing-page .modal-card{transform:translateY(50px)}.sport-fishing-page .gfm-outlook-list{margin-top:14px}.sport-fishing-page .sport-fishing-mode-button{background:#2563eb;border-color:#1d4ed8;color:#ffffff;transform:none;transform-origin:center}@media (min-width:769px){.sport-fishing-page .gfm-action-bar .sport-fishing-mode-button{transform:scale(1.08)}}.sport-fishing-page .gfm-outlook-actions{margin-top:10px}.sport-fishing-page .module-lock-grid{margin-top:4px}.skiing-page .ski-slot-help,.skiing-page .ski-slot-select{background:rgba(15,23,42,.35);border:1px solid rgba(255,255,255,.25);color:#ffffff;box-shadow:0 12px 24px rgba(15,23,42,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.skiing-page .ski-slot-select{border-radius:999px;font-weight:600;height:30px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20' fill='white'%3E%3Cpath d='M5.5 7.5 10 12l4.5-4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px 12px;padding:6px 30px 6px 14px}.skiing-page .ski-slot-select option{color:#0f172a}.background-row.is-disabled{opacity:.45;pointer-events:none}.form-error{color:#b4352b;font-size:13px}.form-success{color:#0f6e5b;font-size:13px}.dashboard{display:block;padding:48px 6vw 80px;max-width:100%;overflow-x:hidden}.dashboard-nav{background:var(--color-panel);border-radius:var(--radius-md);padding:18px;border:1px solid var(--color-line);display:grid;gap:14px;height:fit-content}.dashboard-nav a{padding:10px 12px;border-radius:10px;background:#f7f3ee}.dashboard-main{display:grid;gap:20px}.dashboard-main>*{min-width:0}.dashboard-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px}.regional-card{background:var(--color-panel);border-radius:var(--radius-md);padding:22px;border:1px solid var(--color-line);display:grid;gap:16px}.regional-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.regional-map{width:100%;border-radius:16px;overflow:hidden;border:1px solid #efe6db;background:#f8f4ee;min-height:220px;position:relative}.regional-map-controls{position:absolute;top:12px;right:12px;z-index:10}.map-location-dot-wrapper{top:50%;left:50%;width:0;height:0;pointer-events:none;z-index:6}.map-location-dot,.map-location-dot-wrapper{position:absolute;transform:translate(-50%,-50%)}.map-location-dot{top:0;left:0;width:12px;height:12px;border-radius:999px;background:#2563eb;border:2px solid #ffffff;box-shadow:0 0 0 2px rgba(37,99,235,.15)}.map-location-dot-pulse{position:absolute;top:0;left:0;width:26px;height:26px;border-radius:999px;background:rgba(37,99,235,.2);border:1px solid rgba(37,99,235,.6);transform:translate(-50%,-50%);animation:tidePulse 1.6s ease-out infinite}.map-frame{width:100%;min-height:220px;border:none;display:block}.map-placeholder{min-height:220px;display:grid;place-items:center;color:var(--color-ink-light);font-size:13px}.regional-form,.regional-inputs{display:grid;gap:10px}.regional-inputs{grid-template-columns:1fr 1fr auto;align-items:center}.regional-inputs input{padding:10px 12px;border-radius:12px;border:1px solid var(--color-line);font-size:13px;font-family:inherit}.button.small{padding:8px 14px;font-size:12px}.button.compact{padding:9px 15px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.dashboard-auth-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px 16px;width:100%;align-items:center}.dashboard-auth-text{display:grid;gap:4px;min-width:0;grid-column:1}.dashboard-auth-label{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.7)}.dashboard-auth-email{font-size:12px;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-auth-greeting{grid-column:2;justify-self:center;align-self:center;font-weight:700;font-size:13px;color:rgba(255,255,255,.9);letter-spacing:.2px}.dashboard-signout{grid-column:3;justify-self:end}.dashboard-pref-hint{grid-column:1/-1;font-size:13px;color:rgba(255,255,255,.973);background:rgba(12,12,12,.319);border:1px solid rgb(255,255,255);padding:8px 12px;border-radius:10px;width:fit-content}.tide-pref-hint{margin-top:10px;margin-left:auto}.dashboard-header.plain-auth-header .plain-auth-bar{width:100%}.dashboard-actions{display:flex;gap:10px;flex-wrap:wrap}.weather-card{background:var(--color-panel);border-radius:var(--radius-md);padding:22px;border:1px solid var(--color-line);display:grid;gap:18px;width:100%;max-width:100%;overflow-x:hidden}.theme-card{background:rgba(15,23,42,.24);border-color:rgba(255,255,255,.22);box-shadow:0 18px 36px rgba(15,23,42,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#ffffff}.theme-card .form-helper,.theme-card h3,.theme-card h4{color:rgba(255,255,255,.86)}.theme-card h3{color:#ffffff}.theme-card .form-error{color:#fecaca}.preferences-page .theme-card{background:#ffffff;border-color:rgba(15,23,42,.12);box-shadow:0 18px 36px rgba(15,23,42,.08);color:#0f172a}.preferences-page .theme-card h3,.preferences-page .theme-card h4,.preferences-page .theme-card h5{color:#0f172a}.preferences-page .theme-card .form-helper{color:#475569}.theme-blurb{display:grid;gap:6px}.theme-kicker{color:rgba(255,255,255,.8)}.theme-subkicker{color:rgba(255,255,255,.75)}.theme-lead{margin:0;color:#ffffff;font-weight:700;font-size:16px;line-height:1.5}.theme-card .weather-item{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.92)}.theme-card .weather-item strong{color:#ffffff}.theme-card .weather-item span{color:rgba(255,255,255,.78)}.theme-card .tide-chart-card{background:#e9f6fa;border-color:#e5e7eb}.tide-card-compact{padding-top:22px;gap:12px}.tide-card-compact .weather-card-header{margin-bottom:0;margin-top:4px}.tide-card-compact .tide-chart-card{margin-top:6px}.tide-card-header{position:relative}.tide-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;position:absolute;top:0;right:0}.tide-card-compact.is-collapsed{padding:16px 18px;gap:8px}.tide-card-compact.is-collapsed .weather-card-header{margin-top:0}.weather-card>*{min-width:0}.tide-card{background:var(--color-panel);border-radius:var(--radius-md);padding:22px;border:1px solid var(--color-line);display:grid;gap:12px}.tide-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.tide-elevation{font-size:14px;color:var(--color-ink)}.tide-elevation strong{margin-left:4px}.tide-events{display:grid;gap:6px}.tide-table-grid{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px;gap:12px;font-size:12px}.tide-table-grid--header{color:var(--color-ink-light)}.tide-table-grid--row{padding:6px 0;border-top:1px solid #f3f4f6}.tide-chart-card{border:1px solid #bfceed;border-radius:12px;padding:12px;max-width:100%;overflow:hidden;min-width:0}.tide-chart-scroll{width:100%;overflow-x:auto;overflow-y:hidden}.tide-chart-svg{width:100%;height:260px;display:block}.tide-chart-label{font-size:16px;fill:#2c9fe2}.tide-marker-label{font-size:14px;font-weight:600;fill:#111827;paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:3;pointer-events:none}.tide-now-dot{fill:#f70606;stroke:#ffffff;stroke-width:2;pointer-events:none}.tide-now-dot-pulse{fill:rgba(37,99,235,.2);stroke:rgba(37,99,235,.7);stroke-width:1;animation:tidePulse 1.6s ease-out infinite;transform-origin:center;transform-box:fill-box;pointer-events:none}@keyframes tidePulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.4);opacity:0}to{transform:scale(2.4);opacity:0}}.tide-day-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;min-width:0}.tide-day-strip button{flex:0 0 auto}.tide-event{background:#fff;border:1px solid #e4ddd3;border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.tide-event-type{font-weight:600;color:var(--color-ink)}.tide-event-height,.tide-event-time{color:var(--color-ink-dark)}.weather-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.dashboard-outlook-list{display:grid;gap:10px;margin-top:10px}.dashboard-outlook-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(15,23,42,.28);border:1px solid rgba(255,255,255,.18);color:#ffffff}.dashboard-outlook-badge{position:absolute;top:8px;right:10px;width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;background:rgba(15,23,42,.34);border:1px solid rgba(255,255,255,.24)}.dashboard-outlook-date{font-weight:700;font-size:14px;white-space:nowrap;padding-right:34px}.dashboard-outlook-metrics{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (min-width:900px){.dashboard-outlook-row{padding-right:52px}.dashboard-outlook-metrics{padding-right:6px}}@media (max-width:1120px){.dashboard-outlook-row{flex-direction:column;align-items:flex-start;padding-right:44px}.dashboard-outlook-date{white-space:normal;padding-right:22px}.dashboard-outlook-metrics{justify-content:flex-start;padding-right:8px}}.outlook-part{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:rgba(255,255,255,.92)}.outlook-icon{font-size:14px;line-height:1}.outlook-sep{margin-left:8px;color:rgba(255,255,255,.45)}.outlook-temp .outlook-icon{color:#fca5a5}.outlook-temp-unit{font-size:.92em}.outlook-sun .outlook-icon{color:#fde68a}.outlook-rain .outlook-icon{color:#7dd3fc}.outlook-wind .outlook-icon{color:#5eead4;font-size:20px}.outlook-summary{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:700;color:#ffffff;border:1px solid rgba(255,255,255,.2);text-shadow:0 2px 8px rgba(15,23,42,.25)}.outlook-good{background:rgba(34,197,94,.22);border-color:rgba(34,197,94,.5)}.outlook-warn{background:rgba(234,179,8,.22);border-color:rgba(234,179,8,.5)}.outlook-bad{background:rgba(239,68,68,.22);border-color:rgba(239,68,68,.5)}.outlook-card .dashboard-outlook-list{margin-top:14px}.metric-selector{position:relative;z-index:20}.metric-panel{position:absolute;top:110%;right:0;width:360px;max-height:70vh;background:rgba(15,23,42,.86);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:10px 12px 12px;box-shadow:0 18px 36px rgba(15,23,42,.28);z-index:2000;overflow:auto;color:#ffffff}.metric-panel-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;z-index:2400}.metric-panel.modal{position:fixed;top:12vh;right:auto;left:50%;transform:translateX(-50%);width:min(420px,92vw);max-height:70vh}.metric-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12);font-weight:600;font-size:13px}.metric-panel-close{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);color:#ffffff;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.metric-panel-close:hover{background:rgba(255,255,255,.2)}.metric-panel .metric-group{margin-bottom:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;align-items:center}.metric-panel .metric-group-label{font-weight:600;color:rgba(255,255,255,.7);font-size:12px;margin-bottom:6px;grid-column:1/-1}.metric-panel .metric-checkbox{font-size:13px;color:rgba(255,255,255,.92);padding:4px 0;display:flex;align-items:center;gap:8px}.metric-panel .metric-checkbox input{width:15px;height:15px;accent-color:#38bdf8}@media (max-width:640px){.weather-card-header{flex-direction:column;align-items:stretch;position:relative;gap:8px}.weather-card-header>.button.theme.square{align-self:flex-end;width:auto;padding:6px 12px;font-size:12px;min-width:56px;border-radius:10px;position:absolute;top:8px;right:8px}.dashboard-section-actions,.weather-card-header>div:last-child{width:auto;align-self:flex-end;justify-content:flex-end;gap:6px;z-index:5;position:absolute;top:8px;right:8px}.dashboard-section-actions .button{flex:0 0 auto}.dashboard-section-actions .button.theme.square{min-width:52px;padding:4px 10px;font-size:11px;border-radius:10px;justify-content:center;height:24px}.dashboard-section-actions .button.ghost.small{min-width:52px;padding:4px 8px;font-size:11px;border-radius:10px;justify-content:center;height:24px}.weather-card-header>div:first-child{padding-right:96px}.dashboard-map-card .weather-card-header>div:first-child{padding-right:0;padding-top:28px}.dashboard-map-card .weather-card-header .dashboard-section-actions{position:absolute!important;top:-2px!important;left:auto!important;right:6px!important;justify-content:flex-end!important;align-self:flex-end;margin-top:0}.dashboard-metrics-card .weather-card-header>div:first-child,.dashboard-outlook-card .weather-card-header>div:first-child{padding-right:0;padding-top:28px}.dashboard-metrics-card .dashboard-section-actions,.dashboard-outlook-card .dashboard-section-actions{position:absolute!important;top:-2px!important;left:auto!important;right:6px!important;justify-content:flex-end!important;align-self:flex-end;margin-top:0}.fishing-page .weather-card-header>div:first-child{padding-right:96px}.fishing-page .weather-card-header .dashboard-section-actions{position:absolute!important;top:-2px!important;right:6px!important;left:auto!important;justify-content:flex-end!important;margin-top:0}.surfing-page .weather-card-header>div:first-child{padding-right:96px}.surfing-page .weather-card-header .dashboard-section-actions{position:absolute!important;top:-4px!important;right:6px!important;left:auto!important;justify-content:flex-end!important;margin-top:0}.surfing-page .surf-report-header{position:relative!important}.surfing-page .surf-report-header>div:first-child{padding-right:120px}.surfing-page .surf-report-actions{position:absolute!important;top:-10px!important;right:6px!important;left:auto!important;justify-content:flex-end!important;gap:6px}.surfing-page .surf-report-actions .button{min-height:24px;height:20px;padding:4px 8px;font-size:11px;border-radius:10px}.surfing-page .surf-report-actions .button.theme.square{min-width:52px}.fishing-page .map-card .weather-card-header{margin-bottom:-6px}.surfing-page .map-card .weather-card-header{position:relative;display:block;margin-bottom:2px;min-height:64px}.surfing-page .map-card .weather-card-header>div:first-child{padding-right:138px!important;margin-top:0!important}.surfing-page .map-card .weather-card-header h3{font-size:16px!important;line-height:1.15}.surfing-page .map-card .weather-card-header .dashboard-section-actions{position:absolute!important;top:4px!important;right:8px!important;left:auto!important;width:auto!important;margin:0!important;align-items:center;justify-content:flex-end;gap:6px}.surfing-page .map-card .weather-card-header .dashboard-section-actions .button{min-height:24px;padding:4px 8px;font-size:11px;border-radius:10px;white-space:nowrap}.dashboard-map-card .regional-center-status{margin-top:0;margin-bottom:8px}.tide-card-meta{top:8px;right:8px}.tide-card-meta .button.theme.square{min-width:48px;padding:5px 10px;font-size:11px;border-radius:10px}.dashboard-outlook-row{flex-direction:column;align-items:flex-start}.dashboard-outlook-badge{top:8px;right:8px}.dashboard-outlook-date{white-space:normal}.dashboard-outlook-metrics{justify-content:flex-start}.metric-panel{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;max-height:60vh;overflow:auto;border-radius:12px;padding:12px;z-index:1000;box-shadow:0 20px 40px rgba(15,23,42,.25)}.metric-panel-overlay{align-items:flex-end;padding:16px}.metric-panel.modal{top:auto;left:12px;right:12px;transform:none;width:auto;max-height:65vh}.metric-panel .metric-group{padding-bottom:8px}}@media (max-width:900px){.dashboard-map-card .weather-card-header .dashboard-section-actions{position:absolute!important;top:-2px!important;left:auto!important;right:6px!important;justify-content:flex-end!important}}.weather-meta{display:grid;gap:6px;font-size:12px;color:var(--color-ink-light)}.weather-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:100%;min-width:0}.weather-grid.compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;max-width:100%;min-width:0}.weather-item{background:#f8f4ee;border-radius:12px;padding:12px;display:grid;gap:6px}.weather-blurb,.weather-item{border:1px solid #efe6db;font-size:13px}.weather-blurb{color:var(--color-ink-soft);background:#f9f6f1;border-radius:12px;padding:12px 14px}.calendar-page{padding:48px 6vw 80px;display:flex;justify-content:center}.calendar-page--embed{padding:16px}.calendar-page--embed .calendar-card{box-shadow:none}.calendar-page--embed .calendar-layout{grid-template-columns:1fr}.calendar-page--embed .calendar-header--embed{align-items:center}.calendar-card{width:min(1100px,100%);background:var(--color-panel);border-radius:var(--radius-md);padding:24px;border:1px solid var(--color-line);display:grid;gap:20px;box-shadow:var(--shadow-soft)}.calendar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.calendar-header h2{font-family:var(--font-display),"Outfit",serif}.calendar-controls{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-ink-soft)}.calendar-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px}.calendar-grid{background:#f8f4ee;border-radius:16px;padding:12px;border:1px solid #efe6db;display:grid;gap:8px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--color-ink-light)}.calendar-weekdays span{text-align:center}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-day{border-radius:12px;background:#ffffff;border:1px solid #efe6db;min-height:42px;display:grid;place-items:center}.calendar-day button{width:100%;height:100%;font:inherit;cursor:pointer;color:inherit}.calendar-day button,.calendar-day.empty{border:none;background:transparent}.calendar-day.has-event{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px rgba(224,122,75,.2)}.calendar-day.is-selected{background:var(--color-accent-dark);color:#ffffff}.calendar-day.is-selected,.calendar-day.is-today{border-color:var(--color-accent-dark)}.calendar-panel{background:#f8f4ee;border-radius:16px;padding:16px;border:1px solid #efe6db;display:grid;gap:14px}.calendar-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.calendar-editing{font-size:11px;color:var(--color-accent-dark);border:1px solid var(--color-line);background:#ffffff;border-radius:999px;padding:4px 10px}.calendar-events{display:grid;gap:10px}.calendar-event{background:#ffffff;border-radius:12px;border:1px solid #efe6db;padding:12px;display:grid;gap:8px}.calendar-event-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-pill{font-size:10px;text-transform:uppercase;letter-spacing:1px;background:var(--color-accent-soft);color:var(--color-accent-dark);padding:4px 8px;border-radius:999px}.calendar-event-actions{display:flex;gap:8px;flex-wrap:wrap}.calendar-form{display:grid;gap:12px}.calendar-form label{display:grid;gap:6px;font-size:12px;color:var(--color-ink-light)}.calendar-activity-locked,.calendar-form select,.calendar-form textarea{border-radius:12px;border:1px solid #e4ddd3;padding:10px 12px;font-family:inherit;font-size:13px}.calendar-activity-locked{background:#f7f3ee;color:var(--color-ink-soft)}.calendar-map{display:grid;gap:8px}.calendar-map-frame{width:100%;height:220px;border-radius:14px;border:1px solid #e4ddd3;overflow:hidden;background:#f3f0ea}.calendar-location-meta{gap:12px;flex-wrap:wrap}.calendar-checkbox,.calendar-location-meta{display:flex;align-items:center;font-size:12px;color:var(--color-ink-light)}.calendar-checkbox{gap:8px}.calendar-form-actions{display:flex;gap:10px;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;background:rgba(10,18,20,.45);display:grid;place-items:center;padding:20px;z-index:40}.modal-card{background:#ffffff;border-radius:var(--radius-md);padding:24px;width:min(560px,100%);border:1px solid var(--color-line);box-shadow:var(--shadow-soft);display:grid;gap:14px}.modal-card.theme-card{background:rgba(15,23,42,.92);border-color:rgba(255,255,255,.22);color:#ffffff;box-shadow:0 20px 40px rgba(15,23,42,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-card.theme-card h3,.modal-card.theme-card h4,.modal-card.theme-card h5,.modal-card.theme-card strong{color:#ffffff}.modal-card.theme-card .form-helper,.modal-card.theme-card li,.modal-card.theme-card p{color:rgba(255,255,255,.82)}@media (max-width:768px){.calendar-location-modal-backdrop{align-items:flex-start;padding:82px 12px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch}.calendar-location-modal-card{margin:0 auto;max-height:calc(100dvh - 104px);overflow-y:auto;-webkit-overflow-scrolling:touch}}.modal-actions{display:flex;justify-content:flex-end}.weather-item span{color:var(--color-ink-light)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stat-card,.timeline{background:var(--color-panel);border-radius:var(--radius-md);padding:20px;border:1px solid var(--color-line)}.timeline ul{list-style:none;padding-left:0;margin-top:12px;display:grid;gap:8px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.billing-card{background:var(--color-panel);border-radius:var(--radius-md);padding:24px;border:1px solid var(--color-line);max-width:480px}.billing-page{padding:48px 6vw 80px;display:grid;gap:24px}.billing-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.billing-meta{display:grid;gap:6px;font-size:12px;color:var(--color-ink-light)}.billing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(204px,1fr));gap:16px}.plan-card{background:var(--color-panel);border-radius:var(--radius-md);padding:17px;border:1px solid var(--color-line);display:grid;gap:12px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.plan-card.theme-card{color:#0f172a}.plan-card.theme-card .form-helper{color:#334155}.plan-card.theme-card .plan-features li,.plan-card.theme-card .plan-price,.plan-card.theme-card h3,.plan-card.theme-card p{color:#0f172a}.plan-card.theme-card.account-card:before{opacity:.08;background-image:none}.plan-card.theme-card.account-card{background:rgba(255,255,255,.92);border-color:rgba(15,23,42,.12)}.button.subscribed{background:#16a34a;color:#ffffff;border-color:#16a34a;cursor:default}.plan-card:before{content:"";position:absolute;inset:0;background-image:var(--tile-bg,none);background-size:cover;background-position:50%;opacity:.28;filter:saturate(1.05) contrast(1.06);pointer-events:none}.plan-card>*{position:relative}.plan-card.selected{border-color:var(--color-accent);box-shadow:0 18px 32px rgba(224,122,75,.2)}.plan-card.highlight{border-color:var(--color-accent-dark);box-shadow:0 20px 40px rgba(15,45,51,.22)}.plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.plan-badge{font-size:10px;text-transform:uppercase;letter-spacing:1px;background:var(--color-accent-soft);color:var(--color-accent-dark);padding:4px 8px;border-radius:999px;white-space:nowrap}.plan-price{font-family:var(--font-display),"Outfit",serif;font-size:19px}.plan-features{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:13px;color:var(--color-ink-soft)}.module-shell{border-radius:18px;border:1px solid var(--color-line);background:#ffffff;padding:24px;min-height:360px;display:grid;place-items:center}.module-shell--blank{min-height:160px}.module-placeholder{text-align:center;max-width:360px}.module-lock-container{position:relative;width:100%;max-width:100%;min-width:0}.module-lock-grid{display:grid;gap:6px;grid-template-columns:minmax(0,1fr);width:100%;max-width:100%}.skiing-page .module-lock-grid{gap:10px}.module-lock-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:14px;border:1px solid #efe6db;background:#f9f6f1;color:var(--color-ink-soft);font-size:14px}.module-lock-price{font-size:13px;font-weight:600;color:#0f172a;opacity:.8}.dashboard-lock-banner{margin-bottom:12px}.dashboard-lock-content{position:relative;display:grid}.dashboard-lock-content>*{position:relative;z-index:1;pointer-events:none}.dashboard-lock-content .weather-card.theme-card{position:relative;overflow:hidden;min-height:120px}.dashboard-lock-content .weather-card.theme-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(9,15,24,.52);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:none;z-index:20}.dashboard-lock-content .weather-card.theme-card:after{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);width:min(90%,560px);padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.26);background:rgba(7,12,22,.56);text-align:center;color:rgba(255,255,255,.98);font-size:15px;line-height:1.35;font-weight:700;text-shadow:0 3px 22px rgba(5,10,18,.98);pointer-events:none;z-index:30;white-space:pre-line}.dashboard-lock-content .dashboard-map-card:after{content:"Regional center map preview\A Set your local region to power forecast,\A metrics, and alert matching.";top:55%}.dashboard-lock-content .dashboard-current-card:after{content:"Current situation preview\A View live weather context for your\A selected regional center.";top:63%}.dashboard-lock-content .dashboard-outlook-card:after{content:"Forecast outlook preview\A Scan day-by-day windows for temp,\A humidity, rain or snow, and wind.";top:68%}.dashboard-lock-content .dashboard-metrics-card:after{content:"Regional metrics preview\A Choose and monitor the metrics\A that matter for your workflow.";top:66%}.dashboard-lock-content .dashboard-tides-card:after{content:"Tides preview\A Track 7-day tide highs/lows\A with local update timing.";top:63%}.module-lock-banner .button{white-space:nowrap}.module-lock-sell-points{margin:8px 2px 0 20px;padding:0;display:grid;gap:6px;font-size:15px;line-height:1.35}.embedded-app.module-locked .module-lock-sell-points{color:rgba(255,255,255,.95)}.embedded-app.module-locked .module-lock-sell-points li::marker{color:rgba(255,255,255,.9)}.module-lock-banner--rich{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:14px}.module-lock-copy{min-width:0}.module-lock-title{display:block;font-weight:700}.module-lock-overlay{position:absolute;inset:0;background:rgba(250,247,242,.82);display:grid;place-items:center;padding:20px;border-radius:inherit;z-index:5}.weather-alerts-container{position:sticky;top:0;z-index:40;display:grid;gap:6px;padding:0 16px}.alert-banner{display:grid;grid-template-columns:auto 1fr;gap:8px;padding:6px 10px;border-radius:6px;box-shadow:0 2px 6px rgba(7,7,7,.08);max-width:100%;overflow:hidden}.alert-banner,.alert-ticker{align-items:center}.alert-ticker-track{overflow:hidden;white-space:nowrap;font-size:12px;opacity:.9}.alert-ticker-track span{display:inline-block;padding-left:100%;font-weight:500;animation:alert-scroll var(--alert-scroll-duration,90s) linear infinite}@keyframes alert-scroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.alert-icon{font-size:16px;line-height:1;padding-top:0;font-weight:700}.alert-content{display:grid;gap:1px;min-width:0}.alert-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;font-size:14px;min-width:0}.alert-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-location{font-size:11px;background:rgba(254,254,254,.08);padding:1px 6px;border-radius:999px;white-space:nowrap}.alert-headline{margin:0;font-size:12px;font-weight:600;color:#0b0b0b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-expires{margin:0;font-size:11px;opacity:.95}.alert-dismiss{border:none;background:transparent;cursor:pointer;font-size:16px;opacity:.6;padding:4px;border-radius:6px}.alert-dismiss:hover{opacity:1;background:rgba(15,23,42,.08)}@media (max-width:768px){.weather-alerts-container{padding:0 8px}.alert-banner{grid-template-columns:16px 1fr;gap:6px;padding:6px 8px;border-radius:8px}.alert-header{align-items:flex-start;gap:4px}.alert-title{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2;word-break:break-word}.alert-location{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:11px}.alert-headline{white-space:normal;overflow:hidden;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.2}.alert-expires{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.alert-ticker-track{display:block;font-size:12px;opacity:.85}.alert-ticker-track span{--alert-scroll-duration:90s}}.severity-extreme{background:#ff4848;border-left:4px solid #dc2626;color:#7f1d1d}.severity-severe{background:#ffedd5;border-left:4px solid #ea580c;color:#7c2d12}.severity-moderate{background:#f0c206;border-left:4px solid #f59e0b;color:#78350f}.severity-advisory,.severity-minor{background:#dbeafe;border-left:4px solid #3b82f6;color:#1e3a8a}.severity-unknown{background:#f3f4f6;border-left:4px solid #6b7280;color:#1f2937}.alert-badge-container{position:relative}.alert-badge-button{position:relative;background:#fee2e2;border:none;border-radius:999px;width:38px;height:38px;display:grid;place-items:center;cursor:pointer;font-size:16px}.alert-badge-count{position:absolute;top:-4px;right:-4px;background:#dc2626;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:999px}.alert-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:360px;overflow:hidden;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.2);z-index:40}.alert-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e2e8f0}.alert-dropdown-header h3{margin:0;font-size:13px;font-weight:700}.alert-dropdown-header button{border:none;background:transparent;cursor:pointer}.alert-dropdown-list{max-height:320px;overflow-y:auto}.alert-dropdown-item{padding:10px 16px;border-bottom:1px solid #f1f5f9;display:grid;gap:4px;font-size:12px}.alert-dropdown-item:last-child{border-bottom:none}.module-lock-card{background:#ffffff;border-radius:var(--radius-md);padding:20px;border:1px solid var(--color-line);box-shadow:var(--shadow-soft);display:grid;gap:10px;max-width:360px;text-align:center}.module-locked .embedded-frame{filter:blur(1px) grayscale(.2);pointer-events:none}body.embed-calendar .page-shell>footer,body.embed-calendar .page-shell>header,body.embed-calendar .weather-alerts-container{display:none}body.embed-calendar .page-main{padding:0}.embedded-app{padding:32px 6vw 80px;display:grid;gap:18px}.embedded-app.theme-page{color:#ffffff}.embedded-app.theme-page .module-lock-banner{background:rgba(15,23,42,.62);border-color:rgba(255,255,255,.28);color:rgba(255,255,255,.9);box-shadow:0 18px 36px rgba(15,23,42,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.embedded-app.theme-page .module-lock-price{color:#ffffff}.embedded-app.theme-page .module-lock-card{background:rgba(15,23,42,.86);border-color:rgba(255,255,255,.2);color:#ffffff}.embedded-app.theme-page .module-lock-card .form-helper{color:rgba(255,255,255,.82)}.embedded-app.theme-page .module-lock-overlay{background:rgba(10,18,28,.55)}.embedded-app.theme-page .embedded-frame{border:1px solid rgba(255,255,255,.14);background:rgba(15,23,42,.2);box-shadow:0 18px 36px rgba(15,23,42,.25)}.embedded-app.module-locked .module-lock-banner--rich{position:sticky;top:10px;z-index:25;justify-items:center;align-items:center}.embedded-app.module-locked .module-lock-banner--rich .module-lock-copy{text-align:center}.embedded-app.module-locked .module-lock-banner--rich .module-lock-sell-points{width:fit-content;margin-left:auto;margin-right:auto;text-align:left}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:after{content:"Map tile preview\A Add and manage fishing locations,\A tracks, and map notes.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Tides tile preview\A 7-day tide chart with highs/lows\A and local update timing."}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"5-day outlook tile preview\A Regional conditions summary\A tuned to your settings."}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:nth-child(4):after{content:"Recommendations tile preview\A Time-window suggestions built from\A weather and activity context."}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:nth-child(5):after{content:"Preferences tile preview\A Set wind, rain, swell, and comfort\A thresholds for scoring."}.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:nth-child(6):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:after{content:"Map tile preview\A Add and manage surf locations,\A saved spots, and map notes.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Tides tile preview\A 7-day tide chart with highs/lows\A and local update timing."}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Regional 5-day surf report preview\A Daily score windows based on\A wave, swell, wind, and tide."}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:nth-child(4):after{content:"Out-of-region report preview\A Expanded score card layout\A with best-window metrics."}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:nth-child(5):after{content:"Global tracker preview\A Track 1-7 day conditions for\A up to 5 global surf locations."}.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:nth-child(6):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container:after{content:"Sport Fishing outlook preview\A Compare the next 5 days with safety bands,\A match context, and risk notes.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Conditions adjustment preview\A Tune caution level for stricter\A or more relaxed safety bands."}.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:after{content:"Skiing map preview\A Add locations, manage slot assignments,\A and plan around your mountain zones.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Seasonal snow preview\A Track total snowfall, depth trends,\A and days since fresh snow."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Slot 1 outlook preview\A 5-day weather and snow window\A with safety context."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(4):after{content:"Slot 2 outlook preview\A Compare a second location\A for better planning options."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(5):after{content:"Conditions adjustment preview\A Tune thresholds for stricter\A or more relaxed warnings."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(6):after{content:"Recommendations preview\A Suggested ski windows from\A your selected rec-card location."}.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:nth-child(7):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:after{content:"5-day outlook preview\A Regional weather summary with\A gardening-focused guidance.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Conditions adjustment preview\A Tune warnings for stricter\A or more relaxed planning."}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Daily windows preview\A Best times to plant, water,\A and maintain each day."}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:nth-child(4):after{content:"Checklist preview\A Track recurring jobs and\A seasonal garden tasks."}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:nth-child(5):after{content:"Calendar preview\A Plan planting dates and\A upcoming care windows."}.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:nth-child(6):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:after{content:"Tracking map preview\A Add ride locations, notes,\A and track sessions.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"5-day outlook preview\A Regional riding-weather summary\A for daily planning."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Conditions adjustment preview\A Tune caution level for stricter\A or relaxed ride windows."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(4):after{content:"Recommendations preview\A Forecast-based riding windows\A with contextual guidance."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(5):after{content:"Events calendar preview\A Plan rides and reminders\A with day-of forecast context."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(6):after{content:"Stats preview\A Personal ride totals and\A historical activity metrics."}.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:nth-child(7):after{content:"Customise your metrics to your preferences."}.embedded-app.module-locked.events-calendar-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.events-calendar-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.events-calendar-page .module-lock-grid>.module-lock-container:after{content:"Event planning tile preview\A Add activities, dates, reminders,\A and location details in one place.";white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.events-calendar-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Monthly calendar preview\A See upcoming event dates,\A reminders, and day selection."}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container{position:relative}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:before{content:"";position:absolute;inset:0;border-radius:18px;background:rgba(9,15,24,.58);pointer-events:none;z-index:4}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:after{content:none;white-space:pre-line;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92%,520px);text-align:center;color:rgba(255,255,255,.94);font-size:14px;line-height:1.45;font-weight:600;text-shadow:0 2px 18px rgba(5,10,18,.85);pointer-events:none;z-index:5}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:nth-child(2):after{content:"Location cards preview\A Per-location metrics, refresh timing,\A local time, and active alert context."}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:first-child:after{content:"Map and picker preview\A Search, pin, and stage global locations\A before adding them to your tracker."}.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:nth-child(3):after{content:"Customise your metrics to your preferences."}.embedded-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.embedded-header--actions{justify-content:flex-end}.hunting-hero-header{display:block}.hunting-hero-grid{width:100%;display:flex;align-items:stretch;gap:10px;flex-wrap:nowrap}.hunting-hero-card{flex:1 1;min-width:0;background:rgba(12,22,36,.58);border:1px solid rgba(255,255,255,.3);border-radius:16px;padding:10px 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hunting-hero-card h3{margin:0;font-size:22px;line-height:1.1;color:#ffffff}.hunting-hero-card h4{margin:0;font-size:16px;line-height:1.2;color:#ffffff}.hunting-hero-card .form-helper{margin-top:4px;color:rgba(255,255,255,.9);font-size:12px;line-height:1.3}.hunting-outlook-header{position:relative;text-align:left;justify-content:flex-start;align-items:flex-start}.hunting-outlook-header>div{text-align:left;align-self:flex-start;width:100%}.hunting-outlook-header h3{margin-top:0}.hunting-outlook-body{margin-top:8px}@media (max-width:768px){.hunting-outlook-body{margin-top:30px}}@media (max-width:900px){.hunting-hero-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.hunting-hero-card{padding:8px 10px;border-radius:12px}.hunting-hero-card h3{font-size:16px}.hunting-hero-card h4{font-size:14px}.hunting-hero-card .form-helper{font-size:11px}}.embedded-tile-card{border-radius:18px;padding:16px;display:grid;gap:12px}.embedded-tile-card .embedded-frame{border-radius:14px}.embedded-frame{width:100%;height:auto;min-height:200px;border:none;border-radius:18px;box-shadow:var(--shadow-soft);background:#ffffff;display:block}.embedded-frame--tile{height:auto}.embedded-frame--placeholder{pointer-events:none}.embedded-frame--calendar{height:auto;min-height:720px}.module-lock-grid .module-lock-container{min-height:var(--tile-height,200px);height:auto;overflow:visible}.module-lock-grid .embedded-frame{height:auto}.module-lock-container--map{--tile-height:360px}.module-lock-container--map .embedded-frame{height:260px}.module-lock-container--map-large{--tile-height:480px}.module-lock-container--tide{--tile-height:300px}.module-lock-container--calendar{height:auto!important;overflow:hidden}.module-lock-container--units{--tile-height:0px;min-height:0!important}.terms-page{padding:48px 6vw 80px;display:flex;justify-content:center}.terms-card{width:min(900px,100%);background:var(--color-panel);border-radius:var(--radius-md);padding:28px;border:1px solid var(--color-line);display:grid;gap:14px;box-shadow:var(--shadow-soft)}.terms-card h1{font-family:var(--font-display),"Outfit",serif;font-size:clamp(30px,4vw,42px)}.terms-card h2{font-size:18px;margin-top:8px}.terms-card li,.terms-card p{font-size:14px;color:var(--color-ink-soft);line-height:1.6}.terms-card ul{padding-left:18px;display:grid;gap:6px}@media (min-width:769px){:root{--nav-sidebar-width:180px}.site-header{position:fixed;top:0;left:0;height:100vh;width:var(--nav-sidebar-width);justify-content:flex-start;padding:24px 18px;border-right:1px solid var(--color-line);overflow-y:auto}.nav-panel,.site-header{flex-direction:column;align-items:flex-start}.nav-panel{width:100%;gap:16px;min-height:0}.header-toolbar,.page-title{display:none}.site-nav{width:100%;flex-direction:column;align-items:flex-start;gap:3px}.site-nav a{width:100%;padding:7px 10px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.75);color:var(--color-ink);font-size:9px}.header-actions{width:100%;flex-direction:column;align-items:stretch}.menu-button{display:none}.page-main,.site-footer,.weather-alerts-container{margin-left:var(--nav-sidebar-width)}}@media (max-width:768px){.site-header{gap:16px;padding:18px 4vw 12px}.brand{gap:10px}.brand-mark{width:48px;height:48px}.brand-name{font-size:17px}.brand-tag{font-size:10px;letter-spacing:1.3px}.menu-button{width:38px;height:38px}.menu-button span{width:17px}.embedded-app{padding:20px 4vw 44px;overflow-x:hidden}.hiking-page,.hunting-page{padding-top:calc(20px + env(safe-area-inset-top, 0px))}.embedded-frame,.module-lock-container,.module-lock-grid,.weather-card{width:100%;max-width:100%;min-width:0}.hiking-page .module-lock-grid,.hunting-page .module-lock-grid{gap:-6px!important}.horse-riding-page{padding:20px 4vw 60px;gap:16px}.horse-riding-page .embedded-header{align-items:flex-start;gap:12px}.horse-riding-page .embedded-header>div{width:100%}.horse-riding-page .embedded-header .button.ghost.compact{display:none}.horse-riding-page .weather-card.theme-card{padding:14px 14px 16px}.horse-riding-page .weather-card.theme-card>.embedded-frame{border-radius:14px}.horse-riding-page .dashboard-section-actions{width:100%;justify-content:flex-start}.horse-riding-page .module-lock-grid{gap:20px}.hunting-page .module-lock-container--map{--tile-height:442px}.hunting-page .module-lock-container--map .embedded-frame{height:442px}.hiking-page .module-lock-container--compass,.hunting-page .module-lock-container--compass{--tile-height:442px}.hiking-page .module-lock-container--compass.is-collapsed,.hunting-page .module-lock-container--compass.is-collapsed{--tile-height:0px;min-height:0!important}.hiking-page .module-lock-grid,.hunting-page .module-lock-grid{gap:0!important}.hiking-page .module-lock-grid .module-lock-container,.hunting-page .module-lock-grid .module-lock-container{min-height:var(--tile-height,140px)}.hiking-page .weather-card.theme-card,.hunting-page .weather-card.theme-card{padding:14px 14px 16px}.hiking-page .dashboard-section-actions,.hunting-page .dashboard-section-actions{width:auto;justify-content:flex-end}.hiking-page .weather-card-header,.hunting-page .weather-card-header{position:relative}.hiking-page .dashboard-section-actions,.hunting-page .dashboard-section-actions{position:absolute;top:-15px;right:0;left:auto}.hiking-page .compass-tile .dashboard-section-actions,.hunting-page .compass-tile .dashboard-section-actions{position:absolute!important;top:6px!important;right:6px!important;left:auto!important;width:auto!important;justify-content:flex-end!important}.hiking-page .dashboard-section-actions .button,.hunting-page .button.ghost.small,.hunting-page .button.small,.hunting-page .button.theme.square,.hunting-page .dashboard-section-actions .button{padding:4px 8px;font-size:11px;min-height:24px;line-height:1;border-radius:10px}.hiking-page .hunting-oorl-header,.hunting-page .hunting-oorl-header{position:relative;min-height:96px}.hiking-page .hunting-oorl-title,.hunting-page .hunting-oorl-title{padding-right:158px}.hiking-page .hunting-oorl-actions,.hunting-page .hunting-oorl-actions{position:absolute!important;top:6px!important;right:8px!important;left:auto!important;width:auto!important;margin:0!important;justify-content:flex-end!important;gap:6px}.hiking-page .hunting-oorl-actions .button:first-child,.hunting-page .hunting-oorl-actions .button:first-child{position:absolute;top:42px;right:0;margin-top:0}.hiking-page .hunting-oorl-actions .button,.hunting-page .hunting-oorl-actions .button{min-height:24px;padding:4px 8px;font-size:11px;line-height:1;white-space:nowrap}.hiking-page .hunting-oorl-card.is-collapsed .hunting-oorl-header,.hunting-page .hunting-oorl-card.is-collapsed .hunting-oorl-header{min-height:58px}.hiking-page .hunting-oorl-card.is-collapsed .hunting-oorl-title,.hunting-page .hunting-oorl-card.is-collapsed .hunting-oorl-title{padding-right:118px}.hiking-page .hunting-oorl-card.is-collapsed .hunting-oorl-title .form-helper,.hunting-page .hunting-oorl-card.is-collapsed .hunting-oorl-title .form-helper{display:none}.hiking-page .hunting-oorl-card.is-collapsed .hunting-oorl-actions,.hunting-page .hunting-oorl-card.is-collapsed .hunting-oorl-actions{top:8px!important;gap:4px}.hiking-page .hunting-oorl-card.is-collapsed .hunting-oorl-actions .button:first-child,.hunting-page .hunting-oorl-card.is-collapsed .hunting-oorl-actions .button:first-child{position:static;margin-top:0}.hiking-page .module-lock-container--units .dashboard-section-actions,.hunting-page .module-lock-container--units .dashboard-section-actions{justify-content:flex-end}.hiking-page .module-lock-container--units .weather-card-header,.hunting-page .module-lock-container--units .weather-card-header{position:relative;min-height:64px}.hiking-page .module-lock-container--units .weather-card-header>div:first-child,.hunting-page .module-lock-container--units .weather-card-header>div:first-child{padding-right:88px}.hiking-page .module-lock-container--units .dashboard-section-actions,.hunting-page .module-lock-container--units .dashboard-section-actions{position:absolute;top:8px;right:8px;width:auto;margin-left:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.hiking-page .module-lock-container--units .dashboard-section-actions .button:first-child,.hunting-page .module-lock-container--units .dashboard-section-actions .button:first-child{margin-top:0;order:2}.hiking-page .module-lock-container--units .dashboard-section-actions .button:nth-child(2),.hunting-page .module-lock-container--units .dashboard-section-actions .button:nth-child(2){order:1}.hiking-page .weather-card-header>div:first-child{margin-top:-5px}.hiking-map-header,.hunting-map-header{align-items:flex-start;gap:8px;justify-content:space-between}.hiking-map-header .dashboard-section-actions,.hunting-map-header .dashboard-section-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;row-gap:6px}.hunting-map-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 12px 12px}.hunting-map-controls .button{width:100%;justify-content:center;text-align:center;padding:6px 8px;font-size:11px;min-height:28px}.hunting-map-controls .button:nth-child(2){max-width:56px;justify-self:end}.hunting-map-controls .button:nth-child(7){grid-column:1/-1}.hunting-map-controls .tracking-toggle{background:rgba(22,163,74,.9);border-color:rgba(22,163,74,.9);color:#ffffff}.hunting-map-controls .tracking-toggle.is-active{background:rgba(220,38,38,.9);border-color:rgba(220,38,38,.9)}.compass-tile{overflow:hidden}.compass-tile .weather-card-header{position:relative;align-items:flex-start;gap:8px}.compass-tile .weather-card-header>div{padding-right:110px}.compass-tile .dashboard-section-actions{position:absolute!important;top:0!important;right:-20px!important;left:auto!important;margin-left:auto!important;width:auto!important;flex-wrap:wrap;gap:6px;justify-content:flex-end!important}.compass-body{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 14px 16px;min-height:0}.compass-dial{--compass-size:min(59.5vw,400px);width:var(--compass-size);height:var(--compass-size);border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(15,23,42,.35);box-shadow:0 0 0 1px rgba(34,197,94,.25),0 0 30px rgba(34,197,94,.22);position:relative;flex-shrink:0}.compass-svg{width:100%;height:100%;display:block}.compass-ring{fill:none;stroke:rgba(34,197,94,.3);stroke-width:1}.compass-tick{stroke:rgba(34,197,94,.5);stroke-linecap:round}.compass-number{fill:rgba(34,197,94,.85);letter-spacing:-.2px}.compass-cardinal{fill:rgba(34,197,94,.95)}.compass-needle-main{stroke:#22c55e;stroke-linecap:round}.compass-needle-tail{stroke:rgba(15,23,42,.9);stroke-linecap:round}.compass-pivot{fill:#f8fafc}.compass-readout{display:grid;gap:6px;font-size:14px;color:rgba(248,250,252,.9)}.compass-readout-footer{padding:0 14px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;text-align:center}.compass-readout-footer>:nth-child(3){display:none}.compass-readout-inline{text-align:center;font-size:15px;color:rgba(248,250,252,.9);padding-top:6px}.compass-readout-main{font-weight:600}.compass-readout-sub{font-size:12px;color:rgba(248,250,252,.7)}.compass-readout-digital{font-size:12px;color:rgba(248,250,252,.8)}.compass-readout-coords{font-size:13px;color:rgba(34,197,94,.9)}.compass-readout-help{font-size:11px;color:rgba(248,250,252,.65);line-height:1.4}.compass-readout-inline:empty{display:none}@media (min-width:901px){.module-lock-container--compass{display:none}}.fishing-page .module-lock-grid{gap:16px}.fishing-page .module-lock-grid>.module-lock-container{min-height:0;height:auto!important}.fishing-page .weather-card{overflow:hidden}.module-lock-banner--rich{grid-template-columns:minmax(0,1fr);text-align:left}.module-lock-banner--rich .button,.module-lock-banner--rich .module-lock-price{justify-self:center}.hunting-hero-card h3{font-size:20px}.module-lock-sell-points{font-size:14px;margin-top:8px}.dashboard-lock-content .weather-card.theme-card:after,.embedded-app.module-locked.events-calendar-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.fishing-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.gardening-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.global-tracker-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.horse-riding-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.skiing-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.sport-fishing-page .module-lock-grid>.module-lock-container:after,.embedded-app.module-locked.surfing-page .module-lock-grid>.module-lock-container:after{width:90%;font-size:13px}.embedded-app.module-locked .module-lock-banner--rich{position:static;z-index:1}}@media (max-width:1024px){.auth-layout,.dashboard,.dashboard-hero{grid-template-columns:1fr}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-nav{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto}.calendar-layout,.dashboard-row,.regional-inputs{grid-template-columns:1fr}}@media (max-width:900px){.module-lock-container--map{--tile-height:320px}.module-lock-container--map-large{--tile-height:420px}.module-lock-container--tide{--tile-height:280px}.module-lock-container--calendar{height:auto!important;overflow:hidden}}@media (max-width:768px){.site-header{flex-direction:column;align-items:flex-start;z-index:120}.header-toolbar{width:100%}.nav-panel{width:min(380px,82vw);flex-direction:column;align-items:stretch;gap:10px;background:rgba(255,255,255,.96);border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:12px;position:absolute;top:84px;left:12px;right:auto;display:none;box-shadow:var(--shadow-soft);z-index:130;max-height:calc(100vh - 110px);overflow-y:auto}.nav-backdrop{display:none;position:fixed;inset:0;border:0;padding:0;margin:0;background:rgba(15,23,42,.28);z-index:125}.nav-backdrop.open{display:block}.nav-panel.open{display:flex}.site-nav{flex-direction:column;align-items:stretch;width:100%;gap:8px}.site-nav a{width:100%;display:block;padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.1);background:rgba(255,255,255,.92);color:var(--color-ink);font-size:14px;line-height:1.2}.site-nav a:focus-visible,.site-nav a:hover{background:#ffffff;border-color:rgba(15,23,42,.16)}.menu-button{display:inline-flex}.header-actions{width:100%;flex-direction:column;gap:8px}.mission-board .board-grid,.stat-grid,.tile-grid,.two-col,.weather-grid,.weather-grid.compact,body.landing-mode .module-grid{grid-template-columns:1fr}body.landing-mode .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.landing-mode .feature-card{min-height:160px;padding:18px}.module-lock-container--calendar{height:auto!important;overflow:hidden}.module-lock-container--tide{--tile-height:280px}.site-footer{grid-template-columns:1fr}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;row-gap:8px}}@media (min-width:769px){.tide-table-grid{grid-template-columns:minmax(0,1fr) 120px 120px}}@media (max-width:480px){.dashboard{padding:32px 4vw 64px}.weather-card{padding:18px}.tide-chart-card{padding:8px}.tide-chart-svg{height:220px}.tide-chart-label{font-size:15px}.tide-marker-label{font-size:11px;stroke-width:2.5}.tide-table-grid{grid-template-columns:minmax(0,1fr) 72px 72px;font-size:11px}.module-lock-container--calendar{height:auto!important;overflow:hidden}.module-lock-container--tide{--tile-height:280px}body.landing-mode .feature-grid{grid-template-columns:1fr}}