/* Shared type scale. Small screens reflow controls instead of reducing their type. */
:root{--muted:#62776c;--text-body:1rem;--text-control:.9375rem;--text-secondary:.875rem;--text-caption:.8125rem;--text-label:.75rem}
.brand-mark{flex-shrink:0}.brand-text{min-width:0}.brand .brand-byline{font-size:.75rem;letter-spacing:.02em;line-height:1.5;margin-top:5px;white-space:nowrap}.footer-brand{display:inline-flex;align-items:baseline;gap:10px;flex-wrap:wrap;letter-spacing:.02em}.footer-brand strong{font-size:.875rem;font-weight:600}.footer-brand>span{font-size:.8125rem}
body{font-size:var(--text-body);line-height:1.65;text-rendering:optimizeLegibility;word-break:keep-all;overflow-wrap:break-word}
button,input,select,textarea{line-height:1.45}
input,select,textarea{font-size:var(--text-body)}
input::placeholder,.search-box input::placeholder{color:#75867c;opacity:1}
.content{padding:36px 36px 0}.topbar{padding:0 36px}
.brand{font-size:.875rem}.brand small{font-size:.75rem}
.nav-item{font-size:1rem;min-height:50px}.nav-label{font-size:.75rem}
.sidebar-note{font-size:.6875rem}.sidebar-note p{font-size:.875rem}
.environment,.sidebar-bottom p,.sidebar-bottom button{font-size:.75rem}
.breadcrumb,.status-pill{font-size:var(--text-caption)}
h1{font-size:clamp(1.875rem,2.4vw,2.5rem);letter-spacing:-1px}
.page-title{align-items:center}.page-title>div{min-width:0}
.page-title p{font-size:1rem;line-height:1.7;color:var(--muted);max-width:none}
.eyebrow,.dialog-top .eyebrow,.panel-eyebrow,.summary-top .panel-eyebrow{font-size:var(--text-label);letter-spacing:1.5px;color:#607e6c}
.secondary-button,.primary-button,.compare-button,.full-data-button,.text-button{font-size:var(--text-control);line-height:1.45}
.secondary-button,.primary-button,.compare-button{min-height:48px;padding:11px 16px;justify-content:center}
.icon-button{width:40px;height:40px;font-size:24px}
.archive-notice{font-size:var(--text-secondary);line-height:1.85;padding:16px 18px;align-items:flex-start;gap:12px;color:#536a4b;margin-top:28px}
.archive-notice .notice-icon{margin-top:5px}.archive-notice button{font-size:var(--text-caption);padding:3px 0;min-height:32px}
#metric-guidance{margin:28px 0 12px;padding:0}
.metric-guidance+.archive-notice{margin-top:0}
.connection-notice{font-size:var(--text-control)}

/* Metrics and location filters each start a complete, left-aligned row. */
.location-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(260px,330px);gap:12px;align-items:center;margin-top:24px}
.location-toolbar .location-search-wrap{min-width:0;width:100%}
.location-search-wrap .search-box,.search-box{min-height:48px;padding:10px 14px;gap:10px}
.location-search-wrap .search-box input,.search-box input{font-size:1rem;line-height:1.5}
.location-toolbar .secondary-button{height:48px;font-size:var(--text-control);margin:0}
.dataset-field{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;font-size:var(--text-secondary);margin:0;min-width:0;color:var(--muted)}
.dataset-field select{width:100%;max-width:none;min-width:0;min-height:48px;font-size:var(--text-control);padding:10px 32px 10px 12px;color:#355d46}
.filters{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:20px;margin:22px 0 14px}
.metric-tabs{gap:4px;min-width:0;flex-wrap:wrap}
.metric-tab{font-size:1rem;min-height:48px;padding:11px 16px;line-height:1.45}
.metric-tab.more{padding-left:16px;margin-left:6px}.metric-tab.more span{font-size:var(--text-caption);padding:2px 6px}
.metric-tab.metric-unavailable::after{font-size:var(--text-caption)}
.filter-fields{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px;width:100%;margin:0}
.filter-fields label{display:flex;align-items:center;gap:8px;font-size:var(--text-caption);color:var(--muted);white-space:nowrap}
.filter-fields select,.compare-controls select{font-size:var(--text-control);min-height:48px;padding:10px 30px 10px 12px;max-width:none}
.filter-fields label:first-child select{max-width:none;min-width:100px}
.filter-fields select:disabled{color:#77857e;background:#edf0eb;border-color:#dce3d9;cursor:not-allowed;opacity:1}
.compare-button{margin:0}.metric-guidance,.metric-guidance .text-button{font-size:var(--text-secondary);margin-top:0;line-height:1.8;color:var(--muted)}
.compare-controls,.compare-controls span{font-size:var(--text-secondary)}
.location-results{max-height:400px}.location-results button{padding:15px 16px}
.location-results strong{font-size:1rem}.location-results small{font-size:var(--text-caption);line-height:1.75;color:var(--muted)}

.workspace{grid-template-columns:minmax(0,1fr) 340px;gap:24px}
.panel-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 16px;padding:24px 24px 12px}
.panel-heading>div:first-child{grid-column:1;grid-row:1/3;min-width:0}
.panel-heading .water-stage-badge{grid-column:2;grid-row:1;justify-self:end}.panel-heading .date-tag{grid-column:2;grid-row:2;justify-self:end}
.panel-heading h2{font-size:1.375rem;line-height:1.5;display:flex;align-items:baseline;gap:10px}
.map-panel .unit,.panel-heading h2 .unit{font-size:var(--text-caption);display:inline;margin:0;line-height:1.5;color:var(--muted)}
.water-stage-badge{font-size:var(--text-label);padding:6px 10px;margin-left:auto;line-height:1.5}
.date-tag{font-size:1rem}.map-topline{padding:0 24px 10px;gap:14px;align-items:baseline;flex-wrap:wrap;font-size:var(--text-caption);line-height:1.8;color:var(--muted)}
.map-topline .text-button{font-size:var(--text-caption)}
.map-home{font-size:var(--text-secondary);padding:11px 14px;min-height:42px}
.map-layer-state{position:static;transform:none;font-size:var(--text-caption);line-height:1.75;white-space:normal;text-align:left;width:auto;max-width:none;padding:12px 18px;color:#536c4b;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:#f7faf4}
.point-label,.area-tooltip{font-size:var(--text-secondary);line-height:1.65}
.point-label{color:#325d44}.geo-label>span{font-size:var(--text-caption)}.geo-label b{font-size:1.25rem}
.treated-water-marker>span,.raw-water-marker>span{border-width:1.5px;box-shadow:0 1px 3px #1c4b4355}
.shared-facility-marker>span{border-color:#466c5a;box-shadow:0 0 0 2px #fff,0 0 0 3px #466c5a}
body[data-water-stage=raw] .shared-facility-marker>span{border-color:#416f8c}
.time-playback{padding:16px 24px;gap:12px}.time-playback button{width:34px;height:40px;font-size:24px;flex-shrink:0}
.time-playback>span{font-size:1rem;min-width:65px}.time-playback input{height:6px}
.map-legend{max-width:520px;padding:8px 24px 20px}
.map-legend>div:first-child,.legend-labels,.map-legend p,.legend-note{font-size:var(--text-caption);line-height:1.7;color:var(--muted)}
.legend-colors{height:10px}.legend-note{margin-left:0}.map-legend p{gap:8px;margin-top:14px}
.map-footnote{font-size:var(--text-caption);line-height:1.9;padding:16px 24px;color:var(--muted)}
.water-popup small,.water-popup p,.water-popup p.popup-precision,.water-popup button{font-size:var(--text-caption);color:#5d7463}
.water-popup h3{font-size:1.125rem}.water-popup .popup-value span{font-size:var(--text-caption)}
.water-popup button{padding:12px 0;line-height:1.75}
.map-explorer .leaflet-control-attribution{font-size:12px}
.notice-icon{font-size:12px}

.selected-summary{padding:24px}.selected-summary h2{font-size:1.5rem;line-height:1.5}
.region-code{font-size:var(--text-caption)}
.selected-summary>p,.selected-summary .selected-dates,.selected-delta,.summary-grid div span,.big-measure>span:last-child{font-size:var(--text-caption);line-height:1.8;color:#5f7655}
.summary-grid b{font-size:1rem}.big-measure>span:first-child{font-size:3.5rem}.big-measure{gap:12px}
.section-heading{align-items:baseline;gap:12px;flex-wrap:wrap}.section-heading h3{font-size:1.0625rem;line-height:1.6}
.section-heading>span,.region-strip .section-heading>span{font-size:var(--text-caption);color:var(--muted)}
.trend-panel,.facility-panel{padding:22px}.history-chart{margin-top:16px}
.chart-caption,.chart-empty,.chart-tooltip{font-size:var(--text-caption);color:var(--muted)}
.chart-tooltip{color:#fff}.chart-axis{font-size:12px;fill:#60765d}.chart-value-label{font-size:13px}
.facility-row{padding:16px 0;gap:14px}.facility-row>span:first-child{min-width:0}
.facility-row strong{font-size:var(--text-control);line-height:1.7}.facility-row small{font-size:var(--text-caption);line-height:1.7;color:var(--muted)}
.facility-row>span:last-child{font-size:1.5rem}.full-data-button{padding-top:18px;font-size:var(--text-secondary)}
.empty,.region-chip>span{font-size:var(--text-secondary);color:var(--muted)}
.region-grid{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:4px}.region-chip strong{font-size:1.5rem}
footer,footer>span:first-child{font-size:var(--text-label);color:var(--muted);line-height:1.8}

.data-heading h2{font-size:1.5rem}.data-heading p{font-size:var(--text-secondary);color:var(--muted)}
.data-heading .search-box{width:300px}.data-table th{font-size:var(--text-secondary);padding:17px 22px}
.data-table td{font-size:var(--text-control);padding:17px 22px}.data-table td strong{font-size:1rem}
.data-table small{font-size:var(--text-caption);line-height:1.75;color:var(--muted)}.data-table td.numeric{font-size:1.5rem}
.pagination,.table-note{font-size:var(--text-secondary);color:var(--muted)}.pagination button{min-height:44px;min-width:44px}
.source-intro h2{font-size:2rem}.source-intro p{font-size:1rem;color:var(--muted)}.source-intro>span:last-child{font-size:var(--text-secondary)}
.source-card>div:first-child{align-items:flex-start;flex-wrap:wrap}.source-card h3{font-size:1.125rem;line-height:1.65}
.source-state{font-size:var(--text-label)}.source-card>p,.source-card>a{font-size:var(--text-secondary);color:var(--muted)}
.source-card dl{font-size:var(--text-secondary);grid-template-columns:128px minmax(0,1fr);gap:12px;line-height:1.8}
.source-card dt{color:var(--muted)}.operation-note h3{font-size:1.125rem}.operation-note p{font-size:var(--text-control);color:var(--muted)}
.run-row{font-size:var(--text-secondary);grid-template-columns:145px minmax(0,1fr) 75px;gap:16px}.run-row .run-message small{font-size:var(--text-caption);color:var(--muted)}
.schedule-status{font-size:var(--text-control)}

dialog{width:min(800px,calc(100vw - 40px));padding:30px;max-height:90vh;scrollbar-gutter:stable}
.dialog-top{align-items:flex-start;gap:20px}.dialog-top h2{font-size:1.5rem;line-height:1.5}
.dialog-top .icon-button{width:40px;height:40px}.metric-group{font-size:var(--text-secondary);color:var(--muted)}
.metric-choice{font-size:1rem;align-items:flex-start;gap:16px;padding:16px 10px}.metric-choice .metric-info{font-size:var(--text-caption);line-height:1.8;white-space:normal;max-width:55%;color:var(--muted)}
.metric-choice>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere;word-break:normal}.metric-choice .metric-info{flex:0 1 48%;min-width:0;overflow-wrap:anywhere}.metric-options{overflow-x:hidden}
.saved-place>span:first-child,.sample-meta>div{min-width:0;overflow-wrap:anywhere}
.dialog-note,.location-help,.location-comparison-head{font-size:var(--text-secondary);color:var(--muted)}
#location-input{font-size:1rem}.saved-place strong{font-size:var(--text-control)}.saved-place small,.saved-place>span:last-child small{font-size:var(--text-caption);color:var(--muted)}
.sample-meta{font-size:var(--text-control);gap:20px;padding:20px;line-height:1.8}.sample-meta small{font-size:var(--text-caption);color:var(--muted)}
.sample-highlight{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0 22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.sample-highlight>div{min-width:0}.sample-highlight span{display:block;font-size:1rem;color:var(--muted);margin-bottom:8px}.sample-highlight strong{font-size:2rem;line-height:1.3;font-weight:500;overflow-wrap:anywhere}.sample-highlight small{font-size:var(--text-caption);font-weight:400;display:inline-block;color:var(--muted)}.sample-highlight time{font-size:var(--text-caption);line-height:1.8;color:var(--muted);text-align:right;flex-shrink:0}
.sample-param{font-size:var(--text-control);padding:14px 0;gap:16px;align-items:baseline}.sample-param>span:first-child{color:#536c4c;max-width:66%}
.sample-param small{font-size:var(--text-label);line-height:1.8;color:var(--muted)}
.sample-parameter-title{font-size:1.0625rem;margin:26px 0 8px}.sample-source{font-size:var(--text-caption);color:var(--muted)}
.sample-coordinate,.sample-coordinate strong,.sample-raw-meta,.sample-warning,.sample-observations summary{font-size:var(--text-secondary);line-height:1.85}
.sample-coordinate{padding:16px 18px}.sample-history-records{font-size:var(--text-secondary)}.sample-history-records summary{line-height:1.8}
.sample-history-table{max-height:240px}.sample-history-table>button{font-size:var(--text-secondary);padding:13px 10px;grid-template-columns:minmax(105px,1.2fr) minmax(35px,.6fr) minmax(65px,1fr);gap:12px}
.sample-history-table span{font-size:var(--text-label);color:var(--muted)}
.about-copy h3{font-size:1.125rem}.about-copy p,.about-copy>a{font-size:var(--text-control);color:var(--muted)}
.toast{font-size:var(--text-control)}

@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 380px}}
@media(max-width:1250px){.location-toolbar{grid-template-columns:minmax(220px,1fr) auto minmax(240px,290px)}.filter-fields{margin-left:0;justify-content:flex-start}.content{padding:30px 28px 0}.topbar{padding:0 28px}}
@media(max-width:1100px){.workspace{grid-template-columns:1fr}.detail-panel{display:grid;grid-template-columns:1fr 1fr;gap:20px}.facility-panel{grid-column:1/-1}.facility-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.location-toolbar{grid-template-columns:minmax(0,1fr) auto}.location-search-wrap{grid-column:1/-1}.dataset-field{grid-column:1;grid-row:2}.location-toolbar .secondary-button{grid-column:2;grid-row:2}.data-heading{flex-wrap:wrap}.data-heading .search-box{width:100%}}
@media(min-width:721px) and (max-width:900px){.brand,.nav-item{font-size:0}.brand small{display:none}}
@media(max-width:720px){
 .sidebar{padding:18px 20px}.brand{font-size:.8125rem}.brand small{font-size:.75rem;letter-spacing:2px}.sidebar nav{gap:4px}.nav-item{font-size:0;min-height:44px;min-width:44px;padding:10px}
 .content{padding:28px 20px 0}.topbar{padding:0 20px;height:60px}.breadcrumb{font-size:var(--text-label)}.status-pill{font-size:var(--text-label)}
 .page-title{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px}.page-title .secondary-button{width:fit-content;font-size:var(--text-secondary)}.page-title .secondary-button span{max-width:none;white-space:normal}
 h1{font-size:1.875rem}.page-title p{font-size:var(--text-control);line-height:1.8}
 .archive-notice{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px 10px;padding:16px;font-size:var(--text-secondary)}.archive-notice button{grid-column:2;justify-self:start;margin-left:0;text-align:left}
 .location-toolbar{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:22px}.location-toolbar .location-search-wrap,.dataset-field,.location-toolbar .secondary-button{grid-column:1;grid-row:auto;width:100%;max-width:none}
 .dataset-field{font-size:var(--text-secondary);grid-template-columns:34px minmax(0,1fr);justify-content:initial}.dataset-field select{max-width:none;font-size:1rem;min-height:48px}
 .location-toolbar .secondary-button{font-size:var(--text-control);height:48px}.location-search-wrap .search-box input{font-size:1rem}
 .filters{display:block;margin-top:20px}.metric-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;margin-bottom:16px}
 .metric-tab{font-size:var(--text-control);padding:10px 6px;min-height:48px}.metric-tab.more{grid-column:1/-1;width:100%;margin:4px 0 0;padding:10px 12px;border-left:0;border-top:1px solid var(--line);border-radius:4px;text-align:left}
 .filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;width:100%;align-items:end;margin:0}
 .filter-fields label{display:flex;flex-direction:column;align-items:stretch;gap:7px;font-size:var(--text-secondary);white-space:normal;min-width:0}
 .filter-fields select,.filter-fields label:first-child select{width:100%;min-width:0;max-width:none;font-size:1rem;padding:11px 26px 11px 12px;min-height:48px}
 .filter-fields .compare-button{min-width:0;min-height:48px;font-size:var(--text-control)}.metric-guidance{margin:14px 0 22px;font-size:var(--text-secondary)}
 .panel-heading{padding:22px 20px 12px;gap:12px}.panel-heading>div:first-child{grid-column:1/-1;grid-row:1}.panel-heading .water-stage-badge{grid-column:1;grid-row:2;justify-self:start}.panel-heading .date-tag{grid-column:2;grid-row:2;align-self:center}.panel-heading h2{font-size:1.25rem}.map-panel .unit{font-size:var(--text-caption)}.date-tag{font-size:var(--text-secondary)}.water-stage-badge{font-size:var(--text-label);margin-left:0}
 .map-topline{padding:0 20px 12px;font-size:var(--text-caption);gap:8px}.map-home{font-size:var(--text-caption);padding:10px 12px}.map-layer-state{font-size:var(--text-caption);padding:12px 16px}
 .map-explorer #korea-map{height:510px}.time-playback{padding:14px 16px;gap:7px}.time-playback button{width:30px}.time-playback>span{font-size:var(--text-secondary);min-width:58px}
 .map-legend{padding:6px 20px 20px}.map-footnote{padding:16px 20px;font-size:var(--text-caption)}
 .detail-panel{grid-template-columns:1fr}.facility-panel{grid-column:auto}.facility-list{display:block}.selected-summary,.trend-panel,.facility-panel{padding:22px}
 .selected-summary h2{font-size:1.5rem}.selected-summary .big-measure{flex-wrap:wrap}.summary-grid b{font-size:1rem}.summary-grid div span{font-size:var(--text-caption)}
 .section-heading h3{font-size:1.0625rem}.section-heading>span,.region-strip .section-heading>span{font-size:var(--text-caption);max-width:none;text-align:left}
 .region-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.region-chip>span{font-size:var(--text-secondary)}.region-chip strong{font-size:1.5rem}
 .data-heading{padding:22px}.data-heading h2{font-size:1.375rem}.data-heading p{font-size:var(--text-secondary)}.data-table th,.data-table td{padding:16px}.source-intro h2{font-size:1.875rem}
 .source-card{padding:22px}.source-card dl{grid-template-columns:128px minmax(0,1fr);font-size:var(--text-secondary)}.source-card h3{font-size:1.125rem}
 .run-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:var(--text-secondary)}.run-row>span:first-child{grid-column:1/-1;font-size:var(--text-caption)}
 dialog{width:calc(100vw - 24px);padding:22px;max-height:92vh}.dialog-top{gap:12px}.dialog-top h2{font-size:1.375rem}.dialog-top .eyebrow{font-size:var(--text-label)}
 .sample-meta{grid-template-columns:1fr;gap:16px;font-size:var(--text-control)}.sample-parameters{grid-template-columns:1fr}.sample-param{font-size:var(--text-control)}.sample-param small{font-size:var(--text-label)}
 .sample-coordinate,.sample-coordinate strong,.sample-raw-meta{font-size:var(--text-secondary)}.sample-coordinate{padding:14px}.sample-history-table>button{font-size:var(--text-caption);padding:13px 4px;gap:6px;grid-template-columns:minmax(92px,1fr) minmax(35px,.6fr) minmax(55px,.8fr)}
 .sample-highlight{align-items:flex-start;flex-direction:column;gap:14px}.sample-highlight time{text-align:left}.sample-highlight time br{display:none}
 .sample-history-table span{font-size:var(--text-label)}.metric-choice{font-size:var(--text-control);gap:12px}.metric-choice .metric-info{font-size:var(--text-caption)}.about-copy p{font-size:var(--text-control)}
}
