
:root{
  color-scheme:light;
  --background:var(--wg-color-background);
  --surface:var(--wg-color-surface);
  --surface-muted:var(--wg-color-surface-muted);
  --surface-hover:var(--wg-color-surface-hover);
  --foreground:var(--wg-color-foreground);
  --muted:var(--wg-color-muted);
  --muted-2:var(--wg-color-muted-2);
  --border:var(--wg-color-border);
  --border-strong:var(--wg-color-border-strong);
  --primary:var(--wg-color-primary);
  --primary-soft:var(--wg-color-primary-soft);
  --green:var(--wg-color-success);
  --green-soft:var(--wg-color-success-soft);
  --amber:var(--wg-color-warning);
  --amber-soft:var(--wg-color-warning-soft);
  --red:var(--wg-color-danger);
  --red-soft:var(--wg-color-danger-soft);
  --purple:var(--wg-color-purple);
  --sidebar:var(--wg-layout-sidebar-width);
  --topbar:var(--wg-layout-topbar-height);
  --radius:var(--wg-radius-panel);
  --shadow:var(--wg-shadow-panel);
  --shadow-float:var(--wg-shadow-floating);
  font-family:var(--wg-font-sans);
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --background:var(--wg-color-background);
  --surface:var(--wg-color-surface);
  --surface-muted:var(--wg-color-surface-muted);
  --surface-hover:var(--wg-color-surface-hover);
  --foreground:var(--wg-color-foreground);
  --muted:var(--wg-color-muted);
  --muted-2:var(--wg-color-muted-2);
  --border:var(--wg-color-border);
  --border-strong:var(--wg-color-border-strong);
  --primary:var(--wg-color-primary);
  --primary-soft:var(--wg-color-primary-soft);
  --green:var(--wg-color-success);
  --green-soft:var(--wg-color-success-soft);
  --amber:var(--wg-color-warning);
  --amber-soft:var(--wg-color-warning-soft);
  --red:var(--wg-color-danger);
  --red-soft:var(--wg-color-danger-soft);
  --purple:var(--wg-color-purple);
  --shadow:var(--wg-shadow-panel);
  --shadow-float:var(--wg-shadow-floating);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--background);color:var(--foreground)}
body{font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select{font:inherit;color:inherit}
button,select{cursor:pointer}
button{border:0}
svg{display:block}
.icon{flex:none}
::selection{background:color-mix(in srgb,var(--primary) 18%,transparent)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 28%,transparent);border-radius:999px}
::-webkit-scrollbar-track{background:transparent}
.app-shell{min-height:100vh}
.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border)}
.brand{height:var(--topbar);display:flex;align-items:center;gap:var(--wg-space-10);padding:0 var(--wg-space-20);border-bottom:1px solid var(--border)}
.brand-mark{width:30px;height:30px;display:grid;place-items:center;color:#3b82f6}
.brand strong{font-size:17px;letter-spacing:-.025em;font-weight:720}
.sidebar nav{flex:1;overflow:auto;padding:var(--wg-space-16) var(--wg-space-12) var(--wg-space-18)}
.nav-group+.nav-group{margin-top:var(--wg-space-22)}
.nav-section{padding:0 var(--wg-space-6) var(--wg-space-8);color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.045em}
.nav-item{position:relative;width:100%;height:40px;display:flex;align-items:center;gap:var(--wg-space-11);padding:0 var(--wg-space-10);border-radius:var(--wg-radius-control);background:transparent;color:#344054;text-align:left;font-size:var(--wg-type-nav-size);font-weight:var(--wg-type-nav-weight)}
:root[data-theme="dark"] .nav-item{color:#d4d4d8}
.nav-item:hover{background:var(--surface-hover);color:var(--foreground)}
.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:620}
.nav-item b{margin-left:auto;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--red);color:#fff;font-size:9px;line-height:1}
.account-card{margin:0 14px 16px;min-height:62px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);text-align:left}
.account-card:hover{background:var(--surface-hover)}
.avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted);color:var(--muted);border:1px solid var(--border)}
.avatar.small{width:28px;height:28px}
.account-card>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:2px}
.account-card strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-card small{font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main-shell{min-height:100vh;margin-left:var(--sidebar)}
.topbar{position:sticky;z-index:30;top:0;height:var(--topbar);display:flex;align-items:center;gap:10px;padding:0 22px 0 28px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.station-selector{position:relative;min-width:250px;height:38px;display:flex;align-items:center;gap:8px;padding:0 9px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.02)}
.station-selector .live-dot{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 0 6px color-mix(in srgb,#34d399 10%,transparent)}
.station-selector select{min-width:0;flex:1;border:0;background:transparent;appearance:none;outline:0;font-size:12px;font-weight:560}
.station-selector>.icon{pointer-events:none;color:var(--muted)}
.station-selector.disabled{color:var(--muted)}
.topbar-spacer{flex:1}
.live-state{display:flex;align-items:center;gap:9px;padding:0 6px}
.live-state-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 7px var(--green-soft)}
.live-state>span:last-child{display:flex;flex-direction:column;gap:1px}
.live-state strong{color:var(--green);font-size:10.5px;font-weight:650}
.live-state small{color:var(--muted);font-size:9.5px}
.topbar-divider{width:1px;height:28px;margin:0 2px;background:var(--border)}
.icon-button{position:relative;width:36px;height:36px;display:grid;place-items:center;border-radius:7px;background:transparent;color:var(--foreground)}
.icon-button:hover{background:var(--surface-hover)}
.notification-button span{position:absolute;right:2px;top:1px;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface);border-radius:999px;background:var(--primary);color:#fff;font-size:8px;font-weight:700}
.menu-button{display:none}
.content{padding:var(--wg-space-20) var(--wg-space-28) var(--wg-space-34)}
.connection-banner{margin-bottom:14px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--amber) 26%,var(--border));border-radius:7px;background:var(--amber-soft);color:var(--amber);font-size:11px}
.page-stack{display:flex;flex-direction:column;gap:var(--wg-space-18)}
.page-header{min-height:96px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wg-space-18);padding-top:var(--wg-space-12)}
.page-header h1{margin:0;font-size:var(--wg-type-page-title-size);line-height:var(--wg-type-page-title-line);letter-spacing:var(--wg-type-page-title-tracking);font-weight:var(--wg-type-page-title-weight)}
.page-header p{margin:var(--wg-space-7) 0 0;color:var(--muted);font-size:var(--wg-type-page-subtitle-size)}
.header-summary{display:flex;gap:12px;margin-top:-1px}
.summary-card{width:206px;height:86px;padding:13px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}
.summary-card>span{display:block;color:var(--foreground);font-size:10.5px;font-weight:570}
.summary-card>strong{display:block;margin-top:7px;font-size:18px;letter-spacing:.005em;font-variant-numeric:tabular-nums}
.summary-card>small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px}
.system-card{width:225px}
.system-card>div{height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.system-card strong{font-size:10.5px;font-weight:630}
.system-check{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green)}
.system-normal{color:var(--green)!important}.system-warning{color:var(--amber)!important}.system-critical{color:var(--red)!important}
.system-check.system-warning{background:var(--amber-soft)}.system-check.system-critical{background:var(--red-soft)}
.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.panel-header{min-height:50px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px 10px}
.panel-header h2{margin:0;font-size:var(--wg-type-panel-title-size);font-weight:var(--wg-type-panel-title-weight);letter-spacing:-.012em}
.panel-header p{margin:var(--wg-space-4) 0 0;color:var(--muted);font-size:var(--wg-type-panel-meta-size)}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--wg-space-12)}
.kpi-card{min-height:116px;display:flex;gap:var(--wg-space-11);padding:var(--wg-space-14);border:1px solid var(--border);border-radius:var(--wg-radius-panel);background:var(--surface);box-shadow:var(--shadow)}
.kpi-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;background:var(--primary-soft);color:var(--primary)}
.kpi-body{min-width:0;display:flex;flex-direction:column}
.kpi-label{color:var(--foreground);font-size:var(--wg-type-metric-label-size);font-weight:590;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-value{margin-top:var(--wg-space-6);font-size:var(--wg-type-metric-value-size);font-weight:var(--wg-type-metric-value-weight);letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi-value span{font-size:10.5px;font-weight:560;color:var(--foreground)}
.kpi-trend{margin-top:auto;display:flex;align-items:center;gap:var(--wg-space-3);font-size:var(--wg-type-metric-meta-size);white-space:nowrap;color:var(--muted)}
.trend-up{color:var(--red)!important}.trend-down{color:var(--green)!important}.trend-flat{color:var(--muted)!important}
.critical-pill{align-self:flex-start;margin-top:7px;padding:3px 7px;border-radius:999px;background:var(--red-soft);color:var(--red);font-size:8.5px;font-weight:650}
.text-critical{color:var(--red)!important}.text-warning{color:var(--amber)!important}
.dashboard-charts{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(205px,.92fr) minmax(230px,1.05fr);gap:12px}
.trend-panel,.wind-panel,.water-panel{min-height:315px;overflow:hidden}
.range-select{position:relative;height:34px;min-width:98px;display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface)}
.range-select select{width:100%;height:100%;padding:0 29px 0 10px;border:0;background:transparent;appearance:none;outline:0;font-size:9.5px}
.range-select .icon{position:absolute;right:8px;pointer-events:none;color:var(--muted)}
.chart-legend{display:flex;align-items:center;gap:18px;padding:0 17px 6px;color:var(--muted);font-size:9.5px}
.chart-legend span{display:flex;align-items:center;gap:6px}
.chart-legend i{width:14px;height:3px;border-radius:999px}
.chart-wrap{padding:0 10px 8px}
.multi-chart,.simple-chart{display:block;width:100%;height:auto;overflow:visible}
.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 3}
.chart-axis{fill:var(--muted);font-size:8px;font-family:inherit}
.threshold-line{stroke:var(--red);stroke-width:1.2;stroke-dasharray:4 4}
.chart-empty{height:200px;display:grid;place-items:center;color:var(--muted);font-size:10px}.chart-empty.compact{height:120px}
.wind-speed{padding:0 14px;color:var(--primary);font-size:17px;font-weight:690}.wind-speed small,.water-value small{font-size:9px;font-weight:550}
.wind-compass{min-height:225px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.wind-compass strong{margin-top:-13px;font-size:13px}.wind-compass>span{margin-top:2px;color:var(--muted);font-size:9.5px}
.compass{position:relative;width:155px;height:155px}
.compass-circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid var(--border);border-radius:50%}.compass-outer{width:124px;height:124px}.compass-inner{width:82px;height:82px}
.compass:before,.compass:after{content:"";position:absolute;left:50%;top:24px;width:1px;height:108px;background:var(--border);transform:translateX(-50%)}.compass:after{transform:translateX(-50%) rotate(90deg)}
.compass>span{position:absolute;z-index:2;color:var(--foreground);font-size:9px;font-weight:650}.c-n{top:3px;left:50%;transform:translateX(-50%)}.c-s{bottom:3px;left:50%;transform:translateX(-50%)}.c-e{right:4px;top:50%;transform:translateY(-50%)}.c-w{left:4px;top:50%;transform:translateY(-50%)}
.compass-needle{position:absolute;z-index:3;left:50%;top:50%;width:3px;height:48px;border-radius:999px;background:var(--primary);transform-origin:50% 100%;transition:transform .25s ease}.compass-needle:before{content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid var(--primary)}.compass-center{position:absolute;z-index:4;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:var(--foreground)}
.water-value{padding:0 14px;color:var(--foreground);font-size:19px;font-weight:720}.water-status{padding:3px 14px 2px;font-size:10px}.water-status.critical{color:var(--red)}.water-status.warning{color:var(--amber)}.water-status.normal{color:var(--green)}
.water-chart{padding:0 10px;margin-top:3px}.water-footer{height:41px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-top:1px solid var(--border);font-size:9.5px}.water-footer strong{font-size:9.5px}
.dashboard-bottom{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(285px,1fr);gap:12px}
.readings-panel,.health-panel{min-height:260px;overflow:hidden}
.table-scroll{overflow:auto}
.data-table{width:100%;border-collapse:collapse;min-width:680px}
.data-table th{height:35px;padding:0 12px;background:var(--surface-muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);font-size:8.4px;font-weight:620;text-align:left;white-space:nowrap}
.data-table td{height:38px;padding:0 12px;border-bottom:1px solid var(--border);font-size:9.3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-hover)}
.reading-time{display:flex;align-items:center;gap:8px}.reading-time i{width:5px;height:5px;border-radius:50%;background:#34d399}.table-empty{text-align:center;color:var(--muted)}
.outline-button,.primary-button{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border-radius:6px;font-size:9.5px;font-weight:600}
.outline-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--foreground)}.outline-button:hover{background:var(--surface-hover)}
.primary-button{background:var(--primary);color:#fff}.primary-button:hover{filter:brightness(.96)}
.health-list{display:flex;flex-direction:column}
.health-row{min-height:61px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--border);background:transparent;color:var(--foreground);text-align:left}.health-row:hover{background:var(--surface-hover)}
.health-row>div:first-child{min-width:0;display:flex;flex-direction:column;gap:4px}.health-row strong{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-row span{color:var(--muted);font-size:8.5px}
.health-row-end{display:flex;align-items:center;gap:11px}.badge{display:inline-flex!important;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;font-size:8.5px!important;font-weight:620;white-space:nowrap}.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.badge-online{color:var(--green)!important;background:var(--green-soft)}.badge-stale{color:var(--amber)!important;background:var(--amber-soft)}.badge-offline{color:var(--red)!important;background:var(--red-soft)}.badge-no-data{color:var(--muted)!important;background:var(--surface-muted)}
.signal-bars{height:18px;display:flex;align-items:flex-end;gap:2px}.signal-bars i{width:3px;border-radius:2px;background:var(--border-strong)}.signal-bars i:nth-child(1){height:5px}.signal-bars i:nth-child(2){height:8px}.signal-bars i:nth-child(3){height:12px}.signal-bars i:nth-child(4){height:16px}.signal-1 i:nth-child(-n+1),.signal-2 i:nth-child(-n+2),.signal-3 i:nth-child(-n+3),.signal-4 i{background:var(--green)}
.page-meta,.header-actions,.alert-summary,.page-stat{display:flex;align-items:center;gap:10px}.page-meta>span:last-child{color:var(--muted);font-size:10px}.page-stat strong{font-size:22px}.page-stat span{color:var(--muted);font-size:10px}
.realtime-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.telemetry-card{min-height:230px;padding:14px;overflow:hidden}.telemetry-head{display:flex;align-items:center;gap:10px}.telemetry-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.telemetry-head>div:last-child{display:flex;flex-direction:column;gap:3px}.telemetry-head span{color:var(--muted);font-size:9px}.telemetry-head strong{font-size:18px}.telemetry-head small{font-size:9px;font-weight:550;color:var(--muted)}.telemetry-chart{margin-top:14px}.direction-body{min-height:160px;display:flex;align-items:center;justify-content:center;gap:18px}.direction-body .compass{width:130px;height:130px;transform:scale(.84)}.direction-body>div:last-child{display:flex;flex-direction:column;gap:3px}.direction-body>div:last-child strong{font-size:15px}.direction-body>div:last-child span{font-size:9px;color:var(--muted)}
.compact-field{height:32px;display:flex;align-items:center;gap:6px;padding-left:9px;border:1px solid var(--border-strong);border-radius:6px;color:var(--muted);font-size:9px}.compact-field select{height:100%;padding:0 8px;border:0;background:transparent;outline:0;color:var(--foreground)}
.history-table{min-width:1160px}.history-table td:first-child strong,.history-table td:first-child small{display:block}.history-table td:first-child small{margin-top:2px;color:var(--muted);font-size:8px}.source-tag,.station-kind,.role-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:5px;background:var(--surface-muted);color:var(--muted);font-size:8.5px;font-weight:600;text-transform:capitalize}.role-badge{color:var(--primary);background:var(--primary-soft)}.role-badge.muted{color:var(--muted)}
.alert-summary span{min-width:88px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--muted);font-size:9px}.alert-summary b{display:block;color:var(--foreground);font-size:15px}.segmented{display:flex;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.segmented button{height:26px;padding:0 9px;border-radius:4px;background:transparent;color:var(--muted);font-size:8.7px}.segmented button.active{background:var(--surface);color:var(--foreground);box-shadow:0 1px 2px rgba(16,24,40,.08)}
.alert-list{border-top:1px solid var(--border)}.alert-row{min-height:58px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border)}.alert-row:last-child{border-bottom:0}.alert-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--amber-soft);color:var(--amber)}.alert-critical .alert-symbol{background:var(--red-soft);color:var(--red)}.alert-row>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.alert-row strong{font-size:10px}.alert-row span{color:var(--muted);font-size:8.7px}.severity-badge{padding:3px 7px;border-radius:999px;font-size:8px!important;font-weight:650;text-transform:capitalize}.severity-critical{background:var(--red-soft);color:var(--red)!important}.severity-warning{background:var(--amber-soft);color:var(--amber)!important}.empty-inline{padding:30px;text-align:center;color:var(--muted);font-size:10px}
.report-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.report-summary-card{min-height:118px;padding:15px;display:flex;flex-direction:column}.report-summary-card>span{color:var(--muted);font-size:9px}.report-summary-card>strong{margin-top:10px;font-size:18px}.report-summary-card>small{margin-top:auto;color:var(--muted);font-size:8.5px}
.station-table{overflow:hidden}.station-head,.station-row{display:grid;grid-template-columns:minmax(260px,2fr) .65fr .72fr .8fr 22px;align-items:center;gap:12px;padding:0 14px}.station-head{height:36px;background:var(--surface-muted);color:var(--muted);font-size:8.5px;font-weight:620}.station-row{width:100%;min-height:64px;border-top:1px solid var(--border);background:transparent;text-align:left}.station-row:hover{background:var(--surface-hover)}.station-row.selected{box-shadow:inset 2px 0 0 var(--primary)}.station-name{display:flex;align-items:center;gap:10px;min-width:0}.station-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--muted-2)}.status-dot-online{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.status-dot-stale{background:var(--amber)}.status-dot-offline{background:var(--red)}.station-name>div{min-width:0;display:flex;flex-direction:column;gap:4px}.station-name strong{font-size:10px}.station-name span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:8.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-row>span:not(.station-kind):not(.badge){color:var(--muted);font-size:9px}
.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.device-card{min-height:255px;padding:16px;display:flex;flex-direction:column}.device-card-top{display:flex;align-items:center;justify-content:space-between}.device-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.device-card>strong{margin-top:15px;font-size:15px}.device-card>span:not(.device-icon){margin-top:3px;color:var(--muted);font-size:9.5px}.device-card dl{margin:15px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.device-card dl div{display:flex;flex-direction:column;gap:3px}.device-card dt{color:var(--muted);font-size:8px}.device-card dd{margin:0;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-card>.outline-button{margin-top:auto;align-self:flex-start}
.auth-callout{min-height:110px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:16px}.auth-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary)}.auth-callout h2{margin:0;font-size:12px}.auth-callout p{margin:5px 0 0;color:var(--muted);font-size:9.5px}.user-cell{display:flex;align-items:center;gap:8px}.user-cell>div{display:flex;flex-direction:column;gap:2px}.user-cell small{color:var(--muted);font-size:8px}
.profile-grid{display:grid;grid-template-columns:310px 1fr;gap:12px}.profile-card{min-height:315px;padding:25px;display:flex;flex-direction:column;align-items:flex-start}.profile-avatar{width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.profile-card h2{margin:16px 0 4px;font-size:18px}.profile-card p{margin:0 0 10px;color:var(--muted);font-size:10px}.profile-card .outline-button,.profile-card .primary-button{margin-top:auto}.profile-details{overflow:hidden}.profile-details dl{margin:0}.profile-details dl div{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 14px;border-top:1px solid var(--border)}.profile-details dt{color:var(--muted);font-size:9.5px}.profile-details dd{margin:0;display:flex;align-items:center;gap:5px;font-size:9.5px}.profile-details dd .icon{color:var(--green)}
.system-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.system-runtime-card{min-height:170px;padding:16px;display:flex;flex-direction:column}.system-runtime-card>span{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.system-runtime-card small{margin-top:18px;color:var(--muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.04em}.system-runtime-card strong{margin-top:5px;font-size:15px;text-transform:capitalize}.system-runtime-card p{margin:auto 0 0;color:var(--muted);font-size:8.7px;line-height:1.5}.threshold-panel{overflow:hidden}.threshold-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--border)}.threshold-grid>div{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 14px;border-bottom:1px solid var(--border)}.threshold-grid>div:nth-child(odd){border-right:1px solid var(--border)}.threshold-grid strong{font-size:9.5px}.threshold-grid span{color:var(--muted);font-size:8.3px;text-align:right}
.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.4);backdrop-filter:blur(3px)}.login-modal{position:relative;width:min(380px,100%);padding:24px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-float)}.modal-close{position:absolute;right:10px;top:10px}.login-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary)}.login-modal h2{margin:16px 0 5px;font-size:17px;letter-spacing:-.02em}.login-modal>p{margin:0 0 17px;color:var(--muted);font-size:10px;line-height:1.5}.login-modal label{display:flex;flex-direction:column;gap:6px;margin-top:11px;color:var(--muted);font-size:9px;font-weight:600}.login-modal input{height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);outline:0}.login-modal input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.login-submit{width:100%;margin-top:16px;height:36px}.form-error{margin-top:10px;padding:8px 9px;border:1px solid color-mix(in srgb,var(--red) 24%,var(--border));border-radius:6px;background:var(--red-soft);color:var(--red);font-size:9px}.empty-state{min-height:480px;display:grid;place-items:center;align-content:center;color:var(--muted)}.empty-state>span{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted)}.empty-state h2{margin:13px 0 5px;color:var(--foreground);font-size:16px}.empty-state p{margin:0;font-size:10px}
.sidebar-backdrop{display:none}
@media(max-width:1320px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-charts{grid-template-columns:minmax(0,2fr) 1fr}.water-panel{grid-column:1/-1;min-height:255px}.water-chart{max-width:620px}.dashboard-bottom{grid-template-columns:1.6fr 1fr}.system-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1080px){.page-header{flex-direction:column;min-height:auto}.header-summary{width:100%}.summary-card{flex:1}.dashboard-charts{grid-template-columns:1fr 1fr}.trend-panel{grid-column:1/-1}.water-panel{grid-column:auto}.dashboard-bottom{grid-template-columns:1fr}.realtime-grid,.device-grid{grid-template-columns:repeat(2,1fr)}.report-overview{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){:root{--sidebar:228px}.sidebar{transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0);box-shadow:var(--shadow-float)}.sidebar-backdrop{display:block;position:fixed;z-index:35;inset:0;background:rgba(15,23,42,.28)}.main-shell{margin-left:0}.menu-button{display:grid}.content{padding:18px}.topbar{padding:0 14px}.station-selector{min-width:210px}.station-head{display:none}.station-row{grid-template-columns:1fr auto auto;padding:12px 14px;gap:10px}.station-row>.station-kind,.station-row>span:nth-of-type(3){display:none}.profile-grid{grid-template-columns:1fr}.system-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{height:60px}.live-state,.topbar-divider{display:none}.station-selector{min-width:0;flex:1;max-width:280px}.content{padding:15px 12px 28px}.page-header h1{font-size:21px}.header-summary{display:grid;grid-template-columns:1fr 1fr}.summary-card,.system-card{width:auto}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-charts{grid-template-columns:1fr}.trend-panel,.wind-panel,.water-panel{grid-column:auto}.dashboard-bottom{grid-template-columns:1fr}.realtime-grid,.device-grid{grid-template-columns:1fr}.report-overview{grid-template-columns:1fr 1fr}.header-actions{width:100%;flex-wrap:wrap}.page-header>div:last-child:not(.header-summary){max-width:100%}.threshold-grid{grid-template-columns:1fr}.threshold-grid>div:nth-child(odd){border-right:0}.auth-callout{grid-template-columns:42px 1fr}.auth-callout>.primary-button{grid-column:1/-1;justify-self:start}.system-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.brand{height:60px}.topbar .notification-button{display:none}.station-selector{max-width:none}.kpi-grid{grid-template-columns:1fr}.header-summary{grid-template-columns:1fr}.summary-card,.system-card{height:78px}.dashboard-charts{gap:10px}.panel-header{padding:12px}.chart-legend{gap:10px;overflow:auto}.report-overview,.system-grid{grid-template-columns:1fr}.alert-summary{width:100%}.page-header{gap:12px}.health-row-end .signal-bars{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

.trend-panel .panel-header h2,.health-panel .panel-header h2{white-space:nowrap}
.kpi-icon .icon,.telemetry-icon .icon{color:var(--primary)}
.station-selector.selector-stale .live-dot{background:var(--amber);box-shadow:0 0 0 6px var(--amber-soft)}
.station-selector.selector-offline .live-dot{background:var(--red);box-shadow:0 0 0 6px var(--red-soft)}
.station-selector.selector-no-data .live-dot{background:var(--muted-2);box-shadow:0 0 0 6px var(--surface-muted)}
.live-state.live-stale .live-state-dot{background:var(--amber);box-shadow:0 0 0 7px var(--amber-soft)}
.live-state.live-stale strong{color:var(--amber)}
.live-state.live-offline .live-state-dot{background:var(--red);box-shadow:0 0 0 7px var(--red-soft)}
.live-state.live-offline strong{color:var(--red)}
.live-state.live-no-data .live-state-dot{background:var(--muted-2);box-shadow:0 0 0 7px var(--surface-muted)}
.live-state.live-no-data strong{color:var(--muted)}

/* ================================================================
   WeatherGrid Pro v0.5 — fidelity & telemetry detail pass
   Shadcn/Vercel-inspired information density with domain-specific SVG
   ================================================================ */
:root{
  --sidebar:248px;
  --radius:9px;
  --shadow:0 1px 2px rgba(16,24,40,.03),0 6px 18px rgba(16,24,40,.028);
}
body{background:var(--background)}
.brand{height:var(--topbar);gap:11px;padding:0 18px}
.brand-mark{width:32px;height:32px;border-radius:8px;background:linear-gradient(145deg,#eff5ff,#f8fbff);border:1px solid #dfebff;color:#4f83f1}
:root[data-theme="dark"] .brand-mark{background:var(--primary-soft);border-color:var(--border)}
.brand>span{display:flex;min-width:0;flex-direction:column;gap:1px}
.brand strong{font-size:15.5px;line-height:1.15;letter-spacing:-.028em}
.brand small{color:var(--muted);font-size:8.4px;letter-spacing:.01em}
.sidebar nav{padding:14px 12px 12px}
.nav-group+.nav-group{margin-top:19px}
.nav-section{padding:0 8px 7px;font-size:9px;letter-spacing:.07em}
.nav-item{height:38px;gap:10px;padding:0 10px;border-radius:7px;font-size:11.5px}
.nav-item .icon{opacity:.86}
.sidebar-footer{display:flex;flex-direction:column;gap:9px;padding:0 12px 12px}
.sidebar-system{padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);box-shadow:var(--shadow)}
.sidebar-system>span{display:block;color:var(--muted);font-size:8.3px;font-weight:620;text-transform:uppercase;letter-spacing:.05em}
.sidebar-system>strong{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:9px;font-weight:650}
.sidebar-system>strong i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 10%,transparent)}
.sidebar-system dl{margin:11px 0 0;padding-top:9px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}
.sidebar-system dl div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sidebar-system dt{color:var(--muted);font-size:8.1px}
.sidebar-system dd{margin:0;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.3px;font-variant-numeric:tabular-nums}
.account-card{margin:0;min-height:54px;grid-template-columns:30px 1fr auto;padding:7px 9px;box-shadow:none}
.account-card .avatar{width:29px;height:29px}
.account-card strong{font-size:9.6px}.account-card small{font-size:8.2px}
.topbar{padding:0 20px 0 24px}
.topbar-user{height:40px;display:flex;align-items:center;gap:8px;padding:4px 7px;border-radius:8px;background:transparent;text-align:left}
.topbar-user:hover{background:var(--surface-hover)}
.topbar-user>span:nth-child(2){display:flex;flex-direction:column;gap:1px;min-width:70px}
.topbar-user strong{font-size:9.3px;font-weight:650}.topbar-user small{font-size:8px;color:var(--muted)}.topbar-user>.icon{color:var(--muted)}
.content{padding:20px 24px 34px;max-width:1700px;margin:0 auto}
.page-stack{gap:16px}
.page-header{min-height:70px;align-items:flex-start;padding-top:7px}
.page-header h1{font-size:22px;font-weight:740}.page-header p{margin-top:5px;font-size:11.5px}
.dashboard-controls{display:flex;align-items:center;gap:8px;margin-top:1px}
.date-control,.range-select{height:35px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.02)}
.date-control{display:flex;align-items:center;gap:7px;padding:0 10px;color:var(--muted);font-size:9.4px;white-space:nowrap}.date-control .icon{color:var(--foreground)}
.range-select{min-width:106px}
.panel,.kpi-card,.insight-card{box-shadow:var(--shadow)}
.panel-header{min-height:50px;padding:13px 15px 9px}.panel-header h2{font-size:11.6px}.panel-header p{font-size:8.8px}

/* Detailed metric SVG system */
.metric-symbol{color:var(--metric-color,var(--primary));overflow:visible}
.metric-symbol .metric-fill{fill:currentColor;stroke:none;opacity:.11}
.metric-symbol path,.metric-symbol circle,.metric-symbol rect{vector-effect:non-scaling-stroke}
.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.kpi-card{position:relative;min-height:145px;display:flex;flex-direction:column;gap:0;padding:13px 13px 11px;border-radius:9px;overflow:hidden}
.kpi-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:var(--metric);opacity:.65}
.kpi-top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:start;gap:10px}
.kpi-icon{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--metric) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--metric) 14%,var(--border));color:var(--metric)}
.kpi-body{padding-top:1px}
.kpi-label{font-size:9.3px;color:var(--muted);font-weight:590}
.kpi-value{margin-top:5px;font-size:20px;line-height:1.1}.kpi-value span{font-size:9.5px;color:var(--muted)}
.severity-dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--muted-2)}
.severity-normal{background:var(--green)}.severity-warning{background:var(--amber)}.severity-critical{background:var(--red)}
.kpi-statline{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:12px;padding-top:9px;border-top:1px solid var(--border)}
.kpi-statline span{display:flex;flex-direction:column;gap:2px;color:var(--foreground);font-size:8.3px;font-variant-numeric:tabular-nums}.kpi-statline b{color:var(--muted);font-size:7.3px;font-weight:560;text-transform:uppercase;letter-spacing:.035em}
.kpi-trend{margin-top:7px;min-height:13px;font-size:7.8px}.kpi-trend .icon{width:10px;height:10px}
.critical-pill{margin-top:1px;align-self:start}

