/* ════════════════════════════════════════════════════
   CLINSTRUX — DESIGN TOKENS (DARK ENTERPRISE THEME)
════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Dark graphite enterprise theme */
  --navy:#d6d1cb;
  --navy-mid:#b8b3ad;
  --navy-deep:#1a1a1a;
  --blue:#cc7546;
  --blue-light:rgba(204,117,70,0.12);
  --slate:#7a7570;
  /* Layered dark surfaces — graphite */
  --bg:#2B2B2B;
  --bg2:#323232;
  --white:#343434;
  --text:#c4bfb9;
  --muted:#6e6a65;
  --border:#424240;
  --border-light:#3c3c3a;
  /* Status colors — slightly desaturated for dark UI */
  --green:#3aaa78;
  --green-bg:rgba(58,170,120,0.10);
  --amber:#c48a30;
  --amber-bg:rgba(196,138,48,0.10);
  --red:#c04040;
  --red-bg:rgba(192,64,64,0.10);
  --sidebar:260px;
  --topbar:52px;
  --radius:5px;
  --uncertain:#9a8860;
  --uncertain-bg:rgba(154,136,96,0.10);
  --uncertain-border:rgba(154,136,96,0.22);
  /* Orange accent — the primary interactive color */
  --accent:#cc7546;
  --accent-dim:rgba(204,117,70,0.14);
  --accent-border:rgba(204,117,70,0.28);
  /* Intervention/review card surfaces — darker than standard cards */
  --card-pi:#212121;
  --card-pi-header:#1c1c1c;
  --card-pi-strip:#1e1e1e;
  --card-pi-divider:#2e2e2c;
  /* Text tiers calibrated for dark card surfaces */
  --pi-text-primary:#d0cbc5;
  --pi-text-secondary:#b0aaa3;
  --pi-text-label:#8e8880;
  --pi-text-dim:#72706b;
}

body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased;color-scheme:dark;}


/* ════════════════════════════════════════════════════
   SHARED UTILITIES
════════════════════════════════════════════════════ */

/* Flex row helpers */
.flex-row{display:flex;align-items:center;}
.flex-col{display:flex;flex-direction:column;}

/* Status dots (5×5) */
.status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.status-dot.dot-green{background:var(--green);}
.status-dot.dot-amber{background:var(--amber);}
.status-dot.dot-red{background:var(--red);}
.status-dot.dot-blue{background:var(--accent);}

/* Small badge — shared base used by many systems */
.badge{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:3px;white-space:nowrap;letter-spacing:0.2px;}
.badge-green,.badge-best{background:var(--green-bg);color:var(--green);}
.badge-amber,.badge-cond{background:var(--amber-bg);color:var(--amber);}
.badge-red,.badge-avoid{background:var(--red-bg);color:var(--red);}
.badge-blue,.badge-adj{background:rgba(204,117,70,0.12);color:var(--accent);}

/* Dot-row (used in glance tables) */
.dot-row{display:flex;gap:2.5px;}
.dot{width:6px;height:6px;border-radius:50%;}
.dot.filled{background:var(--text);}
.dot.empty{background:var(--border);}
.dot.filled.green{background:var(--green);}
.dot.filled.amber{background:var(--amber);}
.dot.filled.red{background:var(--red);}

/* Generic card panel */
.panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border-light);}
.panel-head-title{font-size:9px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:7px;}

/* Shared section/subsection label */
.section-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;}

/* Shared eyebrow */
.eyebrow{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:var(--muted);}

/* Shared left-border callout blocks */
.callout{padding:10px 14px;margin:10px 0;border-radius:0 4px 4px 0;font-size:11.5px;line-height:1.55;}
.callout-red{background:var(--red-bg);border:1px solid rgba(184,50,41,0.15);border-left:3px solid var(--red);}
.callout-amber{background:var(--amber-bg);border:1px solid rgba(184,122,0,0.15);border-left:3px solid var(--amber);}
.callout-blue{background:rgba(204,117,70,0.05);border:1px solid rgba(204,117,70,0.14);border-left:3px solid var(--accent);}
.callout-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;margin-bottom:4px;}
.callout-red .callout-label{color:var(--red);}
.callout-amber .callout-label{color:var(--amber);}
.callout-blue .callout-label{color:var(--accent);}


/* ════════════════════════════════════════════════════
   UNCERTAINTY-AWARE COMPONENTS
════════════════════════════════════════════════════ */

/* Inline flag chip */
.uq-flag{
  display:inline-flex;align-items:center;gap:3px;
  font-size:9px;font-weight:600;letter-spacing:0.2px;
  padding:1.5px 5px;border-radius:3px;
  background:var(--uncertain-bg);border:1px solid var(--uncertain-border);
  color:var(--uncertain);white-space:nowrap;vertical-align:middle;margin-left:4px;
}
.uq-flag-dot{width:4px;height:4px;border-radius:50%;background:var(--uncertain);flex-shrink:0;}

/* Missing data chip */
.uq-missing{
  display:inline-flex;align-items:center;gap:3px;
  font-size:9px;font-weight:600;
  padding:1.5px 6px;border-radius:3px;
  background:rgba(90,112,144,0.08);border:1px solid rgba(90,112,144,0.18);
  color:var(--muted);white-space:nowrap;
}

/* Data quality row */
.uq-note{font-size:10px;color:var(--uncertain);margin-top:3px;line-height:1.4;display:flex;align-items:flex-start;gap:4px;}
.uq-note::before{content:'~';font-weight:700;flex-shrink:0;font-size:10px;opacity:0.7;}

/* Confidence qualifier */
.uq-conf-qualifier{font-size:10px;color:var(--uncertain);font-style:italic;margin-top:3px;display:flex;align-items:center;gap:5px;}
.uq-conf-qualifier::before{content:'';display:inline-block;width:10px;height:1px;background:var(--uncertain);opacity:0.6;flex-shrink:0;}

/* Confidence band modifier */
.uq-conf-band{font-size:9.5px;font-weight:500;color:var(--uncertain);margin-left:3px;opacity:0.8;}

/* Pathway caution note */
.uq-pathway-note{
  display:flex;align-items:flex-start;gap:6px;
  font-size:11px;color:var(--uncertain);
  margin-top:6px;padding:5px 9px;
  background:var(--uncertain-bg);border:1px solid var(--uncertain-border);
  border-radius:4px;line-height:1.45;
}
.uq-pathway-note-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;color:var(--uncertain);flex-shrink:0;margin-top:1px;}

/* Escalation qualifier */
.uq-escalation-qualifier{font-size:10.5px;color:var(--uncertain);margin-top:4px;padding-left:10px;border-left:2px solid var(--uncertain-border);line-height:1.45;}

/* Adherence caveat */
.uq-adherence-caveat{font-size:11px;color:var(--uncertain);margin-top:6px;padding:6px 10px;background:var(--uncertain-bg);border-left:2px solid var(--uncertain-border);line-height:1.5;}

/* Evidence caveat — box style */
.uq-evidence-caveat{
  font-size:11px;color:var(--uncertain);
  display:flex;align-items:flex-start;gap:5px;
  margin-top:4px;padding:5px 9px;
  background:var(--uncertain-bg);border:1px solid var(--uncertain-border);
  border-radius:3px;line-height:1.5;
}

/* Renal trend */
.uq-renal-trend{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--uncertain);margin-top:5px;font-style:italic;}

/* Intolerance caveat */
.uq-intol-caveat{font-size:10.5px;color:var(--uncertain);margin-top:3px;line-height:1.45;padding-left:9px;border-left:1px solid var(--uncertain-border);}


/* ════════════════════════════════════════════════════
   LAYOUT
════════════════════════════════════════════════════ */
.dp-wrap{display:flex;min-height:100vh;width:100%;max-width:100%;margin:0 auto;}


/* ════════════════════════════════════════════════════
   SIDEBAR
════════════════════════════════════════════════════ */
.dp-sidebar{
  width:var(--sidebar);flex-shrink:0;
  background:#262626;
  position:sticky;top:0;height:100vh;
  overflow-y:auto;display:flex;flex-direction:column;
  border-right:1px solid rgba(255,255,255,0.08);
}

/* Logo */
.dp-logo{
  padding:14px 16px 12px;
  border-bottom:1px solid rgba(255,255,255,0.07);
  display:flex;align-items:center;flex-shrink:0;
}
.dp-logo-img{
  height:34px;
  width:auto;
  max-width:220px;
  object-fit:contain;
  display:block;
}
.dp-logo-symbol{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* Scenario header */
.dp-sidebar-top{padding:13px 16px;border-bottom:1px solid rgba(255,255,255,0.06);}
.dp-back{
  display:flex;align-items:center;gap:5px;
  font-size:11px;color:rgba(255,255,255,0.44);text-decoration:none;
  margin-bottom:11px;transition:color 0.2s;letter-spacing:0.1px;
}
.dp-back:hover{color:rgba(255,255,255,0.80);}
.dp-scenario-label{font-size:9px;font-weight:600;color:rgba(255,255,255,0.34);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:4px;}
.dp-scenario-title{font-size:12px;font-weight:500;color:rgba(255,255,255,0.85);line-height:1.4;}
.dp-scenario-meta{font-size:10.5px;color:rgba(255,255,255,0.40);margin-top:5px;display:flex;align-items:center;gap:4px;}
.dp-scenario-status{
  display:inline-flex;align-items:center;gap:4px;
  font-size:9.5px;font-weight:600;letter-spacing:0.3px;
  padding:2px 7px;border-radius:3px;
  background:rgba(42,157,110,0.18);color:rgba(80,210,145,0.9);margin-top:6px;
}
.dp-scenario-status::before{content:'';width:5px;height:5px;border-radius:50%;background:rgba(80,210,145,0.9);flex-shrink:0;}

/* Nav */
.dp-nav{padding:10px 8px 4px;flex:1;overflow-y:auto;}

.dp-nav-phase{padding:12px 10px 3px;}
.dp-nav-phase-label{
  font-size:8px;font-weight:700;color:rgba(255,255,255,0.30);
  text-transform:uppercase;letter-spacing:1.1px;
  border-left:1px solid rgba(255,255,255,0.14);padding-left:7px;
}
/* Legacy label class */
.dp-nav-label{font-size:8.5px;font-weight:700;color:rgba(255,255,255,0.32);text-transform:uppercase;letter-spacing:1px;padding:8px 10px 4px;}

.dp-nav-item{
  display:flex;align-items:center;gap:9px;
  padding:7px 9px;border-radius:5px;
  font-size:11.5px;color:rgba(255,255,255,0.56);font-weight:400;
  cursor:pointer;transition:all 0.15s;margin-bottom:1px;
  border:none;background:none;width:100%;text-align:left;font-family:inherit;
}
.dp-nav-item:hover{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.90);}
.dp-nav-item.active{background:rgba(204,117,70,0.14);color:rgba(255,255,255,0.95);font-weight:500;}

.dp-nav-num{
  width:18px;height:18px;border-radius:4px;
  font-size:9px;font-weight:700;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.44);
}
.dp-nav-item.active .dp-nav-num{background:rgba(204,117,70,0.35);color:rgba(255,220,190,0.95);}

.dp-nav-check{margin-left:auto;opacity:0;color:rgba(80,210,145,0.8);flex-shrink:0;}
.dp-nav-item.done .dp-nav-check{opacity:1;}

.dp-nav-divider{height:1px;background:rgba(255,255,255,0.09);margin:6px 10px;}

.dp-nav-item-inner{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.dp-nav-item-title{font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-nav-item-tag{
  font-size:8.5px;font-weight:700;letter-spacing:0.3px;
  text-transform:uppercase;align-self:flex-start;
  padding:1px 5px;border-radius:3px;
}
.tag-red{background:rgba(184,50,41,0.22);color:rgba(230,120,110,0.9);}
.tag-amber{background:rgba(184,122,0,0.20);color:rgba(220,165,60,0.9);}
.tag-green{background:rgba(42,157,110,0.18);color:rgba(80,210,145,0.9);}

/* Risk strip */
.dp-risk-strip{
  padding:10px 16px;
  background:rgba(0,0,0,0.15);
  border-bottom:1px solid rgba(255,255,255,0.05);
  display:flex;flex-direction:column;gap:5px;
}
.dp-risk-strip-row{display:flex;align-items:center;gap:7px;}
.dp-risk-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.dp-risk-dot-red{background:rgba(220,80,70,0.9);}
.dp-risk-dot-amber{background:rgba(210,155,40,0.85);}
.dp-risk-dot-green{background:var(--green);}
.dp-risk-text{font-size:10px;color:rgba(255,255,255,0.52);line-height:1.3;}

/* Sidebar intervention row */
.dp-risk-strip-intervention{margin-top:3px;padding-top:5px;border-top:1px solid rgba(255,255,255,0.06);}

/* Monitoring burden widget */
.dp-monitor-widget{padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,0.06);flex-shrink:0;}
.dp-monitor-head{
  display:flex;align-items:center;gap:5px;
  font-size:8.5px;font-weight:700;color:rgba(255,255,255,0.34);
  text-transform:uppercase;letter-spacing:0.9px;margin-bottom:9px;
}
.dp-monitor-bars{display:flex;flex-direction:column;gap:6px;}
.dp-monitor-row{display:flex;align-items:center;gap:7px;}
.dp-monitor-label{font-size:10px;color:rgba(255,255,255,0.44);width:62px;flex-shrink:0;}
.dp-monitor-track{flex:1;height:3px;background:rgba(255,255,255,0.07);border-radius:2px;overflow:hidden;}
.dp-monitor-fill{height:100%;border-radius:2px;transition:width 0.5s ease;}
.dp-mf-amber{background:rgba(200,150,40,0.55);}
.dp-mf-red{background:rgba(210,70,60,0.55);}
.dp-monitor-val{font-size:9.5px;color:rgba(255,255,255,0.38);width:24px;text-align:right;flex-shrink:0;}
.dp-monitor-next{
  display:flex;align-items:center;gap:5px;
  font-size:9.5px;color:rgba(255,255,255,0.34);
  margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.05);
}

/* Sidebar footer & user profile */
.dp-sidebar-footer{border-top:1px solid rgba(255,255,255,0.06);}
.dp-user-profile{
  padding:11px 16px;display:flex;align-items:center;gap:9px;
  cursor:pointer;transition:background 0.15s;border-bottom:1px solid rgba(255,255,255,0.06);
}
.dp-user-profile:hover{background:rgba(255,255,255,0.04);}
.dp-user-avatar{
  width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.85);
  display:flex;align-items:center;justify-content:center;
  font-size:10.5px;font-weight:700;flex-shrink:0;border:1px solid rgba(255,255,255,0.1);
}
.dp-user-name{font-size:11.5px;font-weight:600;color:rgba(255,255,255,0.90);}
.dp-user-org{font-size:10px;color:rgba(255,255,255,0.44);}

.dp-util-nav{padding:5px 8px 8px;}
.dp-util-item{
  display:flex;align-items:center;gap:9px;
  padding:6.5px 10px;border-radius:5px;
  font-size:11.5px;color:rgba(255,255,255,0.46);font-weight:400;
  cursor:pointer;transition:all 0.15s;margin-bottom:1px;
  border:none;background:none;width:100%;text-align:left;font-family:inherit;
}
.dp-util-item:hover{background:rgba(255,255,255,0.04);color:rgba(255,255,255,0.78);}
.dp-util-item.signout:hover{color:rgba(255,110,90,0.75);}


/* ════════════════════════════════════════════════════
   MAIN / TOPBAR / CONTENT
════════════════════════════════════════════════════ */
.dp-main{flex:1;min-width:0;display:flex;flex-direction:column;}

.dp-topbar{
  height:var(--topbar);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 32px;
  background:#2e2e2e;border-bottom:1px solid rgba(255,255,255,0.09);
  flex-shrink:0;position:sticky;top:0;z-index:100;
}
.dp-topbar-left{display:flex;align-items:center;gap:0;}
.dp-topbar-meta{display:flex;align-items:center;gap:14px;}
.dp-topbar-case{font-size:11px;font-weight:600;color:rgba(255,255,255,0.50);display:flex;align-items:center;gap:6px;}
.dp-topbar-case-id{
  font-size:10.5px;font-weight:700;color:rgba(255,255,255,0.88);
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);
  padding:2px 8px;border-radius:3px;letter-spacing:0.3px;
}
.dp-topbar-sep{width:1px;height:16px;background:rgba(255,255,255,0.14);}
.dp-topbar-status{font-size:10.5px;font-weight:600;color:rgba(60,195,120,0.95);display:flex;align-items:center;gap:5px;}
.dp-topbar-status::before{content:'';width:5px;height:5px;border-radius:50%;background:rgba(60,195,120,0.95);flex-shrink:0;}
.dp-topbar-session{font-size:10.5px;color:rgba(255,255,255,0.40);display:flex;align-items:center;gap:5px;}
.dp-topbar-right{display:flex;align-items:center;gap:6px;}
.dp-topbar-timestamp{font-size:10.5px;color:rgba(255,255,255,0.40);padding:0 10px;border-right:1px solid rgba(255,255,255,0.12);margin-right:4px;}

.dp-evidence-badge{
  display:flex;align-items:center;gap:5px;
  background:rgba(42,157,110,0.20);color:rgba(70,205,135,0.95);
  font-size:10.5px;font-weight:600;padding:3px 9px;
  border-radius:3px;border:1px solid rgba(42,157,110,0.32);letter-spacing:0.1px;
}
.dp-action-btn{
  display:flex;align-items:center;gap:5px;
  background:none;border:1px solid rgba(255,255,255,0.16);
  border-radius:5px;padding:5px 12px;
  font-size:11.5px;font-weight:500;color:rgba(255,255,255,0.58);
  cursor:pointer;font-family:inherit;transition:all 0.15s;
}
.dp-action-btn:hover{border-color:rgba(255,255,255,0.38);color:rgba(255,255,255,0.90);background:rgba(255,255,255,0.07);}
.dp-action-btn.primary{background:rgba(204,117,70,0.22);color:rgba(255,220,190,0.95);border-color:rgba(204,117,70,0.40);}
.dp-action-btn.primary:hover{background:rgba(204,117,70,0.32);}
.dp-topbar-more{
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,0.16);border-radius:5px;cursor:pointer;
  color:rgba(255,255,255,0.48);font-size:14px;transition:all 0.15s;background:none;font-family:inherit;
}
.dp-topbar-more:hover{border-color:rgba(255,255,255,0.36);color:rgba(255,255,255,0.90);background:rgba(255,255,255,0.07);}

/* Content area */
.dp-content{flex:1;padding:26px 32px;}

/* Sections */
.dp-section{display:none;position:relative;}
.dp-section.active{display:block;}

/* Section headers */
.dp-section-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;}
.dp-section-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.9px;margin-bottom:4px;}
.dp-section-title{font-family:'DM Serif Display',serif;font-size:20px;color:var(--navy);letter-spacing:-0.1px;line-height:1.2;}
.dp-section-subtitle{font-size:12px;color:var(--muted);margin-top:3px;}

/* Shared section divider & subsection label */
.dp-section-divider{height:1px;background:var(--border-light);margin:20px 0;}
.dp-subsection-label{
  font-size:9.5px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:0.7px;
  margin-bottom:10px;display:flex;align-items:center;gap:7px;
}
.dp-subsection-label::after{content:'';flex:1;height:1px;background:var(--border-light);}

/* Shared disclaimer */
.dp-disclaimer{
  margin-top:16px;display:flex;align-items:center;gap:7px;
  font-size:11px;color:var(--muted);padding:9px 13px;
  background:var(--white);border:1px solid var(--border);border-radius:6px;
}


/* ════════════════════════════════════════════════════
   SCENARIO INPUT
════════════════════════════════════════════════════ */
.si-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;}
.si-card-top{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;border-bottom:1px solid var(--border-light);background:var(--bg);
}
.si-card-label{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;display:flex;align-items:center;gap:6px;}
.si-edit-btn{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--accent);background:none;border:none;cursor:pointer;font-family:inherit;}
.si-edit-btn:hover{text-decoration:underline;}
.si-body{padding:18px;}

.si-patient-row{display:flex;align-items:flex-start;gap:16px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border-light);}
.si-icon-block{width:48px;height:48px;border-radius:8px;background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--slate);}
.si-patient-name{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:2px;}
.si-patient-sub{font-size:11.5px;color:var(--muted);}
.si-patient-badges{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap;}
.si-patient-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;letter-spacing:0.2px;}
.si-pbadge-red{background:var(--red-bg);color:var(--red);}
.si-pbadge-amber{background:var(--amber-bg);color:var(--amber);}
.si-pbadge-blue{background:rgba(204,117,70,0.12);color:var(--accent);}

.si-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.si-grid-item{padding:13px 16px;border-right:1px solid var(--border-light);}
.si-grid-item:last-child{border-right:none;}
.si-item-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:5px;display:flex;align-items:center;gap:5px;}
.si-item-value{font-size:12.5px;font-weight:500;color:var(--navy);line-height:1.45;}

.si-sev-bar{display:flex;gap:2.5px;margin-top:5px;margin-bottom:3px;}
.si-sev-dot{width:20px;height:4px;border-radius:2px;background:var(--border);}
.si-sev-dot.filled{background:var(--amber);}
.si-sev-label{font-size:10px;color:var(--amber);font-weight:600;}

/* Goals row */
.si-goals-row{padding:12px 16px;border-top:1px solid var(--border-light);display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.si-goals-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;margin-right:2px;white-space:nowrap;}
.si-goal-chip{
  display:flex;align-items:center;gap:4px;
  background:var(--green-bg);border:1px solid rgba(42,157,110,0.16);
  color:var(--green);font-size:11px;font-weight:500;
  padding:2.5px 9px;border-radius:100px;
}

/* Med history */
.si-med-section{padding:13px 16px;border-top:1px solid var(--border-light);display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.si-med-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:7px;}
.si-med-item{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text);padding:3px 0;}
.si-med-item::before{content:'·';color:var(--muted);font-weight:700;flex-shrink:0;}

/* Patient preferences */
.si-prefs-row{padding:12px 16px;border-top:1px solid var(--border-light);display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.si-prefs-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;margin-right:2px;}
.si-pref-chip{font-size:10.5px;font-weight:500;color:var(--accent);background:rgba(204,117,70,0.08);border:1px solid rgba(204,117,70,0.18);padding:2px 8px;border-radius:100px;}


/* ════════════════════════════════════════════════════
   DECISION OUTPUT — PRIMARY RECOMMENDATION
════════════════════════════════════════════════════ */
.ds-primary{
  background:var(--navy-deep);
  border:1px solid rgba(255,255,255,0.07);border-left:4px solid var(--green);
  border-radius:var(--radius);padding:30px 32px 26px;margin-bottom:14px;
  position:relative;overflow:hidden;
}
.ds-primary::before{
  content:'';position:absolute;top:0;right:0;
  width:320px;height:320px;border-radius:50%;
  background:rgba(42,157,110,0.03);
  transform:translate(40%,-40%);pointer-events:none;
}
.ds-primary-eyebrow{
  font-size:9px;font-weight:700;color:rgba(42,157,110,0.85);
  text-transform:uppercase;letter-spacing:1.2px;
  margin-bottom:14px;display:flex;align-items:center;gap:10px;
}
.ds-primary-eyebrow::before{content:'';width:18px;height:2px;background:var(--green);border-radius:1px;}
.ds-primary-eyebrow::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.05);}

.ds-primary-rec{display:flex;align-items:flex-start;gap:16px;margin-bottom:10px;flex-wrap:wrap;}
.ds-primary-drug{font-family:'DM Serif Display',serif;font-size:40px;color:white;line-height:1.0;letter-spacing:-0.5px;}
.ds-primary-state{
  background:var(--green);color:white;
  font-size:9.5px;font-weight:700;letter-spacing:0.6px;
  padding:4px 11px;border-radius:3px;
  margin-top:10px;flex-shrink:0;text-transform:uppercase;
}
.ds-primary-rationale{
  font-size:13px;color:rgba(255,255,255,0.55);
  margin-bottom:18px;line-height:1.65;max-width:640px;
  border-left:1px solid rgba(255,255,255,0.08);padding-left:14px;
}

/* Evidence chips on primary card */
.ds-primary-ev-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
.ds-primary-ev-chip{
  font-size:9.5px;font-weight:600;letter-spacing:0.2px;
  padding:2.5px 9px;border-radius:3px;
  background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);
  border:1px solid rgba(255,255,255,0.09);white-space:nowrap;
}
.ds-primary-ev-chip.strong{background:rgba(42,157,110,0.18);color:rgba(80,210,145,0.9);border-color:rgba(42,157,110,0.2);}
.ds-primary-ev-chip.caution{background:rgba(184,122,0,0.18);color:rgba(230,165,50,0.9);border-color:rgba(184,122,0,0.2);}

/* Confidence strip */
.ds-conf-strip{display:flex;align-items:center;gap:20px;padding:16px 20px;background:rgba(255,255,255,0.05);border-radius:6px;margin-bottom:20px;flex-wrap:wrap;}
.ds-conf-main{display:flex;align-items:center;gap:12px;}
.ds-conf-pct{font-family:'DM Serif Display',serif;font-size:30px;color:rgba(80,210,145,0.95);line-height:1;}
.ds-conf-label{font-size:10px;font-weight:700;color:rgba(80,210,145,0.85);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px;}
.ds-conf-desc{font-size:11.5px;color:rgba(255,255,255,0.45);line-height:1.4;}
.ds-conf-bar{height:3px;background:rgba(255,255,255,0.1);border-radius:2px;width:100px;margin-top:5px;}
.ds-conf-bar-fill{height:100%;width:82%;background:rgba(80,210,145,0.8);border-radius:2px;}
.ds-conf-tags{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;}
.ds-conf-tag{
  font-size:10px;font-weight:600;letter-spacing:0.2px;
  padding:3px 9px;border-radius:3px;
  background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.55);
  border:1px solid rgba(255,255,255,0.1);white-space:nowrap;
}
.ds-conf-tag.green{background:rgba(42,157,110,0.2);color:rgba(80,210,145,0.85);border-color:rgba(42,157,110,0.2);}
.ds-conf-tag.amber{background:rgba(184,122,0,0.2);color:rgba(230,165,50,0.85);border-color:rgba(184,122,0,0.2);}

/* Info columns */
.ds-primary-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.08);}
.ds-pcol-label{font-size:9px;font-weight:700;color:rgba(255,255,255,0.25);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:6px;}
.ds-pcol-val{font-size:12px;color:rgba(255,255,255,0.75);line-height:1.55;}
.ds-pcol-pill{display:inline-block;font-size:9.5px;font-weight:700;padding:1.5px 7px;border-radius:3px;margin-left:5px;vertical-align:middle;}
.ds-pcol-avoid{background:rgba(184,50,41,0.3);color:#ff9b8e;}
.ds-pcol-alt{background:rgba(184,122,0,0.25);color:#f5c26e;}
.ds-pcol-cond{background:rgba(204,117,70,0.25);color:rgba(255,210,175,0.9);}

/* Why-changed trigger note */
.ds-primary-trigger-note{
  display:none;margin-top:12px;padding:9px 14px;
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);
  border-left:3px solid rgba(204,117,70,0.6);border-radius:0 4px 4px 0;
  font-size:11px;color:rgba(255,255,255,0.65);line-height:1.55;
}
.ds-primary-trigger-note.visible{display:block;}
.ds-primary-trigger-note-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:rgba(204,117,70,0.85);margin-bottom:4px;}

/* Preferred detail card */
.ds-preferred{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--green);border-radius:var(--radius);padding:22px 24px;margin-bottom:12px;}
.ds-preferred-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;}
.ds-preferred-label{font-size:9px;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:0.9px;margin-bottom:5px;display:flex;align-items:center;gap:5px;}
.ds-preferred-label::before{content:'';width:8px;height:2px;background:var(--green);border-radius:1px;}
.ds-preferred-drug{font-family:'DM Serif Display',serif;font-size:26px;color:var(--navy);}
.ds-preferred-badge{background:var(--green);color:white;font-size:9.5px;font-weight:700;letter-spacing:0.5px;padding:4px 11px;border-radius:3px;flex-shrink:0;text-transform:uppercase;}
.ds-preferred-reason{font-size:12.5px;color:var(--muted);margin-bottom:14px;line-height:1.55;padding-left:13px;border-left:2px solid var(--border);}

