/* Visual language adapted from the supplied Avia Okno project. */
:root,[data-theme=light]{color-scheme:light;--bg:#f7f8fa;--panel:#fff;--panel2:#f3f4f6;--line:#e5e7eb;--text:#1a1d23;--sub:#6b7280;--muted:var(--sub);--cyan:#2563eb;--good:#087f5b;--bad:#dc2626;--warn:#a65a08;--positive-bg:#ecfdf5;--negative-bg:#fef2f2;--warning-bg:#fffbeb;--selected-bg:#eff6ff;--series-a:#2563eb;--series-b:#b87506;--series-c:#7c3aed;--series-d:#09815b;--grid-line:#e9edf2;--night-limit:#7c3aed;--cloud-dark:#dae2ed;--cloud-light:#64748b}
[data-theme=dark]{color-scheme:dark;--bg:#0f1117;--panel:#1a1d27;--panel2:#222633;--line:#2d3139;--text:#e5e7eb;--sub:#9ca3af;--cyan:#77a7ff;--good:#63d9a6;--bad:#ff8585;--warn:#efc06e;--positive-bg:#17382e;--negative-bg:#3b252b;--warning-bg:#352e22;--selected-bg:#202d45;--series-a:#77a7ff;--series-b:#ffc05b;--series-c:#bd9aff;--series-d:#63d9a6;--grid-line:#2d3139;--night-limit:#bd9aff;--cloud-dark:#243246;--cloud-light:#e6eef7}
body{background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
.shell{width:min(1200px,calc(100% - 56px))}.top{background:var(--panel);border-bottom:1px solid var(--line)}
.bar{min-height:66px}.brand{font-size:19px;font-weight:700;letter-spacing:-.4px;gap:11px}.brand small{font-size:11px;letter-spacing:0;font-weight:400;margin-top:3px}.mark{width:36px;height:36px;border-radius:10px;background:var(--selected-bg);color:var(--cyan);font-size:21px}.mark svg{width:22px;height:22px;fill:currentColor}
.topright{gap:10px}.topright>span{font-size:12px}.topright button{font-size:12px}.theme-toggle{width:48px;min-width:48px;padding:0;display:grid;place-items:center;background:var(--panel2)}.theme-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6}.theme-moon{display:block}.theme-sun{display:none}[data-theme=dark] .theme-moon{display:none}[data-theme=dark] .theme-sun{display:block}
.view-nav{gap:8px;padding-bottom:10px;overflow:auto}.view-nav a{font-size:13px;font-weight:500;padding:9px 13px;white-space:nowrap}.view-nav a:hover,.view-nav a[aria-current=page]{background:var(--panel2);border-color:transparent;color:var(--text)}
button{background:var(--panel2);font-weight:550;border-color:var(--line)}button:hover{background:var(--selected-bg)}a{text-underline-offset:3px}h1,h2,h3{font-weight:650;letter-spacing:-.3px}.eyebrow{font-size:10px;letter-spacing:.075em;color:var(--sub);font-weight:600}h2{font-size:18px}.fine{font-size:12px;line-height:1.65}
.temperature-intro{padding:28px 0 14px}.temperature-intro h1{font-size:26px;margin:5px 0 7px;letter-spacing:-.6px}.page-description{font-size:13px;margin:0 0 20px}.temperature-grid{gap:16px}.temperature-card{background:var(--panel);border:1px solid var(--line)!important;border-radius:14px;padding:20px;gap:8px}.temperature-card h2{font-size:15px;font-weight:600;min-height:42px}.temperature-card strong{font-size:44px;font-weight:650;color:var(--text);letter-spacing:-1.5px}.temperature-card span{font-size:11px}.temperature-card small{font-size:11px}.temperature-card[data-kind=observation] span{color:var(--good)}#temperature-state{font-size:11px;margin-top:12px}
.dispatch{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin:0 0 16px}.dispatch-head h2{font-size:18px}.seg,.mode{background:var(--bg)}.seg button[aria-pressed=true],.mode button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0000000b}.time-control{background:var(--bg);border-color:var(--line);margin-top:9px}.hour output{color:var(--cyan)}input[type=range]{accent-color:var(--cyan)}
.dispatch .station{background:var(--panel);box-shadow:none;border:1px solid var(--line);border-radius:12px;padding:14px;gap:8px}.dispatch .station[aria-pressed=true]{background:var(--selected-bg);border-color:var(--cyan);box-shadow:none}.station .station-code{font-size:10px;letter-spacing:.05em}.station .station-name{font-size:15px}.station .station-weather{font-size:12px}.station .weather-chip{border-color:var(--line);padding:4px 5px}.station .station-ceiling{color:var(--text);font-weight:600}.station .station-solar{color:var(--sub);font-size:11px}.station[data-tone=pass]{--card-status:var(--good);--card-tint:var(--positive-bg)}.station[data-tone=fail]{--card-status:var(--bad);--card-tint:var(--negative-bg)}.station[data-tone=unknown]{--card-status:var(--warn);--card-tint:var(--warning-bg)}.station[data-tone=neutral]{--card-status:var(--sub);--card-tint:var(--panel2)}.station .station-detail{color:var(--sub)}.station .wind-alert{background:var(--negative-bg)}
.notice{background:var(--warning-bg);border-color:var(--line);color:var(--warn)}.panel,.airport-section{background:var(--panel);border-color:var(--line);border-radius:14px;padding:20px}.insights{margin-top:16px}.panelhead h2{margin-top:5px}.window-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:15px}.window-card h3{font-size:14px;margin:6px 0 12px}.window-card strong{font-size:15px;color:var(--text)}.window-card p{font-size:12px}.common-window{background:var(--selected-bg);border:1px solid var(--line);font-size:13px;padding:13px}.freshness-panel,.feed-event{border-color:var(--line)}.freshness-item{font-size:12px}.freshness-panel>summary{font-size:13px}
#comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compare-chart{min-width:0}.compare-chart h3{font-size:13px;font-weight:600}.compare-chart text,.chart text{fill:var(--sub)}.compare-legend span:nth-child(1){--series:var(--series-a)!important}.compare-legend span:nth-child(2){--series:var(--series-b)!important}.compare-legend span:nth-child(3){--series:var(--series-c)!important}.compare-legend span:nth-child(4){--series:var(--series-d)!important}.window-ribbons{grid-column:1/-1;margin:0}.window-ribbon{background:var(--panel2);height:12px}.window-ribbons>div{font-size:12px;margin:12px 0}.window-ribbon i{opacity:.95}.window-ribbons>div:nth-child(1) i{background:var(--series-a)!important}.window-ribbons>div:nth-child(2) i{background:var(--series-b)!important}.window-ribbons>div:nth-child(3) i{background:var(--series-c)!important}.window-ribbons>div:nth-child(4) i{background:var(--series-d)!important}
svg [stroke="#74e6f1"],svg [stroke="#75e8f1"]{stroke:var(--series-a)}svg [fill="#74e6f1"],svg [fill="#75e8f1"]{fill:var(--series-a)}svg [stroke="#ffd17a"],svg [stroke="#ffb883"]{stroke:var(--series-b)}svg [fill="#ffd17a"],svg [fill="#ffb883"]{fill:var(--series-b)}svg [stroke="#bcafff"],svg [stroke="#a89efa"]{stroke:var(--series-c)}svg [fill="#bcafff"],svg [fill="#a89efa"]{fill:var(--series-c)}svg [stroke="#9be0ad"],svg [stroke="#8ee1b3"]{stroke:var(--series-d)}svg [fill="#9be0ad"],svg [fill="#8ee1b3"]{fill:var(--series-d)}svg [stroke="#84baff"]{stroke:var(--series-a)}svg [fill="#84baff"]{fill:var(--series-a)}svg [stroke="#ffffff20"],svg [stroke="#2a3c50"]{stroke:var(--grid-line)}svg [stroke="#d9e7f3"]{stroke:var(--sub)}
.chart{border-color:var(--line);--night-limit:var(--series-c)}.cloud-chart{--cloud-dark:#dae2ed;--cloud-light:#64748b}[data-theme=light] .cloud-cell{background:rgb(100 116 139 / var(--cover))}[data-theme=dark] .cloud-chart{--cloud-dark:#243246;--cloud-light:#e6eef7}.chart .missing{background:repeating-linear-gradient(135deg,var(--panel2) 0 3px,var(--line) 3px 4px)}.hour-track i.selected{outline-color:var(--text)}.verdict{background:var(--bg)}.route-flight,.route-flight[data-state=empty]{background:var(--bg);border-color:var(--line)}.route-flight[data-state=empty] [data-flight-status]{color:var(--text)}.flight-heading b{color:var(--cyan)}select,.obs textarea{background:var(--panel);color:var(--text);border-color:var(--line)}th,td{border-color:var(--line)}.empty-feed{background:var(--bg)}.push-actions button:first-child{background:var(--selected-bg);color:var(--cyan);border-color:var(--line)}
.shell .intro{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-height:0;padding:24px;margin:24px 0 16px}.intro:before,.intro:after{display:none}.shell .intro h1{font-size:28px}.shell .intro p{color:var(--sub)}.airport-card{background:var(--panel);border-color:var(--line)}.airport-card-head span:not(:empty){color:var(--sub);border-color:var(--line)}.airport-verdict{background:var(--warning-bg);color:var(--warn)}.airport-verdict[data-tone=restricted]{background:var(--negative-bg);color:var(--bad)}.airport-verdict[data-tone=clear]{background:var(--positive-bg);color:var(--good)}footer{font-size:11px;line-height:1.8;text-align:center;padding:24px 0}
@media(min-width:1050px){.top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1200px) minmax(0,1fr)}.top .bar{grid-column:2;grid-row:1;width:100%}.top .view-nav{grid-column:2;grid-row:1;justify-self:center;align-self:center;width:auto;margin:0;padding:0;transform:translateX(30px)}}
@media(max-width:1000px){.temperature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shell{width:calc(100% - 28px)}.bar{min-height:64px}.brand{font-size:16px}.brand small{font-size:10px}.topright>span{display:none}.temperature-intro{padding-top:22px}.temperature-intro h1{font-size:23px}.temperature-grid{gap:10px}.temperature-card{padding:15px;gap:7px}.temperature-card h2{font-size:13px;min-height:38px}.temperature-card strong{font-size:38px}.temperature-card span,.temperature-card small{font-size:10px}.dispatch,.panel,.airport-section{padding:16px}.dispatch-head{align-items:start}.dispatch-head h2{font-size:16px}.seg button{padding:7px;min-height:36px}.dispatch .stations{display:grid;grid-template-columns:1fr;overflow:visible;gap:10px}.dispatch .station{display:flex;flex-direction:column;padding:15px}.station .station-name{font-size:16px}.station .station-weather{font-size:13px}.station .station-solar{font-size:12px}.station .station-ceiling{font-size:13px}.station .station-result{margin-top:4px;padding:10px}.station-result strong{font-size:13px}.station .station-detail{font-size:12px}.station .weather-chip{padding:5px 7px}.grid{grid-template-columns:1fr}.evaluation{grid-row:auto}#comparison{grid-template-columns:1fr;gap:10px}.compare-chart svg{min-height:0}.compare-chart text{font-size:14px}.window-ribbons>div{grid-template-columns:105px minmax(0,1fr);font-size:11px;gap:8px}.window-grid{grid-template-columns:1fr}.chart text{font-size:14px}.airport-grid,.regional-grid{grid-template-columns:1fr}.airport-card{padding:15px}.airport-card-head h3{font-size:16px}.airport-verdict{font-size:13px}.airport-card-head span:not(:empty){font-size:11px}.time-control .hour{align-items:start;gap:8px}.hour output{white-space:nowrap}.shell .intro{padding:18px}.shell .intro h1{font-size:24px}.page-description{font-size:12px}.panelhead{flex-wrap:wrap}}
@media(max-width:380px){.shell{width:calc(100% - 20px)}.topright{gap:6px}.brand small{display:none}.brand{font-size:14px;gap:7px}.mark{width:30px;height:30px}.topright #refresh{font-size:11px;padding:7px}.theme-toggle{width:40px;min-width:40px}.dispatch-head{flex-wrap:wrap}.temperature-card{padding:12px}}
.station .station-ident{display:flex;flex-direction:column;gap:6px}.station .station-ceiling{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--sub);line-height:1.5}.station .station-ceiling b{font-size:13px;color:var(--text);font-weight:600}.station .station-weather{line-height:1.6}
@media(max-width:760px){.time-control .hour{flex-wrap:wrap}.time-control .hour output{flex-basis:100%;font-size:12px}.station .station-ceiling b{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.outlook-badge{font-size:11px;color:var(--sub);background:var(--panel2);border-radius:99px;padding:7px 10px;white-space:nowrap}.outlook-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.outlook-card{padding:17px;border:1px solid var(--line);border-radius:12px;min-width:0}.outlook-card h3{font-size:13px;min-height:36px;margin:0 0 8px}.outlook-card strong{display:block;font-size:32px;font-weight:650;letter-spacing:-1px;color:var(--sub)}.outlook-card[data-kind=pass] strong{color:var(--good)}.outlook-card[data-kind=fail] strong{color:var(--bad)}.outlook-card[data-kind=neutral] strong{font-size:21px;letter-spacing:-.5px;line-height:1.8}.outlook-card p{font-size:12px;margin:8px 0}.outlook-card small{display:block;font-size:11px;color:var(--sub);line-height:1.6}.outlook-key{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:11px;color:var(--sub);margin:18px 0}.outlook-key span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--sub)}.outlook-key .outlook-pass:before{background:var(--good)}.outlook-key .outlook-fail:before{background:var(--bad)}.outlook-timeline{padding-top:6px}.outlook-axis{display:grid;grid-template-columns:170px minmax(0,1fr) 20px;gap:12px;color:var(--sub);font-size:10px;margin-bottom:10px}.outlook-axis>div{display:flex;justify-content:space-between;gap:4px}.outlook-axis>div span{white-space:nowrap}.outlook-row{border-bottom:1px solid var(--line)}.outlook-row summary{display:grid;grid-template-columns:170px minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:52px;cursor:pointer;list-style:none}.outlook-row summary::-webkit-details-marker{display:none}.outlook-name{font-size:12px;font-weight:550}.outlook-track{display:block;height:14px;background:var(--panel2);position:relative;overflow:hidden;border-radius:5px}.outlook-segment{position:absolute;top:0;height:100%;background:var(--line);border-right:1px solid var(--panel)}.outlook-segment[data-kind=pass]{background:var(--good)}.outlook-segment[data-kind=fail]{background:var(--bad)}.outlook-segment[data-kind=unknown]{background:repeating-linear-gradient(135deg,var(--panel2) 0 4px,var(--line) 4px 6px)}.outlook-expand{color:var(--sub);font-size:15px}.outlook-row[open] .outlook-expand{transform:rotate(45deg)}.outlook-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0 18px}.outlook-detail p{margin:0;padding:10px 12px;border-left:3px solid var(--line);border-radius:5px;background:var(--bg);font-size:11px}.outlook-detail p[data-kind=pass]{border-color:var(--good)}.outlook-detail p[data-kind=fail]{border-color:var(--bad)}.outlook-detail b,.outlook-detail span{display:block;line-height:1.7}.outlook-detail b{color:var(--text);font-weight:550}.outlook-row summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:6px}
@media(max-width:1000px){.outlook-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.outlook-summary{gap:10px}.outlook-card{padding:13px}.outlook-card h3{font-size:12px;min-height:34px}.outlook-card strong{font-size:29px}.outlook-card[data-kind=neutral] strong{font-size:18px}.outlook-card p{font-size:11px}.outlook-card small{font-size:10px}.outlook-axis{display:block}.outlook-axis>span{display:none}.outlook-axis>div{font-size:9px}.outlook-axis>div span:nth-child(2),.outlook-axis>div span:nth-child(4){display:none}.outlook-row summary{grid-template-columns:minmax(0,1fr) 20px;gap:7px;padding:12px 0}.outlook-name{grid-column:1;grid-row:1;font-size:12px}.outlook-track{grid-column:1/-1;grid-row:2;height:16px}.outlook-expand{grid-column:2;grid-row:1}.outlook-detail{grid-template-columns:1fr}.outlook-key{font-size:10px;gap:9px 12px}.outlook-badge{font-size:10px}}
.world-clocks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--line)}
.world-clocks>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:7px 4px;background:var(--panel);min-width:0}
.world-clocks span{color:var(--sub);font-size:12px}
.world-clocks time{color:var(--text);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.station .wind-bearing,.checks .wind-bearing{gap:6px;color:var(--text);font-weight:700}
.wind-bearing .wind-arrow{width:25px;height:25px;flex:none;color:var(--cyan);stroke:currentColor}
.wind-bearing .wind-north{fill:none;stroke:currentColor;stroke-width:2}
.wind-bearing .wind-compass{fill:none;stroke:currentColor;stroke-width:1;opacity:.55}
.wind-bearing .wind-origin{fill:currentColor;stroke:none}
.wind-alert .wind-bearing,.wind-alert .wind-bearing .wind-arrow{color:var(--bad)}
.station .wind-rumb{white-space:normal}
@media(min-width:1050px){.top .world-clocks{grid-column:2;grid-row:2}}
@media(max-width:600px){.world-clocks>div{flex-direction:column;gap:2px}.world-clocks span{font-size:clamp(9px,2.8vw,12px)}}
.outlook-breakdown{display:flex;height:7px;margin:10px 0 8px;border-radius:5px;overflow:hidden;background:var(--line)}
.outlook-breakdown [data-kind=pass]{background:var(--good)}
.outlook-breakdown [data-kind=fail]{background:var(--bad)}
.outlook-grades{display:grid;gap:5px;margin:0;padding:0;list-style:none;font-size:11px;color:var(--sub)}
.outlook-grades li{display:flex;align-items:baseline;gap:5px}
.outlook-grades li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--sub);flex:none;align-self:center}
.outlook-grades [data-kind=pass]::before{background:var(--good)}
.outlook-grades [data-kind=fail]::before{background:var(--bad)}
.outlook-grades b{margin-left:auto;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
.outlook-name small{display:block;font-size:10px}
.shift-period{display:flex;align-items:end;flex-wrap:wrap;gap:8px 12px;margin:12px 0}
.shift-period label{display:grid;gap:4px;color:var(--sub);font-size:12px}
.shift-period input,.shift-period select{min-width:0;max-width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);font:inherit}
.shift-period p{flex-basis:100%;margin:0;font-size:12px}
.shift-period p:empty{display:none}
.shift-route summary{cursor:pointer;color:var(--text);font-size:13px}
#weather-view .route-board{margin:12px 0 0;padding:11px 14px}
.route-board h2{font-size:1rem;margin:2px 0}
.route-board .route-flights{gap:7px;margin:7px 0}
.route-board .route-flight{padding:7px 10px}
.route-board .route-flight h3{margin:3px 0;font-size:.86rem}
.route-board .route-flight dl{gap:5px 12px;margin:5px 0 0}
.route-board .route-flight dd{margin-top:1px;font-size:.88rem}
.route-board .route-flight[data-state=empty] [data-flight-status]{font-size:.79rem;margin:4px 0 0;padding:3px 0 3px 7px}
.route-board > .fine{font-size:.72rem;margin:4px 0}
.route-board > .fine:empty{display:none}
.station .weather-chip{flex-wrap:wrap;min-width:0;max-width:100%}
.station .weather-chip .metric-value{white-space:nowrap;font-variant-numeric:tabular-nums}
.station .weather-chip .metric-source{font-size:9px}
.station .wind-bearing{flex:0 1 auto;min-width:0}
.checks li b{text-align:right}
@media(max-width:420px){.route-board .route-flight dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.station .weather-chip{gap:3px 6px}}
.airport-departure-scroll{overflow-x:auto}
.airport-departure-scroll table{width:100%;min-width:510px}
.airport-departure-scroll th,.airport-departure-scroll td{text-align:left;padding:8px 10px}
.airport-departure-scroll td:first-child,.airport-departure-scroll td:nth-child(3),.airport-departure-scroll td:nth-child(4){white-space:nowrap;font-variant-numeric:tabular-nums}
.site-visits{border-top:1px solid var(--line);padding:12px 0 20px}
.site-visits strong{margin-left:6px;color:var(--text);font-variant-numeric:tabular-nums}
.collapsible-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;min-height:36px}
.collapsible-panel>summary::-webkit-details-marker{display:none}
.collapsible-panel>summary:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:4px}
.collapsible-panel>summary::after{content:'';width:8px;height:8px;flex:none;margin-right:4px;border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);transform:rotate(45deg)}
.collapsible-panel[open]>summary::after{transform:rotate(225deg)}
.collapsible-panel>summary :is(h2,h3){margin:0}
.collapsible-panel>summary .eyebrow{display:block;margin-bottom:4px}
.collapsible-body{padding-top:10px}
.history-actions{display:flex;justify-content:flex-end;margin-bottom:6px}
.event-disclosure{border-top:1px solid var(--line);margin-top:14px;padding-top:8px}
.world-clocks{grid-template-columns:repeat(5,minmax(0,1fr))}
.route-flight [data-flight-status],.airport-departure-scroll td:last-child{overflow-wrap:anywhere;white-space:pre-line}
.airport-departure-scroll td:last-child{min-width:180px}
@media(max-width:600px){
 .collapsible-panel:has(.airport-departure-scroll)>summary{min-height:44px}
 .airport-departure-scroll{max-height:none;overflow:visible}
 .airport-departure-scroll table{display:block;min-width:0}
 .airport-departure-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .airport-departure-scroll tbody{display:grid;gap:8px}
 .airport-departure-scroll tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}
 .airport-departure-scroll td{min-width:0;padding:0;border:0;font-size:.82rem;overflow-wrap:anywhere}
 .airport-departure-scroll td:first-child{font-weight:750}
 .airport-departure-scroll td:nth-child(2){text-align:right}
 .airport-departure-scroll td:nth-child(3)::before,.airport-departure-scroll td:nth-child(4)::before{display:block;color:var(--sub);font-size:.72rem}
 .airport-departure-scroll td:nth-child(3)::before{content:'План · МСК'}
 .airport-departure-scroll td:nth-child(4)::before{content:'Вылетел · МСК'}
 .airport-departure-scroll td:last-child{grid-column:1/-1;min-width:0;border-top:1px solid var(--line);padding-top:7px}
}
.world-clocks{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:760px){.world-clocks{grid-template-columns:repeat(3,minmax(0,1fr))}}
button.mark{border:0;padding:0;flex:none}
.heli-scene{position:fixed;inset:0;pointer-events:none;z-index:20}
.heli-platform{position:absolute;top:46px;right:10px;width:70px;height:48px;color:var(--cyan);filter:drop-shadow(0 2px 4px #10223255);animation:platform-appear .55s ease-out both}
.heli-aircraft{position:absolute;top:0;left:0;width:32px;height:32px;fill:var(--cyan);transform-origin:top left;filter:drop-shadow(0 1px 2px #102232aa)}
#helicopter-logo.heli-away svg{opacity:0}
@keyframes platform-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.heli-platform{animation:none}}
.precipitation-details{margin:10px 0 16px}
.weather-preview{position:relative;isolation:isolate;overflow:hidden;min-height:65px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.weather-preview strong,.weather-preview small{position:relative;display:block}
.weather-preview small{color:var(--sub);margin-top:3px}
.weather-preview-effects,.weather-effect{position:absolute;inset:0;pointer-events:none}
.weather-preview-effects{z-index:-1}
.weather-effect i{position:absolute;top:-8px;left:var(--x);width:2px;height:14px;border-radius:4px;background:#62a7eb;opacity:.55;animation:weather-fall var(--duration) linear var(--delay) infinite}
.weather-effect[data-effect=snow] i,.weather-effect[data-effect=icePellets] i{width:5px;height:5px;background:#8dc9ec;animation-duration:calc(var(--duration)*2)}
.weather-effect[data-effect=icePellets] i{border-radius:1px;animation-duration:var(--duration)}
.weather-effect[data-effect=freezingRain] i{background:#a99aef;box-shadow:0 0 3px #9aa9ee}
.weather-effect[data-effect=fog] i,.weather-effect[data-effect=mist] i{top:calc(9px + var(--x)*.4);left:-15%;width:85%;height:16px;background:var(--sub);filter:blur(8px);opacity:.26;animation:weather-drift 7s ease-in-out var(--delay) infinite alternate}
.weather-effect[data-effect=mist] i{opacity:.16}
@keyframes weather-fall{to{transform:translate(16px,90px)}}
@keyframes weather-drift{to{transform:translateX(55%)}}
.precipitation-shares{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:6px;padding:0;margin:8px 0;list-style:none}
.precipitation-shares li{padding:7px 8px;border:1px solid var(--line);border-radius:7px;display:grid;gap:2px}
.precipitation-shares li[data-active=true]{background:var(--selected-bg);border-color:var(--cyan)}
.precipitation-shares span,.precipitation-shares small{font-size:11px;color:var(--sub)}
.precipitation-shares strong{font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.weather-effect i{animation:none;top:var(--x)}}
.temperature-reading{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0}
.temperature-weather-icon{width:clamp(52px,8vw,86px);height:auto;flex:none;filter:drop-shadow(0 2px 4px #1e48652b)}
@media(max-width:380px){.temperature-reading strong{font-size:32px}}
@media(max-width:760px){.temperature-weather-icon{width:clamp(48px,13vw,69px)}}
@media(prefers-reduced-motion:no-preference){
 .temp-cloud{animation:temp-cloud-drift 4s ease-in-out infinite alternate}
 .temp-rays{transform-origin:30px 28px;animation:temp-sun-spin 10s linear infinite}
 .temp-star{transform-origin:41px 18px;animation:temp-twinkle 2.8s ease-in-out infinite alternate}
 .temp-rain path,.temp-snow circle{animation:temp-fall 1.25s ease-in infinite}
 .temp-snow circle{animation-name:temp-snow-fall;animation-duration:2.4s}
 .temp-radar{transform-origin:30px 30px;animation:temp-sun-spin 3s linear infinite}
 .temp-fog path{animation:temp-cloud-drift 4s ease-in-out infinite alternate}
 .temp-rain path:nth-child(2),.temp-snow circle:nth-child(2),.temp-fog path:nth-child(2){animation-delay:-.45s}
 .temp-rain path:nth-child(3),.temp-snow circle:nth-child(3),.temp-fog path:nth-child(3){animation-delay:-.9s}
}
@keyframes temp-cloud-drift{from{transform:translateX(-3px)}to{transform:translateX(5px)}}
@keyframes temp-sun-spin{to{transform:rotate(360deg)}}
@keyframes temp-twinkle{from{opacity:.45;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}
@keyframes temp-fall{from{opacity:0;transform:translateY(-3px)}35%{opacity:1}to{opacity:0;transform:translate(-2px,6px)}}
@keyframes temp-snow-fall{from{opacity:0;transform:translate(-2px,-3px)}40%{opacity:1;transform:translate(2px,1px)}to{opacity:0;transform:translate(-1px,6px)}}
.wind-chart-legend{display:flex;flex-wrap:wrap;gap:5px 18px;padding:3px 0 7px;color:var(--sub);font-size:.78rem}
.wind-chart-legend span{display:inline-flex;align-items:center;gap:7px}
.wind-chart-legend i{width:19px;height:4px;border-radius:2px;background:var(--wind-line);box-shadow:0 0 0 1px var(--line)}
.mobile-install{margin:16px 0;color:var(--sub);font-size:.85rem}
.mobile-install summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
body{padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:760px){
 .shell input:not([type=range]):not([type=checkbox]),.shell select,.shell textarea{font-size:16px}
 .view-nav a,.topright button,.shift-period button{min-height:44px}
 .shift-period label{max-width:100%;min-width:0}
 .shift-period input,.shift-period select{width:100%}
 .journal-actions button,.journal-entry-actions button{min-height:44px}
}
.holiday-control{display:block;margin:.8rem 0;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px}
.holiday-mode .top{background-image:radial-gradient(ellipse at 20% 0%,#48c8ba24,transparent 50%),radial-gradient(ellipse at 87% 0%,#7b92f02b,transparent 55%)}
.holiday-mode .brand small::after{content:" ❄";color:var(--cyan)}
.holiday-mode .view-nav{border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,#63cbd5,#cfb37b,transparent) 1}
.model-compare-table{overflow:auto;max-height:16rem}
.model-compare-table table{width:100%;border-collapse:collapse;font-size:.8rem;text-align:right}
.model-compare-table th,.model-compare-table td{padding:.45rem .55rem;border-bottom:1px solid var(--line);white-space:nowrap}
.model-compare-table thead{position:sticky;top:0;background:var(--panel)}