.dashboard-charts{grid-template-columns:minmax(0,2.8fr) minmax(205px,.9fr) minmax(245px,1.06fr);gap:10px}
.trend-panel,.wind-panel,.water-panel{min-height:340px}
.chart-legend.detailed{gap:10px;padding:0 15px 6px;flex-wrap:wrap}
.chart-legend.detailed span{min-width:122px;display:grid;grid-template-columns:14px auto;grid-template-rows:auto auto;column-gap:6px;row-gap:0;color:var(--foreground)}
.chart-legend.detailed i{grid-row:1/3;width:13px;height:3px;align-self:center;background:var(--c);border-radius:999px}
.chart-legend.detailed b{font-size:8.5px;font-weight:620}.chart-legend.detailed em{font-style:normal;color:var(--muted);font-size:7.7px;font-variant-numeric:tabular-nums}
.chart-wrap{padding:0 10px 0 2px}
.multi-chart{width:100%;min-height:205px}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis{fill:var(--muted);font-size:8px}
.chart-stats-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:2px 14px 13px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted);overflow:hidden}
.chart-stats-strip span{min-height:43px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 10px;border-right:1px solid var(--border)}.chart-stats-strip span:last-child{border-right:0}
.chart-stats-strip b{font-size:9.4px;font-weight:650;font-variant-numeric:tabular-nums}.chart-stats-strip small{color:var(--muted);font-size:7.4px}
.wind-panel{display:flex;flex-direction:column}.wind-speed{padding:0 15px;font-size:18px;font-weight:720;color:var(--primary)}.wind-speed small{font-size:9px;color:var(--muted)}
.wind-compass{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:190px}.wind-compass>strong{position:absolute;margin-top:2px;font-size:17px}.wind-compass>span{position:absolute;margin-top:42px;color:var(--muted);font-size:9px}
.compass{width:164px;height:164px;position:relative}.compass-circle{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}.compass-outer{width:150px;height:150px;border:1px solid var(--border)}.compass-inner{width:104px;height:104px;border:1px solid var(--border)}
.compass:before,.compass:after{content:"";position:absolute;left:50%;top:50%;background:var(--border);transform:translate(-50%,-50%)}.compass:before{width:136px;height:1px}.compass:after{width:1px;height:136px}
.compass>span{position:absolute;z-index:2;color:var(--muted);font-size:8px;font-weight:650}.c-n{top:2px;left:50%;transform:translateX(-50%)}.c-s{bottom:2px;left:50%;transform:translateX(-50%)}.c-e{right:2px;top:50%;transform:translateY(-50%)}.c-w{left:2px;top:50%;transform:translateY(-50%)}
.compass-needle{position:absolute;z-index:3;left:50%;top:50%;width:16px;height:58px;transform-origin:50% 100%;clip-path:polygon(50% 0,100% 100%,50% 82%,0 100%);background:var(--primary);filter:drop-shadow(0 2px 4px color-mix(in srgb,var(--primary) 24%,transparent))}.compass-center{position:absolute;z-index:4;left:50%;top:50%;width:9px;height:9px;border:2px solid var(--surface);border-radius:50%;background:var(--primary);transform:translate(-50%,-50%)}
.wind-details{display:grid;grid-template-columns:1fr 1fr;margin:0 13px 13px;border-top:1px solid var(--border)}.wind-details span{display:flex;flex-direction:column;gap:2px;padding:9px 7px 0}.wind-details span+span{border-left:1px solid var(--border)}.wind-details b{font-size:8.8px}.wind-details small{color:var(--muted);font-size:7.3px}
.water-panel{display:flex;flex-direction:column}.water-value{padding:0 15px;font-size:18px;font-weight:730}.water-value small{font-size:9px}.water-status{padding:4px 15px 0;font-size:8.8px;font-weight:630}.water-status.critical{color:var(--red)}.water-status.warning{color:var(--amber)}.water-status.normal{color:var(--green)}
.water-chart{padding:2px 8px 0}.water-band.warning{fill:var(--amber);opacity:.035}.water-band.critical{fill:var(--red);opacity:.035}.warning-line{stroke:var(--amber);stroke-width:1;stroke-dasharray:4 4}.threshold-line{stroke:var(--red);stroke-width:1;stroke-dasharray:4 4}.threshold-label{font-size:7px;font-weight:600}.threshold-label.warning{fill:var(--amber)}.threshold-label.critical{fill:var(--red)}
.water-footer{margin-top:auto;min-height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-top:1px solid var(--border);font-size:8.5px}.water-footer>span{display:flex;flex-direction:column;gap:1px}.water-footer small{color:var(--muted);font-size:7px}.water-footer strong{font-size:8.5px}
.dashboard-bottom{grid-template-columns:minmax(0,2.35fr) minmax(330px,1fr);gap:10px}.readings-panel,.health-panel{overflow:hidden}.table-scroll{overflow:auto}.data-table th{height:34px;font-size:7.8px}.data-table td{height:39px;font-size:8.7px}.latest-table{min-width:790px}.reading-time{display:flex;align-items:center;gap:7px}.reading-time i{width:5px;height:5px;border-radius:50%;background:var(--green)}.battery-cell{display:flex;align-items:center;gap:5px}.battery-cell .metric-symbol{color:var(--green)}
.health-row{min-height:78px;padding:9px 13px}.health-main{min-width:0;display:flex;flex-direction:column;gap:3px}.health-row strong{font-size:8.9px}.health-row span{font-size:7.8px}.health-metrics{display:flex!important;gap:9px!important;margin-top:2px}.health-metrics span{display:flex;align-items:center;gap:3px;color:var(--muted)!important;font-size:7.2px!important}.health-metrics .metric-symbol{color:var(--primary)}
.health-row-end{gap:8px}.signal-bars{transform:scale(.88);transform-origin:right center}

/* Bottom diagnostic cards */
.insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.insight-card{min-height:136px;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.insight-head{display:flex;align-items:center;gap:9px}.insight-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--metric) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--metric) 12%,var(--border));color:var(--metric)}.insight-icon .metric-symbol{color:var(--metric)}
.insight-head>span:last-child{display:flex;flex-direction:column;gap:1px}.insight-head b{font-size:8.8px}.insight-head small{font-size:7.4px;color:var(--muted)}
.insight-value{margin-top:12px;font-size:19px;font-weight:730;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.insight-value em{font-size:8.5px;font-style:normal;color:var(--muted);font-weight:560}.insight-value>span{margin-left:5px;font-size:8px;font-weight:650}
.tone-good{color:var(--green)}.tone-warning{color:var(--amber)}.tone-critical{color:var(--red)}.tone-muted{color:var(--muted)}
.insight-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);color:var(--muted);font-size:7.7px}.insight-meta b{color:var(--foreground);font-weight:620}
.risk-scale,.quality-track{position:relative;height:5px;margin-top:13px;border-radius:999px;overflow:visible}.risk-scale{background:linear-gradient(90deg,#22c55e 0 18%,#84cc16 18% 36%,#facc15 36% 54%,#f97316 54% 72%,#ef4444 72% 90%,#7c3aed 90%)}.risk-scale i{position:absolute;top:50%;left:var(--position);width:9px;height:9px;border:2px solid var(--surface);border-radius:50%;background:var(--foreground);transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--border)}
.quality-track{overflow:hidden;background:var(--surface-muted);border:1px solid var(--border)}.quality-track i{display:block;height:100%;border-radius:999px;background:var(--primary)}

/* Realtime cards inherit detailed metric SVG language */
.telemetry-icon{width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--primary) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 12%,var(--border))}.telemetry-icon .metric-symbol{color:var(--primary)}

@media(max-width:1450px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .dashboard-charts{grid-template-columns:minmax(0,2fr) 1fr}.water-panel{grid-column:1/-1;min-height:270px}.water-chart{max-width:720px}.insight-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1080px){
  .topbar-user>span:nth-child(2){display:none}.topbar-user{padding:3px}.dashboard-charts{grid-template-columns:1fr 1fr}.trend-panel{grid-column:1/-1}.water-panel{grid-column:auto}.dashboard-bottom{grid-template-columns:1fr}.chart-stats-strip{grid-template-columns:repeat(2,1fr)}.chart-stats-strip span:nth-child(2){border-right:0}.chart-stats-strip span:nth-child(-n+2){border-bottom:1px solid var(--border)}
}
@media(max-width:900px){
  .sidebar-footer{padding-bottom:14px}.content{padding:18px 16px 30px}.topbar{padding:0 12px}.topbar-user{display:none}
}
@media(max-width:700px){
  .dashboard-controls{width:100%;justify-content:flex-start}.page-header{gap:10px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-charts{grid-template-columns:1fr}.trend-panel,.wind-panel,.water-panel{grid-column:auto}.insight-grid{grid-template-columns:1fr 1fr}.chart-stats-strip{margin-left:10px;margin-right:10px}.health-metrics{flex-wrap:wrap}
}
@media(max-width:480px){
  .date-control{display:none}.kpi-grid{grid-template-columns:1fr}.insight-grid{grid-template-columns:1fr}.chart-legend.detailed span{min-width:105px}.chart-stats-strip{grid-template-columns:1fr 1fr}.dashboard-controls .range-select{width:100%;max-width:150px}
}

/* ==========================================================================
   v0.6 — interaction, diagnostic drawer, alert visualization, mobile command
   ========================================================================== */
.command-trigger{height:34px;min-width:190px;display:flex;align-items:center;gap:8px;margin-left:4px;padding:0 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted);color:var(--muted);font-size:9.5px;text-align:left}
.command-trigger:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-strong)}
.command-trigger span{flex:1;white-space:nowrap}.command-trigger kbd,.command-footer kbd{min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--muted);font-size:8px;font-family:inherit}
.chart-tools{display:flex;align-items:center;gap:4px}.chart-window-label{margin-right:4px;color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums}
.chart-tool-button{height:28px;min-width:28px;display:grid;place-items:center;padding:0 7px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted)}
.chart-tool-button:hover:not(:disabled){background:var(--surface-hover);color:var(--foreground);border-color:var(--border-strong)}.chart-tool-button:disabled{opacity:.36;cursor:not-allowed}.chart-tool-button.zoom-reset{min-width:34px;font-size:8px;font-weight:650;font-variant-numeric:tabular-nums}
.interactive-chart{position:relative;min-width:0}.interactive-chart svg{touch-action:pan-y}.chart-hitbox{fill:transparent;pointer-events:all;cursor:crosshair}.chart-hover-layer[hidden]{display:none}.chart-crosshair{stroke:var(--muted-2);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.chart-hover-layer circle{stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}
.chart-tooltip{position:absolute;z-index:8;width:min(210px,calc(100% - 16px));padding:9px 10px;border:1px solid var(--border-strong);border-radius:7px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow-float);pointer-events:none;backdrop-filter:blur(8px)}.chart-tooltip[hidden]{display:none}.tooltip-time{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:7px;margin-bottom:6px;border-bottom:1px solid var(--border)}.tooltip-time strong{font-size:9.5px;font-variant-numeric:tabular-nums}.tooltip-time span{color:var(--muted);font-size:7.5px}.tooltip-values{display:flex;flex-direction:column;gap:5px}.tooltip-values span{display:grid;grid-template-columns:7px 1fr auto;align-items:center;gap:6px;font-size:8px}.tooltip-values i{width:6px;height:6px;border-radius:50%;background:var(--c)}.tooltip-values b{font-weight:560}.tooltip-values em{font-style:normal;font-weight:650;font-variant-numeric:tabular-nums}

.command-backdrop{position:fixed;z-index:90;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:10vh 18px 24px;background:rgba(15,23,42,.34);backdrop-filter:blur(3px)}
.command-palette{width:min(620px,100%);max-height:min(660px,80vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);box-shadow:0 24px 80px rgba(15,23,42,.2)}
.command-search{height:54px;display:grid;grid-template-columns:20px 1fr 34px;align-items:center;gap:8px;padding:0 11px 0 15px;border-bottom:1px solid var(--border)}.command-search>.icon{color:var(--muted)}.command-search input{width:100%;height:100%;border:0;outline:0;background:transparent;font-size:12px}.command-search input::placeholder{color:var(--muted-2)}
.command-body{overflow:auto;padding:8px}.command-section{padding:5px}.command-section+.command-section{margin-top:4px;padding-top:10px;border-top:1px solid var(--border)}.command-section h2{margin:0 0 6px;padding:0 7px;color:var(--muted);font-size:8px;font-weight:650;text-transform:uppercase;letter-spacing:.05em}
.command-item{width:100%;min-height:46px;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;background:transparent;text-align:left}.command-item:hover,.command-item:focus-visible{background:var(--surface-hover);outline:none}.command-item>span:first-child:not(.command-status){width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border);border-radius:7px;color:var(--muted)}.command-item>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:2px}.command-item b{font-size:9.5px;font-weight:620}.command-item small{overflow:hidden;color:var(--muted);font-size:7.5px;white-space:nowrap;text-overflow:ellipsis}.command-item>.icon{color:var(--muted-2)}.command-status{width:8px;height:8px;margin-left:10px;border-radius:50%}.command-item .badge{justify-self:end}.command-empty{padding:28px;text-align:center;color:var(--muted);font-size:10px}.command-footer{min-height:38px;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:0 13px;border-top:1px solid var(--border);color:var(--muted);font-size:7.5px}.command-footer span{display:flex;align-items:center;gap:4px}

.drawer-backdrop{position:fixed;z-index:75;inset:0;background:rgba(15,23,42,.24);backdrop-filter:blur(2px)}
.station-drawer{position:fixed;z-index:80;top:0;right:0;width:min(540px,100vw);height:100vh;display:flex;flex-direction:column;border-left:1px solid var(--border-strong);background:var(--surface);box-shadow:-18px 0 50px rgba(15,23,42,.14);animation:drawer-in .18s ease-out}
@keyframes drawer-in{from{transform:translateX(20px);opacity:.7}to{transform:translateX(0);opacity:1}}
.drawer-header{min-height:76px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border)}.drawer-title-row{display:flex;align-items:center;gap:8px}.drawer-title-row h2{margin:0;font-size:14px;letter-spacing:-.02em}.drawer-header p{display:flex;align-items:center;gap:5px;margin:5px 0 0;color:var(--muted);font-size:8px}.drawer-content{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:13px}.drawer-loading{height:34px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted);color:var(--muted);font-size:8px}.drawer-loading span{width:8px;height:8px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.drawer-overview{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:8px;overflow:hidden}.drawer-overview>div{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px;border-right:1px solid var(--border)}.drawer-overview>div:last-child{border-right:0}.drawer-overview span{color:var(--muted);font-size:7.2px}.drawer-overview strong{font-size:11px;font-variant-numeric:tabular-nums}.drawer-overview small{color:var(--muted);font-size:6.8px}
.drawer-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.drawer-metrics article{min-height:68px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:7px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.drawer-metrics article>span{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--metric) 8%,var(--surface))}.drawer-metrics article>div{min-width:0;display:flex;flex-direction:column;gap:3px}.drawer-metrics small{color:var(--muted);font-size:7px}.drawer-metrics strong{font-size:11px;font-variant-numeric:tabular-nums}.drawer-metrics em{color:var(--muted);font-size:7px;font-style:normal;font-weight:560}
.drawer-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.drawer-chart-grid>article{min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px}.drawer-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.drawer-section-title>span{font-size:8px;font-weight:620}.drawer-section-title small{color:var(--muted);font-size:6.8px}.drawer-chart-grid .simple-chart{min-height:105px}.drawer-diagnostics{padding:11px;border:1px solid var(--border);border-radius:8px}.drawer-diagnostics dl{margin:0;display:grid;grid-template-columns:1fr 1fr}.drawer-diagnostics dl>div{min-height:42px;display:flex;flex-direction:column;gap:3px;padding:8px;border-top:1px solid var(--border)}.drawer-diagnostics dl>div:nth-child(-n+2){border-top:0}.drawer-diagnostics dl>div:nth-child(odd){border-right:1px solid var(--border)}.drawer-diagnostics dt{color:var(--muted);font-size:7px}.drawer-diagnostics dd{margin:0;font-size:8px;font-weight:560}.drawer-footer{min-height:64px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--border);background:var(--surface)}

.alert-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.alert-overview-card{min-height:92px;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.alert-overview-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.alert-overview-card.critical>span{background:var(--red-soft);color:var(--red)}.alert-overview-card.warning>span{background:var(--amber-soft);color:var(--amber)}.alert-overview-card>div{min-width:0;display:flex;flex-direction:column;gap:2px}.alert-overview-card small{color:var(--muted);font-size:7.5px}.alert-overview-card strong{font-size:18px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.alert-overview-card em{overflow:hidden;color:var(--muted);font-size:7px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}
.alert-timeline-panel{overflow:hidden}.alert-timeline{padding:2px 14px 13px}.alert-timeline-bars{height:130px;display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;padding:8px 0 0;border-bottom:1px solid var(--border)}.alert-bucket{height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;text-align:center}.alert-bar-stack{height:100px;display:flex;flex-direction:column-reverse;justify-content:flex-start;gap:2px;padding:0 25%;border-radius:4px 4px 0 0}.alert-bar-stack i{display:block;width:100%;min-height:0;border-radius:3px 3px 1px 1px}.alert-bar-stack i.critical{background:var(--red)}.alert-bar-stack i.warning{background:var(--amber)}.alert-bucket>span{height:12px;color:var(--muted);font-size:6.8px}.alert-timeline-legend{display:flex;align-items:center;gap:12px;padding-top:9px;color:var(--muted);font-size:7px}.alert-timeline-legend span{display:flex;align-items:center;gap:5px}.alert-timeline-legend i{width:7px;height:7px;border-radius:2px}.alert-timeline-legend i.critical{background:var(--red)}.alert-timeline-legend i.warning{background:var(--amber)}.alert-timeline-legend small{margin-left:auto;font-size:6.8px}
.alert-feed-panel{overflow:hidden}.detailed-alerts .alert-row{width:100%;min-height:76px;display:grid;grid-template-columns:36px minmax(0,1fr) auto 18px;align-items:center;gap:10px;text-align:left}.alert-copy{min-width:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:12px;row-gap:2px}.alert-copy>div{min-width:0;display:flex;align-items:center;gap:6px}.alert-copy>div strong{font-size:9px}.alert-copy>div span{overflow:hidden;color:var(--muted);font-size:7.5px;white-space:nowrap;text-overflow:ellipsis}.alert-copy>b{grid-column:2;grid-row:1;font-size:9px;font-variant-numeric:tabular-nums}.alert-copy>small{grid-column:1/-1;color:var(--muted);font-size:7px}.alert-copy>time{grid-column:1/-1;color:var(--muted-2);font-size:6.8px}.detailed-alerts .alert-row>.icon{color:var(--muted-2)}

.mobile-bottom-nav{display:none}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:2px}

@media(max-width:1200px){.command-trigger{min-width:150px}.command-trigger span{display:none}.command-trigger{min-width:34px;width:34px;padding:0;justify-content:center}.command-trigger kbd{display:none}.alert-overview-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .command-trigger{display:none}.content{padding-bottom:88px!important}.mobile-bottom-nav{position:fixed;z-index:45;left:10px;right:10px;bottom:10px;height:58px;display:grid;grid-template-columns:repeat(4,1fr);padding:4px;border:1px solid var(--border-strong);border-radius:13px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow-float);backdrop-filter:blur(12px)}
  .mobile-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:9px;background:transparent;color:var(--muted);font-size:7px}.mobile-nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:620}.mobile-nav-item b{position:absolute;top:3px;right:calc(50% - 18px);min-width:14px;height:14px;display:grid;place-items:center;padding:0 3px;border:2px solid var(--surface);border-radius:999px;background:var(--red);color:#fff;font-size:6px}
  .station-drawer{width:min(520px,94vw)}.alert-overview-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .command-backdrop{align-items:flex-end;padding:0;background:rgba(15,23,42,.28)}.command-palette{width:100%;max-height:82vh;border-radius:16px 16px 0 0;border-bottom:0}.command-footer{padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .station-drawer{top:auto;bottom:0;width:100vw;height:min(88vh,760px);border-left:0;border-top:1px solid var(--border-strong);border-radius:16px 16px 0 0;animation:drawer-up .18s ease-out}@keyframes drawer-up{from{transform:translateY(18px);opacity:.7}to{transform:translateY(0);opacity:1}}
  .drawer-header{min-height:70px;padding:14px}.drawer-overview{grid-template-columns:1fr 1fr}.drawer-overview>div:nth-child(2){border-right:0}.drawer-overview>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.drawer-metrics{grid-template-columns:1fr 1fr}.drawer-chart-grid{grid-template-columns:1fr}.alert-overview-grid{grid-template-columns:1fr 1fr}.alert-timeline-bars{gap:3px}.alert-bar-stack{padding:0 18%}.detailed-alerts .alert-row{grid-template-columns:32px minmax(0,1fr) auto}.detailed-alerts .alert-row>.icon{display:none}.alert-copy{grid-template-columns:1fr}.alert-copy>b{grid-column:1;grid-row:2}.alert-copy>small{grid-row:3}.alert-copy>time{grid-row:4}
}
@media(max-width:480px){
  .alert-overview-grid{grid-template-columns:1fr}.drawer-metrics{grid-template-columns:1fr 1fr}.drawer-overview>div{min-height:62px}.drawer-diagnostics dl{grid-template-columns:1fr}.drawer-diagnostics dl>div{border-right:0!important}.drawer-diagnostics dl>div:nth-child(2){border-top:1px solid var(--border)}.chart-tools{gap:3px}.chart-window-label{display:none}.chart-tool-button{height:26px;min-width:26px}.alert-timeline-legend small{display:none}
}
@media(prefers-reduced-motion:reduce){.station-drawer,.drawer-loading span{animation:none!important}}
/* v0.6 severity badge correction after legacy solid-color utility overrides */
.severity-badge.severity-warning{background:var(--amber-soft)!important;color:var(--amber)!important;border:1px solid color-mix(in srgb,var(--amber) 18%,var(--border))}
.severity-badge.severity-critical{background:var(--red-soft)!important;color:var(--red)!important;border:1px solid color-mix(in srgb,var(--red) 18%,var(--border))}
.severity-badge.severity-normal{background:var(--green-soft)!important;color:var(--green)!important;border:1px solid color-mix(in srgb,var(--green) 18%,var(--border))}

/* ==========================================================================
   v0.7 — production telemetry contract, transport diagnostics, packet inspector
   ========================================================================== */
.transport-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.transport-card{min-height:92px;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}
.transport-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}
.transport-card.transport-good>span{background:var(--green-soft);color:var(--green)}
.transport-card.transport-warning>span{background:var(--amber-soft);color:var(--amber)}
.transport-card.transport-critical>span{background:var(--red-soft);color:var(--red)}
.transport-card>div{min-width:0;display:flex;flex-direction:column;gap:3px}.transport-card small{color:var(--muted);font-size:7.5px}.transport-card strong{font-size:13px;font-weight:670;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transport-card em{color:var(--muted);font-size:7px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.channel-panel{overflow:hidden}.channel-summary{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:8px}.channel-summary span{display:flex;align-items:baseline;gap:3px}.channel-summary b{color:var(--foreground);font-size:11px}
.channel-contract-note{display:grid;grid-template-columns:28px 1fr;gap:9px;margin:0 14px 11px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--primary-soft) 52%,var(--surface));color:var(--primary)}.channel-contract-note>span{width:27px;height:27px;display:grid;place-items:center}.channel-contract-note strong{display:block;color:var(--foreground);font-size:8.5px}.channel-contract-note p{margin:2px 0 0;color:var(--muted);font-size:7.4px;line-height:1.5}
.channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--border)}
.channel-row{min-height:66px;display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px 13px;border-bottom:1px solid var(--border)}.channel-row:nth-child(odd){border-right:1px solid var(--border)}.channel-row:last-child,.channel-row:nth-last-child(2){border-bottom:0}
.channel-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.channel-row>div:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:3px}.channel-row strong{font-size:9px}.channel-row small{color:var(--muted);font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-value{min-width:72px;color:var(--foreground);font-size:8.5px;font-weight:640;text-align:right;font-variant-numeric:tabular-nums}
.channel-badge{display:inline-flex;align-items:center;gap:5px;justify-content:center;min-height:23px;padding:0 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:6.8px;font-weight:650;white-space:nowrap}.channel-badge i{width:6px;height:6px;border-radius:50%;background:currentColor}.channel-good{border-color:color-mix(in srgb,var(--green) 22%,var(--border));background:var(--green-soft);color:var(--green)}.channel-warning{border-color:color-mix(in srgb,var(--amber) 24%,var(--border));background:var(--amber-soft);color:var(--amber)}.channel-critical{border-color:color-mix(in srgb,var(--red) 20%,var(--border));background:var(--red-soft);color:var(--red)}.channel-info{border-color:color-mix(in srgb,var(--primary) 20%,var(--border));background:var(--primary-soft);color:var(--primary)}
.telemetry-head{grid-template-columns:auto minmax(0,1fr) auto}.telemetry-channel-state{margin-left:auto}.telemetry-card.telemetry-critical{border-color:color-mix(in srgb,var(--red) 23%,var(--border))}.telemetry-card.telemetry-info{border-color:color-mix(in srgb,var(--primary) 15%,var(--border))}.telemetry-card.telemetry-warning{border-color:color-mix(in srgb,var(--amber) 20%,var(--border))}
.packet-panel{overflow:hidden}.locked-panel{min-height:158px}.locked-content{min-height:104px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px}.locked-content>span{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;background:var(--surface-muted);color:var(--muted)}.locked-content strong{font-size:10px}.locked-content p{margin:3px 0 0;color:var(--muted);font-size:8px}.compact-button{height:29px!important;padding:0 9px!important;font-size:8px!important}
.packet-loading,.packet-list{border-top:1px solid var(--border)}.packet-loading{padding:24px;text-align:center;color:var(--muted);font-size:9px}.packet-row{border-bottom:1px solid var(--border)}.packet-row:last-child{border-bottom:0}.packet-row summary{min-height:44px;display:grid;grid-template-columns:66px 72px 62px 1fr 16px;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;list-style:none}.packet-row summary::-webkit-details-marker{display:none}.packet-row summary:hover{background:var(--surface-hover)}.packet-row summary strong{font-size:8.5px;font-variant-numeric:tabular-nums}.packet-row summary>span:not(.packet-source),.packet-row summary em{color:var(--muted);font-size:7.5px;font-style:normal}.packet-row summary em{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.packet-row[open] summary>.icon{transform:rotate(180deg)}
.packet-source{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 7px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:7px;font-weight:700;text-transform:uppercase}.source-mqtt{background:var(--green-soft);color:var(--green)}.source-api{background:var(--primary-soft);color:var(--primary)}.source-simulator{background:color-mix(in srgb,var(--purple) 10%,var(--surface));color:var(--purple)}
.packet-detail{display:grid;grid-template-columns:170px 1fr;gap:10px;padding:0 14px 12px 88px}.packet-fields{display:flex;align-content:flex-start;flex-wrap:wrap;gap:4px}.packet-fields span{height:21px;display:inline-flex;align-items:center;padding:0 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface-muted);color:var(--muted);font-size:6.8px}.packet-detail pre{min-width:0;max-height:190px;margin:0;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:7px;background:#0b1020;color:#d8e1f0;font:7.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.drawer-channel-label{display:block;margin-top:3px;color:var(--muted);font-size:6.2px;font-style:normal;font-weight:520}
.station-head-v07,.station-row-main{grid-template-columns:minmax(260px,1.4fr) minmax(170px,.85fr) 95px 86px 90px 16px}.station-row-v07{position:relative;border-bottom:1px solid var(--border)}.station-row-v07:last-child{border-bottom:0}.station-row-v07.selected{background:color-mix(in srgb,var(--primary-soft) 46%,var(--surface))}.station-row-main{width:100%;min-height:68px;display:grid;align-items:center;gap:12px;padding:8px 48px 8px 14px;background:transparent;text-align:left}.station-row-main:hover{background:var(--surface-hover)}.station-row-v07.selected .station-row-main:hover{background:transparent}.station-kind{min-width:0;display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:7px}.station-kind b{color:var(--foreground);font-size:8px;font-weight:600;text-transform:capitalize}.station-kind small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.station-coverage{font-size:8px;font-weight:620}.station-configure{position:absolute;right:10px;top:50%;width:30px;height:30px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted)}.station-configure:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.station-form-backdrop{z-index:110}.station-form-modal{width:min(720px,calc(100vw - 30px));max-height:min(860px,92vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-float)}.station-form-modal>header{min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--border)}.station-form-modal>header>div:first-child{display:flex;align-items:center;gap:10px}.station-form-modal header h2{margin:0;font-size:14px;letter-spacing:-.02em}.station-form-modal header p{margin:3px 0 0;color:var(--muted);font-size:8px}.station-form-body{overflow:auto;padding:15px}.station-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.station-form-grid label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:600}.station-form-grid label.wide{grid-column:1/-1}.station-form-grid input,.station-form-grid select,.station-form-grid textarea{width:100%;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);padding:9px;color:var(--foreground);font-size:9.5px;outline:none}.station-form-grid textarea{resize:vertical}.station-form-grid input:focus,.station-form-grid select:focus,.station-form-grid textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.station-form-grid input[readonly]{background:var(--surface-muted);color:var(--muted)}
.sensor-contract{margin:15px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px}.sensor-contract legend{padding:0 5px;font-size:9px;font-weight:650}.sensor-contract>p{margin:0 0 10px;color:var(--muted);font-size:7.5px;line-height:1.55}.sensor-contract>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sensor-contract label{cursor:pointer}.sensor-contract input{position:absolute;opacity:0;pointer-events:none}.sensor-contract label>span{min-height:48px;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--muted)}.sensor-contract label>span b{color:var(--foreground);font-size:8px}.sensor-contract label>span small{font-size:6.8px}.sensor-contract input:checked+span{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft);color:var(--primary)}.station-form-modal>footer{min-height:62px;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:11px 15px;border-top:1px solid var(--border);background:var(--surface)}

@media(max-width:1180px){.transport-grid{grid-template-columns:repeat(3,1fr)}.channel-grid{grid-template-columns:1fr}.channel-row:nth-child(odd){border-right:0}.channel-row:nth-last-child(2){border-bottom:1px solid var(--border)}.station-head-v07{display:none}.station-row-main{grid-template-columns:minmax(220px,1.2fr) minmax(150px,.8fr) 90px 80px}.station-row-main>span:nth-last-child(2),.station-row-main>.icon{display:none}}
@media(max-width:900px){.transport-grid{grid-template-columns:repeat(2,1fr)}.packet-detail{grid-template-columns:1fr;padding-left:14px}.station-row-main{grid-template-columns:1fr auto auto}.station-kind,.station-coverage{display:none}.telemetry-channel-state{position:absolute;right:10px;top:10px}.telemetry-card{position:relative}.telemetry-head{padding-right:96px}}
@media(max-width:700px){.transport-grid{grid-template-columns:1fr 1fr}.channel-row{grid-template-columns:30px minmax(0,1fr) auto}.channel-value{display:none}.packet-row summary{grid-template-columns:58px 62px 1fr 14px}.packet-row summary>span:nth-of-type(2){display:none}.station-form-grid{grid-template-columns:1fr}.station-form-grid label.wide{grid-column:auto}.sensor-contract>div{grid-template-columns:1fr}}
@media(max-width:460px){.transport-grid{grid-template-columns:1fr}.channel-row{padding:9px}.channel-badge{font-size:6.2px;padding:0 5px}.packet-row summary{grid-template-columns:54px 58px 1fr 14px;padding:7px 10px}.packet-row summary em{display:none}.station-row-main{grid-template-columns:1fr auto;padding-right:46px}.station-row-main>.badge{display:none}.station-form-modal{width:100vw;max-height:92vh;border-radius:16px 16px 0 0}.station-form-backdrop{align-items:flex-end;padding:0}.station-form-body{padding:12px}}

