/* Korea portal v1.3.3: layout, typography and full-width weather. */
:root { --font-scale:1.12; }
html[data-font-size=small]{--font-scale:1}
html[data-font-size=default]{--font-scale:1.12}
html[data-font-size=large]{--font-scale:1.28}
[hidden]{display:none!important}
.korea-brand{display:inline-flex!important;align-items:center;gap:11px!important;min-width:0!important;width:auto!important;text-decoration:none;flex-shrink:0}
.portal-mark{display:grid;place-items:center;width:46px;height:50px;flex:0 0 46px;background:linear-gradient(145deg,#063f32,#108362);color:#c4ffdf;border:1px solid #3d9d7b;border-radius:14px;box-shadow:0 4px 12px #073c2616}
.portal-mark svg{width:37px;height:37px}
.portal-wordmark{display:flex!important;flex-direction:column;gap:5px;line-height:1.15;white-space:nowrap}
.portal-wordmark strong{font-size:calc(22px * var(--font-scale));font-weight:850;letter-spacing:-.8px;color:var(--text)}
.portal-wordmark small{display:flex!important;align-items:center;gap:7px;margin:0!important;letter-spacing:3px!important;font-weight:750!important;font-size:calc(9px * var(--font-scale))!important;color:var(--brand-strong)!important}
.portal-wordmark i{display:block;width:14px;height:2px;background:currentColor}
.brand-search{grid-template-columns:minmax(245px,auto) minmax(0,1fr) auto;gap:24px}
.auth-brand.korea-brand{margin-bottom:26px}.auth-brand .portal-wordmark{display:flex!important}.auth-brand .portal-wordmark strong{font-size:calc(21px * var(--font-scale))}.auth-brand span.portal-mark{font-size:inherit}
.systech-footer{display:inline-flex!important;padding:12px 16px;border:1px solid #2f5648;border-radius:16px;gap:14px!important;background:linear-gradient(130deg,#112d22,#071510);align-items:center;min-width:240px}
.systech-emblem{display:block!important;width:58px;height:76px;flex:0 0 58px}
.systech-footer .systech-emblem img{display:block;width:58px!important;height:76px!important;object-fit:contain}
.systech-footer>span:last-child{display:flex;flex-direction:column;gap:7px}.systech-footer strong{font-size:24px;color:#dcf8e9!important;letter-spacing:-.4px}.systech-footer small{font-size:10px!important;line-height:1.5;color:#9dbdac!important;letter-spacing:.2px!important}
.site-footer .footer-grid{align-items:start}.site-footer .footer-brand p{max-width:330px}
.fx-calculator input,.fx-calculator select{min-width:0}.fx-currencies{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr)}
.fx-mode-tabs{display:grid;grid-template-columns:1fr 1fr}.fx-mode-tabs button{white-space:normal;line-height:1.4;min-height:44px}
#fxRetry{display:inline-block;margin:10px 0 0;font-size:calc(11px * var(--font-scale));padding:4px 0}#fxProviderAttribution{display:block;font-size:calc(10px * var(--font-scale));color:var(--brand-strong);margin-top:8px}
.weather-detail-link{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--brand-strong);border:1px solid var(--line-strong);background:var(--brand-soft);border-radius:10px;padding:11px 7px;margin-top:15px;font-size:calc(12px * var(--font-scale));font-weight:700;text-decoration:none}
.weather-route{padding-top:30px;padding-bottom:40px;scroll-margin-top:20px}
.weather-route-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.weather-route-head h1{font-size:calc(28px * var(--font-scale));letter-spacing:-.7px;line-height:1.35;margin:7px 0}.weather-route-head p{margin:4px 0;font-size:calc(11px * var(--font-scale))}
.weather-back{padding:10px 15px;white-space:nowrap;border:1px solid var(--line);border-radius:10px;font-size:calc(12px * var(--font-scale));color:var(--muted);text-decoration:none}
.weather-city-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);padding:0 0 16px;margin-bottom:20px;flex-wrap:wrap}
.weather-city-tabs button{padding:12px 22px;font:inherit;font-size:calc(13px * var(--font-scale));font-weight:700;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer}
.weather-city-tabs button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}
.weather-hero{display:grid;grid-template-columns:1.1fr 1.5fr;gap:24px;align-items:center;padding:30px;border:1px solid #3c756c;border-radius:20px;color:#f2fbff;background:radial-gradient(ellipse at 20% -20%,#7ed4ca66,transparent 60%),linear-gradient(115deg,#174f50,#0d2b40 70%);min-height:190px}
.weather-hero-temp{display:flex;align-items:center;gap:24px}.weather-glyph{font-size:60px;line-height:1.4;filter:drop-shadow(0 5px 8px #0002)}.weather-hero-temp strong{font-size:calc(44px * var(--font-scale));line-height:1.1;font-variant-numeric:tabular-nums}.weather-hero-temp p{margin:8px 0 0;font-size:calc(14px * var(--font-scale));color:#c9e4e5}
.weather-hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.weather-metric{padding:12px 10px;border-left:1px solid #ffffff2e;display:flex;flex-direction:column;gap:5px}.weather-metric span{font-size:calc(11px * var(--font-scale));color:#bbd7dc}.weather-metric b{font-size:calc(17px * var(--font-scale));font-weight:700}
.weather-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 15px}.weather-section-title h2{font-size:calc(18px * var(--font-scale));line-height:1.4;margin:0}.weather-section-title>span{font-size:calc(11px * var(--font-scale));color:var(--muted)}
.weather-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.weather-week button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:7px;background:linear-gradient(165deg,#e3f5f0,var(--surface));padding:16px 13px;min-width:0;min-height:244px;border:1px solid var(--line);border-radius:14px;cursor:pointer;color:var(--text);font:inherit;transition:border-color .2s,box-shadow .2s}
.weather-week button.active{border-color:var(--brand-strong);box-shadow:0 0 0 2px var(--brand-soft)}
.weather-week .wx-label{font-size:calc(12px * var(--font-scale));font-weight:750}.weather-week .wx-date{font-size:calc(10px * var(--font-scale));color:var(--muted)}.weather-week .wx-icon{font-size:35px;line-height:1.3;margin:2px 0}.weather-week .wx-max{font-size:calc(23px * var(--font-scale));font-weight:800;white-space:nowrap}.weather-week .wx-min{font-size:calc(15px * var(--font-scale));color:var(--muted)}.weather-week .wx-caption{font-size:calc(11px * var(--font-scale));min-height:30px}.weather-week .wx-rain{font-size:calc(10px * var(--font-scale));border-top:1px solid var(--line);padding-top:8px;width:100%;color:var(--muted);margin-top:auto}
html[data-theme=dark] .weather-week button{background:linear-gradient(150deg,#17342d,#0b1c1b)}
.weather-hours-section{padding:0 22px 22px;background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-top:24px}.weather-hours-section .weather-section-title{margin-top:20px}
.weather-hourly{display:grid;grid-auto-flow:column;grid-auto-columns:88px;overflow-x:auto;gap:8px;padding-bottom:6px}.weather-hour{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:calc(12px * var(--font-scale));background:var(--surface-2);border-radius:10px;padding:13px 7px}.weather-hour b{font-size:calc(17px * var(--font-scale))}.weather-hour .wx-icon{font-size:22px}.weather-hour small{font-size:calc(10px * var(--font-scale));color:var(--muted)}
.weather-detail-source{font-size:calc(11px * var(--font-scale));color:var(--muted);margin-top:18px}.weather-detail-source a{color:var(--brand-strong)}
#weatherDetailState:not(:empty){padding:15px;background:var(--brand-soft);color:var(--text);border-radius:10px;margin-bottom:18px;font-size:calc(13px * var(--font-scale))}
.weather-route.loading .weather-hero:empty{min-height:130px;background:var(--surface-2);border-color:var(--line)}
.subpage-header .portal-wordmark strong{font-size:calc(22px * var(--font-scale))}.subpage-header .portal-wordmark small{margin-top:0!important}.subpage-links{flex-wrap:wrap}.subpage-footer{gap:18px}
.panel,.partner-card,.discovery-card,.fx-copy{min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){.weather-week{grid-template-columns:repeat(4,minmax(0,1fr))}.brand-search{grid-template-columns:minmax(230px,auto) minmax(0,1fr) 50px;gap:14px}.header-actions{gap:8px}.profile-button{display:none}.weather-hero{grid-template-columns:1fr 1.4fr;padding:24px}.weather-hero-temp{gap:15px}}
@media(max-width:820px){.brand-search{grid-template-columns:1fr auto;gap:16px}.search-area{grid-row:2;grid-column:1/-1}.header-actions{grid-column:2;grid-row:1}.weather-hero{grid-template-columns:1fr}.weather-hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-route-head{flex-wrap:wrap}.weather-week{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.weather-week{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-week button{min-height:225px}.weather-hero{padding:20px}.weather-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-route-head h1{font-size:calc(23px * var(--font-scale))}.weather-city-tabs{gap:7px}.weather-city-tabs button{padding:10px 12px}.weather-hours-section{padding:0 14px 14px}.weather-section-title{align-items:flex-start;flex-wrap:wrap}.portal-wordmark strong{font-size:calc(19px * var(--font-scale))}.portal-mark{width:40px;height:44px;flex-basis:40px}.portal-mark svg{width:32px;height:32px}.subpage-header{gap:10px}.subpage-header .portal-wordmark strong{font-size:calc(17px * var(--font-scale))}.subpage-header .portal-mark{width:34px;flex-basis:34px}.subpage-links{gap:8px}.systech-footer{min-width:220px}.utility-nav-links{gap:8px}.utility-left{font-size:calc(10px * var(--font-scale))}.utility-nav{gap:8px}.utility-bar{flex-wrap:wrap;gap:8px}.partner-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
