:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#243746;font-synthesis:none;--bg-page:#f5f8fa;--navy:#173247;--teal:#317d75;--line:#d6e0e5;--muted:#6b7d89;--amber:#8f5410;--amber-soft:#fbf3e6;--amber-line:#e3b979;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-xxl:32px;--radius-sm:3px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 2px 9px rgba(31,58,73,.06);--shadow-md:0 4px 18px rgba(31,58,73,.07)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg-page)}.topbar{min-height:112px;background:#fff;border-bottom:1px solid var(--line);border-top:4px solid var(--teal);display:flex;align-items:center;padding:20px max(28px,calc((100vw - 1600px)/2));gap:18px}.brand-mark{width:48px;height:48px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800;letter-spacing:-1px;border-radius:3px}.title-block{flex:1}.eyebrow,.section-title span{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--teal)}h1{font-size:22px;margin:4px 0;color:var(--navy);letter-spacing:.02em}.station-select{font-size:22px;margin:4px 0;color:var(--navy);letter-spacing:.02em;font-family:inherit;font-weight:700;background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 22px 2px 4px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23317d75' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}.station-select:hover,.station-select:focus{border-color:var(--line);outline:0}.title-block p{margin:0;color:var(--muted);font-size:13px}.station-update{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:12px}.station-update span{color:var(--muted)}.station-update strong{color:var(--navy)}.station-update em{color:#a55d20;font-style:normal}.station-update button{margin-top:6px;border:1px solid var(--line);background:#fff;padding:7px 11px;border-radius:4px;color:var(--navy);cursor:pointer}main{max-width:1600px;margin:auto;padding:16px 28px 28px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);padding:12px;min-height:88px;position:relative;overflow:hidden}.kpi-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;margin-bottom:7px}.kpi strong{font-size:19px;color:var(--navy);letter-spacing:-.02em}.kpi small{font-size:12px;color:var(--muted);font-weight:500}.kpi em{display:block;font-size:10px;color:var(--muted);font-style:normal;margin-top:3px}.skeleton{background:linear-gradient(90deg,#fff,#f1f4f5,#fff);background-size:200%;animation:pulse 1.3s infinite}.workspace{display:grid;grid-template-columns:252px minmax(0,1fr);gap:14px}.filters,.chart-panel,.quality{background:#fff;border:1px solid var(--line)}.filters{padding:16px;align-self:start}.section-title{display:flex;flex-direction:column;gap:3px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:12px}.filters label{font-size:12px;color:#526672;display:flex;flex-direction:column;gap:4px;margin-bottom:13px}.filters select,.filters input[type=date]{width:100%;border:1px solid #c8d4da;border-radius:3px;background:#fff;padding:7px;color:#263e4d}.filters select:hover,.filters input[type=date]:hover{border-color:#9db3ba}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8d4da;border-radius:3px;margin-bottom:6px}.segmented button,.quick button{border:0;background:#fff;padding:7px;color:#526672;cursor:pointer}.segmented .active{background:var(--teal);color:#fff}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check{flex-direction:row!important;align-items:center;gap:8px!important;margin:0!important;cursor:pointer}.check input{accent-color:var(--teal)}.check span{color:#263e4d;display:inline-flex;align-items:center;gap:6px}.check small{display:block;color:var(--muted)}.year-swatch{width:9px;height:9px;border-radius:2px;flex:none}.historical-preview{vertical-align:-1px;margin-right:5px}.historical{padding:10px;background:#f0f6f5;margin-bottom:15px!important}.year-heading{display:flex;justify-content:space-between;font-size:12px;margin:0 0 6px}.year-heading span{color:var(--muted)}.quick{display:flex;gap:4px;margin-bottom:8px}.quick button{background:#edf2f4;font-size:10px;padding:6px 4px;border-radius:3px}.years{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 0 0}.primary{width:100%;background:#fff;color:var(--teal);border:1px solid #bad0cf;border-radius:3px;padding:8px;font-weight:650;font-size:12px;cursor:pointer}.content{min-width:0}.chart-panel{min-height:640px}.panel-heading{padding:14px 20px 10px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.panel-heading h2{margin:0;font-size:20px}.export{align-self:center;text-decoration:none;border:1px solid #bad0cf;padding:8px 12px;color:var(--teal);font-size:12px;border-radius:3px}.chart-loading,.empty,.error{height:500px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);gap:10px}.chart-loading span{width:25px;height:25px;border:3px solid #dce7e8;border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}.error b{color:#914641}.quality{margin-top:12px;padding:13px 16px}.quality summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}.quality summary>span{width:27px;height:27px;border:1px solid var(--amber-line);background:var(--amber-soft);color:var(--amber);display:grid;place-items:center;border-radius:50%;font-weight:700}.quality b,.quality small{display:block}.quality small,.quality p{color:var(--muted);font-size:11px}.quality p{padding-left:37px}footer{max-width:1600px;margin:auto;padding:18px 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{to{background-position:-200%}}@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.workspace{grid-template-columns:1fr}.filters{order:0}.topbar{align-items:flex-start;flex-wrap:wrap}.station-update{align-items:flex-start;margin-left:66px}.chart-panel{min-height:540px}}@media(max-width:560px){main{padding:14px}.topbar{padding:16px}.cards{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:10px}.kpi strong{font-size:17px}.station-update{margin-left:0}.date-grid{grid-template-columns:1fr}.panel-heading{flex-direction:column;gap:10px}footer{padding:16px;flex-direction:column;gap:5px}}.mode-hint{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.4}.period-heading{font-size:11px;font-weight:700;color:#526672;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #6aa49e;outline-offset:2px;border-radius:2px}.segmented button:focus-visible{outline-offset:-2px}.check input:focus-visible{outline-offset:3px}.filter-group{padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid #eef2f4}.filter-group:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.filter-group label{margin-bottom:0}.filter-group .historical-averages{margin:0}.filter-group .year-heading{margin-top:0}.filter-actions{padding-top:0}.chart-panel{min-height:690px}.chart-loading,.empty,.error{height:560px}.empty b,.error b{display:block;color:var(--navy);font-size:14px;margin-bottom:4px}.empty span,.error span{font-size:12px}.retry{margin-top:6px;border:1px solid #bad0cf;background:#fff;color:var(--teal);font-weight:650;padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:.16s ease}.retry:hover{background:#eaf4f2;border-color:#79aaa5}.info-mark{display:inline-block;margin-left:5px;color:#9db0ba;cursor:help;font-size:11px;vertical-align:1px}.info-mark:hover,.info-mark:focus-visible{color:var(--teal)}.quality-body{padding-left:37px}.quality-body p{padding-left:0}.link-action{border:0;background:none;color:var(--teal);font-weight:650;font-size:11px;padding:4px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-action:hover{color:#245951}.quality-table-wrap{margin-top:10px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.quality-table{width:100%;border-collapse:collapse;font-size:11px}.quality-table th{position:sticky;top:0;background:#f4f7f8;color:var(--muted);text-align:left;font-weight:700;padding:7px 10px;border-bottom:1px solid var(--line)}.quality-table td{padding:6px 10px;border-bottom:1px solid #eef2f4;color:#344c5b;font-variant-numeric:tabular-nums;white-space:nowrap}.quality-table tr:last-child td{border-bottom:0}@media(max-width:900px){.chart-panel{min-height:585px}.chart-loading,.empty,.error{height:450px}}@media(max-width:560px){.chart-loading,.empty,.error{height:400px}}.kpi-primary{background:var(--metric-tint,#fff)}.kpi-primary:before{width:6px;background:var(--metric-accent,var(--teal))}.kpi-primary strong{color:var(--metric-accent,var(--navy))}.kpi-primary .kpi-icon{color:var(--metric-accent,var(--muted))}.kpi-primary .kpi-icon-chip{background:#fff}.kpi-icon{flex:none}.kpi-icon-chip{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none}.kpi-trend{background:#eef4f8}.kpi-trend:before{width:4px;background:#4a7ba3}.kpi-trend .kpi-icon{color:#4a7ba3}.kpi-trend .kpi-icon-chip{background:#dce9f1}.kpi-up{background:#faf3e9}.kpi-up:before{width:4px;background:#8f5c1e}.kpi-up .kpi-icon{color:#8f5c1e;font-size:9px}.kpi-up .kpi-icon-chip{background:#f0e2cc}.kpi-down{background:#eaf5f7}.kpi-down:before{width:4px;background:#286f82}.kpi-down .kpi-icon{color:#286f82;font-size:9px}.kpi-down .kpi-icon-chip{background:#d6ebef}.year-swatch{outline:1px solid rgba(23,50,71,.12);outline-offset:0}.panel-meta{margin:5px 0 0;color:#5a6d78;font-size:11.5px;font-weight:500;line-height:1.5}.tooltip-rows{display:grid;grid-template-columns:auto 1fr auto;row-gap:4px;column-gap:8px;align-items:center;min-width:290px}.tooltip-row{display:contents}.tooltip-row-current span{font-weight:700}.tooltip-row-current b{font-weight:800}.tooltip-gap{grid-column:1/-1;height:5px}.cards{gap:16px}.kpi{border-radius:6px;border-color:#dbe4e8;box-shadow:var(--shadow-sm)}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#dbe4e8}.kpi strong{letter-spacing:-.025em}.chart-panel{border-radius:7px;border-color:#d8e2e6;box-shadow:var(--shadow-md);overflow:hidden;background:linear-gradient(180deg,#fff 0,#fff 88%,#fbfcfc)}.panel-heading{padding:16px 24px 14px;background:#fbfcfc}.panel-heading h2{font-size:22px;letter-spacing:-.015em}.export{border-radius:5px;background:#f7fbfa;font-weight:650;transition:.18s ease}.export:hover{background:#eaf4f2;border-color:#79aaa5;transform:translateY(-1px)}.historical-averages{border:0;background:none;margin:0;padding:0}.historical-averages legend{padding:0;margin-bottom:4px;color:#317d75;font-size:11px;font-weight:800;letter-spacing:.06em}.historical-averages .historical{padding:4px 0;background:transparent;margin:0!important}.historical-averages .historical+.historical{border-top:1px solid #eef2f4;padding-top:6px}.secondary-metrics{border:0;background:none;margin:0 0 4px;padding:0}.secondary-metrics legend{padding:0;margin-bottom:6px;color:#317d75;font-size:11px;font-weight:800;letter-spacing:.06em}.secondary-metrics .check{margin-bottom:7px!important}.secondary-metrics .check small{color:var(--muted);font-weight:500}.filters{border-radius:7px}.primary,.segmented,.filters select,.filters input[type=date]{transition:border-color .16s,box-shadow .16s}.filters select:focus,.filters input[type=date]:focus{outline:0;border-color:#6aa49e;box-shadow:0 0 0 3px #317d751a}.primary:hover{background:#eaf4f2;border-color:#79aaa5}.tooltip-title{font-size:13px;font-weight:800;letter-spacing:.02em;margin-bottom:2px}.tooltip-metric{font-size:10px;color:#9db3be;text-transform:uppercase;letter-spacing:.1em;margin-bottom:9px}.tooltip-row span{color:#dce7eb}.tooltip-row b{font-variant-numeric:tabular-nums}.tooltip-quality{margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.16);color:#8dd0c7;font-size:11px}.quality{border-radius:6px}