/* v0.8 — safe MQTT observability */
.mqtt-verification{overflow:hidden}
.mqtt-verify-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border)}
.mqtt-verify-head>.mqtt-verify-actions{display:flex;align-items:center;gap:7px;padding:11px 14px 0 0;flex:none}
.mqtt-verify-head .panel-header{border:0;min-height:58px}
.mqtt-mode{height:27px;display:inline-flex;align-items:center;padding:0 9px;border:1px solid var(--border);border-radius:999px;font-size:8.5px;font-weight:700;letter-spacing:.015em}
.mqtt-mode-observe{border-color:color-mix(in srgb,var(--green) 22%,var(--border));background:var(--green-soft);color:var(--green)}
.mqtt-safety{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin:12px 14px;padding:11px 12px;border:1px solid var(--border);border-radius:8px}
.mqtt-safety>span{width:36px;height:36px;display:grid;place-items:center;border-radius:8px}
.mqtt-safety strong{display:block;font-size:10px}.mqtt-safety p{max-width:780px;margin:3px 0 0;color:var(--muted);font-size:8.5px;line-height:1.5}
.mqtt-safety dl{display:flex;gap:16px;margin:0}.mqtt-safety dl div{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.mqtt-safety dt{color:var(--muted);font-size:7.5px}.mqtt-safety dd{margin:0;font-size:11px;font-weight:720;font-variant-numeric:tabular-nums}
.mqtt-safety-safe{border-color:color-mix(in srgb,var(--green) 20%,var(--border));background:color-mix(in srgb,var(--green-soft) 42%,var(--surface))}.mqtt-safety-safe>span{background:var(--green-soft);color:var(--green)}
.mqtt-safety-write{border-color:color-mix(in srgb,var(--amber) 24%,var(--border));background:color-mix(in srgb,var(--amber-soft) 45%,var(--surface))}.mqtt-safety-write>span{background:var(--amber-soft);color:var(--amber)}
.mqtt-endpoint{min-height:42px;display:flex;align-items:center;gap:18px;padding:0 14px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted)}
.mqtt-endpoint>span{min-width:0;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:8.5px}.mqtt-endpoint b{min-width:0;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--foreground);font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.mqtt-phase{margin-left:auto!important;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-weight:650!important}.mqtt-phase i{width:6px;height:6px;border-radius:50%;background:currentColor}.phase-good{color:var(--green)!important}.phase-warning{color:var(--amber)!important}.phase-critical{color:var(--red)!important}.phase-info{color:var(--primary)!important}.phase-muted{color:var(--muted)!important}
.verification-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:0 14px;border-bottom:1px solid var(--border)}
.verify-step{position:relative;min-height:76px;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;padding:11px 10px}.verify-step:not(:last-child):after{content:"";position:absolute;right:-1px;top:18px;bottom:18px;width:1px;background:var(--border)}
.verify-step>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:700}.verify-step div{min-width:0;display:flex;flex-direction:column;gap:3px}.verify-step strong{font-size:8.5px}.verify-step small{color:var(--muted);font-size:7.2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.verify-pass>span{border-color:color-mix(in srgb,var(--green) 24%,var(--border));background:var(--green-soft);color:var(--green)}.verify-pending>strong{color:var(--muted)}
.mqtt-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:12px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-muted) 42%,var(--surface))}
.mqtt-metrics article{min-width:0;padding:2px 11px}.mqtt-metrics article:not(:last-child){border-right:1px solid var(--border)}.mqtt-metrics small{display:block;color:var(--muted);font-size:7.5px}.mqtt-metrics strong{display:block;margin-top:4px;font-size:15px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mqtt-metrics span{display:block;margin-top:3px;color:var(--muted);font-size:7.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mqtt-schema-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:0}.mqtt-schema-grid>section{min-width:0;padding:13px 14px}.mqtt-schema-grid>section+section{border-left:1px solid var(--border)}
.mqtt-subhead{height:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mqtt-subhead strong{font-size:9px}.mqtt-subhead span{color:var(--muted);font-size:7.5px}
.schema-table{border:1px solid var(--border);border-radius:7px;overflow:hidden}.schema-table>div{min-height:32px;display:grid;grid-template-columns:minmax(80px,.7fr) minmax(100px,1fr) 34px;align-items:center;gap:8px;padding:5px 9px;border-bottom:1px solid var(--border)}.schema-table>div:last-child{border-bottom:0}.schema-table>div:hover{background:var(--surface-hover)}.schema-table code{font:8px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--primary)}.schema-table span{color:var(--muted);font-size:7.6px}.schema-table b{text-align:right;font-size:8px;font-variant-numeric:tabular-nums}
.sid-observed-list{border:1px solid var(--border);border-radius:7px;overflow:hidden}.sid-observed-list>div{min-height:36px;display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:6px 9px;border-bottom:1px solid var(--border)}.sid-observed-list>div:last-child{border-bottom:0}.sid-observed-list strong{font-size:8.5px}.sid-observed-list b{color:var(--muted);font-size:7.5px;font-weight:560}.source-mqtt-observe{background:var(--green-soft);color:var(--green)}

@media(max-width:1180px){.verification-steps{grid-template-columns:repeat(3,1fr)}.verify-step:nth-child(3):after{display:none}.verify-step:nth-child(-n+3){border-bottom:1px solid var(--border)}.mqtt-metrics{grid-template-columns:repeat(3,1fr);row-gap:10px}.mqtt-metrics article:nth-child(3){border-right:0}.mqtt-metrics article:nth-child(-n+3){padding-bottom:10px;border-bottom:1px solid var(--border)}}
@media(max-width:900px){.mqtt-safety{grid-template-columns:36px 1fr}.mqtt-safety dl{grid-column:1/-1;justify-content:flex-start;padding-left:47px}.mqtt-safety dl div{align-items:flex-start}.mqtt-endpoint{align-items:flex-start;flex-direction:column;gap:6px;padding:9px 14px}.mqtt-phase{margin-left:0!important}.mqtt-schema-grid{grid-template-columns:1fr}.mqtt-schema-grid>section+section{border-left:0;border-top:1px solid var(--border)}}
@media(max-width:700px){.mqtt-verify-head{align-items:stretch;flex-direction:column}.mqtt-verify-head>.mqtt-verify-actions{padding:0 14px 10px}.verification-steps{grid-template-columns:1fr 1fr}.verify-step:nth-child(3):after{display:block}.verify-step:nth-child(even):after{display:none}.verify-step:nth-child(-n+4){border-bottom:1px solid var(--border)}.mqtt-metrics{grid-template-columns:1fr 1fr}.mqtt-metrics article:nth-child(3){border-right:1px solid var(--border)}.mqtt-metrics article:nth-child(even){border-right:0}.mqtt-metrics article:nth-child(-n+4){border-bottom:1px solid var(--border)}}
@media(max-width:460px){.mqtt-safety{grid-template-columns:1fr}.mqtt-safety>span{display:none}.mqtt-safety dl{padding-left:0}.verification-steps{grid-template-columns:1fr}.verify-step{min-height:58px}.verify-step:after{display:none!important}.verify-step:not(:last-child){border-bottom:1px solid var(--border)}.mqtt-metrics{grid-template-columns:1fr 1fr}.mqtt-schema-grid>section{padding:11px}.schema-table>div{grid-template-columns:60px 1fr 28px}.mqtt-endpoint b{max-width:250px}}
.mqtt-transport{height:23px;display:inline-flex!important;align-items:center;padding:0 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:7px!important;font-weight:680!important;white-space:nowrap}.mqtt-transport-tls{border-color:color-mix(in srgb,var(--green) 22%,var(--border));background:var(--green-soft);color:var(--green)!important}.mqtt-transport-plain{border-color:color-mix(in srgb,var(--amber) 25%,var(--border));background:var(--amber-soft);color:var(--amber)!important}

/* v0.9 — immutable source boundary + subscribe-only relay */
.mqtt-mode-relay{border-color:color-mix(in srgb,var(--primary) 22%,var(--border));background:var(--primary-soft);color:var(--primary)}
.mqtt-safety-relay{border-color:color-mix(in srgb,var(--primary) 20%,var(--border));background:color-mix(in srgb,var(--primary-soft) 55%,var(--surface))}
.source-mqtt-relay{background:var(--primary-soft);color:var(--primary)}
.boundary-panel{overflow:hidden}.boundary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border)}
.boundary-item{min-height:78px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.boundary-item:nth-child(3n){border-right:0}.boundary-item>span{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--muted)}.boundary-item>div{display:flex;flex-direction:column;gap:3px}.boundary-item strong{font-size:8.6px}.boundary-item small{color:var(--muted);font-size:7px}.boundary-item>b{font-size:8px;white-space:nowrap}
.boundary-pass>span,.boundary-pass>b{color:var(--green)}.boundary-pass>span{background:var(--green-soft)}.boundary-info>span,.boundary-info>b{color:var(--primary)}.boundary-info>span{background:var(--primary-soft)}
.boundary-note{display:flex;align-items:center;gap:8px;padding:10px 14px;color:var(--muted);font-size:7.5px;line-height:1.5}.boundary-note .icon{color:var(--green);flex:0 0 auto}
@media(max-width:1000px){.boundary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.boundary-item:nth-child(3n){border-right:1px solid var(--border)}.boundary-item:nth-child(2n){border-right:0}}
@media(max-width:620px){.boundary-grid{grid-template-columns:1fr}.boundary-item,.boundary-item:nth-child(3n),.boundary-item:nth-child(2n){border-right:0}.boundary-item{min-height:66px}.boundary-note{align-items:flex-start}}

/* v0.10 privileged source-database maintenance UI retired in v0.23.4. */

/* v0.11 — read-only telemetry connection wizard */
.connection-setup-entry{min-height:76px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px}.connection-setup-entry>span{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary)}.connection-setup-entry h2{margin:0;font-size:11px}.connection-setup-entry p{max-width:760px;margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.5}.connection-setup-entry .primary-button{white-space:nowrap}
.mqtt-wizard-backdrop{z-index:125}.mqtt-wizard-modal{width:min(920px,calc(100vw - 28px));max-height:min(920px,94vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-float)}.mqtt-wizard-modal>header{min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.mqtt-wizard-modal>header>div:first-child{display:flex;align-items:center;gap:10px}.mqtt-wizard-modal header h2{margin:0;font-size:14px}.mqtt-wizard-modal header p{max-width:700px;margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.5}.mqtt-wizard-body{overflow:auto;padding:14px 16px}.mqtt-wizard-modal>footer{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 16px;border-top:1px solid var(--border);background:var(--surface-muted)}.mqtt-wizard-modal>footer>span{color:var(--muted);font-size:7.3px}.mqtt-wizard-modal>footer>div{display:flex;gap:7px}
.wizard-safety-banner{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--green-soft) 58%,var(--surface))}.wizard-safety-banner>svg{color:var(--green)}.wizard-safety-banner strong{font-size:9.5px}.wizard-safety-banner p{margin:3px 0 0;color:var(--muted);font-size:7.7px}.wizard-safety-banner>span{height:24px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:7px;font-weight:750}
.mqtt-probe-form,.probe-session{margin-top:12px}.wizard-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:9px}.wizard-section-title strong{font-size:9.5px}.wizard-section-title span{color:var(--muted);font-size:7.3px}.mqtt-probe-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--primary-soft) 22%,var(--surface))}.mqtt-probe-grid label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:7.5px;font-weight:600}.mqtt-probe-grid label.wide{grid-column:1/-1}.mqtt-probe-grid input,.mqtt-probe-grid select{height:34px;width:100%;padding:0 9px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--foreground);font-size:8.5px;outline:none}.mqtt-probe-grid input:focus,.mqtt-probe-grid select:focus{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}.mqtt-probe-form>.primary-button{display:inline-flex;align-items:center;gap:6px;margin-top:10px}
.probe-session-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.probe-session-head .wizard-section-title{margin:0}.probe-actions{display:flex;align-items:center;gap:7px}.probe-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:12px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.probe-stage{min-height:70px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;border-right:1px solid var(--border)}.probe-stage:last-child{border-right:0}.probe-stage>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted);color:var(--muted);font-size:7.5px;font-weight:700}.probe-stage strong{display:block;font-size:8px}.probe-stage small{display:block;margin-top:3px;color:var(--muted);font-size:6.6px}.probe-pass>span{background:var(--green-soft);color:var(--green)}
.probe-error{display:grid;grid-template-columns:30px 1fr;gap:9px;margin-top:10px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--red) 22%,var(--border));border-radius:7px;background:var(--red-soft);color:var(--red)}.probe-error strong{font-size:8px}.probe-error p{margin:3px 0 0;font-size:7.2px}
.probe-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-muted)}.probe-metrics article{padding:10px 11px;border-right:1px solid var(--border)}.probe-metrics article:last-child{border-right:0}.probe-metrics small{display:block;color:var(--muted);font-size:7px}.probe-metrics strong{display:block;margin-top:5px;font-size:15px}.probe-metrics span{display:block;margin-top:3px;color:var(--muted);font-size:6.8px}
.probe-safety-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px;border:1px solid color-mix(in srgb,var(--green) 18%,var(--border));border-radius:8px;overflow:hidden}.probe-safety-ledger>div{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 9px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--green-soft) 36%,var(--surface))}.probe-safety-ledger>div:last-child{border-right:0}.probe-safety-ledger span,.probe-safety-ledger b{color:var(--green)}.probe-safety-ledger strong,.probe-safety-ledger b{font-size:7px}
.probe-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.probe-detail-grid>section{min-width:0;padding:10px 11px;border:1px solid var(--border);border-radius:8px}.probe-sample-meta{display:flex;gap:8px;margin-bottom:6px;color:var(--muted);font-size:6.8px}.probe-payload{min-height:116px;max-height:190px;margin:0;overflow:auto;padding:9px;border-radius:6px;background:#0b1020;color:#d8e1f0;font:7.2px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.deployment-readiness{margin-top:10px;padding:11px 12px;border:1px solid var(--border);border-radius:8px}.deployment-readiness>div:first-child{display:grid;grid-template-columns:32px 1fr;gap:9px}.deployment-readiness>div:first-child>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px}.deployment-readiness strong{font-size:9px}.deployment-readiness p{margin:3px 0 0;color:var(--muted);font-size:7.3px}.deployment-readiness.ready{border-color:color-mix(in srgb,var(--green) 22%,var(--border));background:color-mix(in srgb,var(--green-soft) 32%,var(--surface))}.deployment-readiness.ready>div:first-child>span{background:var(--green-soft);color:var(--green)}.deployment-readiness.not-ready>div:first-child>span{background:var(--amber-soft);color:var(--amber)}.deployment-snippet{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.deployment-snippet>div{display:flex;align-items:center;justify-content:space-between}.deployment-snippet pre{margin:7px 0 0;padding:9px;border-radius:6px;background:#0b1020;color:#d8e1f0;font:7.2px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap}
@media(max-width:980px){.probe-stages{grid-template-columns:repeat(2,1fr)}.probe-stage:nth-child(2n){border-right:0}.probe-metrics,.probe-safety-ledger{grid-template-columns:repeat(2,1fr)}.probe-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.connection-setup-entry{grid-template-columns:36px 1fr}.connection-setup-entry .primary-button{grid-column:1/-1;width:100%}.wizard-safety-banner{grid-template-columns:32px 1fr}.wizard-safety-banner>span{grid-column:1/-1;justify-self:start}.mqtt-probe-grid{grid-template-columns:1fr}.mqtt-probe-grid label.wide{grid-column:1}.probe-session-head{align-items:flex-start;flex-direction:column}.probe-stages,.probe-metrics,.probe-safety-ledger{grid-template-columns:1fr}.probe-stage,.probe-metrics article,.probe-safety-ledger>div{border-right:0;border-bottom:1px solid var(--border)}.mqtt-wizard-modal>footer{align-items:flex-start;flex-direction:column}}

/* v0.11.2 — field report import, offline replay, and relay readiness */
.fc-intro-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:12px}.fc-intro,.fc-upload{padding:16px}.fc-intro{display:grid;grid-template-columns:44px 1fr;gap:13px}.fc-icon,.fc-upload-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.fc-intro h2,.fc-upload h2{margin:0;font-size:12px}.fc-intro p,.fc-upload p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.55}.fc-intro small{display:block;margin-top:8px;color:var(--muted);font-size:7.4px;line-height:1.5}.fc-command{margin-top:12px;padding:9px 10px;border:1px solid var(--border);border-radius:7px;background:#0b1020;color:#d8e1f0;overflow:auto}.fc-command code{font:7.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap}.fc-upload{display:flex;flex-direction:column;align-items:flex-start}.fc-upload-symbol{margin-bottom:10px}.fc-file-button{height:34px;display:inline-flex;align-items:center;gap:7px;margin-top:13px;padding:0 12px;border:1px solid var(--primary);border-radius:7px;background:var(--primary);color:#fff;font-size:8px;font-weight:700;cursor:pointer}.fc-file-button input{display:none}.fc-file-button.disabled{opacity:.55;cursor:not-allowed}.fc-workflow{overflow:hidden}.fc-flow{display:flex;align-items:center;justify-content:center;gap:9px;padding:14px;overflow:auto;color:var(--muted);font-size:7.7px;white-space:nowrap}.fc-flow span{padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted)}.fc-flow span.active{border-color:color-mix(in srgb,var(--primary) 30%,var(--border));background:var(--primary-soft);color:var(--primary);font-weight:700}
.fc-summary{display:grid;grid-template-columns:minmax(300px,1.8fr) repeat(3,minmax(130px,.65fr));gap:10px}.fc-readiness{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:14px;padding:14px}.fc-score{width:70px;height:70px;display:grid;place-items:center;align-content:center;border:6px solid var(--border);border-radius:50%;background:var(--surface)}.fc-score strong{font-size:18px;line-height:1}.fc-score span{margin-top:3px;color:var(--muted);font-size:6.7px}.fc-readiness.ready .fc-score{border-color:var(--green)}.fc-readiness.blocked .fc-score{border-color:var(--amber)}.fc-readiness h2{margin:0;font-size:12px}.fc-readiness p{margin:4px 0 8px;color:var(--muted);font-size:7.5px;line-height:1.45}.fc-target{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:7.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-counter{display:flex;flex-direction:column;justify-content:center;padding:13px}.fc-counter>span{color:var(--muted);font-size:7px}.fc-counter strong{margin-top:5px;font-size:17px}.fc-counter small{margin-top:3px;color:var(--muted);font-size:6.7px}
.fc-gates{overflow:hidden}.fc-gate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border)}.fc-gate{min-height:72px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:10px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.fc-gate:nth-child(3n){border-right:0}.fc-gate>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted)}.fc-gate strong{display:block;font-size:8px}.fc-gate small{display:block;margin-top:3px;color:var(--muted);font-size:6.6px;line-height:1.4}.fc-gate>b{font-size:7px}.fc-gate.pass>span,.fc-gate.pass>b{color:var(--green)}.fc-gate.pass>span{background:var(--green-soft)}.fc-gate.fail>span,.fc-gate.fail>b{color:var(--amber)}.fc-gate.fail>span{background:var(--amber-soft)}
.fc-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fc-detail-grid>.panel{overflow:hidden}.fc-schema{margin:0 12px 12px}.fc-sids{display:flex;align-items:center;gap:7px;padding:0 12px 12px;flex-wrap:wrap}.fc-sids>strong{font-size:7.5px}.fc-sids>span{padding:4px 7px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:7px}.fc-sids b{margin-left:4px;color:var(--foreground)}.fc-replay-status{display:grid;grid-template-columns:34px 1fr;gap:9px;margin:0 12px 10px;padding:10px;border:1px solid var(--border);border-radius:8px}.fc-replay-status>span{width:32px;height:32px;display:grid;place-items:center;border-radius:8px}.fc-replay-status.available>span{background:var(--green-soft);color:var(--green)}.fc-replay-status.unavailable>span{background:var(--surface-muted);color:var(--muted)}.fc-replay-status strong{font-size:8.5px}.fc-replay-status p{margin:3px 0 0;color:var(--muted);font-size:7px;line-height:1.45}.fc-replay-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0 12px 12px}.fc-replay-metric{display:grid;grid-template-columns:28px 1fr;gap:7px;padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.fc-replay-metric small{display:block;color:var(--muted);font-size:6.6px}.fc-replay-metric strong{display:block;margin-top:2px;font-size:9px}.fc-replay-metric em{display:block;margin-top:2px;color:var(--muted);font-size:6.2px;font-style:normal}.fc-safety{overflow:hidden}.fc-deployment{overflow:hidden}.fc-deployment .deployment-snippet{margin:0;padding:12px;border-top:1px solid var(--border)}
@media(max-width:1100px){.fc-summary{grid-template-columns:1fr 1fr}.fc-readiness{grid-column:1/-1}.fc-gate-grid{grid-template-columns:repeat(2,1fr)}.fc-gate:nth-child(3n){border-right:1px solid var(--border)}.fc-gate:nth-child(2n){border-right:0}}
@media(max-width:760px){.fc-intro-grid,.fc-detail-grid{grid-template-columns:1fr}.fc-summary{grid-template-columns:1fr 1fr}.fc-gate-grid{grid-template-columns:1fr}.fc-gate,.fc-gate:nth-child(3n),.fc-gate:nth-child(2n){border-right:0}.fc-flow{justify-content:flex-start}.fc-replay-metrics{grid-template-columns:1fr}.fc-intro{grid-template-columns:36px 1fr}.fc-icon{width:34px;height:34px}}
@media(max-width:460px){.fc-summary{grid-template-columns:1fr}.fc-readiness{grid-column:1;grid-template-columns:62px 1fr}.fc-score{width:58px;height:58px;border-width:5px}.fc-score strong{font-size:15px}.fc-counter{min-height:74px}.fc-intro,.fc-upload{padding:12px}}

/* v0.12 — Environmental Analytics Engine */
.analytics-page{gap:14px}.analytics-range select{min-width:112px}.provenance-badge{display:inline-flex;align-items:center;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.provenance-measured{background:var(--green-soft);color:var(--green);border-color:color-mix(in srgb,var(--green) 22%,var(--border))}.provenance-simulated{background:var(--amber-soft);color:var(--amber);border-color:color-mix(in srgb,var(--amber) 28%,var(--border))}.provenance-mixed,.provenance-unknown{background:var(--surface-muted);color:var(--muted)}
.analytics-provenance-note{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.analytics-provenance-note>svg{margin-top:1px}.analytics-provenance-note strong{display:block;font-size:12px}.analytics-provenance-note p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.analytics-provenance-note.provenance-measured{border-color:color-mix(in srgb,var(--green) 20%,var(--border))}.analytics-provenance-note.provenance-simulated{border-color:color-mix(in srgb,var(--amber) 28%,var(--border));background:color-mix(in srgb,var(--amber-soft) 34%,var(--surface))}
.analytics-loading{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:18px}.analytics-loading strong{font-size:13px}.analytics-loading p{margin:3px 0 0;color:var(--muted);font-size:10px}
.analytics-kpi-grid{display:grid;grid-template-columns:repeat(var(--analytics-summary-count,5),minmax(0,1fr));gap:10px}.analytics-kpi-grid article{min-width:0;padding:13px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.analytics-kpi-grid span{display:block;color:var(--muted);font-size:9px;font-weight:650}.analytics-kpi-grid strong{display:block;margin-top:7px;font-size:22px;letter-spacing:-.035em}.analytics-kpi-grid strong small{font-size:10px;color:var(--muted);font-weight:600}.analytics-kpi-grid em{display:block;margin-top:4px;color:var(--muted);font-size:9px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.analytics-derived-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:10px}.derived-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}.derived-metric-grid>div{min-width:0;padding:14px;border-right:1px solid var(--border)}.derived-metric-grid>div:last-child{border-right:0}.derived-metric-grid>div>span{display:flex;height:25px;align-items:center;color:var(--primary)}.derived-metric-grid small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.derived-metric-grid strong{display:block;margin-top:4px;font-size:15px}.derived-metric-grid strong small{display:inline;font-size:9px;font-weight:600}.derived-metric-grid em{display:block;margin-top:3px;color:var(--muted);font-size:8px;font-style:normal;line-height:1.35}
.correlation-panel{padding-bottom:10px}.correlation-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(150px,1.2fr) auto;gap:10px;align-items:center;padding:9px 13px;border-top:1px solid var(--border)}.correlation-row>span{font-size:9px;font-weight:650}.correlation-row>em{color:var(--muted);font-size:8px;font-style:normal;text-align:right}.correlation-track{position:relative;height:22px;border-radius:6px;background:linear-gradient(90deg,color-mix(in srgb,#2563eb 10%,var(--surface-muted)),var(--surface-muted) 50%,color-mix(in srgb,#ef4444 10%,var(--surface-muted)));overflow:hidden}.correlation-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border)}.correlation-track i{position:absolute;top:7px;left:calc(50% + var(--corr) * 45%);width:8px;height:8px;border-radius:50%;transform:translateX(-50%);background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.correlation-track b{position:absolute;right:7px;top:4px;font-size:8px}
.analytics-main-grid,.analytics-bottom-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:10px}.analytics-lineage-chart{padding:4px 12px 10px}.analytics-lineage-chart svg{width:100%;height:auto;max-height:245px;display:block}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 4}.chart-axis-label{fill:var(--muted);font-size:9px}.analytics-segment{stroke-width:2.2;fill:none;vector-effect:non-scaling-stroke}.segment-observed{stroke:#ef4444}.segment-interpolated{stroke:#f59e0b;stroke-dasharray:5 4}.analytics-interpolated-point{fill:var(--surface);stroke:#f59e0b;stroke-width:2}.lineage-legend{display:flex;gap:14px;align-items:center;margin-top:4px;color:var(--muted);font-size:8px}.lineage-legend span{display:flex;align-items:center;gap:6px}.lineage-legend i{width:18px;height:2px;background:#ef4444}.lineage-legend i.interpolated{background:repeating-linear-gradient(90deg,#f59e0b 0 5px,transparent 5px 8px)}.analytics-empty-chart{display:grid;place-items:center;min-height:180px;color:var(--muted);font-size:10px}
.quality-panel{overflow:hidden}.quality-finding-group{padding:0 12px 10px}.quality-finding-group+h3{margin-top:0}.quality-finding-group h3{margin:2px 0 7px;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.quality-finding{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--border)}.quality-finding:first-of-type{border-top:0}.quality-finding>span{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--surface-muted);color:var(--muted)}.quality-finding strong{display:block;font-size:9px}.quality-finding small{display:block;margin-top:3px;color:var(--muted);font-size:8px;line-height:1.45}.quality-finding.anomaly.severity-high>span{background:var(--red-soft);color:var(--red)}.quality-finding.anomaly.severity-medium>span{background:var(--amber-soft);color:var(--amber)}.empty-inline.compact{padding:10px 0;font-size:8.5px}
.forecast-status{display:grid;grid-template-columns:30px 1fr;gap:9px;margin:0 12px 10px;padding:10px;border:1px solid var(--border);border-radius:8px}.forecast-status>span{width:28px;height:28px;display:grid;place-items:center;border-radius:7px}.forecast-status.ready{background:color-mix(in srgb,var(--green-soft) 28%,var(--surface));border-color:color-mix(in srgb,var(--green) 20%,var(--border))}.forecast-status.ready>span{background:var(--green-soft);color:var(--green)}.forecast-status.blocked>span{background:var(--surface-muted);color:var(--muted)}.forecast-status strong{font-size:10px}.forecast-status p{margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.4}.forecast-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px 12px}.forecast-metric{display:grid;grid-template-columns:30px 1fr;gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.forecast-metric>span{display:grid;place-items:start center}.forecast-metric small{display:block;color:var(--muted);font-size:8px}.forecast-metric strong{display:block;margin-top:4px;font-size:9px;line-height:1.5}.forecast-metric em{display:block;margin-top:3px;color:var(--muted);font-size:7.5px;font-style:normal;line-height:1.4}.forecast-metric.disabled{opacity:.75}.forecast-reason{margin:0 12px 12px;padding:8px 10px;border-radius:7px;background:var(--surface-muted);color:var(--muted);font-size:8px}
.baseline-panel{overflow:hidden}.baseline-chart{display:block;width:100%;height:auto;padding:2px 10px 8px}.baseline-band{fill:color-mix(in srgb,var(--primary) 12%,transparent)}.baseline-line{fill:none;stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}.baseline-unavailable{min-height:145px;display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-content:center;padding:15px;color:var(--muted)}.baseline-unavailable strong{display:block;color:var(--foreground);font-size:10px}.baseline-unavailable p{margin:4px 0 0;font-size:8px;line-height:1.45}
.methodology-panel{overflow:hidden}.methodology-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border)}.methodology-grid>div{padding:12px 13px;border-right:1px solid var(--border)}.methodology-grid>div:last-child{border-right:0}.methodology-grid strong{font-size:9px}.methodology-grid p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.45}
@media(max-width:1180px){.analytics-kpi-grid{grid-template-columns:repeat(3,1fr)}.analytics-derived-grid,.analytics-main-grid,.analytics-bottom-grid{grid-template-columns:1fr}.correlation-panel{min-height:auto}}
@media(max-width:820px){.analytics-kpi-grid{grid-template-columns:1fr 1fr}.derived-metric-grid{grid-template-columns:1fr 1fr}.derived-metric-grid>div:nth-child(2){border-right:0}.derived-metric-grid>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.methodology-grid{grid-template-columns:1fr 1fr}.methodology-grid>div:nth-child(2){border-right:0}.methodology-grid>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.correlation-row{grid-template-columns:1fr}.correlation-row>em{text-align:left}.forecast-metrics{grid-template-columns:1fr}}
@media(max-width:520px){.analytics-kpi-grid{grid-template-columns:1fr 1fr}.analytics-kpi-grid article:last-child{grid-column:auto}.analytics-kpi-grid strong{font-size:18px}.derived-metric-grid,.methodology-grid{grid-template-columns:1fr}.derived-metric-grid>div,.derived-metric-grid>div:nth-child(2),.methodology-grid>div,.methodology-grid>div:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.derived-metric-grid>div:last-child,.methodology-grid>div:last-child{border-bottom:0}.analytics-provenance-note{grid-template-columns:26px 1fr}.lineage-legend{flex-direction:column;align-items:flex-start;gap:5px}}
/* v0.13 — scientific validation, sensor trust, evidence-backed findings */
.analytics-provenance-note{grid-template-columns:30px minmax(0,1fr) auto}.analysis-version{align-self:start;padding:3px 7px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:700;white-space:nowrap}.analytics-kpi-grid-v13{grid-template-columns:repeat(6,minmax(0,1fr))}.scientific-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.scientific-trust-panel,.validation-panel,.findings-panel{overflow:hidden}.trust-overall{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:999px;font-size:9px;font-weight:750}.trust-good{color:var(--green)}.trust-info{color:var(--primary)}.trust-warning{color:var(--amber)}.trust-critical{color:var(--red)}.trust-muted{color:var(--muted)}.sensor-trust-list{padding:0 12px 9px}.sensor-trust-row{display:grid;grid-template-columns:26px minmax(120px,1fr) minmax(72px,.8fr) 28px;gap:8px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.sensor-trust-row:first-child{border-top:0}.sensor-trust-row>span{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--surface-muted);color:var(--primary)}.sensor-trust-row strong{display:block;font-size:9px}.sensor-trust-row small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.35}.sensor-trust-row>b{text-align:right;font-size:10px}.trust-meter{height:5px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.trust-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--amber),var(--green))}.validation-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;margin:0 12px 9px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.validation-head>span{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--surface);color:var(--muted)}.validation-head strong{display:block;font-size:10px}.validation-head p{margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.4}.validation-head>div:last-child{text-align:right}.validation-head>div:last-child small{display:block;color:var(--muted);font-size:7px}.validation-head>div:last-child b{display:block;margin-top:2px;font-size:14px}.validation-head-helpful{border-color:color-mix(in srgb,var(--green) 22%,var(--border));background:color-mix(in srgb,var(--green-soft) 35%,var(--surface))}.validation-head-helpful>span{color:var(--green);background:var(--green-soft)}.validation-head-worse-than-persistence{border-color:color-mix(in srgb,var(--amber) 30%,var(--border));background:color-mix(in srgb,var(--amber-soft) 30%,var(--surface))}.validation-head-worse-than-persistence>span{color:var(--amber);background:var(--amber-soft)}.validation-list{padding:0 12px}.validation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.validation-row:first-child{border-top:0}.validation-row strong{display:block;font-size:8.5px}.validation-row small{display:block;margin-top:2px;color:var(--muted);font-size:7px}.validation-row.disabled{opacity:.68}.validation-row>b{font-size:8px}.validation-metrics{display:grid;grid-template-columns:70px 94px;gap:6px}.validation-metrics span{padding:5px 7px;border-radius:6px;background:var(--surface-muted);text-align:right}.validation-metrics small{margin:0;font-size:6.5px}.validation-metrics b{display:block;margin-top:2px;font-size:9px}.validation-note{margin:8px 12px 12px;padding:8px 10px;border-radius:7px;background:var(--surface-muted)}.validation-note strong{font-size:8px}.validation-note p{margin:3px 0 0;color:var(--muted);font-size:7px;line-height:1.45}.finding-list{padding:0 12px 10px}.finding-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;padding:10px 0;border-top:1px solid var(--border)}.finding-item:first-child{border-top:0}.finding-item>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted);color:var(--muted)}.finding-critical>span{background:var(--red-soft);color:var(--red)}.finding-warning>span{background:var(--amber-soft);color:var(--amber)}.finding-info>span{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.finding-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.finding-title strong{font-size:9px}.finding-title em{color:var(--muted);font-size:7px;font-style:normal}.finding-badge{display:inline-flex;padding:2px 5px;border-radius:999px;font-size:6.5px;text-transform:uppercase;letter-spacing:.035em}.finding-badge-critical{background:var(--red-soft);color:var(--red)}.finding-badge-warning{background:var(--amber-soft);color:var(--amber)}.finding-badge-info{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.finding-item p{margin:4px 0 0;font-size:8px;line-height:1.45}.finding-item small{display:block;margin-top:3px;color:var(--muted);font-size:7.5px;line-height:1.45}.methodology-grid-v13{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1280px){.analytics-kpi-grid-v13{grid-template-columns:repeat(3,1fr)}.scientific-grid{grid-template-columns:1fr}.methodology-grid-v13{grid-template-columns:repeat(3,1fr)}.methodology-grid-v13>div:nth-child(3n){border-right:0}}
@media(max-width:820px){.analytics-provenance-note{grid-template-columns:26px 1fr}.analysis-version{grid-column:2;justify-self:start}.sensor-trust-row{grid-template-columns:26px minmax(0,1fr) 38px}.sensor-trust-row .trust-meter{grid-column:2/-1}.validation-head{grid-template-columns:28px 1fr}.validation-head>div:last-child{grid-column:2;text-align:left}.validation-row{grid-template-columns:1fr}.validation-metrics{grid-template-columns:1fr 1fr}.methodology-grid-v13{grid-template-columns:1fr 1fr}.methodology-grid-v13>div:nth-child(3n){border-right:1px solid var(--border)}.methodology-grid-v13>div:nth-child(2n){border-right:0}}
@media(max-width:520px){.analytics-kpi-grid-v13{grid-template-columns:1fr 1fr}.analytics-kpi-grid-v13 article:last-child{grid-column:auto}.sensor-trust-row{grid-template-columns:26px 1fr 34px}.methodology-grid-v13{grid-template-columns:1fr}.methodology-grid-v13>div{border-right:0!important;border-bottom:1px solid var(--border)}.methodology-grid-v13>div:last-child{border-bottom:0}.finding-title{align-items:flex-start}.validation-metrics{grid-template-columns:1fr 1fr}}

/* v0.14 — long-term environmental baseline & calibration */
.analytics-kpi-grid-v14{grid-template-columns:repeat(6,minmax(0,1fr))}.retention-badge,.calibration-authority{display:inline-flex;align-items:center;height:23px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.longterm-readiness-panel{overflow:hidden}.baseline-gates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border)}.baseline-gate{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:start;padding:12px;border-right:1px solid var(--border)}.baseline-gate:last-child{border-right:0}.baseline-gate>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted);color:var(--muted)}.baseline-gate.ready>span{background:var(--green-soft);color:var(--green)}.baseline-gate strong{display:block;font-size:9px}.baseline-gate small{display:block;margin-top:2px;color:var(--muted);font-size:7px;line-height:1.35;min-height:28px}.baseline-gate>b{font-size:8px;color:var(--muted)}.baseline-gate.ready>b{color:var(--green)}.baseline-progress{height:4px;margin-top:7px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.baseline-progress i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.baseline-gate.ready .baseline-progress i{background:var(--green)}.baseline-gate em{display:block;margin-top:4px;color:var(--muted);font-size:6.5px;font-style:normal;line-height:1.3}.longterm-foot{display:flex;align-items:center;gap:16px;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:7.5px}.longterm-foot span{display:flex;align-items:center;gap:5px}.calibration-baseline-grid,.longterm-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.calibration-panel,.climatology-panel,.longterm-baseline-panel,.diurnal-panel{overflow:hidden}.authority-calibrated{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,var(--border));background:var(--green-soft)}.authority-experimental{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 30%,var(--border));background:var(--amber-soft)}.authority-failed{color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,var(--border));background:var(--red-soft)}.calibration-summary{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;margin:0 12px 8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.calibration-summary small,.calibration-summary em{display:block;color:var(--muted);font-size:7px;font-style:normal}.calibration-summary strong{display:block;margin:2px 0;font-size:18px}.calibration-summary strong span{font-size:8px;color:var(--muted)}.calibration-summary p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}.calibration-grid{display:grid;grid-template-columns:1fr 1fr;padding:0 12px}.calibration-cell{padding:10px;border-top:1px solid var(--border)}.calibration-cell:nth-child(odd){border-right:1px solid var(--border)}.calibration-cell>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.calibration-cell strong{font-size:8px}.calibration-cell>b{display:block;margin-top:5px;font-size:13px}.calibration-cell small{display:block;margin-top:3px;color:var(--muted);font-size:7px}.cal-status{padding:2px 5px;border-radius:999px;font-size:6px;text-transform:uppercase}.cal-good{background:var(--green-soft);color:var(--green)}.cal-warning{background:var(--amber-soft);color:var(--amber)}.cal-critical{background:var(--red-soft);color:var(--red)}.cal-muted{background:var(--surface-muted);color:var(--muted)}.calibration-note{margin:7px 12px 12px;padding:7px 9px;border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:7px;line-height:1.4}.longterm-chart-wrap{padding:2px 12px 10px}.longterm-baseline-chart{display:block;width:100%;height:auto;max-height:230px}.baseline-outer-band{fill:color-mix(in srgb,var(--primary) 9%,transparent)}.baseline-inner-band{fill:color-mix(in srgb,var(--primary) 17%,transparent)}.baseline-median-line{fill:none;stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}.baseline-legend{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:7px}.baseline-legend span{display:flex;align-items:center;gap:5px}.baseline-legend i{width:17px;height:6px;border-radius:2px}.baseline-legend .p1090{background:color-mix(in srgb,var(--primary) 9%,transparent);border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border))}.baseline-legend .p2575{background:color-mix(in srgb,var(--primary) 18%,transparent)}.baseline-legend .median{height:2px;background:var(--primary)}.baseline-legend em{margin-left:auto;font-style:normal}.longterm-lock{min-height:185px}.diurnal-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}.diurnal-grid>section{padding:12px}.diurnal-grid>section:first-child{border-right:1px solid var(--border)}.diurnal-grid header{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:var(--primary)}.diurnal-grid header strong{font-size:9px;color:var(--text)}.profile-stat{padding:8px 0;border-top:1px solid var(--border)}.profile-stat small{display:block;color:var(--muted);font-size:7px}.profile-stat strong{display:block;margin-top:2px;font-size:13px}.profile-stat strong small{display:inline}.profile-stat span,.profile-stat em{display:block;margin-top:2px;color:var(--muted);font-size:6.5px;font-style:normal}.profile-method{margin:0;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:6.5px;line-height:1.4}.climatology-list{padding:0 12px 10px}.climatology-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.climatology-row:first-child{border-top:0}.climatology-row>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted);color:var(--primary)}.climatology-row strong{display:block;font-size:8px}.climatology-row small{display:block;margin-top:2px;color:var(--muted);font-size:7px}.climatology-row>b{font-size:9px}.climatology-row>em{padding:3px 6px;border-radius:999px;font-size:6px;font-style:normal;text-transform:uppercase;background:var(--surface-muted);color:var(--muted)}.climatology-row>em.clim-above-p90,.climatology-row>em.clim-below-p10{background:var(--amber-soft);color:var(--amber)}.methodology-grid-v14{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1280px){.analytics-kpi-grid-v14{grid-template-columns:repeat(3,1fr)}.baseline-gates{grid-template-columns:1fr 1fr}.baseline-gate:nth-child(2){border-right:0}.baseline-gate:nth-child(-n+2){border-bottom:1px solid var(--border)}.calibration-baseline-grid,.longterm-analysis-grid{grid-template-columns:1fr}.methodology-grid-v14{grid-template-columns:repeat(3,1fr)}.methodology-grid-v14>div:nth-child(3n){border-right:0}}
@media(max-width:820px){.analytics-kpi-grid-v14{grid-template-columns:1fr 1fr}.baseline-gates{grid-template-columns:1fr}.baseline-gate,.baseline-gate:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.baseline-gate:last-child{border-bottom:0}.longterm-foot{align-items:flex-start;flex-direction:column;gap:5px}.calibration-summary{grid-template-columns:1fr}.calibration-grid{grid-template-columns:1fr}.calibration-cell:nth-child(odd){border-right:0}.diurnal-grid{grid-template-columns:1fr}.diurnal-grid>section:first-child{border-right:0;border-bottom:1px solid var(--border)}.climatology-row{grid-template-columns:28px 1fr auto}.climatology-row>em{grid-column:2/-1;justify-self:start}.methodology-grid-v14{grid-template-columns:1fr 1fr}.methodology-grid-v14>div:nth-child(3n){border-right:1px solid var(--border)}.methodology-grid-v14>div:nth-child(2n){border-right:0}}
@media(max-width:520px){.analytics-kpi-grid-v14{grid-template-columns:1fr 1fr}.analytics-kpi-grid-v14 article:last-child{grid-column:auto}.baseline-gate{grid-template-columns:26px 1fr auto}.calibration-grid{padding:0 10px}.baseline-legend{flex-wrap:wrap}.baseline-legend em{width:100%;margin-left:0}.methodology-grid-v14{grid-template-columns:1fr}.methodology-grid-v14>div{border-right:0!important;border-bottom:1px solid var(--border)}.methodology-grid-v14>div:last-child{border-bottom:0}}