/* Evidence chips on preferred card */
.ds-preferred-ev{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px;}
.ds-preferred-ev-chip{font-size:9.5px;font-weight:600;letter-spacing:0.1px;padding:2px 8px;border-radius:3px;background:rgba(42,157,110,0.08);color:var(--green);border:1px solid rgba(42,157,110,0.18);white-space:nowrap;}

.ds-preferred-checks{display:flex;flex-direction:column;gap:5px;}
.ds-pcheck{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text);padding:3px 0;}
.ds-pcheck-icon{color:var(--green);flex-shrink:0;margin-top:2px;}

/* Alternatives grid */
.ds-alts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.ds-alt-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px;}
.ds-alt-card.avoid-card{border-color:rgba(184,50,41,0.2);background:rgba(184,50,41,0.02);}
.ds-alt-state{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;margin-bottom:7px;display:flex;align-items:center;gap:5px;}
.ds-alt-state.alt{color:var(--amber);}
.ds-alt-state.avoid{color:var(--red);}
.ds-alt-state.conditional,.ds-alt-state.escalation{color:var(--accent);}
.ds-alt-drug{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:5px;}
.ds-alt-reason{font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:10px;}

/* Why-not block inside alt card */
.ds-alt-whynot{background:rgba(0,0,0,0.025);border:1px solid var(--border-light);border-radius:5px;padding:8px 11px;margin-bottom:9px;font-size:11px;line-height:1.55;}
.ds-alt-whynot-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:5px;}
.ds-alt-whynot-item{display:flex;gap:6px;color:var(--text);padding:1.5px 0;}
.ds-alt-whynot-item::before{content:'·';color:var(--muted);flex-shrink:0;font-weight:700;}
.ds-alt-whynot.red-tone{background:rgba(184,50,41,0.03);border-color:rgba(184,50,41,0.12);}
.ds-alt-whynot.amber-tone{background:rgba(184,122,0,0.03);border-color:rgba(184,122,0,0.12);}

.ds-alt-badge{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:3px;letter-spacing:0.2px;}
.ds-alt-badge.conditional,.ds-alt-badge.avoid,.ds-alt-badge.adjunct,.ds-alt-badge.escalation{} /* use badge-* colors */
.ds-alt-badge.conditional{background:var(--amber-bg);color:var(--amber);}
.ds-alt-badge.avoid{background:var(--red-bg);color:var(--red);}
.ds-alt-badge.adjunct,.ds-alt-badge.escalation{background:rgba(204,117,70,0.12);color:var(--accent);}

/* Rationale block */
.ds-rationale{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.ds-rationale-head{font-size:10px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.5px;padding:11px 18px;border-bottom:1px solid var(--border-light);background:var(--bg);}
.ds-rat-item{display:flex;gap:10px;padding:11px 18px;border-bottom:1px solid var(--border-light);}
.ds-rat-item:last-child{border-bottom:none;}
.ds-rat-icon{flex-shrink:0;color:var(--accent);margin-top:1px;}
.ds-rat-text{font-size:12.5px;color:var(--text);line-height:1.6;}
.ds-rat-text strong{color:var(--navy);font-weight:600;}
.ds-rat-ref{font-size:10px;color:var(--accent);margin-left:4px;cursor:pointer;background:rgba(204,117,70,0.09);padding:1px 5px;border-radius:3px;}

/* Glance table */
.ds-glance{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.ds-glance-title{font-size:10px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.5px;padding:11px 18px;border-bottom:1px solid var(--border-light);background:var(--bg);}
.ds-glance-table{width:100%;border-collapse:collapse;}
.ds-glance-table th{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;padding:8px 18px;text-align:left;background:var(--bg);}
.ds-glance-table td{padding:10px 18px;border-bottom:1px solid var(--border-light);font-size:12px;vertical-align:middle;}
.ds-glance-table tr:last-child td{border-bottom:none;}
.ds-glance-table tr.preferred-row td{background:rgba(42,157,110,0.025);}
.ds-drug-name{font-weight:600;color:var(--navy);}
.ds-drug-name.preferred{color:var(--green);}

/* Drug state badges (shared by glance/trade-off tables) */
.ds-state-badge{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap;letter-spacing:0.2px;}
.dsb-preferred,.dsb-best{background:var(--green-bg);color:var(--green);}
.dsb-conditional{background:var(--amber-bg);color:var(--amber);}
.dsb-escalation,.dsb-adjunct{background:rgba(204,117,70,0.12);color:var(--accent);}
.dsb-avoid,.dsb-poor{background:var(--red-bg);color:var(--red);}


/* ════════════════════════════════════════════════════
   TRADE-OFFS & DRIVERS
════════════════════════════════════════════════════ */
.to-matrix-wrap{overflow-x:auto;margin-bottom:20px;}
.to-matrix{width:100%;border-collapse:collapse;min-width:600px;}
.to-matrix th{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;padding:9px 13px;text-align:left;background:var(--bg);border-bottom:1px solid var(--border);}
.to-matrix th.pref-col{background:rgba(42,157,110,0.05);border-bottom:2px solid var(--green);}
.to-matrix td{padding:11px 13px;border-bottom:1px solid var(--border-light);font-size:12px;vertical-align:middle;}
.to-matrix td.pref-col{background:rgba(42,157,110,0.02);}
.to-matrix tr:last-child td{border-bottom:none;}
.to-val{font-size:11.5px;font-weight:600;}
.to-val.vg{color:var(--green);}
.to-val.g{color:#3a8a5e;}
.to-val.m{color:var(--amber);}
.to-val.p{color:var(--red);}

/* Drivers table */
.dd-table{width:100%;border-collapse:collapse;margin-bottom:20px;}
.dd-table th{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;padding:9px 14px;text-align:left;background:var(--bg);border-bottom:1px solid var(--border);}
.dd-table td{padding:12px 14px;border-bottom:1px solid var(--border-light);vertical-align:top;}
.dd-table tr:last-child td{border-bottom:none;}
.dd-driver-name{font-size:12.5px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:7px;}
.dd-impact-badge{font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:3px;letter-spacing:0.2px;}
.dd-impact-high{background:var(--red-bg);color:var(--red);}
.dd-impact-mod{background:var(--amber-bg);color:var(--amber);}
.dd-impact-low{background:var(--green-bg);color:var(--green);}
.dd-rationale{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5;}
.dd-refs{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap;}
.dd-ref{font-size:10px;background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 6px;color:var(--accent);}

/* Shared decision block */
.sd-block{background:rgba(204,117,70,0.05);border:1px solid rgba(204,117,70,0.16);border-radius:var(--radius);padding:14px 18px;margin-bottom:14px;}
.sd-label{font-size:9px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:9px;display:flex;align-items:center;gap:7px;}
.sd-item{display:flex;gap:8px;font-size:12.5px;color:var(--text);padding:3.5px 0;}
.sd-item::before{content:'→';color:var(--accent);flex-shrink:0;font-size:11px;}

/* Why-not block */
.wn-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.wn-head{font-size:10px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.5px;padding:11px 18px;border-bottom:1px solid var(--border-light);background:var(--bg);display:flex;align-items:center;gap:7px;}
.wn-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.wn-col{padding:14px 18px;border-right:1px solid var(--border-light);}
.wn-col:last-child{border-right:none;}
.wn-col-title{font-size:11.5px;font-weight:700;color:var(--navy);margin-bottom:3px;display:flex;align-items:center;gap:6px;}
.wn-col-state{font-size:9.5px;font-weight:700;padding:1.5px 6px;border-radius:3px;letter-spacing:0.2px;}
.wn-col-state.avoid{background:var(--red-bg);color:var(--red);}
.wn-col-state.cond{background:var(--amber-bg);color:var(--amber);}
.wn-col-state.esc{background:rgba(204,117,70,0.12);color:var(--accent);}
.wn-reason{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1.5;}
.wn-item{display:flex;gap:5px;font-size:11px;color:var(--text);padding:1.5px 0;align-items:flex-start;}
.wn-item::before{content:'·';color:var(--muted);flex-shrink:0;font-weight:700;}


/* ════════════════════════════════════════════════════
   CLINICAL NOTES
════════════════════════════════════════════════════ */
.cn-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:18px;}
.cn-tab{padding:7px 15px;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;border:none;background:none;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all 0.15s;}
.cn-tab:hover{color:var(--text);}
.cn-tab.active{color:var(--accent);font-weight:600;border-bottom-color:var(--accent);}
.cn-panel{display:none;}
.cn-panel.active{display:block;}
.cn-layout{display:grid;grid-template-columns:1fr 220px;gap:16px;}

.cn-editor-wrap{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.cn-editor-toolbar{display:flex;align-items:center;gap:3px;padding:8px 11px;border-bottom:1px solid var(--border-light);background:var(--bg);}
.cn-tb-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;border-radius:4px;color:var(--muted);font-size:12px;font-weight:600;transition:all 0.15s;font-family:inherit;}
.cn-tb-btn:hover{background:var(--border);color:var(--text);}
.cn-tb-sep{width:1px;height:14px;background:var(--border);margin:0 3px;}
.cn-tb-right{margin-left:auto;font-size:10px;color:var(--muted);display:flex;align-items:center;gap:4px;}
.cn-tb-saved{color:var(--green);}
.cn-insert-btn{display:flex;align-items:center;gap:3px;padding:3px 8px;border-radius:4px;border:1px solid var(--border);background:var(--white);font-size:11px;color:var(--muted);cursor:pointer;font-family:inherit;transition:all 0.15s;}
.cn-insert-btn:hover{border-color:var(--text);color:var(--text);}
.cn-editor-body{padding:16px 20px;min-height:300px;outline:none;font-size:12.5px;line-height:1.72;color:var(--text);}
.cn-editor-body h4{font-size:12px;font-weight:600;color:var(--navy);margin:13px 0 5px;}
.cn-editor-body h4:first-child{margin-top:0;}
.cn-editor-body ul{padding-left:15px;margin-bottom:6px;}
.cn-editor-body li{margin-bottom:2px;}
.cn-editor-body p{margin-bottom:8px;}
.cn-editor-footer{padding:8px 16px;border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);background:var(--bg);}

.cn-sidebar{display:grid;gap:12px;}
.cn-sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:13px;}
.cn-sidebar-card-title{font-size:11px;font-weight:600;color:var(--navy);margin-bottom:9px;display:flex;justify-content:space-between;align-items:center;}
.cn-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px;}
.cn-tag{display:inline-flex;align-items:center;gap:3px;background:rgba(204,117,70,0.08);border:1px solid rgba(204,117,70,0.18);color:var(--accent);font-size:10.5px;font-weight:500;padding:2px 7px;border-radius:100px;}
.cn-tag-remove{cursor:pointer;opacity:0.4;font-size:10px;}
.cn-tag-remove:hover{opacity:1;}
.cn-add-tag{font-size:10.5px;color:var(--accent);cursor:pointer;background:none;border:none;font-family:inherit;}
.cn-select{width:100%;padding:6px 9px;border:1px solid var(--border);border-radius:5px;font-size:11.5px;color:var(--text);background:var(--bg);font-family:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6560' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:24px;}
.cn-history-item{display:flex;align-items:flex-start;gap:6px;padding:6px 0;border-bottom:1px solid var(--border-light);font-size:11px;}
.cn-history-item:last-child{border-bottom:none;}
.cn-history-avatar{width:22px;height:22px;border-radius:50%;background:rgba(204,117,70,0.25);color:rgba(255,220,190,0.95);display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:700;flex-shrink:0;}
.cn-history-name{font-weight:500;color:var(--text);}
.cn-history-meta{color:var(--muted);font-size:10px;}
.cn-view-all{font-size:10.5px;color:var(--accent);cursor:pointer;}
.cn-drop-zone{border:1.5px dashed var(--border);border-radius:6px;padding:14px;text-align:center;font-size:11px;color:var(--muted);cursor:pointer;transition:border-color 0.15s;}
.cn-drop-zone:hover{border-color:var(--accent);}
.cn-drop-sub{font-size:10px;margin-top:2px;}
.cn-disclaimer{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--muted);padding:10px 13px;background:var(--white);border:1px solid var(--border);border-radius:6px;line-height:1.55;}


/* ════════════════════════════════════════════════════
   MONITORING NOTES
════════════════════════════════════════════════════ */
.mn-top{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.mn-stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;}
.mn-stat-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:5px;}
.mn-stat-val{font-size:19px;font-weight:600;color:var(--navy);font-family:'DM Serif Display',serif;}
.mn-stat-sub{font-size:10.5px;color:var(--muted);margin-top:1px;}

.mn-table-wrap{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;}
.mn-table{width:100%;border-collapse:collapse;}
.mn-table th{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;padding:9px 15px;text-align:left;background:var(--bg);}
.mn-table td{padding:12px 15px;border-top:1px solid var(--border-light);vertical-align:top;font-size:12px;}
.mn-param{font-weight:600;color:var(--navy);}
.mn-what{color:var(--text);}
.mn-freq{color:var(--muted);font-size:11.5px;}
.mn-trigger{font-size:11px;color:var(--red);}
.mn-prio{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:3px;white-space:nowrap;letter-spacing:0.2px;}
.mn-prio.high{background:var(--red-bg);color:var(--red);}
.mn-prio.moderate{background:var(--amber-bg);color:var(--amber);}
.mn-prio.routine{background:var(--green-bg);color:var(--green);}

/* Escalation block */
.mn-escalation{background:rgba(204,117,70,0.05);border:1px solid rgba(204,117,70,0.16);border-radius:var(--radius);padding:14px 18px;margin-bottom:12px;}
.mn-esc-label{font-size:9px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:9px;display:flex;align-items:center;gap:6px;}
.mn-esc-item{display:flex;gap:9px;padding:5px 0;font-size:12px;color:var(--text);}
.mn-esc-arrow{color:var(--accent);flex-shrink:0;font-weight:700;font-size:11px;}

/* Contraindications block */
.mn-contra{background:rgba(184,50,41,0.03);border:1px solid rgba(184,50,41,0.14);border-radius:var(--radius);padding:14px 18px;margin-bottom:12px;}
.mn-contra-label{font-size:9px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:9px;}
.mn-contra-item{display:flex;gap:7px;font-size:12px;color:var(--text);padding:4px 0;align-items:flex-start;}
.mn-contra-x{color:var(--red);font-weight:700;flex-shrink:0;font-size:11px;}

/* ABX recommendation safety flags panel (audit 2026-06 fix —
   renders rec.flags from abxBuildRecommendation(), previously
   computed but never displayed). Severity-tiered. */
.abx-flags-panel{display:flex;flex-direction:column;gap:6px;margin:12px 0;}
.abx-flag-item{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.5;padding:8px 11px;border-radius:6px;border:1px solid var(--border);}
.abx-flag-icon{flex-shrink:0;font-size:12px;font-weight:700;}
.abx-flag-urgent{background:rgba(220,38,38,0.07);border-color:rgba(220,38,38,0.25);}
.abx-flag-urgent .abx-flag-icon{color:var(--red);}
.abx-flag-warn{background:rgba(217,119,6,0.07);border-color:rgba(217,119,6,0.25);}
.abx-flag-warn .abx-flag-icon{color:var(--amber);}
.abx-flag-info{background:var(--bg);}
.abx-flag-info .abx-flag-icon{color:var(--muted);}


/* Follow-up interval cards */
.mn-intervals{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px;}
.mn-interval-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px;}
.mn-int-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:4px;}
.mn-int-val{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:2px;}
.mn-int-desc{font-size:10.5px;color:var(--muted);}

/* Longitudinal pathway */
.mn-pathway{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:12px;}
.mn-pathway-head{font-size:9.5px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.5px;padding:10px 16px;border-bottom:1px solid var(--border-light);background:var(--bg);display:flex;align-items:center;gap:7px;}
.mn-pathway-item{display:flex;align-items:flex-start;gap:14px;padding:13px 16px;border-bottom:1px solid var(--border-light);}
.mn-pathway-item:last-child{border-bottom:none;}
.mn-pathway-week{flex-shrink:0;width:68px;font-size:10px;font-weight:700;color:var(--accent);text-align:right;padding-top:2px;}
.mn-pathway-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--border);background:var(--white);margin-top:3px;position:relative;}
.mn-pathway-dot.active{border-color:var(--accent);background:var(--accent);}
.mn-pathway-dot.trigger{border-color:var(--amber);background:var(--amber);}
.mn-pathway-dot.escalation{border-color:var(--red);background:var(--red);}
.mn-pathway-line{flex-shrink:0;width:1px;background:var(--border);margin:3px 0;align-self:stretch;}
.mn-pathway-title{font-size:12.5px;font-weight:600;color:var(--navy);margin-bottom:3px;}
.mn-pathway-desc{font-size:11.5px;color:var(--muted);line-height:1.5;}

/* Trigger line */
.mn-pathway-trigger{
  display:inline-flex;align-items:baseline;gap:5px;
  font-size:11px;font-weight:600;color:var(--navy);
  margin-top:5px;padding:3.5px 9px;
  background:rgba(184,122,0,0.06);border:1px solid rgba(184,122,0,0.15);border-radius:4px;
}
.mn-pathway-trigger.critical{background:rgba(184,50,41,0.05);border-color:rgba(184,50,41,0.15);}
.mn-pathway-trigger-if{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--amber);flex-shrink:0;}
.mn-pathway-trigger.critical .mn-pathway-trigger-if{color:var(--red);}

.mn-pathway-badge{display:inline-block;font-size:9px;font-weight:700;padding:1.5px 6px;border-radius:3px;margin-left:5px;vertical-align:middle;letter-spacing:0.2px;}
.mn-pathway-badge.checkpoint{background:rgba(204,117,70,0.12);color:var(--accent);}
.mn-pathway-badge.escalation{background:var(--amber-bg);color:var(--amber);}
.mn-pathway-badge.urgent{background:var(--red-bg);color:var(--red);}


/* ════════════════════════════════════════════════════
   EVIDENCE LAYER
════════════════════════════════════════════════════ */
.ev-filter-bar{display:flex;gap:5px;margin-bottom:16px;flex-wrap:wrap;}
.ev-filter-btn{padding:5px 11px;border-radius:100px;font-size:11.5px;font-weight:500;border:1px solid var(--border);background:var(--white);color:var(--muted);cursor:pointer;font-family:inherit;transition:all 0.15s;}
.ev-filter-btn:hover{border-color:var(--accent);color:var(--accent);}
.ev-filter-btn.active{border-color:var(--accent);background:var(--accent);color:white;}

.ev-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:18px;}
.ev-stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:13px;text-align:center;}
.ev-stat-num{font-family:'DM Serif Display',serif;font-size:24px;color:var(--navy);}
.ev-stat-label{font-size:10px;color:var(--muted);margin-top:2px;}

.ev-list{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.ev-list-header{display:grid;grid-template-columns:1fr 100px 80px 60px;background:var(--bg);border-bottom:1px solid var(--border);padding:8px 16px;}
.ev-list-header span{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;}
.ev-item{display:grid;grid-template-columns:1fr 100px 80px 60px;padding:13px 16px;border-bottom:1px solid var(--border-light);align-items:center;}
.ev-item:last-child{border-bottom:none;}
.ev-item:hover{background:var(--bg);}
.ev-source-title{font-size:12px;font-weight:500;color:var(--navy);margin-bottom:2px;}
.ev-source-authors{font-size:10.5px;color:var(--muted);}
.ev-type-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;display:inline-block;letter-spacing:0.1px;}
.ev-type-guideline{background:rgba(204,117,70,0.12);color:var(--accent);}
.ev-type-review{background:var(--green-bg);color:var(--green);}
.ev-type-rct{background:var(--amber-bg);color:var(--amber);}
.ev-rel{display:flex;gap:2px;}
.ev-rel-dot{width:5px;height:5px;border-radius:50%;}
.ev-rel-dot.filled{background:var(--navy);}
.ev-rel-dot.empty{background:var(--border);}


/* ════════════════════════════════════════════════════
   CLINICAL REASONING PANEL
════════════════════════════════════════════════════ */

/* Sticky reasoning bar */
.cr-bar{background:var(--white);border-bottom:1px solid var(--border);padding:0 32px;position:sticky;top:var(--topbar);z-index:90;flex-shrink:0;}
.cr-bar-inner{display:flex;align-items:stretch;gap:0;overflow-x:auto;}
.cr-bar-signal{
  display:flex;flex-direction:column;justify-content:center;
  padding:9px 16px 9px 0;border-right:1px solid var(--border-light);
  margin-right:16px;flex-shrink:0;min-width:0;
}
.cr-bar-signal:last-child{border-right:none;margin-right:0;}
.cr-bar-signal-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:3px;white-space:nowrap;display:flex;align-items:center;gap:5px;}
.cr-bar-signal-val{font-size:12px;font-weight:600;color:var(--navy);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;}
.cr-bar-signal-val.val-red{color:var(--red);}
.cr-bar-signal-val.val-amber{color:var(--amber);}
.cr-bar-signal-val.val-green{color:var(--green);}
.cr-bar-signal-val.val-blue{color:var(--accent);}

/* Inline reasoning block */
.cr-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.cr-block-head{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:var(--bg);border-bottom:1px solid var(--border-light);}
.cr-block-title{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:6px;}
.cr-block-updated{font-size:9px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:5px;opacity:0;transition:opacity 0.3s;}
.cr-block-updated.visible{opacity:1;}
.cr-block-updated::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0;}

.cr-signals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.cr-signal{padding:12px 16px;border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);position:relative;}
.cr-signal:nth-child(3n){border-right:none;}
.cr-signal:nth-child(n+4){border-bottom:none;}
.cr-signal-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:4px;display:flex;align-items:center;gap:5px;}
.cr-signal-label-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.cr-signal-label-dot.dot-red{background:var(--red);}
.cr-signal-label-dot.dot-amber{background:var(--amber);}
.cr-signal-label-dot.dot-green{background:var(--green);}
.cr-signal-label-dot.dot-blue{background:var(--accent);}
.cr-signal-val{font-size:12.5px;font-weight:600;color:var(--navy);line-height:1.35;margin-bottom:2px;}
.cr-signal-sub{font-size:10.5px;color:var(--muted);line-height:1.4;}

/* Severity stripe on left edge */
.cr-signal::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;}
.cr-signal.sev-red::before{background:var(--red);}
.cr-signal.sev-amber::before{background:var(--amber);}
.cr-signal.sev-green::before{background:var(--green);}
.cr-signal.sev-blue::before{background:var(--accent);}
.cr-signal.sev-none::before{display:none;}

/* Reason-changed callout */
.cr-change-callout{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;background:rgba(204,117,70,0.05);border-top:1px solid rgba(204,117,70,0.12);font-size:11.5px;color:var(--text);line-height:1.5;}
.cr-change-callout-label{font-size:8.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.7px;white-space:nowrap;padding-top:1px;flex-shrink:0;}
.cr-change-callout-text{color:var(--muted);}
#cr-change-row{display:none;}
#cr-change-row.visible{display:flex;}

/* Causality attribution panel */
.cr-causality-panel{border-top:1px solid var(--border-light);display:none;}
.cr-causality-panel.visible{display:block;}
.cr-causality-head{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(255,255,255,0.025);border-bottom:1px solid var(--border-light);font-size:8.5px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.9px;}
.cr-causality-rows{display:flex;flex-direction:column;gap:0;}
.cr-causality-row{display:grid;grid-template-columns:120px 1fr 180px;gap:0;border-bottom:1px solid var(--border-light);font-size:11px;}
.cr-causality-row:last-child{border-bottom:none;}
.cr-causality-param{padding:8px 14px;font-weight:600;color:var(--navy);border-right:1px solid var(--border-light);display:flex;align-items:center;gap:6px;flex-shrink:0;}
.cr-causality-param-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.cr-causality-change{padding:8px 14px;color:var(--text);line-height:1.4;border-right:1px solid var(--border-light);}
.cr-causality-effect{padding:8px 14px;font-size:10.5px;color:var(--muted);line-height:1.4;}
.cr-causality-arrow{color:var(--accent);font-size:10px;margin:0 4px;font-weight:700;}
.cr-delta-val{font-family:monospace;font-size:10.5px;font-weight:700;padding:1px 5px;border-radius:3px;}
.cr-delta-worse{background:var(--red-bg);color:var(--red);}
.cr-delta-better{background:var(--green-bg);color:var(--green);}
.cr-delta-neutral{background:var(--bg);color:var(--muted);}

/* Dominant trade-off strip */
.cr-tradeoff-strip{display:flex;align-items:center;gap:10px;padding:8px 16px;background:rgba(184,122,0,0.03);border-top:1px solid rgba(184,122,0,0.12);font-size:11px;line-height:1.4;}
.cr-tradeoff-strip.strip-red{background:rgba(184,50,41,0.03);border-top-color:rgba(184,50,41,0.12);}
.cr-tradeoff-strip.strip-green{background:rgba(42,157,110,0.03);border-top-color:rgba(42,157,110,0.12);}
.cr-tradeoff-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;padding:2px 6px;border-radius:3px;white-space:nowrap;flex-shrink:0;}
.strip-amber .cr-tradeoff-label{background:var(--amber-bg);color:var(--amber);}
.strip-red .cr-tradeoff-label{background:var(--red-bg);color:var(--red);}
.strip-green .cr-tradeoff-label{background:var(--green-bg);color:var(--green);}
.cr-tradeoff-text{color:var(--text);flex:1;}
.cr-tradeoff-deprioritized{font-size:10px;color:var(--muted);padding:2px 7px;border-radius:3px;background:var(--bg);border:1px solid var(--border-light);white-space:nowrap;flex-shrink:0;}

/* Risk balance pill */
.cr-risk-balance{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:3px;font-size:10.5px;font-weight:600;border:1px solid var(--border);background:var(--bg);color:var(--muted);margin-top:4px;}
.cr-risk-balance.rb-favorable{background:var(--green-bg);color:var(--green);border-color:rgba(42,157,110,0.2);}
.cr-risk-balance.rb-caution{background:var(--amber-bg);color:var(--amber);border-color:rgba(184,122,0,0.2);}
.cr-risk-balance.rb-unfavorable{background:var(--red-bg);color:var(--red);border-color:rgba(184,50,41,0.2);}

/* Monitoring escalation badge */
.ip-escalation-tag{display:none;font-size:8.5px;font-weight:700;letter-spacing:0.3px;padding:1.5px 5px;border-radius:3px;margin-top:3px;}
.ip-escalation-tag.visible{display:inline-block;}
.ip-escalation-tag.esc-critical{background:var(--red-bg);color:var(--red);}
.ip-escalation-tag.esc-monitor{background:var(--amber-bg);color:var(--amber);}
.ip-escalation-tag.esc-ok{background:var(--green-bg);color:var(--green);}

/* Flash animation for updated signals */
@keyframes cr-signal-flash{0%{background:rgba(204,117,70,0.08);}100%{background:transparent;}}
.cr-signal.cr-updated{animation:cr-signal-flash 0.8s ease-out;}


/* ════════════════════════════════════════════════════
   POLYPHARMACY BURDEN PANEL
════════════════════════════════════════════════════ */
.poly-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.poly-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:linear-gradient(to right,rgba(184,50,41,0.04),var(--bg));border-bottom:1px solid var(--border-light);}
.poly-head-title{font-size:9px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:7px;}
.poly-burden-badge{font-size:9px;font-weight:700;letter-spacing:0.3px;padding:2px 8px;border-radius:3px;}
.poly-burden-badge.burden-low{background:var(--green-bg);color:var(--green);}
.poly-burden-badge.burden-mod{background:var(--amber-bg);color:var(--amber);}
.poly-burden-badge.burden-high{background:var(--red-bg);color:var(--red);}

.poly-med-list{display:flex;flex-direction:column;gap:0;}
.poly-med-row{display:grid;grid-template-columns:180px 1fr 160px 120px;gap:0;border-bottom:1px solid var(--border-light);font-size:11.5px;}
.poly-med-row:last-child{border-bottom:none;}
.poly-med-row.poly-row-head{background:var(--bg);font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;}
.poly-med-cell{padding:9px 14px;border-right:1px solid var(--border-light);}
.poly-med-cell:last-child{border-right:none;}
.poly-drug-name{font-weight:600;color:var(--navy);}
.poly-drug-class{font-size:10px;color:var(--muted);margin-top:1px;}

