/* Currency and weather stay inside the site, in a shared accessible dialog. */
.utility-dialog{width:min(1180px,calc(100% - 40px));max-height:92dvh;padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.utility-dialog::backdrop{background:#170c28aa;backdrop-filter:blur(7px)}
.utility-dialog-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 28px 20px;background:var(--surface);border-bottom:1px solid var(--line)}
.utility-dialog-header .eyebrow{font-size:10px;letter-spacing:2px;color:var(--purple)}
.utility-dialog-header h2{font-size:25px;font-weight:500;line-height:1.4;margin-top:5px}
.utility-dialog-header .icon-button{flex-shrink:0;width:40px;height:40px}
#utility-content{padding:23px 28px 28px}
.utility-intro{font-size:14px;line-height:1.7;margin:0 0 12px;color:var(--muted)}
.utility-small{font-size:11px;line-height:1.7;color:var(--muted);margin:0}
.utility-card{padding:21px;background:var(--surface);border:1px solid var(--line);border-radius:14px;min-width:0}
.utility-card h3{font-size:17px;font-weight:500;margin:0;line-height:1.5}
.utility-source{font-size:10px;line-height:1.8;color:var(--muted);margin:14px 0 0}
.utility-source a,.map-attribution a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.utility-empty{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;color:var(--muted);font-size:13px}
.utility-orbit{height:27px;width:27px;border:2px solid var(--line);border-top-color:var(--purple);border-radius:50%;animation:utility-spin .8s linear infinite}
@keyframes utility-spin{to{transform:rotate(360deg)}}
.utility-primary,.utility-text-button{font-size:12px;color:var(--purple);padding:8px 12px;border-radius:7px}
.utility-primary{color:#fff;background:var(--purple)}
.utility-text-button:hover{background:var(--surface-2)}
.utility-dialog button:focus-visible,.utility-dialog input:focus-visible,.utility-dialog select:focus-visible,.aimag-region:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.utility-dialog input,.utility-dialog select{width:100%;min-width:0;height:45px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.utility-dialog label{font-size:11px;line-height:1.6;color:var(--muted);display:flex;flex-direction:column;gap:7px}
.exchange-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:20px;align-items:start}
.exchange-tools{display:flex;flex-direction:column;gap:20px;min-width:0}
.exchange-converter{background:linear-gradient(135deg,var(--surface),var(--surface-2))}
.utility-card-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.utility-card-title p{margin:3px 0 0;font-size:12px;color:var(--muted)}
.utility-badge{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:var(--purple);background:var(--surface);border:1px solid var(--line);font-size:23px}
.converter-fields{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}
.converter-result{display:flex;flex-direction:column;gap:7px;padding:19px 0 14px;margin-top:8px}
.converter-result small{font-size:11px;color:var(--muted)}
.converter-result output{font-size:clamp(25px,3vw,36px);font-weight:500;line-height:1.3;color:var(--purple);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.converter-result>span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.history-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px}
.history-heading h3{font-size:23px;margin-top:5px}
.history-heading .utility-small{font-size:9px;letter-spacing:1.2px}
.history-change{text-align:right;display:flex;flex-direction:column;gap:5px;font-variant-numeric:tabular-nums}
.history-change strong{font-size:20px;font-weight:500}.history-change small{font-size:10px;color:var(--muted)}
.history-change.is-up strong{color:var(--purple)}.history-change.is-down strong{color:#16836d}
.history-periods,.weather-map-mode{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:9px;width:max-content;max-width:100%}
.history-periods{margin-bottom:12px}
.history-periods button,.weather-map-mode button{font-size:12px;color:var(--muted);padding:8px 15px;border-radius:7px;white-space:nowrap}
.history-periods button[aria-pressed=true],.weather-map-mode button[aria-pressed=true]{background:var(--surface);color:var(--purple);box-shadow:0 2px 8px #3116490d}
#currency-chart{position:relative;min-height:220px}
.rate-chart{display:block;width:100%;height:auto;touch-action:pan-y}
.chart-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5}.chart-label{fill:var(--muted);font-size:11px;font-family:var(--font-ui);font-variant-numeric:tabular-nums}
.chart-guide{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 4}
#chart-hover[hidden]{display:none}
.chart-tooltip{display:block;min-height:22px;font-size:11px;text-align:center;font-variant-numeric:tabular-nums;color:var(--purple)}
.history-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.history-stats div{display:flex;flex-direction:column;gap:7px}.history-stats small{font-size:10px;color:var(--muted)}.history-stats strong{font-size:12px;font-weight:500;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#history-source{margin-top:15px}.history-unavailable{min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;font-size:12px;line-height:1.8;color:var(--muted)}
.exchange-list{padding:20px 18px}.rates-list-header{display:flex;flex-direction:column;gap:15px}.rates-list-header>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.rates-list-header>div>span{font-size:10px;color:var(--muted)}
.rates-list-header .currency-search{position:relative;display:block}.currency-search>span{position:absolute;top:7px;left:13px;font-size:23px;color:var(--muted)}.currency-search input{padding-left:38px}
.rates-columns{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);padding:17px 5px 12px}
.all-rates-list{max-height:650px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px}
.rate-row{display:flex;align-items:center;gap:11px;padding:13px 7px;border-bottom:1px solid var(--line);width:100%;text-align:left;border-radius:7px}
.rate-row[aria-pressed=true],.rate-row:hover{background:var(--surface-2)}.rate-row[aria-pressed=true] .rate-row-name strong{color:var(--purple)}
.currency-symbol{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);color:var(--purple);font-size:14px;font-weight:500;direction:ltr}
.currency-flag img{display:block;width:28px;height:21px;object-fit:contain;border-radius:3px}
.currency-special.xau{color:#9d7017;background:#c3941720}.currency-special.xag{color:#697587;background:#8592a320}
.currency-select-label{position:relative}.selected-currency-icon{position:absolute;bottom:5px;left:8px;pointer-events:none}.currency-select-label select{padding-left:52px}
.utility-left .currency{display:inline-flex;align-items:center;gap:6px}.header-currency-flag{display:block;width:21px;height:16px;object-fit:contain;border-radius:2px;flex-shrink:0}
.rate-row-name{display:flex;flex-direction:column;gap:4px;min-width:0}.rate-row-name strong{font-size:12px;font-weight:500}.rate-row-name>span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.rate-row-value{margin-left:auto;display:flex;flex-direction:column;gap:4px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.rate-row-value strong{font-size:13px;font-weight:500}.rate-row-value small{font-size:9px;color:var(--muted)}
.weather-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.weather-toolbar .utility-intro{color:var(--ink);font-size:17px;font-weight:500;margin-bottom:3px}
.weather-music{display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:280px}.weather-music>.utility-small{text-align:right;font-size:10px}
.music-toggle{display:flex;align-items:center;gap:13px;padding:8px 11px;font-size:12px;color:var(--muted);border-radius:12px}.music-toggle:hover{background:var(--surface-2)}
.music-toggle .brand-toggle{width:55px;height:29px;opacity:.5;transition:opacity .2s}.music-toggle .brand-toggle i{width:21px;height:21px;top:4px;right:30px;transition:right .2s}.music-toggle.is-on{color:var(--purple)}.music-toggle.is-on .brand-toggle{opacity:1}.music-toggle.is-on .brand-toggle i{right:4px}
.weather-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;margin:18px 0 22px}.weather-overview.has-music{grid-template-columns:minmax(0,1fr) 360px}
.ub-hourly{padding:15px 17px;background:linear-gradient(135deg,var(--surface),var(--surface-2))}
.ub-hourly-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.ub-hourly-heading h3{font-size:17px;font-weight:500}.ub-hourly-heading .utility-small{font-size:10px;margin-top:2px}
.ub-timezone{font-size:9px;color:var(--purple);padding:5px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--line);white-space:nowrap}
.ub-hourly-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;outline-offset:4px}
.ub-hourly-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;font-variant-numeric:tabular-nums}.ub-hourly-card.is-night{background:color-mix(in srgb,var(--surface) 94%,#8b78bc 6%)}
.ub-hourly-card time{display:flex;flex-direction:column;align-items:center;gap:3px}.ub-hourly-card time>span{font-size:8px;color:var(--muted)}.ub-hourly-card time>strong{font-size:12px;font-weight:500}.ub-hourly-card .weather-glyph{width:27px;height:29px;margin:2px 0}.ub-hourly-card .ub-hourly-temp{font-size:23px;font-weight:500;line-height:1.2}.ub-hourly-condition{font-size:9px;line-height:1.5;color:var(--muted);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ub-hourly-wind{font-size:9px;color:var(--muted);white-space:nowrap}
#ub-hourly-status{font-size:9px;line-height:1.6;color:var(--muted);margin-top:10px}#ub-hourly-status .utility-text-button{font-size:10px;padding:3px 6px}.ub-hourly-attribution{display:block;font-size:8px;line-height:1.7}.ub-hourly-attribution a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.weather-music-player{width:360px;max-width:100%;margin:0;padding:0}.weather-music-player[hidden]{display:none}.weather-music-player iframe{display:block;width:360px;max-width:100%;height:203px;border:0;border-radius:10px}.weather-music-player p{margin-top:7px}
.weather-data-status{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-2);border-radius:9px;font-size:12px;color:var(--muted);margin-bottom:15px}.weather-data-status[hidden]{display:none}
.weather-map-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.weather-map-controls>label{width:250px}.weather-map-mode{align-self:flex-end}
.weather-map-section{background:linear-gradient(140deg,#f9f5fd,#f2f5fc);border:1px solid var(--line);border-radius:15px;overflow:hidden;padding:10px 10px 14px;margin-bottom:22px}
.weather-map-scroll{overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain}.mongolia-weather-map{display:block;width:100%;min-width:800px;height:auto;isolation:isolate}
.aimag-region{cursor:pointer;outline:none}.aimag-shape{fill:#e0d7ef;stroke:#fff;stroke-width:1.8;transition:fill .16s}.aimag-region:nth-child(3n) .aimag-shape{fill:#d9d6ed}.aimag-region:nth-child(3n + 1) .aimag-shape{fill:#e8deed}
.aimag-region:hover .aimag-shape,.aimag-region:focus-visible .aimag-shape{fill:#bba0d6}.aimag-region[aria-pressed=true] .aimag-shape{fill:#9f67c2;stroke:#79369f;stroke-width:2}
.aimag-label{pointer-events:auto}.aimag-label rect{fill:#fff;fill-opacity:.88;stroke:#d8c6e5;stroke-width:.5}.aimag-label text{font-family:var(--font-ui);fill:#352147}.aimag-name{font-size:13px;font-weight:500}.aimag-temp{font-size:12px;font-weight:400;font-variant-numeric:tabular-nums}
.aimag-region[aria-pressed=true] .aimag-label rect{fill:#723b9d;stroke:#723b9d;fill-opacity:1}.aimag-region[aria-pressed=true] .aimag-label text{fill:#fff}.aimag-region:focus-visible .aimag-label rect{stroke:var(--purple);stroke-width:2}
.aimag-leader{fill:none;stroke:#9465b1;stroke-width:1.2}.aimag-anchor{fill:#723b9d;stroke:#fff;stroke-width:1.5}
.aimag-shape.aimag-region:nth-child(3n){fill:#d9d6ed}.aimag-shape.aimag-region:nth-child(3n + 1){fill:#e8deed}.aimag-shape.aimag-region:hover{fill:#bba0d6}.aimag-shape.aimag-region[aria-pressed=true]{fill:#9f67c2;stroke:#79369f;stroke-width:2}
.mongolia-weather-map[data-mode=night] .aimag-shape{fill:#474264;stroke:#696681}.mongolia-weather-map[data-mode=night] .aimag-region:hover .aimag-shape{fill:#7b64a0}.mongolia-weather-map[data-mode=night] .aimag-region[aria-pressed=true] .aimag-shape{fill:#a36dce;stroke:#c9a3e7}
.mongolia-weather-map[data-mode=night] .aimag-shape.aimag-region{fill:#474264;stroke:#696681}.mongolia-weather-map[data-mode=night] .aimag-shape.aimag-region:hover{fill:#7b64a0}.mongolia-weather-map[data-mode=night] .aimag-shape.aimag-region[aria-pressed=true]{fill:#a36dce;stroke:#c9a3e7}
.map-caption{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:10px;color:var(--muted);padding:0 14px;margin-top:-8px}.map-attribution{font-size:8px;color:var(--muted);padding:12px 14px 0;margin:0}
.province-forecast-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.province-forecast-heading h3{font-size:21px;margin-top:5px}.province-forecast-heading .utility-small{font-size:9px;letter-spacing:1px}.province-current{display:flex;align-items:center;gap:10px}.province-current>strong{font-size:32px;font-weight:500;font-variant-numeric:tabular-nums}
.weather-glyph{width:27px;height:30px;flex-shrink:0;color:#bb892f}.weather-glyph.cloud,.weather-glyph.fog{color:#8893a5}.weather-glyph.rain,.weather-glyph.snow,.weather-glyph.storm{color:#668bbc}.weather-glyph.is-night{color:#8175b9}.weather-glyph.unknown{color:var(--muted)}
.forecast-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.forecast-day{border:1px solid var(--line);border-radius:11px;overflow:hidden;min-width:0}.forecast-day>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:var(--surface-2);font-size:11px}.forecast-day>header strong{font-weight:500}.forecast-day>header span{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.forecast-half{padding:12px;border-top:1px solid var(--line)}.forecast-half.night{background:#8775aa08}.forecast-half-label{font-size:9px;color:var(--muted)}.forecast-temperature{display:flex;align-items:center;gap:8px;margin:8px 0}.forecast-temperature strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.forecast-half>p{font-size:10px;line-height:1.6;color:var(--muted);min-height:32px;margin:0}.forecast-extra{display:flex;flex-wrap:wrap;gap:8px;font-size:9px;color:var(--muted);margin-top:8px;line-height:1.5}.forecast-note{margin-top:15px;font-size:10px}
.province-weather-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:22px}.province-weather-card{padding:12px 10px;border:1px solid var(--line);border-radius:9px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left;font-size:11px}.province-weather-card[aria-pressed=true],.province-weather-card:hover{background:var(--surface-2);border-color:var(--purple)}.province-weather-values{display:flex;gap:8px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
html[data-theme=dark] .weather-map-section{background:linear-gradient(140deg,#231b30,#1c2535)}
html[data-theme=dark] .aimag-shape,html[data-theme=dark] .aimag-region:nth-child(n) .aimag-shape{fill:#534366;stroke:#302839}
html[data-theme=dark] .aimag-region[aria-pressed=true] .aimag-shape{fill:#a36dce;stroke:#c9a3e7}
html[data-theme=dark] .aimag-shape.aimag-region[aria-pressed=true]{fill:#a36dce;stroke:#c9a3e7}
html[data-theme=dark] .aimag-label rect{fill:#30273b;stroke:#78618e}html[data-theme=dark] .aimag-label text{fill:#f4eafa}
html[data-theme=dark] .aimag-region[aria-pressed=true] .aimag-label rect{fill:#793ca6}html[data-theme=dark] .aimag-region[aria-pressed=true] .aimag-label text{fill:#fff}
@media(max-width:950px){.exchange-layout{grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr);gap:15px}.utility-card{padding:17px}.all-rates-list{max-height:630px}.rate-row-name>span{max-width:110px}.province-weather-list{grid-template-columns:repeat(4,minmax(0,1fr))}.forecast-half{padding:10px}.forecast-day>header{padding:10px;font-size:10px}.forecast-day>header span{font-size:9px}.forecast-extra{gap:5px;font-size:8px}.forecast-temperature strong{font-size:21px}}
@media(max-width:740px){.utility-dialog{width:calc(100% - 18px);max-height:94dvh;border-radius:15px}.utility-dialog-header{padding:17px 18px 15px}.utility-dialog-header h2{font-size:20px}.utility-dialog-header .eyebrow{font-size:8px}#utility-content{padding:17px 15px 20px}.utility-intro{font-size:12px}.utility-card{padding:17px}.exchange-layout{grid-template-columns:1fr;gap:17px}.exchange-tools{gap:17px}.exchange-list{padding:17px}.all-rates-list{max-height:380px}.rate-row-name>span{max-width:160px}.rate-row{padding-block:12px}.utility-card h3{font-size:16px}.history-heading h3{font-size:21px}.converter-fields{gap:10px}.converter-result output{font-size:29px}.history-stats{gap:10px}.history-stats strong{font-size:11px}.history-stats small{font-size:9px}#currency-chart{min-height:180px}.history-periods button{padding:8px 14px}.weather-toolbar{align-items:flex-start;gap:15px}.weather-toolbar .utility-intro{font-size:15px}.weather-toolbar .utility-small{font-size:10px}.weather-music{max-width:145px}.music-toggle{gap:7px;padding:6px 7px;font-size:10px;flex-shrink:0}.music-toggle .brand-toggle{width:44px;height:25px}.music-toggle .brand-toggle i{width:17px;height:17px;right:23px;top:4px}.music-toggle.is-on .brand-toggle i{right:4px}.weather-music>.utility-small{font-size:9px}.weather-music-player{margin-inline:auto}.weather-map-controls{gap:12px;align-items:flex-end}.weather-map-controls>label{width:45%;font-size:10px}.weather-map-controls select{font-size:12px;height:40px;padding:7px}.weather-map-mode button{font-size:10px;padding:8px}.weather-map-section{margin-inline:-4px;padding:6px 5px 13px}.map-caption{margin-top:8px;gap:6px;padding-inline:8px;font-size:9px}.map-attribution{padding:10px 8px 0;font-size:7px}.province-forecast-heading h3{font-size:17px}.province-current>strong{font-size:25px}.forecast-days{display:flex;overflow-x:auto;gap:9px;padding-bottom:9px;scroll-snap-type:x proximity;scrollbar-width:thin}.forecast-day{flex:0 0 145px;scroll-snap-align:start}.forecast-day>header{font-size:12px;padding:12px}.forecast-day>header span{font-size:10px}.forecast-half{padding:12px}.forecast-half>p{font-size:11px}.forecast-temperature strong{font-size:25px}.forecast-extra{font-size:10px;gap:10px}.province-weather-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.province-weather-card{padding:11px 8px;font-size:10px}.province-weather-values{gap:5px;font-size:9px}.weather-data-status{font-size:11px;align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:360px){.converter-fields{grid-template-columns:1fr}.history-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.province-weather-list{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-map-mode button{padding:8px 6px}.weather-toolbar .utility-small{font-size:9px}.music-toggle>span:last-child{display:none}.weather-music{max-width:115px}}
@media(prefers-reduced-motion:reduce){.utility-orbit{animation:none}.aimag-shape,.music-toggle .brand-toggle,.music-toggle .brand-toggle i{transition:none}}
@media(max-width:1050px){.weather-overview.has-music{grid-template-columns:minmax(0,1fr)}.weather-music-player{justify-self:center}}
@media(max-width:740px){.weather-overview{gap:16px;margin-block:16px 20px}.ub-hourly{padding:14px 12px}.ub-hourly-cards{display:flex;overflow-x:auto;gap:8px;padding-bottom:7px;scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-x:contain}.ub-hourly-card{flex:0 0 87px;scroll-snap-align:start;padding:11px 7px}.ub-hourly-card time>span{font-size:9px}.ub-hourly-card time>strong{font-size:13px}.ub-hourly-condition,.ub-hourly-wind{font-size:10px}.ub-hourly-heading h3{font-size:16px}.utility-left .currency{gap:5px}.header-currency-flag{width:18px;height:14px}}
@media(max-width:740px){.utility-inner{column-gap:8px;row-gap:6px;padding-block:7px}.utility-left{flex-wrap:wrap;gap:8px}.utility-right{flex-shrink:0}.utility-left .currency{font-size:9px;white-space:nowrap}}