/* v0.15 — multi-station network intelligence & spatial readiness */
.network-page{--network-accent:#2563eb}.network-boundary-note{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--muted)}.network-boundary-note>svg{color:var(--primary)}.network-boundary-note strong{display:block;font-size:9px;color:var(--text)}.network-boundary-note p{margin:2px 0 0;font-size:7.5px;line-height:1.4}.network-boundary-note>span{font-size:7px;font-weight:700}.network-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.network-kpi-grid article{padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.network-kpi-grid span{display:block;color:var(--muted);font-size:7.5px}.network-kpi-grid strong{display:block;margin-top:5px;font-size:19px;letter-spacing:-.03em}.network-kpi-grid strong small{font-size:8px;color:var(--muted)}.network-kpi-grid em{display:block;margin-top:3px;color:var(--muted);font-size:7px;font-style:normal;line-height:1.35}.network-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:10px}.network-map-panel,.spatial-readiness-panel,.network-comparison-panel,.network-findings,.network-contract{overflow:hidden}.network-plot-wrap{padding:6px 12px 0}.network-spatial-plot{width:100%;display:block;min-height:230px}.network-spatial-plot line{stroke:var(--border);stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.network-spatial-plot text{font-size:8px;font-weight:750;fill:var(--text)}.network-pin{fill:var(--surface);stroke:var(--muted);stroke-width:2;vector-effect:non-scaling-stroke}.network-pin.pin-online{stroke:var(--green)}.network-pin.pin-stale{stroke:var(--amber)}.network-pin.pin-offline{stroke:var(--red)}.network-pin-core{fill:var(--primary)}.network-plot-empty{min-height:230px;display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--muted);text-align:left}.network-plot-empty strong{display:block;color:var(--text);font-size:10px}.network-plot-empty p{max-width:380px;margin:3px 0 0;font-size:7.5px;line-height:1.45}.network-geometry-meta{display:flex;gap:16px;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:7px}.network-geometry-meta b{color:var(--text)}.spatial-readiness-list{padding:0 12px}.spatial-readiness-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.spatial-readiness-row:first-child{border-top:0}.spatial-readiness-row>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted);color:var(--primary)}.spatial-readiness-row strong{display:block;font-size:8px}.spatial-readiness-row small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}.spatial-readiness-row>b{padding:3px 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:6px;white-space:nowrap}.spatial-readiness-row>b.ready{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 30%,var(--border));color:var(--green)}.spatial-policy{padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-muted)}.spatial-policy strong{display:block;font-size:7px}.spatial-policy p{margin:2px 0 8px;color:var(--muted);font-size:6.5px;line-height:1.4}.spatial-policy p:last-child{margin-bottom:0}.network-table{overflow-x:auto}.network-table-head,.network-table-row{display:grid;grid-template-columns:minmax(150px,1.2fr) repeat(3,minmax(120px,.8fr)) minmax(150px,1fr);align-items:center;min-width:760px}.network-table-head{padding:7px 12px;background:var(--surface-muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);font-size:6.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.network-table-row{padding:10px 12px;border-bottom:1px solid var(--border);font-size:8px}.network-table-row:last-child{border-bottom:0}.network-table-row>span{padding-right:8px}.network-table-row b{display:block;font-size:8px}.network-table-row small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}.network-table-row .network-outlier{color:var(--amber);font-weight:750}.network-bottom-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:10px}.network-finding-list{padding:0 12px 10px}.network-finding{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px 0;border-top:1px solid var(--border)}.network-finding:first-child{border-top:0}.network-finding>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted);color:var(--muted)}.network-finding.finding-medium>span{background:var(--amber-soft);color:var(--amber)}.network-finding strong{font-size:8px}.network-finding p{margin:2px 0;color:var(--muted);font-size:7px;line-height:1.4}.network-finding small{font-size:6.5px;color:var(--muted)}.network-contract dl{margin:0;padding:0 12px 10px}.network-contract dl>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.network-contract dl>div:first-child{border-top:0}.network-contract dt{color:var(--muted);font-size:7px}.network-contract dd{margin:0;text-align:right;font-size:7px;font-weight:700}.station-form-grid .spatial-note{padding:8px 10px;border:1px dashed var(--border);border-radius:7px;background:var(--surface-muted)}.station-form-grid .spatial-note>span{font-size:7px;font-weight:750;color:var(--text)}.station-form-grid .spatial-note>small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px;line-height:1.35}
@media(max-width:1280px){.network-kpi-grid{grid-template-columns:repeat(3,1fr)}.network-main-grid,.network-bottom-grid{grid-template-columns:1fr}}
@media(max-width:820px){.network-boundary-note{grid-template-columns:26px minmax(0,1fr)}.network-boundary-note>span:last-child{grid-column:2}.network-kpi-grid{grid-template-columns:1fr 1fr}.spatial-readiness-row{grid-template-columns:28px 1fr}.spatial-readiness-row>b{grid-column:auto}.network-spatial-plot{min-height:200px}.network-geometry-meta{flex-direction:column;gap:4px}}
@media(max-width:520px){.network-kpi-grid{grid-template-columns:1fr 1fr}.network-kpi-grid article{padding:10px}.spatial-readiness-row{grid-template-columns:26px 1fr}.spatial-readiness-row>b{grid-column:2;justify-self:start}.network-plot-wrap{padding:4px 8px}.network-spatial-plot{min-height:170px}.network-boundary-note{align-items:start}.network-table-head,.network-table-row{min-width:680px}}

/* v0.16 — Spatial Surface Sandbox & Network Event Intelligence */
.spatial-page{--spatial-blue:#2563eb;--spatial-amber:#d97706}.spatial-boundary-note{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--muted)}.spatial-boundary-note>svg{color:var(--primary)}.spatial-boundary-note strong{display:block;color:var(--text);font-size:9px}.spatial-boundary-note p{margin:2px 0 0;font-size:7px;line-height:1.45}.spatial-boundary-note>span{font-size:7px;font-weight:750}.spatial-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:11px 12px}.spatial-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:6.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.spatial-controls select{width:100%;min-height:34px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);padding:0 9px;font:inherit;font-size:8px;text-transform:none;letter-spacing:0}.spatial-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.spatial-kpi-grid article{padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.spatial-kpi-grid span{display:block;color:var(--muted);font-size:7px}.spatial-kpi-grid strong{display:block;margin-top:5px;font-size:18px;letter-spacing:-.035em}.spatial-kpi-grid strong small{font-size:7px;color:var(--muted);margin-left:2px}.spatial-kpi-grid em{display:block;margin-top:3px;color:var(--muted);font-size:6.5px;line-height:1.35;font-style:normal}.spatial-main-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:10px}.spatial-surface-panel,.spatial-validation-panel,.spatial-cv-panel,.network-events-panel,.spatial-contract-panel{overflow:hidden}.spatial-surface-wrap{padding:8px 12px 10px}.spatial-surface-svg{display:block;width:100%;min-height:330px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);overflow:hidden}.spatial-surface-bg{fill:var(--surface-muted)}.spatial-surface-svg text{font-size:8px;fill:var(--text);font-weight:750;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.spatial-surface-svg .spatial-value-label{font-size:6.5px;fill:var(--muted)}.spatial-measured-ring{fill:var(--surface);stroke:var(--text);stroke-width:2;vector-effect:non-scaling-stroke}.spatial-measured-core{fill:var(--primary)}.spatial-surface-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:9px;color:var(--muted);font-size:6.5px}.spatial-surface-legend strong{margin-right:auto;color:var(--text);font-size:7px}.spatial-surface-legend span{display:flex;align-items:center;gap:4px}.spatial-surface-legend i{display:block;width:12px;height:8px;border-radius:2px;border:1px solid color-mix(in srgb,var(--text) 10%,transparent)}.spatial-lineage-key{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);color:var(--muted);font-size:6.5px}.spatial-lineage-key span{display:flex;align-items:center;gap:5px}.spatial-lineage-key i{width:8px;height:8px;border-radius:50%}.measured-dot{background:var(--primary);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--text)}.interpolated-dot{background:#7aa8ef}.masked-dot{background:var(--surface-muted);border:1px solid var(--border)}.spatial-surface-empty{min-height:330px;display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--muted)}.spatial-surface-empty>svg{color:var(--muted)}.spatial-surface-empty strong{display:block;color:var(--text);font-size:9px}.spatial-surface-empty p{max-width:420px;margin:3px 0 0;font-size:7px;line-height:1.45}.spatial-validation-dl{margin:0;padding:0 12px}.spatial-validation-dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.spatial-validation-dl>div:first-child{border-top:0}.spatial-validation-dl dt{color:var(--muted);font-size:7px}.spatial-validation-dl dd{margin:0;font-size:7px;font-weight:750;text-align:right}.spatial-authority-warning{display:grid;grid-template-columns:28px 1fr;gap:8px;margin:8px 12px 12px;padding:9px;border:1px solid color-mix(in srgb,var(--amber) 25%,var(--border));border-radius:8px;background:var(--amber-soft);color:var(--amber)}.spatial-authority-warning p{margin:0;color:var(--muted);font-size:6.5px;line-height:1.45}.spatial-authority-warning strong{display:block;color:var(--text);font-size:7px;margin-bottom:2px}.spatial-validation-table{overflow-x:auto}.spatial-validation-head,.spatial-validation-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(3,minmax(130px,.9fr));align-items:center;min-width:660px}.spatial-validation-head{padding:7px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:6.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:750}.spatial-validation-row{padding:10px 12px;border-bottom:1px solid var(--border);font-size:7.5px}.spatial-validation-row:last-child{border-bottom:0}.spatial-validation-row span{padding-right:8px}.spatial-events-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:10px}.event-summary-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted)}.event-summary-strip span{padding:9px 12px;border-right:1px solid var(--border)}.event-summary-strip span:last-child{border-right:0}.event-summary-strip small{display:block;color:var(--muted);font-size:6px}.event-summary-strip b{display:block;margin-top:2px;font-size:11px}.network-event-list{padding:0 12px 10px}.network-event-card{padding:11px 0;border-top:1px solid var(--border)}.network-event-card:first-child{border-top:0}.event-card-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center}.event-card-head>span:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--surface-muted)}.event-card-head strong{display:block;font-size:8px}.event-card-head small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}.event-scope{padding:3px 7px;border-radius:999px;border:1px solid var(--border);background:var(--surface-muted);font-size:6px;font-weight:750;text-transform:capitalize}.scope-regional-evidence{color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-color:color-mix(in srgb,var(--primary) 25%,var(--border))}.scope-multi-station{color:var(--amber);background:var(--amber-soft)}.event-statline{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:9px 0;padding:8px;border-radius:7px;background:var(--surface-muted)}.event-statline small{display:block;color:var(--muted);font-size:5.8px}.event-statline b{display:block;margin-top:2px;font-size:7px}.event-propagation{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.event-propagation>strong{font-size:6.5px;margin-right:3px}.event-propagation span{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:6px}.event-propagation span b{width:13px;height:13px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-size:5.5px}.event-propagation span small{font-size:5.5px}.event-caveat{margin:7px 0 0;color:var(--muted);font-size:6.2px;line-height:1.4}.event-empty{min-height:160px;display:flex;align-items:center;justify-content:center;gap:9px;padding:20px;color:var(--muted)}.event-empty strong{display:block;color:var(--text);font-size:8px}.event-empty p{max-width:430px;margin:3px 0 0;font-size:6.5px;line-height:1.4}.spatial-contract-panel dl{margin:0;padding:0 12px 10px}.spatial-contract-panel dl>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--border)}.spatial-contract-panel dl>div:first-child{border-top:0}.spatial-contract-panel dt{color:var(--muted);font-size:6.5px}.spatial-contract-panel dd{margin:0;text-align:right;font-size:6.5px;font-weight:700}
@media(max-width:1280px){.spatial-kpi-grid{grid-template-columns:repeat(3,1fr)}.spatial-main-grid,.spatial-events-grid{grid-template-columns:1fr}}
@media(max-width:820px){.spatial-boundary-note{grid-template-columns:28px minmax(0,1fr)}.spatial-boundary-note>span:last-child{grid-column:2}.spatial-controls{grid-template-columns:1fr 1fr}.spatial-kpi-grid{grid-template-columns:1fr 1fr}.spatial-surface-svg{min-height:260px}.event-summary-strip{grid-template-columns:1fr 1fr}.event-summary-strip span:nth-child(2){border-right:0}.event-summary-strip span:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media(max-width:520px){.spatial-controls{grid-template-columns:1fr 1fr}.spatial-kpi-grid{grid-template-columns:1fr 1fr}.spatial-surface-wrap{padding:6px 8px 8px}.spatial-surface-svg{min-height:210px}.spatial-surface-legend strong{width:100%}.spatial-lineage-key{flex-direction:column;gap:5px}.event-statline{grid-template-columns:1fr 1fr}.event-card-head{grid-template-columns:28px 1fr}.event-scope{grid-column:2;justify-self:start}.spatial-validation-head,.spatial-validation-row{min-width:600px}}
.spatial-sensitivity{margin:8px 12px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.spatial-sensitivity>strong{display:block;font-size:7px}.spatial-sensitivity>div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px}.spatial-sensitivity span{padding:6px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.spatial-sensitivity span.selected{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.spatial-sensitivity span.best{box-shadow:inset 2px 0 0 var(--green)}.spatial-sensitivity b{display:block;font-size:6.5px}.spatial-sensitivity small{display:block;margin-top:2px;color:var(--muted);font-size:5.6px;line-height:1.3}.spatial-sensitivity p{margin:7px 0 0;color:var(--muted);font-size:5.8px;line-height:1.4}
@media(max-width:520px){.spatial-sensitivity>div{grid-template-columns:1fr 1fr}}
/* v0.17 — Geospatial Operations & Temporal Replay */
.geospatial-page{gap:14px}.geo-boundary-note{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--muted)}.geo-boundary-note>svg{color:var(--primary)}.geo-boundary-note strong{display:block;color:var(--foreground);font-size:11px}.geo-boundary-note p{margin:3px 0 0;font-size:9px;line-height:1.5}.geo-boundary-note>span{font-size:9px;font-weight:700}.geo-controls{display:grid;grid-template-columns:1.25fr 1.4fr repeat(3,minmax(120px,.8fr));gap:10px;padding:12px}.geo-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;font-weight:650}.geo-controls select{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--foreground)}.geo-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.geo-kpi-grid article{padding:13px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.geo-kpi-grid span{display:block;color:var(--muted);font-size:9px}.geo-kpi-grid strong{display:block;margin-top:6px;font-size:21px;letter-spacing:-.035em}.geo-kpi-grid strong small{font-size:9px;color:var(--muted);font-weight:600}.geo-kpi-grid em{display:block;margin-top:4px;color:var(--muted);font-size:8px;font-style:normal;line-height:1.35}.geo-map-panel{overflow:hidden}.geo-map-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.geo-map-header>div:first-child strong{display:block;font-size:12px}.geo-map-header>div:first-child span{display:block;margin-top:2px;color:var(--muted);font-size:9px}.geo-map-header>div:last-child{display:flex;gap:7px}.geo-map-shell{position:relative;margin:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#eaf0f6}.geo-map-canvas{display:block;width:100%;height:auto;aspect-ratio:1.88/1;background:#edf2f7}.geo-map-bg{fill:#eef3f8}:root[data-theme="dark"] .geo-map-bg{fill:#111827}.geo-neutral-grid line{stroke:color-mix(in srgb,var(--muted) 18%,transparent);stroke-width:1}.geo-idw-surface{mix-blend-mode:multiply}:root[data-theme="dark"] .geo-idw-surface{mix-blend-mode:screen}.geo-hull{fill:none;stroke:var(--foreground);stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:.65}.geo-station text{fill:var(--foreground);font-size:11px;font-weight:750;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.geo-station-value{fill:var(--muted)!important;font-size:9px!important;font-weight:650!important}.geo-station-ring{fill:var(--surface);stroke:var(--foreground);stroke-width:2;vector-effect:non-scaling-stroke}.geo-station-core{fill:var(--primary)}.geo-station.unavailable{opacity:.55}.geo-station.unavailable .geo-station-core{fill:var(--muted)}.geo-map-tools{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:5px}.geo-tool{width:34px;height:34px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow);color:var(--foreground)}.geo-tool:hover{background:var(--surface)}.geo-map-status{position:absolute;top:12px;right:12px;display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.geo-map-status span{padding:4px 7px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);font-size:8px;font-weight:700}.geo-osm-attribution{position:absolute;right:8px;bottom:8px;padding:3px 5px;border-radius:4px;background:rgba(255,255,255,.86);color:#475467;font-size:7px}.geo-color-legend{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:7px 8px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow)}.geo-color-legend strong{font-size:8px;margin-right:4px}.geo-color-legend span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:7px}.geo-color-legend i{width:13px;height:8px;border-radius:2px}.geo-map-empty{min-height:360px;display:grid;place-items:center;color:var(--muted);font-size:11px;background:var(--surface-muted)}.geo-timeline{padding:0 14px 14px}.geo-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.geo-timeline-head>div:first-child span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.geo-timeline-head>div:first-child strong{display:block;margin-top:2px;font-size:11px}.geo-play-controls{display:flex;gap:5px}.primary-icon-button{width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:var(--primary);color:#fff}.geo-time-range{width:100%;margin:12px 0 5px;accent-color:var(--primary)}.geo-timeline-foot{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:8px}.geo-timeline-foot b{color:var(--foreground)}.flip-x{transform:scaleX(-1)}.geo-evidence-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:10px}.geo-event-replay-list{padding:0 13px 12px}.geo-event-replay-list article{position:relative;padding:11px 0;border-top:1px solid var(--border)}.geo-event-replay-list article:first-child{border-top:0}.geo-event-replay-list strong{display:block;font-size:10px;margin-top:6px}.geo-event-replay-list p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.geo-event-replay-list small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.geo-event-empty{min-height:130px;display:grid;place-items:center;padding:20px;color:var(--muted);font-size:10px}.geo-authority-panel dl{margin:0;padding:0 13px 12px}.geo-authority-panel dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.geo-authority-panel dl>div:first-child{border-top:0}.geo-authority-panel dt{color:var(--muted);font-size:9px}.geo-authority-panel dd{margin:0;text-align:right;font-size:9px;font-weight:700}
@media(max-width:1280px){.geo-kpi-grid{grid-template-columns:repeat(3,1fr)}.geo-controls{grid-template-columns:repeat(3,1fr)}.geo-evidence-grid{grid-template-columns:1fr}}
@media(max-width:820px){.geo-boundary-note{grid-template-columns:28px minmax(0,1fr)}.geo-boundary-note>span:last-child{grid-column:2}.geo-controls{grid-template-columns:1fr 1fr}.geo-kpi-grid{grid-template-columns:1fr 1fr}.geo-map-header{align-items:flex-start;flex-direction:column}.geo-map-canvas{aspect-ratio:1.25/1}.geo-color-legend{max-width:calc(100% - 24px)}.geo-map-status{max-width:60%}}
@media(max-width:520px){.geo-controls{grid-template-columns:1fr 1fr}.geo-map-shell{margin:8px}.geo-map-canvas{aspect-ratio:1/1}.geo-map-header>div:last-child{width:100%}.geo-map-header .outline-button{flex:1}.geo-map-status{top:8px;right:8px;max-width:68%}.geo-map-tools{top:8px;left:8px}.geo-color-legend{left:8px;bottom:8px;right:8px;gap:5px}.geo-color-legend strong{width:100%}.geo-osm-attribution{display:none}.geo-timeline{padding:0 10px 12px}.geo-timeline-head{align-items:flex-start;flex-direction:column}.geo-play-controls{align-self:flex-end;margin-top:-36px}.geo-timeline-foot span{max-width:34%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-station text{font-size:9px}.geo-station-value{font-size:7px!important}}
/* v0.18 — Operational Alerting & Event Investigation Workspace */
.investigations-page{gap:14px}.investigation-boundary-note{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--muted)}.investigation-boundary-note>svg{color:var(--primary)}.investigation-boundary-note strong{display:block;color:var(--foreground);font-size:11px}.investigation-boundary-note p{margin:3px 0 0;font-size:9px;line-height:1.5}.investigation-boundary-note>span{font-size:9px;font-weight:700}.investigation-toolbar{display:grid;grid-template-columns:150px 150px 150px minmax(0,1fr);gap:10px;align-items:end;padding:12px}.investigation-toolbar label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;font-weight:650}.investigation-toolbar select{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--foreground)}.investigation-summary{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.investigation-summary span{display:flex;align-items:baseline;gap:4px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted);color:var(--muted);font-size:8px}.investigation-summary b{color:var(--foreground);font-size:12px}.investigation-workspace{display:grid;grid-template-columns:minmax(280px,.34fr) minmax(0,1fr);gap:10px;min-height:680px}.investigation-index,.investigation-main{overflow:hidden}.investigation-index .panel-header,.investigation-main .panel-header{border-bottom:1px solid var(--border)}.investigation-event-list{max-height:770px;overflow:auto;padding:8px}.investigation-event{width:100%;display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--foreground);text-align:left}.investigation-event:hover{background:var(--surface-hover)}.investigation-event.active{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.investigation-event-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.event-type{color:var(--muted);font-size:7px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.investigation-event>strong{font-size:9px;line-height:1.35}.investigation-event>p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}.investigation-event-meta{display:flex;align-items:center;gap:9px;margin-top:2px;color:var(--muted);font-size:7px}.investigation-event-meta span{display:flex;align-items:center;gap:3px}.investigation-detail{padding:0 12px 14px}.investigation-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 2px 13px;border-bottom:1px solid var(--border)}.investigation-kicker{color:var(--primary);font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.investigation-hero h2{margin:5px 0 4px;font-size:20px;letter-spacing:-.03em}.investigation-hero p{max-width:760px;margin:0;color:var(--muted);font-size:9px;line-height:1.5}.investigation-hero>div:last-child{display:flex;align-items:flex-start;gap:8px}.investigation-hero-meta{display:flex;gap:12px;margin-top:8px;color:var(--muted);font-size:8px}.investigation-hero-meta span{display:flex;align-items:center;gap:4px}.investigation-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.investigation-kpis article{padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.investigation-kpis span{display:block;color:var(--muted);font-size:7.5px}.investigation-kpis strong{display:block;margin-top:5px;font-size:18px}.investigation-kpis strong small{font-size:8px;color:var(--muted)}.investigation-kpis em{display:block;margin-top:3px;color:var(--muted);font-size:7px;font-style:normal}.investigation-timeline-panel{margin-bottom:10px}.investigation-timeline{max-height:280px;overflow:auto;padding:4px 13px 11px}.investigation-timeline-row{display:grid;grid-template-columns:54px 14px minmax(0,1fr);gap:8px;align-items:start;position:relative;min-height:38px}.investigation-timeline-row time{padding-top:4px;color:var(--muted);font-size:7.5px;text-align:right}.investigation-timeline-row>i{position:relative;width:8px;height:8px;margin-top:4px;border:2px solid var(--surface);border-radius:50%;background:var(--muted);box-shadow:0 0 0 1px var(--border);z-index:2}.investigation-timeline-row:not(:last-child)>i:after{content:"";position:absolute;top:8px;left:2px;width:1px;height:30px;background:var(--border)}.investigation-timeline-row.anchor>i{background:var(--red);box-shadow:0 0 0 1px color-mix(in srgb,var(--red) 55%,var(--border))}.investigation-timeline-row>div{padding-bottom:9px}.investigation-timeline-row strong{display:block;font-size:8.5px}.investigation-timeline-row span{display:block;margin-top:2px;color:var(--muted);font-size:7px}.investigation-station-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 12px 12px}.investigation-station-card{min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.investigation-station-head{display:flex;justify-content:space-between;gap:8px;align-items:start}.investigation-station-head strong{display:block;font-size:9px}.investigation-station-head span{display:block;margin-top:2px;color:var(--muted);font-size:7px}.quality-pill{padding:3px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:7px;font-weight:750;color:var(--foreground)!important}.investigation-station-card .interactive-chart{margin-top:6px}.investigation-station-card dl{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:7px 0 0}.investigation-station-card dl>div{padding:6px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.investigation-station-card dt{color:var(--muted);font-size:6.5px}.investigation-station-card dd{margin:2px 0 0;font-size:8px;font-weight:700}.investigation-evidence-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;margin-top:10px}.investigation-map-evidence{padding:0 12px 12px}.investigation-map-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:7px;overflow:hidden}.investigation-map-summary span{padding:8px;color:var(--muted);font-size:7px;border-right:1px solid var(--border)}.investigation-map-summary span:last-child{border-right:0}.investigation-map-summary b{display:block;margin-bottom:2px;color:var(--foreground);font-size:12px}.investigation-spatial-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.investigation-spatial-strip article{display:grid;grid-template-columns:8px auto;column-gap:5px;align-items:center;padding:6px 7px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.map-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.map-dot.measured{background:var(--green)}.map-dot.stale{background:var(--amber)}.investigation-spatial-strip strong{font-size:7.5px}.investigation-spatial-strip em{grid-column:2;color:var(--muted);font-size:6.5px;font-style:normal}.investigation-map-note{margin:9px 0 0;color:var(--muted);font-size:7.5px;line-height:1.45}.investigation-ledger dl{margin:0;padding:0 12px 12px}.investigation-ledger dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}.investigation-ledger dl>div:first-child{border-top:0}.investigation-ledger dt{color:var(--muted);font-size:7px}.investigation-ledger dd{max-width:64%;margin:0;text-align:right;font-size:7px;font-weight:700}.investigation-empty{min-height:210px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:20px;color:var(--muted);text-align:center}.investigation-empty strong{color:var(--foreground);font-size:10px}.investigation-empty p{max-width:420px;margin:0;font-size:8px;line-height:1.5}.investigation-empty.small{min-height:120px}.investigation-empty.detail{min-height:560px}.investigation-detail-loading{min-height:560px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:9px}
@media(max-width:1180px){.investigation-toolbar{grid-template-columns:repeat(3,1fr)}.investigation-summary{grid-column:1/-1;justify-content:flex-start}.investigation-workspace{grid-template-columns:260px minmax(0,1fr)}.investigation-station-grid{grid-template-columns:1fr}.investigation-evidence-grid{grid-template-columns:1fr}}
@media(max-width:820px){.investigation-boundary-note{grid-template-columns:28px 1fr}.investigation-boundary-note>span{grid-column:2}.investigation-toolbar{grid-template-columns:1fr 1fr}.investigation-toolbar label:first-child{grid-column:1/-1}.investigation-workspace{grid-template-columns:1fr}.investigation-event-list{max-height:320px}.investigation-hero{grid-template-columns:1fr}.investigation-hero>div:last-child{justify-content:space-between}.investigation-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.investigation-toolbar{grid-template-columns:1fr 1fr}.investigation-toolbar label:first-child{grid-column:1/-1}.investigation-summary{display:grid;grid-template-columns:1fr 1fr}.investigation-summary span{justify-content:center}.investigation-detail{padding:0 8px 10px}.investigation-hero h2{font-size:17px}.investigation-hero>div:last-child{align-items:center}.investigation-kpis{grid-template-columns:1fr 1fr}.investigation-station-grid{padding:0 8px 8px}.investigation-station-card dl{grid-template-columns:1fr 1fr}.investigation-map-summary{grid-template-columns:1fr}.investigation-map-summary span{border-right:0;border-bottom:1px solid var(--border)}.investigation-map-summary span:last-child{border-bottom:0}.investigation-timeline-row{grid-template-columns:42px 12px minmax(0,1fr);gap:6px}.investigation-empty.detail,.investigation-detail-loading{min-height:320px}}

/* v0.19 — Investigation Case Management */
.cases-page{gap:14px}.case-boundary-note{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));color:var(--muted)}.case-boundary-note>svg{color:var(--primary)}.case-boundary-note strong{display:block;color:var(--foreground);font-size:11px}.case-boundary-note p{margin:3px 0 0;font-size:9px;line-height:1.5}.case-boundary-note>span{font-size:9px;font-weight:700}.case-summary-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.case-summary-strip article{padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.case-summary-strip span{display:block;color:var(--muted);font-size:7.5px}.case-summary-strip strong{display:block;margin-top:3px;font-size:19px}.case-workspace{display:grid;grid-template-columns:minmax(285px,.34fr) minmax(0,1fr);gap:10px;min-height:720px}.case-index,.case-main{overflow:hidden}.case-index .panel-header,.case-main .panel-header{border-bottom:1px solid var(--border)}.case-list{max-height:820px;overflow:auto;padding:8px}.case-list-item{width:100%;padding:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--foreground);text-align:left}.case-list-item:hover{background:var(--surface-hover)}.case-list-item.active{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.case-list-item>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.case-list-item>div>strong{font-size:8px;letter-spacing:.03em}.case-list-item h3{margin:7px 0 3px;font-size:9px;line-height:1.35}.case-list-item p{margin:0;color:var(--muted);font-size:7.5px;line-height:1.45}.case-list-item footer{display:flex;align-items:center;gap:7px;margin-top:8px;color:var(--muted);font-size:7px}.case-list-item footer time{margin-left:auto}.case-status{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid var(--border);border-radius:999px;font-size:7px;font-weight:750;text-transform:capitalize}.case-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.case-priority{display:inline-flex;padding:3px 6px;border:1px solid var(--border);border-radius:999px;font-size:6.8px;font-weight:750;text-transform:uppercase}.case-good{color:var(--green)}.case-warning{color:var(--amber)}.case-critical{color:var(--red)}.case-info{color:var(--primary)}.case-muted{color:var(--muted)}.case-detail{padding:0 12px 14px}.case-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 2px 13px;border-bottom:1px solid var(--border)}.case-kicker{color:var(--primary);font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.case-hero h2{margin:5px 0 4px;font-size:20px;letter-spacing:-.03em}.case-hero p{max-width:760px;margin:0;color:var(--muted);font-size:9px;line-height:1.5}.case-hero-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:7.5px}.case-hero-meta>span:last-child{display:flex;align-items:center;gap:4px}.case-report-actions{display:flex;align-items:flex-start;gap:7px}.case-integrity{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;margin:10px 0;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.case-integrity.verified>svg{color:var(--green)}.case-integrity.failed>svg{color:var(--red)}.case-integrity strong{display:block;font-size:8.5px}.case-integrity span{display:block;margin-top:2px;color:var(--muted);font-size:7px}.case-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.case-kpis article{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.case-kpis span{display:block;color:var(--muted);font-size:7px}.case-kpis strong{display:block;margin-top:4px;font-size:12px;text-transform:capitalize}.case-kpis em{display:block;margin-top:2px;color:var(--muted);font-size:6.7px;font-style:normal}.case-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;margin-top:10px}.case-controls form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.case-controls label,.case-inline-form,.case-reference-form{font-size:7.5px;color:var(--muted)}.case-controls label{display:flex;flex-direction:column;gap:4px}.case-controls input,.case-controls select,.case-controls textarea,.case-inline-form textarea,.case-reference-form input,.case-reference-form select,.case-reference-form textarea{width:100%;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--foreground);padding:7px 8px;font:inherit;outline:none}.case-controls input,.case-controls select,.case-reference-form input,.case-reference-form select{height:35px}.case-controls textarea,.case-inline-form textarea,.case-reference-form textarea{resize:vertical;line-height:1.45}.case-span-2{grid-column:1/-1}.case-form-actions{display:flex;align-items:center;gap:8px}.case-form-actions small{color:var(--muted);font-size:6.8px}.case-summary-panel dl{margin:0;padding:4px 12px 12px}.case-summary-panel dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border)}.case-summary-panel dl>div:first-child{border-top:0}.case-summary-panel dt{color:var(--muted);font-size:7px}.case-summary-panel dd{max-width:68%;margin:0;text-align:right;font-size:7px;font-weight:700}.case-hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;font-size:6px!important}.case-inline-form{padding:10px 12px;border-bottom:1px solid var(--border)}.case-inline-form button{margin-top:7px}.case-notes{max-height:350px;overflow:auto;padding:8px 12px 12px}.case-notes article{padding:9px 0;border-top:1px solid var(--border)}.case-notes article:first-child{border-top:0}.case-notes header{display:flex;justify-content:space-between;gap:8px}.case-notes strong{font-size:8px}.case-notes time{color:var(--muted);font-size:6.8px}.case-notes p{margin:5px 0 0;font-size:8px;line-height:1.55;white-space:pre-wrap}.case-reference-form{display:grid;grid-template-columns:130px 1fr;gap:7px;padding:10px 12px;border-bottom:1px solid var(--border)}.case-reference-form textarea{grid-column:1/-1}.case-reference-form button{justify-self:start}.case-references{max-height:350px;overflow:auto;padding:8px 12px 12px}.case-references article{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--border)}.case-references article:first-child{border-top:0}.case-references article>span{font-size:6.6px;font-weight:750;text-transform:uppercase;color:var(--primary)}.case-references strong{font-size:8px}.case-references p{margin:3px 0;color:var(--muted);font-size:7.3px;line-height:1.45;word-break:break-word}.case-references small{color:var(--muted);font-size:6.4px}.case-audit{margin-top:10px}.case-table-wrap{overflow:auto;padding:0 12px 12px}.case-table{width:100%;border-collapse:collapse;font-size:7px;min-width:680px}.case-table th{padding:7px;border-bottom:1px solid var(--border);color:var(--muted);font-weight:650;text-align:left}.case-table td{padding:7px;border-bottom:1px solid var(--border);vertical-align:top}.case-table td small{display:block;margin-top:2px;color:var(--muted);font-size:6px}.case-empty{display:flex;min-height:180px;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:20px;text-align:center;color:var(--muted)}.case-empty strong{color:var(--foreground);font-size:10px}.case-empty p{max-width:360px;margin:0;font-size:8px;line-height:1.5}.case-empty.compact{min-height:80px}.case-empty.detail,.case-detail-loading{min-height:560px}.case-detail-loading{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:9px}
@media(max-width:1180px){.case-workspace{grid-template-columns:260px minmax(0,1fr)}.case-grid{grid-template-columns:1fr}.case-summary-strip{grid-template-columns:repeat(5,1fr)}}
@media(max-width:820px){.case-boundary-note{grid-template-columns:28px 1fr}.case-boundary-note>span{grid-column:2}.case-workspace{grid-template-columns:1fr}.case-list{max-height:300px}.case-hero{grid-template-columns:1fr}.case-report-actions{justify-content:flex-start}.case-summary-strip{grid-template-columns:repeat(3,1fr)}.case-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.case-summary-strip{grid-template-columns:1fr 1fr}.case-summary-strip article:first-child{grid-column:1/-1}.case-detail{padding:0 8px 10px}.case-hero h2{font-size:17px}.case-report-actions{flex-wrap:wrap}.case-kpis{grid-template-columns:1fr 1fr}.case-controls form{grid-template-columns:1fr}.case-span-2{grid-column:auto}.case-form-actions{align-items:flex-start;flex-direction:column}.case-reference-form{grid-template-columns:1fr}.case-reference-form textarea{grid-column:auto}.case-empty.detail,.case-detail-loading{min-height:320px}}