.poly-interaction-flag{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;letter-spacing:0.2px;padding:2px 6px;border-radius:3px;margin-top:3px;}
.poly-flag-red{background:var(--red-bg);color:var(--red);}
.poly-flag-amber{background:var(--amber-bg);color:var(--amber);}
.poly-flag-green{background:var(--green-bg);color:var(--green);}
.poly-flag-blue{background:rgba(204,117,70,0.12);color:var(--accent);}

.poly-renal-dose{font-size:11px;line-height:1.4;}
.poly-renal-dose.renal-adjust{color:var(--amber);font-weight:600;}
.poly-renal-dose.renal-ci{color:var(--red);font-weight:600;}
.poly-renal-dose.renal-ok{color:var(--green);}

.poly-deprescribe-tag{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;letter-spacing:0.2px;padding:1.5px 6px;border-radius:3px;}
.poly-deprescribe-review{background:rgba(204,117,70,0.12);color:var(--accent);}
.poly-deprescribe-consider{background:var(--amber-bg);color:var(--amber);}
.poly-deprescribe-maintain{background:var(--green-bg);color:var(--green);}

/* Interaction matrix */
.poly-interaction-matrix{border-top:1px solid var(--border-light);padding:12px 16px;background:rgba(184,50,41,0.018);}
.poly-interaction-matrix-head{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:9px;display:flex;align-items:center;gap:6px;}
.poly-interaction-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid var(--border-light);font-size:11.5px;}
.poly-interaction-row:last-child{border-bottom:none;}
.poly-int-pair{font-weight:600;color:var(--navy);flex-shrink:0;min-width:190px;font-size:11.5px;}
.poly-int-severity{font-size:9px;font-weight:700;letter-spacing:0.3px;padding:2px 6px;border-radius:3px;flex-shrink:0;margin-top:1px;}
.poly-int-sev-monitor{background:var(--amber-bg);color:var(--amber);}
.poly-int-sev-caution{background:rgba(184,122,0,0.12);color:var(--amber);}
.poly-int-sev-avoid{background:var(--red-bg);color:var(--red);}
.poly-int-sev-ok{background:var(--green-bg);color:var(--green);}
.poly-int-mechanism{font-size:11px;color:var(--muted);line-height:1.45;flex:1;}

/* Renal dosing cascade */
.renal-cascade{border-top:1px solid var(--border-light);background:rgba(204,117,70,0.04);padding:12px 16px;}
.renal-cascade-head{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:9px;display:flex;align-items:center;gap:6px;}
.renal-cascade-row{display:grid;grid-template-columns:130px 90px 1fr 130px;gap:0;border:1px solid var(--border-light);border-bottom:none;font-size:11px;}
.renal-cascade-row:first-of-type{border-radius:5px 5px 0 0;}
.renal-cascade-row:last-of-type{border-bottom:1px solid var(--border-light);border-radius:0 0 5px 5px;}
.renal-cascade-row.renal-active-row{background:rgba(184,122,0,0.04);border-color:rgba(184,122,0,0.25);}
.renal-cascade-row.renal-active-row + .renal-cascade-row{border-top-color:rgba(184,122,0,0.25);}
.renal-cascade-cell{padding:7px 12px;border-right:1px solid var(--border-light);line-height:1.4;}
.renal-cascade-cell:last-child{border-right:none;}
.renal-cascade-row.renal-active-row .renal-cascade-cell{border-right-color:rgba(184,122,0,0.15);}
.renal-cascade-egfr{font-weight:700;color:var(--navy);}
.renal-cascade-egfr.egfr-current{color:var(--amber);}
.renal-active-marker{font-size:8.5px;font-weight:700;letter-spacing:0.3px;padding:1px 5px;border-radius:2px;background:var(--amber-bg);color:var(--amber);display:inline-block;margin-left:4px;}
.renal-cascade-implications{color:var(--text);font-size:11px;}
.renal-cascade-action{color:var(--muted);font-size:10.5px;}

/* Deprescribing panel */
.deprescribe-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.deprescribe-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border-light);}
.deprescribe-head-title{font-size:9px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:7px;}
.deprescribe-row{display:grid;grid-template-columns:170px 1fr 140px 100px;gap:0;border-bottom:1px solid var(--border-light);font-size:11.5px;}
.deprescribe-row:last-child{border-bottom:none;}
.deprescribe-row.dep-row-head{background:var(--bg);font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;}
.deprescribe-cell{padding:9px 14px;border-right:1px solid var(--border-light);}
.deprescribe-cell:last-child{border-right:none;}
.dep-drug-name{font-weight:600;color:var(--navy);}
.dep-rationale{color:var(--text);font-size:11px;line-height:1.45;}
.dep-trigger{font-size:10.5px;color:var(--muted);line-height:1.4;}
.dep-action-chip{font-size:9px;font-weight:700;letter-spacing:0.2px;padding:2px 6px;border-radius:3px;display:inline-block;}
.dep-maintain{background:var(--green-bg);color:var(--green);}
.dep-review{background:rgba(204,117,70,0.12);color:var(--accent);}
.dep-deprescribe{background:var(--amber-bg);color:var(--amber);}
.dep-stop{background:var(--red-bg);color:var(--red);}

/* Safety rail */
.safety-rail{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.safety-rail-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border-light);}
.safety-rail-title{font-size:9px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:7px;}
.safety-rail-body{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.safety-rail-item{padding:12px 14px;border-right:1px solid var(--border-light);position:relative;}
.safety-rail-item:last-child{border-right:none;}
.safety-rail-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;margin-bottom:4px;display:flex;align-items:center;gap:5px;}
.safety-rail-value{font-size:12px;font-weight:600;color:var(--navy);margin-bottom:3px;line-height:1.3;}
.safety-rail-note{font-size:10.5px;color:var(--muted);line-height:1.4;}
.safety-rail-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2.5px;}
.safety-rail-item.srl-red::before{background:var(--red);}
.safety-rail-item.srl-amber::before{background:var(--amber);}
.safety-rail-item.srl-green::before{background:var(--green);}
.safety-rail-item.srl-blue::before{background:var(--accent);}

/* Adherence concern strip */
.adherence-concern-strip{display:flex;align-items:flex-start;gap:12px;padding:9px 14px;background:rgba(184,122,0,0.04);border:1px solid rgba(184,122,0,0.18);border-radius:var(--radius);margin-bottom:12px;}
.adherence-concern-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;color:var(--amber);flex-shrink:0;white-space:nowrap;padding-top:1px;}
.adherence-concern-text{font-size:11.5px;color:var(--text);line-height:1.5;flex:1;}
.adherence-concern-actions{display:flex;flex-direction:column;gap:3px;flex-shrink:0;}
.adherence-action-chip{font-size:9.5px;font-weight:600;letter-spacing:0.1px;padding:2px 8px;border-radius:3px;white-space:nowrap;background:rgba(204,117,70,0.12);color:var(--accent);border:1px solid rgba(204,117,70,0.18);}

/* Monitoring intensity banner */
.monitoring-intensity-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius);margin-bottom:10px;font-size:11.5px;}
.monitoring-intensity-banner.mib-high{background:rgba(184,50,41,0.04);border:1px solid rgba(184,50,41,0.15);}
.monitoring-intensity-banner.mib-mod{background:rgba(184,122,0,0.04);border:1px solid rgba(184,122,0,0.15);}
.monitoring-intensity-banner.mib-routine{background:rgba(42,157,110,0.04);border:1px solid rgba(42,157,110,0.12);}
.mib-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;padding:2px 7px;border-radius:3px;flex-shrink:0;white-space:nowrap;}
.mib-high .mib-label{background:var(--red-bg);color:var(--red);}
.mib-mod .mib-label{background:var(--amber-bg);color:var(--amber);}
.mib-routine .mib-label{background:var(--green-bg);color:var(--green);}
.mib-text{flex:1;color:var(--text);line-height:1.4;}
.mib-schedule{font-size:10px;font-weight:600;color:var(--muted);padding:2px 7px;border-radius:3px;background:var(--bg);border:1px solid var(--border-light);white-space:nowrap;flex-shrink:0;}


/* ════════════════════════════════════════════════════
   INTERACTIVE PATIENT PARAMETERS
════════════════════════════════════════════════════ */
.ip-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;}
.ip-panel-head{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-bottom:1px solid var(--border-light);background:linear-gradient(to right,rgba(204,117,70,0.05),var(--bg));}
.ip-panel-title{font-size:9.5px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.7px;display:flex;align-items:center;gap:7px;}

.ip-live-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:0.3px;padding:2px 7px;border-radius:3px;background:rgba(42,157,110,0.10);color:var(--green);border:1px solid rgba(42,157,110,0.2);}
.ip-live-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0;animation:ip-pulse 1.8s ease-in-out infinite;}
@keyframes ip-pulse{0%,100%{opacity:1}50%{opacity:0.4}}

.ip-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;}
.ip-param{padding:13px 15px;border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);position:relative;cursor:pointer;transition:background 0.15s;}
.ip-param:nth-child(5n){border-right:none;}
.ip-param:nth-child(n+6){border-bottom:none;}
.ip-param:hover{background:rgba(204,117,70,0.05);}
.ip-param.ip-warning{background:rgba(184,122,0,0.03);}
.ip-param.ip-danger{background:rgba(184,50,41,0.03);}

.ip-param-label{font-size:8.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:6px;display:flex;align-items:center;gap:5px;}
.ip-param-value{font-size:13px;font-weight:600;color:var(--navy);margin-bottom:4px;line-height:1.2;}
.ip-param-value.ip-val-danger{color:var(--red);}
.ip-param-value.ip-val-warning{color:var(--amber);}
.ip-param-value.ip-val-ok{color:var(--green);}
.ip-param-risk{font-size:10px;font-weight:600;margin-bottom:6px;}
.ip-param-risk.r-high{color:var(--red);}
.ip-param-risk.r-mod{color:var(--amber);}
.ip-param-risk.r-low{color:var(--green);}

.ip-edit-btn{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;color:var(--accent);background:none;border:none;cursor:pointer;font-family:inherit;padding:0;opacity:0.7;transition:opacity 0.15s;}
.ip-edit-btn:hover{opacity:1;text-decoration:underline;}
.ip-edit-indicator{position:absolute;top:9px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--border);}
.ip-param.ip-danger .ip-edit-indicator{background:var(--red);opacity:0.6;}
.ip-param.ip-warning .ip-edit-indicator{background:var(--amber);opacity:0.6;}

/* Inline edit popover */
.ip-popover{position:fixed;z-index:1000;background:var(--white);border:1px solid var(--border);border-radius:7px;box-shadow:0 8px 32px rgba(0,0,0,0.45),0 2px 8px rgba(0,0,0,0.30);padding:16px 18px;width:240px;display:none;}

/* DM param-card popovers are (unlike ABX/MEDREV/POLY) nested as
   siblings of .abx-param-card *inside* .abx-param-grid instead of
   being placed outside the grid. .ckd-pop-outer itself has no rules
   anywhere in this stylesheet, so it defaults to position:static and
   becomes its own grid item — inserting an extra, irregular-height
   cell after every DM card and producing uneven card spacing on
   narrow/mobile viewports. display:contents removes the wrapper's
   own box so its child (the position:fixed .ip-popover, already out
   of flow) is the only thing left in the grid's accounting, fixing
   the spacing without touching index.html markup. */
.ckd-pop-outer{display:contents;}
.ip-popover.open{display:block;}
.ip-pop-title{font-size:11px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.ip-pop-desc{font-size:10.5px;color:var(--muted);margin-bottom:12px;line-height:1.5;}
.ip-pop-field{margin-bottom:10px;}
.ip-pop-field label{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;display:block;margin-bottom:5px;}
.ip-pop-select,.ip-pop-range{width:100%;padding:6px 9px;border:1px solid var(--border);border-radius:5px;font-size:12px;color:var(--text);background:var(--bg);font-family:inherit;cursor:pointer;}
.ip-pop-select:focus,.ip-pop-range:focus{outline:none;border-color:var(--accent);}
.ip-pop-range{padding:4px 2px;background:transparent;border:none;accent-color:var(--accent);}
.ip-range-row{display:flex;align-items:center;gap:8px;}
.ip-range-val{font-size:12px;font-weight:700;color:var(--navy);min-width:30px;text-align:right;}
.ip-pop-actions{display:flex;gap:7px;margin-top:12px;}
.ip-pop-apply{flex:1;padding:6px;border-radius:5px;background:var(--accent);color:white;border:none;font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:background 0.15s;}
.ip-pop-apply:hover{background:#b86638;}
.ip-pop-cancel{padding:6px 10px;border-radius:5px;background:none;color:var(--muted);border:1px solid var(--border);font-size:11.5px;cursor:pointer;font-family:inherit;transition:all 0.15s;}
.ip-pop-cancel:hover{border-color:var(--text);color:var(--text);}

/* Update flash */
.dynamic-updated{animation:ip-flash 0.6s ease;}
@keyframes ip-flash{0%{background:rgba(204,117,70,0.14);}100%{background:transparent;}}

/* Complexity indicator bar */
.ip-complexity-bar{padding:9px 18px 10px;border-top:1px solid var(--border-light);display:flex;align-items:center;gap:12px;background:var(--bg);}
.ip-complexity-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;white-space:nowrap;}
.ip-complexity-track{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden;}
.ip-complexity-fill{height:100%;border-radius:3px;transition:width 0.5s ease,background 0.5s ease;}
.ip-complexity-score{font-size:11px;font-weight:700;min-width:24px;text-align:right;}
.ip-complexity-desc{font-size:10.5px;color:var(--muted);white-space:nowrap;}

/* Dynamic update banner */
.ip-update-banner{display:none;align-items:center;gap:8px;padding:8px 14px;background:rgba(204,117,70,0.08);border-bottom:1px solid rgba(204,117,70,0.14);font-size:11px;color:var(--text);}
.ip-update-banner.visible{display:flex;}
.ip-update-banner-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:ip-pulse 1.5s infinite;}
.ip-update-dismiss{margin-left:auto;font-size:10.5px;color:var(--accent);cursor:pointer;background:none;border:none;font-family:inherit;}

/* Stale update badge */
.reason-stale{position:relative;}
.reason-stale::after{
  content:'Updated';position:absolute;top:6px;right:8px;
  font-size:8.5px;font-weight:700;letter-spacing:0.3px;
  padding:1.5px 6px;border-radius:3px;
  background:rgba(204,117,70,0.14);color:var(--accent);pointer-events:none;
}


/* ════════════════════════════════════════════════════
   LONGITUDINAL PROGRESSION SYSTEM
════════════════════════════════════════════════════ */
.lp-bar{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.lp-bar-head{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border-light);}
.lp-bar-title{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.9px;display:flex;align-items:center;gap:7px;}
.lp-bar-hint{font-size:9.5px;color:var(--muted);font-style:italic;}

.lp-timepoints{display:flex;gap:0;}
.lp-tp{
  flex:1;padding:10px 12px 9px;
  border-right:1px solid var(--border-light);
  cursor:pointer;transition:background 0.13s;
  background:none;border-top:none;border-bottom:none;border-left:none;
  font-family:inherit;text-align:left;position:relative;
}
.lp-tp:last-child{border-right:none;}
.lp-tp:hover{background:rgba(204,117,70,0.05);}
.lp-tp.lp-active{background:rgba(204,117,70,0.07);}
.lp-tp.lp-active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);}
.lp-tp.lp-past::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--border);}
.lp-tp-week{font-size:10.5px;font-weight:700;color:var(--navy);margin-bottom:1px;display:flex;align-items:center;gap:5px;}
.lp-tp.lp-past .lp-tp-week{color:var(--muted);}
.lp-tp.lp-future .lp-tp-week{color:var(--muted);opacity:0.6;}
.lp-tp-label{font-size:9.5px;color:var(--muted);}
.lp-tp.lp-active .lp-tp-label{color:var(--accent);font-weight:500;}
.lp-tp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.lp-tp.lp-past .lp-tp-dot{background:var(--border);}
.lp-tp.lp-active .lp-tp-dot{background:var(--accent);}
.lp-tp.lp-future .lp-tp-dot{background:transparent;border:1px solid var(--border);}

/* Status tags */
.lp-status-tag{display:inline-flex;align-items:center;gap:3px;font-size:8.5px;font-weight:700;letter-spacing:0.2px;padding:1px 5px;border-radius:3px;margin-left:4px;}
.lp-status-ok{background:var(--green-bg);color:var(--green);}
.lp-status-escalated{background:var(--amber-bg);color:var(--amber);}
.lp-status-concern{background:var(--red-bg);color:var(--red);}
.lp-status-missed{background:rgba(90,112,144,0.10);color:var(--muted);}

/* Progression delta strip */
.lp-delta{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;display:none;}
.lp-delta.lp-delta-visible{display:block;}
.lp-delta.lp-delta-warn{border-left-color:var(--amber);}
.lp-delta.lp-delta-alert{border-left-color:var(--red);}
.lp-delta-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.lp-delta-label{font-size:8.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.8px;display:flex;align-items:center;gap:6px;}
.lp-delta.lp-delta-warn .lp-delta-label{color:var(--amber);}
.lp-delta.lp-delta-alert .lp-delta-label{color:var(--red);}
.lp-delta-from{font-size:9.5px;color:var(--muted);}
.lp-delta-changes{display:flex;flex-direction:column;gap:5px;}
.lp-delta-item{display:flex;align-items:baseline;gap:8px;font-size:11.5px;color:var(--text);line-height:1.45;}
.lp-delta-param{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;white-space:nowrap;min-width:70px;flex-shrink:0;}
.lp-delta-change{color:var(--text);}
.lp-delta-change strong{color:var(--navy);}
.lp-delta-change .lp-worsened{color:var(--red);font-weight:600;}
.lp-delta-change .lp-improved{color:var(--green);font-weight:600;}
.lp-delta-change .lp-unchanged{color:var(--muted);}
.lp-delta-change .lp-new{color:var(--amber);font-weight:600;}

/* Implication callout */
.lp-implication{margin-top:9px;padding:8px 12px;background:rgba(204,117,70,0.05);border:1px solid rgba(204,117,70,0.14);border-radius:4px;font-size:11px;color:var(--text);line-height:1.5;}
.lp-delta.lp-delta-warn .lp-implication{background:rgba(184,122,0,0.04);border-color:rgba(184,122,0,0.12);}
.lp-delta.lp-delta-alert .lp-implication{background:rgba(184,50,41,0.04);border-color:rgba(184,50,41,0.12);}
.lp-implication-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--accent);margin-bottom:3px;}
.lp-delta.lp-delta-warn .lp-implication-label{color:var(--amber);}
.lp-delta.lp-delta-alert .lp-implication-label{color:var(--red);}

/* Pathway item progression overlays */
.mn-pathway-item.lp-item-past{opacity:0.62;}
.mn-pathway-item.lp-item-active{background:rgba(204,117,70,0.05);}
.mn-pathway-item.lp-item-active .mn-pathway-week{color:var(--text);}
.mn-pathway-item.lp-item-future{opacity:0.5;}

.lp-past-outcome{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:3px;margin-top:6px;}
.lp-past-outcome.outcome-ok{background:var(--green-bg);color:var(--green);}
.lp-past-outcome.outcome-escalated{background:var(--amber-bg);color:var(--amber);}
.lp-past-outcome.outcome-missed{background:rgba(90,112,144,0.10);color:var(--muted);}
.lp-past-outcome.outcome-concern{background:var(--red-bg);color:var(--red);}

/* Missed banner */
.lp-missed-banner{display:none;align-items:center;gap:10px;padding:9px 14px;background:rgba(184,50,41,0.04);border:1px solid rgba(184,50,41,0.15);border-radius:var(--radius);margin-bottom:12px;font-size:11.5px;color:var(--text);line-height:1.5;}
.lp-missed-banner.lp-missed-visible{display:flex;}
.lp-missed-dot{width:7px;height:7px;border-radius:50%;background:var(--red);flex-shrink:0;}
.lp-missed-label{font-size:8px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:0.5px;display:block;margin-bottom:1px;}

/* Risk shift indicator */
.lp-risk-shift{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);padding:6px 10px;background:var(--bg);border:1px solid var(--border-light);border-radius:4px;margin-top:8px;}
.lp-risk-shift-arrow{font-size:14px;flex-shrink:0;}
.lp-risk-shift.shift-worse .lp-risk-shift-arrow{color:var(--red);}
.lp-risk-shift.shift-better .lp-risk-shift-arrow{color:var(--green);}
.lp-risk-shift.shift-stable .lp-risk-shift-arrow{color:var(--muted);}


/* ════════════════════════════════════════════════════
   CLINICAL HANDOFF & COMMUNICATION
════════════════════════════════════════════════════ */
.hf-doc-selector{display:flex;gap:0;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:18px;}
.hf-doc-type{
  flex:1;padding:11px 14px;
  border-right:1px solid var(--border);
  cursor:pointer;transition:background 0.15s;
  background:none;border-top:none;border-bottom:none;border-left:none;
  border-right:1px solid var(--border);
  font-family:inherit;text-align:left;position:relative;
}
.hf-doc-type:last-child{border-right:none;}
.hf-doc-type:hover{background:var(--bg);}
.hf-doc-type.active{background:var(--navy-deep);}
.hf-doc-type.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--green);}
.hf-doc-type-label{font-size:9px;font-weight:700;letter-spacing:0.7px;text-transform:uppercase;margin-bottom:2px;color:var(--muted);}
.hf-doc-type.active .hf-doc-type-label{color:rgba(255,255,255,0.45);}
.hf-doc-type-name{font-size:11.5px;font-weight:600;color:var(--navy);line-height:1.2;}
.hf-doc-type.active .hf-doc-type-name{color:rgba(255,255,255,0.92);}

/* Output area */
.hf-output-wrap{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:start;}

.hf-document{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.hf-doc-header{padding:14px 20px 12px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.hf-doc-type-tag{font-size:8.5px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:var(--muted);margin-bottom:3px;display:flex;align-items:center;gap:6px;}
.hf-doc-type-tag::before{content:'';width:14px;height:1.5px;background:var(--border);}
.hf-doc-title{font-size:13.5px;font-weight:700;color:var(--navy);margin-bottom:2px;}
.hf-doc-subtitle{font-size:10.5px;color:var(--muted);}
.hf-doc-actions{display:flex;gap:6px;flex-shrink:0;}
.hf-copy-btn{display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--border);border-radius:4px;padding:5px 10px;font-size:10.5px;font-weight:500;color:var(--muted);cursor:pointer;font-family:inherit;transition:all 0.15s;}
.hf-copy-btn:hover{border-color:var(--accent);color:var(--accent);}
.hf-copy-btn.copied{border-color:var(--green);color:var(--green);background:var(--green-bg);}

.hf-doc-body{padding:20px 24px;}

/* Document sections */
.hf-section{margin-bottom:18px;}
.hf-section:last-child{margin-bottom:0;}
.hf-section-head{font-size:8.5px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:var(--muted);padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:6px;}
.hf-section-head-dot{width:5px;height:5px;border-radius:50%;background:var(--border);flex-shrink:0;}
.hf-section-head-dot.dot-red{background:var(--red);}
.hf-section-head-dot.dot-amber{background:var(--amber);}
.hf-section-head-dot.dot-green{background:var(--green);}
.hf-section-head-dot.dot-blue{background:var(--accent);}

/* Clinical text */
.hf-line{font-size:12px;color:var(--text);line-height:1.7;padding:1.5px 0;}
.hf-line strong{color:var(--navy);font-weight:600;}
.hf-line-flag{font-size:12px;color:var(--text);line-height:1.6;padding:4px 0 4px 10px;border-left:2px solid var(--border-light);margin:2px 0;}
.hf-line-flag.flag-red{border-left-color:var(--red);}
.hf-line-flag.flag-amber{border-left-color:var(--amber);}
.hf-line-flag.flag-green{border-left-color:var(--green);}

/* Inline tag chips */
.hf-tag{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:0.2px;padding:1px 6px;border-radius:3px;margin:0 3px;vertical-align:middle;}
.hf-tag-red{background:var(--red-bg);color:var(--red);}
.hf-tag-amber{background:var(--amber-bg);color:var(--amber);}
.hf-tag-green{background:var(--green-bg);color:var(--green);}
.hf-tag-blue{background:rgba(204,117,70,0.12);color:var(--accent);}
.hf-tag-neutral{background:var(--bg);color:var(--muted);border:1px solid var(--border);}

/* Action items list */
.hf-action-list{margin:4px 0;}
.hf-action-item{display:flex;align-items:baseline;gap:8px;font-size:12px;color:var(--text);padding:4px 0;border-bottom:1px solid var(--border-light);line-height:1.5;}
.hf-action-item:last-child{border-bottom:none;}
.hf-action-num{font-size:9px;font-weight:700;color:var(--muted);min-width:16px;flex-shrink:0;}
.hf-action-text strong{color:var(--navy);font-weight:600;}
.hf-action-when{margin-left:auto;font-size:9.5px;font-weight:600;color:var(--accent);white-space:nowrap;flex-shrink:0;}

/* Risk summary rows */
.hf-risk-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--border-light);font-size:11.5px;}
.hf-risk-row:last-child{border-bottom:none;}
.hf-risk-label{flex:1;color:var(--text);}
.hf-risk-level{font-size:9.5px;font-weight:700;letter-spacing:0.2px;padding:2px 7px;border-radius:3px;flex-shrink:0;}
.hf-risk-level.r-high{background:var(--red-bg);color:var(--red);}
.hf-risk-level.r-mod{background:var(--amber-bg);color:var(--amber);}
.hf-risk-level.r-low{background:var(--green-bg);color:var(--green);}
.hf-risk-level.r-monitor{background:rgba(204,117,70,0.09);color:var(--accent);}

.hf-divider{height:1px;background:var(--border-light);margin:14px 0;}

/* Signature block */
.hf-sig-block{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.hf-sig-name{font-size:11.5px;font-weight:600;color:var(--navy);}
.hf-sig-role,.hf-sig-date{font-size:10px;color:var(--muted);}

/* Sidebar panel */
.hf-sidebar-panel{display:flex;flex-direction:column;gap:12px;}
.hf-meta-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.hf-meta-head{padding:9px 14px;border-bottom:1px solid var(--border-light);background:var(--bg);font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.7px;}
.hf-meta-body{padding:12px 14px;}
.hf-meta-row{display:flex;align-items:baseline;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border-light);font-size:11px;}
.hf-meta-row:last-child{border-bottom:none;}
.hf-meta-key{color:var(--muted);}
.hf-meta-val{font-weight:600;color:var(--navy);font-size:11px;}
.hf-meta-val.val-red{color:var(--red);}
.hf-meta-val.val-amber{color:var(--amber);}
.hf-meta-val.val-green{color:var(--green);}

/* Generate button */
.hf-gen-btn{width:100%;padding:9px;border-radius:5px;background:var(--accent);color:rgba(255,255,255,0.95);border:none;font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:background 0.15s;display:flex;align-items:center;justify-content:center;gap:7px;}
.hf-gen-btn:hover{background:#b86638;}
.hf-gen-btn.generating{opacity:0.7;pointer-events:none;}

/* Status strip */
.hf-status-strip{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:rgba(42,157,110,0.05);border:1px solid rgba(42,157,110,0.15);border-radius:4px;margin-bottom:14px;font-size:10.5px;}
.hf-status-left{display:flex;align-items:center;gap:7px;color:var(--green);font-weight:600;}
.hf-status-left::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;}
.hf-status-right{color:var(--muted);}

/* Loading state */
.hf-loading{padding:48px 24px;text-align:center;color:var(--muted);}
.hf-loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:hf-spin 0.8s linear infinite;margin:0 auto 12px;}
@keyframes hf-spin{to{transform:rotate(360deg);}}
.hf-loading-text{font-size:11.5px;}

/* Format note */
.hf-format-note{padding:10px 14px;background:var(--bg);border:1px solid var(--border-light);border-radius:4px;font-size:10.5px;color:var(--muted);display:flex;align-items:flex-start;gap:7px;line-height:1.5;}

/* Escalation callout (uses .callout-red / .callout-amber base but kept explicit for doc context) */
.hf-escalation-callout{padding:10px 14px;margin:10px 0;background:var(--red-bg);border:1px solid rgba(184,50,41,0.15);border-left:3px solid var(--red);border-radius:0 4px 4px 0;font-size:11.5px;color:var(--text);line-height:1.55;}
.hf-escalation-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--red);margin-bottom:4px;}
.hf-amber-callout{padding:10px 14px;margin:10px 0;background:var(--amber-bg);border:1px solid rgba(184,122,0,0.15);border-left:3px solid var(--amber);border-radius:0 4px 4px 0;font-size:11.5px;color:var(--text);line-height:1.55;}
.hf-amber-callout-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--amber);margin-bottom:4px;}

