:root{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#101114;background:#f2f3f5;font-synthesis:none;-webkit-tap-highlight-color:transparent;--blue:#1464ed;--green:#168545;--red:#e93d35;--line:#dce0e4;--muted:#646a71;--white:#fff;--soft:#f4f6f8;--maxw:550px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-size:16px}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82acff;outline-offset:3px}svg{display:block}body{min-height:100dvh}.app-shell{min-height:100dvh;width:min(100%,var(--maxw));margin:auto;background:var(--white);padding-bottom:calc(79px + env(safe-area-inset-bottom));box-shadow:0 0 40px #0000000d}
.top-page{padding:calc(27px + env(safe-area-inset-top)) 24px 14px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.brand-title{font-weight:850;font-size:clamp(37px,10.2vw,54px);line-height:.91;letter-spacing:-.06em;margin:0}.brand-sub{font-weight:650;color:#767b80;text-transform:uppercase;font-size:11px;letter-spacing:.10em;margin-top:9px}.clock{height:68px;width:68px;flex:none;margin-top:0}.region-title{font-size:clamp(25px,6.7vw,36px);letter-spacing:-.055em;line-height:1.06;margin:35px 0 5px;font-weight:830}.meta{font-size:11px;letter-spacing:.1em;font-weight:750;color:#6e737a;text-transform:uppercase}.day-row{display:flex;gap:5px;margin:21px 0 12px;overflow-x:auto;padding:2px 0;scrollbar-width:thin}.day-chip{border:1px solid var(--line);background:#fff;color:#4f5358;padding:10px 14px;border-radius:4px;min-width:78px;font-size:13px;font-weight:750;white-space:nowrap}.day-chip.active{background:#111;color:#fff;border-color:#111}.segmented{background:#f2f3f4;border-radius:9px;padding:4px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:12px 0 10px}.segmented button{border:0;background:none;border-radius:7px;min-height:43px;font-weight:700;color:#53575e;font-size:13px}.segmented button.active{background:var(--blue);color:#fff;box-shadow:0 2px 6px #1464ed20}
.list-subhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0 13px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.text-action{border:0;background:none;color:var(--blue);font-weight:700;padding:6px 0}.spot-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto 16px;align-items:center;column-gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:15px 0;text-align:left;min-height:87px}.spot-row:active{background:#f8fafc}.row-no{font-size:13px;font-weight:650;align-self:start;margin-top:5px}.spot-name{font-size:21px;letter-spacing:-.047em;font-weight:830;line-height:1.1}.spot-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#565b62;font-size:12px;margin-top:7px}.spot-description{font-size:11.5px;color:#6f757a;margin-top:4px;line-height:1.25}.score-column{width:104px;text-align:right}.score-number{font-size:21px;font-weight:850;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.score-number.green,.large-score.green{color:var(--green)}.score-number.red,.large-score.red{color:var(--red)}.score-number.blue,.large-score.blue{color:var(--blue)}.score-number.neutral,.large-score.neutral{color:#70757c}.score-caption{font-size:11px;color:#686e76;margin-top:3px;font-weight:550}.bars{display:flex;gap:3px;align-items:center}.bars>i{display:block;height:7px;width:12px;background:#e6e8eb}.bars>i.on{background:var(--green)}.bars>i.mid{background:#7297d9}.bars>i.low{background:var(--red)}.chevron{font-size:21px;font-weight:300;color:#858a91}
.content-page{padding:calc(25px + env(safe-area-inset-top)) 24px 20px}.back-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.back,.favourite{border:0;background:none;padding:8px 8px 8px 0;font-size:25px;line-height:1;color:#16181a}.favourite{font-size:27px;color:#9a9fa5;padding:5px}.favourite.saved{color:var(--red)}.detail-title{font-weight:850;font-size:clamp(39px,11vw,58px);letter-spacing:-.065em;line-height:.98;margin:4px 0 9px}.date-text{font-size:13px;color:#666a71;font-weight:600}.hero-section{padding:22px 0 20px;border-bottom:1px solid var(--line)}.hero-line{display:flex;justify-content:space-between;gap:10px;align-items:center}.hero-verdict{font-size:22px;letter-spacing:-.045em;font-weight:850}.hero-score{font-size:32px;letter-spacing:-.05em;font-weight:830;white-space:nowrap}.hero-score small{font-size:16px}.best-window{margin-top:9px;font-size:20px;letter-spacing:-.025em;font-weight:760}.under-score{font-size:12px;color:#72777d;margin-top:4px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:17px 0}.stat{padding:14px 0;border-bottom:1px solid var(--line)}.stat:nth-child(even){padding-left:17px;border-left:1px solid var(--line)}.stat-label{color:#626870;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.stat-value{font-size:27px;font-weight:830;letter-spacing:-.045em;margin-top:5px}.stat-sub{color:#626870;font-size:12px;margin-top:3px}.mini-title{font-weight:820;font-size:15px;letter-spacing:-.025em;margin-bottom:11px}.forecast-panel{padding:4px 0 20px}.hourly-scroll{overflow-x:auto;padding-bottom:7px;scrollbar-width:thin}.hourly{display:flex;gap:4px;min-width:max-content}.hour-col{width:52px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 0 9px;border-radius:5px;background:#f4f6f8;border:1px solid transparent}.hour-col.best{background:#eff8f2;border:1px solid #d5ebdd}.hour-col.selected{outline:2px solid var(--blue);outline-offset:-2px}.hour-time{font-size:11px;font-weight:750;color:#666b71}.hour-barwrap{height:45px;display:flex;align-items:end}.hour-bar{width:21px;border-radius:2px 2px 0 0;background:var(--green);height:12px;min-height:5px}.hour-value{font-size:12px;font-weight:800}.hour-arrow{font-size:12px;color:#6c737d}.hour-meta{font-size:10px;color:#717780}.hint{font-size:11px;color:#70757a;line-height:1.45;margin:9px 0}.time-note{background:#f5f7f9;border-left:3px solid var(--blue);padding:12px 14px;margin:7px 0 13px;font-size:13px;line-height:1.45}.advice{border:1px solid #dde7f6;background:#f2f6fc;border-radius:7px;padding:15px;margin:17px 0}.advice-label{font-size:10px;font-weight:800;color:#1765cd;letter-spacing:.1em;margin-bottom:6px}.advice-text{font-size:16px;line-height:1.42;letter-spacing:-.015em;font-weight:560}.settings-block{border-top:1px solid var(--line);padding:20px 0}.settings-title{font-size:18px;font-weight:800;margin-bottom:7px;letter-spacing:-.03em}.settings-help{font-size:12px;color:#6a7078;line-height:1.4;margin:0 0 15px}.range-head{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:750}.range-value{color:var(--blue);font-size:19px}.fitness-range{width:100%;accent-color:var(--blue);margin:18px 0 10px;height:24px}.range-ends{display:flex;justify-content:space-between;font-size:11px;color:#7a8088}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field label{display:block;font-size:11px;letter-spacing:.055em;text-transform:uppercase;font-weight:700;color:#6b7075;margin:0 0 7px}.field select,.field input[type=number]{width:100%;height:44px;border:1px solid #d1d6dc;background:#fff;border-radius:6px;padding:0 10px;font-size:15px;color:#151515}.section-title{font-size:35px;font-weight:850;letter-spacing:-.055em;line-height:1.05;margin:8px 0 9px}.section-note{font-size:15px;line-height:1.45;color:#666a71;margin:0 0 20px}.prep-step{display:grid;grid-template-columns:55px 90px 1fr;gap:10px;align-items:center;border-top:1px solid var(--line);min-height:150px;padding:18px 0}.prep-no{font-size:45px;font-weight:850;color:var(--blue);letter-spacing:-.07em}.prep-icon{height:74px;width:85px}.prep-name{font-size:20px;font-weight:850;letter-spacing:-.045em;line-height:1.1}.prep-reps{font-size:14px;margin-top:8px;font-weight:760}.prep-sub{font-size:12px;color:#70757c;line-height:1.4;margin-top:6px}.prep-footer{border-top:1px solid var(--line);padding-top:17px;font-size:11px;font-weight:750;letter-spacing:.12em}.empty{padding:30px 2px;font-size:14px;color:#676d74;line-height:1.5}.source-note{border-top:1px solid var(--line);margin-top:12px;padding:15px 0 0;color:#7b8086;font-size:11px;line-height:1.55}.source-note a{color:#2367c5}.error-banner{background:#fff0ef;color:#a92c25;border:1px solid #f4c3bd;padding:12px 13px;margin:10px 0;border-radius:5px;font-size:12px;line-height:1.45}.warning{border-left:3px solid var(--red);background:#fff5f4;padding:12px 14px;font-size:13px;line-height:1.4;margin:15px 0}.origin-row{font-size:12px;color:#697078;margin:8px 0}.primary{background:var(--blue);color:#fff;border:0;border-radius:7px;min-height:45px;padding:0 17px;font-weight:750}.secondary{background:#f1f3f6;color:#1a1a1b;border:1px solid #e0e3e7;border-radius:7px;min-height:42px;padding:0 14px;font-weight:700}.button-row{display:flex;gap:8px;flex-wrap:wrap}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,var(--maxw));background:#fff;border-top:1px solid var(--line);height:calc(68px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);z-index:20}.nav-btn{border:0;background:#fff;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;font-size:11px;color:#666c73;min-height:64px}.nav-btn.active{color:var(--blue);font-weight:750}.nav-icon{width:22px;height:22px}.loading-intro{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.loading-intro strong{font-size:34px;letter-spacing:-.06em}.loading-intro span{font-size:13px;color:#737980}.refresh{display:inline-flex;align-items:center;gap:5px}.footer-spacer{height:10px}.tooltip{color:#81868c;font-size:12px}
@media(min-width:650px){.app-shell{margin:20px auto;min-height:calc(100dvh - 40px);border-radius:20px;overflow:hidden}.bottom-nav{bottom:0;box-shadow:0 -4px 20px #00000008}.top-page{padding-top:32px}.content-page{padding-top:30px}}
@media(max-width:355px){.top-page,.content-page{padding-left:17px;padding-right:17px}.spot-name{font-size:19px}.score-column{width:88px}.prep-step{grid-template-columns:46px 70px 1fr;gap:8px}.prep-no{font-size:36px}.prep-icon{width:67px}.prep-name{font-size:17px}.brand-title{font-size:36px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