/* ==========================================================================
   v0.20B — Dashboard statistical visualization polish
   Preserves v0.19 shadcn/Vercel shell; upgrades data density and interaction.
   ========================================================================== */
.kpi-card{min-height:194px}
.kpi-range{margin-top:8px}
.kpi-range-track{position:relative;height:6px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--metric) 5%,var(--surface-muted));overflow:visible}
.kpi-range-track:before{content:"";position:absolute;inset:1px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--metric) 4%,transparent),color-mix(in srgb,var(--metric) 15%,transparent));opacity:.9}
.kpi-range-average,.kpi-range-current{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}
.kpi-range-average{width:1px;height:10px;background:var(--muted-2)}
.kpi-range-current{width:8px;height:8px;border:2px solid var(--surface);border-radius:50%;background:var(--metric);box-shadow:0 0 0 1px color-mix(in srgb,var(--metric) 35%,var(--border))}
.kpi-range-labels{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:4px;color:var(--muted);font-size:6.8px;font-variant-numeric:tabular-nums}.kpi-range-labels span:nth-child(2){text-align:center}.kpi-range-labels span:last-child{text-align:right}
.kpi-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:auto;padding-top:7px;border-top:1px solid var(--border)}
.kpi-footer .kpi-trend{margin:0;min-height:0;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kpi-evidence{display:inline-flex;align-items:center;gap:4px;flex:none;padding:3px 4px;border:0;border-radius:5px;background:transparent;color:var(--muted);font:inherit;font-size:6.8px;cursor:pointer;white-space:nowrap}.kpi-evidence:hover{background:var(--surface-hover);color:var(--foreground)}.kpi-evidence b{font-weight:650;color:var(--foreground)}.kpi-evidence .icon{color:var(--muted)}
.lineage-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted-2);box-shadow:0 0 0 1px var(--border)}.lineage-measured{background:var(--green)}.lineage-simulated{background:var(--amber)}.lineage-replay{background:var(--primary)}.lineage-interpolated{background:transparent;border:1px dashed var(--primary);box-shadow:none}.lineage-forecast{background:var(--purple,var(--primary))}

