:root{color-scheme:dark;--bg:#333;--panel:#fff;--line:#555b60;--muted:#ddd;--gold:#fedf0d;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--bs-body-font-size:1.2rem;--bs-body-bg:var(--bg);--bs-body-color:#f4f4f1;--bs-border-color:var(--line)}
/* App typography and surface colors do not depend on framework theme tokens. */
body{background:var(--bg);color:#f4f4f1;font-size:1.2rem;line-height:1.5}.app-navbar{background:transparent}.app-navbar .nav-link{border-radius:0}.app-navbar .navbar-toggler{appearance:none;background:transparent;border:1px solid #626a70;border-radius:6px;color:inherit}
body{font-family:var(--bs-font-sans-serif);min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.skip-link{position:absolute;left:20px;top:-80px;z-index:1100;padding:12px;color:#333;background:var(--panel)}.skip-link:focus{top:10px}
header{border-bottom:1px solid var(--line);background:#343a40;box-shadow:0 4px 18px #0004;position:relative}body>header{z-index:1030}.navbar{padding:8px max(2vw,16px);min-height:64px}.brand{display:flex;align-items:center;gap:12px;font:700 32px var(--bs-font-sans-serif);color:#efefef;text-shadow:2px 3px 5px #0008}.brand:hover{text-decoration:none}.navbar-nav{gap:20px}.navbar .nav-link{font-size:1.3125rem;color:#f4f4f1;padding:12px}.navbar .nav-link:hover{color:var(--gold)}.navbar .menu{min-width:260px;max-width:100%;font-size:1.6rem;background:#343a40;border-color:var(--line);padding:10px;box-shadow:0 16px 48px #0008}.navbar .menu-item{padding:10px 14px;border-radius:4px;white-space:normal;overflow-wrap:anywhere}.navbar .menu-item:hover{background:#383d41}.menu-email{color:#b8bec3;max-width:270px;white-space:normal;overflow-wrap:anywhere;font-size:1rem}.navbar-toggler{padding:12px;border-color:#626a70}.hamburger{display:block;width:24px;height:18px;border-top:2px solid #eee;border-bottom:2px solid #eee;position:relative}.hamburger::after{content:'';position:absolute;top:6px;left:0;width:24px;border-top:2px solid #eee}main{flex:1;width:100%}footer{border-top:1px solid var(--line);color:#efefef;font-size:1.2rem;box-shadow:0 -4px 18px #0002}.footer-links{padding:18px 24px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 24px;text-align:center;text-shadow:1px 2px 3px #0008}
.eyebrow{color:var(--gold);font-size:.875rem;font-weight:bold;letter-spacing:2.2px}.home-main{display:grid;place-items:center}.hero{width:100%;display:grid;place-items:center;padding:30px;overflow:clip}.hero-wheel{display:block;width:min(80vw,max(220px,calc(100svh - 220px)),1200px);max-width:100%;height:auto;filter:drop-shadow(0 8px 16px #0005)}.button{--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:14px 22px;font-size:1.25rem;font-weight:500;max-width:100%;white-space:normal;min-height:48px}.secondary{font-size:1.1rem;text-decoration:underline;text-underline-offset:4px}.login-layout{max-width:1000px;padding:46px 24px 70px;margin:0 auto}.login-brand{text-align:center;padding-right:48px}.login-brand img{max-width:75%;height:auto}.login-brand h1{font:700 44px var(--bs-font-sans-serif);margin:28px 0 8px}p{color:var(--muted);line-height:1.65}.panel{--muted:#60666b;background:var(--panel);color:#333;border:1px solid #ddd;border-radius:10px;padding:32px}.panel h2{font-size:2rem;font-weight:500;margin:12px 0 16px}.login-panel p{font-size:1.2rem;margin-bottom:26px}.form-label{display:block;font-size:1.1rem;margin:20px 0 9px;color:#444}.form-control{min-height:52px;font-size:1.2rem;color:#333;background:#fff;border-color:#b8bdc2}.form-control:focus{color:#333;background:#fff;border-color:#0d6efd;box-shadow:0 0 0 3px #0d6efd26}.form-control::placeholder{color:#6c757d}.panel .eyebrow{color:#8c5b00}.panel a:not(.button){color:#075a9e}.panel a:focus-visible,.panel button:focus-visible,.panel input:focus-visible{outline-color:#0d6efd}.checkbox{display:flex;gap:10px;align-items:center;margin:20px 0 25px;color:var(--muted);font-size:1rem}.checkbox input{width:20px;height:20px;accent-color:#0d6efd;flex-shrink:0}.wide{width:100%}.subtle{font-size:1rem!important;color:#60666b!important;margin-top:24px;margin-bottom:0!important}.notice{color:#664d03;background:#fff3cd;border:1px solid #e6cc80;border-radius:5px;padding:16px;font-size:1.1rem;line-height:1.6;margin:22px 0}.error{background:#3b2224;border-color:#77373b;color:#f5cdce}.profile{max-width:1100px;padding:56px 24px 70px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:20px}.profile h1{font:700 46px var(--bs-font-sans-serif);margin:10px 0}.page-heading p{margin:0}.badge{padding:8px 12px;background:#393731;color:#e4d8b4;font-size:1rem;line-height:1.5;white-space:normal;text-align:left}.badge.active{background:#213b30;color:#a8d9bb}dl{margin:24px 0 0}dl>div{padding:17px 0;border-bottom:1px solid var(--line)}dl>div:last-child{border-bottom:0}dt{font-size:1.1rem;color:var(--muted);margin-bottom:8px}dd{margin:0;font-size:1.3rem;line-height:1.5;overflow-wrap:anywhere}.profile-actions{display:flex;align-items:center;gap:26px;margin-top:28px;flex-wrap:wrap}
@media(max-width:767px){.navbar{padding:16px 18px;min-height:76px}.navbar-nav{gap:0;padding-top:16px}.navbar .menu{box-shadow:none}.navbar .nav-link{padding:12px 0}.brand{font-size:clamp(20px,6vw,24px);gap:8px}.brand img{width:38px;height:38px}.login-layout{padding:8px 20px 32px}.login-brand{padding-right:12px}.login-brand img{width:95px}.login-brand h1{font-size:34px;margin:12px 0}.login-brand p{display:none}.panel{padding:24px}.profile{padding:32px 20px 45px}.profile h1{font-size:38px}footer{font-size:1.1rem}.footer-links{padding:16px 20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.account-form{max-width:680px;margin:48px auto;padding:0 20px}.account-form h1{font:700 clamp(30px,10vw,38px) var(--bs-font-sans-serif);margin:16px 0}.account-links{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:26px;font-size:1.1rem}.account-links a{text-decoration:underline;text-underline-offset:3px}.code-input{font-family:monospace;letter-spacing:1px}
.notice.success{background:#213b30;border-color:#38694e;color:#c3e8d2}

footer nav{display:flex;justify-content:center;gap:12px 24px;flex-wrap:wrap}footer a{text-decoration:underline;text-underline-offset:3px}.legal-content{max-width:1000px;margin:40px auto;padding:0 24px 40px;line-height:1.75;overflow-wrap:anywhere}.legal-content h1{font-size:2.5rem;margin:32px 0 14px}.legal-content h2{font-size:2rem;margin:28px 0 12px}.legal-content h3{font-size:1.75rem;margin:24px 0 10px}.legal-content a{color:#fedf0d;text-decoration:underline}.legal-content li{margin-bottom:8px}

.brand img{flex-shrink:0;filter:drop-shadow(1px 2px 3px #0006)}
.navbar .nav-link{border-bottom:3px solid transparent;text-decoration:none}
.navbar .nav-link.active{color:#fff;border-bottom-color:#dc3545}
.star-rating{display:inline-flex;align-items:center;gap:1px;white-space:nowrap;vertical-align:middle;font:normal 1.5rem/1 Arial,sans-serif}.star-rating>span{display:inline-block;width:1em;text-align:center}.star-rating .star-filled{color:#ffc107}.star-rating .star-empty{color:#eee}
/* 30.4px stars stay within the ticker's existing 31.7px line box. */
.recommendation-card-heading .star-rating{font-size:1.9rem;line-height:1;flex-shrink:0}
.selection-ticker-rating>.star-rating{display:flex;margin-top:6px}
.navbar .menu-item.active{background:#464b50;color:#fff;text-decoration:underline;text-decoration-color:#dc3545;text-decoration-thickness:2px;text-underline-offset:5px}
/* Bootstrap 6 menu/Collapse components retain the site's centered desktop nav. */
.app-navbar{flex-wrap:wrap}.app-navbar .nav-item{position:relative}.app-navbar .menu{inset-block-start:100%;inset-inline-end:0;list-style:none;margin:0;padding:8px 0}.app-navbar .menu-item{width:100%;text-align:start}.app-navbar .menu-header{display:block;padding:8px 16px}.app-navbar .menu-toggle::after{content:"";display:inline-block;margin-inline-start:7px;border:4px solid transparent;border-bottom:0;border-top-color:currentColor;vertical-align:middle}.app-navbar .navbar-nav{list-style:none;margin:0}.app-navbar .navbar-collapse{flex-basis:100%}.button.btn-solid{background:#0d6efd;border:1px solid #0d6efd;color:#fff}.button.btn-solid:hover{background:#0b5ed7;border-color:#0a58ca;color:#fff}
@media(min-width:1200px){.app-navbar .navbar-toggler{display:none}.app-navbar .navbar-collapse{display:flex!important;block-size:auto!important;inline-size:auto;overflow:visible;flex-basis:auto}.app-navbar .navbar-nav{display:flex;flex-direction:row}.app-navbar .menu{position:absolute}}
@media(max-width:1199px){.app-navbar .navbar-nav{display:flex;flex-direction:column;align-items:stretch}.app-navbar .nav-item{display:block;width:100%}.app-navbar .menu{position:static!important;inset:auto!important;transform:none!important;max-width:100%;width:100%;min-width:0}.app-navbar .nav-link{width:100%;justify-content:flex-start}}
/* Stretch desktop menu links to the shorter navbar's bottom edge. */
@media(min-width:1200px){.navbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding-block:0}.navbar-brand{justify-self:start;margin-right:0}.navbar-collapse{grid-column:2;justify-content:center;align-self:stretch;align-items:stretch}.navbar .navbar-nav{align-items:stretch!important}.navbar .nav-item{display:flex}.navbar .nav-link{display:flex;align-items:center}}
@media(min-width:768px) and (max-width:1199px){.navbar-nav{gap:0;padding-top:16px}.navbar .menu{box-shadow:none}.navbar .nav-link{padding:12px}.navbar-collapse{flex-basis:100%}}
@media(max-width:600px){.legal-content{padding:0 20px 30px;margin-top:24px}}

/* A lightweight water surface, behind the footer's readable links. */
footer{position:relative;isolation:isolate;overflow:hidden;border-top-color:#4d9caf66;background:linear-gradient(180deg,#164456 0%,#0c2c3e 48%,#071c2b 100%);box-shadow:0 -4px 18px #0003,inset 0 1px #93dbe21a}
.footer-water{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.water-swell-back{fill:#34829a;opacity:.30}
.water-swell-front{fill:#061c30;opacity:.48}
.water-ripples{fill:none;stroke:#8dd5e4;stroke-width:1.2}
.water-approach:nth-of-type(odd){stroke:#b2e4ff}
.water-approach:nth-of-type(even){stroke:#68aee8}
.water-bands{stroke:none}
.water-bands path:nth-child(odd){fill:#428cc0;fill-opacity:.22}
.water-bands path:nth-child(even){fill:#12365d;fill-opacity:.30}
footer .footer-links{position:relative;z-index:1;color:#f4f9fc;text-shadow:0 2px 4px #000,0 0 12px #041521}
footer a:hover{color:#bceaf4}
/* site.js moves these layers with the wheel; static until startup and with reduced motion. */
.how-rules{padding-left:1.4em;margin:0}.how-rules li{padding-left:.2em;margin:.8em 0}.how-rules strong{color:#fff}

.how-it-works{max-width:1100px;margin:30px auto 60px;padding:0 22px;line-height:1.65}.how-it-works h1{font-size:2.2rem;margin:12px 0}.how-intro{font-size:1.15rem;max-width:850px;color:#d6e4ec}.how-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0}.how-grid section,.how-guide{padding:24px;background:#202f3a;border:1px solid #506b80;border-radius:12px;box-shadow:0 5px 18px #0003}.how-number{color:#ffd85b;font-weight:700;letter-spacing:.12em}.how-it-works h2{font-size:1.3rem;margin:10px 0 12px}.how-guide{margin:22px 0}.how-it-works p:last-child{margin-bottom:0}.how-it-works a{color:#a8e2ff}@media(max-width:700px){.how-grid{grid-template-columns:1fr}.how-it-works{padding:0 14px}.how-grid section,.how-guide{padding:20px}}

.decision-date-controls{display:flex;align-items:flex-end;gap:.65rem;flex-wrap:wrap}.date-arrows{display:flex;gap:.35rem;align-items:center}.date-arrows button{font:inherit;font-size:1.25rem;min-width:44px;min-height:44px;border:1px solid #7b91a6;border-radius:6px;background:#304657;color:#fff}.date-arrows button:disabled{opacity:.4;cursor:default}.date-arrows button:focus-visible{outline:3px solid #ffe000;outline-offset:2px}

.service-availability{padding:.8rem 1rem;margin:0 0 1rem;border:1px solid #b78936;border-radius:.65rem;background:#463b25;color:#ffe2a3}.service-availability[data-state=recovered]{background:#1e4336;border-color:#58c497;color:#b2ffdb}.service-availability[hidden]{display:none}
#push-help{max-width:38rem;background:#20323e;color:#edf6fc;border:1px solid #607c8b;border-radius:16px;padding:24px;box-shadow:0 16px 60px #0009;line-height:1.65}#push-help::backdrop{background:#0009}#push-help button{margin-top:18px}.live-sound-controls{flex-wrap:wrap}#notification-test{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:20px 0}#notification-test label{display:flex;flex-direction:column;gap:6px}#notification-test select,#notification-test input{max-width:min(90vw,40rem)}

.notification-settings{max-width:56rem;margin:0 auto;padding:1.5rem}.notification-settings .panel{padding:1.5rem;margin:1.25rem 0;border:1px solid #607c8b;border-radius:14px;background:#20323e;box-shadow:0 8px 24px #0003}.notification-settings .live-sound-controls{display:flex;gap:.75rem;flex-wrap:wrap}.notification-settings button{min-height:44px}.notification-settings button[aria-pressed=true]{border-color:#72e4d4;background:#244d50}.notification-settings p{line-height:1.6}

.notification-test-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.25rem;margin:1.5rem 0}.notification-test-grid .panel{padding:1.25rem;border:1px solid #607c8b;border-radius:14px;background:#20323e;box-shadow:0 8px 24px #0003}.notification-test-grid label{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.notification-test-grid input,.notification-test-grid select{width:100%;min-width:0}.notification-test-grid .live-sound-controls{display:flex;gap:.75rem;flex-wrap:wrap}#notification-test-result{color:#ffe080}

/* Notification cards use the dark theme, not the light account-form panel palette. */
.notification-settings,#notification-admin{color:#edf6fc;--muted:#c9dbe6}
.notification-settings .panel,#notification-admin .panel{color:#edf6fc;--muted:#c9dbe6;color-scheme:dark}
.notification-settings :is(h1,h2,h3,label),#notification-admin :is(h1,h2,h3,label){color:#f4f9fc}
.notification-settings p,#notification-admin p{color:#c9dbe6}
.notification-settings :is(input,select),#notification-admin :is(input,select){font:inherit;color:#f4f9fc;background:#142733;border:1px solid #839bab;border-radius:7px;padding:10px 12px;min-height:44px;color-scheme:dark}
.notification-settings option,#notification-admin option{color:#f4f9fc;background:#142733}
.notification-settings input::placeholder,#notification-admin input::placeholder{color:#b9ccd8;opacity:1}
.notification-settings button,#notification-admin button{font:inherit;color:#fff;background:#334f63;border:1px solid #8aa8bb;border-radius:7px;padding:10px 14px;min-height:44px}
.notification-settings button:hover,#notification-admin button:hover{background:#42677e}
.notification-settings button:disabled,#notification-admin button:disabled{opacity:1;color:#b8c9d4;background:#293c49;border-color:#607887;cursor:not-allowed}
.notification-settings button[aria-pressed=true]{color:#d3fff0;background:#24544b;border-color:#79e7ba}
.notification-settings :is(button,input,select):focus-visible,#notification-admin :is(button,input,select):focus-visible{outline:3px solid #ffe080;outline-offset:3px}
.notification-settings .panel a,#notification-admin .panel a{color:#a7ddff}
#notification-admin #notification-test-result{color:#ffe080}
#notification-admin .admin-table{color:#e9f3fa;background:#20323e}
#notification-admin .admin-table th{color:#fff;background:#162733}
#notification-admin .admin-table td{color:#e9f3fa;overflow-wrap:anywhere}
#notification-admin .admin-table-wrap{margin-bottom:1.5rem}

/* Profile content warning: legacy red glow, no JavaScript or per-request work. */
.site-disclaimer{position:relative;z-index:1;margin:28px 0 0;padding:10px 20px;border:1px solid #f44343;border-radius:6px;background:#462a2a;color:#ff7777;text-align:center;font-size:1.05rem;line-height:1.6;font-weight:600;letter-spacing:.03em;text-shadow:0 0 8px #ff000077;animation:site-disclaimer-glow 2.4s ease-in-out infinite}
.site-disclaimer .disclaimer-label{font-size:1.15rem;font-weight:800;letter-spacing:.08em;margin-right:6px}
.site-disclaimer .disclaimer-emphasis{font-weight:900;letter-spacing:.05em;text-decoration:underline;text-underline-offset:3px}
.site-disclaimer a,.site-disclaimer a:hover{color:inherit}
@keyframes site-disclaimer-glow{0%,100%{color:#ffb0a9;border-color:#dc4747;background:#3d2929;text-shadow:0 0 8px #ff000066;box-shadow:0 0 5px #ff000022}50%{color:#ff6b6b;border-color:#ff5555;background:#542929;text-shadow:0 0 12px #ff000099;box-shadow:0 0 14px #ff000044,inset 0 0 12px #ff000022}}
@media(max-width:600px){.site-disclaimer{margin:24px 0 0;padding:10px 12px;font-size:.95rem}.site-disclaimer .disclaimer-label{font-size:1.05rem}}
@media(prefers-reduced-motion:reduce){.site-disclaimer{animation:none}}
.how-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0}.how-facts>div{padding:20px;border-top:3px solid #d70000;border-radius:10px;background:#252f36;box-shadow:0 4px 16px #0003}.how-facts strong,.how-facts span{display:block}.how-facts strong{font-size:1.35rem;color:#ffdf64;margin-bottom:6px}.how-facts span,.how-purpose,.how-caption{color:#d0dce3}.how-it-works .how-section-title{font-size:1.6rem;margin-top:36px}.how-grid h3{font-size:1.3rem;margin:10px 0 12px}.how-start-list,.how-rules{padding-left:1.4rem}.how-start-list li,.how-rules li{padding-left:.2rem;margin-bottom:.8rem}.how-definitions{margin:0}.how-definitions>div{display:grid;grid-template-columns:minmax(145px,1fr) 3fr;gap:20px;padding:15px 0;border-bottom:1px solid #526572}.how-definitions>div:first-child{padding-top:0}.how-definitions>div:last-child{border-bottom:0}.how-definitions dt{color:#ffdf64;font-weight:700}.how-definitions dd{margin:0}.how-details{margin-top:18px;border-top:1px solid #526572;padding-top:16px}.how-details summary{cursor:pointer;font-weight:700;color:#e6f1f7;padding:6px 0}.how-details[open] summary{margin-bottom:12px}.how-details summary:focus-visible{outline:2px solid #ffdf64;outline-offset:4px}.how-it-works a{text-underline-offset:.18em}@media(max-width:700px){.how-facts{grid-template-columns:1fr;gap:10px}.how-facts>div{padding:16px 20px}.how-definitions>div{grid-template-columns:1fr;gap:6px}.how-it-works .how-section-title{font-size:1.4rem}}