/* Empty state */
.hf-empty{text-align:center;padding:64px 24px;color:var(--muted);}
.hf-empty-icon{margin-bottom:12px;opacity:0.35;}
.hf-empty-title{font-size:13px;font-weight:600;color:var(--navy);margin-bottom:4px;}
.hf-empty-sub{font-size:11.5px;color:var(--muted);}


/* ════════════════════════════════════════════════════
   SCENARIO ENTRY PAGE
════════════════════════════════════════════════════ */
.ep-overlay{min-height:100vh;background:var(--bg);display:flex;flex-direction:column;}

.ep-topbar{background:#2e2e2e;padding:10px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,0.06);flex-shrink:0;}
.ep-topbar-logo{height:36px;width:auto;max-width:200px;object-fit:contain;display:block;flex-shrink:0;}
.ep-topbar-right{display:flex;align-items:center;gap:10px;}
.ep-topbar-label{font-size:10px;font-weight:600;letter-spacing:0.6px;text-transform:uppercase;color:rgba(255,255,255,0.28);}
.ep-topbar-sep{width:1px;height:12px;background:rgba(255,255,255,0.12);}
.ep-topbar-id{font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.2px;}

.ep-body{flex:1;display:flex;gap:28px;max-width:1240px;width:100%;margin:0 auto;padding:40px 40px 32px;}
.ep-left{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:24px;}
.ep-right{width:380px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;}

.ep-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.9px;color:var(--muted);}
.ep-case-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.9px;color:var(--muted);margin-bottom:8px;}
.ep-case-title{font-family:'DM Serif Display',serif;font-size:22px;font-weight:400;color:var(--navy);line-height:1.3;margin-bottom:8px;}
.ep-case-subtitle{font-size:13px;color:var(--muted);line-height:1.65;max-width:560px;}

/* Patient card */
.ep-patient-card{background:var(--white);border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.ep-patient-header{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border-light);background:var(--bg);}
.ep-patient-avatar{width:36px;height:36px;border-radius:50%;background:rgba(204,117,70,0.25);color:rgba(255,230,210,0.90);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;border:1px solid rgba(204,117,70,0.30);}
.ep-patient-name{font-size:12.5px;font-weight:600;color:var(--text);}
.ep-patient-dx{font-size:11px;color:var(--muted);margin-top:1px;}
.ep-patient-id{margin-left:auto;font-size:10.5px;color:var(--muted);flex-shrink:0;}

.ep-patient-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border-light);}
.ep-param-cell{padding:12px 16px;border-right:1px solid var(--border-light);}
.ep-param-cell:nth-child(3n){border-right:none;}
.ep-param-cell:nth-child(4),.ep-param-cell:nth-child(5),.ep-param-cell:nth-child(6){border-top:1px solid var(--border-light);}
.ep-param-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);margin-bottom:4px;}
.ep-param-val{font-size:13px;font-weight:600;margin-bottom:2px;}
.ep-val-amber{color:var(--amber);}
.ep-val-red{color:var(--red);}
.ep-val-green{color:var(--green);}
.ep-param-note{font-size:10px;color:var(--muted);line-height:1.4;}

.ep-prior-failure{display:flex;align-items:flex-start;gap:7px;padding:11px 16px;font-size:11px;line-height:1.55;background:rgba(184,122,0,0.04);border-top:1px solid rgba(184,122,0,0.12);color:var(--amber);}

/* Clinical info blocks */
.ep-clinical-blocks{display:flex;flex-direction:column;gap:8px;}
.ep-clinical-block{border:1px solid var(--border);border-radius:5px;padding:13px 16px;background:var(--white);}
.ep-clinical-block-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.85px;color:var(--muted);margin-bottom:6px;}
.ep-clinical-block-body{font-size:12px;color:var(--text);line-height:1.65;}
.ep-clinical-block--objective{border-left:3px solid var(--accent);background:rgba(204,117,70,0.05);}
.ep-clinical-block--objective .ep-clinical-block-label{color:var(--accent);}
.ep-clinical-block--concern{border-left:3px solid var(--red);background:var(--red-bg);}
.ep-clinical-block--concern .ep-clinical-block-label{color:var(--red);}
.ep-clinical-block--action{border-left:3px solid var(--green);background:var(--green-bg);}
.ep-clinical-block--action .ep-clinical-block-label{color:var(--green);}

/* Complexity indicators */
.ep-complexity-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.ep-cx-item{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;border-radius:5px;border:1px solid transparent;}
.ep-cx-amber{background:var(--amber-bg);border-color:rgba(184,122,0,0.14);}
.ep-cx-red{background:var(--red-bg);border-color:rgba(184,50,41,0.14);}
.ep-cx-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:4px;}
.ep-cx-amber .ep-cx-dot{background:var(--amber);}
.ep-cx-red .ep-cx-dot{background:var(--red);}
.ep-cx-name{font-size:12px;font-weight:600;margin-bottom:3px;}
.ep-cx-amber .ep-cx-name{color:var(--amber);}
.ep-cx-red .ep-cx-name{color:var(--red);}
.ep-cx-desc{font-size:11px;color:var(--muted);line-height:1.55;}

/* Workflow card */
.ep-workflow-card{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:18px 20px;}
.ep-workflow-intro{font-size:12px;color:var(--muted);line-height:1.65;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border-light);}
.ep-workflow-steps{display:flex;flex-direction:column;gap:12px;}
.ep-step{display:flex;align-items:flex-start;gap:12px;}
.ep-step-num{width:22px;height:22px;border-radius:4px;background:var(--navy-deep);color:rgba(255,255,255,0.70);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.ep-step-title{font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px;}
.ep-step-desc{font-size:11px;color:var(--muted);line-height:1.55;}

/* Modifiable parameters */
.ep-modifiable-card{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:16px 20px;}
.ep-mod-list{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;}
.ep-mod-row{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--text);line-height:1.5;}
.ep-mod-row svg{flex-shrink:0;margin-top:2px;color:var(--green);}
.ep-mod-note{font-size:10.5px;color:var(--muted);padding-top:10px;border-top:1px solid var(--border-light);}

/* CTA */
.ep-cta-area{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.ep-cta-btn{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;background:var(--accent);color:rgba(255,255,255,0.95);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;border:none;border-radius:5px;cursor:pointer;transition:background 0.15s,transform 0.1s;letter-spacing:0.1px;}
.ep-cta-btn:hover{background:#b86638;transform:translateY(-1px);}
.ep-cta-btn:active{transform:translateY(0);}
.ep-cta-note{font-size:10px;color:var(--muted);}

/* Disclaimer */
.ep-disclaimer{display:flex;align-items:flex-start;gap:7px;font-size:10.5px;color:var(--muted);line-height:1.55;padding:10px 14px;background:var(--bg2);border:1px solid var(--border-light);border-radius:5px;}

/* Footer */
.ep-footer{border-top:1px solid var(--border);padding:9px 40px;background:var(--white);font-size:10.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}

/* Review objective section */
.ep-review-objective{margin-bottom:18px;padding:13px 16px;background:rgba(204,117,70,0.05);border:1px solid rgba(204,117,70,0.20);border-left:3px solid var(--accent);border-radius:var(--radius);}
.ep-ro-eyebrow{font-size:9px;font-weight:700;letter-spacing:0.6px;text-transform:uppercase;color:var(--accent);margin-bottom:5px;}
.ep-ro-objective{font-size:13px;font-weight:500;color:var(--text);margin-bottom:10px;line-height:1.4;}
.ep-ro-pills{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.ep-ro-pill{font-size:10.5px;font-weight:500;padding:3px 9px;border-radius:3px;border:1px solid;}
.ep-ro-pill-red{color:var(--red);background:var(--red-bg);border-color:rgba(184,50,41,0.15);}
.ep-ro-pill-amber{color:var(--amber);background:var(--amber-bg);border-color:rgba(184,122,0,0.15);}
.ep-ro-pill-blue{color:var(--accent);background:var(--blue-light);border-color:rgba(204,117,70,0.22);}


/* ════════════════════════════════════════════════════
   CLINICAL SUMMARY LAYER (CSL)
════════════════════════════════════════════════════ */
.csl-block{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);margin-bottom:20px;overflow:hidden;}
.csl-head{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 20px 12px;border-bottom:1px solid var(--border-light);background:var(--bg);flex-wrap:wrap;gap:8px;}
.csl-head-left{display:flex;flex-direction:column;gap:4px;}
.csl-head-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.csl-eyebrow{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--navy);opacity:0.65;}
.csl-title{font-family:'DM Serif Display',serif;font-size:17px;color:var(--navy);line-height:1.2;letter-spacing:-0.1px;}
.csl-status-pill{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;padding:3px 9px;border-radius:3px;letter-spacing:0.2px;}
.csl-status-green{background:rgba(42,157,110,0.10);color:var(--green);border:1px solid rgba(42,157,110,0.20);}
.csl-status-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0;}
.csl-case-ref{font-size:10px;font-weight:600;color:var(--muted);background:var(--bg2);border:1px solid var(--border);padding:2px 8px;border-radius:3px;letter-spacing:0.3px;}
.csl-body{display:grid;grid-template-columns:1fr 1px 340px;gap:0;}
.csl-main{padding:16px 20px;}
.csl-flags{padding:16px 20px;}
.csl-divider{background:var(--border-light);width:1px;margin:12px 0;}
.csl-section-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.9px;color:var(--muted);margin-bottom:10px;}

/* Recommendation lines */
.csl-rec-block{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.csl-rec-line{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--text);line-height:1.55;}
.csl-rec-bullet{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px;}
.csl-bullet-green{background:var(--green);}
.csl-bullet-red{background:var(--red);}
.csl-bullet-amber{background:var(--amber);}
.csl-bullet-blue{background:var(--accent);}

/* Escalation note */
.csl-escalation-note{padding:9px 12px;background:var(--bg);border:1px solid var(--border-light);border-radius:4px;}
.csl-esc-label{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;color:var(--muted);margin-bottom:7px;}
.csl-esc-steps{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.csl-esc-step{font-size:11px;font-weight:500;color:var(--navy);background:var(--white);border:1px solid var(--border);padding:2.5px 9px;border-radius:3px;white-space:nowrap;}
.csl-esc-conditional{color:var(--muted);background:var(--bg2);font-style:italic;}

/* Flags */
.csl-flag{padding:9px 11px;border-radius:4px;margin-bottom:7px;border-left:3px solid transparent;}
.csl-flag:last-child{margin-bottom:0;}
.csl-flag-red{background:rgba(184,50,41,0.04);border-left-color:var(--red);}
.csl-flag-amber{background:rgba(184,122,0,0.04);border-left-color:var(--amber);}
.csl-flag-blue{background:rgba(204,117,70,0.05);border-left-color:var(--accent);}
.csl-flag-head{display:flex;align-items:center;gap:6px;margin-bottom:3px;}
.csl-flag-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.csl-dot-red{background:var(--red);}
.csl-dot-amber{background:var(--amber);}
.csl-dot-blue{background:var(--accent);}
.csl-flag-label{font-size:11px;font-weight:600;color:var(--navy);}
.csl-flag-text{font-size:11px;color:var(--muted);line-height:1.5;padding-left:12px;}

/* Footer */
.csl-footer{display:flex;align-items:center;justify-content:space-between;padding:9px 20px;border-top:1px solid var(--border-light);background:var(--bg);flex-wrap:wrap;gap:8px;}
.csl-footer-left{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.csl-footer-badge{font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;letter-spacing:0.1px;white-space:nowrap;}
.csl-badge-green{background:rgba(42,157,110,0.09);color:var(--green);border:1px solid rgba(42,157,110,0.18);}
.csl-badge-blue{background:rgba(204,117,70,0.10);color:var(--accent);border:1px solid rgba(204,117,70,0.20);}
.csl-badge-muted{background:var(--bg2);color:var(--muted);border:1px solid var(--border);}
.csl-footer-note{font-size:10px;color:var(--muted);}


/* ════════════════════════════════════════════════════
   REVIEW OBJECTIVE BANNER (ROB)
════════════════════════════════════════════════════ */
.rob-banner{display:flex;align-items:stretch;gap:0;background:var(--card-pi);border:1px solid #2a2a28;border-radius:var(--radius);margin-bottom:16px;overflow:hidden;}
.rob-accent{width:3px;background:var(--accent);flex-shrink:0;}
.rob-inner{display:flex;flex-direction:column;gap:10px;padding:13px 16px 13px 14px;flex:1;}
.rob-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.rob-objective-group{display:flex;flex-direction:column;gap:3px;}
.rob-eyebrow{font-size:9.5px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;color:var(--pi-text-label);}
.rob-objective{font-size:13.5px;font-weight:500;color:var(--pi-text-primary);line-height:1.35;}
.rob-right-cluster{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;}
.rob-concern-pill{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:4px;background:rgba(192,64,64,0.12);border:1px solid rgba(192,64,64,0.24);}
.rob-concern-dot{width:5px;height:5px;border-radius:50%;background:var(--red);flex-shrink:0;}
.rob-concern-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:0.4px;color:var(--red);white-space:nowrap;}
.rob-concern-text{font-size:11px;font-weight:500;color:var(--red);white-space:nowrap;}
.rob-bottom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rob-action-block{display:flex;align-items:center;gap:6px;}
.rob-action-label{font-size:9.5px;font-weight:600;letter-spacing:0.4px;text-transform:uppercase;color:var(--pi-text-label);flex-shrink:0;}
.rob-action-sep{width:1px;height:10px;background:#2e2e2c;flex-shrink:0;}
.rob-action-chip{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--green);padding:3px 8px;border-radius:3px;background:rgba(42,157,110,0.12);border:1px solid rgba(42,157,110,0.24);white-space:nowrap;}
.rob-action-chip svg{flex-shrink:0;opacity:0.8;}
.rob-action-alt{font-size:11px;color:var(--pi-text-secondary);}
.rob-divider-dot{width:3px;height:3px;border-radius:50%;background:#3a3a38;flex-shrink:0;}


/* ════════════════════════════════════════════════════
   PHARMACIST INTERVENTION PANEL (PI)
════════════════════════════════════════════════════ */
.pi-panel{background:var(--card-pi);border:1px solid #2a2a28;border-radius:var(--radius);margin-bottom:18px;overflow:hidden;}
.pi-header{display:flex;align-items:flex-start;justify-content:space-between;padding:13px 18px 11px;border-bottom:1px solid #282826;background:var(--card-pi-header);}
.pi-header-left{display:flex;flex-direction:column;gap:3px;}
.pi-eyebrow{display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:700;letter-spacing:0.6px;text-transform:uppercase;color:var(--pi-text-label);}
.pi-title{font-size:13.5px;font-weight:600;color:var(--pi-text-primary);letter-spacing:-0.01em;line-height:1.3;}
.pi-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.pi-case-ref{font-size:9.5px;color:var(--pi-text-dim);font-weight:500;letter-spacing:0.3px;padding-left:10px;border-left:1px solid #2e2e2c;}

/* Priority badge */
.pi-priority-badge{display:flex;align-items:center;gap:5px;padding:4px 9px;border-radius:4px;font-size:10.5px;font-weight:600;letter-spacing:0.1px;border:1px solid transparent;transition:background 0.25s,color 0.25s,border-color 0.25s;}
.pi-priority-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.pi-priority-badge.pi-prio-routine{background:rgba(42,157,110,0.12);color:var(--green);border-color:rgba(42,157,110,0.22);}
.pi-priority-badge.pi-prio-routine .pi-priority-dot{background:var(--green);}
.pi-priority-badge.pi-prio-monitor{background:rgba(196,138,48,0.12);color:var(--amber);border-color:rgba(196,138,48,0.24);}
.pi-priority-badge.pi-prio-monitor .pi-priority-dot{background:var(--amber);}
.pi-priority-badge.pi-prio-elevated{background:rgba(196,138,48,0.14);color:var(--amber);border-color:rgba(196,138,48,0.28);}
.pi-priority-badge.pi-prio-elevated .pi-priority-dot{background:var(--amber);box-shadow:0 0 0 2px rgba(196,138,48,0.18);}
.pi-priority-badge.pi-prio-high{background:rgba(192,64,64,0.12);color:var(--red);border-color:rgba(192,64,64,0.26);}
.pi-priority-badge.pi-prio-high .pi-priority-dot{background:var(--red);}

/* Three-column body */
.pi-body{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:0;}
.pi-col{padding:14px 18px;display:flex;flex-direction:column;gap:9px;}
.pi-col-divider{width:1px;background:var(--card-pi-divider);margin:10px 0;}
.pi-col-label{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--pi-text-label);margin-bottom:2px;}

/* Intervention column */
.pi-intervention-main{font-size:12.5px;font-weight:600;color:var(--pi-text-primary);line-height:1.4;}
.pi-intervention-subs{display:flex;flex-direction:column;gap:5px;}
.pi-sub-item{display:flex;align-items:flex-start;gap:7px;font-size:11px;color:var(--pi-text-secondary);line-height:1.4;}
.pi-sub-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;margin-top:4px;}
.pi-dot-green{background:var(--green);}
.pi-dot-amber{background:var(--amber);}
.pi-dot-red{background:var(--red);}
.pi-dot-blue{background:var(--accent);}
.pi-dot-muted{background:var(--pi-text-dim);}

/* Urgency column */
.pi-urgency-items{display:flex;flex-direction:column;gap:6px;}
.pi-urgency-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:4px;border:1px solid transparent;font-size:11px;line-height:1.4;color:var(--pi-text-secondary);}
.pi-urgency-item.urg-amber{background:rgba(196,138,48,0.08);border-color:rgba(196,138,48,0.20);}
.pi-urgency-item.urg-red{background:rgba(192,64,64,0.08);border-color:rgba(192,64,64,0.20);}
.pi-urgency-item.urg-blue{background:rgba(204,117,70,0.08);border-color:rgba(204,117,70,0.20);}
.pi-urgency-icon{flex-shrink:0;margin-top:1px;color:var(--pi-text-dim);}
.pi-urgency-item.urg-amber .pi-urgency-icon{color:var(--amber);}
.pi-urgency-item.urg-red .pi-urgency-icon{color:var(--red);}
.pi-urgency-item.urg-blue .pi-urgency-icon{color:var(--accent);}
.pi-urgency-item strong{font-weight:600;color:var(--pi-text-primary);}

/* Follow-up column */
.pi-followup-items{display:flex;flex-direction:column;gap:5px;flex:1;}
.pi-followup-item{display:flex;align-items:flex-start;gap:7px;font-size:11px;color:var(--pi-text-secondary);line-height:1.4;}
.pi-followup-arrow{flex-shrink:0;margin-top:1px;color:var(--pi-text-label);opacity:1;font-size:10px;}
.pi-followup-item strong{font-weight:600;color:var(--pi-text-primary);}
.pi-next-contact{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--green);font-weight:600;padding:5px 7px;background:rgba(42,157,110,0.10);border:1px solid rgba(42,157,110,0.22);border-radius:4px;margin-top:4px;}

/* Action pathway strip */
.pi-pathway-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 18px 10px;border-top:1px solid #282826;background:var(--card-pi-strip);}
.pi-pathway-label{font-size:9px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--pi-text-label);flex-shrink:0;}
.pi-pathway-steps{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:1;}
.pi-pathway-step{font-size:10.5px;color:var(--pi-text-secondary);font-weight:500;padding:2.5px 7px;border-radius:3px;background:#282828;border:1px solid #333330;}
.pi-pathway-step.pi-step-active{background:rgba(42,157,110,0.12);border-color:rgba(42,157,110,0.28);color:var(--green);font-weight:600;}
.pi-pathway-step.pi-step-conditional{background:rgba(196,138,48,0.10);border-color:rgba(196,138,48,0.24);color:var(--amber);}
.pi-pathway-step.pi-step-closed{background:rgba(192,64,64,0.08);border-color:rgba(192,64,64,0.20);color:var(--red);text-decoration:line-through;opacity:0.7;}
.pi-pathway-arrow{color:var(--pi-text-dim);font-size:10px;opacity:1;flex-shrink:0;}
.pi-pathway-note{font-size:10px;color:var(--pi-text-secondary);font-style:italic;flex-shrink:0;padding-left:8px;border-left:1px solid #333330;}


/* ════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════ */
@media(max-width:900px){
  .hf-output-wrap{grid-template-columns:1fr;}
  .csl-body{grid-template-columns:1fr;}
  .csl-divider{width:auto;height:1px;margin:0 12px;}
}

@media(max-width:768px){
  .dp-wrap{flex-direction:column;}
  .dp-sidebar{width:100%;height:auto;position:relative;}
  .dp-nav{display:flex;overflow-x:auto;padding:8px;gap:3px;}
  .dp-nav-item{white-space:nowrap;flex-shrink:0;}
  .dp-content{padding:16px;}
  .si-grid{grid-template-columns:1fr 1fr;}
  .ds-alts{grid-template-columns:1fr;}
  .ds-primary-cols{grid-template-columns:1fr;}
  .mn-top,.mn-intervals{grid-template-columns:1fr 1fr;}
  .ev-stats{grid-template-columns:1fr 1fr;}
  .cn-layout{grid-template-columns:1fr;}
  .wn-grid{grid-template-columns:1fr;}
  .ep-topbar-logo{height:28px;}
  .dp-logo-img{height:26px;}
  .ep-topbar{padding:10px 20px;}
}

/* ════════════════════════════════════════════════════
   EMPTY STRUCTURAL STUBS (preserved for HTML targeting)
════════════════════════════════════════════════════ */
/* Empty containers — no rules needed, kept for selector integrity */
.si-med-col{}
.ds-conf-detail{}
.mn-pathway-content{}
.hf-doc-meta{}
.csl-footer-right{}

/* Padding-zero body wrappers */
.poly-body{padding:0;}
.deprescribe-body{padding:0;}

/* hf-sig-date is grouped with hf-sig-role in the sig block above;
   explicit alias kept for any direct JS/HTML targeting */
.hf-sig-date{font-size:10px;color:var(--muted);}

/* ════════════════════════════════════════════════════
   DARK MODE SCROLLBAR & SELECT OVERRIDES
════════════════════════════════════════════════════ */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.20);}

select,input,textarea{color-scheme:dark;}
input[type="range"]{accent-color:var(--accent);}

/* ════════════════════════════════════════════════════
   WORKFLOW SELECTOR PAGE
════════════════════════════════════════════════════ */
.sel-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 40px 32px;gap:32px;max-width:1100px;margin:0 auto;width:100%;}
.sel-header{text-align:center;max-width:580px;}
.sel-eyebrow{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:10px;}
.sel-title{font-family:'DM Serif Display',serif;font-size:28px;color:var(--navy);margin:0 0 10px;}
.sel-subtitle{font-size:13px;color:var(--muted);line-height:1.6;margin:0;}
.sel-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;width:100%;max-width:860px;}
.sel-card{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:22px 24px;cursor:pointer;transition:border-color 0.15s,box-shadow 0.15s;display:flex;flex-direction:column;gap:10px;}
.sel-card:hover{border-color:var(--accent);box-shadow:0 4px 20px rgba(0,0,0,0.12);}
.sel-card-new{border-left:3px solid var(--green);}
.sel-card-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:var(--muted);}
.sel-tag-green{color:var(--green)!important;}
.sel-card-title{font-family:'DM Serif Display',serif;font-size:19px;color:var(--navy);line-height:1.25;}
.sel-card-desc{font-size:11.5px;color:var(--muted);line-height:1.6;}
.sel-card-pills{display:flex;flex-wrap:wrap;gap:5px;}
.sel-pill{font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;}
.sel-pill-red{background:var(--red-bg);color:var(--red);border:1px solid rgba(192,64,64,0.18);}
.sel-pill-amber{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(196,138,48,0.18);}
.sel-pill-blue{background:rgba(204,117,70,0.09);color:var(--accent);border:1px solid rgba(204,117,70,0.20);}
.sel-pill-green{background:rgba(58,170,120,0.08);color:var(--green);border:1px solid rgba(58,170,120,0.15);}
.sel-card-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding-top:4px;border-top:1px solid var(--border-light);}
.sel-card-sections{font-weight:600;}
.sel-card-cta{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--accent);}
.ep-topbar-back{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:rgba(255,255,255,0.5);text-decoration:none;letter-spacing:0.3px;transition:color 0.15s;}
.ep-topbar-back:hover{color:rgba(255,255,255,0.85);}

/* ════════════════════════════════════════════════════
   ABX WORKFLOW — PATIENT BANNER & PARAMS
════════════════════════════════════════════════════ */
.abx-patient-banner{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;flex-wrap:wrap;}
.abx-patient-name{font-size:13px;font-weight:600;color:var(--navy);}
.abx-patient-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.abx-patient-tags{display:flex;gap:6px;flex-shrink:0;}
.abx-tag{font-size:9.5px;font-weight:600;padding:3px 9px;border-radius:3px;}
.abx-tag-amber{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(196,138,48,0.22);}
.abx-tag-blue{background:rgba(204,117,70,0.09);color:var(--accent);border:1px solid rgba(204,117,70,0.22);}
.abx-tag-green{background:rgba(58,170,120,0.08);color:var(--green);border:1px solid rgba(58,170,120,0.22);}
.abx-tag-red{background:var(--red-bg);color:var(--red);border:1px solid rgba(192,64,64,0.22);}
.abx-param-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;}
.abx-param-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px 10px;cursor:pointer;transition:border-color 0.15s;position:relative;}
.abx-param-card:hover{border-color:var(--accent);}
/* dp-param-card aliases for HF/COPD/newer workflows */
.dp-param-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 12px;cursor:pointer;transition:border-color 0.15s;position:relative;}
.dp-param-card:hover{border-color:var(--accent);}
.dp-param-label{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;margin-bottom:5px;}
.dp-param-value{font-size:18px;font-weight:700;color:var(--navy);margin-bottom:2px;}
.dp-param-sub{font-size:10.5px;color:var(--muted);}
.dp-param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px;}
.dp-card-group-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px;margin-top:4px;}
.dp-required{color:var(--red);font-size:9px;}
.dp-mandatory-note{font-size:10px;color:var(--accent);font-weight:600;margin-left:6px;}
.dp-pop-title{font-size:11px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.dp-pop-desc{font-size:10.5px;color:var(--muted);margin-bottom:10px;line-height:1.5;}
.dp-pop-field-label{font-size:9.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;display:block;margin-bottom:5px;}
.dp-range-display{font-size:13px;font-weight:600;color:var(--navy);margin:4px 0 8px;text-align:center;}
.dp-pop-actions{display:flex;gap:8px;margin-top:10px;}
.dp-pop-cancel{flex:1;padding:7px;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;}
.dp-pop-apply{flex:2;padding:7px;border:none;border-radius:5px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;cursor:pointer;}
.dp-chip{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;background:rgba(37,99,235,0.08);color:#2563eb;border:1px solid rgba(37,99,235,0.15);margin-right:4px;margin-bottom:4px;}
.dp-chip-sm{font-size:9px;padding:1px 6px;}
.dp-chip-label{font-size:10px;font-weight:600;color:var(--muted);margin-right:4px;}
.dp-guideline-chips{padding:8px 0 4px;margin-bottom:4px;}
.dp-step-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;}
.dp-section-title{font-size:22px;font-weight:800;color:var(--navy);margin-bottom:6px;}
.dp-section-desc{font-size:12.5px;color:var(--muted);margin-bottom:18px;line-height:1.5;}
.dp-pending-note{font-size:12px;color:var(--muted);font-style:italic;padding:14px 0;}
.dp-flag-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light);}
.dp-flag-icon{font-size:14px;flex-shrink:0;margin-top:1px;}
.dp-flag-text{font-size:12.5px;color:var(--body);line-height:1.5;}
.dp-flag-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.3px;}
.abx-param-wide{grid-column:span 2;}
.abx-param-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);margin-bottom:5px;}
.abx-param-value{font-size:18px;font-weight:700;color:var(--navy);font-family:'DM Serif Display',serif;}
.abx-param-status{font-size:10px;color:var(--muted);margin-top:3px;}
.abx-val-amber{color:var(--amber)!important;}
.abx-val-red{color:var(--red)!important;}
.abx-val-green{color:var(--green)!important;}