/* Native-scale synchronized Weather Trend panes */
.multi-chart{min-height:238px}
.weather-pane-bg{fill:color-mix(in srgb,var(--surface-muted) 42%,transparent)}
.chart-grid-soft{opacity:.58}
.weather-pane-label{font-size:7.8px;font-weight:680;letter-spacing:.01em}
.chart-average{stroke:var(--muted-2);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.chart-reference-label{fill:var(--muted);font-size:6.5px;font-weight:560}
.chart-extrema{fill:var(--surface);stroke:var(--metric);stroke-width:1.4;vector-effect:non-scaling-stroke}.chart-extrema-max{fill:var(--metric)}
.chart-tooltip{width:min(230px,calc(100% - 16px))}
.tooltip-provenance{display:flex;align-items:center;gap:5px;margin-top:7px;padding-top:6px;border-top:1px solid var(--border);color:var(--muted);font-size:6.9px;line-height:1.35}

/* Metric statistical detail drawer */
.metric-detail-backdrop{position:fixed;z-index:85;inset:0;background:rgba(15,23,42,.24);backdrop-filter:blur(2px)}
.metric-detail-drawer{position:fixed;z-index:90;top:0;right:0;width:min(590px,100vw);height:100vh;display:flex;flex-direction:column;border-left:1px solid var(--border-strong);background:var(--surface);box-shadow:-18px 0 50px rgba(15,23,42,.14);animation:drawer-in .18s ease-out}
.metric-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--border)}
.metric-detail-heading{display:flex;align-items:flex-start;gap:11px}.metric-detail-heading>div{min-width:0}.metric-detail-heading>div>span{display:block;color:var(--muted);font-size:7.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.metric-detail-heading h2{margin:3px 0 3px;font-size:18px;letter-spacing:-.025em}.metric-detail-heading p{margin:0;color:var(--muted);font-size:8px}.metric-detail-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--metric) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--metric) 15%,var(--border));color:var(--metric)}
.metric-detail-content{flex:1;overflow:auto;padding:12px 14px 18px}
.metric-detail-current{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px}.metric-detail-current>div{min-height:82px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.metric-detail-current small{display:block;color:var(--muted);font-size:7px}.metric-detail-current strong{display:block;margin-top:5px;font-size:14px;font-variant-numeric:tabular-nums}.metric-detail-current strong em{font-size:8px;font-style:normal;color:var(--muted)}.metric-detail-current>div>span{display:block;margin-top:4px;color:var(--muted);font-size:6.8px;line-height:1.45}
.metric-severity{display:inline-flex!important;width:max-content;padding:2px 5px;border:1px solid var(--border);border-radius:999px;font-size:6.4px!important;font-weight:700!important}.metric-severity-normal{color:var(--green)}.metric-severity-warning{color:var(--amber)}.metric-severity-critical{color:var(--red)}.metric-severity-unknown{color:var(--muted)}
.metric-detail-range{margin-top:9px;padding:10px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.metric-detail-range-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:7px;color:var(--muted)}.metric-detail-range-head strong{color:var(--foreground);font-size:8px}.metric-detail-range-track{position:relative;height:7px;margin-top:11px;border:1px solid var(--border);border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--metric) 4%,var(--surface-muted)),color-mix(in srgb,var(--metric) 16%,var(--surface-muted)))}.metric-detail-avg,.metric-detail-current-marker{position:absolute;top:50%;transform:translate(-50%,-50%)}.metric-detail-avg{width:1px;height:14px;background:var(--muted-2)}.metric-detail-current-marker{width:10px;height:10px;border:2px solid var(--surface);border-radius:50%;background:var(--metric);box-shadow:0 0 0 1px color-mix(in srgb,var(--metric) 40%,var(--border))}.metric-detail-range-legend{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;margin-top:5px;color:var(--muted);font-size:6.5px}.metric-detail-range-legend span:nth-child(2),.metric-detail-range-legend span:nth-child(3){text-align:center}.metric-detail-range-legend span:last-child{text-align:right}
.metric-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}.metric-detail-stats article{padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.metric-detail-stats span{display:block;color:var(--muted);font-size:6.8px}.metric-detail-stats strong{display:block;margin-top:4px;font-size:10px;font-variant-numeric:tabular-nums}
.metric-detail-chart-panel{margin-top:9px;overflow:hidden}.metric-detail-chart-panel .panel-header{min-height:48px}.metric-detail-chart-note{color:var(--muted);font-size:7px}.metric-detail-chart{padding:0 8px 8px}.metric-detail-chart .simple-chart{width:100%;min-height:190px}
.metric-detail-evidence{display:grid;grid-template-columns:1fr;gap:6px;margin-top:9px}.metric-detail-evidence>div{display:grid;grid-template-columns:24px 1fr;gap:7px;align-items:start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.metric-detail-evidence>div>span{display:grid;place-items:center;color:var(--metric)}.metric-detail-evidence p{margin:0;color:var(--muted);font-size:7px;line-height:1.45}.metric-detail-evidence b{display:block;margin-bottom:2px;color:var(--foreground);font-size:7.5px}
.metric-detail-footer{display:flex;justify-content:flex-end;gap:7px;padding:11px 14px;border-top:1px solid var(--border);background:var(--surface)}

@media(max-width:700px){.kpi-card{min-height:188px}.metric-detail-drawer{top:auto;bottom:0;width:100vw;height:min(90vh,820px);border-left:0;border-top:1px solid var(--border-strong);border-radius:16px 16px 0 0;animation:drawer-up .18s ease-out}.metric-detail-current{grid-template-columns:1fr 1fr}.metric-detail-current>div:last-child{grid-column:1/-1}.metric-detail-stats{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.kpi-footer{align-items:flex-end}.kpi-evidence{font-size:6.5px}.metric-detail-current{grid-template-columns:1fr}.metric-detail-current>div:last-child{grid-column:auto}.metric-detail-stats{grid-template-columns:1fr 1fr}.metric-detail-footer{justify-content:stretch}.metric-detail-footer button{flex:1}}

/* ========================================================================== 
   v0.20C — Final Metric Card System · Minimal Analytical
   Preserves the v0.19 shadcn/Vercel shell while upgrading data presentation.
   ========================================================================== */
.kpi-card{
  min-height:232px;
  padding:13px 13px 11px;
  border-color:var(--border);
  background:var(--surface);
  overflow:hidden;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.kpi-card:before{display:none!important}
.kpi-card:hover{
  border-color:color-mix(in srgb,var(--metric) 22%,var(--border));
  box-shadow:0 6px 18px rgba(15,23,42,.055);
}
:root[data-theme="dark"] .kpi-card:hover{box-shadow:0 7px 20px rgba(0,0,0,.16)}
.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}
.kpi-identity{display:flex;align-items:center;min-width:0;gap:7px}
.kpi-icon{
  width:18px!important;
  height:18px!important;
  display:inline-grid!important;
  place-items:center;
  flex:none;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--metric)!important;
  box-shadow:none!important;
}
.kpi-icon .metric-symbol{width:18px;height:18px;display:block;color:var(--metric)!important}
.kpi-label{font-size:9.2px;color:var(--foreground);font-weight:620;letter-spacing:-.005em}
.metric-status{display:inline-flex;align-items:center;min-height:19px;padding:2px 6px;border:1px solid var(--border);border-radius:999px;font-size:6.7px;font-weight:700;line-height:1;text-transform:none;white-space:nowrap}
.metric-status-normal{color:var(--green);background:color-mix(in srgb,var(--green-soft) 65%,var(--surface))}
.metric-status-warning{color:var(--amber);background:color-mix(in srgb,var(--amber-soft) 62%,var(--surface));border-color:color-mix(in srgb,var(--amber) 18%,var(--border))}
.metric-status-critical{color:var(--red);background:color-mix(in srgb,var(--red-soft) 65%,var(--surface));border-color:color-mix(in srgb,var(--red) 18%,var(--border))}
.metric-status-unknown{color:var(--muted);background:var(--surface-muted)}
.kpi-value{margin-top:9px;font-size:23px;line-height:1.04;color:var(--foreground);font-weight:720;letter-spacing:-.034em}
.kpi-value span{font-size:9.5px;color:var(--muted);font-weight:620;letter-spacing:0}
.kpi-delta{display:flex;align-items:center;gap:3px;min-height:16px;margin-top:4px;font-size:7.3px;font-weight:590;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-card .kpi-delta.trend-up,.kpi-card .kpi-delta.trend-down{color:var(--metric)!important}
.kpi-card .kpi-delta.trend-flat{color:var(--muted)!important}
.kpi-delta .icon{flex:none}
.kpi-mini-visual{height:34px;margin-top:7px;color:var(--metric)}
.kpi-mini-chart{display:block;width:100%;height:34px;overflow:visible;color:var(--metric)}
.kpi-mini-path{fill:none;stroke:var(--metric);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.kpi-mini-fill{pointer-events:none}
.kpi-mini-current{fill:var(--surface);stroke:var(--metric);stroke-width:1.6}
.kpi-mini-bars rect{fill:var(--metric);opacity:.72}
.kpi-mini-threshold{stroke-width:.8;stroke-dasharray:3 2;opacity:.72}
.kpi-mini-threshold.warning{stroke:var(--amber)}
.kpi-mini-threshold.critical{stroke:var(--red)}
.kpi-mini-empty{height:34px;display:flex;align-items:center;color:var(--muted);font-size:6.7px}
.kpi-statline{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px;padding-top:0;border-top:0}
.kpi-statline span{display:flex;flex-direction:column;gap:1px;color:var(--foreground);font-size:8.1px;font-variant-numeric:tabular-nums}
.kpi-statline b{color:var(--muted);font-size:6.5px;font-weight:630;text-transform:uppercase;letter-spacing:.045em}
.kpi-range{margin-top:7px}
.kpi-range-track{position:relative;height:4px;border:0;border-radius:999px;background:var(--surface-muted);overflow:visible}
.kpi-range-track:before{display:none!important}
.kpi-range-average,.kpi-range-current,.kpi-range-threshold{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}
.kpi-range-average{width:1px;height:9px;background:var(--muted-2)}
.kpi-range-current{width:8px;height:8px;border:2px solid var(--surface);border-radius:50%;background:var(--metric);box-shadow:0 0 0 1px color-mix(in srgb,var(--metric) 36%,var(--border))}
.kpi-range-threshold{width:1px;height:8px;opacity:.78}
.kpi-range-threshold.warning{background:var(--amber)}
.kpi-range-threshold.critical{background:var(--red)}
.kpi-range-labels{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:4px;color:var(--muted);font-size:6.4px;font-variant-numeric:tabular-nums}
.kpi-range-labels span:nth-child(2){text-align:center}
.kpi-range-labels span:last-child{text-align:right}
.kpi-trust-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:7px;border-top:1px solid var(--border)}
.kpi-lineage{display:flex;align-items:center;min-width:0;gap:4px;color:var(--muted);font-size:6.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-lineage i{font-style:normal;color:var(--muted-2)}
.kpi-evidence{display:inline-flex;align-items:center;gap:4px;flex:none;padding:3px 4px;border:0;border-radius:5px;background:transparent;color:var(--muted);font:inherit;font-size:6.6px;cursor:pointer;white-space:nowrap}
.kpi-evidence:hover{background:var(--surface-hover);color:var(--foreground)}
.kpi-evidence b{font-weight:670;color:var(--foreground)}
.kpi-evidence .icon{color:var(--muted)}

/* Detail drawer follows the same no-box icon language. */
.metric-detail-icon{
  width:23px!important;
  height:23px!important;
  display:grid!important;
  place-items:center;
  flex:none;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--metric)!important;
}
.metric-detail-icon .metric-symbol{width:22px;height:22px;color:var(--metric)!important}

@media(max-width:700px){
  .kpi-card{min-height:225px}
  .kpi-mini-visual,.kpi-mini-chart{height:30px}
}
@media(max-width:460px){
  .kpi-card{min-height:218px;padding:13px 14px 11px}
  .kpi-value{font-size:25px}
  .kpi-mini-visual,.kpi-mini-chart{height:31px}
  .kpi-statline span{font-size:8.5px}
}
@media(prefers-reduced-motion:reduce){.kpi-card{transition:none}}

/* ========================================================================== 
   v0.20.3 — Dashboard Final Context & Interaction Pass
   Typography and responsive KPI grid are intentionally untouched.
   ========================================================================== */

/* KPI: remove duplicate AVG/MIN/MAX row; range now carries the context. */
.kpi-range-labels-context span:nth-child(2){font-weight:650;color:var(--foreground)}

/* Weather Trend: realtime ranges + explicit series focus, same shadcn/Vercel shell. */
.trend-panel-v203{min-height:410px}
.trend-chart-wrap{padding-bottom:2px}
.trend-panel-v203 .multi-chart{min-height:286px}
.trend-panel-v203 .simple-chart{min-height:286px}
.weather-trend-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.weather-live-indicator{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 7px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--green-soft) 52%,var(--surface));color:var(--green);font-size:7px;font-weight:720;white-space:nowrap}
.weather-live-indicator i{width:5px;height:5px;border-radius:50%;background:currentColor}
.trend-control-group{display:flex;align-items:center;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}
.trend-control{height:22px;padding:0 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font:inherit;font-size:7px;font-weight:620;cursor:pointer;white-space:nowrap}
.trend-control:hover{color:var(--foreground)}
.trend-control.active{background:var(--surface);color:var(--foreground);box-shadow:0 1px 2px rgba(15,23,42,.08)}
:root[data-theme="dark"] .trend-control.active{box-shadow:0 1px 2px rgba(0,0,0,.2)}
.chart-legend.detailed .muted-series{opacity:.38}

/* Water risk context: current position is separate from historical trend. */
.water-risk-scale{margin:8px 15px 4px;padding-top:3px}
.water-risk-track{position:relative;height:5px;border-radius:999px;background:var(--surface-muted);overflow:visible}
.risk-zone{position:absolute;top:0;height:100%}
.risk-zone-normal{left:0;border-radius:999px 0 0 999px;background:color-mix(in srgb,var(--green) 15%,var(--surface-muted))}
.risk-zone-warning{background:color-mix(in srgb,var(--amber) 17%,var(--surface-muted))}
.risk-zone-critical{border-radius:0 999px 999px 0;background:color-mix(in srgb,var(--red) 15%,var(--surface-muted))}
.water-risk-current,.water-risk-marker{position:absolute;top:50%;z-index:3;transform:translate(-50%,-50%)}
.water-risk-current{width:9px;height:9px;border:2px solid var(--surface);border-radius:50%;background:#2563eb;box-shadow:0 0 0 1px color-mix(in srgb,#2563eb 35%,var(--border))}
.water-risk-marker{width:1px;height:10px;opacity:.9}
.water-risk-marker.warning{background:var(--amber)}
.water-risk-marker.critical{background:var(--red)}
.water-risk-labels{position:relative;height:15px;margin-top:5px;color:var(--muted);font-size:6.4px;font-variant-numeric:tabular-nums}
.water-risk-labels>span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.water-risk-labels>span:first-child{left:0;transform:none}

/* Secondary dashboard metrics follow the no-box symbol language, but stay compact. */
.insight-icon{width:24px!important;height:24px!important;display:grid!important;place-items:center;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--metric)!important}
.insight-icon .metric-symbol,.insight-icon .quality-symbol{width:22px;height:22px;color:var(--metric)!important}
.insight-head{gap:8px}

/* Dashboard table is intentionally concise; full telemetry remains on History. */
.latest-table-dashboard{min-width:520px}

@media(max-width:1080px){
  .trend-panel-v203{min-height:395px}
  .weather-trend-controls{justify-content:flex-start}
}
@media(max-width:700px){
  .trend-panel-v203{min-height:390px}
  .weather-trend-controls{width:100%;justify-content:flex-start;gap:5px}
  .weather-live-indicator{order:3}
  .trend-control{padding:0 6px}
  .trend-panel-v203 .multi-chart,.trend-panel-v203 .simple-chart{min-height:270px}
}
@media(max-width:460px){
  .trend-control-group{max-width:100%;overflow-x:auto}
  .trend-range-group{order:2}
  .weather-live-indicator{order:1}
  .latest-table-dashboard{min-width:470px}
}

/* v0.21 — Realtime Monitor polish. Keeps v0.20.4 shell/typography, upgrades telemetry data composition only. */
.realtime-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.realtime-range-controls{display:flex;align-items:center;gap:7px}
.realtime-live-indicator{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:8px;font-weight:650;white-space:nowrap}
.realtime-live-indicator i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}
.realtime-section-heading{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 9px}
.realtime-section-heading h2{margin:0;font-size:11px;font-weight:670;letter-spacing:-.01em}
.realtime-section-heading p{margin:3px 0 0;color:var(--muted);font-size:7.5px}
.realtime-telemetry-section{min-width:0}
.transport-section{display:flex;flex-direction:column;gap:0}
.transport-card{grid-template-columns:24px minmax(0,1fr);min-height:88px;position:relative;overflow:hidden}
.transport-card>.transport-icon{width:24px;height:24px;display:grid;place-items:center;border:0!important;border-radius:0!important;background:transparent!important;color:var(--primary)}
.transport-card.transport-good>.transport-icon{color:var(--green)}.transport-card.transport-warning>.transport-icon{color:var(--amber)}.transport-card.transport-critical>.transport-icon{color:var(--red)}
.transport-card:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:999px;background:var(--border)}
.transport-card.transport-good:after{background:color-mix(in srgb,var(--green) 55%,var(--border))}.transport-card.transport-warning:after{background:color-mix(in srgb,var(--amber) 58%,var(--border))}.transport-card.transport-critical:after{background:color-mix(in srgb,var(--red) 58%,var(--border))}
.telemetry-card{min-height:286px;padding:14px;display:flex;flex-direction:column;overflow:hidden;border-color:color-mix(in srgb,var(--metric) 8%,var(--border));transition:border-color .15s ease,box-shadow .15s ease}
.telemetry-card:hover{border-color:color-mix(in srgb,var(--metric) 22%,var(--border));box-shadow:var(--shadow)}
.telemetry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.telemetry-identity{min-width:0;display:flex;align-items:center;gap:8px}
.telemetry-icon{width:auto!important;height:auto!important;display:grid;place-items:center;border:0!important;border-radius:0!important;background:transparent!important;color:var(--metric)!important;flex:none}
.telemetry-identity>div{min-width:0;display:flex;flex-direction:column;gap:2px}.telemetry-identity>div>span{color:var(--foreground);font-size:9px;font-weight:620}.telemetry-identity>div>small{color:var(--muted);font-size:6.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.telemetry-current{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:9px}.telemetry-current>strong{font-size:20px;font-weight:720;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.telemetry-current>strong small{font-size:9px;font-weight:550;color:var(--muted)}.telemetry-current>span,.direction-current>span{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:7px;white-space:nowrap}
.telemetry-chart{min-height:142px;margin-top:10px;display:flex;align-items:stretch}.telemetry-chart>.interactive-chart{width:100%}
.telemetry-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.telemetry-summary>span{min-width:0;display:flex;flex-direction:column;gap:2px}.telemetry-summary small{color:var(--muted);font-size:6.2px;letter-spacing:.025em}.telemetry-summary b{font-size:8.2px;font-weight:660;font-variant-numeric:tabular-nums}
.telemetry-trust{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;color:var(--muted);font-size:6.8px}.telemetry-trust>span{min-width:0;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.telemetry-trust>b{flex:none;color:var(--foreground);font-size:6.9px;font-weight:680}
.telemetry-channel-state{margin-left:auto;flex:none}.telemetry-card .chart-gradient-area path[fill^="url("]{opacity:1}
.direction-card{--metric:#14b8a6}.direction-current{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:9px}.direction-current>strong{font-size:20px;font-weight:720;letter-spacing:-.025em}.direction-current>strong small{font-size:9px;color:var(--muted);font-weight:550}.direction-card .direction-body{min-height:140px;margin-top:4px}.direction-card .direction-body .compass{transform:scale(.78)}
.channel-icon{width:26px!important;height:26px!important;display:grid;place-items:center;border:0!important;border-radius:0!important;background:transparent!important;color:var(--metric)!important}.channel-row{transition:background .14s ease}.channel-row:hover{background:var(--surface-hover)}.channel-row-good{background:color-mix(in srgb,var(--green-soft) 14%,var(--surface))}.channel-row-critical{background:color-mix(in srgb,var(--red-soft) 12%,var(--surface))}.channel-row-warning{background:color-mix(in srgb,var(--amber-soft) 12%,var(--surface))}
.packet-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted)}.packet-overview>span{min-height:52px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:8px 13px;border-right:1px solid var(--border)}.packet-overview>span:last-child{border-right:0}.packet-overview small{color:var(--muted);font-size:6.8px}.packet-overview strong{font-size:9px;font-weight:670;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.realtime-header-actions{width:100%;justify-content:space-between}.realtime-section-heading{align-items:flex-start;flex-direction:column}.telemetry-head{padding-right:0!important}.telemetry-channel-state{position:static!important}.packet-overview{grid-template-columns:repeat(2,1fr)}.packet-overview>span:nth-child(2){border-right:0}.packet-overview>span:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media(max-width:700px){.realtime-header-actions{align-items:flex-start;flex-direction:column}.realtime-range-controls{width:100%;justify-content:space-between}.realtime-range-controls .trend-control-group{flex:1;display:grid;grid-template-columns:repeat(4,1fr)}.realtime-range-controls .trend-control{min-width:0}.telemetry-card{min-height:272px}.telemetry-current>strong,.direction-current>strong{font-size:19px}}
@media(max-width:460px){.packet-overview{grid-template-columns:1fr 1fr}.telemetry-card{min-height:260px}.realtime-grid{gap:10px}}


/* v0.22 — Analytics Visualization Polish. Existing WeatherGrid shell/typography remain authoritative. */
.analytics-page-v22{--analytics-purple:#7c3aed;--analytics-purple-soft:color-mix(in srgb,var(--analytics-purple) 12%,transparent)}
.analytics-tabs{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);overflow-x:auto;scrollbar-width:none}.analytics-tabs::-webkit-scrollbar{display:none}.analytics-tab{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;height:30px;padding:0 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:8px;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.analytics-tab .technical-symbol{color:currentColor}.analytics-tab:hover{color:var(--text);background:var(--surface)}.analytics-tab.active{color:var(--text);background:var(--surface);border-color:var(--border-strong);box-shadow:0 1px 2px rgba(15,23,42,.04)}
.analytics-workspace{display:flex;flex-direction:column;gap:10px}.analytics-kpi-grid-v22 article{position:relative}.analytics-summary-card{overflow:hidden}.analytics-summary-label{display:flex;align-items:center;gap:6px;color:var(--muted)}.analytics-summary-label .technical-symbol{color:var(--primary)}.analytics-summary-card.summary-quality .technical-symbol,.analytics-summary-card.summary-trust .technical-symbol{color:var(--green)}.analytics-summary-card.summary-forecast .technical-symbol{color:var(--analytics-purple)}.analytics-summary-card.summary-baseline .technical-symbol{color:var(--primary)}.analytics-summary-card.summary-calibration .technical-symbol{color:var(--analytics-purple)}.analytics-summary-meter{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--surface-muted)}.analytics-summary-meter i{display:block;height:100%;background:var(--primary)}.summary-quality .analytics-summary-meter i,.summary-trust .analytics-summary-meter i{background:var(--green)}.summary-calibration .analytics-summary-meter i{background:var(--analytics-purple)}
.analytics-environment-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:10px}.derived-metric-grid-v22>div{position:relative}.derived-symbol{display:inline-grid;color:var(--derived);margin-bottom:5px}.derived-symbol .technical-symbol{color:inherit}.derived-metric-grid-v22>div>span:first-child{background:transparent;border:0;width:auto;height:auto;border-radius:0}
.quality-top-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.quality-overview-head{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center;padding:0 12px 8px}.quality-overview-head>div>small{display:block;color:var(--muted);font-size:7px}.quality-overview-head>div>strong{display:block;font-size:22px;line-height:1.05}.quality-overview-head>div>strong span{font-size:8px;color:var(--muted)}.quality-overview-head>div>em{display:block;margin-top:3px;color:var(--muted);font-size:7px;font-style:normal}.quality-overview-head dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0;border:1px solid var(--border);border-radius:7px;overflow:hidden}.quality-overview-head dl div{padding:8px;border-right:1px solid var(--border)}.quality-overview-head dl div:last-child{border-right:0}.quality-overview-head dt{color:var(--muted);font-size:6.5px}.quality-overview-head dd{margin:3px 0 0;font-size:11px;font-weight:750}.quality-timeline-v22{padding:0 12px 10px}.quality-timeline-v22 svg{display:block;width:100%}.quality-track{stroke:var(--border-strong);stroke-width:2;vector-effect:non-scaling-stroke}.quality-sample{vector-effect:non-scaling-stroke}.quality-measured{fill:var(--primary);stroke:var(--surface);stroke-width:.8}.quality-interpolated{fill:var(--surface);stroke:var(--amber);stroke-width:1.5}.quality-gap{fill:color-mix(in srgb,var(--amber) 24%,transparent)}.quality-anomaly{fill:var(--red)}.quality-timeline-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:7px}.quality-timeline-legend span{display:flex;align-items:center;gap:4px}.quality-timeline-legend i{display:inline-block;width:9px;height:6px;border-radius:999px}.quality-timeline-legend .measured{background:var(--primary)}.quality-timeline-legend .interpolated{background:transparent;border:1px solid var(--amber)}.quality-timeline-legend .missing{background:color-mix(in srgb,var(--amber) 30%,transparent);border-radius:2px}.quality-timeline-legend .anomaly{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:7px solid var(--red);border-radius:0}
.correlation-scatter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.correlation-scatter-card{overflow:hidden}.correlation-stat{text-align:right}.correlation-stat strong{display:block;font-size:13px}.correlation-stat span{display:block;color:var(--muted);font-size:6.5px}.correlation-scatter{display:block;width:100%;padding:0 8px 8px}.scatter-axis{stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}.scatter-dot{fill:var(--scatter);fill-opacity:.54;stroke:var(--surface);stroke-width:.6;vector-effect:non-scaling-stroke}.relationship-note-body{display:flex;gap:10px;align-items:flex-start;padding:0 12px 12px;color:var(--muted)}.relationship-note-body .technical-symbol{flex:0 0 auto;color:var(--primary)}.relationship-note-body p{margin:0;font-size:8px;line-height:1.55}
.forecast-visual-panel{overflow:hidden}.forecast-visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--border)}.forecast-visual-grid>section{padding:10px 12px}.forecast-visual-grid>section:first-child{border-right:1px solid var(--border)}.forecast-visual-grid header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.forecast-visual-grid header strong{font-size:8px}.forecast-visual-grid header span{margin-left:auto;color:var(--muted);font-size:6.5px;text-transform:uppercase}.forecast-projection-chart{display:block;width:100%}.forecast-band-v22{fill:color-mix(in srgb,var(--analytics-purple) 16%,transparent)}.forecast-observed-line{fill:none;stroke:var(--metric);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.forecast-predicted-line{fill:none;stroke:var(--analytics-purple);stroke-width:1.8;stroke-dasharray:5 4;stroke-linecap:round;vector-effect:non-scaling-stroke}.forecast-now-line{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.forecast-point{fill:var(--surface);stroke:var(--analytics-purple);stroke-width:1.6;vector-effect:non-scaling-stroke}.forecast-lineage-legend{display:flex;gap:14px;padding:7px 12px;border-top:1px solid var(--border);color:var(--muted);font-size:7px}.forecast-lineage-legend span{display:flex;align-items:center;gap:5px}.forecast-lineage-legend i{width:18px;height:2px}.forecast-lineage-legend .observed{background:var(--primary)}.forecast-lineage-legend .forecast{border-top:2px dashed var(--analytics-purple);height:0}.forecast-lineage-legend .band{height:6px;background:color-mix(in srgb,var(--analytics-purple) 16%,transparent);border-radius:2px}.forecast-chart-unavailable{min-height:165px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);text-align:left}.forecast-chart-unavailable p{margin:2px 0 0;font-size:7px;max-width:240px}.forecast-chart-unavailable strong{display:block;font-size:8px}.forecast-summary-v22{overflow:hidden}
.analytics-baseline-workspace .calibration-baseline-grid{grid-template-columns:.9fr 1.1fr}.analytics-baseline-workspace .longterm-analysis-grid{grid-template-columns:.8fr 1.2fr}
.methodology-disclosure{overflow:hidden}.methodology-disclosure>summary{display:flex;align-items:center;gap:8px;padding:11px 12px;cursor:pointer;list-style:none}.methodology-disclosure>summary::-webkit-details-marker{display:none}.methodology-disclosure>summary .technical-symbol{color:var(--muted)}.methodology-disclosure>summary span{min-width:0}.methodology-disclosure>summary strong{display:block;font-size:8px}.methodology-disclosure>summary small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}.methodology-disclosure>summary>.icon{margin-left:auto;color:var(--muted);transition:transform .15s ease}.methodology-disclosure[open]>summary>.icon{transform:rotate(180deg)}.methodology-disclosure .methodology-grid{border-top:1px solid var(--border)}
@media(max-width:1280px){.analytics-environment-grid,.quality-top-grid{grid-template-columns:1fr}.correlation-scatter-grid{grid-template-columns:1fr 1fr}.correlation-scatter-card:last-child{grid-column:1/-1}.forecast-visual-grid{grid-template-columns:1fr}.forecast-visual-grid>section:first-child{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:820px){.analytics-tabs{margin-inline:-1px}.analytics-tab{height:29px;padding:0 9px}.quality-overview-head{grid-template-columns:1fr}.quality-overview-head dl{grid-template-columns:1fr 1fr}.quality-overview-head dl div:nth-child(2){border-right:0}.quality-overview-head dl div:nth-child(-n+2){border-bottom:1px solid var(--border)}.correlation-scatter-grid{grid-template-columns:1fr}.correlation-scatter-card:last-child{grid-column:auto}.forecast-visual-grid{grid-template-columns:1fr}.analytics-baseline-workspace .calibration-baseline-grid,.analytics-baseline-workspace .longterm-analysis-grid{grid-template-columns:1fr}}
@media(max-width:520px){.analytics-kpi-grid-v22{grid-template-columns:1fr 1fr}.analytics-tabs{gap:3px}.analytics-tab{font-size:7px}.analytics-tab .technical-symbol{width:14px;height:14px}.quality-overview-head dl{grid-template-columns:1fr 1fr}.quality-timeline-legend{gap:8px}.forecast-lineage-legend{flex-wrap:wrap}.derived-metric-grid-v22{grid-template-columns:1fr 1fr}.correlation-scatter{padding-inline:2px}}

.analytics-kpi-grid-v22{grid-template-columns:repeat(6,minmax(0,1fr))}.analytics-page-v22 .sensor-trust-row>span{width:auto;height:auto;display:block;background:transparent;border-radius:0;color:inherit}.analytics-page-v22 .sensor-trust-row>span .metric-symbol{display:block}
@media(max-width:1280px){.analytics-kpi-grid-v22{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.analytics-kpi-grid-v22{grid-template-columns:1fr 1fr}}


/* ==========================================================================
   v0.22.1 — Analytics Summary Row Fix
   Desktop summary strip is count-aware: every current summary card shares one
   row. No card is promoted to a separate visual tier.
   ========================================================================== */
.analytics-kpi-grid-v22{
  grid-template-columns:repeat(var(--analytics-summary-count,6),minmax(0,1fr));
  gap:8px;
}
.analytics-kpi-grid-v22 .analytics-summary-card{
  min-width:0;
  padding-inline:12px;
}
.analytics-kpi-grid-v22 .analytics-summary-label{min-width:0}
.analytics-kpi-grid-v22 .analytics-summary-label span,
.analytics-kpi-grid-v22 .analytics-summary-card em{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:1180px){
  .analytics-kpi-grid-v22{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .analytics-kpi-grid-v22{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .analytics-kpi-grid-v22{grid-template-columns:1fr}
  .analytics-kpi-grid-v22 article:last-child{grid-column:auto}
}


/* ==========================================================================
   v0.22.2 — Full Analytics Summary Strip Integrity
   Prevents the legacy 5+1 layout in the full Analytics page. The rendered
   summary count is authoritative on desktop; no final card receives a special
   span.
   ========================================================================== */
.analytics-page-v22 .analytics-kpi-grid-v22{
  display:grid;
  grid-template-columns:repeat(var(--analytics-summary-count,6),minmax(0,1fr));
  grid-auto-flow:row;
  align-items:stretch;
}
.analytics-page-v22 .analytics-kpi-grid-v22>article{grid-column:auto!important;min-width:0}
@media(max-width:1180px){
  .analytics-page-v22 .analytics-kpi-grid-v22{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .analytics-page-v22 .analytics-kpi-grid-v22{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .analytics-page-v22 .analytics-kpi-grid-v22{grid-template-columns:1fr}
}

/* v0.23 — Network Intelligence + Spatial/Map visualization polish */
.network-comparison-panel-v23{overflow:hidden}
.network-comparison-visual-v23{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 12px 12px}
.network-compare-card-v23{min-width:0;padding:11px 11px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.network-compare-head-v23{display:flex;align-items:flex-start;gap:7px;margin-bottom:5px}
.network-compare-head-v23>.metric-symbol{flex:0 0 auto;color:var(--metric)}
.network-compare-head-v23 strong{display:block;font-size:8.5px}
.network-compare-head-v23 small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px;line-height:1.35}
.network-compare-svg-v23{display:block;width:100%;height:auto;min-height:108px;overflow:visible}
.network-compare-svg-v23 text{fill:var(--muted);font-size:7px;font-weight:650}
.network-compare-axis-v23,.network-dot-row-v23 line{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}
.network-dot-row-v23 circle{fill:var(--metric);stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}
.network-dot-row-v23.is-outlier circle{fill:var(--amber);stroke:var(--amber);stroke-width:2.5}
.network-dot-row-v23.is-outlier .network-dot-value-v23{fill:var(--amber);font-weight:800}
.network-median-line-v23{stroke:var(--metric);stroke-width:1.2;stroke-dasharray:3 3;opacity:.75;vector-effect:non-scaling-stroke}
.network-dot-value-v23{fill:var(--foreground)!important;font-size:7px!important;font-weight:750!important}
.network-axis-label-v23{font-size:6px!important}
.network-compare-legend-v23{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--border);color:var(--muted);font-size:6px}
.network-compare-legend-v23 span{display:inline-flex;align-items:center;gap:4px}
.network-compare-legend-v23 i.station-dot,.network-compare-legend-v23 i.outlier-dot{width:7px;height:7px;border-radius:50%;background:var(--metric)}
.network-compare-legend-v23 i.outlier-dot{background:var(--amber)}
.network-compare-legend-v23 i.median-line{width:14px;height:0;border-top:1px dashed var(--metric)}
.network-table-subhead-v23{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid var(--border);background:var(--surface-muted)}
.network-table-subhead-v23 strong{font-size:7.5px}
.network-table-subhead-v23 span{color:var(--muted);font-size:6.5px}
.network-events-summary-v23{overflow:hidden}

.spatial-readiness-row-v23{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:start;padding:11px 0;border-top:1px solid var(--border)}
.spatial-readiness-row-v23:first-child{border-top:0}
.spatial-readiness-symbol-v23{padding-top:1px;color:var(--metric)}
.spatial-readiness-copy-v23>strong{display:block;font-size:8px}
.spatial-readiness-copy-v23>small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}
.readiness-gates-v23{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:7px}
.readiness-gates-v23>span{display:grid;grid-template-columns:7px auto;column-gap:4px;align-items:center;padding:4px 5px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}
.readiness-gates-v23 i{width:6px;height:6px;border-radius:50%;background:var(--muted)}
.readiness-gates-v23 .pass i{background:var(--green)}
.readiness-gates-v23 b{font-size:5.8px}
.readiness-gates-v23 em{grid-column:2;color:var(--muted);font-size:5.5px;font-style:normal}
.readiness-authority-v23{display:flex;gap:4px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.readiness-authority-v23>b{padding:3px 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:6px;white-space:nowrap}
.readiness-authority-v23>b.ready{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 30%,var(--border));color:var(--green)}
.network-finding-symbol-v23{display:inline-flex!important;align-items:center;justify-content:center!important;width:auto!important;height:auto!important;padding:2px 0;background:transparent!important;border-radius:0!important;color:var(--muted)}
.network-finding.finding-medium .network-finding-symbol-v23{background:transparent!important;color:var(--amber)}

.spatial-surface-wrap-v23{--spatial-metric:var(--primary)}
.spatial-value-legend-v23{padding:8px 10px;border-top:1px solid var(--border);background:var(--surface)}
.spatial-value-legend-head-v23{display:flex;justify-content:space-between;align-items:center;gap:10px}
.spatial-value-legend-head-v23 strong{font-size:7px}
.spatial-value-legend-head-v23 span{color:var(--muted);font-size:6px}
.spatial-gradient-bar-v23{height:8px;margin-top:6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
.spatial-gradient-labels-v23{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:3px;color:var(--muted);font-size:6px;font-variant-numeric:tabular-nums}
.spatial-gradient-labels-v23 span:nth-child(2){text-align:center}.spatial-gradient-labels-v23 span:last-child{text-align:right}
.spatial-coverage-key-v23{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:6px}
.spatial-coverage-key-v23 strong{color:var(--foreground);font-size:6px;margin-right:2px}
.spatial-coverage-key-v23 span{display:inline-flex;align-items:center;gap:4px}
.spatial-coverage-key-v23 i{width:11px;height:7px;border-radius:2px;background:var(--spatial-metric)}
.spatial-validation-visual-v23{--metric:var(--primary);padding:0 12px 10px;border-bottom:1px solid var(--border)}
.spatial-validation-visual-head-v23{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:4px}
.spatial-validation-visual-head-v23 strong{font-size:7px}.spatial-validation-visual-head-v23 span{font-size:6px;color:var(--muted)}
.spatial-validation-visual-v23 svg{display:block;width:100%;height:auto;min-height:118px}
.spatial-validation-visual-v23 svg text{fill:var(--muted);font-size:7px;font-weight:650}
.spatial-error-link-v23{stroke:var(--border-strong);stroke-width:2;vector-effect:non-scaling-stroke}
.spatial-observed-dot-v23{fill:var(--metric);stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}
.spatial-predicted-dot-v23{fill:var(--surface);stroke:var(--purple);stroke-width:2;vector-effect:non-scaling-stroke}
.spatial-error-value-v23{fill:var(--foreground)!important;font-size:6.5px!important;font-weight:750!important}
.spatial-validation-legend-v23{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:6px}
.spatial-validation-legend-v23 span{display:inline-flex;align-items:center;gap:4px}
.spatial-validation-legend-v23 i{width:7px;height:7px;border-radius:50%}
.spatial-validation-legend-v23 i.observed{background:var(--metric)}
.spatial-validation-legend-v23 i.predicted{background:var(--surface);border:2px solid var(--purple)}

.geo-map-shell-v23{--geo-metric:var(--primary)}
.geo-color-legend-v23{display:block;min-width:200px;max-width:280px;padding:8px 9px}
.geo-legend-title-v23{display:flex;justify-content:space-between;gap:8px;align-items:center}
.geo-legend-title-v23 strong{font-size:7px}.geo-legend-title-v23 span{font-size:6px;color:var(--muted)}
.geo-gradient-bar-v23{height:8px;margin-top:6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
.geo-gradient-labels-v23{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3px;color:var(--muted);font-size:6px;font-variant-numeric:tabular-nums}
.geo-gradient-labels-v23 span:nth-child(2){text-align:center}.geo-gradient-labels-v23 span:last-child{text-align:right}
.geo-coverage-key-v23{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:5.8px}
.geo-coverage-key-v23 span{display:inline-flex;align-items:center;gap:3px}
.geo-coverage-key-v23 i{width:10px;height:7px;border-radius:2px;background:var(--geo-metric)}

@media(max-width:1280px){.network-comparison-visual-v23{grid-template-columns:1fr}.network-compare-svg-v23{min-height:96px}}
@media(max-width:820px){.spatial-readiness-row-v23{grid-template-columns:22px minmax(0,1fr)}.readiness-authority-v23{grid-column:2;justify-content:flex-start}.network-table-subhead-v23{align-items:flex-start;flex-direction:column}.geo-color-legend-v23{max-width:calc(100% - 24px);min-width:0}.spatial-validation-visual-head-v23{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.readiness-gates-v23{grid-template-columns:1fr}.network-comparison-visual-v23{padding:0 8px 8px}.network-compare-card-v23{padding:9px 8px}.spatial-coverage-key-v23,.geo-coverage-key-v23{gap:6px}}

/* v0.23.1 — Network Geometry + Ordinary Kriging Sandbox */
.network-page-v231 .network-boundary-note{background:color-mix(in srgb,var(--primary) 3%,var(--surface))}
.network-main-grid-v231{grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr)}
.network-geometry-canvas-v231{padding:4px 12px 0}
.network-spatial-plot-v231{min-height:270px}
.network-grid-line-v231{stroke:var(--border);stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.network-hull-v231{fill:color-mix(in srgb,var(--primary) 5%,transparent);stroke:color-mix(in srgb,var(--primary) 52%,var(--border));stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.network-neighbor-edge-v231{stroke:color-mix(in srgb,var(--muted) 60%,transparent)!important;stroke-width:1.25;stroke-dasharray:none!important;vector-effect:non-scaling-stroke}
.network-centroid-v231 path,.network-centroid-v231 circle{stroke:var(--amber);fill:var(--surface);stroke-width:1.6;vector-effect:non-scaling-stroke}
.network-geometry-legend-v231{display:flex;gap:14px;flex-wrap:wrap;padding:4px 4px 10px;color:var(--muted);font-size:6.5px}
.network-geometry-legend-v231 span{display:flex;align-items:center;gap:5px}.network-geometry-legend-v231 i{display:block;width:14px;height:8px}
.network-geometry-legend-v231 .hull{border:1px dashed var(--primary);background:color-mix(in srgb,var(--primary) 7%,transparent)}
.network-geometry-legend-v231 .neighbor{height:1px;background:var(--muted)}
.network-geometry-legend-v231 .centroid{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--amber)}
.geometry-diagnostics-v231{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-top:1px solid var(--border);background:var(--surface-muted)}
.geometry-diagnostics-v231>span{padding:8px 10px;border-right:1px solid var(--border);min-width:0}.geometry-diagnostics-v231>span:last-child{border-right:0}
.geometry-diagnostics-v231 small{display:block;color:var(--muted);font-size:5.8px}.geometry-diagnostics-v231 b{display:block;margin-top:2px;font-size:7.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geometry-quality{font-weight:800}.quality-good{color:var(--green)}.quality-moderate{color:var(--amber)}.quality-poor{color:var(--red)}
.spatial-readiness-row-v231 .readiness-model-label-v231{margin-top:8px;color:var(--muted);font-size:5.7px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.spatial-readiness-row-v231 .readiness-gates-v23+.readiness-model-label-v231{margin-top:9px}
.network-model-grid-v231{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:10px}
.spatial-model-comparison-v231,.variogram-panel-v231,.kriging-uncertainty-v231{overflow:hidden}
.model-authority-row-v231{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 12px 10px}
.model-authority-badge-v231{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;border:1px solid var(--border);font-size:6px;font-weight:800;text-transform:capitalize;background:var(--surface-muted)}
.model-authority-badge-v231.ready{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,var(--border));background:var(--green-soft)}
.model-authority-badge-v231.experimental{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 30%,var(--border));background:var(--amber-soft)}
.model-authority-badge-v231.locked{color:var(--muted)}
.model-winner-v231{margin-left:auto;color:var(--muted);font-size:6.3px}.model-winner-v231 b{color:var(--text)}
.model-comparison-table-v231{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.model-comparison-table-v231>div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,.8fr) minmax(120px,.95fr);align-items:center;min-height:34px;border-top:1px solid var(--border);padding:0 12px;font-size:7px}
.model-comparison-table-v231>div:first-child{border-top:0}.model-comparison-table-v231 span{color:var(--muted)}.model-comparison-table-v231 b{text-align:right;font-size:7px}
.model-comparison-head-v231{background:var(--surface-muted);text-transform:uppercase;letter-spacing:.04em;font-size:5.9px!important}.model-comparison-head-v231 b{color:var(--muted)}
.model-comparison-note-v231{margin:0;padding:9px 12px 11px;color:var(--muted);font-size:6.3px;line-height:1.45}
.variogram-chart-v231{padding:2px 12px 0}.variogram-chart-v231 svg{display:block;width:100%;min-height:215px}
.variogram-axis-v231{stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}.variogram-grid-v231{stroke:var(--border);stroke-dasharray:3 4;vector-effect:non-scaling-stroke}
.variogram-fit-v231{fill:none;stroke:var(--purple);stroke-width:2;vector-effect:non-scaling-stroke}.variogram-point-v231{fill:var(--surface);stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}.variogram-pair-label-v231{font-size:6px;fill:var(--muted)}
.variogram-legend-v231{display:flex;gap:14px;padding:2px 4px 8px;color:var(--muted);font-size:6.2px}.variogram-legend-v231 span{display:flex;align-items:center;gap:5px}.variogram-legend-v231 i{width:14px;height:7px}.variogram-legend-v231 .empirical{border-radius:50%;width:7px;height:7px;border:2px solid var(--primary);background:var(--surface)}.variogram-legend-v231 .fitted{height:2px;background:var(--purple)}
.variogram-stats-v231{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--border);background:var(--surface-muted)}.variogram-stats-v231 span{padding:8px 9px;border-right:1px solid var(--border)}.variogram-stats-v231 span:last-child{border-right:0}.variogram-stats-v231 small{display:block;color:var(--muted);font-size:5.6px}.variogram-stats-v231 b{display:block;margin-top:2px;font-size:7px;text-transform:capitalize}
.variogram-candidates-v231{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:9px 12px 11px}.variogram-candidates-v231 span{padding:7px;border:1px solid var(--border);border-radius:7px;background:var(--surface-muted)}.variogram-candidates-v231 span.selected{border-color:color-mix(in srgb,var(--purple) 35%,var(--border));background:color-mix(in srgb,var(--purple) 5%,var(--surface))}.variogram-candidates-v231 b{display:block;font-size:6.8px;text-transform:capitalize}.variogram-candidates-v231 small{display:block;margin-top:2px;color:var(--muted);font-size:5.7px;line-height:1.4}
.variogram-empty-v231{display:flex;align-items:center;justify-content:center;gap:9px;min-height:170px;padding:20px;color:var(--muted)}.variogram-empty-v231 strong{display:block;color:var(--text);font-size:8px}.variogram-empty-v231 p{max-width:420px;margin:3px 0 0;font-size:6.5px;line-height:1.45}
.uncertainty-summary-v231{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.uncertainty-summary-v231 span{padding:9px 12px;border-right:1px solid var(--border)}.uncertainty-summary-v231 span:last-child{border-right:0}.uncertainty-summary-v231 small{display:block;color:var(--muted);font-size:5.8px}.uncertainty-summary-v231 b{display:block;margin-top:2px;font-size:8px;text-transform:capitalize}
.uncertainty-scale-v231{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:11px 12px 4px}.uncertainty-scale-v231>div{height:8px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 8%,var(--surface)),color-mix(in srgb,var(--purple) 52%,var(--surface)))}.uncertainty-scale-v231 span{font-size:5.8px;color:var(--muted)}.kriging-uncertainty-v231>p{margin:5px 12px 11px;color:var(--muted);font-size:6.3px;line-height:1.45}
.event-propagation-timeline-v231{position:relative;height:56px;margin:10px 14px 2px}.propagation-track-v231{position:absolute;left:0;right:0;top:19px;height:2px;background:var(--border)}.event-propagation-timeline-v231>span{position:absolute;top:8px;transform:translateX(-50%);display:grid;justify-items:center;gap:2px;min-width:42px}.event-propagation-timeline-v231 i{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-size:6px;font-style:normal;font-weight:800;box-shadow:0 0 0 3px var(--surface)}.event-propagation-timeline-v231 b{font-size:5.8px}.event-propagation-timeline-v231 small{font-size:5.2px;color:var(--muted)}
@media(max-width:1280px){.network-main-grid-v231,.network-model-grid-v231{grid-template-columns:1fr}.geometry-diagnostics-v231{grid-template-columns:repeat(4,1fr)}.geometry-diagnostics-v231>span:nth-child(4){border-right:0}.geometry-diagnostics-v231>span:nth-child(n+5){border-top:1px solid var(--border)}.variogram-stats-v231{grid-template-columns:repeat(3,1fr)}.variogram-stats-v231 span:nth-child(3){border-right:0}.variogram-stats-v231 span:nth-child(n+4){border-top:1px solid var(--border)}}
@media(max-width:720px){.geometry-diagnostics-v231{grid-template-columns:repeat(2,1fr)}.geometry-diagnostics-v231>span{border-top:1px solid var(--border)!important}.geometry-diagnostics-v231>span:nth-child(odd){border-right:1px solid var(--border)}.geometry-diagnostics-v231>span:nth-child(even){border-right:0}.uncertainty-summary-v231{grid-template-columns:1fr 1fr}.uncertainty-summary-v231 span:nth-child(2){border-right:0}.uncertainty-summary-v231 span:nth-child(n+3){border-top:1px solid var(--border)}.variogram-candidates-v231{grid-template-columns:1fr}.model-comparison-table-v231{overflow-x:auto}.model-comparison-table-v231>div{min-width:520px}}
.spatial-controls-v231{grid-template-columns:repeat(5,minmax(0,1fr))}
.spatial-controls-v231 select:disabled,.geo-controls-v231 select:disabled{opacity:.52;cursor:not-allowed;background:var(--surface-muted)}
.kriging-se-range-v231,.geo-se-range-v231{display:flex;justify-content:space-between;gap:8px;margin-top:5px;color:var(--muted);font-size:5.7px}
.geo-controls-v231{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1180px){.spatial-controls-v231{grid-template-columns:repeat(3,minmax(0,1fr))}.geo-controls-v231{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.spatial-controls-v231,.geo-controls-v231{grid-template-columns:1fr 1fr}}

/* v0.23.2 — Network Intelligence UX + Location Integrity + OpenLayers */
.network-page-v232{gap:12px}.network-tabs-v232{margin:0}.network-overview-grid-v232{align-items:stretch}.network-map-panel-v232{overflow:hidden}.network-context-map-v232{position:relative;min-height:360px;background:var(--surface-muted)}.network-ol-map-v232,.geo-openlayers-map-v232{width:100%;height:100%;min-height:360px;background:#e8eef5}.network-map-loading-v232{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:9px;pointer-events:none}.network-map-loading-v232[hidden]{display:none}.network-map-loading-v232.error{padding:24px;text-align:center;background:color-mix(in srgb,var(--surface) 90%,transparent)}.network-map-privacy-v232{position:absolute;right:8px;bottom:6px;z-index:4;padding:3px 6px;border-radius:4px;background:rgba(255,255,255,.88);color:#475467;font-size:6.8px}.network-stations-workspace-v232{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.coordinate-integrity-summary-v232{display:flex;gap:12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-muted)}.coordinate-integrity-summary-v232>span{display:flex;align-items:center;gap:6px}.coordinate-integrity-summary-v232 small{color:var(--muted);font-size:7px}.coordinate-badge{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:3px 7px;border-radius:999px;border:1px solid var(--border);font-size:6.8px;font-weight:750;white-space:nowrap}.coordinate-verified{color:var(--green);border-color:color-mix(in srgb,var(--green) 32%,var(--border));background:var(--green-soft)}.coordinate-approximate{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 36%,var(--border));background:var(--amber-soft)}.coordinate-unverified{color:#f97316;border-color:color-mix(in srgb,#f97316 36%,var(--border));background:color-mix(in srgb,#f97316 9%,var(--surface))}.coordinate-unconfigured{color:var(--muted);background:var(--surface-muted)}.network-station-table-v232{padding:0 12px 10px}.network-station-row-v232{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) minmax(150px,.9fr) minmax(160px,.9fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--border)}.network-station-row-v232:first-child{border-top:0}.network-station-identity-v232{display:flex;align-items:flex-start;gap:8px}.network-station-identity-v232 strong,.network-station-row-v232>div>strong{display:block;font-size:8px}.network-station-identity-v232 small,.network-station-row-v232>div>small,.network-station-row-v232 em{display:block;margin-top:2px;color:var(--muted);font-size:6.6px;font-style:normal;line-height:1.4}.network-models-workspace-v232,.network-events-workspace-v232{display:flex;flex-direction:column;gap:10px}.network-model-controls-v232{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:11px 12px}.network-model-controls-v232 label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:7px;font-weight:650}.network-model-controls-v232 select{min-width:180px;height:34px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--foreground);padding:0 9px}.network-model-controls-v232>div{max-width:580px}.network-model-controls-v232 strong{display:block;font-size:9px}.network-model-controls-v232 small{display:block;margin-top:2px;color:var(--muted);font-size:7px;line-height:1.4}.sample-coordinate-button{align-self:flex-start;margin-top:7px}.geo-map-shell-v232{min-height:430px}.geo-openlayers-map-v232{position:absolute;inset:0;z-index:1;min-height:430px}.geo-svg-fallback-v232{position:relative;z-index:0}.geo-svg-fallback-v232[hidden]{display:none}.geo-map-shell-v232 .geo-map-status,.geo-map-shell-v232 .geo-osm-attribution,.geo-map-shell-v232 .geo-color-legend{z-index:5}.weathergrid-ol-popup{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:8px 10px;border:1px solid rgba(15,23,42,.14);border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(15,23,42,.16);color:#0f172a;font-size:8px}.weathergrid-ol-popup strong{font-size:9px}.weathergrid-ol-popup span{color:#64748b}.weathergrid-ol-popup[hidden]{display:none}.ol-control button{background:rgba(255,255,255,.94)!important;color:#0f172a!important}.ol-attribution{font-size:9px!important}
@media(max-width:1100px){.network-stations-workspace-v232{grid-template-columns:1fr}.network-station-row-v232{grid-template-columns:1fr 1fr 1fr}.network-station-row-v232>button{justify-self:start}.network-model-controls-v232{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.network-station-row-v232{grid-template-columns:1fr 1fr}.network-context-map-v232,.network-ol-map-v232{min-height:300px}.geo-map-shell-v232,.geo-openlayers-map-v232{min-height:360px}}
@media(max-width:460px){.network-station-row-v232{grid-template-columns:1fr}.coordinate-integrity-summary-v232{flex-direction:column;gap:7px}.network-map-privacy-v232{left:8px;right:8px;text-align:center}.network-model-controls-v232 select{min-width:100%;width:100%}.geo-map-shell-v232,.geo-openlayers-map-v232{min-height:340px}}
/* v0.23.2 OpenLayers failure-safe context */
.network-map-fallback-v232{position:absolute;inset:44px 12px 28px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto}
.network-map-fallback-v232[hidden]{display:none!important}
.network-map-fallback-note-v232{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;color:var(--muted)}
.network-map-fallback-note-v232 span{display:flex;flex-direction:column;gap:2px}.network-map-fallback-note-v232 strong{color:var(--foreground);font-size:11px}.network-map-fallback-note-v232 small{font-size:8px;line-height:1.45}

/* v0.23.3 — Network Intelligence product UX completion */
.network-page-v233{gap:12px}
.network-context-banner-v233{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.network-context-banner-v233.tone-demo{border-color:color-mix(in srgb,var(--purple) 28%,var(--border));background:color-mix(in srgb,var(--purple) 3.5%,var(--surface))}
.network-context-banner-v233.tone-review{border-color:color-mix(in srgb,var(--amber) 32%,var(--border));background:color-mix(in srgb,var(--amber) 4%,var(--surface))}
.network-context-banner-v233.tone-real{border-color:color-mix(in srgb,var(--green) 24%,var(--border));background:color-mix(in srgb,var(--green) 2.5%,var(--surface))}
.network-context-icon-v233{display:grid;place-items:center;color:var(--muted)}.tone-demo .network-context-icon-v233{color:var(--purple)}.tone-review .network-context-icon-v233{color:var(--amber)}.tone-real .network-context-icon-v233{color:var(--green)}
.network-context-label-v233{display:block;margin-bottom:2px;color:var(--muted);font-size:6.2px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.network-context-banner-v233 strong{display:block;font-size:9px}.network-context-banner-v233 p{max-width:760px;margin:2px 0 0;color:var(--muted);font-size:7px;line-height:1.45}
.network-context-counts-v233{display:flex;gap:14px}.network-context-counts-v233 span{min-width:52px;text-align:right}.network-context-counts-v233 b{font-size:11px}.network-context-counts-v233 small{display:block;color:var(--muted);font-size:6px}
.network-kpi-grid-v233 article{padding:11px 12px}.network-kpi-grid-v233 article strong{font-size:18px}.network-kpi-grid-v233 article em{white-space:normal;line-height:1.35}
.network-overview-grid-v233{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:10px;align-items:stretch}
.network-readiness-panel-v233{overflow:hidden}.network-metric-tabs-v233{min-width:0}.network-metric-tabs-v233 button{padding-inline:8px}
.network-readiness-v233{padding:0 12px 11px}.network-readiness-head-v233{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:8px 0 10px;border-bottom:1px solid var(--border)}
.network-readiness-head-v233>svg{color:var(--metric)}.network-readiness-head-v233 strong{display:block;font-size:9px}.network-readiness-head-v233 small{display:block;margin-top:2px;color:var(--muted);font-size:6.5px}
.authority-pill-v233{padding:4px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);font-size:6px;font-weight:800;white-space:nowrap}.authority-pill-v233.demo{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 30%,var(--border));background:color-mix(in srgb,var(--purple) 5%,var(--surface))}.authority-pill-v233.review{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 32%,var(--border));background:var(--amber-soft)}.authority-pill-v233.real{color:var(--green);border-color:color-mix(in srgb,var(--green) 28%,var(--border));background:var(--green-soft)}
.network-readiness-checklist-v233{display:flex;flex-direction:column}.network-readiness-checklist-v233>div{display:grid;grid-template-columns:18px 1fr;gap:7px;padding:8px 0;border-bottom:1px solid var(--border)}.network-readiness-checklist-v233>div:last-child{border-bottom:0}.network-readiness-checklist-v233 i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface-muted);color:var(--muted)}.network-readiness-checklist-v233 .pass i{background:var(--green-soft);color:var(--green)}.network-readiness-checklist-v233 b{display:block;font-size:7.3px}.network-readiness-checklist-v233 small{display:block;margin-top:2px;color:var(--muted);font-size:6.2px;line-height:1.35}
.network-comparison-focus-v233{overflow:hidden}.network-comparison-focus-grid-v233{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:0;border-top:1px solid var(--border)}.network-comparison-focus-grid-v233>.network-compare-card-v23{border:0;border-right:1px solid var(--border);border-radius:0}.network-focus-table-v233{padding:8px 12px}.network-focus-table-v233>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border)}.network-focus-table-v233>div:last-child{border-bottom:0}.network-focus-table-v233 b{font-size:7.3px}.network-focus-table-v233 small,.network-focus-table-v233 em{display:block;color:var(--muted);font-size:6px;font-style:normal}.network-focus-table-v233 strong{font-size:7.6px;font-variant-numeric:tabular-nums}.network-focus-table-v233 em{grid-column:2;text-align:right}.network-focus-table-v233 .outlier strong,.network-focus-table-v233 .outlier em{color:var(--amber)}
.network-stations-workspace-v233,.network-models-workspace-v233,.network-events-workspace-v233{display:flex;flex-direction:column;gap:10px}.network-stations-workspace-v233{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:start}.network-stations-workspace-v233>.network-context-banner-v233{grid-column:1/-1}
.network-location-integrity-panel-v233,.network-geometry-panel-v233{overflow:hidden}.network-location-summary-v233{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-muted)}.network-location-summary-v233>span{padding:8px 10px;border-right:1px solid var(--border);min-width:0}.network-location-summary-v233>span:last-child{border-right:0}.network-location-summary-v233 b{display:block;margin-top:5px;font-size:13px}.network-location-summary-v233 small{display:block;margin-top:2px;color:var(--muted);font-size:6px;line-height:1.35}
.network-models-workspace-v233{display:flex;flex-direction:column;gap:10px}.model-comparison-prominent-v233{overflow:hidden}.model-bars-v233{display:grid;grid-template-columns:1fr 1fr minmax(170px,.6fr);gap:12px;padding:0 12px 12px}.model-bar-v233{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.model-bar-v233>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.model-bar-v233 span{font-size:7px;font-weight:750}.model-bar-v233 strong{font-size:13px}.model-bar-v233 small{display:block;margin-top:6px;color:var(--muted);font-size:6px}.model-bar-track-v233{height:8px;margin-top:9px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.model-bar-track-v233 i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.model-bar-v233.kriging .model-bar-track-v233 i{background:var(--purple)}.model-improvement-v233{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border-left:1px solid var(--border)}.model-improvement-v233 small{color:var(--muted);font-size:6px}.model-improvement-v233 strong{margin-top:2px;font-size:20px}.model-improvement-v233 strong.positive{color:var(--green)}.model-improvement-v233 span{margin-top:3px;color:var(--muted);font-size:6px;line-height:1.4}
.network-model-grid-v233{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:10px}.model-readiness-checklist-v233{overflow:hidden}.readiness-authority-card-v233{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:0 12px 10px}.readiness-authority-card-v233>span{display:flex;align-items:center;gap:8px}.readiness-authority-card-v233 small{display:block;color:var(--muted);font-size:6px}.readiness-authority-card-v233 strong{display:block;margin-top:1px;font-size:10px}.readiness-authority-card-v233 p{max-width:560px;margin:0;color:var(--muted);font-size:6.5px;line-height:1.45;text-align:right}.readiness-checks-v233{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--border)}.readiness-checks-v233>div{display:grid;grid-template-columns:20px 1fr;gap:7px;padding:9px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.readiness-checks-v233>div:nth-child(even){border-right:0}.readiness-checks-v233 i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface-muted);color:var(--muted)}.readiness-checks-v233 .pass i{background:var(--green-soft);color:var(--green)}.readiness-checks-v233 b{display:block;font-size:7px}.readiness-checks-v233 small{display:block;margin-top:2px;color:var(--muted);font-size:6px;line-height:1.35}
.uncertainty-range-v233{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.uncertainty-range-track-v233{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--purple) 8%,var(--surface)),color-mix(in srgb,var(--purple) 55%,var(--surface)))}.uncertainty-range-track-v233 i{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:var(--foreground);box-shadow:0 0 0 2px var(--surface);transform:translate(-50%,-50%)}.uncertainty-range-v233>div:last-child{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:5px;color:var(--muted);font-size:6px}.uncertainty-range-v233>div:last-child b{text-align:center;color:var(--foreground)}.uncertainty-range-v233>div:last-child span:last-child{text-align:right}
.network-events-workspace-v233{display:flex;flex-direction:column;gap:10px}
@media(max-width:1280px){.network-overview-grid-v233,.network-stations-workspace-v233,.network-model-grid-v233{grid-template-columns:1fr}.network-stations-workspace-v233>.network-context-banner-v233{grid-column:auto}.network-comparison-focus-grid-v233{grid-template-columns:1fr}.network-comparison-focus-grid-v233>.network-compare-card-v23{border-right:0;border-bottom:1px solid var(--border)}.model-bars-v233{grid-template-columns:1fr 1fr}.model-improvement-v233{grid-column:1/-1;border-left:0;border-top:1px solid var(--border);padding-top:12px}}
@media(max-width:820px){.network-context-banner-v233{grid-template-columns:26px minmax(0,1fr)}.network-context-counts-v233{grid-column:2;justify-content:flex-start}.network-context-counts-v233 span{text-align:left}.network-location-summary-v233{grid-template-columns:1fr 1fr}.network-location-summary-v233>span:nth-child(2){border-right:0}.network-location-summary-v233>span:nth-child(n+3){border-top:1px solid var(--border)}.readiness-checks-v233{grid-template-columns:1fr}.readiness-checks-v233>div{border-right:0}.readiness-authority-card-v233{align-items:flex-start;flex-direction:column}.readiness-authority-card-v233 p{text-align:left}.network-readiness-head-v233{grid-template-columns:26px 1fr}.authority-pill-v233{grid-column:2;justify-self:start}.network-model-controls-v232{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.network-kpi-grid-v233{grid-template-columns:1fr 1fr}.network-context-counts-v233{gap:10px;flex-wrap:wrap}.network-context-counts-v233 span{min-width:44px}.network-location-summary-v233{grid-template-columns:1fr}.network-location-summary-v233>span{border-right:0!important;border-top:1px solid var(--border)}.network-location-summary-v233>span:first-child{border-top:0}.model-bars-v233{grid-template-columns:1fr}.model-improvement-v233{grid-column:auto}.network-comparison-focus-grid-v233{display:block}.network-metric-tabs-v233{width:100%;overflow-x:auto}.network-metric-tabs-v233 button{flex:0 0 auto}.network-readiness-checklist-v233>div{padding-block:7px}}

/* ========================================================================== 
   v0.23.4 — Interaction & Product UX Integrity
   Keeps the v0.19 shadcn/Vercel visual language while making affordances honest.
   ========================================================================== */
.interactive-card,
.interactive-row{cursor:pointer}
.interactive-card:focus-visible,
.interactive-row:focus-visible{
  outline:2px solid color-mix(in srgb,var(--primary) 72%,white 8%);
  outline-offset:2px;
  border-color:color-mix(in srgb,var(--primary) 34%,var(--border));
}
.interactive-card:active,
.interactive-row:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){.interactive-card,.interactive-row{transition:none!important}.interactive-card:active,.interactive-row:active{transform:none}}

