:root{--bg:#070a10;--panel:#10161f;--panel-2:#19212e;--ink:#e9edf3;--ink-soft:#8a97a8;--line:#26303f;--line-strong:#3a4658;--amber:#f0972f;--amber-deep:#d9893a;--good:#3fae72;--warn:#e05c4d;--grid:#1e2735;--mono:"IBM Plex Mono",ui-monospace,monospace;--disp:"Space Grotesk",system-ui,sans-serif}body[data-theme=light]{--bg:#0f1622;--panel:#f7f5f0;--panel-2:#fff;--ink:#14223b;--ink-soft:#46566f;--line:#d9d4c8;--line-strong:#bcb6a6;--amber:#e8902e;--amber-deep:#c9701a;--good:#2f8f5b;--warn:#c0392b;--grid:#eeece6}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);margin:0}body{font-family:var(--disp);color:var(--ink);background:var(--panel);max-width:480px;min-height:100vh;padding:0 0 env(safe-area-inset-bottom);margin:0 auto}.sky{color:#fff;padding:calc(10px + env(safe-area-inset-top)) 16px 13px;transition:background .8s;position:relative;overflow:hidden}body[data-tab=compass] .nowrow,body[data-tab=compass] .sun-orb{display:none}body[data-tab=compass] .sky{padding-bottom:8px}.searchrow{z-index:3;align-items:center;gap:6px;display:flex;position:relative}.searchrow input{min-width:0;font-family:var(--disp);color:#14223b;background:#ffffffeb;border:none;border-radius:10px;outline:none;flex:1;padding:9px 12px;font-size:14px}.searchrow input::placeholder{color:#7a869a}.gps{all:unset;cursor:pointer;color:#14223b;background:#ffffffeb;border-radius:10px;padding:9px 11px;font-size:16px;line-height:1}.theme{all:unset;cursor:pointer;color:#14223b;background:#ffffffeb;border-radius:10px;padding:9px 11px;font-size:15px;line-height:1}.fmt{all:unset;cursor:pointer;font-size:12px;font-weight:600;font-family:var(--mono);color:#14223b;background:#ffffffeb;border-radius:10px;padding:9px;line-height:1}.clocklbl{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.82;margin-top:4px;font-size:10px}.wx-now{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;align-items:center;gap:14px;padding:14px;display:flex}.wx-now .ico{flex:none;font-size:38px;line-height:1}.wx-now .temp{font-family:var(--mono);font-size:34px;font-weight:500;line-height:1}.wx-now .desc{color:var(--ink-soft);margin-top:3px;font-size:13px}.wx-now .feels{font-family:var(--mono);color:var(--ink-soft);margin-top:2px;font-size:11px}.wx-now .rh{text-align:right;font-family:var(--mono);color:var(--ink-soft);margin-left:auto;font-size:12px}.wx-now .rh b{color:var(--ink);font-size:18px;font-weight:500;display:block}.wind-card .windrow{align-items:center;gap:14px;margin-top:4px;display:flex}.wind-arrow{flex:none;width:46px;height:46px}.wind-arrow svg{width:100%;height:100%}.wind-fig{font-family:var(--mono)}.wind-fig .spd{font-size:24px;font-weight:500;line-height:1}.wind-fig .dir{color:var(--ink-soft);margin-top:4px;font-size:12px}.wind-fig .gust{color:var(--ink-soft);margin-top:2px;font-size:11px}.hourly{-webkit-overflow-scrolling:touch;gap:8px;padding:2px 0 4px;display:flex;overflow-x:auto}.hourly .h{text-align:center;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex:none;width:58px;padding:9px 4px}.hourly .h .t{font-family:var(--mono);color:var(--ink-soft);font-size:10px}.hourly .h .i{margin:3px 0;font-size:18px}.hourly .h .d{font-family:var(--mono);font-size:13px;font-weight:500}.hourly .h .w{font-family:var(--mono);color:var(--ink-soft);margin-top:2px;font-size:9px}.wx-msg{font-family:var(--mono);color:var(--ink-soft);padding:8px 2px;font-size:12px}.results{background:var(--panel-2);border:1px solid var(--line);z-index:9;border-radius:12px;position:absolute;top:46px;left:0;right:0;overflow:hidden;box-shadow:0 10px 30px #00000073}.results div{color:var(--ink);border-top:1px solid var(--line);cursor:pointer;padding:11px 13px;font-size:14px}.results div:first-child{border-top:none}.results div small{color:var(--ink-soft);font-family:var(--mono);font-size:11px}.results .msg{color:var(--ink-soft);cursor:default;font-style:italic}.loc{align-items:baseline;gap:8px;margin-top:9px;display:flex}.loc .name{font-size:17px;font-weight:600}.loc .tz{font-family:var(--mono);opacity:.85;margin-left:auto;font-size:11px}.date{opacity:.85;font-size:12.5px;font-family:var(--mono);margin-top:3px}.nowrow{align-items:flex-end;gap:14px;margin-top:10px;display:flex}.nowrow .big{font-size:30px;font-weight:600;line-height:.95;font-family:var(--mono)}.nowrow .state{opacity:.92;padding-bottom:5px;font-size:13px}.sun-orb{background:radial-gradient(circle at 38% 35%,#fff6df,var(--amber) 62%,var(--amber-deep));pointer-events:none;border-radius:50%;width:46px;height:46px;transition:opacity .6s,transform .6s;position:absolute;top:62%;right:18px;box-shadow:0 0 30px 7px #e8902e80}.tabs{background:var(--panel-2);border-bottom:1px solid var(--line);z-index:5;display:flex;position:sticky;top:0}.tabs button{all:unset;text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid #0000;flex:1;padding:13px 4px;font-size:12px;font-weight:600}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--amber)}.view{padding:18px 16px 32px}#view-compass{padding-top:10px}.hide{display:none!important}.grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.card{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:13px 14px}.card .k{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:6px;font-size:10.5px;font-weight:600;display:flex}.card .v{font-family:var(--mono);margin-top:5px;font-size:25px;font-weight:500;line-height:1}.card .sub{font-family:var(--mono);color:var(--ink-soft);margin-top:5px;font-size:11px}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.full{grid-column:1/-1}.sectlabel{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:8px;margin:22px 2px 9px;font-size:11px;font-weight:600;display:flex}.sectlabel:after{content:"";background:var(--line);flex:1;height:1px}.twi{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;overflow:hidden}.twi .row{border-top:1px solid var(--line);font-family:var(--mono);align-items:center;gap:12px;padding:11px 14px;font-size:13px;display:flex}.twi .row:first-child{border-top:none}.twi .row .name{font-family:var(--disp);flex:1;font-size:13px;font-weight:500}.twi .row .name small{color:var(--ink-soft);font-size:10px;font-weight:400;font-family:var(--mono);display:block}.twi .row .am,.twi .row .pm{text-align:right;width:62px}.twi .row .am{color:var(--ink-soft)}.twi .row .rng{font-family:var(--mono);text-align:right;white-space:nowrap;font-size:12.5px}.swatch{border-radius:3px;flex:none;width:12px;height:24px}.compass-wrap{flex-direction:column;align-items:center;display:flex}.compass-row{justify-content:center;align-items:center;gap:2px;width:100%;display:flex}.altbar{flex:none;width:42px;height:auto}.sungauge{flex:none;width:54px;height:auto}#compass{width:min(75vw,320px);max-width:330px;height:auto;overflow:visible}.cbtn{all:unset;cursor:pointer;background:var(--amber);color:#fff;font-family:var(--mono);border-radius:24px;margin-top:10px;padding:10px 18px;font-size:13px;font-weight:600}.cbtn:active{transform:translateY(1px)}.cnote{color:var(--ink-soft);text-align:center;max-width:320px;margin-top:10px;font-size:12px;line-height:1.45}.clegend{font-family:var(--mono);gap:18px;margin-top:12px;font-size:12px;display:flex}.clegend span{align-items:center;gap:6px;display:flex}.cclimate{font-family:var(--mono);color:var(--ink);text-align:center;margin:0 0 8px;font-size:13px;font-weight:500}.bodytoggle{border:1px solid var(--line);border-radius:20px;justify-content:center;width:max-content;margin:0 auto 8px;display:flex;overflow:hidden}.bodytoggle button{all:unset;cursor:pointer;font-family:var(--mono);color:var(--ink-soft);padding:6px 18px;font-size:13px}.bodytoggle button.active{background:var(--amber);color:#fff;font-weight:600}.csun{font-family:var(--mono);color:var(--ink-soft);text-align:center;max-width:300px;min-height:1.3em;margin:12px auto 0;font-size:13.5px;line-height:1.4}.csun.on{color:var(--ink)}.csun b{color:var(--amber);font-weight:700}.sky-readout{font-family:var(--mono);color:var(--ink-soft);text-align:center;margin:2px 0 12px;font-size:14px;line-height:1.5}.sky-readout b{color:var(--ink);font-size:17px}.sky-readout .rd-dir{opacity:.7}.sky-readout .rd-2nd{opacity:.6;font-size:12px;display:inline-block}#skyView{background:var(--panel-2);border:1px solid var(--line);touch-action:none;cursor:ew-resize;border-radius:14px;width:100%;height:auto;display:block}.sky-actions{justify-content:center;margin-top:12px;display:flex}.cbtn.on{background:var(--amber-deep);opacity:.92}.cnote.lock-tip{color:var(--ink);background:var(--panel-2);border:1px solid var(--amber);border-radius:12px;margin-left:auto;margin-right:auto;padding:10px 12px}.graphcard{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:14px 10px 8px}.graphcard h3{margin:2px 6px;font-size:14px;font-weight:600}.graphcard p{color:var(--ink-soft);font-size:11.5px;font-family:var(--mono);margin:0 6px 10px}svg{width:100%;height:auto;display:block}text{font-family:var(--mono)}.alert-card{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;margin-bottom:11px;padding:15px}.alert-card .top{align-items:center;gap:11px;display:flex}.alert-card .top .ti{font-size:15px;font-weight:600}.alert-card .top .ts{font-family:var(--mono);color:var(--ink-soft);margin-top:2px;font-size:12px}.switch{background:var(--line-strong);cursor:pointer;border-radius:20px;flex:none;width:46px;height:27px;margin-left:auto;transition:background .2s;position:relative}.switch.on{background:var(--good)}.switch:after{content:"";background:#fff;border-radius:50%;width:21px;height:21px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on:after{left:22px}.offset{font-family:var(--mono);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.offset input{width:62px;font-family:var(--mono);border:1px solid var(--line-strong);text-align:center;background:var(--panel);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:14px}.offset select{font-family:var(--mono);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:13px}.banner{border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:12.5px;line-height:1.55}.banner.warn{color:#8a4b18;background:#fdf3ec;border:1px solid #f0d2b8}.perm-btn{all:unset;cursor:pointer;background:var(--amber);color:#fff;font-family:var(--mono);border-radius:20px;margin-top:8px;padding:8px 14px;font-size:12px;font-weight:600;display:inline-block}.loc-btn{all:unset;cursor:pointer;background:var(--panel);border:1px solid var(--line-strong);color:var(--ink);font-family:var(--mono);border-radius:18px;margin-top:10px;padding:7px 13px;font-size:12px;display:inline-block}.loc-btn:hover{border-color:var(--ink-soft)}.places{z-index:2;flex-wrap:wrap;gap:7px;margin-top:12px;display:flex;position:relative}.chip{all:unset;cursor:pointer;color:#fff;background:#ffffff29;border-radius:16px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:500;line-height:1;display:inline-flex}.chip.active{background:var(--amber);color:#fff}.chip.add{font-family:var(--mono);background:#ffffff1a;border:1px dashed #ffffff80;font-size:12px}.chip .x{font-family:var(--mono);opacity:.75;margin-left:1px;font-size:14px;font-weight:600}.chip .x:hover{opacity:1}.datebar{z-index:2;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex;position:relative}.daystep{all:unset;cursor:pointer;color:#fff;background:#ffffff2e;border-radius:10px;justify-content:center;align-items:center;width:32px;height:34px;font-size:20px;line-height:1;transition:background .15s;display:flex}.daystep:hover{background:#ffffff4d}.datewrap{display:inline-flex;position:relative}.datewrap:hover .datebtn{background:#ffffff4d}.datebtn{pointer-events:none;color:#fff;height:34px;font-family:var(--mono);background:#ffffff2e;border-radius:10px;align-items:center;gap:8px;padding:0 13px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.datebtn .calico{opacity:.95;flex:none;width:16px;height:16px}.datebtn .caret{opacity:.85;font-size:10px}.datebtn.viewing{background:var(--amber);color:#fff;box-shadow:inset 0 0 0 1px #ffffff40}.daystep:active{transform:translateY(1px)}.dateover{opacity:0;cursor:pointer;appearance:none;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.todaybtn{all:unset;cursor:pointer;font-family:var(--mono);color:#fff;background:#ffffff2e;border-radius:14px;align-items:center;height:34px;padding:0 12px;font-size:11px;display:inline-flex}.todaybtn:hover{background:#ffffff4d}#install-banner{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:9000;border:1px solid var(--line);background:var(--panel-2);width:min(440px,100vw - 24px);font-family:var(--disp);border-radius:14px;align-items:center;gap:11px;padding:12px 13px;transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;transform:translate(-50%)translateY(240%);box-shadow:0 12px 34px #00000080}#install-banner.show{transform:translate(-50%)translateY(0)}#install-banner[hidden]{display:none}#install-banner .ib-icon{flex:none;font-size:22px;line-height:1}#install-banner .ib-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}#install-banner .ib-text strong{color:var(--ink);font-size:13.5px;font-weight:600}#install-banner .ib-text span{color:var(--ink-soft);font-size:11.5px;font-family:var(--mono);line-height:1.45}#install-banner #ib-action{font:600 13px var(--disp);background:var(--amber);color:#fff;cursor:pointer;border:0;border-radius:999px;flex:none;padding:8px 16px}#install-banner #ib-dismiss{cursor:pointer;color:var(--ink-soft);background:0 0;border:0;flex:none;padding:4px 6px;font-size:16px;line-height:1}.modal-overlay{z-index:10000;background:#04070cc7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-overlay[hidden]{display:none}.modal-card{background:var(--panel-2);border:1px solid var(--line);text-align:center;border-radius:18px;width:100%;max-width:360px;padding:26px 22px 18px;box-shadow:0 24px 64px #0000008c}.welcome-sun{filter:drop-shadow(0 0 14px #f0972f8c);font-size:42px;line-height:1}.modal-card h2{font-family:var(--disp);color:var(--ink);margin:12px 0 8px;font-size:22px;font-weight:700}.modal-card p{color:var(--ink-soft);margin:0 0 18px;font-size:14px;line-height:1.6}.modal-card p b{color:var(--ink);font-weight:600}.welcome-btn{all:unset;cursor:pointer;background:var(--amber);color:#fff;font-family:var(--disp);border-radius:24px;padding:11px 32px;font-size:15px;font-weight:600;display:inline-block}.welcome-by{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.03em;margin-top:16px;font-size:11px}.welcome-by b{color:var(--ink);font-weight:600}.plan-cta{all:unset;cursor:pointer;box-sizing:border-box;text-align:center;background:var(--amber);color:#fff;width:100%;font-family:var(--disp);border-radius:14px;margin-bottom:14px;padding:12px;font-size:14px;font-weight:600;display:block}.plan-overlay{align-items:flex-start;padding:16px;overflow-y:auto}.plan-card{background:var(--panel-2);border:1px solid var(--line);border-radius:16px;width:100%;max-width:440px;margin:auto;overflow:hidden;box-shadow:0 24px 64px #0000008c}.plan-doc{padding:22px 20px 6px}.plan-head{text-align:center;border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:14px}.plan-brand{font-family:var(--mono);letter-spacing:.18em;color:var(--amber);font-size:10.5px;font-weight:600}.plan-doc h2{font-family:var(--disp);color:var(--ink);margin:8px 0 4px;font-size:22px;font-weight:700}.plan-sub{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.plan-hero{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:12px;margin-bottom:6px;padding:13px}.plan-hero-k{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:600}.plan-hero-v{font-family:var(--mono);color:var(--amber);margin:3px 0;font-size:24px;font-weight:600}.plan-hero-note{color:var(--ink-soft);font-size:11.5px;line-height:1.45}.plan-sect{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:16px 2px 6px;font-size:11px;font-weight:600}.plan-row{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:6px 2px;font-size:13px;display:flex}.plan-row:first-of-type{border-top:none}.plan-row span{color:var(--ink-soft)}.plan-row b{font-family:var(--mono);color:var(--ink);text-align:right;font-weight:500}.plan-climate{font-family:var(--mono);color:var(--ink)!important}.plan-foot{color:var(--ink-soft);border-top:1px solid var(--line);margin-top:14px;padding-top:12px;font-size:10.5px;line-height:1.5}.plan-actions{border-top:1px solid var(--line);background:var(--panel);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:14px;display:flex}.plan-actions .welcome-btn,.plan-actions .loc-btn{margin-top:0}.plan-logo{object-fit:contain;max-width:150px;max-height:36px;margin:0 auto 6px;display:block}.plan-tagline{color:var(--ink-soft);margin-top:6px;font-size:11.5px;font-style:italic}.plan-tools{border-top:1px solid var(--line);padding:6px 14px 2px}.plan-venues{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.venue-chip{all:unset;cursor:pointer;background:var(--panel);border:1px solid var(--line-strong);color:var(--ink);font-family:var(--mono);border-radius:14px;align-items:center;gap:5px;padding:5px 10px;font-size:11.5px;display:inline-flex}.venue-chip .x{opacity:.6;font-size:13px}.venue-chip .x:hover{opacity:1}.plan-brandedit summary{cursor:pointer;color:var(--ink-soft);font-family:var(--mono);padding:5px 0;font-size:12px;list-style:none}.plan-brandedit summary::-webkit-details-marker{display:none}.brand-form{flex-direction:column;gap:7px;margin:8px 0;display:flex}.brand-form input{font-family:var(--disp);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:9px;padding:8px 10px;font-size:13px}.brand-form-btns{flex-wrap:wrap;gap:8px;display:flex}.brand-form-btns .welcome-btn,.brand-form-btns .loc-btn{margin-top:0;padding:8px 16px;font-size:13px}@media print{body>:not(#plan){display:none!important}#plan{background:#fff!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}#plan .plan-card{box-shadow:none!important;background:#fff!important;border:0!important;max-width:none!important}.plan-actions,.plan-tools{display:none!important}.plan-doc,.plan-doc *{color:#000!important}.plan-brand,.plan-hero-v{color:#b4822a!important}.plan-hero{background:#f6f4ee!important;border-color:#e3ddcf!important}.plan-row,.plan-head,.plan-foot{border-color:#ddd!important}}.echo{font-family:var(--mono);color:var(--ink-soft);opacity:.9;margin-top:3px;font-size:10px;display:block}.twi .echo{margin-top:1px}#compass .clabel{font-family:var(--mono);fill:var(--ink);opacity:0;pointer-events:none;paint-order:stroke;stroke:var(--panel-2);stroke-width:3px;stroke-linejoin:round;font-size:11px;transition:opacity .12s}#compass .cmark.show .clabel,#compass .cmark:hover .clabel{opacity:1}#compass .cmark{cursor:pointer}body[data-theme=night]{filter:brightness(.5)grayscale()sepia()saturate(8)hue-rotate(-44deg)}body[data-theme=night] .sky{background:#170808!important}body[data-theme=night] .searchrow input,body[data-theme=night] .gps,body[data-theme=night] .fmt,body[data-theme=night] .theme,body[data-theme=night] .daystep,body[data-theme=night] .datebtn,body[data-theme=night] .todaybtn{color:#f0d6d6!important;background:#ffffff1a!important}body[data-theme=night] .searchrow input::placeholder{color:#c49a9a!important}body[data-theme=night] .chip{background:#ffffff1f!important}body[data-theme=night] .sun-orb{opacity:.35!important}