/* ════════════════════════════════════════════════════
   ABX MONITORING & DOSING
════════════════════════════════════════════════════ */
.mn-top{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.mn-stat-val-lg{font-size:28px;}
.mn-stat-val-pending{font-size:14px;margin-top:4px;color:var(--amber);font-weight:600;}
.mn-stat-uncertain{color:var(--amber)!important;}
.mn-stat-card-uncertain{border-left:2px solid var(--amber);}
.mon-schedule-grid{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.mon-schedule-head{display:grid;grid-template-columns:110px 1fr 1fr 1fr;background:var(--bg);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);padding:7px 12px;gap:10px;}
.mon-schedule-row{display:grid;grid-template-columns:110px 1fr 1fr 1fr;border-top:1px solid var(--border-light);gap:10px;padding:9px 12px;align-items:start;}
.mon-row-last{background:rgba(58,170,120,0.04);}
.mon-cell{font-size:11px;color:var(--text);line-height:1.5;}
.mon-cell-checkpoint{font-size:11px;font-weight:700;color:var(--navy);}
.mon-cell-amber{color:var(--amber);}
.mon-cell-red{color:var(--red);}
.mon-cell-muted{color:var(--muted);}
.renal-dosing-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:13px 16px;margin-bottom:14px;}
.renal-dosing-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.renal-dosing-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);margin-bottom:6px;}
.renal-dosing-val{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.renal-dosing-val-amber{color:var(--amber);}
.renal-dosing-note{font-size:10.5px;color:var(--muted);line-height:1.5;}
.mn-contra{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:7px;}
.mn-contra-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);margin-bottom:2px;}
.mn-contra-item{font-size:11px;color:var(--text);display:flex;gap:8px;align-items:flex-start;line-height:1.5;}
.mn-contra-x{color:var(--amber);flex-shrink:0;font-size:11px;}

/* ════════════════════════════════════════════════════
   ABX POPOVER SELECT
════════════════════════════════════════════════════ */
.ip-pop-select{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:11.5px;color:var(--text);font-family:'DM Sans',sans-serif;}
.ip-pop-select:focus{outline:none;border-color:var(--accent);}

/* responsive */
@media(max-width:860px){.sel-cards{grid-template-columns:1fr;}}
@media(max-width:700px){.abx-param-grid{grid-template-columns:repeat(2,1fr);}.abx-param-wide{grid-column:span 2;}.mn-top{grid-template-columns:1fr 1fr;}.renal-dosing-cols{grid-template-columns:1fr;}.mon-schedule-head,.mon-schedule-row{grid-template-columns:80px 1fr 1fr;}.mon-schedule-head>div:nth-child(3),.mon-schedule-row>.mon-cell:nth-child(3){display:none;}}

/* ════════════════════════════════════════════════════
   WORKFLOW LIBRARY — SELECTOR PAGE ENHANCEMENTS
════════════════════════════════════════════════════ */

/* Override sel-body to accommodate taller content */
#selector-page .sel-body {
  justify-content: flex-start;
  padding: 36px 40px 40px;
  gap: 20px;
}

/* Platform header row */
.sel-platform-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  width: 100%;
  max-width: 860px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.sel-platform-left { flex: 1; }
.sel-platform-left .sel-eyebrow { margin-bottom: 6px; }
.sel-platform-left .sel-title   { margin-bottom: 8px; }
.sel-platform-left .sel-subtitle{ max-width: 480px; }

/* Platform stats cluster */
.sel-platform-stats {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 16px;
  gap: 12px;
}
.sel-stat { text-align: center; }
.sel-stat-val {
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  color: var(--navy);
  line-height: 1;
  margin-bottom: 3px;
}
.sel-stat-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted);
  white-space: nowrap;
}
.sel-stat-div {
  width: 1px;
  height: 28px;
  background: var(--border);
  flex-shrink: 0;
}

/* Domain / section label row */
.sel-domain-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 860px;
}
.sel-domain-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--muted);
}
.sel-domain-count {
  font-size: 9px;
  font-weight: 600;
  color: var(--muted);
}

/* Card inner-top: number + tag row */
.sel-card-inner-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
}
.sel-card-num {
  font-size: 9px;
  font-weight: 800;
  color: var(--border);
  letter-spacing: 0.5px;
  line-height: 1;
  flex-shrink: 0;
}
.sel-card-num-green { color: rgba(58,170,120,0.35); }

/* ABX card — green left accent instead of generic */
.sel-card-abx { border-left: 3px solid var(--green); }
.sel-card-abx:hover { border-color: var(--green); border-left-color: var(--green); }

/* "What you'll assess" section */
.sel-card-assess-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--muted);
  margin-bottom: 5px;
}
.sel-card-assess-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 2px;
}
.sel-assess-item {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
  color: var(--text);
  line-height: 1.5;
}
.sel-assess-item svg {
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 2px;
}
.sel-card-abx .sel-assess-item svg { color: var(--green); }

/* Green CTA variant */
.sel-card-cta-green { color: var(--green); }

/* Capability strip */
.sel-capability-strip {
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 860px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 9px 16px;
  flex-wrap: wrap;
  gap: 10px;
}
.sel-cap-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
}
.sel-cap-item svg { color: var(--accent); flex-shrink: 0; }
.sel-cap-div {
  width: 1px;
  height: 12px;
  background: var(--border);
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 860px) {
  .sel-platform-header { flex-direction: column; gap: 16px; }
  .sel-platform-stats  { align-self: flex-start; }
  #selector-page .sel-body { padding: 24px 20px 32px; }
}
@media (max-width: 600px) {
  .sel-platform-stats { display: none; }
  .sel-cap-div        { display: none; }
  .sel-capability-strip { gap: 8px; }
}

/* ════════════════════════════════════════════════════
   POLYPHARMACY WORKFLOW
════════════════════════════════════════════════════ */

/* Selector card accent */
.sel-card-poly { border-left: 3px solid #7c5cbf; }
.sel-card-poly:hover { border-color: #7c5cbf; border-left-color: #7c5cbf; }
.sel-card-num-purple  { color: rgba(124,92,191,0.35); }
.sel-tag-purple       { color: #7c5cbf !important; }
.sel-pill-purple      { background: rgba(124,92,191,0.09); color: #7c5cbf; border: 1px solid rgba(124,92,191,0.22); }
.sel-card-cta-purple  { color: #7c5cbf; }
.sel-assess-item-poly svg { color: #7c5cbf; }

/* Medication table */
.poly-med-table { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 10px; }
.poly-med-head  { display: grid; grid-template-columns: 1.6fr 1.2fr 1.4fr 1.2fr; background: var(--bg); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); padding: 7px 12px; gap: 10px; }
.poly-med-row   { display: grid; grid-template-columns: 1.6fr 1.2fr 1.4fr 1.2fr; border-top: 1px solid var(--border-light); gap: 10px; padding: 8px 12px; align-items: center; }
.poly-med-row-last { background: rgba(58,170,120,0.02); }
.poly-med-name  { font-size: 11px; font-weight: 600; color: var(--navy); }
.poly-med-ind   { font-size: 10.5px; color: var(--muted); }
.poly-med-flag  { font-size: 10px; font-weight: 600; }
.poly-med-pri   { font-size: 10px; font-weight: 600; }
.poly-flag-red    { color: var(--red); }
.poly-flag-amber  { color: var(--amber); }
.poly-flag-muted  { color: var(--muted); font-weight: 400; }
.poly-pri-red     { color: var(--red); }
.poly-pri-amber   { color: var(--amber); }
.poly-pri-muted   { color: var(--muted); font-weight: 400; }

/* Deprescribing targets */
.poly-depresc-grid { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.poly-depresc-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 15px; border-left: 3px solid var(--border); }
.poly-depresc-urgent  { border-left-color: var(--red); }
.poly-depresc-high    { border-left-color: var(--amber); }
.poly-depresc-moderate{ border-left-color: var(--muted); }
.poly-depresc-priority{ font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; color: var(--muted); margin-bottom: 3px; }
.poly-depresc-urgent .poly-depresc-priority { color: var(--red); }
.poly-depresc-high .poly-depresc-priority   { color: var(--amber); }
.poly-depresc-drug   { font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 5px; }
.poly-depresc-reason { font-size: 11.5px; color: var(--text); line-height: 1.6; margin-bottom: 7px; }
.poly-depresc-action { font-size: 10.5px; font-weight: 600; color: var(--accent); background: var(--bg); border: 1px solid var(--border); border-radius: 3px; padding: 4px 9px; display: inline-block; }

/* Responsive */
@media (max-width: 700px) {
  .poly-med-head, .poly-med-row { grid-template-columns: 1fr 1fr; }
  .poly-med-head > div:nth-child(3), .poly-med-head > div:nth-child(4),
  .poly-med-row > div:nth-child(3), .poly-med-row > div:nth-child(4) { display: none; }
}


/* ════════════════════════════════════════════════════════════
   PHASE 2 — PLATFORM SHELL STYLES
   Appended block — zero modifications to existing rules.
   All new classes prefixed clx- to avoid any collision with
   existing dp-, ep-, ip-, sel-, abx-, poly- prefixed classes.
════════════════════════════════════════════════════════════ */

/* ── Global navigation bar ─────────────────────────────────── */

.clx-nav {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--white);
  border-bottom: 1px solid var(--border);
  height: 48px;
  display: flex;
  align-items: center;
}

.clx-nav-inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  gap: 24px;
}

.clx-nav-brand {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

.clx-nav-logo {
  height: 22px;
  width: auto;
}

.clx-nav-links {
  display: flex;
  gap: 4px;
  flex: 1;
}

.clx-nav-link {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
  padding: 5px 10px;
  border-radius: 5px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}

.clx-nav-link:hover {
  background: var(--bg);
  color: var(--navy);
}

.clx-nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

/* ── App view container ─────────────────────────────────────── */

#app-view {
  min-height: calc(100vh - 48px);
  background: var(--bg);
}

/* ── Shared button system ───────────────────────────────────── */

.clx-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.13s, color 0.13s, opacity 0.13s;
  padding: 8px 16px;
  white-space: nowrap;
  text-decoration: none;
}

.clx-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.clx-btn-primary {
  background: var(--accent);
  color: #fff;
}

.clx-btn-primary:hover:not(:disabled) {
  background: #b5602f;
  box-shadow: 0 2px 8px rgba(204,117,70,0.3);
}

.clx-btn-secondary {
  background: var(--white);
  color: var(--text);
  border: 1px solid var(--border);
}

.clx-btn-secondary:hover:not(:disabled) {
  background: var(--bg);
  border-color: var(--text);
}

.clx-btn-ghost {
  background: transparent;
  color: var(--muted);
  border: 1px solid transparent;
}

.clx-btn-ghost:hover:not(:disabled) {
  background: var(--bg);
  color: var(--text);
}

.clx-btn-danger {
  background: var(--red-bg);
  color: var(--red);
  border: 1px solid rgba(192,64,64,0.2);
}

.clx-btn-danger:hover:not(:disabled) {
  background: var(--red);
  color: #fff;
}

.clx-btn-sm {
  font-size: 11.5px;
  padding: 5px 12px;
}

/* ── Status pills ───────────────────────────────────────────── */

.clx-status-pill {
  display: inline-flex;
  align-items: center;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.3px;
  text-transform: capitalize;
  white-space: nowrap;
}

.clx-status-draft {
  background: var(--bg);
  color: var(--muted);
  border: 1px solid var(--border);
}

.clx-status-in_progress {
  background: rgba(30,106,191,0.08);
  color: var(--accent);
  border: 1px solid rgba(30,106,191,0.18);
}

.clx-status-complete {
  background: rgba(42,157,110,0.08);
  color: var(--green);
  border: 1px solid rgba(42,157,110,0.18);
}

.clx-status-archived {
  background: var(--bg);
  color: var(--muted);
  border: 1px dashed var(--border);
}

/* ── Page layout ────────────────────────────────────────────── */

.clx-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 28px 32px 20px;
  max-width: 1280px;
  margin: 0 auto;
}

.clx-page-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 3px;
}

.clx-page-subtitle {
  font-size: 12.5px;
  color: var(--muted);
  margin: 0;
}

/* ── Panel component ────────────────────────────────────────── */

.clx-panel {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.clx-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-light);
  background: var(--bg);
}

.clx-panel-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--muted);
}

.clx-panel-link {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--accent);
  text-decoration: none;
  cursor: pointer;
}

.clx-panel-link:hover { text-decoration: underline; }

/* ── Dashboard layout ───────────────────────────────────────── */

.clx-dashboard {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 40px;
}

.clx-dashboard-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 28px 0 20px;
}

.clx-dashboard-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 3px;
}

.clx-dashboard-subtitle {
  font-size: 12.5px;
  color: var(--muted);
  margin: 0;
}

.clx-dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 20px;
  margin-bottom: 20px;
}

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

/* ── Active cases panel ─────────────────────────────────────── */

.clx-active-cases {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clx-case-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 14px 16px;
  transition: border-color 0.12s;
}

.clx-case-card:hover { border-color: var(--accent); }

.clx-case-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.clx-case-card-ref {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.clx-case-card-patient {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
}

.clx-case-card-meta {
  margin-bottom: 3px;
}

.clx-case-card-workflow {
  font-size: 11.5px;
  color: var(--muted);
}

.clx-case-card-progress {
  font-size: 11px;
  color: var(--accent);
  font-weight: 500;
  margin-bottom: 10px;
}

.clx-case-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.clx-case-card-time {
  font-size: 11px;
  color: var(--muted);
}

/* ── Workflow catalogue tiles ───────────────────────────────── */

.clx-workflow-tiles {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clx-workflow-tile {
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 7px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s;
  background: var(--white);
}

.clx-workflow-tile:hover {
  border-color: var(--accent);
  background: rgba(30,106,191,0.02);
}

.clx-workflow-tile-icon {
  color: var(--accent);
  margin-bottom: 6px;
}

.clx-workflow-tile-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 2px;
}

.clx-workflow-tile-category {
  font-size: 10.5px;
  color: var(--muted);
  margin-bottom: 4px;
}

.clx-workflow-tile-cta {
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
}

/* ── Summary strip ──────────────────────────────────────────── */

.clx-summary-strip {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-top: 4px;
}

.clx-summary-stat {
  flex: 1;
  padding: 14px 20px;
  text-align: center;
}

.clx-summary-stat-val {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
}

.clx-summary-stat-label {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 2px;
}

.clx-summary-divider {
  width: 1px;
  height: 40px;
  background: var(--border-light);
  flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════════
   Unified Clinical Summary — ClinstruxSummary renderer
   (Task 3, 2026-06). All 9 workflows render into a container
   using these clx-cs-* classes for visual consistency.
════════════════════════════════════════════════════════════ */

.clx-cs-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  background: var(--navy);
  border-radius: var(--radius) var(--radius) 0 0;
  margin-bottom: 0;
}
.clx-cs-header-wf {
  font-size: 12px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.clx-cs-header-date {
  font-size: 11px;
  color: rgba(255,255,255,0.55);
}

.clx-cs-section {
  border: 1px solid var(--border);
  border-top: none;
  padding: 16px 20px;
  background: var(--white);
}
.clx-cs-section:last-child {
  border-radius: 0 0 var(--radius) var(--radius);
}

.clx-cs-section-title {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 10px;
}
.clx-cs-section-body {
  font-size: 12.5px;
  color: var(--text);
  line-height: 1.6;
}
.clx-cs-section-body p { margin: 0 0 6px; }
.clx-cs-section-body p:last-child { margin-bottom: 0; }
.clx-cs-section-body ul { margin: 0; padding-left: 18px; }
.clx-cs-section-body li { margin-bottom: 4px; }

.clx-cs-none {
  color: var(--muted);
  font-style: italic;
}
.clx-cs-loading {
  color: var(--muted);
  font-style: italic;
}
.clx-cs-guideline-note {
  font-size: 11px;
  color: var(--muted);
  margin-top: 6px !important;
}

/* Risk flags */
.clx-cs-flag {
  font-size: 12px;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid var(--border);
  margin-bottom: 6px;
  line-height: 1.5;
}
.clx-cs-flag:last-child { margin-bottom: 0; }
.clx-cs-flag-urgent { background: rgba(220,38,38,0.07); border-color: rgba(220,38,38,0.25); color: var(--red); font-weight: 500; }
.clx-cs-flag-warn   { background: rgba(217,119,6,0.07);  border-color: rgba(217,119,6,0.25);  color: var(--amber); }
.clx-cs-flag-info   { background: var(--bg); }
.clx-cs-flag-green  { background: rgba(22,163,74,0.07);  border-color: rgba(22,163,74,0.25);  color: var(--green); }

/* Problem list severity tinting */
.clx-cs-li-urgent { color: var(--red); font-weight: 500; }
.clx-cs-li-warn   { color: var(--amber); }

/* Recommendation cards */
.clx-cs-rec {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 8px;
  background: var(--bg);
}
.clx-cs-rec:last-child { margin-bottom: 0; }
.clx-cs-rec-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
}
.clx-cs-rec-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}
.clx-cs-rec-title  { font-size: 12.5px; font-weight: 600; color: var(--text); }
.clx-cs-rec-id     { font-size: 10px; color: var(--muted); background: var(--border-light); padding: 1px 5px; border-radius: 3px; margin-left: auto; }
.clx-cs-rec-body   { font-size: 12px; color: var(--text); margin: 0 0 4px !important; }
.clx-cs-rec-evidence { font-size: 11px; color: var(--muted); margin: 0 !important; }

/* Evidence chips */
.clx-cs-evidence-list { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.clx-cs-evidence-chip {
  font-size: 11px;
  padding: 3px 9px;
  border-radius: 20px;
  border: 1px solid var(--border);
  color: var(--muted);
  background: var(--bg);
  white-space: nowrap;
}
.clx-cs-disclaimer {
  font-size: 10.5px;
  color: var(--muted);
  font-style: italic;
  margin-top: 8px !important;
}

/* Pending / waiting state */
.clx-cs-pending {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 40px 24px;
  gap: 10px;
  color: var(--muted);
}
.clx-cs-pending-icon {
  font-size: 24px;
  opacity: 0.3;
}
.clx-cs-pending p {
  font-size: 12.5px;
  line-height: 1.5;
  max-width: 320px;
}


/* ── Empty state ────────────────────────────────────────────── */

.clx-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 40px 24px;
  gap: 8px;
}

.clx-empty-state-icon {
  font-size: 32px;
  margin-bottom: 4px;
}

.clx-empty-state-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
}

.clx-empty-state-body {
  font-size: 12.5px;
  color: var(--muted);
  max-width: 320px;
  line-height: 1.5;
  margin-bottom: 8px;
}

.clx-empty-state-table {
  padding: 60px 24px;
}

/* ── Case list view ─────────────────────────────────────────── */

.clx-case-list {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 40px;
}

.clx-list-filters {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 16px;
  max-width: 1280px;
  margin: 0 auto;
  flex-wrap: wrap;
}

.clx-list-count {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
  margin-left: 4px;
}

.clx-select {
  font-family: 'DM Sans', sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 6px 10px;
  cursor: pointer;
}

.clx-select:focus { outline: 2px solid var(--accent); }

.clx-list-table-wrap {
  overflow-x: auto;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.clx-list-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}

.clx-list-th {
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--muted);
  padding: 10px 14px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}

.clx-list-td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--border-light);
  color: var(--text);
  vertical-align: middle;
}

.clx-list-row:last-child .clx-list-td {
  border-bottom: none;
}

.clx-list-row:hover .clx-list-td {
  background: rgba(30,106,191,0.02);
}

.clx-list-ref {
  font-weight: 700;
  color: var(--navy);
  white-space: nowrap;
}

.clx-list-patient { font-weight: 600; }

.clx-list-workflow {
  color: var(--muted);
}

.clx-list-updated {
  white-space: nowrap;
  color: var(--muted);
  font-size: 11px;
}

.clx-list-progress {
  color: var(--muted);
  font-size: 11px;
}

.clx-list-actions {
  white-space: nowrap;
}

.clx-workflow-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: 0.5px;
  margin-right: 4px;
}

.clx-wf-oa      { background: rgba(30,106,191,0.1);   color: var(--accent); }
.clx-wf-abx     { background: rgba(192,64,64,0.08);   color: var(--red);    }
.clx-wf-poly    { background: rgba(196,138,48,0.10);  color: var(--amber);  }
.clx-wf-medrev  { background: rgba(220,218,214,0.12); color: #d0cbc5; border: 1px solid rgba(210,206,200,0.20); }
.clx-wf-depresc { background: rgba(138,100,180,0.10); color: #a07cd0; }
.clx-wf-anticoag{ background: rgba(30,160,130,0.10);  color: #2ab09a; }
.clx-wf-ckd     { background: rgba(120,80,200,0.12);  color: #8b5cf6; }
.clx-wf-dm      { background: rgba(220,80,130,0.10);  color: #e05585; }
.clx-wf-hf      { background: rgba(37,99,235,0.10);   color: #2563eb; }
.clx-wf-copd    { background: rgba(74,90,42,0.14);    color: #6b7c2e; }

/* HF and COPD popover - position:fixed, no scrollY needed */
.hf-pop  { position:fixed; z-index:1000; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 8px 32px rgba(0,0,0,0.45),0 2px 8px rgba(0,0,0,0.30); padding:16px 18px; width:260px; display:none; }
.hf-pop.open  { display:block; }
.copd-pop { position:fixed; z-index:1000; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 8px 32px rgba(0,0,0,0.45),0 2px 8px rgba(0,0,0,0.30); padding:16px 18px; width:260px; display:none; }
.copd-pop.open { display:block; }

/* ── New Case view ──────────────────────────────────────────── */

.clx-new-case {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 24px 60px;
}

.clx-new-case-body {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 32px;
}

/* Stepper */
.clx-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 0 20px;
}

.clx-step {
  display: flex;
  align-items: center;
  gap: 8px;
}

.clx-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.clx-step-active .clx-step-num {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.clx-step-done .clx-step-num {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.clx-step-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted);
}

.clx-step-active .clx-step-label {
  color: var(--navy);
}

.clx-step-connector {
  flex: 1;
  height: 1px;
  background: var(--border);
  margin: 0 10px;
}

/* Form elements */
.clx-form-group {
  margin-bottom: 18px;
}

/* Referenced on children of .clx-form-row (already a 2-col grid) —
   this is a documentation alias, not additional layout: the grid
   parent already makes each child half-width. */
.clx-form-group-half {
  margin-bottom: 18px;
}

.clx-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.clx-form-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
  letter-spacing: 0.2px;
}

.clx-required {
  color: var(--red);
}

.clx-optional {
  color: var(--muted);
  font-weight: 500;
}

.clx-input {
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: var(--text);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 9px 12px;
  transition: border-color 0.12s;
  box-sizing: border-box;
}

.clx-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(30,106,191,0.12);
}

.clx-textarea {
  resize: vertical;
  min-height: 72px;
}

.clx-field-error {
  font-size: 11.5px;
  color: var(--red);
  margin-top: 5px;
  min-height: 16px;
}

.clx-field-success {
  font-size: 11.5px;
  color: var(--green);
  margin-top: 5px;
  min-height: 16px;
}

.clx-field-hint {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 8px;
  line-height: 1.5;
}

/* ── Account view ───────────────────────────────────────────── */

.clx-account-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px 32px;
}

.clx-account-card {
  max-width: 480px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
}


.clx-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--border-light);
}

/* Workflow selector tiles in new-case */
.clx-workflow-selector-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 8px;
}

@media (max-width: 600px) {
  .clx-workflow-selector-grid { grid-template-columns: 1fr; }
}

.clx-workflow-selector-tile {
  padding: 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.13s, background 0.13s;
  background: var(--white);
}

.clx-workflow-selector-tile:hover {
  border-color: var(--accent);
  background: rgba(30,106,191,0.02);
}

.clx-tile-selected {
  border-color: var(--accent) !important;
  background: rgba(30,106,191,0.04) !important;
}

.clx-wf-tile-header {
  margin-bottom: 8px;
}

.clx-wf-tile-badge {
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 3px;
  letter-spacing: 0.4px;
}

.clx-wf-tile-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 3px;
  line-height: 1.35;
}

.clx-wf-tile-category {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 4px;
}

.clx-wf-tile-guideline {
  font-size: 10px;
  color: var(--muted);
  line-height: 1.4;
}

.clx-patient-summary-banner {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 12px;
  color: var(--text);
  margin-bottom: 4px;
}

.clx-patient-summary-label {
  font-weight: 700;
  color: var(--navy);
}

/* PHI/session notice */
.clx-notice {
  font-size: 12px;
  line-height: 1.5;
  padding: 10px 14px;
  border-radius: 6px;
  margin-bottom: 18px;
}

.clx-notice-info {
  background: rgba(30,106,191,0.06);
  border: 1px solid rgba(30,106,191,0.18);
  color: var(--text);
}

.clx-notice-info strong {
  color: var(--accent);
}

/* ── 404 / not found ────────────────────────────────────────── */

.clx-not-found {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  text-align: center;
  gap: 10px;
}

.clx-not-found-code {
  font-size: 56px;
  font-weight: 800;
  color: var(--border);
  line-height: 1;
}

.clx-not-found-msg {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
}

.clx-not-found-path {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 8px;
}

/* ── Case stub (Phase 2 placeholder for /cases/:id) ──────────  */

.clx-stub-case {
  max-width: 540px;
  margin: 60px auto;
  padding: 36px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-align: center;
}

.clx-stub-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 4px;
  background: rgba(196,138,48,0.1);
  color: var(--amber);
  border: 1px solid rgba(196,138,48,0.2);
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.clx-stub-ref {
  font-size: 20px;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 8px;
}

.clx-stub-patient,
.clx-stub-workflow,
.clx-stub-status {
  font-size: 13px;
  color: var(--text);
  margin: 0 0 4px;
}

.clx-stub-workflow { color: var(--muted); }
.clx-stub-status   { color: var(--muted); font-size: 12px; }

.clx-stub-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 24px;
}

/* ════════════════════════════════════════════════════════════
   END PHASE 2 PLATFORM SHELL STYLES
════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════
   PHASE 3 STEP 4 — CASE CONTEXT HEADER
   Appended block. All new classes prefixed clx-case-header-.
   No existing rules modified.
════════════════════════════════════════════════════════════ */

.clx-case-header {
  display: flex;
  align-items: center;
  height: 38px;
  padding: 0 20px;
  gap: 10px;
  background: var(--white);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 48px;          /* sits flush below #global-nav (48px tall) */
  z-index: 150;       /* above dp-topbar (z-index:100) */
  flex-shrink: 0;
  font-size: 12px;
  color: var(--text);
}

.clx-case-header-back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  background: none;
  border: none;
  padding: 4px 8px 4px 4px;
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s;
  flex-shrink: 0;
}

.clx-case-header-back:hover {
  background: rgba(30, 106, 191, 0.07);
}

.clx-case-header-divider {
  width: 1px;
  height: 18px;
  background: var(--border);
  flex-shrink: 0;
  margin: 0 2px;
}

.clx-case-header-patient {
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: 700;
  color: var(--navy);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.clx-case-header-patient svg {
  flex-shrink: 0;
  color: var(--muted);
}

.clx-case-header-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--border);
  flex-shrink: 0;
}

.clx-case-header-ref {
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  font-size: 11.5px;
}

.clx-case-header-workflow {
  font-weight: 500;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Status pill already defined in Phase 2 block (clx-status-pill etc.)
   The #clx-case-header-status container just needs flex alignment.   */
#clx-case-header-status {
  display: flex;
  align-items: center;
  margin-left: auto;   /* push status pill to the right edge */
  flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════════
   END PHASE 3 STEP 4 STYLES
════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════
   PHASE 3 STEP 5 — PROGRESS STRIP + COMPLETE BUTTON
   Appended block. All new classes prefixed clx-strip- or
   clx-progress-. No existing rules modified.
════════════════════════════════════════════════════════════ */

/* ── Shell wrapper (contains header + strip) ────────────────── */

#clx-shell-wrapper {
  position: sticky;
  top: 48px;        /* flush below global-nav */
  z-index: 150;
  flex-shrink: 0;
  /* Stacks header (38px) + strip (40px) as a single sticky block */
}

/* Override Step 4 sticky on the header — it's now managed by wrapper */
#clx-shell-wrapper .clx-case-header {
  position: relative;
  top: auto;
  z-index: auto;
}

/* ── Progress strip container ───────────────────────────────── */

.clx-progress-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  padding: 0 20px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;          /* Firefox */
}