/* Realtime cards are now inspectable rather than hover-only surfaces. */
.telemetry-card.interactive-card:hover{border-color:color-mix(in srgb,var(--metric) 30%,var(--border));box-shadow:0 7px 20px rgba(15,23,42,.07)}
:root[data-theme="dark"] .telemetry-card.interactive-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.18)}
.kpi-card.interactive-card:hover{border-color:color-mix(in srgb,var(--metric) 30%,var(--border))}

/* Network rows: inspect on row, configure through its explicit nested action. */
.network-station-row-v232.interactive-row,
.network-focus-table-v233 .interactive-row{transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}
.network-station-row-v232.interactive-row:hover,
.network-focus-table-v233 .interactive-row:hover{background:var(--surface-hover)}
.network-station-row-v232.interactive-row:focus-visible,
.network-focus-table-v233 .interactive-row:focus-visible{position:relative;z-index:1}

/* Network readability floor: metadata should remain compact, not microscopic. */
.network-page-v233 .network-context-counts-v233 small,
.network-page-v233 .network-readiness-checklist-v233 small,
.network-page-v233 .network-focus-table-v233 small,
.network-page-v233 .model-bar-v233 small,
.network-page-v233 .readiness-checks-v233 small,
.network-page-v233 .network-location-summary-v233 small,
.network-page-v233 .network-station-row-v232 small,
.network-page-v233 .network-station-row-v232 em,
.network-page-v233 .network-context-banner-v233 p,
.network-page-v233 .model-comparison-note-v231,
.network-page-v233 .variogram-candidates-v231 small{
  font-size:9.5px!important;
  line-height:1.42;
}
.network-page-v233 .network-context-label-v233,
.network-page-v233 .network-station-row-v232>div>small,
.network-page-v233 .network-focus-table-v233 em,
.network-page-v233 .model-bar-v233>div>span{
  font-size:10px!important;
}
.network-page-v233 .network-readiness-checklist-v233 b,
.network-page-v233 .readiness-checks-v233 b,
.network-page-v233 .network-station-row-v232 strong,
.network-page-v233 .network-focus-table-v233 b{
  font-size:10.5px;
}

.direction-detail-hero{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}
.direction-detail-hero>.compass,.direction-detail-hero>div:first-child .compass{margin:auto}
.direction-detail-hero>div:last-child{display:flex;flex-direction:column;gap:6px}
.direction-detail-hero small,.direction-detail-hero span{color:var(--muted);font-size:10px}
.direction-detail-hero strong{font-size:24px;letter-spacing:-.03em}.direction-detail-hero strong em{font-size:13px;color:var(--muted);font-style:normal;font-weight:600}
@media(max-width:560px){.direction-detail-hero{grid-template-columns:1fr;text-align:center}.direction-detail-hero>div:last-child{align-items:center}}

/* v0.23.4 product hierarchy correction: monitoring first, diagnostics second. */
.realtime-primary-v234{order:0}
.realtime-diagnostics-v234,.realtime-connection-v234{display:flex;flex-direction:column;gap:10px}
.realtime-connection-v234{margin-top:2px}
.realtime-primary-v234 .realtime-section-heading{margin-top:0}

/* Do not reserve half the Network workspace for geometry that has no authority yet. */
.network-stations-workspace-v233.is-geometry-locked{grid-template-columns:1fr}
.network-stations-workspace-v233.is-geometry-locked>.network-context-banner-v233{grid-column:auto}
.network-stations-workspace-v233.is-geometry-locked .network-plot-empty{min-height:112px;justify-content:flex-start;text-align:left}
.network-stations-workspace-v233.is-geometry-locked .network-geometry-panel-v233{min-height:0}
.network-stations-workspace-v233.is-geometry-locked .geometry-diagnostics-v231 small{font-size:9.5px}
.network-stations-workspace-v233.is-geometry-locked .geometry-diagnostics-v231 b{font-size:10px}
.model-detail-locked-v234{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;color:var(--muted)}
.model-detail-locked-v234>span{display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}
.model-detail-locked-v234 strong{display:block;color:var(--foreground);font-size:11px}
.model-detail-locked-v234 p{max-width:760px;margin:3px 0 0;font-size:9.5px;line-height:1.45}

/* ========================================================================== 
   v0.23.5 — Product Flow & Network Workspace Refinement
   Preserves the v0.19 shadcn/Vercel shell while making Network operational,
   readable, and action-oriented instead of diagnostic-first.
   ========================================================================== */
.network-page-v235{gap:14px}
.network-page-v235 .network-tabs-v232{align-self:flex-start;width:max-content;max-width:100%;padding:3px;gap:2px;background:var(--surface-muted)}
.network-page-v235 .network-tabs-v232>button{height:30px;padding:0 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap}
.network-page-v235 .network-tabs-v232>button:hover{color:var(--foreground);background:color-mix(in srgb,var(--surface) 72%,transparent)}
.network-page-v235 .network-tabs-v232>button.active{color:var(--foreground);background:var(--surface);border-color:var(--border-strong);box-shadow:0 1px 2px rgba(15,23,42,.05)}

.network-page-v235 .network-context-banner-v233{grid-template-columns:32px minmax(0,1fr) auto;gap:12px;padding:12px 14px}
.network-page-v235 .network-context-banner-v233 strong{font-size:11.5px;line-height:1.25}
.network-page-v235 .network-context-banner-v233 p{max-width:760px;margin-top:3px;font-size:10px!important;line-height:1.45}
.network-page-v235 .network-context-label-v233{font-size:9.5px!important;letter-spacing:.045em}
.network-context-side-v235{display:flex;align-items:center;gap:14px;justify-content:flex-end}
.network-page-v235 .network-context-counts-v233{gap:16px}
.network-page-v235 .network-context-counts-v233 span{min-width:48px}
.network-page-v235 .network-context-counts-v233 b{font-size:14px}
.network-page-v235 .network-context-counts-v233 small{font-size:9px!important}
.network-context-action-v235{flex:none}

.network-kpi-grid-v235{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.network-page-v235 .network-kpi-grid-v235 article{min-height:86px;padding:13px 14px}
.network-page-v235 .network-kpi-grid-v235 span{font-size:10px}
.network-page-v235 .network-kpi-grid-v235 strong{margin-top:7px;font-size:21px;line-height:1;letter-spacing:-.035em}
.network-page-v235 .network-kpi-grid-v235 strong small{font-size:11px}
.network-page-v235 .network-kpi-grid-v235 em{margin-top:7px;font-size:9.5px;line-height:1.42}

.network-overview-grid-v235{grid-template-columns:minmax(0,1.7fr) minmax(330px,.72fr);gap:12px}
.network-page-v235 .network-context-map-v232{min-height:350px}
.network-page-v235 .network-ol-map-v232{min-height:350px}
.network-page-v235 .network-map-privacy-v232{font-size:8.5px}
.network-page-v235 .network-context-map-v232.fallback-active-v235 .network-map-privacy-v232{display:none}
.network-page-v235 .network-map-fallback-v232{overflow:hidden}
.network-page-v235 .network-map-loading-v232{font-size:10px}
.network-page-v235 .network-map-fallback-note-v232{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}
.network-page-v235 .network-map-fallback-note-v232 strong{display:block;font-size:10.5px}
.network-page-v235 .network-map-fallback-note-v232 small{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.4}
.network-private-context-v235{padding:4px 10px 8px;background:var(--surface-muted)}
.network-private-context-v235 svg{display:block;width:100%;min-height:270px}
.network-private-grid-v235 line{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}
.network-private-station-v235 circle:first-of-type{fill:var(--surface);stroke:var(--muted);stroke-width:2;vector-effect:non-scaling-stroke}
.network-private-station-v235 circle:nth-of-type(2){fill:var(--muted)}
.network-private-station-v235.status-verified circle:first-of-type{fill:var(--green-soft);stroke:var(--green)}
.network-private-station-v235.status-verified circle:nth-of-type(2){fill:var(--green)}
.network-private-station-v235.status-approximate circle:first-of-type{stroke:var(--amber);stroke-dasharray:4 3}
.network-private-station-v235.status-approximate circle:nth-of-type(2){fill:var(--amber)}
.network-private-station-v235.status-unverified circle:first-of-type{stroke:#f97316;stroke-dasharray:3 3}
.network-private-station-v235.status-unverified circle:nth-of-type(2){fill:#f97316}
.network-private-station-v235 text{fill:var(--foreground);font-size:10px;font-weight:700}
.network-private-station-v235 text:last-of-type{fill:var(--muted);font-size:8px;font-weight:600}
.network-private-map-caption-v235{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 4px 0;color:var(--muted);font-size:9px}
.network-private-map-caption-v235 span{display:flex;align-items:center;gap:5px}
.network-private-map-empty-v235{display:flex;align-items:center;justify-content:center;gap:10px;min-height:220px;color:var(--muted)}
.network-private-map-empty-v235 strong{display:block;color:var(--foreground);font-size:11px}.network-private-map-empty-v235 p{margin:3px 0 0;font-size:9.5px}

.network-page-v235 .network-readiness-v233{padding:0 14px 12px}
.network-page-v235 .network-readiness-head-v233{padding:10px 0 11px;grid-template-columns:28px 1fr auto}
.network-page-v235 .network-readiness-head-v233 strong{font-size:11px}
.network-page-v235 .network-readiness-head-v233 small{font-size:9.5px}
.network-page-v235 .authority-pill-v233{font-size:8.5px;padding:4px 8px}
.network-page-v235 .network-readiness-checklist-v233>div{grid-template-columns:20px 1fr;gap:8px;padding:9px 0}
.network-page-v235 .network-readiness-checklist-v233 i{width:20px;height:20px}
.network-page-v235 .network-readiness-checklist-v233 b{font-size:10.5px}
.network-page-v235 .network-readiness-checklist-v233 small{font-size:9.5px!important}
.network-readiness-next-v235{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:10px;padding:10px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}
.network-readiness-next-v235 small{display:block;color:var(--muted);font-size:8.5px}.network-readiness-next-v235 strong{display:block;margin-top:2px;font-size:10.5px}.network-readiness-next-v235 p{margin:2px 0 0;color:var(--muted);font-size:9px;line-height:1.4}

.network-comparison-empty-v235{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:18px 14px;border-top:1px solid var(--border);color:var(--muted)}
.network-comparison-empty-v235>svg{color:var(--primary)}
.network-comparison-empty-v235 strong{display:block;color:var(--foreground);font-size:11px}.network-comparison-empty-v235 p{max-width:700px;margin:3px 0 0;font-size:9.5px;line-height:1.45}

.network-page-v235 .network-location-summary-v233>span{padding:10px 12px}
.network-page-v235 .network-location-summary-v233 b{margin-top:6px;font-size:17px}
.network-page-v235 .network-location-summary-v233 small{font-size:9.5px!important}
.network-page-v235 .coordinate-badge{font-size:9px;padding:3px 7px}
.network-station-table-v235{padding:2px 14px 10px}
.network-page-v235 .network-station-row-v232{grid-template-columns:minmax(210px,1.2fr) minmax(145px,.7fr) minmax(190px,1fr) minmax(200px,1fr) auto;gap:16px;padding:14px 0}
.network-page-v235 .network-station-identity-v232{gap:9px}
.network-page-v235 .network-station-row-v232 strong{font-size:11px}
.network-page-v235 .network-station-row-v232 small{font-size:9px!important;text-transform:none;letter-spacing:0}
.network-page-v235 .network-station-row-v232 em{font-size:9px!important;line-height:1.4}
.network-page-v235 .network-station-authority-v235 .coordinate-badge{margin-top:4px}
.network-page-v235 .network-station-coordinate-v235 strong{font-variant-numeric:tabular-nums}

.network-geometry-locked-v235{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:13px;align-items:start;padding:16px 14px;border-top:1px solid var(--border);color:var(--muted)}
.network-geometry-locked-v235>svg{padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);color:var(--muted);box-sizing:content-box}
.network-geometry-locked-v235 strong{display:block;color:var(--foreground);font-size:11px}.network-geometry-locked-v235 p{max-width:760px;margin:3px 0 0;font-size:9.5px;line-height:1.5}
.network-geometry-facts-v235{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}.network-geometry-facts-v235 span{min-width:110px}.network-geometry-facts-v235 small{display:block;font-size:8.5px}.network-geometry-facts-v235 b{display:block;margin-top:2px;color:var(--foreground);font-size:10px}
.network-stations-workspace-v235.is-geometry-locked .network-geometry-panel-v233{min-height:0}

.network-model-controls-v235{align-items:center;padding:12px 14px}
.network-model-controls-v235>div{display:flex;flex-direction:column;max-width:680px}
.network-model-controls-v235>div>small{font-size:8.5px!important}.network-model-controls-v235>div>strong{margin-top:1px;font-size:12px}.network-model-controls-v235>div>span{margin-top:2px;color:var(--muted);font-size:9.5px}
.network-page-v235 .network-model-controls-v235 label{font-size:9px}.network-page-v235 .network-model-controls-v235 select{height:36px;min-width:190px;font-size:10px}
.network-page-v235 .model-bars-v233{grid-template-columns:1fr 1fr minmax(190px,.55fr);gap:10px;padding:0 14px 14px}
.network-page-v235 .model-bar-v233{padding:12px}
.network-page-v235 .model-bar-v233>div>span{font-size:10px!important}.network-page-v235 .model-bar-v233 strong{font-size:16px}.network-page-v235 .model-bar-v233 small{font-size:9px!important}.network-page-v235 .model-improvement-v233{padding:12px 14px}.network-page-v235 .model-improvement-v233 small{font-size:8.5px}.network-page-v235 .model-improvement-v233 strong{font-size:22px}.network-page-v235 .model-improvement-v233 span{font-size:9px;line-height:1.45}
.model-detail-locked-v235{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px}
.model-detail-locked-v235>div>small{display:block;color:var(--muted);font-size:8.5px}.model-detail-locked-v235>div>strong{font-size:11.5px}.model-detail-locked-v235>div>p{margin-top:3px;font-size:9.5px;line-height:1.5}
.network-page-v235 .readiness-authority-card-v233{padding:0 14px 11px}.network-page-v235 .readiness-authority-card-v233 small{font-size:9px}.network-page-v235 .readiness-authority-card-v233 strong{font-size:11px}.network-page-v235 .readiness-authority-card-v233 p{font-size:9px;line-height:1.45}
.network-page-v235 .readiness-checks-v233>div{padding:10px 14px}.network-page-v235 .readiness-checks-v233 b{font-size:10.5px}.network-page-v235 .readiness-checks-v233 small{font-size:9.5px!important}

.event-empty-v235{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:96px;padding:16px 14px}.event-empty-v235 strong{font-size:11px}.event-empty-v235 p{max-width:760px;font-size:9.5px;line-height:1.45}
.network-event-footer-v235{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.network-event-footer-v235 .event-caveat{margin:0;flex:1}

@media(max-width:1180px){
  .network-kpi-grid-v235{grid-template-columns:1fr 1fr}
  .network-overview-grid-v235{grid-template-columns:1fr}
  .network-page-v235 .network-station-row-v232{grid-template-columns:minmax(220px,1.1fr) minmax(145px,.7fr) minmax(190px,1fr) auto}
  .network-page-v235 .network-station-evidence-v235{grid-column:1/4;padding-left:20px}
  .network-page-v235 .model-bars-v233{grid-template-columns:1fr 1fr}.network-page-v235 .model-improvement-v233{grid-column:1/-1;border-left:0;border-top:1px solid var(--border)}
}
@media(max-width:820px){
  .network-page-v235 .network-context-banner-v233{grid-template-columns:28px minmax(0,1fr)}
  .network-context-side-v235{grid-column:2;justify-content:flex-start;flex-wrap:wrap}
  .network-page-v235 .network-context-counts-v233 span{text-align:left}
  .network-page-v235 .network-station-row-v232{grid-template-columns:1fr auto;gap:10px 14px}
  .network-page-v235 .network-station-authority-v235,.network-page-v235 .network-station-coordinate-v235,.network-page-v235 .network-station-evidence-v235{grid-column:1/-1;padding-left:20px}
  .network-page-v235 .network-station-row-v232>button{grid-column:2;grid-row:1;align-self:start}
  .network-geometry-locked-v235,.model-detail-locked-v235,.network-comparison-empty-v235,.event-empty-v235{grid-template-columns:28px minmax(0,1fr)}
  .network-geometry-locked-v235>button,.model-detail-locked-v235>button,.network-comparison-empty-v235>button,.event-empty-v235>button{grid-column:2;justify-self:start}
  .network-readiness-next-v235{grid-template-columns:1fr}.network-readiness-next-v235>button{justify-self:start}
  .network-model-controls-v235{align-items:flex-start;flex-direction:column}.network-model-controls-v235 label{width:100%}.network-model-controls-v235 select{width:100%}
}
@media(max-width:520px){
  .network-page-v235{gap:11px}
  .network-page-v235 .network-tabs-v232{width:100%}.network-page-v235 .network-tabs-v232>button{flex:1;padding-inline:8px;font-size:10px}
  .network-kpi-grid-v235{grid-template-columns:1fr 1fr;gap:8px}.network-page-v235 .network-kpi-grid-v235 article{min-height:82px;padding:11px}.network-page-v235 .network-kpi-grid-v235 strong{font-size:18px}
  .network-page-v235 .network-context-map-v232,.network-page-v235 .network-ol-map-v232{min-height:300px}
  .network-private-context-v235 svg{min-height:230px}
  .network-page-v235 .model-bars-v233{grid-template-columns:1fr}
  .network-private-map-caption-v235{align-items:flex-start;flex-direction:column;gap:3px}
}

/* v0.23.6 — Cross-module evidence workflow & state continuity */
.evidence-workflow-v236{display:flex;align-items:center;gap:7px;min-height:38px;margin:12px 0 2px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);overflow-x:auto;scrollbar-width:none}.evidence-workflow-v236::-webkit-scrollbar{display:none}.evidence-workflow-v236>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--muted);font-size:8.5px;font-weight:650}.evidence-workflow-v236>span i{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--muted)}.evidence-workflow-v236>span.complete{color:var(--foreground)}.evidence-workflow-v236>span.complete i{border-color:color-mix(in srgb,var(--green) 35%,var(--border));background:var(--green-soft);color:var(--green)}.evidence-workflow-v236>span.active{color:var(--foreground);font-weight:750}.evidence-workflow-v236>span.active i{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:color-mix(in srgb,var(--primary) 9%,var(--surface));color:var(--primary)}.evidence-workflow-v236>em{display:grid;place-items:center;color:var(--muted);font-style:normal;flex:0 0 auto}.flow-context-v236{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 2px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.flow-context-v236>span{display:grid;grid-template-columns:18px auto;column-gap:6px;align-items:center;min-width:0}.flow-context-v236>span>svg{grid-row:1/3;color:var(--primary)}.flow-context-v236 b{font-size:9px}.flow-context-v236 small{margin-top:1px;color:var(--muted);font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.investigation-station-card-v236{cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.investigation-station-card-v236:hover{border-color:color-mix(in srgb,var(--primary) 26%,var(--border));background:color-mix(in srgb,var(--primary) 3%,var(--surface-muted))}.investigation-station-card-v236:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 58%,transparent);outline-offset:2px}.investigation-station-open-v236{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid var(--border);color:var(--primary);font-size:7.5px;font-weight:700}.case-event-link-v236{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--primary);font:inherit;font-weight:750;cursor:pointer}.case-event-link-v236:hover{text-decoration:underline}.case-event-link-v236:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 50%,transparent);outline-offset:2px;border-radius:3px}.drawer-footer{flex-wrap:wrap}.drawer-footer>[data-action="open-station-network"]{margin-right:auto}
@media(max-width:820px){.flow-context-v236{align-items:flex-start;flex-direction:column}.flow-context-v236 .compact-button{align-self:flex-start}.evidence-workflow-v236{margin-top:9px}.drawer-footer>[data-action="open-station-network"]{margin-right:0}}
@media(max-width:520px){.evidence-workflow-v236{gap:5px;padding:7px}.evidence-workflow-v236>span{font-size:7.8px}.evidence-workflow-v236>span i{width:18px;height:18px}.flow-context-v236 small{white-space:normal}.investigation-station-open-v236{font-size:7px}}
@media(max-width:900px){.sidebar:not(.open) nav{scrollbar-width:none}.sidebar:not(.open) nav::-webkit-scrollbar{display:none}}
@media(max-width:900px){.sidebar:not(.open){visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{visibility:visible;transition:transform .2s ease}}

/* v0.23.7 — Investigation & Case operational UX refinement */
.workspace-state-v237{min-height:220px;display:grid;grid-template-columns:34px minmax(0,430px);align-content:center;justify-content:center;gap:12px;padding:24px;color:var(--muted);text-align:left}.workspace-state-v237>svg{width:32px;height:32px;padding:7px;border:1px solid var(--border);border-radius:9px;background:var(--surface-muted);color:var(--primary)}.workspace-state-v237 strong{display:block;color:var(--foreground);font-size:11px}.workspace-state-v237 p{margin:4px 0 0;font-size:9px;line-height:1.5}.workspace-state-v237 button{margin-top:10px}.workspace-state-v237.error>svg{color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--surface))}.workspace-state-v237.loading>svg{animation:wg-v237-spin 1.1s linear infinite}@keyframes wg-v237-spin{to{transform:rotate(360deg)}}

.investigation-next-step-v237{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;margin:0 0 10px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--primary) 19%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 3.5%,var(--surface))}.investigation-next-step-v237>span{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.investigation-next-step-v237 small{display:block;color:var(--primary);font-size:7.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.investigation-next-step-v237 strong{display:block;margin-top:2px;font-size:10.5px}.investigation-next-step-v237 p{max-width:760px;margin:3px 0 0;color:var(--muted);font-size:8.5px;line-height:1.45}.investigation-evidence-inventory-v237{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap;max-width:360px}.investigation-evidence-inventory-v237 span,.case-readiness-v237 span{display:inline-flex;align-items:center;gap:4px;min-height:25px;padding:4px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:7.2px;font-weight:680;white-space:nowrap}.investigation-evidence-inventory-v237 .ready,.case-readiness-v237 .ready{border-color:color-mix(in srgb,var(--green) 26%,var(--border));background:var(--green-soft);color:var(--green)}.investigation-evidence-inventory-v237 .pending,.case-readiness-v237 .pending{border-color:color-mix(in srgb,var(--amber) 27%,var(--border));background:var(--amber-soft);color:var(--amber)}

.investigation-timeline-v237{padding:0 0 2px}.investigation-window-ruler-v237{display:grid;grid-template-columns:76px minmax(160px,1fr) 76px;gap:10px;align-items:center;margin:0 12px;padding:10px 0 9px;border-bottom:1px solid var(--border)}.investigation-window-ruler-v237>span:first-child{text-align:left}.investigation-window-ruler-v237>span:last-child{text-align:right}.investigation-window-ruler-v237 small{display:block;color:var(--muted);font-size:6.8px}.investigation-window-ruler-v237 b{display:block;margin-top:2px;font-size:8px;font-variant-numeric:tabular-nums}.investigation-window-track-v237{position:relative;height:18px}.investigation-window-track-v237:before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 10%,var(--border)),var(--border),color-mix(in srgb,var(--primary) 10%,var(--border)))}.investigation-window-track-v237>i{position:absolute;top:4px;width:10px;height:10px;transform:translateX(-50%);border:2px solid var(--surface);border-radius:50%;background:var(--red);box-shadow:0 0 0 1px color-mix(in srgb,var(--red) 48%,var(--border));z-index:2}.investigation-window-track-v237>em{position:absolute;top:-5px;transform:translate(-50%,-100%);padding:2px 5px;border:1px solid color-mix(in srgb,var(--red) 22%,var(--border));border-radius:999px;background:var(--surface);color:var(--red);font-size:6.5px;font-style:normal;font-weight:750;white-space:nowrap}.investigation-timeline-summary-v237{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px 4px}.investigation-timeline-summary-v237 span{padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:6.8px}.investigation-timeline-summary-v237 b{color:var(--foreground);font-size:7.6px}.investigation-timeline-v237 .investigation-timeline{max-height:330px;padding-top:5px}.investigation-timeline-v237 .investigation-timeline-row{grid-template-columns:68px 14px minmax(0,1fr);min-height:44px}.investigation-timeline-v237 .investigation-timeline-row time{font-size:7.7px;font-weight:650}.investigation-timeline-v237 .investigation-timeline-row time small{display:block;margin-top:2px;color:var(--muted);font-size:6.4px;font-weight:560}.investigation-timeline-v237 .investigation-timeline-row.before>i{background:var(--primary)}.investigation-timeline-v237 .investigation-timeline-row.after>i{background:var(--green)}.investigation-timeline-label-v237{display:flex;align-items:center;gap:7px}.investigation-timeline-label-v237 strong{min-width:0;font-size:8.7px}.investigation-timeline-label-v237 b{flex:0 0 auto;padding:2px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:5.8px;letter-spacing:.04em}.investigation-timeline-row.anchor .investigation-timeline-label-v237 b{border-color:color-mix(in srgb,var(--red) 30%,var(--border));background:color-mix(in srgb,var(--red) 7%,var(--surface));color:var(--red)}.investigation-timeline-truncated-v237{margin:0 12px 10px;padding:7px 9px;border-radius:7px;background:var(--surface-muted);color:var(--muted);font-size:6.8px;line-height:1.4}

