/* Website 4.0.1: shared surface, control and motion tokens; never restyle plot data. */
:root{--ui-paper:#fbfcf9;--ui-ink:#263c41;--ui-muted:#687b7c;--ui-accent:#116f69;--ui-line:#d7e0dc;--ui-radius:5px;--ui-fast:150ms;--ui-ease:cubic-bezier(.2,.7,.2,1)}
html{scroll-padding-top:110px;scrollbar-gutter:stable}
body{color:var(--ui-ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:#cfe5dd;color:#173f3b}
.unified-page h1{font-weight:570;letter-spacing:-.025em;text-wrap:balance}
.unified-page h2,.unified-page h3,.unified-page strong{font-weight:550}
.unified-page :is(.panel-heading,.station-query-heading,.forecast-heading,.reanalysis-heading,.translator-heading) h1{font-weight:560}
.analysis-page.unified-page .side-panel h2,.sounding-forecast-page.unified-page .side-panel h2{font-weight:560}
.unified-page p{line-height:1.75}
.unified-page :is(input,select,textarea){border-radius:var(--ui-radius);accent-color:var(--ui-accent);transition:border-color var(--ui-fast),box-shadow var(--ui-fast),background var(--ui-fast)}
.unified-page :is(input,select,textarea):focus{border-color:var(--ui-accent);box-shadow:0 0 0 3px #116f6914;outline:none}
.unified-page :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
.unified-page :is(button,summary){font-weight:450}
.unified-page button:not(.map-sounding-station){transition:background var(--ui-fast),border-color var(--ui-fast),color var(--ui-fast),box-shadow var(--ui-fast)}
.unified-page button:not(.map-sounding-station):not(:disabled):active{box-shadow:inset 0 1px 4px #213e3922}
.unified-page button:disabled{cursor:not-allowed;opacity:.5}
.floating-site-header{transition:box-shadow 200ms,background 200ms;border-color:var(--ui-line)}
.has-scrolled .floating-site-header{box-shadow:0 4px 20px #25413b0a;background:rgba(251,252,249,.97)}
.floating-site-nav a{position:relative;transition:color var(--ui-fast);text-underline-offset:6px}
.floating-site-nav a::after{content:'';position:absolute;bottom:12px;left:8px;right:8px;height:1px;background:var(--ui-accent);transform:scaleX(0);transform-origin:left;transition:transform 180ms var(--ui-ease)}
.floating-site-nav a.is-current{font-weight:550}
.floating-site-nav a.is-current::after{transform:scaleX(1)}
.floating-site-nav a:hover::after,.floating-site-nav a:focus-visible::after{transform:scaleX(1)}
.unified-page :is(.column-card,.station-home-routes>a){transition:background 180ms,border-color 180ms,box-shadow 180ms}
.unified-page :is(.column-card,.station-home-routes>a):hover{background:#f4f8f3;box-shadow:0 3px 14px #26494008;border-color:#a8c5ba}
.unified-page :is(.column-card__action,.station-home-routes>a>b){transition:color 180ms; color:var(--ui-accent)}
.unified-page :is(.column-card__visual img,.article-figure img){border-radius:3px}
.unified-page details{border-radius:var(--ui-radius)}
.unified-page summary{cursor:pointer;list-style-position:inside;transition:background var(--ui-fast)}
.unified-page summary:hover{background:#edf4ef}
.unified-page details[open]>:not(summary){animation:ui-disclose 180ms var(--ui-ease)}
#weather-product-dock{animation:ui-menu 150ms var(--ui-ease);transform-origin:top left}
.unified-page :is(.reanalysis-status,#forecast-status,#observation-status,#guestbook-status){font-size:13px;line-height:1.65;color:var(--ui-muted)}
.unified-page [role=status],.unified-page [aria-live=polite]{overflow-wrap:anywhere}
.unified-site-footer{font-size:12px;border-color:var(--ui-line)}
.unified-site-footer__meta{gap:12px;flex-wrap:wrap;line-height:1.7}
.release-label{font-variant-numeric:tabular-nums;color:var(--ui-muted);font-weight:400}
.unified-page>.skip-to-content{position:fixed;left:16px;top:-120px;z-index:99999;background:var(--ui-paper);padding:12px 18px;border:1px solid var(--ui-accent);border-radius:4px}
.unified-page>.skip-to-content:focus{top:12px}
.unified-page>.back-to-top{position:fixed;right:18px;bottom:18px;z-index:2500;width:38px;height:38px;border:1px solid var(--ui-line);border-radius:50%;background:var(--ui-paper);color:var(--ui-accent);box-shadow:0 3px 14px #203f3814;cursor:pointer}
.back-to-top[hidden]{display:none}
.unified-page .column-article{max-width:1100px}
html[lang=en] .floating-site-header__title small{letter-spacing:0}
html[lang=en] .floating-site-nav{gap:0;justify-content:flex-start}
html[lang=en] .floating-site-nav a{white-space:nowrap;padding-inline:8px}
html[lang=en] .panel-heading h1{font-size:clamp(20px,2vw,28px)}
html[lang=en] .layer-dock button{font-size:12px}
@keyframes ui-menu{from{opacity:0;translate:0 -4px}to{opacity:1;translate:0 0}}
@keyframes ui-disclose{from{opacity:0}to{opacity:1}}
@media(max-width:1100px){.floating-site-header__bar{flex-wrap:wrap}.floating-site-nav{order:3;flex-basis:100%;overflow-x:auto;justify-content:flex-start;padding:8px 0 5px;scrollbar-width:thin}.floating-site-actions{margin-left:auto}}
@media(max-width:620px){.unified-page h1{font-size:23px}.unified-page :is(input,select,textarea){font-size:16px}.unified-page :is(.station-form button,.forecast-form button,.reanalysis-submit,.lang-toggle){min-height:40px}.floating-site-nav a{font-size:12px}.unified-site-footer__main{gap:18px;flex-wrap:wrap}.unified-site-footer__main nav{line-height:2;flex-wrap:wrap}.back-to-top{bottom:12px;right:12px}html[lang=en] .layer-dock button{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.floating-site-header,.back-to-top,.atmospheric-grid,.skip-to-content{display:none!important}body{background:white!important}.unified-main-shell{padding-top:0!important}}
.website-plotter{background:var(--ui-paper);color:var(--ui-ink)}
.website-plotter :is(button,input,select,textarea){border-radius:4px;font-weight:400}
.website-plotter :is(button,input,select,textarea):focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}
.website-plotter h2{font-weight:550}
.website-plotter .primary{background:var(--ui-accent)}
.website-plotter header{border-color:var(--ui-line)}
/* Keep station anchors legible over both pale and dark weather-map fields. */
.analysis-page .map-sounding-station svg > circle[fill]:not([fill="none"]){stroke:#fff;stroke-width:3;paint-order:stroke fill}

/* One website scale. These targeted overrides retire legacy page-specific
   heading and control weights, including the embedded colourbar tool. */
:root {
  --ui-title: 24px;
  --ui-section: 17px;
  --ui-control: 13px;
  --ui-selected: #e5f0eb;
  --ui-yellow: #ffe38d;
  --ui-orange: #c8795d;
  --ui-blue: #376f9d;
  --ui-brick: #9b514a;
  --ui-violet: #7d6898;
  --ui-surface: rgba(255,255,255,.86);
  --ui-radius: 4px;
}
body.unified-page {
  --ink: var(--ui-ink);
  --ink-soft: var(--ui-muted);
  --teal: var(--ui-accent);
  --rule: var(--ui-line);
  font-family: MiSans, "Microsoft YaHei", sans-serif;
  color: var(--ui-ink);
  background-color: var(--ui-paper);
}
.unified-page h1,
.unified-page #colorbar-tool h1 {
  font-family: inherit !important;
  font-size: var(--ui-title) !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  color: var(--ui-ink) !important;
  margin-top: 0;
}
.unified-page h2,
.unified-page #colorbar-tool h2 {
  font-size: var(--ui-section) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0;
  color: var(--ui-ink);
}
.unified-page h3 { font-size: 14px !important; font-weight: 500 !important; line-height: 1.5; }
.unified-page :is(strong,b) { font-weight: 550; }
.unified-page :is(.station-home-routes a>strong,.column-card__action) { font-weight: 500; }
.unified-page .unified-main-shell:not(.dashboard) {
  box-sizing: border-box;
  width: min(1240px, calc(100% - 48px));
  max-width: 1240px;
  margin: 0 auto;
  padding: 28px 0 48px;
}
.unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading) {
  margin: 0 0 24px;
  padding: 0;
}
.unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading) p:last-child {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.75;
  color: var(--ui-muted);
}
.analysis-page.unified-page .panel-heading { align-items: center; border-color: var(--ui-line); }
.analysis-page.unified-page .side-panel { padding-top: 7px; }
.unified-page .floating-site-nav a.is-current::after { background: var(--ui-orange); height: 1px; }
.unified-page .signature-corner::before { border-color: var(--ui-accent); }
.unified-page .signature-corner--brick::before { border-color: var(--ui-brick); }
.unified-page .signature-corner--violet::before { border-color: var(--ui-violet); }
.unified-page :is(button,input,select,textarea),
.unified-page #colorbar-tool :is(button,input,select,textarea) {
  font-family: MiSans, "Microsoft YaHei", sans-serif;
  font-weight: 400;
  border-radius: var(--ui-radius);
}
.unified-page :is(.station-query-form,.forecast-form,.reanalysis-form,.guestbook-form) :is(input,select,textarea),
.unified-page #colorbar-tool :is(input:not([type=checkbox]):not([type=file]),select) {
  min-height: 40px;
  border-color: var(--ui-line);
  font-size: var(--ui-control);
  background: #fff;
}
.unified-page :is(.station-query-submit,.forecast-form__submit,.reanalysis-submit,.station-form button,.guestbook-form button) {
  min-height: 40px;
  border: 1px solid var(--ui-accent);
  background: var(--ui-accent);
  color: #fff;
  font-size: var(--ui-control);
  font-weight: 450;
}
.unified-page :is(.station-query-submit,.forecast-form__submit,.reanalysis-submit,.station-form button,.guestbook-form button):hover {
  background: #0c5d58;
}
.analysis-page.unified-page .station-form .search-control button {
  border-color: #d4ad56;
  background: var(--ui-yellow);
  color: #51432d;
}
.analysis-page.unified-page .station-form .search-control button:hover {
  background: #f5d875;
}
.unified-page .station-query-mode input:checked + span,
.unified-page .forecast-form__switch label:has(input:checked),
.analysis-page.unified-page .cycle-switch button.is-active,
.analysis-page.unified-page .layer-dock button.is-active,
.analysis-page.unified-page .station-display-dock button.is-active,
.analysis-page.unified-page .viewer-switch button.is-active,
.unified-page .sounding-tabs button.is-active,
.unified-page [role=tab][aria-selected=true] {
  background: var(--ui-selected);
  color: var(--ui-accent);
  border-color: #a8c5ba;
  font-weight: 500;
  box-shadow: none;
}
.analysis-page.unified-page .layer-dock button.is-active,
.analysis-page.unified-page .station-display-dock button.is-active { box-shadow: inset 0 -2px var(--ui-accent); }
/* Colour carries a role: yellow time, brick field selection, violet view mode,
   blue information and cyan actions. Geometry and typography remain shared. */
.analysis-page.unified-page .archive-picker__controls {
  border: 1px solid #c3cbc7;
  border-radius: 3px;
}
/* Draw the disclosure mark independently of the font's baseline and glyph. */
.analysis-page.unified-page .layer-dock button.has-products {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}
.analysis-page.unified-page .layer-dock button.has-products::after {
  content: '';
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  margin: -3px 0 0;
  border: solid currentColor;
  border-width: 0 1.25px 1.25px 0;
  color: inherit;
  transform: rotate(45deg);
}
.analysis-page.unified-page .layer-dock button.has-products[aria-expanded=true]::after {
  margin-top: 3px;
  transform: rotate(225deg);
}
.analysis-page.unified-page .cycle-switch button.is-active,
.unified-page .station-query-mode input:checked + span,
.unified-page .forecast-form__switch label:has(input[name=cycle]:checked) {
  background: var(--ui-yellow); color: #51432d; border-color: #d4ad56;
}
.analysis-page.unified-page .layer-dock button.is-active {
  background: #f1e2da; color: var(--ui-brick);
  box-shadow: inset 0 -2px var(--ui-orange); border-color: #d8b4a5;
}
.analysis-page.unified-page .station-display-dock button.is-active,
.unified-page [role=tab][aria-selected=true] {
  background: #eee8f2; color: #66527d; border-color: #c7b9d3; box-shadow: none;
}
.analysis-page.unified-page .viewer-switch :is(button.is-active,[aria-selected=true]) {
  background: var(--ui-yellow);
  color: #51432d;
  border-color: #d4ad56;
}
.unified-page #weather-product-dock button.is-active {
  background: #e8eff5; color: var(--ui-blue); border-color: #bbcede;
}
.unified-page .column-card__meta,
.unified-page .station-home-routes a > span { color: var(--ui-violet); }
.unified-page .station-home-section > header > span { color: var(--ui-orange); }
.unified-page :is(.column-card__action,.station-home-routes>a>b) { color: var(--ui-blue); }
.unified-page :is(.reanalysis-heading,.forecast-heading,.station-query-heading) a {
  color: var(--ui-blue);
  font-weight: 400;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.unified-page :is(.station-query-form,.forecast-form,.station-query-map-panel,.forecast-world-picker),
.unified-page #colorbar-tool section {
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius);
  background: var(--ui-surface);
  box-shadow: none;
}
.unified-page #colorbar-tool { --tool-ink: var(--ui-ink); --tool-soft: var(--ui-muted); --tool-line: var(--ui-line); --tool-accent: var(--ui-accent); }
.unified-page #colorbar-tool .tool-heading { margin: 0 0 24px; }
.unified-page #colorbar-tool .workspace { gap: 20px; }
.unified-page #colorbar-tool section { padding: 20px; }
.unified-page #colorbar-tool .tool-footnote { display: none; }
.unified-page .station-home-identity { padding-top: 0; }
.unified-page .station-home-identity h1 { margin-bottom: 8px; }
.unified-page .station-home-section > header { border-color: var(--ui-line); }
.unified-page .unified-site-footer { font-family: MiSans, "Microsoft YaHei", sans-serif; }
.unified-page .unified-site-footer__meta { font-size: 11px; text-align: left; }

/* Articles share the site typography, with comfortable long-form spacing. */
.column-article-page.unified-page > article {
  box-sizing: border-box;
  width: min(980px, calc(100% - 48px));
  margin: 28px auto 48px;
  padding: 32px 40px;
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius);
  background: var(--ui-surface);
  box-shadow: none;
  font-size: 16px;
  line-height: 1.9;
}
.column-article-page.unified-page > article h1 { text-align: left; margin-bottom: 12px; }
.column-article-page.unified-page > article h2 { font-size: 20px !important; border-bottom: 1px solid var(--ui-line); margin-top: 36px; }
.column-article-page.unified-page > article h3 { font-size: 17px !important; }
.column-article-page.unified-page > article :is(.byline,h1+p,h1+p+p) { text-align: left; font-size: 13px; color: var(--ui-muted); }
.column-article-page.unified-page > article p { line-height: 1.9; }

/* The hosted editor uses the website's paper surface; the photo watermark
   and rendered field retain their own colours and geometry. */
html:has(.website-plotter) { color-scheme: light; background: var(--ui-paper); }
.website-plotter :is(header,aside,.viewbar) { background: var(--ui-paper); color: var(--ui-ink); border-color: var(--ui-line); }
.website-plotter header strong { font-size: 18px; font-weight: 500; letter-spacing: 0; }
.website-plotter :is(header span,label,p,footer,.viewbar) { color: var(--ui-muted); }
.website-plotter h2 { color: var(--ui-accent); font-size: 13px; font-weight: 500; letter-spacing: 0; }
.website-plotter h2 span { color: var(--ui-ink); font-weight: 500; letter-spacing: 0; }
.website-plotter aside section:nth-of-type(1) h2 { color: var(--ui-blue); }
.website-plotter aside section:nth-of-type(2) h2 { color: var(--ui-violet); }
.website-plotter aside section:nth-of-type(4) h2 { color: var(--ui-brick); }
.website-plotter section { border-color: var(--ui-line); }
.website-plotter :is(button,.button,input,select,textarea) { background: #fff; color: var(--ui-ink); border-color: var(--ui-line); }
.website-plotter :is(button,.button):hover { background: var(--ui-selected); }
.website-plotter :is(input[type=range],input[type=checkbox]) { accent-color: var(--ui-accent); }
.website-plotter .primary { color: white; background: var(--ui-accent); border-color: var(--ui-accent); }
.website-plotter .primary:hover { background: #0c5d58; }
.website-plotter summary { color: var(--ui-accent); }
.website-plotter #stage { box-shadow: none; }
.website-plotter #message { color: var(--ui-muted); }
@media(max-width:620px) {
  :root { --ui-title: 22px; }
  .unified-page .unified-main-shell:not(.dashboard) { width: calc(100% - 28px); padding-top: 18px; }
  .analysis-page.unified-page .panel-heading { align-items: flex-start; gap: 12px; }
  .unified-page #colorbar-tool .workspace { gap: 16px; }
  .column-article-page.unified-page > article { width: calc(100% - 28px); margin-top: 18px; padding: 22px 18px; }
  .unified-page .station-home-routes a { grid-template-columns: minmax(0,1fr) auto; gap: 6px 12px; padding: 12px 0; }
  .unified-page .station-home-routes a > span { grid-column: 1 / -1; grid-row: 1; }
  .unified-page .station-home-routes a > strong { grid-column: 1; grid-row: 2; }
  .unified-page .station-home-routes a > p { grid-column: 1 / -1; grid-row: 3; }
  .unified-page .station-home-routes a > b { grid-column: 2; grid-row: 2; }
}

/* Shared straight-edged controls and quiet page signatures. */
:root { --ui-radius: 0px; }
/* Compact first screen; motion stays on the shell, not on weather data. */
.floating-site-header { transition: top 260ms var(--ui-ease),width 260ms var(--ui-ease),background 200ms,box-shadow 200ms; }
.floating-site-header__bar { transition: min-height 260ms var(--ui-ease),padding 260ms var(--ui-ease); }
.floating-site-nav a { transition: padding 260ms var(--ui-ease),color 150ms,transform 150ms; }
.floating-site-header .home-brand__mark { transition: width 260ms,height 260ms,flex-basis 260ms; }
.maintenance-notice { grid-column: 1 / -1; padding: 10px 16px; margin: 0 0 12px; border: 1px solid #c5ad65; background: #fff7db; color: #64501f; font-size: 13px; }
@keyframes surface-arrive { from { opacity: .65; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.unified-main-shell > :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading) { animation: surface-arrive 320ms var(--ui-ease) both; }
.unified-page :is(.column-card,.station-home-routes>a):hover { box-shadow: 0 3px 12px #263c410b; }
@media(min-width:960px) {
  body.unified-page { padding-top: 88px; }
  .unified-page .unified-main-shell { margin-top: 0; padding-top: 8px; }
  .unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading).signature-corner { padding: 10px 18px 8px; margin-bottom: 8px; }
  .unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.tool-heading) p { margin: 6px 0 0; }
  .analysis-page.unified-page .panel-heading { padding: 0 0 6px; margin-bottom: 4px; }
  .analysis-page.unified-page .map-panel { padding-top: 8px; }
  .analysis-page.unified-page .weather-region-dock { margin-bottom: 6px; }
  .analysis-page.unified-page .layer-dock { margin-top: 4px; }
}
@media(min-width:1101px) {
  .floating-site-header { top: 8px; }
  .floating-site-header__bar { min-height: 58px; gap: 12px; }
  .floating-site-nav a { padding: 20px 8px; }
  .has-scrolled .floating-site-header { top: 5px; width: min(1190px,calc(100% - 64px)); }
  .has-scrolled .floating-site-header__bar { min-height: 44px; padding-inline: 12px; gap: 10px; }
  .has-scrolled .floating-site-nav a { padding: 14px 7px; }
  .has-scrolled .floating-site-nav a::after { bottom: 7px; }
  .has-scrolled .floating-site-header .home-brand__mark { width: 30px; height: 30px; flex-basis: 30px; }
}
[hidden] { display: none !important; }
body :is(button,.button,input,select,textarea,[role=button]) { border-radius: 0 !important; }
.site-credit { max-width: 1240px; margin: 12px auto 0; padding: 14px 24px 22px; border-top: 1px solid var(--ui-line); color: var(--ui-muted); font: 12px/1.7 MiSans,sans-serif; }
.unified-page .cds-help { font-size: 12px; line-height: 1.8; color: var(--ui-muted); }
.unified-page .cds-route { margin-top: 14px; border: 1px solid var(--ui-line); background: #fffdfa; }
.unified-page .cds-route > summary { display: flex; flex-direction: column; gap: 3px; position: relative; padding: 11px 32px 11px 14px; color: var(--ui-ink); border-left: 3px solid var(--ui-blue); list-style: none; }
.unified-page .cds-route > summary::-webkit-details-marker { display: none; }
.unified-page .cds-route > summary::after { content: '＋'; position: absolute; right: 13px; top: 12px; color: var(--ui-blue); font-size: 17px; line-height: 1; }
.unified-page .cds-route[open] > summary::after { content: '−'; }
.unified-page .cds-route > summary small { color: var(--ui-muted); font-size: 11px; font-weight: 400; }
.unified-page .cds-route__body { padding: 3px 14px 14px; border-top: 1px solid var(--ui-line); }
.unified-page .cds-route__body p { margin: 9px 0; font-size: 12px; line-height: 1.7; color: var(--ui-muted); }
.unified-page .cds-route__official { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #adc4cf; background: #f3f8fa; color: #315b72; text-decoration: none; font-size: 12px; line-height: 1.45; }
.unified-page .cds-route__official:hover { background: #eaf4f8; }
.unified-page .cds-route__advanced { margin-top: 10px; border-top: 1px solid var(--ui-line); }
.unified-page .cds-route__advanced > summary { padding: 10px 0 4px; color: var(--ui-blue); font-size: 12px; }
.unified-page #personal-cds-script,.unified-page #open-online-plotter { display: inline-block; padding: 9px 14px; border: 1px solid var(--ui-blue); background: #fff; color: var(--ui-blue); font-size: 12px; line-height: 1.4; cursor: pointer; }
.unified-page #personal-cds-script:hover,.unified-page #open-online-plotter:hover { background: #f3f8fa; }
.unified-page .plotter-on-demand { padding: 20px; border: 1px solid var(--ui-line); background: #fbfcf9; }
.unified-page .plotter-on-demand p { margin: 0 0 10px; color: var(--ui-muted); font-size: 13px; line-height: 1.7; }
.station-home-contact { width: min(100%, 840px); margin-inline: auto; }
.station-home-contact > header { display: flex; justify-content: center; position: relative; text-align: center; }
.station-home-contact > header > span { position: absolute; left: 0; top: 12px; }
.station-home-contact .guestbook-form { width: min(100%, 760px); margin-inline: auto; }
.unified-page .forecast-health-row { display: flex; align-items: stretch; margin-top: 10px; border: 1px solid #d8c7a2; background: #fffaf2; }
.unified-page .forecast-data-status { flex: 1; margin: 0; padding: 9px 12px; color: var(--ui-muted); font-size: 12px; line-height: 1.6; }
.unified-page .forecast-latest-cycle { flex: none; align-self: stretch; margin: 0; padding: 8px 11px; border: 0; border-left: 1px solid #d8c7a2; border-radius: 0; background: transparent; color: var(--ui-ink); font-size: 12px; font-weight: 400; }
.unified-page .forecast-latest-cycle:hover { background: #fff2d5; }
@media (max-width: 600px) { .unified-page .forecast-health-row { display: block; } .unified-page .forecast-latest-cycle { width: 100%; border-left: 0; border-top: 1px solid #d8c7a2; text-align: left; } }
.unified-page .reanalysis-result { margin-top: 24px; padding: 18px 0 0; border: 0; border-top: 1px solid var(--ui-line); background: transparent; }
.unified-page .reanalysis-result > header { padding: 0 20px 14px; }
.website-plotter { background: var(--ui-paper); }
.website-plotter main { background: transparent; }
.website-plotter :is(header,aside,.viewbar) { box-shadow: none; border-radius: 0; }
.website-plotter:not(.field-loaded) #map { background: #edf2f0; }
.website-plotter:not(.field-loaded) #field { visibility: hidden; }
.website-plotter:not(.field-loaded) #map::after { content: '上传资料并选择数据场，或在上方查询 ERA5'; position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; color: #687b7c; font-size: 14px; pointer-events: none; }
html[lang=en] .website-plotter:not(.field-loaded) #map::after { content: 'Upload and select a data field, or query ERA5 above'; }
.unified-page .station-query-form input[type=search] { width: 100%; box-sizing: border-box; }
.unified-page .platform-mark--bilibili { background: transparent; }
.analysis-page.unified-page .map-panel.signature-corner::before { content: ''; top: -9px; left: -9px; width: 20px; height: 20px; }
.unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading).signature-corner { padding: 18px 20px 16px; margin-bottom: 24px; }
.unified-page .columns-heading h1 { margin: 0 0 14px; }
.unified-page .columns-heading p:last-child { margin: 0; padding-bottom: 10px; }
.unified-page .forecast-form__switch label:has(input:checked),
.unified-page .forecast-form__switch label:has(input[name=cycle]:checked) { background: transparent; box-shadow: none; border-color: transparent; color: var(--ui-ink); }
.unified-page .forecast-form__switch input { background: transparent; box-shadow: none; }
.unified-page .station-home-updates { order: -1; }
.unified-page .station-home-principles > p { font-size: 14px; line-height: 1.95; margin: 16px 0; }
@media(min-width: 960px) {
  .unified-page :is(.station-query-page,.forecast-page) { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 2fr); gap: 20px 28px; align-items: start; }
  .unified-page :is(.station-query-page,.forecast-page) > * { grid-column: 1 / -1; min-width: 0; }
  .unified-page .station-query-page > .station-query-form { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; align-items: stretch; gap: 20px; margin: 0; padding: 20px; }
  .unified-page .station-query-form > * { flex: none; width: 100%; box-sizing: border-box; }
  .unified-page .station-query-form__station { flex: none; grid-template-rows: auto auto; }
  .unified-page .station-query-page > .station-region-browser { grid-column: 2; grid-row: 2; margin: 0; }
  .unified-page .forecast-page { grid-template-columns: minmax(0,2fr) minmax(280px,.85fr); }
  .unified-page .forecast-page > .forecast-world-picker { grid-column: 1; grid-row: 2; margin: 0; }
  .unified-page .forecast-page > .forecast-form { grid-column: 2; grid-row: 2; margin: 0; }
  .unified-page .forecast-form__row { display: flex; flex-direction: column; gap: 16px; padding: 16px; }
  .unified-page .forecast-form__field { padding: 0; border: 0; min-width: 0; }
  .unified-page :is(#station-region-map,#sounding-world-map) { height: clamp(300px,calc(100svh - 370px),580px); min-height: 300px; }
  .unified-page .station-region-browser > header { display: block; }
}
@media(min-width:960px) {
  .unified-page .unified-main-shell:not(.dashboard) { padding-top: 8px; }
  .unified-page :is(.station-region-browser,.forecast-world-picker) { padding: 16px; }
  .unified-page :is(.station-region-browser,.forecast-world-picker) > header { margin-bottom: 8px; gap: 8px; }
  .unified-page :is(.station-region-browser,.forecast-world-picker) > header p { margin: 4px 0; }
  .unified-page :is(.station-query-heading,.forecast-heading,.reanalysis-heading,.columns-heading,.tool-heading).signature-corner { padding: 10px 18px 8px; margin-bottom: 8px; }
}
@media(min-width:960px) and (max-width:1100px) {
  body.unified-page { padding-top: 126px; }
}

/* Keep the original page width; fit the chart by extending its geographic domain. */
@media (min-width: 1101px) {
  body.analysis-page.unified-page { padding-top: 82px; }
  .analysis-page.unified-page .floating-site-header__bar { min-height: 52px; }
  .analysis-page.unified-page .floating-site-nav a { padding-top: 16px; padding-bottom: 16px; }
  .analysis-page.unified-page .dashboard { padding-top: 0; width: min(100%, 1800px); }
  .analysis-page.unified-page .map-panel { padding-top: 0; }
  .analysis-page.unified-page .panel-heading {
    min-height: 48px;
    margin-bottom: 8px;
    padding-bottom: 6px;
  }
  .analysis-page.unified-page .weather-region-dock { margin-bottom: 8px; }
  .analysis-page.unified-page .weather-region-dock a { padding-top: 5px; padding-bottom: 5px; }
  .analysis-page.unified-page .layer-dock { margin-top: 4px; }
  .analysis-page.unified-page .layer-dock button { min-height: 34px; padding-top: 6px; padding-bottom: 6px; }
  .analysis-page.unified-page .map-stage { margin-top: 10px; }
}
.analysis-page.unified-page .map-panel.signature-corner::before { top: -14px; width: 24px; height: 24px; }
#weather-export-jpg { margin-left: auto; padding: 3px 15px; border: 1px solid #c8d1d2; background: transparent; color: #53636a; font: inherit; font-size: 14px; cursor: pointer; }
#weather-export-jpg:hover { background: #e9f0f1; color: #274e6b; }

/* Preserve the original footer information row without the removed navigation strip. */
.unified-site-footer--compact { padding: 18px 0 24px; }
.unified-site-footer--compact .unified-site-footer__meta { margin-top: 0; padding-top: 0; border-top: 0; align-items: baseline; }
.unified-page .site-network-note { margin: 0 0 14px; color: var(--ui-muted); font-size: 11px; line-height: 1.7; }

/* Shared navigation feedback, without moving maps, station anchors or page geometry. */
.unified-page :is(.weather-region-dock a,.layer-dock button,.station-display-dock button,.source-strip a,.column-card__action,.station-home-routes>a,.lang-toggle,#weather-export-jpg) {
  --motion-accent: var(--ui-blue, #356f93);
  transition: transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms, border-color 220ms, color 220ms, background-color 220ms;
}
.unified-page .layer-dock button { --motion-accent: #c24538; }
.unified-page .station-display-dock button { --motion-accent: #c39528; }
.unified-page .column-card__action { --motion-accent: #80669e; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .floating-site-nav a { transition: transform 220ms, color 220ms, background-color 220ms; }
  .floating-site-nav a:hover { transform: translateY(-2px); background-color: #c8795d12; }
  .floating-site-nav a::after { height: 2px; transition: transform 240ms cubic-bezier(.2,.8,.2,1); }
  .unified-page :is(.weather-region-dock a,.layer-dock button,.station-display-dock button,.source-strip a,.column-card__action,.station-home-routes>a,.lang-toggle,#weather-export-jpg):not(:disabled):hover {
    transform: translateY(-2px);
    box-shadow: inset 0 -2px 0 var(--motion-accent), 0 5px 12px #263c4112;
    border-color: var(--motion-accent);
  }
  .unified-page :is(.weather-region-dock a,.layer-dock button,.station-display-dock button,.source-strip a,.column-card__action,.station-home-routes>a,.lang-toggle,#weather-export-jpg):not(:disabled):active { transform: translateY(0); }
}
@media (prefers-reduced-motion:reduce) {
  .unified-page :is(.floating-site-nav a,.weather-region-dock a,.layer-dock button,.station-display-dock button,.source-strip a,.column-card__action,.station-home-routes>a,.lang-toggle,#weather-export-jpg) { transition:none; transform:none; }
}

.unified-page :is(.leaflet-control-attribution,.map-source-credit) { font-size: 10px; line-height: 1.4; font-weight: 400; }

/* The map's two control rows share one square, fully framed button geometry. */
.analysis-page.unified-page .map-panel.signature-corner::before { content: none; }
.analysis-page.unified-page :where(.weather-region-dock a,#weather-export-jpg,.layer-dock button) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 35px;
  padding: 5px 10px;
  border: 1px solid #c8d1d2;
  border-radius: 0;
  background: #fff;
  color: #53636a;
  font-size: 12px;
  font-weight: 450;
  line-height: 1.35;
  box-shadow: none;
  white-space: nowrap;
}
.analysis-page.unified-page #weather-export-jpg {
  min-height: 35px;
  padding: 5px 10px;
  background: #fff;
  font-size: 12px;
}
.analysis-page.unified-page .layer-dock {
  gap: 6px;
  border: 0 !important;
  background: transparent;
  overflow: visible;
}
.analysis-page.unified-page .layer-dock button {
  min-height: 35px;
  padding: 5px 10px;
  border: 1px solid #c8d1d2;
  background: #fff;
}
.analysis-page.unified-page .layer-dock button:last-child { border-right: 1px solid #c8d1d2; }
.analysis-page.unified-page .weather-region-dock a.is-active {
  border-color: #aa5b2c;
  background: #aa5b2c;
  color: #fff;
}
.analysis-page.unified-page .layer-dock button.is-active {
  border-color: #c24538;
  background: #c24538;
  color: #fff;
  box-shadow: none;
}
.analysis-page.unified-page .layer-dock button.has-products.is-active::after { color: #fff; }
.analysis-page.unified-page :is(#weather-export-jpg,.layer-dock button):hover { border-color: #1878b5; }
.analysis-page.unified-page .weather-region-dock a:hover { border-color: #aa5b2c; }
.analysis-page.unified-page .weather-region-dock a.is-active:hover { border-color: #aa5b2c; background: #aa5b2c; color: #fff; }
.analysis-page.unified-page .layer-dock button.is-active:hover { border-color: #c24538; background: #c24538; color: #fff; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .analysis-page.unified-page :is(.weather-region-dock a,.layer-dock button,#weather-export-jpg):not(:disabled):hover {
    box-shadow: 0 5px 12px #263c4112;
  }
}
@media (max-width: 650px) {
  .analysis-page.unified-page .layer-dock button { padding-inline: 4px; font-size: 11px; }
  .analysis-page.unified-page :is(.weather-region-dock a,#weather-export-jpg) { padding-inline: 9px; font-size: 12px; }
}
/* Site v4.0.1 brand and visible domain on narrow screens. */
.floating-site-header__version { margin-left: 6px; font-size: 10px; font-weight: 500; letter-spacing: .01em; white-space: nowrap; }
@media (max-width: 560px) { .floating-site-header__title small { display: block; } }
@media (max-width: 560px) { html[lang=en] .floating-site-header__title strong { font-size: 11px; } }