.clx-progress-strip::-webkit-scrollbar { display: none; } /* Chrome/Safari */

/* ── Section nodes row ──────────────────────────────────────── */

.clx-strip-nodes {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
  min-width: 0;
}

/* ── Single section node ────────────────────────────────────── */

.clx-strip-node {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.12s;
}

/* Visited and current nodes are clickable */
.clx-strip-node-visited,
.clx-strip-node-current {
  cursor: pointer;
}

.clx-strip-node-visited:hover,
.clx-strip-node-current:hover {
  background: rgba(30, 106, 191, 0.06);
}

/* Dot icon */
.clx-strip-node-dot {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* Node label */
.clx-strip-node-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1px;
}

/* State: visited */
.clx-strip-node-visited .clx-strip-node-dot { color: var(--green); }
.clx-strip-node-visited .clx-strip-node-label { color: var(--green); }

/* State: current */
.clx-strip-node-current .clx-strip-node-dot { color: var(--accent); }
.clx-strip-node-current .clx-strip-node-label { color: var(--accent); }

/* State: pending required */
.clx-strip-node-pending .clx-strip-node-dot { color: var(--border); }
.clx-strip-node-pending .clx-strip-node-label { color: var(--muted); }

/* State: pending optional (dashed) */
.clx-strip-node-pending.clx-strip-node-optional .clx-strip-node-dot { color: var(--border); }
.clx-strip-node-pending.clx-strip-node-optional .clx-strip-node-label {
  color: var(--muted);
  font-weight: 500;
}

/* ── Connector line between nodes ───────────────────────────── */

.clx-strip-connector {
  width: 20px;
  height: 1px;
  background: var(--border);
  flex-shrink: 0;
  margin: 0 2px;
}

/* ── Actions area (Complete button) ─────────────────────────── */

.clx-strip-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-left: 8px;
}

.clx-strip-complete-btn {
  font-family: 'DM Sans', sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 5px;
  border: none;
  background: var(--accent);
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, opacity 0.12s;
}

.clx-strip-complete-btn:hover:not(:disabled) {
  background: #b5602f;
  box-shadow: 0 2px 8px rgba(204,117,70,0.3);
}

.clx-strip-complete-btn-disabled,
.clx-strip-complete-btn:disabled {
  background: var(--bg);
  color: var(--muted);
  border: 1px solid var(--border);
  cursor: not-allowed;
  opacity: 0.75;
}

/* Done state — shown after case is marked complete */
.clx-strip-complete-done {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--green);
  padding: 5px 10px;
  background: rgba(42, 157, 110, 0.07);
  border: 1px solid rgba(42, 157, 110, 0.2);
  border-radius: 5px;
  white-space: nowrap;
}

/* ════════════════════════════════════════════════════════════
   END PHASE 3 STEP 5 STYLES
════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════
   PHASE 4A — PATIENT VIEWS
   All new classes prefixed clx-pt-.
   No existing rules modified.
════════════════════════════════════════════════════════════ */

/* ── Patient list page ──────────────────────────────────────── */

.clx-pt-list-page {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 40px;
}

.clx-pt-filters {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 16px;
  flex-wrap: wrap;
}

.clx-pt-search {
  min-width: 220px;
  flex: 1;
  max-width: 320px;
}

.clx-pt-count {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
  margin-left: 4px;
  white-space: nowrap;
}

/* ── Patient table ──────────────────────────────────────────── */

.clx-pt-table-wrap {
  overflow-x: auto;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.clx-pt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}

.clx-pt-th {
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--muted);
  padding: 10px 14px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}

.clx-pt-list-td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--border-light);
  color: var(--text);
  vertical-align: middle;
}

.clx-pt-list-row:last-child .clx-pt-list-td {
  border-bottom: none;
}

.clx-pt-list-row {
  cursor: pointer;
  transition: background 0.1s;
}

.clx-pt-list-row:hover .clx-pt-list-td {
  background: rgba(204, 117, 70, 0.04);
}

.clx-pt-list-name {
  min-width: 180px;
}

.clx-pt-name-primary {
  font-weight: 700;
  color: var(--navy);
}

.clx-pt-name-id {
  font-size: 10.5px;
  color: var(--muted);
  margin-top: 1px;
  font-family: monospace;
}

.clx-pt-list-updated {
  white-space: nowrap;
  color: var(--muted);
  font-size: 11px;
}

.clx-pt-case-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--accent-border);
  white-space: nowrap;
}

.clx-pt-case-badge-empty {
  background: var(--bg);
  color: var(--muted);
  border: 1px solid var(--border);
}

/* ── Patient form / detail page ─────────────────────────────── */

.clx-pt-form-page {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px 60px;
}

.clx-pt-header-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clx-pt-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--accent);
  background: none;
  border: none;
  padding: 0 0 4px;
  cursor: pointer;
  transition: opacity 0.12s;
}

.clx-pt-back-btn:hover { opacity: 0.75; }

.clx-pt-header-actions {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding-top: 8px;
}

.clx-pt-form-body {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 20px;
  align-items: start;
}

@media (max-width: 900px) {
  .clx-pt-form-body { grid-template-columns: 1fr; }
}

.clx-pt-form-main,
.clx-pt-form-side {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.clx-pt-form-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

/* ── Sections within the form card ─────────────────────────── */

.clx-pt-section {
  padding: 20px 24px;
  border-bottom: 1px solid var(--border-light);
}

.clx-pt-section:last-of-type {
  border-bottom: none;
}

.clx-pt-section-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--muted);
  margin-bottom: 16px;
}

.clx-pt-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

/* ── Read-only detail grid ──────────────────────────────────── */

.clx-pt-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
}

.clx-pt-detail-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 3px;
}

.clx-pt-detail-value {
  font-size: 13px;
  color: var(--text);
}

.clx-pt-age-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 3px;
  background: var(--bg);
  color: var(--muted);
  border: 1px solid var(--border);
  margin-left: 6px;
}

/* ── Tag inputs ─────────────────────────────────────────────── */

.clx-pt-tag-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clx-pt-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 20px;
}

.clx-pt-tag-input-row {
  display: flex;
}

.clx-pt-tag-input {
  font-size: 12.5px;
}

.clx-pt-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--accent-border);
  white-space: nowrap;
}

.clx-pt-tag-remove {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 13px;
  line-height: 1;
  padding: 0;
  margin-left: 2px;
  transition: color 0.12s;
}

.clx-pt-tag-remove:hover { color: var(--red); }

.clx-pt-tag-empty {
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
}

/* ── Form actions ───────────────────────────────────────────── */

.clx-pt-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid var(--border-light);
  background: var(--bg);
}

/* ── Linked cases panel ─────────────────────────────────────── */

.clx-pt-cases-section {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.clx-pt-discharge-section {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-top: 16px;
}

.clx-pt-episodes-section {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-top: 16px;
}

.clx-pt-new-episode-form {
  padding: 12px 0;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 8px;
}

.clx-pt-episode-card {
  padding: 12px 0;
  border-bottom: 1px solid var(--border-light);
}
.clx-pt-episode-card:last-child { border-bottom: none; }

.clx-pt-episode-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.clx-pt-episode-ref {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
  margin-right: 8px;
}

.clx-pt-episode-actions {
  display: flex;
  gap: 6px;
}

.clx-pt-episode-meta {
  font-size: 11px;
  color: var(--muted);
  margin-top: 3px;
}

.clx-pt-episode-cases {
  margin-top: 8px;
  padding-left: 10px;
  border-left: 2px solid var(--border-light);
}

.clx-pt-episode-case-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  cursor: pointer;
  transition: opacity 0.12s;
}
.clx-pt-episode-case-row:hover { opacity: 0.7; }

.clx-pt-episode-case-date {
  font-size: 10.5px;
  color: var(--muted);
  min-width: 72px;
}

.clx-pt-episode-case-ref {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--navy);
}

.clx-pt-episode-case-wf {
  font-size: 11px;
  color: var(--muted);
}

.clx-pt-episode-no-cases {
  font-size: 11.5px;
  color: var(--muted);
  padding: 4px 0;
}

.clx-pt-case-list {
  display: flex;
  flex-direction: column;
}

.clx-pt-case-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-light);
  cursor: pointer;
  transition: opacity 0.12s;
}

.clx-pt-case-row:hover { opacity: 0.8; }
.clx-pt-case-row:last-child { border-bottom: none; }

.clx-pt-case-row-ref {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
}

.clx-pt-case-row-wf {
  font-size: 11px;
  color: var(--muted);
  margin-top: 1px;
}

.clx-pt-no-cases {
  font-size: 12.5px;
  color: var(--muted);
  padding: 8px 0 4px;
}

.clx-pt-start-case-link {
  color: var(--accent);
  cursor: pointer;
  text-decoration: none;
  font-weight: 600;
}

.clx-pt-start-case-link:hover { text-decoration: underline; }

/* ════════════════════════════════════════════════════════════
   END PHASE 4A STYLES
════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════
   PHASE 4B — NEW CASE PATIENT LINKING
   All new classes prefixed clx-nc-.
   No existing rules modified.
════════════════════════════════════════════════════════════ */

/* ── Patient confirmation card (Step 1B) ───────────────────── */

.clx-nc-patient-card {
  background: var(--white);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 20px;
}

.clx-nc-patient-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--accent-dim);
  border-bottom: 1px solid var(--accent-border);
}

.clx-nc-patient-card-icon {
  color: var(--accent);
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.clx-nc-patient-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
}

.clx-nc-patient-meta {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.clx-nc-patient-card-body {
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clx-nc-patient-field {
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.clx-nc-field-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--muted);
  min-width: 90px;
  flex-shrink: 0;
}

.clx-nc-field-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.clx-nc-pill {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  padding: 2px 9px;
  border-radius: 20px;
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--border);
  white-space: nowrap;
}

.clx-nc-pill-empty {
  font-size: 11.5px;
  color: var(--muted);
  font-style: italic;
}

.clx-nc-field-notes {
  font-size: 12.5px;
  color: var(--text);
  line-height: 1.5;
}

/* Setting group in linked-patient step 1 */
.clx-nc-setting-group {
  margin-top: 4px;
}

/* ── Linked badge in step 2 summary banner ─────────────────── */

.clx-nc-linked-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 3px;
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--accent-border);
  letter-spacing: 0.3px;
  text-transform: uppercase;
  margin-left: 6px;
  vertical-align: middle;
}

/* ════════════════════════════════════════════════════════════
   END PHASE 4B STYLES
════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════
   CLINSTRUX v2 — MEDREV + POLY EXTENDED STYLES
   Appended June 2026
════════════════════════════════════════════════════════════ */

/* ── dp-section active state (supplement existing rule) ── */
.dp-section.active { display: block; }
.dp-section-eyebrow { font-size: 9px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.9px; margin-bottom: 4px; }
.dp-section-sub { font-size: 12px; color: var(--muted); margin-top: 3px; }
.dp-section-nav-row { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border-light); }
.dp-section-next-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; background: var(--accent); color: #fff; border: 1px solid var(--accent); border-radius: var(--radius); font-size: 12.5px; font-weight: 700; letter-spacing: 0.1px; cursor: pointer; transition: background 0.15s, box-shadow 0.15s, transform 0.15s; box-shadow: 0 2px 8px rgba(204,117,70,0.22); }
.dp-section-next-btn:hover { background: #b5602f; box-shadow: 0 4px 14px rgba(204,117,70,0.34); transform: translateY(-1px); }
.dp-section-next-btn:active { transform: translateY(0); }
.dp-section-back-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; background: transparent; color: var(--muted); border: 1px solid var(--border); border-radius: var(--radius); font-size: 12px; font-weight: 500; cursor: pointer; }
.dp-section-back-btn:hover { border-color: var(--navy); color: var(--navy); }
.dp-range-sm { width: 120px; }
.dp-select { width: 100%; padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); font-size: 12px; background: var(--white); color: var(--navy); }
.dp-pop-label { font-size: 11px; font-weight: 600; color: var(--navy); margin-bottom: 8px; }
.dp-pop-close { margin-top: 10px; padding: 7px 14px; background: var(--bg); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius); font-size: 11px; font-weight: 600; cursor: pointer; width: 100%; transition: all 0.15s; }
.dp-pop-close:hover { border-color: var(--accent-border); color: var(--accent); }
.dp-range-readout { font-size: 11px; color: var(--muted); margin-top: 5px; text-align: center; }

/* ── Nav phase labels ────────────────────────────────────── */
.dp-nav-phase-label { font-size: 8.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: rgba(255,255,255,0.28); }

/* ── dp-nav-item active alias (nav uses btn not class toggle) */
.dp-nav-item.dp-nav-item-active { background: rgba(204,117,70,0.14); color: rgba(255,255,255,0.95); font-weight: 500; }