.case-decision-guide-v237{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;margin:10px 0;padding:11px 12px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 3%,var(--surface))}.case-decision-guide-v237>span{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.case-decision-guide-v237 small{display:block;color:var(--primary);font-size:7.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.case-decision-guide-v237 strong{display:block;margin-top:2px;font-size:10.5px}.case-decision-guide-v237 p{max-width:720px;margin:3px 0 0;color:var(--muted);font-size:8.5px;line-height:1.45}.case-readiness-v237{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap;max-width:440px}.case-readiness-v237 .context{background:var(--surface-muted)}.case-report-actions{display:grid;grid-template-columns:auto auto;gap:7px;align-items:start}.case-report-actions small{grid-column:1/-1;color:var(--muted);font-size:6.7px;text-align:right}.case-controls select[name="status"]{font-weight:680}.case-reauth-v237[hidden]{display:none!important}.case-controls :disabled,.case-inline-form :disabled,.case-reference-form :disabled{cursor:not-allowed;opacity:.58}.case-form-actions button:disabled{opacity:.55}.case-controls [data-case-transition-hint-v237]{line-height:1.4}.case-kpis strong{font-size:13px}.case-kpis article:nth-child(3) strong,.case-kpis article:nth-child(4) strong{font-variant-numeric:tabular-nums}

@media(max-width:1180px){.investigation-next-step-v237,.case-decision-guide-v237{grid-template-columns:34px minmax(0,1fr)}.investigation-evidence-inventory-v237,.case-readiness-v237{grid-column:2;justify-content:flex-start;max-width:none}}
@media(max-width:820px){.workspace-state-v237{min-height:180px}.investigation-window-ruler-v237{grid-template-columns:60px minmax(120px,1fr) 60px}.case-report-actions{justify-content:start}.case-report-actions small{text-align:left}.investigation-next-step-v237,.case-decision-guide-v237{align-items:start}}
@media(max-width:520px){.workspace-state-v237{grid-template-columns:28px minmax(0,1fr);padding:18px 12px}.workspace-state-v237>svg{width:28px;height:28px;padding:6px}.investigation-next-step-v237,.case-decision-guide-v237{grid-template-columns:28px minmax(0,1fr);padding:9px}.investigation-next-step-v237>span,.case-decision-guide-v237>span{width:28px;height:28px}.investigation-evidence-inventory-v237,.case-readiness-v237{grid-column:1/-1;justify-content:flex-start}.investigation-window-ruler-v237{grid-template-columns:48px minmax(90px,1fr) 48px;margin:0 8px;gap:6px}.investigation-window-track-v237>em{display:none}.investigation-timeline-summary-v237{padding-left:8px;padding-right:8px}.investigation-timeline-v237 .investigation-timeline{padding-left:7px;padding-right:7px}.investigation-timeline-v237 .investigation-timeline-row{grid-template-columns:58px 12px minmax(0,1fr);gap:6px}.investigation-timeline-label-v237{align-items:flex-start;flex-direction:column;gap:3px}.case-report-actions{grid-template-columns:1fr 1fr}.case-report-actions button{justify-content:center}.case-readiness-v237 span,.investigation-evidence-inventory-v237 span{white-space:normal}}

/* v0.23.8 — operational evidence cohesion & reporting integrity */
.history-page-v238,.reports-page-v238{gap:12px}.history-page-v238 .primary-button:disabled,.reports-page-v238 .primary-button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;filter:saturate(.45)}.history-stale-banner-v238,.investigation-notice-v238{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--amber) 30%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--amber) 7%,var(--surface));color:var(--amber)}.history-stale-banner-v238>svg,.investigation-notice-v238>svg{flex:0 0 auto}.history-stale-banner-v238>div{min-width:0;flex:1}.history-stale-banner-v238 strong{display:block;color:var(--foreground);font-size:9.5px}.history-stale-banner-v238 span,.investigation-notice-v238 span{color:var(--muted);font-size:8.5px;line-height:1.45}.investigation-notice-v238{color:var(--amber);background:color-mix(in srgb,var(--amber) 6%,var(--surface))}.investigation-notice-v238 span{color:var(--foreground)}
.alert-row-end-v238{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:132px}.alert-row-end-v238 small{font-size:7.5px!important;color:var(--muted);white-space:nowrap}.alert-investigable-v238{cursor:pointer}.alert-investigable-v238:hover .alert-row-end-v238 small{color:var(--primary)}.alert-preview-v238 .alert-row-end-v238 small{font-style:italic}.flow-context-alert-v238{border-color:color-mix(in srgb,var(--amber) 20%,var(--border));background:color-mix(in srgb,var(--amber) 4%,var(--surface))}
.report-scope-v238{display:grid;grid-template-columns:1fr 1fr;gap:9px}.report-scope-v238 article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.report-scope-v238 article.active{border-color:color-mix(in srgb,var(--primary) 28%,var(--border));background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.report-scope-v238 article>span{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--muted)}.report-scope-v238 article.active>span{background:var(--primary-soft);color:var(--primary)}.report-scope-v238 small{display:block;color:var(--muted);font-size:7.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.report-scope-v238 strong{display:block;margin-top:2px;font-size:11px}.report-scope-v238 p{margin:3px 0 0;color:var(--muted);font-size:8.5px;line-height:1.45}.report-overview-v238{grid-template-columns:repeat(4,minmax(0,1fr))}.report-integrity-note-v238{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);color:var(--muted);font-size:8.5px;line-height:1.5}.report-integrity-note-v238 svg{flex:0 0 auto;color:var(--primary)}.report-integrity-note-v238 b{color:var(--foreground)}
@media (max-width:900px){.report-scope-v238{grid-template-columns:1fr}.report-overview-v238{grid-template-columns:repeat(2,minmax(0,1fr))}.alert-row-end-v238 small{display:none}}
@media (max-width:560px){.history-stale-banner-v238{align-items:flex-start;flex-wrap:wrap}.history-stale-banner-v238 .compact-button{margin-left:22px}.report-overview-v238{grid-template-columns:1fr 1fr}.report-scope-v238 article{grid-template-columns:30px minmax(0,1fr)}.report-scope-v238 article>button{grid-column:2;justify-self:start}.alert-row{grid-template-columns:30px minmax(0,1fr) auto}.alert-row-end-v238{min-width:auto}.alert-row-end-v238 .severity-badge{display:none}}

/* v0.23.9 — Alerts, History & Station Reports operational readability/accessibility */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.alerts-page-v239,.history-page-v239,.reports-page-v239{gap:14px}
.alerts-page-v239 .page-header p,.history-page-v239 .page-header p,.reports-page-v239 .page-header p{line-height:1.5}
.alerts-page-v239 .panel-header p,.history-page-v239 .panel-header p,.reports-page-v239 .panel-header p{font-size:9.5px;line-height:1.45}
.alerts-page-v239 .outline-button,.alerts-page-v239 .primary-button,.history-page-v239 .outline-button,.history-page-v239 .primary-button,.reports-page-v239 .outline-button,.reports-page-v239 .primary-button{min-height:36px}
.alert-header-actions-v239{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.alert-header-actions-v239>span{padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--muted);font-size:9.5px;line-height:1.25}.alert-header-actions-v239 b{color:var(--foreground);font-size:12px;font-variant-numeric:tabular-nums}
.alerts-page-v239 .alert-overview-card{min-height:104px;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:14px}.alerts-page-v239 .alert-overview-card>span{width:38px;height:38px}.alerts-page-v239 .alert-overview-card small{font-size:9.5px}.alerts-page-v239 .alert-overview-card strong{font-size:22px;line-height:1.15}.alerts-page-v239 .alert-overview-card em{margin-top:2px;font-size:9px;line-height:1.35}
.alert-feed-panel-v239{overflow:hidden}.alerts-page-v239 .detailed-alerts .alert-row{position:relative;min-height:88px;grid-template-columns:40px minmax(0,1fr) auto;padding:12px 14px;gap:12px;border-left:3px solid transparent}.alerts-page-v239 .detailed-alerts .alert-row.alert-critical{border-left-color:var(--red);background:color-mix(in srgb,var(--red) 2.4%,var(--surface))}.alerts-page-v239 .detailed-alerts .alert-row.alert-warning{border-left-color:var(--amber);background:color-mix(in srgb,var(--amber) 2.4%,var(--surface))}.alerts-page-v239 .detailed-alerts .alert-row:hover{background:var(--surface-hover)}.alerts-page-v239 .detailed-alerts .alert-row:focus-visible{z-index:1;outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:-2px}.alerts-page-v239 .alert-symbol{width:38px;height:38px}.alerts-page-v239 .alert-copy{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:14px;row-gap:4px}.alerts-page-v239 .alert-copy>div{gap:7px}.alerts-page-v239 .alert-copy>div strong{font-size:11px;line-height:1.25}.alerts-page-v239 .alert-copy>div span{font-size:9.5px;line-height:1.3}.alerts-page-v239 .alert-copy>b{font-size:11.5px;line-height:1.25}.alerts-page-v239 .alert-copy>small{font-size:9px;line-height:1.4}.alerts-page-v239 .alert-copy>time{font-size:8.5px;line-height:1.35}.alerts-page-v239 .severity-badge{font-size:9px!important;padding:4px 7px}.alerts-page-v239 .alert-row-end-v238{min-width:142px;gap:8px}.alerts-page-v239 .alert-row-end-v238 small{font-size:9px!important;font-weight:600}.alerts-page-v239 .alert-preview-v238{background:color-mix(in srgb,var(--muted) 2%,var(--surface));border-left-color:var(--muted-2)}
.alert-filter-v239{padding:3px}.alert-filter-v239 button{min-width:58px;height:34px;padding:0 11px;font-size:9.5px}.alert-filter-v239 button:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}
.alerts-page-v239 .alert-timeline{padding:4px 16px 14px}.alerts-page-v239 .alert-bucket>span{font-size:8.5px}.alerts-page-v239 .alert-timeline-legend{font-size:9px}.alerts-page-v239 .alert-timeline-legend small{font-size:8.5px}
.history-table-panel-v239,.report-statistics-panel-v239{overflow:hidden}.table-scroll-hint-v239{display:none;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:9px;line-height:1.35}.history-scroll-shell-v239,.report-table-scroll-v239{outline:none;scrollbar-gutter:stable}.history-scroll-shell-v239:focus-visible,.report-table-scroll-v239:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--primary) 45%,transparent)}
.history-page-v239 .history-table-v239{min-width:1120px}.history-page-v239 .history-table-v239 th,.reports-page-v239 .report-statistics-table-v239 th{height:40px;font-size:9.5px}.history-page-v239 .history-table-v239 td,.reports-page-v239 .report-statistics-table-v239 td{height:44px;font-size:10px}.history-page-v239 .history-table-v239 td:first-child strong{font-size:10.5px}.history-page-v239 .history-table-v239 td:first-child small{font-size:8.8px}.history-page-v239 .source-tag{font-size:9px}.history-page-v239 .history-table-v239 th:first-child,.history-page-v239 .history-table-v239 td:first-child,.reports-page-v239 .report-statistics-table-v239 th:first-child,.reports-page-v239 .report-statistics-table-v239 td:first-child{position:sticky;left:0;z-index:2;background:var(--surface)}.history-page-v239 .history-table-v239 th:first-child,.reports-page-v239 .report-statistics-table-v239 th:first-child{z-index:3;background:var(--surface-muted);box-shadow:1px 0 0 var(--border)}.history-page-v239 .history-table-v239 td:first-child,.reports-page-v239 .report-statistics-table-v239 td:first-child{box-shadow:1px 0 0 var(--border)}.history-page-v239 .history-table-v239 tbody tr:hover td:first-child,.reports-page-v239 .report-statistics-table-v239 tbody tr:hover td:first-child{background:var(--surface-hover)}
.history-page-v239 .history-stale-banner-v238,.reports-page-v239 .history-stale-banner-v238{min-height:54px;padding:10px 12px}.history-page-v239 .history-stale-banner-v238 strong,.reports-page-v239 .history-stale-banner-v238 strong{font-size:10.5px}.history-page-v239 .history-stale-banner-v238 span,.reports-page-v239 .history-stale-banner-v238 span{font-size:9.5px}.history-page-v239 .compact-field,.reports-page-v239 .compact-field{font-size:9.5px}.history-page-v239 .compact-field select,.reports-page-v239 .compact-field select{min-height:34px}
.reports-page-v239 .report-scope-v238{gap:10px}.reports-page-v239 .report-scope-v238 article{min-height:108px;grid-template-columns:38px minmax(0,1fr) auto;padding:14px;gap:12px}.reports-page-v239 .report-scope-v238 article>span{width:36px;height:36px}.reports-page-v239 .report-scope-v238 small{font-size:8.5px}.reports-page-v239 .report-scope-v238 strong{font-size:12px}.reports-page-v239 .report-scope-v238 p{font-size:9.5px;line-height:1.5}.report-authority-strip-v239{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 3%,var(--surface))}.report-authority-strip-v239>svg{color:var(--primary)}.report-authority-strip-v239 strong{display:block;font-size:10px}.report-authority-strip-v239 span{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.45}.report-authority-strip-v239 code{padding:1px 4px;border-radius:4px;background:var(--surface-muted);color:var(--foreground);font-size:8.5px}.reports-page-v239 .report-summary-card{min-height:126px;padding:16px}.reports-page-v239 .report-summary-card>span{font-size:10px}.reports-page-v239 .report-summary-card>strong{font-size:20px}.reports-page-v239 .report-summary-card>small{font-size:9.5px;line-height:1.35}.reports-page-v239 .report-statistics-table-v239{min-width:760px}.reports-page-v239 .report-statistics-table-v239 td:first-child strong{font-size:10px}.reports-page-v239 .report-integrity-note-v238{font-size:9.5px;line-height:1.5}
@media(max-width:900px){.alert-header-actions-v239{width:100%;justify-content:flex-start}.alerts-page-v239 .alert-row-end-v238 small{display:block}.table-scroll-hint-v239{display:flex}}
@media(max-width:700px){.alerts-page-v239 .outline-button,.alerts-page-v239 .primary-button,.history-page-v239 .outline-button,.history-page-v239 .primary-button,.reports-page-v239 .outline-button,.reports-page-v239 .primary-button{min-height:44px}.alert-filter-v239 button{height:40px;min-width:64px}.alerts-page-v239 .detailed-alerts .alert-row{min-height:92px;grid-template-columns:36px minmax(0,1fr) auto;padding:12px 10px;gap:9px}.alerts-page-v239 .alert-symbol{width:34px;height:34px}.alerts-page-v239 .alert-row-end-v238{min-width:auto;align-items:flex-end;flex-direction:column;gap:4px}.alerts-page-v239 .alert-row-end-v238 small{display:none}.alerts-page-v239 .severity-badge{font-size:8.8px!important}.history-page-v239 .header-actions,.reports-page-v239 .header-actions{gap:7px}.history-page-v239 .header-actions>* ,.reports-page-v239 .header-actions>*{flex:1 1 auto}.history-page-v239 .compact-field,.reports-page-v239 .compact-field{min-height:44px}.history-page-v239 .compact-field select,.reports-page-v239 .compact-field select{min-height:40px}.reports-page-v239 .report-scope-v238 article{grid-template-columns:36px minmax(0,1fr)}.reports-page-v239 .report-scope-v238 article>button{grid-column:2;justify-self:start;min-width:120px}.table-scroll-hint-v239{font-size:9.5px}}
@media(max-width:480px){.alerts-page-v239 .alert-overview-grid{grid-template-columns:1fr 1fr}.alerts-page-v239 .alert-overview-card{min-height:96px;padding:11px}.alerts-page-v239 .alert-overview-card strong{font-size:19px}.alerts-page-v239 .detailed-alerts .alert-row{grid-template-columns:34px minmax(0,1fr) auto}.alerts-page-v239 .alert-copy>div{align-items:flex-start;flex-direction:column;gap:2px}.alerts-page-v239 .alert-copy>div span{white-space:normal}.reports-page-v239 .report-overview-v238{grid-template-columns:1fr 1fr}.report-authority-strip-v239{align-items:start}}
/* v0.23.9 focus-restoration visibility guard */
.alerts-page-v239 .detailed-alerts .alert-row:focus,.alerts-page-v239 .detailed-alerts .alert-row:focus-visible{z-index:1;outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:-2px}
@media(max-width:560px){.alerts-page-v239 .alert-row-end-v238 .severity-badge{display:inline-flex}}
@media(max-width:480px){
  .alerts-page-v239 .alert-feed-panel-v239 .panel-header{align-items:stretch;flex-direction:column;gap:10px}
  .alerts-page-v239 .alert-feed-panel-v239 .panel-header>div:first-child{max-width:none}
  .alerts-page-v239 .alert-filter-v239{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .alerts-page-v239 .alert-filter-v239 button{width:100%;min-width:0}
  .alerts-page-v239 .alert-overview-card em{overflow:visible;white-space:normal;text-overflow:clip}
}

/* v0.24.0 — Field integration & production-readiness preflight */
.runtime-readiness-v240{overflow:hidden}.runtime-readiness-v240>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border)}.runtime-readiness-v240>header>div{min-width:0}.runtime-readiness-v240>header small{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em}.runtime-readiness-v240>header h2{margin:4px 0 3px;font-size:17px;line-height:1.25}.runtime-readiness-v240>header p{margin:0;max-width:720px;color:var(--muted);font-size:10px;line-height:1.5}.runtime-ready-status-v240{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;border:1px solid var(--border);border-radius:999px;font-size:9.5px;font-weight:800}.runtime-readiness-v240.ready .runtime-ready-status-v240{border-color:color-mix(in srgb,var(--green) 32%,var(--border));background:color-mix(in srgb,var(--green) 7%,var(--surface));color:var(--green)}.runtime-readiness-v240.blocked .runtime-ready-status-v240{border-color:color-mix(in srgb,var(--amber) 38%,var(--border));background:color-mix(in srgb,var(--amber) 8%,var(--surface));color:var(--amber)}
.runtime-ready-summary-v240{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border)}.runtime-ready-summary-v240 span{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-right:1px solid var(--border);color:var(--muted);font-size:8.8px}.runtime-ready-summary-v240 span:last-child{border-right:0}.runtime-ready-summary-v240 b{color:var(--foreground);font-size:14px;font-variant-numeric:tabular-nums}.runtime-ready-grid-v240{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-bottom:1px solid var(--border)}.runtime-ready-check-v240{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:62px;padding:10px 14px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.runtime-ready-check-v240:nth-child(even){border-right:0}.runtime-ready-check-v240>span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--surface-muted);color:var(--muted)}.runtime-ready-check-v240.pass>span{background:color-mix(in srgb,var(--green) 8%,var(--surface));color:var(--green)}.runtime-ready-check-v240.block>span{background:color-mix(in srgb,var(--amber) 10%,var(--surface));color:var(--amber)}.runtime-ready-check-v240 strong,.runtime-ready-warning-v240 strong{display:block;font-size:10px}.runtime-ready-check-v240 small,.runtime-ready-warning-v240 small{display:block;margin-top:2px;color:var(--muted);font-size:8.8px;line-height:1.4}.runtime-ready-check-v240>b,.runtime-ready-warning-v240>b{font-size:8px;letter-spacing:.04em;color:var(--muted)}.runtime-ready-check-v240.block>b{color:var(--amber)}
.runtime-ready-warnings-v240{padding:12px 14px;background:color-mix(in srgb,var(--amber) 2.5%,var(--surface))}.runtime-ready-warnings-v240>div:first-child{margin-bottom:8px}.runtime-ready-warnings-v240>div:first-child strong{display:block;font-size:10px}.runtime-ready-warnings-v240>div:first-child span{display:block;margin-top:2px;color:var(--muted);font-size:8.8px}.runtime-ready-warning-v240{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.runtime-ready-warning-v240>span{color:var(--amber)}.runtime-readiness-v240>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-muted);color:var(--muted);font-size:8.8px}.runtime-readiness-v240>footer>span{display:flex;align-items:center;gap:6px}.runtime-readiness-v240>footer b{color:var(--foreground);font-size:8.8px}
@media(max-width:800px){.runtime-ready-summary-v240{grid-template-columns:1fr 1fr}.runtime-ready-summary-v240 span:nth-child(2){border-right:0}.runtime-ready-grid-v240{grid-template-columns:1fr}.runtime-ready-check-v240{border-right:0}.runtime-readiness-v240>header{flex-direction:column}.runtime-readiness-v240>footer{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.runtime-ready-summary-v240 span{padding:10px 11px}.runtime-ready-check-v240{grid-template-columns:24px minmax(0,1fr);padding:10px 11px}.runtime-ready-check-v240>b{grid-column:2;justify-self:start}.runtime-ready-warning-v240{grid-template-columns:22px minmax(0,1fr)}.runtime-ready-warning-v240>b{grid-column:2}}

/* v0.24.1 — Field validation runbook & soak observability */
.field-validation-v241{overflow:hidden}.field-validation-v241>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border)}.field-validation-v241>header small{display:block;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.08em}.field-validation-v241>header h2{margin:4px 0 3px;font-size:17px;line-height:1.25}.field-validation-v241>header p{margin:0;max-width:760px;color:var(--muted);font-size:10px;line-height:1.55}.field-validation-state-v241{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;border:1px solid color-mix(in srgb,var(--amber) 38%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--amber) 7%,var(--surface));color:var(--amber);font-size:9px;font-weight:800}.field-validation-metrics-v241{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border)}.field-validation-metrics-v241 span{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border-right:1px solid var(--border)}.field-validation-metrics-v241 span:last-child{border-right:0}.field-validation-metrics-v241 small{color:var(--muted);font-size:8.8px}.field-validation-metrics-v241 b{font-size:13px;font-variant-numeric:tabular-nums}.field-validation-steps-v241{display:grid;grid-template-columns:1fr 1fr}.field-validation-step-v241{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:72px;padding:11px 14px;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.field-validation-step-v241:nth-child(even){border-right:0}.field-validation-step-v241:last-child{grid-column:1/-1;border-right:0}.field-validation-step-v241>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-muted);color:var(--muted);font-size:9px;font-weight:800}.field-validation-step-v241 strong{display:block;font-size:10px}.field-validation-step-v241 small{display:block;margin-top:3px;color:var(--muted);font-size:8.9px;line-height:1.45}.field-validation-step-v241>b{color:var(--amber);font-size:8px;letter-spacing:.04em}.field-validation-step-v241.hold{background:color-mix(in srgb,var(--amber) 2.5%,var(--surface))}.field-validation-v241>footer{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:12px 14px;background:var(--surface-muted)}.field-validation-v241>footer>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.field-validation-v241>footer strong{font-size:9px}.field-validation-v241>footer code{padding:4px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface);font-size:8px}.field-validation-v241>footer>span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:8.6px;text-align:right}
@media(max-width:800px){.field-validation-v241>header{flex-direction:column}.field-validation-metrics-v241{grid-template-columns:1fr 1fr}.field-validation-metrics-v241 span:nth-child(2){border-right:0}.field-validation-steps-v241{grid-template-columns:1fr}.field-validation-step-v241,.field-validation-step-v241:nth-child(even){border-right:0}.field-validation-step-v241:last-child{grid-column:auto}.field-validation-v241>footer{align-items:flex-start;flex-direction:column}.field-validation-v241>footer>span{text-align:left}}
@media(max-width:480px){.field-validation-step-v241{grid-template-columns:28px minmax(0,1fr);padding:10px 11px}.field-validation-step-v241>b{grid-column:2;justify-self:start}.field-validation-metrics-v241 span{padding:10px 11px}.field-validation-v241>footer code{font-size:7.6px}}

/* v0.24.2 — First Contact execution/evidence gate. Preserve v0.19 shell; improve operational evidence readability. */
.fc-eyebrow-v242{display:block;margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;line-height:1.35}.fc-intro-v242 .fc-intro h2,.fc-intro-v242 .fc-upload h2{font-size:14px}.fc-intro-v242 .fc-intro p,.fc-intro-v242 .fc-upload p{font-size:10px;line-height:1.55}.fc-intro-v242 .fc-intro small{font-size:9px;line-height:1.5}.fc-intro-v242 .fc-command code{font-size:9px}.fc-intro-v242 .fc-file-button{min-height:40px;font-size:10px}.fc-workflow-v242 .fc-flow{font-size:9.5px}.fc-boundary-v242{display:grid;grid-template-columns:26px auto 1fr;align-items:center;gap:8px;margin:0 12px 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--amber) 38%,var(--border));border-radius:8px;background:var(--amber-soft)}.fc-boundary-v242>span{color:var(--amber)}.fc-boundary-v242 strong{font-size:10px}.fc-boundary-v242 small{color:var(--muted);font-size:9px;line-height:1.45}
.fc-summary-v242 .fc-readiness h2{font-size:14px}.fc-summary-v242 .fc-readiness p{font-size:9.5px;line-height:1.5}.fc-summary-v242 .fc-target{font-size:9px}.fc-summary-v242 .fc-counter>span{font-size:9px}.fc-summary-v242 .fc-counter small{font-size:8.5px}.fc-integrity-value-v242{font-size:12px!important}.fc-gate-pair-v242{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:10px}.fc-gate-pair-v242 .fc-gate strong{font-size:10px}.fc-gate-pair-v242 .fc-gate small{font-size:8.5px}.fc-gate-pair-v242 .fc-gate>b{font-size:8.5px}.fc-operator-gate-v242{overflow:hidden}.fc-operator-grid-v242{display:grid;border-top:1px solid var(--border)}.fc-operator-check-v242{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;min-height:62px;padding:10px 12px;border-bottom:1px solid var(--border)}.fc-operator-check-v242>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--surface-muted)}.fc-operator-check-v242 strong{display:block;font-size:10px}.fc-operator-check-v242 small{display:block;margin-top:3px;color:var(--muted);font-size:8.5px;line-height:1.45}.fc-operator-check-v242>b{font-size:8.5px}.fc-operator-check-v242.pass>span,.fc-operator-check-v242.pass>b{color:var(--green)}.fc-operator-check-v242.pass>span{background:var(--green-soft)}.fc-operator-check-v242.block>span,.fc-operator-check-v242.block>b{color:var(--amber)}.fc-operator-check-v242.block>span{background:var(--amber-soft)}.fc-operator-gate-v242 footer{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;padding:11px 12px}.fc-operator-gate-v242 footer small{color:var(--muted);font-size:8.5px;line-height:1.45}
.fc-transport-v242{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 10px}.fc-transport-v242>div{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.fc-transport-v242 span{display:block;color:var(--muted);font-size:8.5px}.fc-transport-v242 strong{display:block;margin-top:4px;font-size:10.5px}.fc-transport-v242 small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.fc-transport-chips-v242{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px 12px}.fc-transport-chips-v242>div{padding:9px 10px;border:1px solid var(--border);border-radius:8px}.fc-transport-chips-v242>div>strong{display:block;margin-bottom:6px;font-size:9px}.fc-transport-chips-v242 span{display:inline-flex;align-items:center;gap:6px;margin:2px 4px 2px 0;padding:5px 7px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:8.5px}.fc-transport-chips-v242 span b{color:var(--foreground)}.fc-evidence-v242 dl{margin:0;padding:0 12px 12px}.fc-evidence-v242 dl>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.fc-evidence-v242 dl>div:last-child{border-bottom:0}.fc-evidence-v242 dt{color:var(--muted);font-size:8.5px}.fc-evidence-v242 dd{margin:0;font-size:9px;font-weight:650;overflow-wrap:anywhere}.fc-evidence-v242 code{font-size:8.5px}.fc-summary-v242+.fc-gate-pair-v242 .panel-header h3,.fc-detail-grid .panel-header h3,.fc-safety .panel-header h3,.fc-deployment .panel-header h3{font-size:10.5px}
@media(max-width:1100px){.fc-gate-pair-v242{grid-template-columns:1fr}.fc-transport-v242{grid-template-columns:1fr 1fr}.fc-transport-v242>div:last-child{grid-column:1/-1}}
@media(max-width:760px){.fc-boundary-v242{grid-template-columns:24px 1fr}.fc-boundary-v242 small{grid-column:2}.fc-transport-v242,.fc-transport-chips-v242{grid-template-columns:1fr}.fc-transport-v242>div:last-child{grid-column:auto}.fc-operator-gate-v242 footer{grid-template-columns:1fr}.fc-evidence-v242 dl>div{grid-template-columns:1fr;gap:3px}}

/* v0.24.4 — Reproducible deployment & configuration safety. Preserve v0.19 shell. */
.deployment-config-v244{overflow:hidden}.deployment-config-v244>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border)}.deployment-config-v244>header small{display:block;color:var(--muted);font-size:9px;font-weight:760;letter-spacing:.08em}.deployment-config-v244>header h2{margin:4px 0 3px;font-size:17px;line-height:1.25}.deployment-config-v244>header p{margin:0;max-width:760px;color:var(--muted);font-size:10px;line-height:1.55}.deployment-fingerprint-state-v244{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:var(--primary);font-size:9px;font-weight:800}.deployment-fingerprint-v244{display:grid;grid-template-columns:1.4fr .8fr .8fr;border-bottom:1px solid var(--border)}.deployment-fingerprint-v244>span{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-right:1px solid var(--border)}.deployment-fingerprint-v244>span:last-child{border-right:0}.deployment-fingerprint-v244 small{color:var(--muted);font-size:8.7px}.deployment-fingerprint-v244 code{width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:4px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface-muted);font-size:9px}.deployment-fingerprint-v244 b{font-size:10px}.deployment-config-grid-v244{display:grid;grid-template-columns:1fr 1fr}.deployment-config-grid-v244>div{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:64px;padding:10px 13px;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.deployment-config-grid-v244>div:nth-child(even){border-right:0}.deployment-config-grid-v244>div>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--surface-muted)}.deployment-config-grid-v244 strong{display:block;font-size:10px}.deployment-config-grid-v244 small{display:block;margin-top:3px;color:var(--muted);font-size:8.6px}.deployment-config-grid-v244 b{font-size:8px}.deployment-config-grid-v244 .locked>span,.deployment-config-grid-v244 .locked>b{color:var(--green)}.deployment-config-grid-v244 .locked>span{background:var(--green-soft)}.deployment-config-grid-v244 .review>span,.deployment-config-grid-v244 .review>b{color:var(--amber)}.deployment-config-grid-v244 .review>span{background:var(--amber-soft)}.deployment-config-v244>footer{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:11px 14px;background:var(--surface-muted)}.deployment-config-v244>footer>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.deployment-config-v244>footer strong{font-size:9px}.deployment-config-v244>footer code{padding:4px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface);font-size:8px}.deployment-config-v244>footer>span{display:flex;align-items:center;gap:5px;max-width:430px;color:var(--muted);font-size:8.5px;text-align:right}
@media(max-width:800px){.deployment-config-v244>header{flex-direction:column}.deployment-fingerprint-v244{grid-template-columns:1fr 1fr}.deployment-fingerprint-v244>span:first-child{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--border)}.deployment-config-grid-v244{grid-template-columns:1fr}.deployment-config-grid-v244>div{border-right:0}.deployment-config-v244>footer{align-items:flex-start;flex-direction:column}.deployment-config-v244>footer>span{text-align:left}}
@media(max-width:480px){.deployment-fingerprint-v244{grid-template-columns:1fr}.deployment-fingerprint-v244>span,.deployment-fingerprint-v244>span:first-child{grid-column:auto;border-right:0;border-bottom:1px solid var(--border)}.deployment-config-grid-v244>div{grid-template-columns:24px minmax(0,1fr)}.deployment-config-grid-v244>div>b{grid-column:2;justify-self:start}.deployment-config-v244>footer code{font-size:7.5px;overflow-wrap:anywhere}}
