:root{
  --bg:#f3f5f7;--surface:#fff;--surface-2:#f7f9fb;--surface-hover:#eef2f5;
  --sidebar:#fff;--text:#252a30;--text-2:#555e68;--muted:#737d88;--faint:#929ba5;
  --border:#e5eaf0;--border-strong:#d6dfe6;--accent:#397d76;--accent-soft:#e9f3f1;
  --accent-text:#47645d;--shadow:0 3px 14px rgba(38,48,58,.045);--radius:14px;
  --row-stripe:#f7f9fb;--row-hover:#e6f2f0;
  --bs-body-bg:var(--bg);--bs-body-color:var(--text);--bs-border-color:var(--border);
  --bs-border-radius:.65rem;--bs-border-radius-lg:.85rem;
}
[data-theme="dark"]{
  --bg:#191c20;--surface:#22262b;--surface-2:#272b31;--surface-hover:#2e333a;
  --sidebar:#1e2227;--text:#e9ecef;--text-2:#c4c9cf;--muted:#a0a7b0;--faint:#858d97;
  --border:#343a42;--border-strong:#454d57;--accent:#87bcb3;--accent-soft:#2b3935;
  --accent-text:#bfd2cb;--shadow:0 4px 18px rgba(0,0,0,.14);
  --row-stripe:#24292f;--row-hover:#2e403d;
}
.metric-card,.panel,.login-card,.stats-toolbar,.workspace-switcher,.data-health{
  border-color:var(--border);border-radius:var(--radius);box-shadow:var(--shadow)
}
.metric-card,.panel{transition:border-color .18s ease,box-shadow .18s ease}
.metric-card:hover,.panel:hover{border-color:var(--border-strong);box-shadow:0 5px 18px rgba(38,48,58,.065)}
.button,.btn{border-radius:.65rem;font-weight:600;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.button-primary{background:var(--accent);border:1px solid var(--accent);color:#fff}
.button-primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000);border-color:var(--accent);color:#fff}
.button-secondary{border-color:var(--border-strong);box-shadow:0 1px 2px rgba(28,38,48,.025)}
.button-secondary:hover{border-color:var(--border-strong)}
.heading-actions input[type="date"],.select-wrap,.stats-field input,.stats-field select,.filter-row input,.stack-form input,.login-card input{
  border-radius:.65rem;border-color:var(--border-strong)
}
.table-scroll th,.mini-table th{background:var(--surface-2)}
.table-scroll tbody tr:nth-child(even)>td:not(.empty-state),.mini-table tbody tr:nth-child(even)>td:not(.empty-state){background:var(--row-stripe)}
.table-scroll tbody tr>td,.mini-table tbody tr>td{transition:background-color .14s ease,color .14s ease}
.table-scroll tbody tr:hover>td:not(.empty-state),.table-scroll tbody tr:focus-within>td:not(.empty-state),.mini-table tbody tr:hover>td:not(.empty-state),.mini-table tbody tr:focus-within>td:not(.empty-state){background:var(--row-hover);color:var(--text)}
.table-scroll tbody tr:hover>td:first-child,.table-scroll tbody tr:focus-within>td:first-child,.mini-table tbody tr:hover>td:first-child,.mini-table tbody tr:focus-within>td:first-child{box-shadow:inset 3px 0 var(--accent)}
.table-scroll th{background:var(--surface-2);color:var(--text-2);font-weight:600}
.nav-link,.workspace-switcher{border-radius:.75rem}
.nav-link.active{box-shadow:inset 2px 0 var(--accent)}
.page-footer{color:var(--muted)}
.nav-link{font-size:13px}
.breadcrumbs{font-size:12px}
.panel-heading h2{font-size:15px}
.metric-top{font-size:11px}
.metric-foot{font-size:10px}
.table-scroll th{font-size:10px}
.table-scroll td{font-size:11px}
.footnote{font-size:11px}
@media(prefers-reduced-motion:reduce){.metric-card,.panel,.button,.btn{transition:none}}

.stack-form{display:grid;gap:14px;margin-top:16px}
.stack-form label{display:grid;gap:7px;color:var(--text-2);font-size:13px;font-weight:600}
.stack-form input{width:100%;min-height:42px;padding:9px 12px;background:var(--surface);color:var(--text);font:inherit;font-size:14px}
.stack-form label small{color:var(--muted);font-size:12px;font-weight:400;line-height:1.5}
.stack-form .button{justify-self:start;min-height:42px;padding:0 16px}
.table-primary-secondary{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.table-primary-secondary strong{color:var(--text);font-weight:600}
.table-primary-secondary small{color:var(--muted);font-size:12px;line-height:1.4;white-space:normal}
.table-primary-secondary code{overflow-wrap:anywhere;color:inherit}

/* Shared Bootstrap-like layout and component layer for every dashboard page. */
.page-content{width:100%;max-width:none;margin:0;padding:30px clamp(18px,2.2vw,36px) 28px}
.page-heading{align-items:flex-end;gap:24px;margin-bottom:24px}
.heading-actions{gap:10px;flex-wrap:wrap}
.select-wrap,.heading-actions input[type="date"]{height:42px;border-radius:.65rem}
.select-wrap select,.heading-actions input[type="date"]{font-size:14px}
.metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px;margin-bottom:16px}
.metric-card,.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.metric-card{min-height:142px;padding:18px;overflow-wrap:anywhere}
.metric-top{min-height:22px;align-items:center;font-size:14px;font-weight:600}
.metric-value{display:block;margin-top:12px;font-size:28px;line-height:1.15;letter-spacing:-.6px}
.metric-foot{display:flex;margin-top:8px;font-size:13px;line-height:1.4}
.panel{min-width:0;padding:22px;margin-bottom:16px}
.panel>h2,.panel-heading h2{margin:0;color:var(--text);font-size:18px;font-weight:650;letter-spacing:-.2px;line-height:1.3}
.panel>p{color:var(--text-2);line-height:1.6}
.panel-heading{gap:16px;margin-bottom:14px}
.panel-heading p{margin-top:5px;line-height:1.5}
.split-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px;margin-bottom:16px;align-items:stretch}
.split-grid>.panel{height:100%;margin:0}
.stack-form{gap:16px;margin-top:18px}
.stack-form label{gap:8px;font-size:14px}
.stack-form input,.login-card input{height:44px;min-height:44px;padding:0 12px;border:1px solid var(--border-strong);border-radius:.65rem;background:var(--surface);color:var(--text);font:inherit;font-size:15px}
.stack-form input::placeholder,.filter-row input::placeholder{color:var(--faint);opacity:1}
.stack-form label small{font-size:13px}
.stack-form .button{min-height:42px;margin-top:2px;padding:0 18px}
.filter-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}
.filter-row label{display:flex;flex:1 1 210px;min-width:190px;flex-direction:column;gap:7px;color:var(--text-2);font-size:13px;font-weight:600}
.filter-row input,.stats-field input,.stats-field select{width:100%;height:42px;min-width:0;padding:0 12px;border:1px solid var(--border-strong);border-radius:.65rem;background:var(--surface);color:var(--text);font:inherit;font-size:14px}
.filter-row button{min-height:42px;white-space:nowrap}
.stats-toolbar{padding:18px;border-radius:var(--radius);background:var(--surface-2)}
.stats-field{gap:7px;font-size:13px}
.stats-period-row{gap:12px}
.button,.btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:.65rem;font-size:14px;line-height:1.3;font-weight:600;white-space:normal}
.button-primary{background:var(--accent);border:1px solid var(--accent);color:#fff}
.button-primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000);color:#fff}
.button-secondary{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-2)}
.button-secondary:hover{background:var(--surface-hover);color:var(--text)}
.button:focus-visible,.btn:focus-visible,.filter-row input:focus-visible,.stack-form input:focus-visible,.login-card input:focus-visible,.stats-field input:focus-visible,.stats-field select:focus-visible,.select-wrap:focus-within,.heading-actions input:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 48%,transparent);outline-offset:2px}
.table-scroll{overflow-x:auto;margin:16px -22px -4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.table-scroll table:not(.stats-table){width:100%;min-width:760px;border-collapse:separate;border-spacing:0;white-space:normal}
.table-scroll th{height:auto;padding:13px 14px;border-top:0;color:var(--muted);font-size:12px;font-weight:650;line-height:1.4;letter-spacing:.01em;text-align:left;vertical-align:middle}
.table-scroll td{height:auto;min-height:48px;padding:13px 14px;border-bottom:1px solid var(--border);color:var(--text-2);font-size:14px;line-height:1.5;text-align:left;vertical-align:middle}
.table-scroll th:first-child,.table-scroll td:first-child{padding-left:16px}
.table-scroll th:last-child,.table-scroll td:last-child{padding-right:16px}
.table-scroll tbody tr:last-child td{border-bottom:0}
.table-scroll td code,.table-primary-secondary code{font-family:var(--mono);font-size:.9em;overflow-wrap:anywhere;word-break:break-word}
.table-scroll td strong{color:var(--text);font-weight:600}
.table-scroll tbody tr>td{transition:background-color .14s ease,color .14s ease}
.table-scroll tbody tr:hover>td:not(.empty-state),.table-scroll tbody tr:focus-within>td:not(.empty-state){background:var(--row-hover);color:var(--text)}
.table-scroll tbody tr:hover>td:first-child,.table-scroll tbody tr:focus-within>td:first-child{box-shadow:inset 3px 0 var(--accent)}
.empty-state{padding:34px 20px!important;background:var(--surface-2)!important;color:var(--muted);font-size:14px;line-height:1.6;text-align:center!important;white-space:normal}
.status{display:inline-flex;min-height:28px;align-items:center;gap:6px;padding:4px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap}
.status-active{border-color:color-mix(in srgb,var(--green) 25%,var(--border));background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}
.status-paused{border-color:color-mix(in srgb,var(--amber) 25%,var(--border));background:color-mix(in srgb,var(--amber) 12%,var(--surface));color:var(--amber)}
.status-archived{border-color:var(--border);background:var(--surface-2);color:var(--muted)}
.flash{margin:0 0 16px;padding:13px 16px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:.75rem;background:var(--accent-soft);color:var(--accent-text);font-size:14px;line-height:1.5}
.flash.error{border-color:color-mix(in srgb,var(--red) 35%,var(--border));background:color-mix(in srgb,var(--red) 10%,var(--surface));color:var(--red)}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;color:var(--muted);font-size:14px}
.pagination .button{min-height:40px}
.signal-details summary{min-height:38px;padding:8px 10px;border-radius:.6rem;background:var(--surface-2);font-size:13px;line-height:1.4}
.signal-details dl{gap:8px 12px;min-width:min(320px,75vw)}
.signal-details dd{overflow-wrap:anywhere;word-break:break-word;line-height:1.45}
.footnote{margin-top:14px;font-size:13px;line-height:1.6}
.page-footer{gap:14px;padding-top:14px;border-top:1px solid var(--border);font-size:12px;line-height:1.5}
.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:var(--bg)}
.login-card{display:grid;width:min(100%,440px);gap:16px;padding:32px;border:1px solid var(--border);border-radius:1rem;background:var(--surface);box-shadow:var(--shadow)}
.login-card .brand-name{margin-bottom:4px}
.login-card h1{margin:0;font-size:26px;line-height:1.2}
.login-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.login-card label{display:grid;gap:8px;color:var(--text-2);font-size:14px;font-weight:600}
.login-card .button{width:100%;min-height:46px;margin-top:2px}
.page-heading #page-subtitle{max-width:72ch;line-height:1.5}
.data-health{padding:12px;border-radius:.75rem}
.data-health strong{font-size:13px}
.data-health small{font-size:12px}
.status-pill{padding:5px 10px;font-size:12px}
@media(max-width:900px){.page-content{padding:24px 18px}.page-heading{align-items:flex-start}.split-grid{grid-template-columns:1fr}.heading-actions{width:100%}.filter-row label{flex-basis:calc(50% - 12px)}}
@media(max-width:620px){.page-content{padding:20px 14px 24px}.page-heading{gap:16px;margin-bottom:18px}.heading-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.heading-actions .select-wrap{grid-column:1/-1;width:100%}.heading-actions input[type="date"]{width:100%;min-width:0}.heading-actions .button{grid-column:1/-1;width:100%}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{min-height:128px;padding:14px}.metric-top{font-size:13px}.metric-value{margin-top:10px;font-size:24px}.metric-foot{font-size:12px}.panel{padding:17px}.panel-heading{flex-direction:column;align-items:flex-start}.table-scroll{margin-right:-17px;margin-left:-17px;border-right:0;border-left:0;border-radius:0}.table-scroll th,.table-scroll td{padding:11px 12px}.table-scroll th:first-child,.table-scroll td:first-child{padding-left:17px}.table-scroll th:last-child,.table-scroll td:last-child{padding-right:17px}.filter-row{display:grid;grid-template-columns:minmax(0,1fr);gap:11px;padding:13px}.filter-row label{min-width:0}.filter-row button{width:100%}.stack-form .button{width:100%}.pagination{justify-content:center}.pagination span{width:100%;order:3;text-align:center}.login-card{padding:24px}.page-footer{flex-direction:column;gap:4px}.stats-period-row .period-control{width:100%}}

/* Slightly larger type across navigation, filters, and dense data views. */
body{font-size:17px}
.nav-link{font-size:16px}
.breadcrumbs{font-size:15px}
.live-status,.page-heading #page-subtitle,.panel-heading p{font-size:15px}
.select-wrap select,.heading-actions input[type="date"],.stats-field input,.stats-field select,.button{font-size:14px}
.metric-top{font-size:14px}
.metric-foot{font-size:13px}
.panel-heading h2{font-size:18px}
.table-scroll th{font-size:13px}
.table-scroll td{font-size:14px}
.stats-field{font-size:13px}
.signal-details summary{font-size:13px}
.signal-details dt{font-size:12px}
.signal-details dd{font-size:13px}
.footnote{font-size:14px}
.page-footer{font-size:12px}