/* ── Selector page — MEDREV card ─────────────────────────── */
.sel-card-medrev { border-top: 3px solid #0ea5e9; }
.sel-card-num-teal { background: rgba(14,165,233,0.12); color: #0ea5e9; }
.sel-tag-teal { background: rgba(14,165,233,0.10); color: #0284c7; }
.sel-assess-item-teal svg { color: #0ea5e9; }
.sel-card-cta-teal { background: linear-gradient(135deg,#0ea5e9,#0284c7); color: #fff; }
.sel-card-cta-teal:hover { opacity: 0.90; }
.sel-pill-teal { background: rgba(14,165,233,0.10); color: #0284c7; border: 1px solid rgba(14,165,233,0.22); }
.sel-card-num-purple { background: rgba(139,92,246,0.12); color: #7c3aed; }
.sel-tag-purple { background: rgba(139,92,246,0.10); color: #6d28d9; }
.sel-assess-item-poly svg { color: #7c3aed; }
.sel-card-cta-purple { background: linear-gradient(135deg,#7c3aed,#6d28d9); color: #fff; }
.sel-card-cta-purple:hover { opacity: 0.90; }
.sel-pill-purple { background: rgba(139,92,246,0.10); color: #6d28d9; border: 1px solid rgba(139,92,246,0.22); }
.sel-pill-red    { background: rgba(239,68,68,0.10);  color: #b91c1c; border: 1px solid rgba(239,68,68,0.22); }

/* ── MEDREV topbar status badge ──────────────────────────── */
.medrev-status { color: rgba(14,165,233,0.95); }
.medrev-status::before { background: rgba(14,165,233,0.95); }

/* ── MEDREV escalation banner ───────────────────────────── */
.medrev-escalation-banner { display: flex; align-items: flex-start; gap: 12px; background: rgba(239,68,68,0.06); border: 1px solid rgba(239,68,68,0.20); border-radius: var(--radius); padding: 14px 16px; margin-top: 16px; }
.medrev-esc-icon { flex-shrink: 0; color: #dc2626; margin-top: 1px; }
.medrev-esc-title { font-size: 12px; font-weight: 700; color: #dc2626; margin-bottom: 3px; }
.medrev-esc-body { font-size: 11.5px; color: var(--body); line-height: 1.5; }

/* ── css-val colour classes (status summary metrics) ────── */
.css-val-green { color: #16a34a !important; }
.css-val-amber { color: #d97706 !important; }
.css-val-red   { color: #dc2626 !important; }
.css-overall-badge { display: inline-flex; align-items: center; padding: 5px 14px; border-radius: 20px; font-size: 11.5px; font-weight: 600; border: 1px solid var(--border); }
.css-badge-red   { background: rgba(239,68,68,0.08);  border-color: rgba(239,68,68,0.25);  color: #dc2626; }
.css-badge-amber { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.25);  color: #d97706; }

/* ── POLY — param display value colours ─────────────────── */
.abx-val-green { color: #16a34a !important; }
.abx-val-amber { color: #d97706 !important; }
.abx-val-red   { color: #dc2626 !important; }

/* ── POLY — assessment blocks (Section 3) ───────────────── */
.poly-assessment-block { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; margin-bottom: 16px; }
.poly-assessment-block-overall { border-top: 3px solid var(--navy); }
.poly-assess-title { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; color: var(--muted); margin-bottom: 12px; }
.poly-assess-row { display: flex; gap: 20px; margin-bottom: 12px; flex-wrap: wrap; }
.poly-assess-metric { flex: 1; min-width: 120px; }
.poly-assess-label { font-size: 9.5px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
.poly-assess-val { font-size: 14px; font-weight: 700; color: var(--navy); }
.poly-assess-narrative { font-size: 12px; color: var(--body); line-height: 1.6; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--border-light); }
.poly-assess-override-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 11.5px; }
.poly-override-label { font-size: 11px; color: var(--muted); flex-shrink: 0; }

/* ── POLY tier colour classes ────────────────────────────── */
.poly-tier-green  { color: var(--green) !important; }
.poly-tier-amber  { color: var(--amber) !important; }
.poly-tier-orange { color: var(--accent) !important; }
.poly-tier-red    { color: var(--red) !important; }
.poly-tier-grey   { color: var(--muted) !important; }

/* ── POLY — medication list (Section 2) ──────────────────── */
.poly-medlist-wrap { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.poly-medlist-controls { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border-light); background: var(--bg); }
.poly-add-med-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; background: var(--bg); color: var(--accent); border: 1px solid var(--accent-border); border-radius: var(--radius); font-size: 12px; font-weight: 700; letter-spacing: 0.1px; cursor: pointer; transition: all 0.15s; font-family: inherit; }
.poly-add-med-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 3px 10px rgba(204,117,70,0.28); }
.poly-medlist-empty { padding: 32px; text-align: center; font-size: 12px; color: var(--muted); }
.poly-med-row { display: grid; grid-template-columns: 1.6fr 1.4fr 120px 110px 80px 32px; gap: 0; align-items: center; border-top: 1px solid var(--border-light); padding: 0; }
.poly-med-row:first-child { border-top: none; }
.poly-med-name, .poly-med-indication { border: none; border-right: 1px solid var(--border-light); padding: 9px 12px; font-size: 12px; width: 100%; outline: none; background: transparent; color: var(--navy); }
.poly-med-name:focus, .poly-med-indication:focus { background: rgba(14,165,233,0.04); }
.poly-med-status, .poly-med-duration { border: none; border-right: 1px solid var(--border-light); padding: 9px 8px; font-size: 11px; background: transparent; color: var(--body); cursor: pointer; height: 100%; }
.poly-med-tags { display: flex; gap: 4px; padding: 0 8px; flex-wrap: wrap; }
.poly-med-tag { font-size: 9px; font-weight: 700; padding: 2px 5px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.4px; }
.poly-med-tag-acb  { background: rgba(196,138,48,0.10); color: var(--amber); border: 1px solid rgba(196,138,48,0.25); }
.poly-med-tag-frid { background: rgba(192,64,64,0.10); color: var(--red); border: 1px solid rgba(192,64,64,0.25); }
.poly-med-remove { border: none; background: transparent; color: var(--muted); cursor: pointer; font-size: 16px; padding: 0 10px; line-height: 1; }
.poly-med-remove:hover { color: var(--red); }
.poly-medlist-summary { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: var(--bg); border-top: 1px solid var(--border-light); font-size: 11.5px; color: var(--muted); }
.poly-medlist-acb-badge, .poly-medlist-frid-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 10px; font-size: 10.5px; }
.poly-medlist-acb-badge  { background: rgba(196,138,48,0.10); color: var(--amber); }
.poly-medlist-frid-badge { background: rgba(192,64,64,0.10); color: var(--red); }

/* ── POLY — STOPP/START criteria cards (Sections 4+5) ────── */
.poly-criteria-summary-row { margin-bottom: 16px; }
.poly-criteria-count-card { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 18px; border-radius: var(--radius); border: 1px solid var(--border); }
.poly-count-card-red  { background: rgba(192,64,64,0.06);  border-color: rgba(192,64,64,0.20); }
.poly-count-card-blue { background: rgba(204,117,70,0.06); border-color: rgba(204,117,70,0.20); }
.poly-criteria-count { font-size: 24px; font-weight: 700; color: var(--navy); }
.poly-count-card-red  .poly-criteria-count { color: var(--red); }
.poly-count-card-blue .poly-criteria-count { color: var(--accent); }
.poly-criteria-count-label { font-size: 11px; color: var(--muted); }
.poly-criteria-waiting { padding: 28px 20px; text-align: center; font-size: 12px; color: var(--muted); background: var(--bg); border: 1px solid var(--border-light); border-radius: var(--radius); }

.poly-stopp-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 10px; border-left: 3px solid var(--border); }
.poly-stopp-card:last-child { margin-bottom: 0; }
.poly-stopp-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.poly-stopp-criterion-id { font-size: 10px; font-weight: 700; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 2px 7px; color: var(--muted); font-family: monospace; }
.poly-stopp-priority-badge { font-size: 9.5px; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; }
.poly-stopp-pri-immediate { background: rgba(192,64,64,0.10);  color: var(--red); border: 1px solid rgba(192,64,64,0.25); }
.poly-stopp-pri-high      { background: rgba(196,138,48,0.10);  color: var(--amber); border: 1px solid rgba(196,138,48,0.25); }
.poly-stopp-pri-moderate  { background: rgba(204,117,70,0.10); color: var(--accent); border: 1px solid rgba(204,117,70,0.25); }
.poly-stopp-domain { font-size: 10px; color: var(--muted); margin-left: auto; }
.poly-stopp-label { font-size: 12.5px; font-weight: 600; color: var(--navy); margin-bottom: 6px; }
.poly-stopp-meds { font-size: 11.5px; color: var(--body); margin-bottom: 6px; }
.poly-stopp-rationale { font-size: 11.5px; color: var(--body); line-height: 1.6; margin-bottom: 8px; padding-top: 8px; border-top: 1px solid var(--border-light); }
.poly-stopp-taper { font-size: 11px; color: var(--muted); line-height: 1.5; }
.poly-stopp-taper-label { font-weight: 600; color: var(--body); }

/* START cards */
.poly-start-card { background: var(--white); border: 1px solid rgba(204,117,70,0.20); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 10px; border-left: 3px solid var(--accent); }
.poly-start-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.poly-start-action-label { font-size: 9.5px; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; background: rgba(204,117,70,0.10); color: var(--accent); border: 1px solid rgba(204,117,70,0.25); }
.poly-start-criterion { font-size: 11px; color: var(--accent); margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(204,117,70,0.12); font-style: italic; }

/* Comorbidity checkboxes */
.poly-comorbidity-select-wrap { background: var(--bg); border: 1px solid var(--border-light); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 16px; }
.poly-comorbidity-label { font-size: 11px; font-weight: 600; color: var(--navy); margin-bottom: 10px; }
.poly-comorbidity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 6px; }
.poly-comorbidity-item { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--body); cursor: pointer; padding: 4px 6px; border-radius: 4px; }
.poly-comorbidity-item:hover { background: rgba(0,0,0,0.03); }
.poly-comorbidity-item input { cursor: pointer; }

/* ── POLY — deprescribing plan (Section 6) ───────────────── */
.poly-depresc-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 12px; border-left: 3px solid var(--accent); }
.poly-depresc-step-label { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--accent); margin-bottom: 6px; }
.poly-depresc-drug { font-size: 14px; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.poly-depresc-criterion { font-size: 10.5px; color: var(--muted); margin-bottom: 8px; font-family: monospace; }
.poly-depresc-rationale { font-size: 12px; color: var(--body); line-height: 1.6; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--border-light); }
.poly-depresc-taper-row { font-size: 11.5px; color: var(--body); line-height: 1.6; margin-bottom: 8px; }
.poly-depresc-taper-label { font-weight: 600; }
.poly-depresc-taper-desc { color: var(--muted); font-size: 11px; }
.poly-depresc-monitor-row { font-size: 11.5px; color: var(--body); line-height: 1.6; background: rgba(204,117,70,0.04); border-radius: 4px; padding: 8px 10px; }
.poly-depresc-monitor-label { font-weight: 600; }
.poly-depresc-monitor-times { font-size: 10.5px; color: var(--muted); display: block; margin-top: 2px; }

/* Monitoring schedule */
.poly-mon-row { display: flex; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--border-light); font-size: 11.5px; }
.poly-mon-row:last-child { border-bottom: none; }
.poly-mon-time { font-weight: 700; color: var(--navy); min-width: 80px; flex-shrink: 0; }
.poly-mon-items { display: flex; flex-direction: column; gap: 4px; }
.poly-mon-item { color: var(--body); }

/* ── POLY — GP letter (Section 7) ───────────────────────── */
.poly-letter-wrap { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.poly-letter-header { background: var(--navy-deep); color: #fff; padding: 20px 24px; border-bottom: 2px solid var(--accent); }
.poly-letter-title { font-family: 'DM Serif Display', serif; font-size: 18px; letter-spacing: -0.1px; margin-bottom: 4px; }
.poly-letter-meta { font-size: 11px; color: rgba(255,255,255,0.55); }
.poly-letter-section { padding: 16px 24px; border-bottom: 1px solid var(--border-light); }
.poly-letter-section-title { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; color: var(--muted); margin-bottom: 10px; }
.poly-letter-section p { font-size: 12px; color: var(--body); line-height: 1.6; margin: 0 0 6px; }
.poly-letter-footer { padding: 16px 24px; background: var(--bg); display: flex; justify-content: space-between; align-items: center; }
.poly-letter-sig { font-size: 12px; color: var(--body); font-style: italic; }
.poly-letter-date { font-size: 11px; color: var(--muted); }
.poly-print-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; background: var(--accent); color: #fff; border: 1px solid var(--accent); border-radius: var(--radius); font-size: 12px; font-weight: 700; cursor: pointer; transition: all 0.15s; font-family: inherit; }
.poly-print-btn:hover { background: #b5602f; box-shadow: 0 3px 10px rgba(204,117,70,0.3); }
.poly-print-btn:hover { background: #1a2a4a; }

/* ── ci-line tone colours (shared MEDREV + POLY) ─────────── */
.ci-line { font-size: 12.5px; color: var(--body); line-height: 1.65; padding: 10px 14px; border-radius: var(--radius); margin-bottom: 8px; border-left: 3px solid var(--border); }
.ci-line-green  { background: rgba(22,163,74,0.05);  border-left-color: #16a34a; }
.ci-line-amber  { background: rgba(217,119,6,0.05);  border-left-color: #d97706; }
.ci-line-orange { background: rgba(234,88,12,0.06);  border-left-color: #ea580c; }
.ci-line-red    { background: rgba(239,68,68,0.06);  border-left-color: #dc2626; }
.ci-line-grey   { background: rgba(0,0,0,0.03);      border-left-color: var(--muted); }
.ci-waiting { padding: 28px 20px; text-align: center; font-size: 12px; color: var(--muted); }
.ci-conclusion { margin-top: 16px; padding: 14px 16px; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border-light); }
.ci-conclusion-label { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 6px; }
.ci-conclusion-text { font-size: 12px; color: var(--body); line-height: 1.65; }

/* ── Overall badge / status row ──────────────────────────── */
.css-overall-row { display: flex; align-items: center; justify-content: flex-start; margin-top: 16px; }

/* ── MEDREV selector card accent colours ─────────────────── */
.sel-card-abx  { border-top: 3px solid #16a34a; }
.sel-card-poly { border-top: 3px solid #7c3aed; }
.sel-card-num-green { background: rgba(22,163,74,0.12); color: #16a34a; }
.sel-tag-green { background: rgba(22,163,74,0.10); color: #15803d; }
.sel-card-cta-green { background: linear-gradient(135deg,#16a34a,#15803d); color: #fff; }
.sel-card-cta-green:hover { opacity: 0.90; }

/* ── Responsive tweaks for new sections ─────────────────── */
@media (max-width: 640px) {
  .poly-assess-row { flex-direction: column; gap: 10px; }
  .poly-med-row { grid-template-columns: 1fr 1fr 32px; }
  .poly-med-status, .poly-med-duration { display: none; }
  .poly-comorbidity-grid { grid-template-columns: 1fr 1fr; }
  .poly-letter-footer { flex-direction: column; gap: 6px; }
}

/* ════════════════════════════════════════════════════════════
   MEDREV + POLY UI QUALITY PASS — June 2026
════════════════════════════════════════════════════════════ */

/* ── MEDREV safety card grid ─────────────────────────────── */
.medrev-safety-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.medrev-safety-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  transition: border-color 0.15s;
}
.medrev-safety-card.medrev-sc-state-red    { border-color: rgba(192,64,64,0.45);  background: rgba(255,80,80,0.03); }
.medrev-safety-card.medrev-sc-state-amber  { border-color: rgba(196,138,48,0.45); background: rgba(255,165,0,0.03); }
.medrev-safety-card.medrev-sc-state-green  { border-color: rgba(58,170,120,0.35); }

.medrev-sc-icon {
  width: 32px; height: 32px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.medrev-sc-icon-blue   { background: rgba(59,130,246,0.10); color: #2563eb; }
.medrev-sc-icon-purple { background: rgba(139,92,246,0.10); color: #7c3aed; }
.medrev-sc-icon-amber  { background: rgba(217,119,6,0.10);  color: #d97706; }
.medrev-sc-icon-teal   { background: rgba(14,165,233,0.10); color: #0284c7; }
.medrev-sc-icon-red    { background: rgba(239,68,68,0.10);  color: #dc2626; }
.medrev-sc-icon-navy   { background: rgba(30,41,59,0.08);   color: var(--navy); }

.medrev-sc-body { flex: 1; min-width: 0; }
.medrev-sc-label { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 4px; }
.medrev-sc-val   { font-size: 15px; font-weight: 700; color: var(--navy); font-family: 'DM Serif Display', serif; margin-bottom: 2px; }
.medrev-sc-sub   { font-size: 10px; color: var(--muted); line-height: 1.4; }

.medrev-sc-state-red   .medrev-sc-val { color: var(--red); }
.medrev-sc-state-amber .medrev-sc-val { color: var(--amber); }
.medrev-sc-state-green .medrev-sc-val { color: var(--green); }

/* ── MEDREV overall banner ───────────────────────────────── */
.medrev-overall-banner { margin-top: 8px; padding: 10px 14px; border-radius: var(--radius); border: 1px solid var(--border-light); background: var(--bg); }
.medrev-overall-badge  { font-size: 12px; font-weight: 600; color: var(--body); }
.medrev-overall-badge-red   { color: var(--red); }
.medrev-overall-badge-amber { color: var(--amber); }

/* ── MEDREV CI panel ─────────────────────────────────────── */
.medrev-ci-panel  { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-bottom: 8px; }
.medrev-ci-waiting { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }
.ci-line-green { background: rgba(22,163,74,0.05);  border-left: 3px solid #16a34a; padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 8px; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.ci-line-amber { background: rgba(217,119,6,0.05);  border-left: 3px solid #d97706; padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 8px; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.ci-line-orange{ background: rgba(234,88,12,0.06);  border-left: 3px solid #ea580c; padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 8px; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.ci-line-red   { background: rgba(239,68,68,0.06);  border-left: 3px solid #dc2626; padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 8px; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.ci-line-grey  { background: rgba(0,0,0,0.03);      border-left: 3px solid var(--muted); padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin-bottom: 8px; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.medrev-ci-conclusion       { margin-top: 14px; padding: 12px 14px; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border-light); }
.medrev-ci-conclusion-label { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 5px; }
.medrev-ci-conclusion-text  { font-size: 12px; color: var(--body); line-height: 1.65; }

/* ── MEDREV recommendation panel (reuse ds- pattern) ─────── */
.ds-primary-rec-wrap { background: linear-gradient(135deg, var(--navy-deep) 0%, #242220 100%); border: 1px solid var(--accent-border); border-radius: var(--radius); padding: 24px 26px; margin-bottom: 16px; color: rgba(255,255,255,0.92); box-shadow: 0 2px 12px rgba(0,0,0,0.3); }
.ds-primary-rec-eyebrow { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; color: rgba(255,255,255,0.45); margin-bottom: 5px; }
.ds-primary-rec-action  { font-family: 'DM Serif Display', serif; font-size: 22px; color: #fff; line-height: 1.2; margin-bottom: 5px; }
.ds-primary-rec-state   { font-size: 11px; color: rgba(255,255,255,0.55); margin-bottom: 12px; }
.ds-primary-ev-chips    { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
.ds-primary-ev-chip.strong  { background: rgba(58,170,120,0.15); color: rgba(80,210,145,0.9); border: 1px solid rgba(58,170,120,0.2); border-radius: 3px; font-size: 9.5px; font-weight: 600; padding: 2px 8px; }
.ds-primary-ev-chip.caution { background: rgba(217,119,6,0.15);  color: rgba(230,165,50,0.9);  border: 1px solid rgba(217,119,6,0.2);  border-radius: 3px; font-size: 9.5px; font-weight: 600; padding: 2px 8px; }
.ds-rationale-block  { border-top: 1px solid rgba(255,255,255,0.10); margin-top: 14px; padding-top: 14px; }
.ds-rationale-label  { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: rgba(255,255,255,0.40); margin-bottom: 7px; }
.ds-rationale-text   { font-size: 12px; color: rgba(255,255,255,0.75); line-height: 1.65; }

/* ── MEDREV escalation banner ────────────────────────────── */
.medrev-esc-banner  { display: flex; border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(220,38,38,0.30); margin-top: 14px; }
.medrev-esc-stripe  { width: 5px; background: #dc2626; flex-shrink: 0; }
.medrev-esc-content { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: rgba(239,68,68,0.05); }
.medrev-esc-icon-wrap { flex-shrink: 0; color: #dc2626; margin-top: 1px; }
.medrev-esc-title   { font-size: 12px; font-weight: 700; color: #dc2626; margin-bottom: 4px; }
.medrev-esc-body    { font-size: 11.5px; color: var(--body); line-height: 1.55; }

/* ── POLY assess trio ────────────────────────────────────── */
.poly-assess-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.poly-assess-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; }
.poly-assess-card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--border-light); }
.poly-assess-card-icon { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.poly-icon-purple { background: rgba(139,92,246,0.10); color: #7c3aed; }
.poly-icon-amber  { background: rgba(196,138,48,0.10);  color: var(--amber); }
.poly-icon-red    { background: rgba(192,64,64,0.10);  color: var(--red); }
.poly-assess-card-title  { font-size: 11px; font-weight: 700; color: var(--navy); }
.poly-assess-card-metrics { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.poly-assess-metric-row  { display: flex; justify-content: space-between; align-items: baseline; }
.poly-assess-metric-label { font-size: 10px; color: var(--muted); }
.poly-assess-metric-val  { font-size: 13px; font-weight: 700; color: var(--navy); }
.poly-assess-override { border-top: 1px solid var(--border-light); padding-top: 10px; margin-top: auto; }
.poly-assess-override-label { font-size: 9px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }
.poly-assess-override-row { display: flex; align-items: center; gap: 8px; }
.poly-assess-override-val { font-size: 12px; font-weight: 700; color: var(--navy); min-width: 20px; text-align: right; }
.poly-assess-card-narrative { font-size: 11px; color: var(--body); line-height: 1.55; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border-light); }

/* ── POLY clinical impression panel ─────────────────────── */
.poly-ci-panel { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 8px; }
.poly-ci-panel-header { display: flex; align-items: center; gap: 8px; padding: 11px 16px; background: var(--bg); border-bottom: 1px solid var(--border-light); font-size: 10.5px; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.5px; }
.ci-waiting { padding: 28px; text-align: center; color: var(--muted); font-size: 12px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.poly-ci-conclusion       { margin: 12px 16px 16px; padding: 12px 14px; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border-light); }
.poly-ci-conclusion-label { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 5px; }
.poly-ci-conclusion-text  { font-size: 12px; color: var(--body); line-height: 1.65; }
#poly-ci-paragraphs { padding: 14px 16px; }

/* ── POLY STOPP/START criteria header bar ────────────────── */
.poly-criteria-header-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.poly-count-badge { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 18px; border-radius: var(--radius); border: 1px solid; }
.poly-count-badge-red  { background: rgba(192,64,64,0.06);  border-color: rgba(192,64,64,0.22); }
.poly-count-badge-blue { background: rgba(204,117,70,0.06); border-color: rgba(204,117,70,0.22); }
.poly-count-badge-num  { font-family: 'DM Serif Display', serif; font-size: 26px; line-height: 1; color: var(--navy); }
.poly-count-badge-red  .poly-count-badge-num { color: var(--red); }
.poly-count-badge-blue .poly-count-badge-num { color: var(--accent); }
.poly-count-badge-label { font-size: 11px; color: var(--muted); }
.poly-criteria-legend  { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--muted); }
.poly-prio-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-left: 6px; }
.poly-prio-dot-red   { background: var(--red); }
.poly-prio-dot-amber { background: var(--amber); }
.poly-prio-dot-blue  { background: var(--accent); }

/* ── POLY criteria empty state ───────────────────────────── */
.poly-criteria-empty { display: flex; align-items: center; justify-content: center; gap: 12px; flex-direction: column; padding: 36px 20px; background: var(--bg); border: 1px solid var(--border-light); border-radius: var(--radius); color: var(--muted); font-size: 12px; text-align: center; }
.poly-criteria-empty svg { opacity: 0.35; }

/* ── POLY STOPP cards (upgraded) ────────────────────────── */
.poly-stopp-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 0; margin-bottom: 10px; overflow: hidden; }
.poly-stopp-card-bar { height: 3px; background: var(--border); }
.poly-stopp-card-bar-immediate { background: var(--red); }
.poly-stopp-card-bar-high      { background: var(--amber); }
.poly-stopp-card-bar-moderate  { background: var(--accent); }
.poly-stopp-card-inner { padding: 14px 16px; }
.poly-stopp-card-top   { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.poly-stopp-criterion-id { font-size: 10px; font-weight: 700; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 2px 7px; color: var(--muted); font-family: monospace; }
.poly-stopp-priority-badge { font-size: 9.5px; font-weight: 700; padding: 2px 9px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; }
.poly-stopp-pri-immediate { background: rgba(192,64,64,0.10);  color: var(--red); border: 1px solid rgba(192,64,64,0.25); }
.poly-stopp-pri-high      { background: rgba(196,138,48,0.10);  color: var(--amber); border: 1px solid rgba(196,138,48,0.25); }
.poly-stopp-pri-moderate  { background: rgba(204,117,70,0.10); color: var(--accent); border: 1px solid rgba(204,117,70,0.25); }
.poly-stopp-domain  { font-size: 10px; color: var(--muted); margin-left: auto; }
.poly-stopp-label   { font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.poly-stopp-meds    { font-size: 11px; color: var(--muted); margin-bottom: 8px; }
.poly-stopp-meds strong { color: var(--body); font-weight: 600; }
.poly-stopp-rationale { font-size: 12px; color: var(--body); line-height: 1.6; padding: 10px 12px; background: var(--bg); border-radius: 5px; margin-bottom: 8px; }
.poly-stopp-taper { font-size: 11px; color: var(--body); line-height: 1.5; padding-top: 8px; border-top: 1px solid var(--border-light); }
.poly-stopp-taper-label { font-weight: 700; color: var(--navy); }

/* ── POLY START cards (upgraded) ────────────────────────── */
.poly-start-card { background: var(--white); border: 1px solid rgba(204,117,70,0.20); border-radius: var(--radius); padding: 0; margin-bottom: 10px; overflow: hidden; }
.poly-start-card-bar { height: 3px; background: var(--accent); }
.poly-start-card-inner { padding: 14px 16px; }
.poly-start-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.poly-start-action-label { font-size: 9.5px; font-weight: 700; padding: 2px 9px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; background: rgba(204,117,70,0.10); color: var(--accent); border: 1px solid rgba(204,117,70,0.25); }
.poly-start-criterion { font-size: 11px; color: var(--accent); margin-top: 8px; padding: 8px 10px; background: rgba(204,117,70,0.05); border-radius: 5px; font-style: italic; }

/* ── POLY comorbidity panel ──────────────────────────────── */
.poly-comorbidity-panel { background: var(--bg); border: 1px solid var(--border-light); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 14px; }
.poly-comorbidity-panel-label { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; color: var(--navy); margin-bottom: 12px; }
.poly-comorbidity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px,1fr)); gap: 6px; }
.poly-comorbidity-item { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--body); cursor: pointer; padding: 6px 8px; border-radius: 5px; border: 1px solid transparent; transition: all 0.12s; }
.poly-comorbidity-item:hover { background: var(--white); border-color: var(--border); }
.poly-comorbidity-item input { accent-color: var(--accent); width: 14px; height: 14px; }

/* ── POLY deprescribing plan cards ───────────────────────── */
.poly-depresc-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 12px; }
.poly-depresc-card-top { display: flex; align-items: center; gap: 0; }
.poly-depresc-step-chip { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: rgba(255,255,255,0.9); background: var(--accent); padding: 5px 12px; }
.poly-depresc-step-chip-high { background: var(--amber); }
.poly-depresc-step-chip-moderate { background: var(--accent); }
.poly-depresc-drug { font-family: 'DM Serif Display', serif; font-size: 17px; color: var(--navy); padding: 12px 16px 4px; }
.poly-depresc-criterion { font-size: 10.5px; color: var(--muted); padding: 0 16px 10px; font-family: monospace; }
.poly-depresc-body { padding: 0 16px 14px; }
.poly-depresc-rationale { font-size: 12px; color: var(--body); line-height: 1.6; padding: 10px 12px; background: var(--bg); border-radius: 5px; margin-bottom: 10px; }
.poly-depresc-taper-row  { font-size: 11.5px; color: var(--body); margin-bottom: 8px; }
.poly-depresc-taper-label { font-weight: 700; color: var(--navy); }
.poly-depresc-taper-desc  { color: var(--muted); font-size: 11px; display: block; margin-top: 2px; }
.poly-depresc-monitor-row { display: flex; flex-direction: column; gap: 3px; background: rgba(204,117,70,0.04); border: 1px solid rgba(204,117,70,0.12); border-radius: 5px; padding: 8px 12px; font-size: 11.5px; }
.poly-depresc-monitor-label { font-weight: 700; color: var(--accent); }
.poly-depresc-monitor-times { font-size: 10.5px; color: var(--muted); }

/* ── POLY monitoring timeline ────────────────────────────── */
.poly-mon-section { }
.poly-mon-row { display: flex; gap: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); margin-bottom: 8px; }
.poly-mon-time  { font-size: 11px; font-weight: 700; color: #fff; background: var(--navy-deep); padding: 12px 16px; min-width: 96px; display: flex; align-items: center; justify-content: center; text-align: center; flex-shrink: 0; }
.poly-mon-items { padding: 10px 14px; display: flex; flex-direction: column; gap: 4px; }
.poly-mon-item  { font-size: 11.5px; color: var(--body); }

/* ── POLY medication table ───────────────────────────────── */
.poly-medtable-wrap { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 8px; }
.poly-medtable-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 11px 16px; border-bottom: 1px solid var(--border-light); background: var(--bg); }
.poly-add-med-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; background: var(--bg); color: var(--accent); border: 1px solid var(--accent-border); border-radius: var(--radius); font-size: 12px; font-weight: 700; letter-spacing: 0.1px; cursor: pointer; transition: all 0.15s; font-family: inherit; }
.poly-add-med-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 3px 10px rgba(204,117,70,0.28); }
.poly-medtable-legend { display: flex; align-items: center; gap: 8px; font-size: 10.5px; color: var(--muted); }
.poly-medtable-header { display: grid; grid-template-columns: 1.6fr 1.4fr 110px 100px 80px 32px; gap: 0; padding: 7px 12px; background: var(--bg); border-bottom: 1px solid var(--border-light); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--muted); }
.poly-medlist-empty { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 32px 20px; color: var(--muted); font-size: 12px; }
.poly-medtable-footer { display: flex; align-items: center; gap: 12px; padding: 9px 16px; background: var(--bg); border-top: 1px solid var(--border-light); font-size: 11.5px; color: var(--muted); }
.poly-med-row { display: grid; grid-template-columns: 1.6fr 1.4fr 110px 100px 80px 32px; gap: 0; align-items: stretch; border-top: 1px solid var(--border-light); }
.poly-med-row:hover { background: rgba(0,0,0,0.01); }
.poly-med-name, .poly-med-indication { border: none; border-right: 1px solid var(--border-light); padding: 9px 12px; font-size: 12px; width: 100%; outline: none; background: transparent; color: var(--navy); font-family: inherit; }
.poly-med-name:focus, .poly-med-indication:focus { background: rgba(14,165,233,0.04); }
.poly-med-status, .poly-med-duration { border: none; border-right: 1px solid var(--border-light); padding: 9px 8px; font-size: 11px; background: transparent; color: var(--body); cursor: pointer; width: 100%; font-family: inherit; }
.poly-med-tags { display: flex; gap: 4px; padding: 0 8px; align-items: center; flex-wrap: wrap; }
.poly-med-tag { font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.4px; white-space: nowrap; }
.poly-med-tag-acb  { background: rgba(196,138,48,0.10); color: var(--amber); border: 1px solid rgba(196,138,48,0.25); }
.poly-med-tag-frid { background: rgba(192,64,64,0.10); color: var(--red); border: 1px solid rgba(192,64,64,0.25); }
.poly-med-remove { border: none; background: transparent; color: var(--muted); cursor: pointer; font-size: 18px; padding: 0 10px; line-height: 1; font-family: inherit; }
.poly-med-remove:hover { color: var(--red); }
.poly-medlist-acb-badge, .poly-medlist-frid-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 10px; font-size: 10.5px; }
.poly-medlist-acb-badge  { background: rgba(196,138,48,0.10); color: var(--amber); border: 1px solid rgba(196,138,48,0.20); }
.poly-medlist-frid-badge { background: rgba(192,64,64,0.10); color: var(--red); border: 1px solid rgba(192,64,64,0.20); }

/* ── POLY GP letter document ─────────────────────────────── */
.poly-letter-doc { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.poly-letter-doc-header { background: var(--navy); padding: 22px 26px; }
.poly-letter-doc-title { font-family: 'DM Serif Display', serif; font-size: 20px; color: #fff; letter-spacing: -0.2px; margin-bottom: 5px; }
.poly-letter-doc-meta  { font-size: 11px; color: rgba(255,255,255,0.45); }
.poly-letter-doc-section { padding: 16px 26px; border-bottom: 1px solid var(--border-light); }
.poly-letter-doc-section-label { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--muted); margin-bottom: 10px; }
.poly-letter-doc-section p { font-size: 12px; color: var(--body); line-height: 1.65; margin: 0 0 6px; }
.poly-letter-doc-footer { padding: 16px 26px; background: var(--bg); }
.poly-letter-doc-sig { font-size: 12px; color: var(--body); }

/* ── POLY print btn ──────────────────────────────────────── */
.poly-print-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; background: var(--accent); color: #fff; border: 1px solid var(--accent); border-radius: var(--radius); font-size: 12px; font-weight: 700; cursor: pointer; transition: all 0.15s; font-family: inherit; }
.poly-print-btn:hover { background: #b5602f; box-shadow: 0 3px 10px rgba(204,117,70,0.3); }
.poly-print-btn:hover { background: #1a2a4a; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 900px) {
  .medrev-safety-grid { grid-template-columns: repeat(2, 1fr); }
  .poly-assess-trio   { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .medrev-safety-grid { grid-template-columns: 1fr; }
  .poly-assess-trio   { grid-template-columns: 1fr; }
  .poly-medtable-header { display: none; }
  .poly-med-row { grid-template-columns: 1fr 1fr 32px; }
  .poly-med-status, .poly-med-duration { display: none; }
  .poly-comorbidity-grid { grid-template-columns: 1fr 1fr; }
}

/* ── poly-start-card-inner (bar+inner pattern) ───────────── */
.poly-start-card-inner { padding: 14px 16px; }

/* ── MEDREV param card value colour classes ──────────────── */
/* ip-val-* already defined in base CSS — ensure they work on abx-param-value */
.abx-param-value.ip-val-danger  { color: var(--red)   !important; }
.abx-param-value.ip-val-warning { color: var(--amber) !important; }
.abx-param-value.ip-val-ok      { color: var(--green) !important; }

/* ── POLY assess card tier colouring ─────────────────────── */
.poly-assess-card-metrics .poly-tier-green  { color: var(--green) !important; }
.poly-assess-card-metrics .poly-tier-amber  { color: var(--amber) !important; }
.poly-assess-card-metrics .poly-tier-orange { color: var(--accent) !important; }
.poly-assess-card-metrics .poly-tier-red    { color: var(--red) !important; }
.poly-assess-card-metrics .poly-tier-grey   { color: var(--muted) !important; }

/* ── Depresc step chip colours ───────────────────────────── */
.poly-depresc-card-top { background: rgba(0,0,0,0.02); border-bottom: 1px solid var(--border-light); }
.poly-depresc-step-chip { display: inline-block; }

/* ── MEDREV overall status text weight ───────────────────── */
.medrev-overall-badge { font-size: 12.5px; font-weight: 600; }
.medrev-overall-badge-red   { color: var(--red); }
.medrev-overall-badge-amber { color: var(--amber); }

/* ── dp-section-subtitle ─────────────────────────────────── */
.dp-section-subtitle { font-size: 12px; color: var(--muted); margin-top: 4px; line-height: 1.5; max-width: 640px; }

/* ── poly-cfs-card accent ────────────────────────────────── */
.poly-cfs-card { border-left: 3px solid #7c3aed; }

/* ── Safety card val inherits icon colour on state ───────── */
.medrev-sc-state-red   .medrev-sc-icon { background: rgba(239,68,68,0.12); color: #dc2626; }
.medrev-sc-state-amber .medrev-sc-icon { background: rgba(217,119,6,0.12);  color: #d97706; }
.medrev-sc-state-green .medrev-sc-icon { background: rgba(22,163,74,0.12);  color: #16a34a; }

/* ── Taper desc block display fix ────────────────────────── */
.poly-depresc-taper-desc { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; padding-left: 0; }

/* ════════════════════════════════════════════════════════════
   POLY — FLAGSHIP VISUAL UPGRADE (ABX-aligned premium pass)
════════════════════════════════════════════════════════════ */

/* Card depth + hover lift, matching ABX recommendation cards */
.poly-stopp-card,
.poly-start-card,
.poly-depresc-card,
.poly-assess-card,
.poly-ci-panel,
.poly-letter-doc {
  box-shadow: 0 1px 2px rgba(0,0,0,0.18);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.poly-stopp-card:hover,
.poly-start-card:hover,
.poly-depresc-card:hover {
  border-color: var(--border-light);
  box-shadow: 0 4px 14px rgba(0,0,0,0.28);
  transform: translateY(-1px);
}

/* Severity bars get a soft glow so priority reads instantly */
.poly-stopp-card-bar-immediate { box-shadow: 0 0 8px rgba(192,64,64,0.45); }
.poly-stopp-card-bar-high      { box-shadow: 0 0 8px rgba(196,138,48,0.40); }
.poly-stopp-card-bar-moderate  { box-shadow: 0 0 8px rgba(204,117,70,0.35); }
.poly-start-card-bar           { box-shadow: 0 0 8px rgba(204,117,70,0.35); }

/* Evidence / source reference chips — reuses the ABX .dd-ref language */
.poly-evidence-row { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border-light); }
.poly-evidence-chip { font-size: 9.5px; font-weight: 600; letter-spacing: 0.2px; background: var(--bg); border: 1px solid var(--border); border-radius: 3px; padding: 2px 7px; color: var(--accent); }

/* Evidence Explorer (Level 3 — POLY POC) */
.poly-ee-toggle {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  background: none;
  border: none;
  padding: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  cursor: pointer;
}
.poly-ee-toggle:hover { text-decoration: underline; }
.poly-ee-chevron { font-size: 9px; display: inline-block; }

.poly-ee-panel {
  margin-top: 8px;
  padding: 10px 12px;
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius);
}

.poly-ee-row {
  font-size: 11.5px;
  color: var(--navy);
  margin-bottom: 4px;
}

.poly-ee-label {
  display: inline-block;
  min-width: 90px;
  font-weight: 700;
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-right: 6px;
}

.poly-ee-list {
  margin: 0 0 6px;
  padding-left: 18px;
}
.poly-ee-list li {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 2px;
}

.poly-ee-alternative {
  font-size: 11.5px;
  color: var(--navy);
  background: var(--white);
  border-left: 2px solid var(--accent);
  padding: 6px 10px;
  margin: 0 0 4px;
}

.poly-ee-empty {
  font-size: 11px;
  color: var(--muted);
  font-style: italic;
  margin: 0 0 4px;
}


/* Severity strength indicator — 4-dot scale, ABX dot-row pattern */
.poly-severity-dots { display: inline-flex; gap: 2.5px; vertical-align: middle; margin-left: 6px; }
.poly-severity-dots .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--border); }
.poly-severity-dots .dot.on-immediate { background: var(--red); }
.poly-severity-dots .dot.on-high      { background: var(--amber); }
.poly-severity-dots .dot.on-moderate  { background: var(--accent); }

/* Criterion id — sharper, more "clinical reference" feel */
.poly-stopp-criterion-id { letter-spacing: 0.3px; }

/* Richer card top: domain reads as a tag, not loose text */
.poly-stopp-domain {
  font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
  background: rgba(255,255,255,0.02); border: 1px solid var(--border-light);
  border-radius: 3px; padding: 2px 7px; color: var(--muted);
}

/* Implicated medication pills instead of plain comma text */
.poly-stopp-meds-pills { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.poly-stopp-med-pill { font-size: 11px; font-weight: 600; color: var(--text); background: var(--bg); border: 1px solid var(--border); border-radius: 3px; padding: 2px 9px; }

/* Deprescribing card: hover + tighter monitor block border */
.poly-depresc-card { position: relative; }
.poly-depresc-card:hover { border-color: var(--border-light); box-shadow: 0 4px 14px rgba(0,0,0,0.28); }
.poly-depresc-criterion { letter-spacing: 0.2px; }
.poly-depresc-monitor-row { border: 1px solid var(--border-light); }

/* Assess trio cards — tier-colour top accent for instant scanning */
.poly-assess-card { position: relative; overflow: hidden; }
.poly-assess-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--border); }
.poly-assess-card.poly-assess-tier-green::before  { background: var(--green); }
.poly-assess-card.poly-assess-tier-amber::before  { background: var(--amber); }
.poly-assess-card.poly-assess-tier-orange::before { background: var(--accent); }
.poly-assess-card.poly-assess-tier-red::before    { background: var(--red); }

/* Clinical impression panel — header reads as an evidence-grade banner */
.poly-ci-panel-header { letter-spacing: 0.6px; }
.poly-ci-panel { border-top: 2px solid var(--accent-border); }

/* GP letter — premium document presentation */
.poly-letter-doc { box-shadow: 0 2px 10px rgba(0,0,0,0.25); }
.poly-letter-doc-header { background: linear-gradient(135deg, var(--navy-deep) 0%, #232323 100%); border-bottom: 2px solid var(--accent); }
.poly-letter-doc-section:hover { background: rgba(255,255,255,0.01); }
.poly-letter-doc-section-label { letter-spacing: 1px; }
.poly-letter-doc-section-label::before { content: '— '; color: var(--accent); }

/* Medication table — premium inline-editing feel, less "form" */
.poly-medtable-wrap { box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.poly-med-row { position: relative; }
.poly-med-row::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: transparent; transition: background 0.15s; }
.poly-med-row:focus-within::after { background: var(--accent); }
.poly-med-name, .poly-med-indication { border-radius: 0; }
.poly-med-name::placeholder, .poly-med-indication::placeholder { color: var(--muted); opacity: 0.7; }
.poly-med-status, .poly-med-duration { appearance: none; -webkit-appearance: none; }
.poly-add-med-btn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; background: var(--bg); color: var(--accent); border: 1px solid var(--accent-border); border-radius: var(--radius); font-size: 12px; font-weight: 700; letter-spacing: 0.1px; cursor: pointer; transition: all 0.15s; font-family: inherit; }

/* STOPP/START count badges — serif numeral with subtle glow */
.poly-count-badge { box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.poly-count-badge-red  .poly-count-badge-num { text-shadow: 0 0 14px rgba(192,64,64,0.35); }
.poly-count-badge-blue .poly-count-badge-num { text-shadow: 0 0 14px rgba(204,117,70,0.35); }

/* Comorbidity panel — premium pill checkboxes */
.poly-comorbidity-item.checked { background: rgba(204,117,70,0.06); border-color: var(--accent-border); color: var(--text); }

/* Monitoring schedule rows feel like a protocol table, not a list */
.poly-mon-section { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.poly-mon-row { align-items: flex-start; }
.poly-mon-time { font-family: 'DM Serif Display', serif; font-size: 14px; }

/* ════════════════════════════════════════════════════════════
   OA-LANGUAGE DENSITY & PROMINENCE PASS — POLY + MEDREV
════════════════════════════════════════════════════════════ */

/* Stronger, larger section headers across POLY/MEDREV workflows */
.dp-section-header { margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--border-light); }
.dp-section-title { font-size: 25px; }
.dp-section-subtitle { font-size: 12.5px; margin-top: 5px; }
.dp-section-eyebrow { font-size: 9.5px; margin-bottom: 6px; }

/* MEDREV pharmacist intervention panel — heavier, more dominant */
.pi-panel { margin-bottom: 24px; box-shadow: 0 2px 12px rgba(0,0,0,0.22); }
.pi-header { padding: 18px 22px 15px; }
.pi-title { font-size: 16px; }
.pi-eyebrow { font-size: 10px; }
.pi-body { gap: 0; }
.pi-col { padding: 20px 22px; gap: 12px; }
.pi-intervention-main { font-size: 14px; }
.pi-sub-item { font-size: 11.5px; }
.pi-urgency-item { padding: 8px 10px; font-size: 11.5px; }

/* MEDREV preferred recommendation card — larger, more authoritative */
.ds-preferred { padding: 28px 30px; margin-bottom: 16px; box-shadow: 0 2px 12px rgba(0,0,0,0.2); }
.ds-rationale, .ds-glance { padding: 4px 0; box-shadow: 0 1px 4px rgba(0,0,0,0.15); }

/* POLY param cards — larger, more substantial tiles */
.abx-param-card { padding: 16px 18px 14px; }

/* POLY medication table — serious clinical workspace, not a thin form */
.poly-medtable-wrap { box-shadow: 0 2px 10px rgba(0,0,0,0.22); margin-bottom: 16px; }
.poly-med-row { min-height: 52px; }
.poly-med-name, .poly-med-indication { padding: 14px 12px !important; font-size: 13px !important; }
.poly-med-status, .poly-med-duration { padding: 14px 10px !important; font-size: 12px !important; }
.poly-medtable-toolbar { padding: 16px 20px; }
.poly-medtable-header { padding: 12px 12px !important; font-size: 10px !important; }

/* POLY assessment / STOPP / deprescribing cards — bigger, denser, weightier */
.poly-assess-card { padding: 22px; }
.poly-assess-trio { gap: 16px; margin-bottom: 22px; }
.poly-stopp-card-inner { padding: 20px 22px; }
.poly-stopp-label { font-size: 16px; }
.poly-depresc-card { padding-bottom: 4px; margin-bottom: 16px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.poly-depresc-body { padding: 0 22px 20px; }
.poly-depresc-card-top { padding: 16px 22px 0; }
.poly-depresc-drug { padding: 0 22px; font-size: 16px; }
.poly-depresc-criterion { padding: 0 22px; }
.poly-start-card-inner { padding: 20px 22px; }

/* GP letter document — larger, more substantial letterhead presence */
.poly-letter-doc-header, .poly-letter-doc { padding: 0; }
.poly-letter-doc-section { padding: 22px 30px; }

/* Section navigation buttons row — more deliberate, less throwaway */
.dp-section-nav-row { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border-light); }

/* Sidebar nav items — denser, more substantial as the flagship's spine */
.dp-nav-item-inner { padding: 10px 12px; }
.dp-nav-phase-label { font-size: 9.5px; letter-spacing: 0.8px; }


/* ════════════════════════════════════════════════════════════
   AUTH VIEWS — LOGIN & REGISTER
   Appended block. All new classes prefixed clx-login- or
   clx-register-. Nav auth classes clx-nav-user / clx-nav-username
   also added here. No existing rules modified.
════════════════════════════════════════════════════════════ */

/* ── Public auth page wrapper (replaces clx-login-page) ────────
   Full-viewport column: header on top, card centred below.
   clx-login-page kept for backward compatibility but auth pages
   now use clx-auth-page instead.                                 */

.clx-auth-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;          /* full viewport — nav is hidden on auth pages */
  background: var(--bg) url('auth-bg-desktop.jpg') center center / cover no-repeat;
  padding: 40px 16px 120px;
  position: relative;
}

/* Dark overlay on top of background image */
.clx-auth-page::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.62);
  z-index: 0;
}

/* All content above the overlay */
.clx-auth-page > * {
  position: relative;
  z-index: 1;
}

/* Mobile background */
@media (max-width: 600px) {
  .clx-auth-page {
    background-image: url('auth-bg-mobile.jpg');
  }
}

/* ── Slim public header (logo + tagline) ────────────────────────
   Visible only on /login and /register. Sits at the top of the
   page in place of the authenticated app nav (which is hidden).  */

.clx-auth-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 24px 32px;
  width: 100%;
}

.clx-auth-header-logo {
  height: 28px;
  width: auto;
}

.clx-auth-header-sub {
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

/* ── Full-screen centering wrapper (legacy — kept for safety) ── */

.clx-login-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 48px); /* 48px = .clx-nav height */
  padding: 40px 16px;
  background: var(--bg);
}

/* ── Centered card ───────────────────────────────────────────── */

.clx-login-card {
  width: 100%;
  max-width: 400px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 40px 40px 36px;
}

/* ── Logo / brand mark ───────────────────────────────────────── */

.clx-login-brand {
  display: block;
  height: 26px;
  width: auto;
  margin-bottom: 24px;
  object-fit: contain;
  object-position: left center;
}

/* ── Subtitle line under logo ────────────────────────────────── */

.clx-login-subtitle {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 28px;
  line-height: 1.4;
}

/* ── Full-width submit button ────────────────────────────────── */

.clx-login-submit {
  width: 100%;
  justify-content: center;
  margin-top: 8px;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 13px;
}

/* ── "New to Clinstrux? Create account" line ─────────────────── */

.clx-login-switch {
  margin-top: 20px;
  font-size: 12px;
  color: var(--muted);
  text-align: center;
  line-height: 1.5;
}

.clx-login-switch a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.clx-login-switch a:hover {
  text-decoration: underline;
}

/* ── Registration success message ────────────────────────────── */

.clx-register-success-msg {
  font-size: 13px;
  color: var(--text);
  line-height: 1.65;
  margin-bottom: 28px;
}

.clx-register-success-msg strong {
  color: var(--navy);
  font-weight: 600;
}

/* ── Nav: authenticated user display ─────────────────────────── */

.clx-nav-user {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-left: 10px;
  border-left: 1px solid var(--border);
}

.clx-nav-username {
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 160px;
  text-decoration: none;
  cursor: pointer;
}

.clx-nav-username:hover {
  color: var(--navy);
  text-decoration: underline;
}

/* ── Responsive: collapse card padding on small screens ──────── */

@media (max-width: 480px) {
  .clx-login-card {
    padding: 32px 24px 28px;
  }
  .clx-auth-header {
    padding: 32px 16px 28px;
  }
}


/* ── Privacy policy link under auth card ─────────────────── */
.clx-auth-privacy {
  margin-top: 16px;
  font-size: 11px;
  color: rgba(255,255,255,0.35);
  text-align: center;
}

.clx-auth-privacy a {
  color: rgba(255,255,255,0.45);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.clx-auth-privacy a:hover {
  color: rgba(255,255,255,0.70);
}

/* ════════════════════════════════════════════════════════════
   END AUTH VIEWS
════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════
   APP FOOTER
════════════════════════════════════════════════════════════ */

.app-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 16px;
  padding: 14px 24px;
  font-size: 11px;
  color: var(--muted);
  border-top: 1px solid var(--border-light);
  background: var(--bg);
  line-height: 1.5;
}

.app-footer-left {
  white-space: normal;
}

.app-footer-right {
  flex: 1;
  min-width: 0;
  text-align: right;
}

@media (max-width: 600px) {
  .app-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 12px 16px;
  }
  .app-footer-right {
    text-align: left;
  }
}

/* ════════════════════════════════════════════════════════════
   END APP FOOTER
════════════════════════════════════════════════════════════ */

/* ── Forgot password link row ────────────────────────────── */
.clx-forgot-row {
  text-align: right;
  margin: -8px 0 12px;
}

.clx-forgot-link {
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
}

.clx-forgot-link:hover {
  color: var(--text);
}

/* ── Auth success message ────────────────────────────────── */
.clx-auth-success {
  background: rgba(42, 157, 110, 0.12);
  border: 1px solid rgba(42, 157, 110, 0.35);
  color: #4ade80;
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 16px;
  line-height: 1.5;
}

/* ── Forgot password hint text ───────────────────────────── */
.clx-forgot-hint {
  font-size: 13px;
  color: var(--muted);
  margin: -4px 0 20px;
  line-height: 1.5;
}

/* ════════════════════════════════════════════════════════════
   CKD WORKFLOW — own namespace (ckd-*), per platform convention
   of per-workflow component prefixing (cf. poly-*, depresc-*).
   Structural classes (dp-*, abx-param-card, ip-popover, ci-line)
   are shared and intentionally reused, not redefined here.
════════════════════════════════════════════════════════════ */

/* ── Risk tiers — CKD's own colour namespace (per decision) ── */
.ckd-tier-green  { color: var(--green) !important; }
.ckd-tier-yellow { color: var(--amber) !important; }
.ckd-tier-orange { color: var(--accent) !important; }
.ckd-tier-red    { color: var(--red) !important; }

/* ── Medication table (Section 2) ─────────────────────────── */
.ckd-medtable-wrap    { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 8px; box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.ckd-medtable-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 11px 16px; border-bottom: 1px solid var(--border-light); background: var(--bg); }
.ckd-add-med-btn      { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; background: var(--bg); color: var(--accent); border: 1px solid var(--accent-border); border-radius: var(--radius); font-size: 12px; font-weight: 700; letter-spacing: 0.1px; cursor: pointer; transition: all 0.15s; font-family: inherit; }
.ckd-add-med-btn:hover{ background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 3px 10px rgba(204,117,70,0.28); }
.ckd-medtable-header  { display: grid; grid-template-columns: 1.6fr 1fr 110px 140px 32px; gap: 0; padding: 7px 12px; background: var(--bg); border-bottom: 1px solid var(--border-light); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--muted); }
.ckd-medlist-empty    { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 32px 20px; color: var(--muted); font-size: 12px; }
.ckd-medtable-footer  { display: flex; align-items: center; gap: 12px; padding: 9px 16px; background: var(--bg); border-top: 1px solid var(--border-light); font-size: 11.5px; color: var(--muted); }

.ckd-med-row          { display: grid; grid-template-columns: 1.6fr 1fr 110px 140px 32px; gap: 0; align-items: center; border-top: 1px solid var(--border-light); }
.ckd-med-row:hover     { background: rgba(0,0,0,0.01); }
.ckd-med-name, .ckd-med-dose { border: none; border-right: 1px solid var(--border-light); padding: 9px 12px; font-size: 12px; width: 100%; outline: none; background: transparent; color: var(--navy); font-family: inherit; }
.ckd-med-name:focus, .ckd-med-dose:focus { background: rgba(14,165,233,0.04); }
.ckd-med-route        { border: none; border-right: 1px solid var(--border-light); padding: 9px 8px; font-size: 11.5px; background: transparent; color: var(--navy); font-family: inherit; cursor: pointer; }
.ckd-med-tags         { display: flex; gap: 4px; padding: 0 8px; align-items: center; flex-wrap: wrap; }
.ckd-med-tag          { font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.4px; white-space: nowrap; }
.ckd-med-tag-nephro   { background: rgba(192,64,64,0.10); color: var(--red); border: 1px solid rgba(192,64,64,0.25); }
.ckd-med-remove       { border: none; background: transparent; color: var(--muted); cursor: pointer; font-size: 18px; padding: 0 10px; line-height: 1; font-family: inherit; }
.ckd-med-remove:hover  { color: var(--red); }

.ckd-medlist-nephro-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 10px; font-size: 10.5px; background: rgba(192,64,64,0.10); color: var(--red); border: 1px solid rgba(192,64,64,0.20); }

/* ── Triple-whammy safety banner ──────────────────────────── */
.ckd-triple-whammy-banner { display: flex; align-items: flex-start; gap: 10px; background: var(--red-bg); border: 1px solid rgba(192,64,64,0.30); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 14px; font-size: 12.5px; color: var(--red); line-height: 1.55; }
.ckd-triple-whammy-banner strong { display: block; margin-bottom: 2px; }

/* ── Dose-adjustment / nephrotoxicity finding cards (Section 3) ── */
.ckd-dose-card        { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 0; margin-bottom: 10px; overflow: hidden; }
.ckd-dose-card-bar     { height: 3px; background: var(--border); }
.ckd-dose-card-bar-avoid   { background: var(--red); }
.ckd-dose-card-bar-caution { background: var(--amber); }
.ckd-dose-card-inner   { padding: 14px 16px; }
.ckd-dose-card-top     { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.ckd-dose-criterion-id { font-size: 9.5px; font-weight: 700; color: var(--muted); letter-spacing: 0.4px; }
.ckd-dose-priority-badge { font-size: 9px; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; }
.ckd-dose-pri-avoid    { background: rgba(192,64,64,0.10); color: var(--red); }
.ckd-dose-pri-caution  { background: var(--amber-bg); color: var(--amber); }
.ckd-dose-domain       { margin-left: auto; font-size: 10px; color: var(--muted); }
.ckd-dose-label        { font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.ckd-dose-rationale    { font-size: 12px; color: var(--body); line-height: 1.55; margin-bottom: 8px; }

/* ── START-style therapy opportunity cards (Section 5) ────── */
.ckd-start-card        { background: var(--white); border: 1px solid rgba(204,117,70,0.20); border-radius: var(--radius); padding: 0; margin-bottom: 10px; overflow: hidden; }
.ckd-start-card-bar     { height: 3px; background: var(--accent); }
.ckd-start-card-inner   { padding: 14px 16px; }
.ckd-start-card-top     { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.ckd-start-action-label { margin-left: auto; font-size: 9px; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; background: rgba(204,117,70,0.10); color: var(--accent); }
.ckd-start-criterion    { font-size: 11.5px; color: var(--navy); background: var(--bg); border-radius: 5px; padding: 7px 10px; margin-top: 4px; }

/* ── Referral criteria cards (Section 5) ──────────────────── */
.ckd-referral-card     { background: var(--white); border: 1px solid var(--border); border-left: 3px solid var(--red); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 8px; }

/* ── Flag / checkbox grid (referral red-flags + therapy status) ── */
.ckd-flag-grid         { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 6px; }
.ckd-flag-item         { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--body); cursor: pointer; padding: 6px 8px; border-radius: 5px; border: 1px solid transparent; transition: all 0.12s; }
.ckd-flag-item:hover    { background: var(--white); border-color: var(--border); }
.ckd-flag-item input    { accent-color: var(--accent); width: 14px; height: 14px; }

/* ── Clinical Impression panel (mirrors poly-ci-panel) ────── */
.ckd-ci-panel          { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 8px; }
.ckd-ci-panel-header   { display: flex; align-items: center; gap: 8px; padding: 11px 16px; background: var(--bg); border-bottom: 1px solid var(--border-light); font-size: 10.5px; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.5px; }

/* ── Evidence chips ────────────────────────────────────────── */
.ckd-evidence-row      { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.ckd-evidence-chip     { font-size: 9.5px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--bg); color: var(--muted); border: 1px solid var(--border-light); }
.ckd-evidence-chip.strong { background: rgba(204,117,70,0.09); color: var(--accent); border-color: rgba(204,117,70,0.22); }

/* ── Heat-map / stage display (Section 1) ─────────────────── */
.ckd-heatmap-card      { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 14px; }
.ckd-heatmap-grid      { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.ckd-heatmap-stat-label{ font-size: 9.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
.ckd-heatmap-stat-val  { font-size: 14px; font-weight: 700; }
.ckd-heatmap-note      { font-size: 11.5px; color: var(--muted); line-height: 1.55; border-top: 1px solid var(--border-light); padding-top: 10px; }

/* ── Monitoring schedule (Section 6) ──────────────────────── */
.ckd-monitoring-card   { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 12px; }
.ckd-monitoring-row    { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.ckd-monitoring-row:last-child { border-bottom: none; }
.ckd-monitoring-row-label { color: var(--muted); }
.ckd-monitoring-row-val   { color: var(--navy); font-weight: 600; }

/* ── Summary / GP letter (Section 7) ──────────────────────── */
.ckd-letter-body p     { margin: 0 0 10px; font-size: 12.5px; line-height: 1.6; color: var(--body); }
.ckd-letter-body ul    { margin: 0 0 10px 18px; font-size: 12.5px; line-height: 1.6; color: var(--body); }
/* ════════════════════════════════════════════════════════════
   COPD REVIEW — append to the END of styles.css
════════════════════════════════════════════════════════════ */

.copd-tier-badge       { display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 10px; margin-bottom: 6px; }
.copd-tier-green       { background: rgba(34,197,94,0.12);  color: #166534; border: 1px solid rgba(34,197,94,0.3);  }
.copd-tier-yellow      { background: rgba(234,179,8,0.12);  color: #854d0e; border: 1px solid rgba(234,179,8,0.3);  }
.copd-tier-orange      { background: rgba(249,115,22,0.12); color: #9a3412; border: 1px solid rgba(249,115,22,0.3); }
.copd-tier-red         { background: rgba(239,68,68,0.12);  color: #991b1b; border: 1px solid rgba(239,68,68,0.3);  }

.copd-flag-card        { border-radius: var(--radius); padding: 12px 14px; margin-bottom: 10px; border-left: 3px solid transparent; }
.copd-flag-card:last-child { margin-bottom: 0; }
.copd-flag-high        { background: rgba(239,68,68,0.06);  border-left-color: #ef4444; }
.copd-flag-caution     { background: rgba(234,179,8,0.07);  border-left-color: #eab308; }
.copd-flag-consider    { background: rgba(99,102,241,0.06); border-left-color: #6366f1; }
.copd-flag-deprescribe { background: rgba(249,115,22,0.07); border-left-color: #f97316; }

.copd-flag-header      { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.copd-flag-id          { font-size: 9px; font-weight: 700; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 1px 5px; color: var(--muted); }
.copd-flag-label       { font-size: 12px; font-weight: 600; color: var(--navy); flex: 1; }
.copd-flag-text        { font-size: 12px; color: var(--body); line-height: 1.55; }
.copd-flag-severity    { font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 8px; }
.copd-sev-high         { background: rgba(239,68,68,0.12); color: #991b1b; }
.copd-sev-caution      { background: rgba(234,179,8,0.12); color: #854d0e; }
.copd-sev-consider     { background: rgba(99,102,241,0.12); color: #3730a3; }
.copd-sev-deprescribe  { background: rgba(249,115,22,0.12); color: #9a3412; }
.copd-sev-action       { background: rgba(239,68,68,0.12); color: #991b1b; }

.copd-evidence-row     { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.copd-evidence-chip    { font-size: 9.5px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--bg); color: var(--muted); border: 1px solid var(--border-light); }
.copd-chip-active      { background: rgba(34,197,94,0.1);  color: #166534; border-color: rgba(34,197,94,0.3);  }
.copd-chip-ics         { background: rgba(239,68,68,0.1);  color: #991b1b; border-color: rgba(239,68,68,0.3);  }
.copd-chip-caution     { background: rgba(234,179,8,0.1);  color: #854d0e; border-color: rgba(234,179,8,0.3);  }

.copd-waiting-msg      { font-size: 12px; color: var(--muted); font-style: italic; }

.copd-exac-row         { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.copd-exac-row:last-child { border-bottom: none; }
.copd-exac-label       { color: var(--body); }
.copd-exac-val         { font-weight: 700; color: var(--navy); }
.copd-val-red          { color: #dc2626; }

.copd-rescue-card      { background: rgba(239,68,68,0.05); border: 1px solid rgba(239,68,68,0.2); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 8px; }
.copd-rescue-id        { font-size: 9px; font-weight: 700; color: var(--muted); margin-bottom: 4px; }
.copd-rescue-text      { font-size: 12px; color: var(--body); line-height: 1.55; }

.copd-pr-status        { font-size: 12.5px; line-height: 1.55; padding: 10px 12px; border-radius: var(--radius); }
.copd-pr-indicated     { background: rgba(99,102,241,0.07); color: #3730a3; border: 1px solid rgba(99,102,241,0.2); }
.copd-pr-not-indicated { color: var(--muted); }

.copd-prevention-card  { border-radius: var(--radius); padding: 10px 12px; margin-bottom: 10px; border-left: 3px solid var(--border); background: var(--white); }
.copd-smoking-card     { border-left-color: var(--accent); }
.copd-vacc-card        { border-left-color: #6366f1; }
.copd-prevention-id    { font-size: 9px; font-weight: 700; color: var(--muted); margin-bottom: 2px; }
.copd-prevention-label { font-size: 12px; font-weight: 600; color: var(--navy); margin-bottom: 4px; }
.copd-prevention-text  { font-size: 12px; color: var(--body); line-height: 1.55; }

.copd-ltot-flag        { font-size: 12.5px; line-height: 1.55; padding: 10px 12px; border-radius: var(--radius); color: var(--muted); }
.copd-ltot-indicated   { background: rgba(239,68,68,0.06); color: #991b1b; border: 1px solid rgba(239,68,68,0.2); }

.copd-action-row       { font-size: 12.5px; color: var(--body); line-height: 1.6; padding: 7px 0; border-bottom: 1px solid var(--border-light); }
.copd-action-row:last-child { border-bottom: none; }
.copd-action-highlight { background: rgba(239,68,68,0.04); border-left: 3px solid #ef4444; padding-left: 10px; margin: 4px -2px; border-radius: 3px; }

/* ════════════════════════════════════════════════════════════
   ACCOUNT / PROFILE VIEW — Extended (avatar, nav, info rows)
════════════════════════════════════════════════════════════ */

.clx-account-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 560px;
  width: 100%;
  margin: 0 auto;
  padding: 0 0 40px;
}

.clx-account-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

.clx-account-section-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 20px;
}

/* ── Avatar card ─────────────────────────────────────── */

.clx-account-avatar-card { padding: 20px 24px; }

.clx-avatar-section {
  display: flex;
  align-items: center;
  gap: 20px;
}

.clx-avatar-ring {
  position: relative;
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--bg);
  border: 2px solid var(--border);
  overflow: visible;
  cursor: pointer;
  display: block;
}

.clx-avatar-img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.clx-avatar-placeholder {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
}

.clx-avatar-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  opacity: 0;
  transition: opacity 0.18s;
}

.clx-avatar-ring:hover .clx-avatar-overlay { opacity: 1; }

@media (max-width: 600px) {
  .clx-avatar-overlay { opacity: 0.6; }
}

.clx-avatar-info { flex: 1; min-width: 0; }

.clx-avatar-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.clx-avatar-role {
  font-size: 13px;
  color: var(--muted);
  margin-top: 2px;
}

.clx-avatar-upload-status { font-size: 12px; margin-top: 6px; color: var(--muted); }
.clx-avatar-upload-ok     { color: #4ade80; }
.clx-avatar-upload-error  { color: var(--danger, #f87171); }

/* ── Account info row ────────────────────────────────── */

.clx-account-info-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-light, var(--border));
}

.clx-account-info-label { font-size: 13px; color: var(--muted); }
.clx-account-info-value { font-size: 13px; color: var(--text); font-weight: 500; }

/* ── Mobile ──────────────────────────────────────────── */

@media (max-width: 600px) {
  .clx-account-card { padding: 18px 16px; }
  .clx-account-wrap { padding: 0 0 32px; }
}

/* ── Nav avatar ──────────────────────────────────────── */

.clx-nav-user-link {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--text);
}

.clx-nav-user-link:hover { opacity: 0.8; }

.clx-nav-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
}

.clx-nav-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.clx-nav-avatar-placeholder {
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* ── Auth success message ────────────────────────────── */

.clx-auth-success {
  background: rgba(42,157,110,0.12);
  border: 1px solid rgba(42,157,110,0.35);
  color: #4ade80;
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 16px;
  line-height: 1.5;
}

/* ════════════════════════════════════════════════════════════
   END ACCOUNT / PROFILE VIEW
════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════
   CLINBY ASSISTANT
════════════════════════════════════════════════════════════ */

/* ── Floating button ─────────────────────────────────────── */

.clinby-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 900;
  padding: 0;
  transition: transform 0.2s, box-shadow 0.2s;
  overflow: hidden;
}

.clinby-fab:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 28px rgba(0,0,0,0.5);
}

.clinby-fab-img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  image-rendering: pixelated;
}

/* ── Onboarding overlay ──────────────────────────────────── */

.clinby-onboarding-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.clinby-onboarding-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  width: 100%;
  max-width: 480px;
  padding: 28px 28px 20px;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

.clinby-onboarding-skip {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  color: var(--muted);
  font-size: 12px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}

.clinby-onboarding-skip:hover { color: var(--text); background: var(--bg); }

.clinby-onboarding-body {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.clinby-onboarding-img {
  width: 110px;
  height: 110px;
  object-fit: contain;
  image-rendering: pixelated;
  flex-shrink: 0;
}

.clinby-onboarding-step-badge {
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.clinby-onboarding-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 8px;
  line-height: 1.2;
}

.clinby-onboarding-text {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

.clinby-onboarding-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.clinby-onboarding-dots {
  display: flex;
  gap: 6px;
}

.clinby-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--border);
  transition: background 0.2s;
}

.clinby-dot-active { background: var(--accent); }

/* ── Chat panel ──────────────────────────────────────────── */

.clinby-chat-panel {
  position: fixed;
  bottom: 100px;
  right: 24px;
  width: 340px;
  max-height: 520px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.45);
  z-index: 899;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.clinby-chat-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  flex-shrink: 0;
}

.clinby-chat-header-img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  image-rendering: pixelated;
  flex-shrink: 0;
}

.clinby-chat-header-info { flex: 1; min-width: 0; }

.clinby-chat-header-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.clinby-chat-header-sub {
  font-size: 11px;
  color: var(--muted);
}

.clinby-chat-close {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  font-size: 14px;
  padding: 4px;
  border-radius: 6px;
  line-height: 1;
}

.clinby-chat-close:hover { color: var(--text); background: var(--border); }

.clinby-chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.clinby-chat-msg {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.clinby-chat-msg-user {
  flex-direction: row-reverse;
}

.clinby-chat-msg-avatar {
  width: 30px;
  height: 30px;
  object-fit: contain;
  image-rendering: pixelated;
  flex-shrink: 0;
}

.clinby-chat-msg-bubble {
  max-width: 80%;
  padding: 9px 12px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.5;
}

.clinby-chat-msg-bot .clinby-chat-msg-bubble {
  background: var(--bg);
  color: var(--text);
  border-bottom-left-radius: 4px;
}

.clinby-chat-msg-user .clinby-chat-msg-bubble {
  background: var(--accent);
  color: #fff;
  border-bottom-right-radius: 4px;
}

/* Typing indicator */
.clinby-typing-bubble {
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 12px 14px;
}

.clinby-typing-bubble span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--muted);
  animation: clinby-bounce 1.2s infinite;
}

.clinby-typing-bubble span:nth-child(2) { animation-delay: 0.2s; }
.clinby-typing-bubble span:nth-child(3) { animation-delay: 0.4s; }

@keyframes clinby-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
  40%            { transform: translateY(-5px); opacity: 1; }
}

.clinby-typing-avatar {
  animation: clinby-pulse 1.5s infinite;
}

@keyframes clinby-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.6; }
}

/* Input row */
.clinby-chat-input-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}

.clinby-chat-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 8px 14px;
  font-size: 13px;
  color: var(--text);
  outline: none;
}

.clinby-chat-input:focus { border-color: var(--accent); }

.clinby-chat-send {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--accent);
  border: none;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s;
}

.clinby-chat-send:hover { background: var(--accent-hover, #c0622a); }

/* Mobile adjustments */
@media (max-width: 600px) {
  .clinby-chat-panel {
    right: 12px;
    left: 12px;
    width: auto;
    bottom: 90px;
  }
  .clinby-fab {
    bottom: 16px;
    right: 16px;
  }
}

/* ════════════════════════════════════════════════════════════
   END CLINBY
════════════════════════════════════════════════════════════ */

/* ── Google OAuth button ─────────────────────────────────── */

.clx-btn-google {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  margin-top: 4px;
}

.clx-btn-google:hover {
  background: var(--bg);
  border-color: var(--accent);
}

.clx-btn-google:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.clx-oauth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0 12px;
  color: var(--muted);
  font-size: 12px;
}

.clx-oauth-divider::before,
.clx-oauth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}
