@font-face{font-family:Open;font-weight:300 800;font-display:swap;src:url('assets/open-sans-latin-wght-normal.woff2')}@font-face{font-family:Open;font-weight:300 800;font-display:swap;src:url('assets/open-sans-latin-ext-wght-normal.woff2');unicode-range:U+0100-024F}@font-face{font-family:Oswald;font-weight:200 700;font-display:swap;src:url('assets/oswald-latin-wght-normal.woff2')}@font-face{font-family:Oswald;font-weight:200 700;font-display:swap;src:url('assets/oswald-latin-ext-wght-normal.woff2');unicode-range:U+0100-024F}
:root{font-family:Open,Arial,sans-serif;color:#20242a;background:#eff1f1;font-synthesis:none;--yellow:#f6c424;--ink:#20242a;--paper:#fff;--soft:#f3f5f6;--line:#e5e8eb;--muted:#5d6874;--blue:#258dd3;--orange:#e78626;--shadow:0 12px 36px #14252f0b;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit;background:none}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #298cc9;outline-offset:3px}button:disabled{cursor:default;opacity:.4}img{max-width:100%;display:block}svg{display:block}.icon{width:22px;height:22px;flex:none}button .icon{pointer-events:none}.workspace{min-height:100dvh;max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 432px 1fr;gap:64px;align-items:center;padding:24px 52px}.intro{align-self:center}.brand-logo{width:167px;height:auto;max-height:64px;object-fit:contain;object-position:left;margin-bottom:44px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.1px;color:#56616c}.intro h1{font-family:Oswald,sans-serif;font-size:66px;line-height:1.07;letter-spacing:-1.5px;margin:23px 0 24px;font-weight:600}.intro h1 em{font-style:normal;position:relative;isolation:isolate}.intro h1 em:after{content:'';position:absolute;bottom:1px;left:-4px;right:-7px;height:17px;background:var(--yellow);z-index:-1;transform:rotate(-2deg)}.intro p{font-size:15px;line-height:1.8;color:#596470}.intro-rule{width:42px;height:2px;background:#bac1c5;margin:29px 0}.intro .intro-small{font-size:12px;line-height:1.8}.source-link{font-size:11px;font-weight:700;text-decoration:none;border-bottom:1px solid #bfc5c9;padding-bottom:6px;display:inline-block;margin-top:12px}.phone{width:432px;height:min(900px,calc(100dvh - 48px));min-height:620px;border:7px solid #23272a;border-radius:42px;background:var(--paper);box-shadow:0 30px 70px #23303c20,0 3px 10px #16212e30;overflow:hidden;display:flex;flex-direction:column;position:relative}.device-status{flex:none;display:flex;align-items:center;justify-content:space-between;padding:10px 22px 8px;font-size:11px;font-weight:800;background:var(--paper)}.island{background:#17191b;width:72px;height:20px;border-radius:20px}.demo-strip{flex:none;display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;background:var(--soft);color:var(--muted);padding:6px}.demo-dot{display:inline-block;flex:none;width:5px;height:5px;border-radius:50%;background:#ba9204}.app-header{padding:10px 17px 9px;display:flex;align-items:center;justify-content:space-between;flex:none;background:var(--paper)}.logo-button{padding:0;width:127px}.logo-button img{width:127px;height:42px;object-fit:contain}.app-header>div{display:flex;gap:2px}.icon-button{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}.icon-button:hover{background:var(--soft)}.notification{position:relative}.notification:after{content:'';width:5px;height:5px;border-radius:50%;background:var(--yellow);position:absolute;right:9px;top:8px}#screen{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:5px 17px 24px;background:var(--paper)}#screen::-webkit-scrollbar{display:none}.tabbar{flex:none;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);background:var(--paper);padding:7px 3px 13px;z-index:3}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;min-height:46px;font-weight:600;position:relative;border-radius:10px}.tabbar .icon{width:23px;height:23px;padding:1px;box-sizing:content-box}.tabbar button.active .icon{color:#181d21;background:var(--yellow);box-shadow:0 0 0 4px var(--yellow);border-radius:6px}.tabbar button.active{font-weight:800}.tabbar button:hover{background:var(--soft)}.guide{max-width:242px}.guide h2{font:500 28px/1.2 Oswald,sans-serif;letter-spacing:-.3px;margin:16px 0}.guide p{font-size:12px;line-height:1.9;color:#64707b}.guide ol{padding:0;list-style:none;counter-reset:tips;margin:25px 0}.guide li{font-size:12px;line-height:1.65;display:flex;gap:11px;margin-bottom:17px;color:#4e5b65}.guide li:before{counter-increment:tips;content:'0' counter(tips);font:500 18px Oswald;color:#9ba5ac}.theme-options{display:flex;gap:4px;padding:4px;background:#e1e5e7;border-radius:10px;margin-top:26px}.theme-options button{font-size:11px;font-weight:700;min-height:37px;flex:1;border-radius:7px}.theme-options button.selected{background:#fff;color:#20242a;box-shadow:0 1px 6px #18232e12}.guide-note{display:flex;gap:9px;margin-top:30px}.guide-note .demo-dot{margin-top:8px}.guide-note p{margin:0;font-size:10px}.text-button{font-size:12px;font-weight:700;color:var(--muted);padding:8px 0}.reset-button{font-size:10px;margin-top:14px}.cities{display:flex;gap:6px;align-items:center;margin-bottom:12px}.city-chip{font-size:11px;font-weight:650;border:1px solid var(--line);border-radius:8px;padding:10px 8px;flex:1;min-width:0;white-space:nowrap;min-height:40px}.city-chip.active{background:var(--yellow);border-color:var(--yellow);color:#1c2329}.city-chip small{font-size:9px;padding-left:4px}.city-add{width:33px;min-width:33px;height:40px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center}.city-add .icon{width:17px}.hero{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(140deg,#e4f4fd 0,#bfe2f4 62%,#94cae6 100%);color:#182d40;min-height:209px;padding:17px 18px 0;box-shadow:var(--shadow)}.hero:after{content:'';position:absolute;top:-55px;right:-10px;width:195px;height:195px;border-radius:50%;background:radial-gradient(#fff7c765,#fff0);pointer-events:none}.hero-top{position:relative;z-index:1}.hero h2{font:500 27px/1.15 Oswald;margin:0 0 5px;letter-spacing:-.4px}.hero p{margin:0;font-size:12px;color:#29485d}.hero-temp{font-size:61px;line-height:1.04;font-weight:650;letter-spacing:-4px;margin:7px 0 5px}.hero-range{font-size:11px;font-weight:600;padding-bottom:15px}.hero-art{position:absolute;right:-11px;top:-2px;width:195px;height:156px;pointer-events:none}.weather-icon{width:48px;height:48px;overflow:visible;filter:drop-shadow(0 2px 2px #2c5d7833)}.hero-art .weather-icon{width:190px;height:170px;filter:drop-shadow(0 8px 12px #406a8440)}.hero-metrics{position:relative;margin:0 -18px;padding:12px 6px;background:#ffffff99;display:grid;grid-template-columns:repeat(3,1fr);z-index:2}.metric{display:flex;align-items:center;justify-content:center;gap:7px}.metric+.metric{border-left:1px solid #99b6c44d}.metric .icon{width:17px;height:20px}.metric span{display:block;font-size:9px;line-height:1.5}.metric strong{display:block;font-size:12px;font-weight:750}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:19px 0 10px}.section-heading h2,.section-heading h3{font:500 21px/1.2 Oswald;margin:0;letter-spacing:-.1px}.section-heading button,.section-heading a{font-size:10px;color:var(--muted);text-decoration:none;min-height:30px;display:flex;gap:3px;align-items:center}.section-heading .icon{width:14px;height:14px}.hourly{display:flex;overflow:auto;scrollbar-width:none;border:1px solid var(--line);border-radius:11px;padding:9px 0;scroll-snap-type:x mandatory}.hourly button{flex:0 0 20%;display:flex;flex-direction:column;gap:2px;align-items:center;scroll-snap-align:start;border-right:1px solid var(--line);min-height:83px}.hourly button:last-child{border:0}.hourly button.active{background:var(--soft)}.hourly time{font-size:10px;color:var(--muted)}.hourly strong{font-size:14px}.hourly .weather-icon{width:40px;height:37px}.hourly small{font-size:9px;color:var(--blue)}.day-strip{display:flex;gap:5px;overflow:auto;scrollbar-width:none;padding:2px 0;margin:11px 0}.day-button{border:1px solid var(--line);border-radius:9px;flex:1;min-width:60px;min-height:95px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 2px;font-size:10px;gap:2px}.day-button.selected{border-color:var(--yellow);background:#f6c42418;box-shadow:inset 0 2px var(--yellow)}.day-button .weather-icon{width:35px;height:35px}.day-button strong{font-size:12px}.day-button small{font-size:10px;color:var(--muted)}.wide-button{width:100%;border:1px solid var(--yellow);border-radius:9px;min-height:43px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:700}.wide-button .icon{color:#a67800;width:19px}.wide-button.primary{background:var(--yellow);color:#20242a}.shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.shortcuts button{border:1px solid var(--line);background:var(--soft);border-radius:9px;min-height:43px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px}.shortcuts .icon{width:19px}.radar-preview{border-radius:11px;overflow:hidden;position:relative;border:1px solid var(--line);width:100%;padding:0}.radar-preview img{width:100%;height:146px;object-fit:cover}.radar-preview span{position:absolute;bottom:8px;left:9px;font-size:9px;padding:5px 8px;background:#ffffffdf;color:#25313b;border-radius:5px}.note{font-size:10px;color:var(--muted);line-height:1.6;margin:12px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;margin:5px 0 16px;gap:10px}.page-heading h1{font:500 28px/1.18 Oswald;margin:0;letter-spacing:-.2px}.page-heading small{color:var(--muted);font-size:10px;display:block;margin-top:3px}.heading-back{display:flex;align-items:center;gap:7px}.heading-back .icon-button{margin-left:-7px}.date-line{display:flex;justify-content:space-between;align-items:center;margin:17px 0 10px}.date-line h2{font:500 23px Oswald;margin:0}.badge{font-size:9px;font-weight:700;border-radius:4px;padding:4px 7px;background:var(--soft);color:var(--muted)}.periods{display:grid;grid-template-columns:1fr 1fr;gap:9px}.period{background:var(--soft);border:1px solid var(--line);border-radius:11px;padding:12px}.period h3{font-size:11px;margin:0 0 9px;font-weight:650}.period-body{display:flex;gap:7px;align-items:center}.period-body .weather-icon{width:61px;height:55px}.period strong{font-size:27px;line-height:1}.period small{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--blue);margin-top:7px}.period small .icon{width:12px;height:12px}.chart-card{border:1px solid var(--line);border-radius:12px;padding:12px 10px 8px;margin-top:12px;overflow:hidden}.chart-card .section-heading{margin:0 0 8px}.chart-legend{display:flex;gap:9px;font-size:9px;color:var(--muted)}.chart-legend i{width:6px;height:6px;display:inline-block;border-radius:2px;margin-right:3px;background:var(--orange)}.chart-legend span:last-child i{background:var(--blue)}.meteogram{width:100%;touch-action:pan-y;cursor:crosshair;height:auto;display:block}.meteogram text{font-family:Open,sans-serif;font-size:10px;fill:var(--muted)}.chart-range{width:100%;margin:1px 0 3px}.range{accent-color:var(--yellow);height:22px;cursor:pointer}.hour-detail{margin-top:12px;border-radius:11px;padding:13px;background:var(--soft)}.hour-detail-top{display:flex;gap:10px;align-items:center}.hour-detail-top .weather-icon{width:60px;height:58px}.hour-detail-top p{font-size:11px;margin:0 0 4px}.hour-detail-top strong{font-size:26px}.detail-line{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:12px 0 0;margin-top:10px;font-size:11px}.detail-line .icon{width:17px;height:17px}.detail-line>span{color:var(--muted);flex:1}.detail-line small{color:var(--muted)}.segmented{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:10px;margin-bottom:13px}.segmented button{flex:1;font-size:11px;padding:9px 5px;min-height:37px;border-radius:7px;white-space:nowrap}.segmented button.selected{background:var(--yellow);color:#20242a;font-weight:700;box-shadow:0 2px 5px #30300008}.map-wrap{position:relative;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#e9eef0}.map-wrap .map-image{width:100%;min-height:250px;object-fit:contain}.map-overlay{position:absolute;left:10px;top:10px;font-size:9px;background:#fffffff0;color:#263441;padding:5px 8px;border-radius:5px;z-index:1;box-shadow:var(--shadow)}.map-expand{position:absolute;right:9px;bottom:9px;background:#fffffff0;color:#20242a;width:35px;height:35px;border-radius:7px}.radar-art{width:100%;height:auto;display:block}.map-caption{font-size:10px;line-height:1.5;color:var(--muted);margin:10px 0}.timeline{display:flex;align-items:center;gap:11px;margin:13px 0}.play-button{border-radius:50%;background:var(--ink);color:var(--paper);width:38px;height:38px;display:grid;place-items:center;flex:none}.play-button .icon{width:17px;height:17px}.timeline .range{flex:1;min-width:50px}.timeline time{font-size:11px;font-weight:700}.camera-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.camera-card{padding:0;position:relative;overflow:hidden;min-height:132px;border-radius:10px;background:#dce3e8;text-align:left;isolation:isolate}.camera-card:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#101f2edb);z-index:-1}.camera-card img{width:100%;height:150px;object-fit:cover;position:absolute;inset:0;z-index:-2}.camera-card>div{position:absolute;left:10px;bottom:10px;color:white}.camera-card strong{font:500 17px Oswald;display:block}.camera-card small{font-size:9px}.camera-card .icon{position:absolute;right:9px;top:9px;color:white;background:#23364899;width:28px;height:28px;padding:5px;border-radius:6px}.filter-row{display:flex;gap:6px;overflow:auto;margin:10px 0 13px}.filter-row button{border-radius:7px;background:var(--soft);padding:9px 12px;font-size:11px;white-space:nowrap;border:1px solid var(--line)}.filter-row button.selected{background:var(--yellow);border-color:var(--yellow);color:#20242a}.model-subhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:11px}.model-select{width:100%;border:1px solid var(--line);border-radius:8px;min-height:43px;background:var(--paper);color:var(--ink);padding:9px 31px 9px 10px;font-size:11px;margin-bottom:12px}.model-image{aspect-ratio:1.2;object-fit:contain!important;background:#f7f7f7}.model-controls{display:flex;align-items:center;justify-content:center;gap:12px}.model-controls select{font-size:11px;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:7px;padding:8px}.model-list{margin-top:13px;border-top:1px solid var(--line)}.model-list button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;text-align:left;padding:13px 7px;border-bottom:1px solid var(--line)}.model-list button.selected{background:#f6c42418;font-weight:700}.model-list .icon{width:18px;height:18px}.model-list button span{flex:1}.news-hero{width:100%;padding:0;text-align:left}.news-hero img{height:198px;width:100%;object-fit:cover;border-radius:10px}.article-meta{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px;font-size:10px;color:var(--muted)}.tag{background:var(--yellow);color:#20242a;font-size:9px;font-weight:800;padding:3px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px}.news-hero h2{font:500 25px/1.23 Oswald;margin:0 0 14px;letter-spacing:-.2px}.news-row{width:100%;display:flex;align-items:center;gap:11px;padding:15px 0;border-top:1px solid var(--line);text-align:left}.news-row img{width:90px;height:74px;object-fit:cover;border-radius:7px}.news-row h3{font:500 18px/1.3 Oswald;margin:6px 0}.news-row p{font-size:9px;margin:0;color:var(--muted)}.news-row>div{flex:1}.empty{padding:35px 15px;text-align:center;color:var(--muted);font-size:13px}.article-image{width:100%;max-height:230px;object-fit:cover;border-radius:10px}.article-title{font:500 28px/1.18 Oswald;margin:15px 0}.article-copy{font-size:calc(15px * var(--article-scale,1));line-height:1.85}.article-copy h2{font:500 calc(22px * var(--article-scale,1))/1.3 Oswald}.article-tools{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}.article-tools button{min-height:37px;padding:8px 10px;font-size:12px;display:flex;gap:5px;align-items:center}.article-tools .icon{width:17px}.menu-group{margin-top:18px;border:1px solid var(--line);border-radius:11px;overflow:hidden}.menu-row{width:100%;display:flex;align-items:center;gap:13px;padding:14px;text-align:left;border-bottom:1px solid var(--line);font-size:12px;min-height:54px}.menu-row:last-child{border:0}.menu-row>span{flex:1}.menu-row .icon{width:20px;height:20px}.menu-row small{font-size:10px;color:var(--muted)}.profile-head{background:var(--soft);border-radius:12px;padding:18px;display:flex;gap:13px;align-items:center}.profile-head .icon{width:35px;height:35px;background:var(--yellow);padding:7px;box-sizing:content-box;color:#20242a;border-radius:12px}.profile-head h2{font:500 22px Oswald;margin:0 0 5px}.profile-head p{margin:0;font-size:11px;color:var(--muted)}.mountain-hero{position:relative;border-radius:12px;overflow:hidden;height:174px;background:#243648}.mountain-hero img{width:100%;height:100%;object-fit:cover}.mountain-hero h2{margin:0;position:absolute;bottom:0;left:0;right:0;padding:33px 16px 14px;background:linear-gradient(transparent,#122330dc);font:500 25px Oswald;color:white}.altitude{border:1px solid var(--line);border-radius:11px;overflow:hidden}.altitude-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line);font-size:12px}.altitude-row:last-child{border:0}.altitude-row .weather-icon{width:41px;height:40px}.altitude-row span:last-child{color:var(--muted);font-size:11px}.mountain-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.mountain-facts div{background:var(--soft);border-radius:10px;padding:13px;font-size:10px;color:var(--muted)}.mountain-facts strong{display:block;font-size:18px;color:var(--ink);margin-top:6px}.toast{position:absolute;bottom:91px;left:20px;right:20px;background:#202c38f2;color:white;border-radius:9px;padding:12px 15px;font-size:11px;text-align:center;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s;z-index:10}.toast.visible{opacity:1;transform:none}dialog{background:var(--paper);color:var(--ink);border:0;border-radius:19px;box-shadow:0 25px 95px #11202f50;padding:0;width:394px;max-width:calc(100vw - 24px);max-height:85dvh;overflow:auto}dialog::backdrop{background:#15233180;backdrop-filter:blur(4px)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px 9px}.sheet-head h2{font:500 24px Oswald;margin:0}.sheet-content{padding:0 19px 21px}.sheet-content label{font-size:11px;font-weight:700;display:block;margin:10px 0 6px}.search-input{width:100%;height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font-size:14px}.city-results{max-height:250px;overflow:auto;margin:10px 0}.city-result{width:100%;padding:12px 4px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:13px;min-height:44px}.city-result .icon{width:17px}.saved-place{display:flex;align-items:center;gap:7px;padding:7px 0}.saved-place span{flex:1;font-size:12px}.saved-place button{min-height:36px;min-width:36px;border-radius:7px;background:var(--soft)}.toggle-row{display:flex;align-items:center;gap:12px;margin:0;padding:14px 0;border-bottom:1px solid var(--line)}.toggle-row span{flex:1;font-size:12px;font-weight:600}.toggle-row input{width:19px;height:19px;accent-color:var(--yellow)}.camera-large{width:100%;border-radius:9px}.external-link{display:flex;align-items:center;justify-content:center;font-size:12px;min-height:42px;background:var(--soft);border:1px solid var(--line);border-radius:8px;text-decoration:none;margin-top:14px}.preview-footer{display:flex;align-items:center;justify-content:center;gap:6px;margin:23px 0 0;font-size:9px;color:var(--muted)}.preview-footer:before{content:'';width:4px;height:4px;background:var(--yellow);border-radius:50%}[hidden]{display:none!important}
.phone{color:var(--ink)}.article-copy{font-size:calc(16px * var(--article-scale,1))}body[data-theme=dark]{--paper:#1c2025;--ink:#f1f3f5;--soft:#272d35;--line:#39414b;--muted:#b4bec8;--blue:#79c5f3;--orange:#ffad56;color-scheme:dark}body[data-theme=gray]{--paper:#f0f1f2;--ink:#20242a;--soft:#e4e7e9;--line:#cdd3d8;--muted:#535f6a}body[data-theme=dark] .phone{border-color:#0b0e11}body[data-theme=dark] .phone .logo-button img{filter:invert(1)}body[data-theme=dark] .hero{background:linear-gradient(135deg,#253b56,#254362);color:#fff}body[data-theme=dark] .hero p{color:#dceaf5}body[data-theme=dark] .hero-metrics{background:#1a293b88}body[data-theme=dark] .theme-options button.selected{background:#232a31;color:white}body[data-theme=dark] dialog .theme-options{background:var(--soft)}body[data-theme=dark] .play-button{background:var(--yellow);color:#20242a}body[data-theme=dark] .day-button.selected{background:#f6c42415}
@media(min-width:1500px){.workspace{gap:95px}}@media(max-width:1190px){.workspace{grid-template-columns:1fr 416px;max-width:930px;gap:52px;padding:24px 40px}.phone{width:416px}.guide{display:none}.intro h1{font-size:62px}}@media(max-width:720px){.workspace{display:block;padding:0;min-height:100dvh}.intro,.guide,.device-status{display:none}.phone{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}.app-header{padding-top:8px}.tabbar{padding-bottom:max(10px,env(safe-area-inset-bottom));min-height:69px}#screen{padding-left:18px;padding-right:18px}.demo-strip{padding-top:max(6px,env(safe-area-inset-top));font-size:9px}dialog{margin:auto auto 0;border-radius:20px 20px 0 0;max-width:100%;width:100%;max-height:calc(100dvh - 24px);padding-bottom:env(safe-area-inset-bottom)}.sheet-content{padding-bottom:25px}.hero{min-height:214px}.hero-art{right:1px}.app-header .logo-button img{height:41px}}@media(max-width:360px){#screen{padding-left:12px;padding-right:12px}.hero-art{right:-21px;width:172px}.hero-art .weather-icon{width:172px}.city-chip{font-size:10px;padding:9px 5px}.day-button{min-width:53px}.metric{gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.map-dialog{width:min(1060px,94vw)}.map-dialog .camera-large{max-height:70dvh;object-fit:contain;background:var(--soft)}
/* Installed application: same approved visual language, without prototype rails. */
html,body{height:100%;overflow:hidden;background:var(--soft);color:var(--ink)}.workspace{display:block;min-height:0;height:100dvh;max-width:900px;padding:0;margin:auto}.phone{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:0 0 45px #1c28300b}.app-header{padding-top:max(9px,env(safe-area-inset-top));padding-left:20px;padding-right:20px;border-bottom:1px solid var(--line)}#screen{padding:14px 20px 28px}.tabbar{padding-bottom:max(10px,env(safe-area-inset-bottom));min-height:70px}.icon-button{min-width:44px;min-height:44px}.page-heading h1{font-size:28px}.article-copy{font-size:calc(16px * var(--article-scale,1))}.article-copy h2,.article-copy h3{font-size:calc(23px * var(--article-scale,1))}.article-copy img{width:auto;max-width:100%;height:auto;border-radius:8px}.article-copy figure{margin:24px 0}.article-copy table{display:block;max-width:100%;overflow:auto}.article-image{aspect-ratio:16/9;max-height:none;width:100%;object-fit:cover}.article-copy a{text-decoration:underline;overflow-wrap:anywhere}.connection-note,.status-note{font-size:11px;line-height:1.6;padding:9px 12px;border-radius:8px;background:#fff2bd;color:#594614}.connection-note{border-radius:0;text-align:center}.status-note{margin-bottom:12px}.error-panel{border:1px solid var(--line);background:var(--soft);padding:23px 18px;border-radius:12px;font-size:13px;line-height:1.7}.error-panel .wide-button{margin-top:15px}.loading{padding:32px 12px;text-align:center;color:var(--muted);font-size:13px}.loading:before{content:'';display:inline-block;width:13px;height:13px;border:2px solid var(--line);border-top-color:#b98600;border-radius:50%;margin-right:9px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero.is-night{background:linear-gradient(130deg,#283a57,#2b5075);color:#f5f8fc}.hero.is-night p{color:#d1e0ed}.hero.is-night .hero-metrics{background:#12253c99}.hero-art .weather-icon{width:175px}.hero-top{max-width:65%}.hero h2{overflow-wrap:break-word}.hero-temp{font-size:64px}.periods.single{grid-template-columns:1fr}.periods.single .period{text-align:center}.periods.single .period-body{justify-content:center}.period small.snow-value{color:var(--muted)}.period p{font-size:10px;margin:5px 0;color:var(--muted)}.period-body{justify-content:center}.period h3{text-align:center}.day-button{min-width:64px}.forecast-layout .day-strip{margin-top:0}.cities .city-chip{overflow:hidden;text-overflow:ellipsis;min-height:44px}.city-add{height:44px;width:40px}.hourly button{min-height:95px;min-width:65px}.forecast-update{font-size:10px;line-height:1.6;color:var(--muted)}.note{font-size:11px}.search-input{font-size:16px}.city-result small{display:block;color:var(--muted);font-size:10px;text-align:left}.city-result span{text-align:left}.sheet-content{overflow:auto}.place-editor{margin:14px auto auto;max-height:calc(var(--visible-height,100dvh) - 28px);align-self:start}.place-editor .city-results{max-height:35dvh}.embedded-viewer{display:block;width:100%;height:min(640px,68dvh);border:0;background:var(--soft);border-radius:10px}.model-select{font-size:13px}.model-image{aspect-ratio:auto}.map-wrap .map-image{min-height:180px;max-height:65dvh;object-fit:contain}.map-caption{min-height:30px}.map-image.failed,.camera-large.failed{opacity:.2}.camera-card{min-height:150px}.camera-card img{height:100%;object-fit:cover}.camera-card.image-failed{background:var(--soft)}.camera-card.image-failed:after{inset:0;background:#34434e}.camera-card.image-failed .camera-error{position:absolute;top:40px;left:12px;color:white;font-size:10px}.radar-preview img{height:180px;object-fit:contain;background:#edf1f4}.reader-link{margin:30px 0}.article-title{font-size:30px}.news-row h3{font-size:20px}.news-row img{flex:none}.news-row .icon{width:16px}.news-hero img{aspect-ratio:16/9;height:auto}.nav-external{display:flex;text-decoration:none;align-items:center;gap:12px;font-size:13px}.nav-external span{flex:1}.filter-row button{min-height:44px}.full-status{font-size:12px;text-align:center;color:var(--muted);padding:8px}.source-disclosure{margin-top:23px;font-size:10px;color:var(--muted);text-align:center;line-height:1.6}.source-disclosure a{text-decoration:none;border-bottom:1px solid var(--line)}.map-dialog .camera-large{min-height:100px;max-height:75dvh}.model-panel{min-width:0}.model-menu{min-width:0}.mountain-times{display:flex;overflow:auto;gap:5px;margin:12px 0}.mountain-times button{flex:none;border:1px solid var(--line);border-radius:8px;padding:11px;font-size:11px}.mountain-times button.selected{background:var(--yellow);color:#20242a}.altitude-row small{font-size:10px;color:var(--muted)}.mountain-name{font:500 23px Oswald;margin:15px 0}.hero .metric strong{white-space:nowrap}.article-meta{gap:8px}.tag{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-image{background:#eff1f3}dialog{overscroll-behavior:contain}.sheet-head{position:sticky;top:0;background:var(--paper);z-index:1}.city-results{scroll-margin-top:8px}.empty p{line-height:1.7}.article-copy blockquote{border-left:3px solid var(--yellow);padding-left:15px;margin-left:0}button[aria-busy=true]{opacity:.5;pointer-events:none}
@media(min-width:721px){.phone{border-left:1px solid var(--line);border-right:1px solid var(--line)}#screen{padding:22px 30px 32px}.hero{min-height:245px;padding-top:22px}.hero h2{font-size:32px}.hero-temp{font-size:73px}.hero-art{right:7%;top:8px}.hero-art .weather-icon{width:215px;height:195px}.hero-metrics{margin-top:8px;padding:14px}.metric span{font-size:11px}.metric strong{font-size:14px}.day-strip{gap:9px}.day-button{min-height:106px}.day-button strong{font-size:15px}.day-button small{font-size:12px}.hourly button{flex-basis:12.5%}.camera-grid{grid-template-columns:repeat(3,1fr)}.models-layout{display:grid;grid-template-columns:190px 1fr;gap:20px}.model-menu .model-list{margin:0}.model-menu .model-select{display:none}.model-image{min-height:240px}.news-hero img{max-height:380px}.article-image{max-height:460px}.article-title{font-size:32px}.meteogram{max-height:320px}.chart-card{padding:18px}.section-heading h2{font-size:23px}.tabbar button{font-size:12px}.cities .city-chip{font-size:13px}.radar-preview img{height:250px}.camera-card{min-height:175px}.place-editor{margin-top:30px}}
@media(max-width:380px){#screen{padding-left:13px;padding-right:13px}.hero-art{right:-28px}.hero-top{max-width:67%}.hero h2{font-size:24px}.hero-range{font-size:10px}.metric{gap:4px}.metric .icon{width:15px}.metric strong{font-size:11px}.period{padding:10px 6px}.period-body .weather-icon{width:48px}.period strong{font-size:24px}.article-title{font-size:28px}}

@media(max-width:720px){.model-menu .model-list{display:none}.model-controls{margin-top:12px}.city-chip{font-size:12px}.tabbar button{font-size:11px}}
/* RC3: observations, native daily narratives and OPERA radar. */
.current-details{margin:22px 0}.current-details .section-heading{margin:0 0 11px}.current-details h2{font-size:20px}.current-details time{font-size:11px;color:var(--muted);flex:none}.conditions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.condition-tile{padding:13px;background:var(--soft);border:1px solid var(--line);border-radius:12px;min-width:0}.condition-label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);font-weight:700}.condition-label .icon{width:17px;height:17px;color:var(--blue);stroke-width:1.8}.condition-tile>strong{display:block;font-size:23px;font-weight:700;line-height:1.3;margin-top:7px;font-variant-numeric:tabular-nums}.condition-tile em{font-style:normal;font-size:12px;font-weight:600}.condition-tile small{display:block;font-size:10px;line-height:1.55;color:var(--muted);margin-top:5px}.sun-times{display:flex;flex-wrap:wrap;gap:13px 22px;align-items:center;padding:14px 0 2px;font-size:11px;color:var(--muted)}.sun-times>span{display:flex;align-items:center;gap:6px}.sun-times strong{color:var(--ink);font-variant-numeric:tabular-nums}.sun-times .icon{width:19px;height:19px;color:#b58600}.hourly-disclosure{border:1px solid var(--line);border-radius:12px;margin:18px 0;background:var(--paper);overflow:hidden}.hourly-disclosure>summary,.forecast-day>summary{list-style:none;cursor:pointer;min-height:56px}.hourly-disclosure>summary::-webkit-details-marker,.forecast-day>summary::-webkit-details-marker{display:none}.hourly-disclosure>summary{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;gap:10px}.hourly-disclosure>summary>span:first-child{display:flex;align-items:center;gap:9px;font:500 20px/1.25 Oswald,sans-serif}.hourly-disclosure>summary>span:first-child .icon{width:20px;color:var(--blue)}.disclosure-action{font-size:12px;font-weight:700;display:flex;gap:8px;align-items:center}.disclosure-action .icon{width:16px;height:16px;transform:rotate(90deg)}.when-open{display:none}.hourly-disclosure[open] .when-closed{display:none}.hourly-disclosure[open] .when-open{display:inline}.hourly-disclosure[open] .disclosure-action .icon{transform:rotate(-90deg)}.hourly-content{padding:0 12px 12px}.hourly-content .wide-button{margin-top:10px}.daily-guide{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:0 35px 9px 2px}.daily-forecast{border:1px solid var(--line);border-radius:13px;overflow:hidden}.forecast-day+.forecast-day{border-top:1px solid var(--line)}.forecast-day>summary{display:grid;grid-template-columns:minmax(75px,1fr) auto auto 16px;align-items:center;gap:12px;padding:13px}.forecast-day>summary:focus-visible,.hourly-disclosure>summary:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.daily-name strong{display:block;font-size:13px;font-weight:700;text-transform:capitalize}.daily-name small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.daily-symbols{display:flex;gap:3px}.daily-symbols .weather-icon{width:32px;height:33px}.daily-temperatures{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:61px;font-size:15px;font-variant-numeric:tabular-nums}.daily-temperatures>span{color:var(--muted);font-size:13px}.forecast-day>summary>.icon{width:15px;height:15px;transform:rotate(90deg);color:var(--muted)}.forecast-day[open]>summary{background:var(--soft);box-shadow:inset 3px 0 var(--yellow)}.forecast-day[open]>summary>.icon{transform:rotate(-90deg)}.day-description{background:var(--soft);border:1px solid var(--line);border-radius:12px;margin-top:12px;padding:15px}.forecast-day .day-description{margin:0;border:0;border-radius:0;background:var(--paper);padding-top:6px}.narrative-part{margin:12px 0}.narrative-part h3{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin:0 0 7px;color:var(--muted)}.narrative-part h3 .icon{width:16px;height:16px;color:#b58600}.narrative-part p,.day-description>p{font-size:13px;line-height:1.7;margin:0;overflow-wrap:anywhere}.narrative-metrics{display:flex;flex-wrap:wrap;gap:8px 15px;margin:8px 0;font-size:10px;color:var(--muted)}.narrative-metrics>span{display:flex;gap:5px;align-items:center}.narrative-metrics .icon{width:14px;height:14px;color:var(--blue)}.day-description .wide-button{margin-top:15px;font-size:11px;min-height:44px}.day-description .sun-times{border-top:1px solid var(--line);margin-top:12px}.opera-teaser{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:19px 15px;margin:21px 0 4px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.opera-teaser>span:nth-child(2){flex:1;min-width:0}.opera-teaser small{display:block;font-size:9px;font-weight:800;letter-spacing:1.2px;color:var(--muted)}.opera-teaser strong{display:block;font:500 23px/1.3 Oswald,sans-serif;margin:3px 0}.opera-teaser>span>span{font-size:10px;color:var(--muted)}.opera-emblem{display:grid;place-items:center;width:58px;height:58px;flex:none;border-radius:50%;background:var(--yellow);color:#26323d;box-shadow:0 0 0 6px #f6c42418}.opera-emblem .icon{width:36px;height:36px;stroke-width:1.3}.opera-teaser>.icon{width:17px;height:17px}.opera-panel{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.opera-toolbar{height:52px;display:flex;justify-content:space-between;align-items:center;padding:4px 8px 4px 14px;background:var(--paper)}.opera-toolbar>div{display:flex;align-items:center;gap:8px;font-size:13px}.opera-toolbar>div .icon{width:20px;height:20px;color:var(--blue)}.opera-viewer{display:block;width:100%;height:clamp(440px,68dvh,680px);border:0;background:var(--soft)}.opera-panel.is-expanded{position:fixed;inset:0;z-index:30;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column}.opera-panel.is-expanded .opera-toolbar{flex:none}.opera-panel.is-expanded .opera-viewer{height:auto;flex:1;min-height:0}.opera-panel.is-expanded .icon-button{background:var(--yellow);color:#20242a}.opera-teaser:hover{border-color:var(--yellow)}
@media(min-width:650px){.conditions-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.narrative-part p{font-size:14px}.daily-name strong{font-size:14px}.daily-symbols .weather-icon{width:38px;height:38px}.forecast-day>summary{gap:20px;padding:14px 18px}}
@media(max-width:360px){.condition-tile{padding:11px}.condition-tile>strong{font-size:21px}.current-details h2{font-size:18px}.forecast-day>summary{padding:11px;gap:8px;grid-template-columns:minmax(67px,1fr) auto auto 14px}.daily-symbols .weather-icon{width:28px}.daily-temperatures{gap:7px;min-width:54px}.day-description{padding:12px}.daily-name strong{font-size:12px}.opera-teaser{gap:11px}.opera-emblem{width:48px;height:48px}}
/* RC4: exact Neurje.si SVG symbols and the same day/night colour palette. */
.phone{--ne-icon-sun:#c18a00;--ne-icon-cloud:#69869e;--ne-icon-moon:#5568a6;--ne-icon-rain:#247fbd;--ne-icon-snow:#4c90a6;--ne-icon-wind:#64859e;--ne-icon-fog:#8295a5;--ne-icon-lightning:#b87c00;--ne-icon-cloud-fill:var(--paper)}
body[data-theme=dark] .phone,.hero.is-night{--ne-icon-sun:#ffd071;--ne-icon-cloud:#a6bdd0;--ne-icon-moon:#b1bfff;--ne-icon-rain:#80c9ff;--ne-icon-snow:#8cdae9;--ne-icon-wind:#aac8da;--ne-icon-fog:#a5b7c7;--ne-icon-lightning:#ffd071}
.weather-icon{filter:none;stroke-width:1.8}.weather-icon [data-ne-weather-part=sun]{stroke:var(--ne-icon-sun)}.weather-icon [data-ne-weather-part=cloud]{stroke:var(--ne-icon-cloud)}.weather-icon [data-ne-weather-part=moon]{stroke:var(--ne-icon-moon)}.weather-icon [data-ne-weather-part=rain]{stroke:var(--ne-icon-rain)}.weather-icon [data-ne-weather-part=snow]{stroke:var(--ne-icon-snow)}.weather-icon [data-ne-weather-part=wind]{stroke:var(--ne-icon-wind)}.weather-icon [data-ne-weather-part=fog]{stroke:var(--ne-icon-fog)}.weather-icon [data-ne-weather-part=lightning]{stroke:var(--ne-icon-lightning)}
.weather-icon:is([data-ne-icon=cloud],[data-ne-icon=cloud-sun],[data-ne-icon=cloud-moon]) [data-ne-weather-part=cloud]{fill:var(--ne-icon-cloud-fill)}
.hero{--ne-icon-cloud-fill:#fffdf1}.hero.is-night{--ne-icon-cloud-fill:#304a67}body[data-theme=dark] .hero{--ne-icon-cloud-fill:#253b56}.hero-art{top:23px;right:20px;width:124px;height:124px}.hero-art .weather-icon{width:124px;height:124px;stroke-width:1.35;filter:none}.hero-art .weather-icon:not(.ne-filled-icon)[data-ne-icon=sun] circle{fill:#f8cf59}.hero-art .weather-icon[data-ne-icon=moon]{fill:#fff0b030}
.hourly-disclosure{margin-top:12px}.hourly-disclosure[open]>summary{padding-bottom:8px}.hourly-caption{font-size:10px;line-height:1.5;color:var(--muted);margin:0 0 10px}.hourly .weather-icon{width:33px;height:33px;margin:5px 0}.daily-symbols .weather-icon{width:30px;height:30px}.period .weather-icon{width:44px;height:44px}.hour-detail-top .weather-icon{width:49px;height:49px}.day-button .weather-icon{width:31px;height:31px}
@media(max-width:360px){.hero-art{right:12px;top:31px;width:104px;height:104px}.hero-art .weather-icon{width:104px;height:104px}.daily-symbols .weather-icon{width:27px;height:27px}}

/* RC5: compact 3 × 2 observation grid, clearer day/night spacing, larger radar. */
.current-details{margin:18px 0}
.current-details .section-heading{margin-bottom:9px}
.current-details .section-heading h2{font-size:19px}
.conditions-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.condition-tile{padding:8px 9px;border-radius:9px}
.condition-label{gap:5px;font-size:10px;line-height:1.3}
.condition-label .icon{width:14px;height:14px}
.condition-tile>strong{font-size:20px;line-height:1.2;margin-top:3px}
.condition-tile em{font-size:10px;white-space:nowrap}
.condition-tile small{font-size:10px;line-height:1.35;margin-top:3px;overflow-wrap:anywhere}
.current-details .sun-times{padding-top:10px;font-size:10px}
.daily-symbols{gap:12px;align-items:center}
.opera-viewer{height:clamp(480px,78dvh,900px)}
@media(max-width:380px){
 .condition-tile{padding:7px}
 .condition-label{gap:4px;font-size:9px}
 .condition-label .icon{width:12px;height:12px}
 .condition-tile>strong{font-size:18px}
 .condition-tile em,.condition-tile small{font-size:9px}
 .current-details .section-heading h2{font-size:18px}
 .daily-symbols{gap:10px}
}

/* RC6: daily maximum / overnight minimum trend from the same TWC dayparts. */
.logo-button{width:64px;min-height:48px;display:grid;place-items:center}
.logo-button img{width:64px;height:48px;object-fit:contain}
.long-term-card{--trend-high:#ad6500;--trend-low:#2878ad;margin:20px 0 22px;padding:13px 12px 10px;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}
.long-term-card .section-heading{margin:0 0 10px;align-items:baseline}
.long-term-card .section-heading h2{font-size:21px}
.long-term-card .section-heading>span{font-size:10px;color:var(--muted);text-align:right;max-width:44%;overflow-wrap:anywhere}
.long-term-legend{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted);margin-bottom:3px}
.long-term-legend>span{display:flex;align-items:center;gap:5px}
.long-term-legend i{width:15px;height:3px;border-radius:2px;background:var(--trend-high)}
.long-term-legend i.low{background:var(--trend-low)}
.long-term-legend>small{margin-left:auto;font-size:10px}
.long-term-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;scroll-padding-inline:8px}
.long-term-plot{position:relative;min-width:calc(var(--days) * 56px);padding-top:152px}
.long-term-lines,.long-term-values{position:absolute;inset:0 0 auto;height:152px;pointer-events:none}
.long-term-lines svg{width:100%;height:152px;overflow:visible}
.long-term-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.long-term-grid.vertical{opacity:.45}
.long-term-line{fill:none;stroke:var(--trend-high);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.long-term-line.low{stroke:var(--trend-low);stroke-width:2}
.long-term-values,.long-term-days{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr))}
.long-term-values>div{position:relative}
.long-term-value{position:absolute;left:50%;transform:translate(-50%,calc(-100% - 6px));color:var(--trend-high);background:var(--paper);box-shadow:0 0 0 2px var(--paper);border-radius:2px;font-size:12px;font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}
.long-term-value.low{color:var(--trend-low);transform:translate(-50%,6px)}
.long-term-days button{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;min-height:73px;padding:4px 2px 8px;border-radius:8px;font-size:10px;min-width:0}
.long-term-days button:hover{background:var(--soft)}
.long-term-days button:focus-visible{outline-offset:-3px}
.long-term-days .weather-icon{width:28px;height:28px;margin-bottom:2px}
.long-term-days strong{font-size:10px;text-transform:capitalize}
.long-term-days small{font-size:9px;color:var(--muted)}
.long-term-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.long-term-hint{font-size:10px;color:var(--muted);line-height:1.5;margin:7px 0 0}
body[data-theme=dark] .long-term-card{--trend-high:#ffce74;--trend-low:#89ceff}
@media(max-width:360px){.long-term-card{padding-left:9px;padding-right:9px}.long-term-card .section-heading h2{font-size:20px}.long-term-legend{gap:8px;font-size:9px}}

.long-term-point{position:absolute;left:50%;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);background:var(--trend-high);box-shadow:0 0 0 2px var(--paper)}
.long-term-point.low{background:var(--trend-low)}

/* RC7: compact daily columns, dedicated ad slots, separate upper-air graph. */
.daily-help{font-size:10px;line-height:1.5;color:var(--muted);margin:-2px 0 9px}
.daily-grid,.forecast-day>summary.daily-grid{display:grid;grid-template-columns:minmax(56px,1.5fr) repeat(2,minmax(22px,.65fr)) repeat(2,minmax(25px,.7fr)) minmax(30px,.8fr) minmax(32px,.85fr) 12px;gap:5px;align-items:center;padding:9px 10px;text-align:center}
.daily-table-head{min-height:32px;background:var(--soft);font-size:10px;color:var(--muted);border-bottom:1px solid var(--line)}
.daily-table-head>span:first-child{text-align:left}
.forecast-day>summary.daily-grid{min-height:51px;font-size:12px}
.forecast-day .daily-name{text-align:left;min-width:0}
.forecast-day .daily-name strong{font-size:12px;line-height:1.2}
.forecast-day .daily-name small{font-size:9px;margin-top:3px}
.daily-symbol{display:flex;justify-content:center;color:var(--muted)}
.daily-symbol .weather-icon{width:27px;height:27px}
.daily-low{color:var(--muted)}
.daily-high{font-weight:750}
.daily-chance,.daily-rain{font-size:11px;color:var(--blue);font-variant-numeric:tabular-nums}
.daily-chance small{font-size:9px;margin-left:1px}
.upperair-card{border:1px solid var(--line);border-radius:12px;padding:14px 13px 10px;margin:20px 0;background:var(--paper)}
.upperair-card .section-heading{margin:0 0 10px}
.upperair-card .section-heading h2{font-size:21px}
.upperair-card .section-heading small{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.upperair-chart{display:block;width:100%;height:205px}
.upperair-chart text{font-family:Open,sans-serif;font-size:11px;fill:var(--muted)}
.upperair-grid{stroke:var(--line);stroke-width:1}
.upperair-line{fill:none;stroke:var(--blue);stroke-width:2.7;stroke-linejoin:round;stroke-linecap:round}
.upperair-source{font-size:9px;color:var(--muted);line-height:1.6;margin:7px 0 0}
.upperair-source a{text-underline-offset:2px}
@media(min-width:650px){.forecast-day>summary.daily-grid{min-height:51px;padding:9px 14px;font-size:14px}.daily-table-head{padding-left:14px;padding-right:14px}.forecast-day .daily-name strong{font-size:13px}.daily-chance,.daily-rain{font-size:12px}.daily-symbol .weather-icon{width:29px;height:29px}}
@media(max-width:360px){.daily-grid,.forecast-day>summary.daily-grid{padding:8px 7px;gap:4px}.forecast-day .daily-name strong{font-size:11px}.daily-symbol .weather-icon{width:23px;height:23px}.daily-chance,.daily-rain{font-size:10px}.daily-table-head{font-size:9px}}

/* RC8: one vertical scroller, with native horizontal strips inside it. */
.workspace,.phone{min-width:0;height:100%;height:100dvh}
#screen{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
#home-layout,[data-home-part]{min-width:0;max-width:100%}
.hourly,.day-strip,.mountain-times,.filter-row,.long-term-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}
.hourly{scroll-snap-type:x proximity}


/* RC11: choose a mountain forecast day, then one of that day's actual periods. */
.mountain-days{display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;margin:15px 0 9px;padding:2px 0 4px;scrollbar-width:thin;overscroll-behavior-x:contain;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}
.mountain-days button{flex:1 0 60px;min-width:60px;max-width:110px;min-height:55px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
.mountain-days strong{font-size:12px;line-height:1.2}
.mountain-days small{font-size:10px;line-height:1.2;color:var(--muted)}
.mountain-days button.selected{background:var(--yellow);border-color:var(--yellow);color:#20242a}
.mountain-days button.selected small{color:#41413b}
.mountain-days button:focus-visible,.mountain-times button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.mountain-times{gap:5px;margin:0 0 11px;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:11px}
.mountain-times button{min-height:40px;min-width:56px;padding:8px 11px;background:transparent;border-color:transparent;font-size:12px;font-weight:600}
.mountain-selected-time{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;line-height:1.5;margin:12px 0}
.mountain-selected-time .icon{width:15px;height:15px;flex:none}
.mountain-conditions{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:13px 12px 2px}
.mountain-conditions h2{display:flex;align-items:center;gap:7px;font:600 15px/1.4 Open,Arial,sans-serif;margin:0 0 10px;color:var(--ink)}
.mountain-conditions h2 .icon{width:19px;height:19px}
.mountain-conditions .altitude{border:0;border-radius:0;overflow:visible}
.mountain-conditions .altitude-head,.mountain-conditions .altitude-row{display:grid;grid-template-columns:minmax(58px,1fr) minmax(43px,.75fr) minmax(55px,1fr) minmax(68px,1fr);align-items:center;gap:4px;padding:8px 0}
.altitude-head{font-size:10px;color:var(--muted);border-bottom:1px solid var(--line)}
.altitude-head span:nth-child(2),.altitude-head span:nth-child(3),.altitude-symbol,.altitude-temperature{text-align:center}
.altitude-head span:last-child,.altitude-wind{text-align:right}
.mountain-conditions .altitude-row{min-height:53px;font-size:12px}
.altitude-symbol{display:flex;justify-content:center;align-items:center}
.mountain-conditions .weather-icon{width:34px;height:34px}
.mountain-conditions .altitude-temperature small{font-size:10px;color:inherit;font-weight:500}
.mountain-conditions .altitude-wind{color:var(--ink);font-size:12px;white-space:nowrap}
.mountain-conditions .altitude-wind small{font-size:9px;font-weight:400}
.altitude-temperature.cold{color:#2478af}.altitude-temperature.mild{color:#257c58}.altitude-temperature.warm{color:#a65f00}
body[data-theme=dark] .altitude-temperature.cold{color:#80c9ff}body[data-theme=dark] .altitude-temperature.mild{color:#81d9aa}body[data-theme=dark] .altitude-temperature.warm{color:#ffd071}
@media(max-width:360px){.mountain-conditions{padding-left:9px;padding-right:9px}.mountain-days{gap:5px}.mountain-days button{min-width:55px;flex-basis:55px;padding-left:8px;padding-right:8px}.mountain-conditions .altitude-row{font-size:11px}.mountain-conditions .altitude-wind{font-size:11px}}

/* RC12: use the viewport, with compact spacing and one native content scroller. */
.workspace{width:100%;max-width:none;padding:0}
.phone{width:100%;border:0;box-shadow:none}
.app-header{padding:4px max(10px,env(safe-area-inset-right)) 4px max(10px,env(safe-area-inset-left));padding-top:max(4px,env(safe-area-inset-top))}
.logo-button{width:54px;min-height:40px}
.app-header .logo-button img{width:54px;height:40px}
#screen{padding:8px max(10px,env(safe-area-inset-right)) 14px max(10px,env(safe-area-inset-left))}
.tabbar{padding:5px max(3px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(3px,env(safe-area-inset-left));min-height:58px}
.tabbar button{min-height:46px;gap:3px;font-size:10px;justify-content:center}
.tabbar .icon{width:21px;height:21px}
.page-heading{margin:2px 0 9px}
.page-heading h1{font-size:25px}
.section-heading{margin:12px 0 7px}
.section-heading h2,.section-heading h3{font-size:21px}
.segmented{margin-bottom:8px;padding:3px;gap:3px}
.segmented button{padding:8px 5px;min-height:40px}
.cities{gap:5px;margin-bottom:8px}
.city-chip{padding:8px 5px}
.city-add,.city-locate{width:40px;min-width:40px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;flex:none}
.city-locate .icon{width:21px;height:21px}
.city-locate.active{background:var(--yellow);border-color:var(--yellow);color:#20242a}
.city-locate[aria-busy=true] .icon{animation:spin 1.3s linear infinite}
.location-status{font-size:10px;line-height:1.5;color:var(--muted);margin:-3px 0 7px;overflow-wrap:anywhere}
.location-button{margin-top:5px}
.location-feedback:empty{display:none}
.hero-geotag{display:flex;align-items:center;gap:5px;max-width:100%;font-size:10px;font-weight:650;line-height:1.3;opacity:.8;margin:1px 0 4px}
.hero-geotag .icon{height:12px;width:12px;flex:none}
.sheet-content .toggle-row{display:flex;margin:0;min-height:44px}
.hero{min-height:190px;padding-top:14px}
.hero-temp{font-size:60px}
.hero-range{padding-bottom:10px}
.hero-metrics{padding:9px 6px;margin-top:0}
.hero-art{top:20px}
.forecast-update{margin:5px 0 7px}
.hourly-disclosure,.current-details{margin:10px 0}
.hourly-disclosure>summary{min-height:46px;padding:9px 11px}
.hourly-content{padding:0 9px 9px}
.hourly-content .wide-button{margin-top:7px}
.hourly-caption{margin-bottom:6px}
.hourly{padding:6px 0}
.hourly button{min-height:86px}
.current-details .section-heading{margin:0 0 7px}
.long-term-card,.upperair-card{margin:10px 0;padding:10px 10px 8px}
.long-term-card .section-heading,.upperair-card .section-heading{margin-bottom:7px}
.upperair-card .section-heading small{margin-top:3px}
.chart-card{margin-top:9px;padding:10px 9px 7px}
.hour-detail{margin-top:8px;padding:10px}
.day-strip{gap:5px;margin:8px 0}
.date-line{margin:9px 0 7px}
.day-description{margin-top:8px;padding:11px}
.period{padding:10px}
.note{margin:8px 0}
.shortcuts{margin-top:9px}
.opera-teaser{margin:10px 0 3px;padding:12px;gap:12px}
.opera-emblem{width:44px;height:44px;box-shadow:none}
.opera-emblem .icon{width:29px;height:29px}
.opera-teaser strong{font-size:21px}
.filter-row{margin:7px 0 9px}
.menu-group{margin-top:10px}
.menu-row{padding:11px 12px;min-height:48px}
.profile-head{padding:12px}
.preview-footer{margin-top:13px}
.source-disclosure{margin-top:12px}
.mountain-days{margin:8px 0 5px;gap:5px}
.mountain-times{margin-bottom:7px}
.mountain-selected-time{margin:7px 0}
.mountain-conditions{padding:10px 10px 2px}
.mountain-facts{margin-top:8px}
.model-select{margin-bottom:8px}
.models-layout{gap:12px}
.map-caption{margin:7px 0;min-height:0}
.map-wrap .model-image{max-height:72dvh}
/* Live maps occupy the actual remaining viewport, never a fixed oversized iframe. */
.phone.is-map-view .app-header{display:none}
#screen.is-map-view{display:flex;overflow:hidden;padding:0;min-height:0}
.live-view{width:100%;min-width:0}
.live-map-view{flex:1;display:flex;flex-direction:column;min-height:0}
.live-map-view>.segmented{flex:none;margin:0;border-radius:0;border-bottom:1px solid var(--line);padding:4px max(6px,env(safe-area-inset-right)) 4px max(6px,env(safe-area-inset-left));padding-top:max(4px,env(safe-area-inset-top))}
.live-map-view .opera-panel{flex:1;min-height:0;display:flex;flex-direction:column;border:0;border-radius:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.opera-toolbar{flex:none;height:44px;padding:0 4px 0 10px;gap:8px}
.opera-toolbar>div{display:flex;align-items:center;gap:3px}
.opera-toolbar>div:first-child{gap:7px}
.opera-toolbar a{text-decoration:none}
.live-map-view .opera-viewer,.live-map-view>.embedded-viewer{flex:1;min-height:0;width:100%;height:0;border:0;border-radius:0;display:block}
.live-map-view .opera-panel.is-expanded{position:fixed;inset:0;z-index:30;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.live-map-view .opera-panel.is-expanded .opera-viewer{height:0;flex:1;min-height:0}
@media(min-width:721px){
 .app-header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 #screen{padding:10px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}
 .hero{min-height:200px}.hero-temp{font-size:64px}.hero h2{font-size:30px}
 .hero-art{right:6%;top:14px}.hero-art .weather-icon{width:140px;height:140px}
 .metric span{font-size:10px}.metric strong{font-size:13px}
 .day-button{min-height:95px}
 .models-layout{grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:360px){.city-chip{font-size:10px}.city-add,.city-locate{width:36px;min-width:36px}.cities{gap:4px}.hero-art{right:12px;top:28px}}
.map-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);margin:auto;border-radius:12px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.map-dialog[open],.map-dialog #sheet-body{display:flex;flex-direction:column;min-height:0}
.map-dialog #sheet-body{flex:1}
.map-dialog .sheet-head{padding:6px 10px;flex:none}
.map-dialog .sheet-head h2{font-size:22px}
.map-dialog .sheet-content{padding:0 10px 10px;flex:1;min-height:0}
.map-dialog .camera-large{width:100%;max-height:calc(100dvh - 155px);object-fit:contain;background:var(--soft)}
.map-dialog .embedded-viewer{height:calc(100dvh - 185px);min-height:180px}

/* RC13: one weather card with hours directly below; no duplicate heading. */
.current-weather-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}
.current-weather-card .hero{border:0;border-radius:0;box-shadow:none}
.current-weather-card .hero-metrics{border-bottom:1px solid #99b6c433}
.current-weather-card .hourly-overview{padding:0;margin:0;border:0;border-radius:0}
.current-weather-card .hourly{border:0;border-radius:0;padding:9px 0 7px;margin:0}
.current-weather-card .hourly button{min-height:87px}
.current-weather-card .hourly:focus-visible{outline-offset:-3px}
.current-weather-card .hourly-overview>.note{margin:12px}
.hourly-meteogram-link{width:100%;min-height:42px;display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid var(--line);background:var(--soft);font-size:11px;font-weight:700;padding:8px 12px}
.hourly-meteogram-link:hover{background:#f6c42420}
.hourly-meteogram-link .icon{width:17px;height:17px;color:var(--ink)}
.hourly-meteogram-link .icon:last-child{width:13px;height:13px}
/* Keep only an unobtrusive expand / close control over the map. */
.live-map-view .opera-panel{position:relative}
.radar-actions{position:absolute;top:10px;right:max(10px,env(safe-area-inset-right));z-index:3}
.radar-actions .icon-button{width:40px;min-width:40px;height:40px;min-height:40px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #17263825}
.radar-actions .icon{width:20px;height:20px}
.live-map-view .opera-panel.is-expanded{position:fixed}
.opera-panel.is-expanded .radar-actions{top:calc(10px + env(safe-area-inset-top))}

/* RC15: blue theme and static, weather-aware atmosphere. No animation or scroll handlers. */
body[data-theme=blue]{--paper:#fff;--ink:#142d48;--soft:#edf4fb;--line:#cddfea;--muted:#4b6178;--blue:#126bb1;--orange:#c05c0b;--shadow:0 4px 18px #123a5c08;background:#eaf1f8;color-scheme:light}
body[data-theme=blue] .phone,body[data-theme=blue] #screen,body[data-theme=blue] .app-header{background:#eaf1f8}
body[data-theme=blue] .phone{--ne-icon-cloud:#47749a;--ne-icon-rain:#126bb1;--ne-icon-sun:#b57b00}
body[data-theme=blue] .city-chip:not(.active),body[data-theme=blue] .city-add,body[data-theme=blue] .city-locate:not(.active),body[data-theme=blue] .condition-tile,body[data-theme=blue] .long-term-card,body[data-theme=blue] .upperair-card,body[data-theme=blue] .daily-forecast,body[data-theme=blue] .chart-card,body[data-theme=blue] .menu-group,body[data-theme=blue] .altitude,body[data-theme=blue] .day-button{background:var(--paper)}
body[data-theme=blue] .hourly-meteogram-link{background:#e5f1fc;color:#174f80}
body[data-theme=blue] .hourly-meteogram-link .icon,body[data-theme=blue] .condition-label .icon{color:#225f92}
body[data-theme=blue] .day-button.selected{background:#fff8dc}
.theme-picker{margin-bottom:8px}
.theme-picker button{font-size:12px;min-height:42px}
.weather-background-option{font-size:12px;margin-top:4px}
.appearance-note{margin:0 0 14px}

/* A single local texture, a contrast scrim, and a still precipitation layer.
   Decoration cannot capture touches, change layout, or imply live camera imagery. */
body[data-theme] .hero{
 --sky-left:#1b5581;--sky-right:#3d80a7;--cloud-shade:#0c365a;--cloud-opacity:0;
 --ne-icon-sun:#ffd14a;--ne-icon-cloud:#f3f8fc;--ne-icon-moon:#e0e9ff;
 --ne-icon-rain:#a4ddff;--ne-icon-snow:#e0f6ff;--ne-icon-wind:#dbeaf8;
 --ne-icon-fog:#e3edf6;--ne-icon-lightning:#ffd14a;--ne-icon-cloud-fill:#d4e7f215;
 isolation:isolate;color:#fff;background:linear-gradient(115deg,var(--sky-left),var(--sky-right));
}
body[data-theme=blue] .hero{--sky-left:#12518c;--sky-right:#3588ba}
body[data-theme=gray] .hero{--sky-left:#344f66;--sky-right:#6a8498;--cloud-shade:#243c50}
body[data-theme=dark] .hero{--sky-left:#1c344c;--sky-right:#304d69;--cloud-shade:#152a40}
body[data-theme] .hero::before,body[data-theme] .hero::after{content:'';position:absolute;inset:0;width:auto;height:auto;border-radius:0;z-index:0;pointer-events:none}
body[data-theme] .hero::before{background:linear-gradient(90deg,var(--cloud-shade),transparent 88%),url('assets/weather-clouds.webp');background-size:cover;background-position:center;opacity:var(--cloud-opacity)}
body[data-theme] .hero::after{background:none}
body[data-theme] .hero-top{z-index:2;max-width:calc(100% - 140px)}
body[data-theme] .hero-art{z-index:1}
body[data-theme] .hero p{color:#f0f6fc;line-height:1.5}
body[data-theme] .hero-metrics{background:#082a4666;border-bottom-color:#ffffff20;color:#fff}
body[data-theme] .hero .metric+.metric{border-left-color:#ffffff30}
body[data-theme] .hero-art .weather-icon{filter:drop-shadow(0 2px 5px #0b26352b)}
body[data-theme] .hero-art .weather-icon:not(.ne-filled-icon)[data-ne-icon=sun] circle{fill:none}

/* Sunshine is a diffuse wash, never another sun disc or a second weather icon. */
body[data-theme] .hero.weather-sun::after,body[data-theme] .hero.weather-partly::after{background:radial-gradient(ellipse at 105% 0%,#ffe6a144 0%,#ffe6a114 34%,transparent 66%)}
body[data-theme] .hero.weather-partly{--cloud-opacity:.45}
body[data-theme] .hero.weather-cloudy{--cloud-opacity:.8;--sky-left:#244f72;--sky-right:#6b879d}
body[data-theme] .hero.weather-rain,body[data-theme] .hero.weather-sleet,body[data-theme] .hero.weather-hail,body[data-theme] .hero.weather-storm{--cloud-opacity:.6;--sky-left:#173d61;--sky-right:#48677f;--cloud-shade:#0f2c46}
body[data-theme] .hero.weather-storm{--sky-left:#253747;--sky-right:#4c5b72;--cloud-opacity:.45}
body[data-theme] .hero.weather-rain::after,body[data-theme] .hero.weather-sleet::after,body[data-theme] .hero.weather-storm::after{background-image:linear-gradient(112deg,transparent 47%,#d4edff42 49%,#d4edff42 50%,transparent 52%);background-size:24px 42px;-webkit-mask-image:linear-gradient(90deg,transparent 32%,#000 80%);mask-image:linear-gradient(90deg,transparent 32%,#000 80%)}
body[data-theme] .hero.weather-snow,body[data-theme] .hero.weather-cold{--sky-left:#305777;--sky-right:#7a9bad;--cloud-opacity:.48}
body[data-theme] .hero.weather-snow::after,body[data-theme] .hero.weather-hail::after{background-image:radial-gradient(circle,#e4f5ffb3 1px,transparent 2px),radial-gradient(circle,#e4f5ff66 1.5px,transparent 2.5px);background-size:39px 47px,61px 67px;background-position:0 0,19px 22px;-webkit-mask-image:linear-gradient(90deg,transparent 40%,#000);mask-image:linear-gradient(90deg,transparent 40%,#000)}
body[data-theme] .hero.weather-fog{--sky-left:#455e70;--sky-right:#8098aa;--cloud-opacity:.22}
body[data-theme] .hero.weather-fog::after{background:repeating-linear-gradient(175deg,transparent 0px,#e6f1f311 22px,transparent 41px)}
body[data-theme] .hero.weather-wind{--cloud-opacity:.28}
body[data-theme] .hero.weather-neutral{--sky-left:#375167;--sky-right:#637b8d;--cloud-opacity:0}
body[data-theme=dark] .hero:not(.is-night){--sky-left:#1c344c;--sky-right:#304d69;--cloud-shade:#152a40}
body[data-theme=gray] .hero:not(.is-night){--sky-left:#344f66;--sky-right:#6a8498;--cloud-shade:#243c50}
body[data-theme] .hero.is-night{--sky-left:#111e35;--sky-right:#2b405f;--cloud-shade:#101c33;--cloud-opacity:.25}
body[data-theme] .hero.is-night.weather-sun,body[data-theme] .hero.is-night.weather-neutral{--cloud-opacity:0}
body[data-theme] .hero.is-night.weather-sun::after,body[data-theme] .hero.is-night.weather-partly::after{background:radial-gradient(ellipse at 105% 0%,#bdceff25,transparent 65%)}
body[data-theme] .hero.is-night .hero-metrics{background:#08162c88}
body[data-weather-backgrounds=off] .hero::before,body[data-weather-backgrounds=off] .hero::after{display:none}
@media(min-width:721px){body[data-theme] .hero-top{max-width:calc(100% - 190px)}}
@media(max-width:360px){body[data-theme] .hero-top{max-width:calc(100% - 112px)}body[data-theme] .hero-art{right:10px;width:94px;height:94px}body[data-theme] .hero-art .weather-icon{width:94px;height:94px}}
@media(forced-colors:active){body[data-theme] .hero{background:Canvas;color:CanvasText}body[data-theme] .hero p,body[data-theme] .hero-metrics{color:CanvasText;background:Canvas}body[data-theme] .hero::before,body[data-theme] .hero::after{display:none}}

/* RC17: a small corner reflection; the sun icon stays crisp and unfiltered. */
body[data-theme] .hero.weather-sun:not(.is-night)::after{background:radial-gradient(ellipse 130px 95px at 100% 0%,#ffe6a130 0%,#ffe6a110 42%,transparent 100%)}
body[data-theme] .hero.weather-sun:not(.is-night) .hero-art .weather-icon{filter:none}
@media(forced-colors:active){body[data-theme] .hero .hero-art .weather-icon{filter:none!important}}

/* RC19: full-series preparation without replacing the map while scrubbing. */
.model-preload{margin:4px 0 12px;color:var(--muted);font-size:12px;line-height:1.5}
.model-preload>div{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.model-preload button{border:0;background:var(--soft);color:var(--ink);padding:6px 10px;border-radius:8px;font:inherit;font-weight:650;cursor:pointer}
.model-preload progress{display:block;width:100%;height:4px;border:0;border-radius:4px;overflow:hidden;margin-top:7px;accent-color:var(--blue)}
.model-preload progress::-webkit-progress-bar{background:var(--line)}
.model-preload progress::-webkit-progress-value{background:var(--blue);border-radius:4px}
.model-preload progress::-moz-progress-bar{background:var(--blue);border-radius:4px}
.model-preload [hidden]{display:none}
.model-controls .play-button[aria-busy="true"]{opacity:.7}
.model-image:not([src]){visibility:hidden}

/* RC20 — personal language setting shares the appearance sheet. */
#theme-toggle{width:auto;min-width:42px;gap:5px;padding-inline:8px}
.language-badge{font-size:10px;line-height:1;font-weight:800;letter-spacing:.03em}
.language-settings{margin-bottom:22px}
.language-settings>label{display:block;font-weight:700;margin-bottom:8px;font-size:13px}
.language-settings .model-select{width:100%;font-size:16px;min-height:46px;margin:0}
.language-settings .note{margin:9px 0 0}
.appearance-editor .section-heading{margin-top:8px}
.theme-picker button{min-width:0;overflow-wrap:anywhere}
.tabbar button span{font-size:clamp(9px,2.65vw,11px);overflow-wrap:anywhere}

/* RC37: 2 px lower iPhone-only clearance for the rounded bottom corners.
   WebToApp can report a zero safe-area inset, so retain a modest fallback. */
.neapp-iphone .tabbar{
 padding-left:max(10px,env(safe-area-inset-left));
 padding-right:max(10px,env(safe-area-inset-right));
 padding-bottom:max(18px,calc(env(safe-area-inset-bottom) - 2px));
}

/* RC22: internal Snow Map, bottom navigation remains in the app shell. */
.snow-entry{width:100%;margin-top:16px;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.snow-view{display:flex;flex:1;min-height:0;flex-direction:column;width:100%;padding-top:env(safe-area-inset-top)}
.snow-back{display:flex;align-items:center;gap:12px;padding:4px 12px;min-height:37px;border-bottom:1px solid var(--line);font-size:12px}
.snow-back button{display:flex;align-items:center;gap:5px;height:32px;font-size:11px}.snow-back button svg{width:17px;height:17px}.snow-back small{margin-left:auto;color:var(--muted);font-size:9px}
#snow-frame{display:block;flex:1;min-height:0;width:100%;height:0;border:0;background:var(--paper)}

/* RC24: accessible language label; Snow Map below the hourly/meteogram card. */
.language-settings>label.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.snow-shortcut{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;margin:12px 0 0;padding:8px 12px;border:1px solid var(--snow-line);border-radius:12px;background:linear-gradient(110deg,var(--snow-start),var(--snow-end));color:var(--snow-ink);text-align:left}
.snow-shortcut>.icon:first-child{width:22px;height:22px;color:var(--snow-icon);flex-shrink:0}
.snow-shortcut>span{font-weight:750;font-size:12px}.snow-shortcut>small{font-size:10px;color:var(--snow-muted);margin-left:auto}.snow-shortcut>.icon:last-child{width:16px;height:16px;flex-shrink:0}
.snow-shortcut:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

.snow-shortcut{--snow-start:#e7f4ff;--snow-end:#d8ebfb;--snow-line:#b7d6ed;--snow-ink:#17476b;--snow-muted:#37627e;--snow-icon:#177bb4}
body[data-theme=dark] .snow-shortcut{--snow-start:#1d3a50;--snow-end:#24495f;--snow-line:#3e647f;--snow-ink:#e3f4ff;--snow-muted:#b4d5e9;--snow-icon:#7dd3fc}
@media(hover:hover){.snow-shortcut:hover{border-color:var(--snow-icon)}}

.snow-shortcut+.current-details{margin-top:12px}

/* RC27: world locations, readable country context and compact saved chips. */
.city-chip{min-width:0;display:flex;align-items:center;justify-content:center;gap:4px}
.city-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.city-chip>small{font-size:8px;opacity:.75;flex-shrink:0}
.saved-place>span,.city-result>span{min-width:0;overflow-wrap:anywhere}
.saved-place>span{flex:1}.saved-place small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:3px;line-height:1.4}
.saved-place button{flex-shrink:0}.city-result small{white-space:normal;line-height:1.4}
.forecast-zone{display:block;font-size:9px;opacity:.8;margin-top:2px;overflow-wrap:anywhere}

/* RC32: pinch-and-pan model maps on mobile and in the fullscreen viewer. */
.map-wrap.model-zoom-ui{position:relative;isolation:isolate;overflow:hidden;border-radius:11px}
.model-zoom-viewport{display:block;position:relative;width:100%;min-height:180px;overflow:hidden;background:#eaf0f5;touch-action:none;cursor:zoom-in;overscroll-behavior:contain}
.model-zoom-viewport[data-zoomed="true"]{cursor:grab}
.model-zoom-viewport[data-zoomed="true"]:active{cursor:grabbing}
.model-zoom-layer{position:relative;width:100%;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-select:none}
.model-zoom-layer img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.map-wrap .model-zoom-layer .model-image{width:100%;max-width:100%;height:auto;max-height:72dvh;object-fit:contain}
.model-zoom-ui .map-expand{z-index:2;position:absolute;right:8px;top:8px;background:#ffffffed;box-shadow:0 2px 9px #1f2b3530;color:#24343e}
.model-zoom-buttons{position:absolute;z-index:2;right:8px;bottom:8px;display:flex;gap:3px;background:#ffffffed;color:#24343e;border:1px solid #d3dce2;border-radius:11px;padding:3px;box-shadow:0 3px 12px #1f2b3530}
.model-zoom-buttons button,.model-zoom-modal-buttons button{min-width:37px;min-height:37px;border-radius:8px;font-size:21px;line-height:1;font-weight:650;touch-action:manipulation}
.model-zoom-buttons [data-model-zoom="reset"],.model-zoom-modal-buttons [data-model-zoom="reset"]{font-size:11px;font-weight:800;min-width:39px}
.model-zoom-buttons button:disabled,.model-zoom-modal-buttons button:disabled{opacity:.38}
.model-zoom-buttons button:not(:disabled):active,.model-zoom-modal-buttons button:not(:disabled):active{background:#e2edf3}
.model-zoom-hint{font-size:10px;line-height:1.55;color:var(--muted);margin:4px 1px 11px}
.model-tomorrow{border-radius:9px;border:1px solid var(--line);background:var(--soft);font-size:11px;font-weight:750;padding:0 8px;min-height:36px;white-space:nowrap}
.model-tomorrow:active{background:var(--yellow)}
.model-detail-dialog .sheet-content{display:flex;flex-direction:column;overflow:hidden}
.model-zoom-modal{display:flex;flex-direction:column;min-height:0;flex:1;position:relative}
.model-zoom-fullscreen{min-height:180px;flex:1;border-radius:10px;border:1px solid var(--line)}
.model-zoom-fullscreen .model-zoom-layer{position:absolute;inset:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}
.model-zoom-fullscreen .model-zoom-layer img{width:100%;height:100%;object-fit:contain;max-width:none;max-height:none}
.model-zoom-modal-buttons{position:absolute;z-index:2;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:4px;background:#ffffffed;color:#24343e;border-radius:12px;border:1px solid #ced9e1;box-shadow:0 3px 15px #1f2b3536}
.model-zoom-modal-buttons button{min-width:50px;min-height:45px}
.model-zoom-modal-note{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 2px}
@media(max-width:410px){.model-controls{gap:4px}.model-tomorrow{font-size:10px;padding-inline:5px}.model-controls #speed{max-width:57px}}

/* RC33: keep the bottom map legend completely clear. Zoom buttons live
   directly below the fullscreen icon at the upper-right edge. */
.map-wrap .model-zoom-buttons{
 top:57px;
 right:8px;
 bottom:auto;
 left:auto;
 flex-direction:column;
 align-items:center;
 width:44px;
 gap:2px;
 padding:3px;
}
.map-wrap .model-zoom-buttons button{
 min-width:36px;
 width:36px;
 min-height:34px;
 height:34px;
 padding:0;
}

/* RC34: gusts at every hour, with a stronger colour as gusts increase. */
.hourly-overview .hourly button{min-height:116px;gap:2px;padding-block:2px 6px}
.hourly-overview .hourly-wind{
 display:inline-flex;align-items:center;justify-content:center;gap:3px;
 min-height:18px;white-space:nowrap;line-height:1.1;
 font-size:10px;font-weight:750;color:var(--muted)
}
.hourly-overview .hourly-wind .icon{width:16px;height:16px;flex-shrink:0}
.hourly-overview .hourly-wind small{color:inherit;font-size:8px;font-weight:600}
.hourly-overview .hourly-wind.breezy{color:#d9992b}
.hourly-overview .hourly-wind.strong{color:#ef5c59}
.hourly-overview .hourly-rain{margin-bottom:1px}
.wind-detail-icon .icon{width:17px;height:17px;color:var(--muted)}

/* RC38: no preset cities — first-run place selection. */
.location-welcome{
 margin:18px 0 26px;padding:28px 23px 25px;border-radius:19px;
 background:linear-gradient(155deg,var(--soft),var(--paper) 80%);
 border:1px solid var(--line);box-shadow:var(--shadow);
 display:flex;flex-direction:column;align-items:flex-start;gap:13px;
}
.location-welcome-mark{
 display:grid;place-items:center;width:57px;height:57px;border-radius:16px;
 background:var(--yellow);color:#212a30;box-shadow:0 6px 20px #af8a1830;
}
.location-welcome-mark .icon{width:29px;height:29px}
.location-welcome-eyebrow{font-size:10px;font-weight:800;letter-spacing:1.4px;color:var(--muted)}
.location-welcome h1{font:500 32px/1.13 Oswald,sans-serif;margin:0;color:var(--ink)}
.location-welcome>p{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 6px}
.location-welcome .wide-button{min-height:51px;font-size:13px}
.location-welcome .wide-button .icon{color:inherit;width:20px;height:20px}
.location-welcome>small{font-size:10px;line-height:1.55;color:var(--muted);margin-top:2px}
.first-place-intro{display:flex;align-items:center;gap:13px;margin-bottom:19px}
.first-place-intro .location-welcome-mark{width:47px;height:47px;flex:none;border-radius:13px}
.first-place-intro .location-welcome-mark .icon{width:24px;height:24px}
.first-place-intro p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}
.place-onboarding .city-results{margin-top:10px;min-height:60px}
.first-place-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;margin:13px 0 8px}
.first-place-divider:before,.first-place-divider:after{content:'';height:1px;background:var(--line);flex:1}
.place-onboarding .location-button{min-height:48px}

/* RC39: wind bearings and separate rain/snow amounts in the daily forecast. */
.daily-grid,.forecast-day>summary.daily-grid{
 grid-template-columns:minmax(51px,1.34fr) repeat(2,minmax(22px,.6fr)) repeat(2,minmax(24px,.69fr)) minmax(33px,.8fr) minmax(50px,1.1fr) 11px;
 gap:4px;
}
.daily-table-head>span:nth-last-child(2){font-size:9px;letter-spacing:-.15px}
.daily-wind-cell{display:flex;justify-content:center;align-items:center;color:var(--ink)}
.daily-wind{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:24px;line-height:1}
.daily-wind-arrow{display:block;color:#29769b;transform-origin:center center}
.daily-wind-arrow .icon{height:19px;width:19px;stroke-width:2.4}
.daily-wind small{font-size:9px;font-weight:700;color:var(--ink);line-height:1.25}
.daily-rain{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;color:var(--ink);font-size:11px;font-variant-numeric:tabular-nums;font-weight:750}
.daily-precip-entry{display:flex;align-items:center;justify-content:center;gap:2px;white-space:nowrap;line-height:1.2}
.daily-precip-entry strong{font-weight:800;color:var(--ink)}
.daily-precip-entry small{font-size:9px;font-weight:750;color:var(--ink)}
.daily-precip-icon{display:flex;color:#236f99}
.daily-precip-icon .icon{width:11px;height:11px;stroke-width:2.1}
.daily-snow .daily-precip-icon{color:#538bbf}
@media(max-width:360px){
 .daily-grid,.forecast-day>summary.daily-grid{grid-template-columns:minmax(46px,1.25fr) repeat(2,minmax(21px,.6fr)) repeat(2,minmax(23px,.65fr)) minmax(30px,.75fr) minmax(48px,1.15fr) 9px;gap:3px;padding-left:6px;padding-right:6px}
 .daily-table-head>span:nth-last-child(2){font-size:8px}
 .daily-wind-arrow .icon{width:17px;height:17px}
 .daily-precip-entry{gap:1px}
 .daily-precip-icon .icon{width:10px;height:10px}
 .daily-rain{font-size:10px}
}

/* RC40: compact Facebook cards, below "Iz uredništva" on the home screen. */
.ne-fb-app-section{margin:18px 0 3px;min-width:0}
.ne-fb-app-heading{margin:0 0 11px}
.ne-fb-app-heading h2{display:flex;align-items:center;gap:8px;font-size:20px}
.ne-fb-app-badge{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#1877f2;color:#fff;font:800 19px/1 Arial,sans-serif;padding-top:3px}
.ne-fb-app-heading>a{font-size:10px;font-weight:700}
.ne-fb-app-carousel{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-left:1px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:2px 1px 8px}
.ne-fb-app-card{flex:0 0 min(69vw,250px);min-width:0;display:flex;flex-direction:column;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:var(--paper);text-decoration:none;scroll-snap-align:start;box-shadow:0 2px 10px #1c34410a;color:var(--ink)}
.ne-fb-app-card:focus-visible{outline-offset:-3px}
.ne-fb-app-image{display:flex;align-items:center;justify-content:center;overflow:hidden;width:100%;aspect-ratio:16/9;background:var(--soft)}
.ne-fb-app-image img{display:block;width:100%;height:100%;object-fit:cover}
.ne-fb-app-image-empty{background:linear-gradient(145deg,#304e68,#172b3b 73%);color:#fff;font:800 19px/1 Oswald,sans-serif;letter-spacing:.5px}
.ne-fb-app-image-empty span span{color:var(--yellow)}
.ne-fb-app-content{display:flex;flex:1;flex-direction:column;padding:10px 11px 11px;gap:7px;min-height:119px}
.ne-fb-app-meta{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:10px;color:var(--muted)}
.ne-fb-app-meta strong{color:var(--ink);font-weight:750}
.ne-fb-app-meta time{white-space:nowrap}
.ne-fb-app-copy{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.47;min-height:48px;overflow-wrap:anywhere}
.ne-fb-app-read{margin-top:auto;color:#2673bc;font-size:10px;font-weight:750}
.ne-fb-app-hint{font-size:9px;color:var(--muted);margin:3px 0 0;text-align:right}
body[data-theme=dark] .ne-fb-app-read{color:#9acfff}
@media(max-width:360px){.ne-fb-app-card{flex-basis:min(74vw,233px)}.ne-fb-app-content{padding:9px}.ne-fb-app-copy{font-size:10px}}

/* RC42: Slovenia model selector (C-LAEF / ICON-D2) within Modeli. */
.model-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 13px}
.model-choice button{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.15px}
.model-choice button.selected{background:var(--yellow);border-color:var(--yellow);color:#20242a;box-shadow:0 2px 7px #9b750b19}
.model-choice button:not(.selected):hover{border-color:var(--blue);color:var(--ink)}
@media(min-width:721px){.models-layout .model-list{max-height:min(70dvh,640px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}}

/* RC43: saturated blue shell with inverse white cards. This only alters the
   existing "Modra" theme; light, dark, gray and map/fullscreen UI are kept. */
body[data-theme=blue]{
 --blue-canvas:#0e4d86;--blue-deep:#0b3869;--blue-text:#f8fbff;
 --blue-subtle:#d5e6f5;--paper:#fff;--ink:#142d48;--soft:#edf4fa;
 --line:#d7e4ef;--muted:#52687e;--blue:#1769ac;--orange:#c05c0b;
 --shadow:0 7px 22px #06294c25;
 background:#0b3869;color-scheme:light;
}
body[data-theme=blue] .phone{background:var(--blue-canvas);color:var(--blue-text)}
body[data-theme=blue] #screen{
 background:linear-gradient(180deg,#0e5291 0%,#0d477f 46%,#0b3869 100%);
 color:var(--blue-text);
}
body[data-theme=blue] .app-header{
 background:#0e5291;color:var(--blue-text);
 border-bottom:1px solid #ffffff14;
}
body[data-theme=blue] .app-header .logo-button img{filter:brightness(0) invert(1)}
body[data-theme=blue] .app-header .icon-button:hover{background:#ffffff1c}
body[data-theme=blue] .tabbar{
 background:#fff;color:var(--ink);border-top-color:#d7e4ef;
 box-shadow:0 -5px 19px #061f3b18;
}
body[data-theme=blue] .tabbar button.active{color:#0e4d86}
body[data-theme=blue] .tabbar button.active .icon{
 color:#fff;background:#1363a6;box-shadow:0 0 0 4px #1363a6;
}
body[data-theme=blue] .tabbar button:hover{background:#edf4fa}

/* Titles and supporting text sitting directly on the blue canvas. */
body[data-theme=blue] #screen :is(.page-heading h1,.date-line h2,.section-heading h2,.section-heading h3){color:#fff}
body[data-theme=blue] #screen :is(.page-heading small,.section-heading>a,.section-heading>button,.section-heading>span,.current-details time,.location-status,.forecast-update,.daily-help,.daily-guide,.model-zoom-hint,.map-caption,.model-preload,.mountain-selected-time,.ne-fb-app-hint,.note,.preview-footer,.loading){color:var(--blue-subtle)}
body[data-theme=blue] #screen .sun-times{color:var(--blue-subtle)}
body[data-theme=blue] #screen .sun-times strong{color:#fff}
body[data-theme=blue] #screen .empty{color:var(--blue-subtle)}
body[data-theme=blue] #screen .model-subhead{color:#fff}
body[data-theme=blue] #screen .model-subhead .badge{color:var(--ink)}

/* Floating white cards carry their own dark ink and muted labels. */
body[data-theme=blue] #screen :is(
 .current-weather-card,.condition-tile,.hourly-disclosure,.daily-forecast,
 .day-description,.day-button,.period,.chart-card,.hour-detail,
 .long-term-card,.upperair-card,.shortcuts button,.opera-teaser,
 .opera-panel,.mountain-conditions,.mountain-days button,.mountain-times,
 .mountain-facts>div,.model-list,.model-select,.model-controls select,
 .model-choice button,.model-tomorrow,.menu-group,.profile-head,
 .ne-fb-app-card,.location-welcome,.error-panel,.news-hero,.news-row,
 .article-copy,.article-tools
 ){
 background:#fff;color:var(--ink);border-color:var(--line);
}
body[data-theme=blue] #screen :is(.current-weather-card,.daily-forecast,.long-term-card,.upperair-card,.chart-card,.hourly-disclosure,.mountain-conditions,.ne-fb-app-card,.news-hero,.news-row){box-shadow:0 6px 18px #052b4c23}
body[data-theme=blue] #screen :is(.long-term-card,.upperair-card,.chart-card,.current-weather-card,.hourly-disclosure,.ne-fb-app-card) .section-heading h2{color:var(--ink)}
body[data-theme=blue] #screen :is(.long-term-card,.upperair-card,.chart-card,.current-weather-card,.hourly-disclosure,.ne-fb-app-card) :is(.note,.section-heading>span,.section-heading>button,.section-heading>a,.empty){color:var(--muted)}
body[data-theme=blue] #screen :is(.long-term-card,.upperair-card,.chart-card,.current-weather-card,.hourly-disclosure,.ne-fb-app-card) .sun-times strong{color:var(--ink)}
body[data-theme=blue] #screen .current-weather-card .hero{
 color:#fff;border-color:transparent;
}
body[data-theme=blue] #screen .current-weather-card .hero.is-night{--sky-left:#11284b;--sky-right:#31537e}
body[data-theme=blue] #screen .current-weather-card .hero-metrics{color:#fff}
body[data-theme=blue] #screen .current-weather-card .hourly{color:var(--ink)}
body[data-theme=blue] #screen .daily-table-head{background:#edf4fa;color:var(--muted)}
body[data-theme=blue] #screen .forecast-day[open]>summary{background:#edf4fa}
body[data-theme=blue] #screen .forecast-day .day-description{color:var(--ink)}
body[data-theme=blue] #screen .day-description .sun-times{color:var(--muted)}
body[data-theme=blue] #screen .day-description .sun-times strong{color:var(--ink)}
body[data-theme=blue] #screen .day-button.selected{background:#fff9e3;border-color:var(--yellow)}
body[data-theme=blue] #screen .hourly-meteogram-link{background:#edf5fd;color:#155b94}
body[data-theme=blue] #screen .period small{color:#1769ac}
body[data-theme=blue] #screen .mountain-facts strong{color:var(--ink)}

/* Transparent controls and white chips echo the approved blue preview. */
body[data-theme=blue] #screen :is(.city-chip,.city-add,.city-locate){
 background:#ffffff0f;border:1px solid #ffffff77;color:#fff;
}
body[data-theme=blue] #screen .city-chip.active{
 background:#fff;border-color:#fff;color:#10497e;font-weight:800;
}
body[data-theme=blue] #screen .city-locate.active{
 background:var(--yellow);border-color:var(--yellow);color:#20242a;
}
body[data-theme=blue] #screen .segmented:not(.theme-picker){
 background:#ffffff20;color:#fff;
}
body[data-theme=blue] #screen .segmented:not(.theme-picker) button.selected{
 background:#fff;color:#10497e;box-shadow:0 3px 9px #001b3d22;
}
/* The theme switcher is a pale card on the blue screen: keep all four
   labels dark, while the active choice remains highlighted in yellow. */
body[data-theme=blue] #screen .theme-picker{background:#eaf0f6;color:#20374e}
body[data-theme=blue] #screen .theme-picker button{color:#20374e}
body[data-theme=blue] #screen .theme-picker button.selected{background:var(--yellow);color:#20242a}
body[data-theme=blue] #screen .filter-row button{background:#fff;color:var(--ink);border-color:#e2ebf3}
body[data-theme=blue] #screen .filter-row button.selected{background:var(--yellow);color:#20242a;border-color:var(--yellow)}
body[data-theme=blue] #screen .model-choice button.selected{background:var(--yellow);color:#20242a;border-color:var(--yellow)}
body[data-theme=blue] #screen .model-list{border:1px solid var(--line);border-radius:11px;overflow:auto}
body[data-theme=blue] #screen .model-list button.selected{background:#fff6d6;color:var(--ink)}
body[data-theme=blue] #screen .model-controls>.icon-button{background:#fff;color:#155b94;border:1px solid var(--line)}
body[data-theme=blue] #screen .play-button{background:var(--yellow);color:#20242a}
body[data-theme=blue] #screen .model-preload button{background:#fff;color:var(--ink)}
body[data-theme=blue] #screen .model-preload progress{accent-color:var(--yellow)}
body[data-theme=blue] #screen .model-preload progress::-webkit-progress-value{background:var(--yellow)}
body[data-theme=blue] #screen .model-preload progress::-moz-progress-bar{background:var(--yellow)}
body[data-theme=blue] #screen .snow-shortcut{
 --snow-start:#fff;--snow-end:#eaf5ff;--snow-line:#c8e2f7;
 --snow-ink:#145181;--snow-muted:#386581;--snow-icon:#1769ac;
 box-shadow:0 4px 14px #052b4c1a;
}

/* News articles and secondary screens retain readable typography on blue. */
body[data-theme=blue] #screen .news-hero{
 border-radius:12px;border:1px solid var(--line);padding:10px;text-align:left;
}
body[data-theme=blue] #screen .news-row{
 border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0;
}
body[data-theme=blue] #screen :is(.news-hero,.news-row) .article-meta{color:var(--muted)}
body[data-theme=blue] #screen :is(.news-hero,.news-row) .tag{color:#20242a}
body[data-theme=blue] #screen .article-copy{padding:16px;border-radius:12px}
body[data-theme=blue] #screen .article-tools{border-radius:10px;padding:6px;margin:8px 0}
body[data-theme=blue] #screen .location-welcome{background:#fff}
body[data-theme=blue] #screen .location-welcome :is(h1,p,small){color:var(--ink)}
body[data-theme=blue] #screen .loading:before{border-color:#ffffff7a;border-top-color:var(--yellow)}
body[data-theme=blue] #screen .error-panel .wide-button{color:var(--ink)}
body[data-theme=blue] #screen .ne-fb-app-card :is(.ne-fb-app-copy,.ne-fb-app-meta,.ne-fb-app-meta strong){color:var(--ink)}
body[data-theme=blue] #screen .ne-fb-app-card .ne-fb-app-meta time{color:var(--muted)}
body[data-theme=blue] #screen .icon-style-setting h3{color:#fff}

/* Embedded map and fullscreen viewers must never inherit the blue scrim. */
body[data-theme=blue] #screen.is-map-view{background:#fff;color:var(--ink)}
body[data-theme=blue] #screen.is-map-view .segmented{background:#edf4fa;color:var(--ink)}
body[data-theme=blue] #screen.is-map-view .segmented button.selected{background:var(--yellow);color:#20242a}
body[data-theme=blue] #screen.is-map-view .opera-panel{background:#fff;color:var(--ink)}

/* RC44: individual outlined / colorful filled weather-pictogram selection. */
.icon-style-setting{margin:17px 0 7px}
.icon-style-setting h3{font-size:13px;font-weight:800;letter-spacing:.15px;margin:0 0 10px;color:var(--ink)}
.icon-style-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.icon-style-options button{min-width:0;min-height:109px;padding:11px 10px 12px;display:flex;flex-direction:column;gap:14px;align-items:stretch;border:2px solid var(--line);border-radius:13px;background:var(--paper);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.icon-style-options button.selected{border-color:var(--blue);box-shadow:0 0 0 2px #4894d022}
.icon-style-option-head{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:12px}
.icon-style-option-head strong{font-weight:800}
.icon-style-check{width:19px;height:19px;display:grid;place-items:center;opacity:0;border-radius:100%;background:var(--yellow);color:#27303c}
.icon-style-options button.selected .icon-style-check{opacity:1}
.icon-style-check .icon{width:13px;height:13px;stroke-width:2.8}
.icon-style-icons{display:flex;align-items:center;justify-content:center;gap:7px;min-height:37px}
.icon-style-icons .weather-icon{width:32px;height:32px;flex:none}
.icon-style-note{margin:10px 0 0}
@media(max-width:350px){.icon-style-options button{padding:9px 7px}.icon-style-icons{gap:3px}.icon-style-icons .weather-icon{width:28px;height:28px}}

/* RC47: compact hourly wind/gust/precipitation table; native horizontal scrolling. */
.chart-card{--wind-ink:#193e63;--wind-muted:#546a7d;--wind-accent:#b95108;--wind-pale:#fff0da;--wind-selection:#fff4c4;--wind-rain:#146ba2;min-width:0}
.gust-summary{display:flex;align-items:center;gap:7px;max-width:100%;margin:0 0 9px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--pale);color:var(--wind-ink);text-align:left;font-size:11px;line-height:1.5}
.gust-summary .icon{width:19px;height:19px;flex:none}.gust-summary strong{font-weight:800}.gust-summary.is-strong{background:var(--wind-pale);border-color:#f0d1a5;color:var(--wind-accent)}
.meteogram-gust-mark{color:var(--wind-accent)}
.forecast-metrics{margin-top:11px;min-width:0;color:var(--wind-ink)}
.forecast-metrics-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 7px}
.forecast-metrics-heading h3{font:700 17px/1.3 var(--heading-font,'Oswald'),sans-serif;margin:0;color:var(--wind-ink)}
.forecast-metrics-heading>span{font-size:10px;color:var(--wind-muted);white-space:nowrap}
.forecast-metrics-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:8px;scrollbar-width:thin;scrollbar-color:#b9cad8 transparent;touch-action:pan-x pan-y}
.forecast-metrics-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-size:11px;color:var(--wind-ink);line-height:1.3}
.forecast-metrics-table .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.forecast-metrics-table th,.forecast-metrics-table td{min-width:55px;width:55px;padding:5px 3px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;background:var(--paper);color:var(--wind-ink)}
.forecast-metrics-table tr>*:last-child{border-right:0}.forecast-metrics-table tbody tr:last-child>*{border-bottom:0}
.forecast-metrics-table tr>th:first-child{position:sticky;left:0;z-index:2;width:78px;min-width:78px;max-width:78px;padding:7px 8px;text-align:left;font-weight:700;box-shadow:2px 0 3px #1737580a}
.forecast-metrics-table thead th:first-child{z-index:3}.forecast-metrics-table thead th{padding:0;font-weight:600}
.forecast-hour-button{display:block;width:100%;min-height:40px;padding:7px 3px;color:inherit;background:transparent;font:inherit;font-weight:inherit;border-radius:0}
.forecast-metrics-table small{display:block;font-size:9px;font-weight:400;color:var(--wind-muted);margin-top:2px}
.forecast-metrics-table td{cursor:pointer;height:32px}.forecast-metrics-table tbody tr:first-child td{height:49px}
.forecast-metrics-table .metric-value{display:block}.forecast-gust-row .metric-value{font-weight:800}
.forecast-metrics-table .is-selected{background:var(--wind-selection);color:#253544}
.forecast-metrics-table .is-strong .metric-value{color:var(--wind-accent)}.forecast-metrics-table .has-rain .metric-value{color:var(--wind-rain);font-weight:700}
.wind-direction{display:block;height:21px;line-height:0;margin:0 0 2px}.wind-direction svg{display:inline-block;width:19px;height:19px;transform-origin:center}
.wind-calm,.wind-missing{display:block;height:21px;font-size:18px;line-height:21px}
.forecast-metrics-hint,.forecast-metrics-note{font-size:9px;line-height:1.45;color:var(--wind-muted);margin:5px 0 0}
.forecast-metrics-hint{font-size:10px}.forecast-metrics-scroll:focus-visible,.forecast-hour-button:focus-visible,.gust-summary:focus-visible{outline:2px solid #2079c4;outline-offset:-2px}
body[data-theme=dark] .chart-card{--wind-ink:#e4edf6;--wind-muted:#b0becb;--wind-accent:#ffbb79;--wind-pale:#49311f;--wind-selection:#624f1f;--wind-rain:#83c9f7}
body[data-theme=dark] .forecast-metrics-table .is-selected{color:#fff2c1}
body[data-theme=dark] .gust-summary.is-strong{border-color:#79502d}
body[data-theme=blue] #screen .forecast-metrics :is(h3,th,td,button){color:var(--wind-ink)}
body[data-theme=blue] #screen .forecast-metrics .is-selected{color:#253544}
body[data-theme=blue] #screen .forecast-metrics :is(.forecast-metrics-hint,.forecast-metrics-note,small),body[data-theme=blue] #screen .forecast-metrics-heading>span{color:var(--wind-muted)}
body[data-theme=blue] #screen .gust-summary{color:var(--wind-ink)}
body[data-theme=blue] #screen .gust-summary.is-strong,body[data-theme=blue] #screen .gust-summary.is-strong strong{color:var(--wind-accent)}
@media(min-width:700px){.forecast-metrics-table th,.forecast-metrics-table td{min-width:62px;width:62px}.forecast-metrics-table{font-size:12px}}

/* RC48: readable hourly values, light scrubber and on-demand explanation. */
#hour-range{appearance:none;-webkit-appearance:none;display:block;width:100%;height:38px;min-height:38px;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer;touch-action:pan-y}
#hour-range::-webkit-slider-runnable-track{height:4px;border:0;border-radius:99px;background:#d6dfe6;box-shadow:none}
#hour-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border:0;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 2px var(--paper)}
#hour-range::-moz-range-track{height:4px;border:0;border-radius:99px;background:#d6dfe6;box-shadow:none}
#hour-range::-moz-range-progress{height:4px;border:0;border-radius:99px;background:#d6dfe6}
#hour-range::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 2px var(--paper)}
body[data-theme=dark] #hour-range::-webkit-slider-runnable-track{background:#53616c}
body[data-theme=dark] #hour-range::-moz-range-track,body[data-theme=dark] #hour-range::-moz-range-progress{background:#53616c}
.forecast-metrics{margin-top:6px}
.forecast-metrics-heading{align-items:center;gap:6px;margin-bottom:6px}
.forecast-metrics-heading h3{font-size:21px;min-width:0}
.forecast-metrics-actions{display:flex;align-items:center;gap:3px;flex:none}
.forecast-metrics-actions>span{font-size:10px;white-space:nowrap;color:var(--wind-muted)}
.forecast-info-button{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--wind-ink)}
.forecast-info-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.forecast-info-button:hover{background:var(--soft)}
.forecast-metrics-scroll{scrollbar-width:none;border-radius:10px}
.forecast-metrics-scroll::-webkit-scrollbar{display:none}
.forecast-metrics-table{font-size:13px}
.forecast-metrics-table th,.forecast-metrics-table td{min-width:var(--forecast-hour-width,54px);width:var(--forecast-hour-width,54px);padding:7px 3px}
.forecast-metrics-table tr>th:first-child{width:80px;min-width:80px;max-width:80px;font-size:12px;padding:8px 7px;white-space:normal;overflow-wrap:anywhere}
.forecast-metrics-table thead th{padding:0;font-size:12px;font-weight:700}
.forecast-metrics-table small{font-size:10px;margin-top:3px;white-space:nowrap}
.forecast-hour-button{min-height:43px;padding:8px 1px}
.forecast-metrics-table td{height:43px}
.forecast-metrics-table tbody tr:first-child td{height:63px}
.forecast-metrics-table .metric-value{font-size:15px;font-weight:600}
.forecast-gust-row .metric-value{font-size:16px;font-weight:800}
.forecast-metrics-table .has-rain .metric-value{font-weight:700}
.forecast-metrics-table thead .is-selected{box-shadow:inset 0 2px 0 var(--yellow)}
.wind-direction{height:25px;margin-bottom:3px}.wind-direction svg{width:23px;height:23px;stroke-width:2}
.wind-calm,.wind-missing{height:25px;line-height:25px}
.forecast-metrics-hint{display:flex;justify-content:center;align-items:center;gap:7px;margin:7px 0 1px;font-size:11px}
.forecast-metrics-hint svg{width:26px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.meteogram-help{font-size:14px;line-height:1.65;color:var(--ink)}
.meteogram-help p{margin:0 0 15px}.meteogram-help p:last-child{margin-bottom:0}
body[data-theme=blue] #screen .forecast-metrics-actions>span{color:var(--wind-muted)}
body[data-theme=blue] #screen .forecast-metrics-actions .forecast-info-button{color:var(--wind-ink)}
@media(max-width:350px){.forecast-metrics-heading h3{font-size:20px}.forecast-metrics-actions>span{font-size:9px}.forecast-metrics-table .metric-value{font-size:14px}.forecast-gust-row .metric-value{font-size:15px}}
