/* BioPulse dashboard — seyarkai.com design tokens, violet accent for the health brand */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cobalt:#0064e0;--cobalt-deep:#0143b5;--cobalt-soft:rgba(0,100,224,.12);
  --ink:#0a1317;--charcoal:#444950;--slate:#606770;--steel:#8a8d91;--stone:#bec3c9;
  --canvas:#fff;--surface:#f0f2f5;--hairline:rgba(0,0,0,.12);--hairline-soft:rgba(0,0,0,.07);
  --violet:#7c3aed;--violet-soft:rgba(124,58,237,.12);
  --green:#1f9d55;--amber:#e07020;--red:#d4351c;
  --r-md:6px;--r-lg:8px;--r-xl:16px;--r-xxl:24px;--r-full:100px;
  --max-w:1280px;--ease:cubic-bezier(.4,0,.2,1);
}
body{font-family:'Instrument Sans','Helvetica Neue',Arial,sans-serif;background:var(--surface);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h3{font-family:'Bricolage Grotesque','Instrument Sans',sans-serif;font-size:15px;font-weight:600;margin-bottom:12px}
h3 .sub{font-weight:400;font-size:12px;color:var(--steel);text-transform:none;letter-spacing:0}

.nav{display:flex;align-items:center;gap:18px;background:var(--canvas);border-bottom:1px solid var(--hairline-soft);padding:12px 28px;position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:10px;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:21px;letter-spacing:-.4px}
.brand-logo{border-radius:6px;display:block}
.nav-title{font-size:14px;color:var(--slate)}
.nav-title em{font-style:normal;color:var(--violet);font-weight:600}
.nav-links{margin-left:auto;display:flex;gap:18px;font-size:14px;color:var(--slate)}
.nav-links a:hover{color:var(--ink)}

.disclaimer{background:#0a0612;color:rgba(255,255,255,.85);font-size:12.5px;text-align:center;padding:8px 24px;border-bottom:1px solid rgba(124,58,237,.35)}
.disclaimer strong{color:#b794f6}

.connect{max-width:var(--max-w);margin:18px auto 0;padding:0 24px;display:flex;flex-direction:column;gap:10px}
.connect-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.connect label{display:flex;flex-direction:column;font-size:12px;color:var(--slate);gap:4px}
.connect input[type=text],.connect input[type=password],.connect select{font-family:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--canvas);min-width:220px}
.connect label.auto{flex-direction:row;align-items:center;gap:6px}
.btn{border:1px solid var(--hairline);background:var(--canvas);border-radius:var(--r-full);padding:9px 20px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s var(--ease)}
.btn.cobalt{background:var(--violet);border-color:var(--violet);color:#fff}
.btn.cobalt:hover{background:#6b2fd0}
.btn.ghost:hover{border-color:var(--violet);color:var(--violet)}
.conn-status{font-size:13px;align-self:center}
.conn-status.ok{color:var(--green)}
.conn-status.err{color:var(--red)}

.grid{max-width:var(--max-w);margin:18px auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xxl);padding:20px}
.card.wide{grid-column:1 / -1}
.card canvas{width:100%;display:block}

.kpis{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0;background:none;border:none}
.kpi{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);padding:18px;display:flex;flex-direction:column;gap:2px;position:relative}
.kpi-num{font-family:'Bricolage Grotesque',sans-serif;font-size:30px;font-weight:600;color:var(--ink)}
.kpi-cap{font-size:12px;color:var(--steel)}
.kpi-badge{position:absolute;top:16px;right:16px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.5px}
.kpi-badge.low{background:rgba(31,157,85,.12);color:var(--green)}
.kpi-badge.moderate{background:rgba(224,112,32,.14);color:var(--amber)}
.kpi-badge.high{background:rgba(212,53,28,.12);color:var(--red)}

.gauge-caption{text-align:center;font-size:13px;color:var(--slate);margin-top:8px}

.alerts{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}
.alert{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--r-lg);background:var(--surface);font-size:13.5px}
.alert .sev{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:var(--r-full)}
.alert .sev.warning{background:rgba(224,112,32,.16);color:var(--amber)}
.alert .sev.critical{background:rgba(212,53,28,.14);color:var(--red)}
.alert time{margin-left:auto;color:var(--steel);font-size:12px}
.empty{color:var(--steel);font-size:13px}

.foot{max-width:var(--max-w);margin:8px auto 28px;padding:0 24px;font-size:12.5px;color:var(--steel)}
.foot a{color:var(--violet)}

@media (max-width:900px){.grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}}
