/* ============================================================
   CardioEquity RI — Rhode Island Hospital
   Aesthetic: ENGRAVED INSTITUTIONAL · MEDICAL-EDITORIAL
   Warm ivory paper + deep teal ink · Fraunces display · Public Sans UI
   ============================================================ */

:root{
  /* paper + ink */
  --paper:#F3EDDF;          /* warm ivory app background */
  --paper-2:#EDE6D4;
  --card:#FFFDF8;           /* warm white card */
  --card-2:#FBF7EE;
  --ink:#15343B;            /* deep teal-ink text */
  --ink-soft:#3C555B;
  --muted:#6E6A5B;          /* warm taupe muted */
  --muted-2:#8A8676;

  /* brand teal scale */
  --teal:#16515A; --teal-600:#1C6470; --teal-700:#124048; --teal-900:#0E3B42; --teal-950:#0A2A2F;
  --turq:#7FC9BC; --turq-line:#A7DBD0;
  --crim:#B23A2E; --crim-700:#8F2C22;
  --gold:#A9843E;           /* fine accent rule */

  /* lines + fields */
  --hair:#E1D8C4;           /* warm hairline */
  --hair-2:#EDE6D6;
  --hair-inkline:#D8CDB6;
  --ring:rgba(22,81,90,.30);

  --shadow-xs:0 1px 1px rgba(21,52,59,.05);
  --shadow:0 1px 2px rgba(21,52,59,.05),0 10px 26px -14px rgba(21,52,59,.22);
  --shadow-lg:0 20px 60px -22px rgba(10,42,47,.55);

  --r:12px; --r-sm:8px; --r-pill:999px;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Public Sans','Helvetica Neue',Helvetica,sans-serif;
  --mono:'Spline Sans Mono',ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.6,.35,1);
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.55}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.14;font-optical-sizing:auto;color:var(--ink)}
::selection{background:rgba(127,201,188,.4);color:var(--teal-950)}

/* editorial helpers */
.muted{color:var(--muted)}
.small{font-size:12.5px}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1;letter-spacing:0}
.hide{display:none!important}
.eyebrow,.kicker,.navsec{font-family:var(--sans);text-transform:uppercase;letter-spacing:.18em;font-weight:700}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--r-sm);
  border:1px solid var(--hair-inkline);background:var(--card);color:var(--ink);
  font-weight:600;font-size:13px;letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-xs);
  transition:background .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease),color .16s var(--ease)}
.btn:hover{border-color:var(--teal-600);background:#fff;transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
.btn-primary{background:var(--teal);border-color:var(--teal);color:#FBF7EE;box-shadow:0 2px 10px -4px rgba(18,64,72,.6)}
.btn-primary:hover{background:var(--teal-700);border-color:var(--teal-700);color:#fff}
.btn-crimson{background:var(--crim);border-color:var(--crim);color:#FBF3F1;box-shadow:0 2px 10px -4px rgba(178,58,46,.55)}
.btn-crimson:hover{background:var(--crim-700);border-color:var(--crim-700);color:#fff}
.btn-emergency{background:#8F2C22;border-color:#8F2C22;color:#fff;box-shadow:0 2px 10px -4px rgba(143,44,34,.65)}
.btn-emergency:hover{background:#742219;border-color:#742219;color:#fff}
.btn-emergency-outline{background:#FFF8F6;border-color:#C9867E;color:#8F2C22}
.btn-emergency-outline:hover{background:#FBEAE7;border-color:#A94A40;color:#742219}
.btn-sm{padding:6px 11px;font-size:12px}
.btn-ghost{background:transparent;border-color:transparent;color:var(--teal-600);box-shadow:none}
.btn-ghost:hover{background:rgba(22,81,90,.07);color:var(--teal-700)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn input[type=checkbox]{accent-color:var(--teal);width:14px;height:14px;margin-right:2px}

/* ============ BADGES / PILLS ============ */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:5px;
  font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}
.b-crit{background:#F7E4E1;color:#8A2A21;border-color:#E6CBC6}
.b-high{background:#F3E7CF;color:#7C531A;border-color:#E4D3AE}
.b-mod{background:#DDECEC;color:#155159;border-color:#C6DEDE}
.b-low{background:#E1EDDF;color:#2C5A3F;border-color:#CCE0CF}
.b-flag{background:var(--card-2);color:#43554F;font-weight:600;border-color:var(--hair);text-transform:none;letter-spacing:.01em;border-radius:5px}
.b-safe{background:#E1EDDF;color:#2C5A3F;border-color:#CCE0CF}
.b-fallback{background:#F3E7CF;color:#7C531A;border-color:#E4D3AE}
.b-ai{background:#DDECEC;color:#155159;border-color:#C6DEDE}
.b-review{background:#F6E5E2;color:#9C332A;border-color:#EAC9C4}
.b-review.approved{background:#E1EDDF;color:#2C5A3F;border-color:#CCE0CF}
.pill{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:var(--r-pill);
  font-size:11.5px;font-weight:600;border:1px solid transparent}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.s-not{background:#F6E5E2;color:#9C332A;border-color:#EAC9C4}
.s-prog{background:#F3EACF;color:#7E551B;border-color:#E5D6AF}
.s-done{background:#E2EEE2;color:#2C5A3F;border-color:#CEE2D2}
.dot{width:8px;height:8px;border-radius:50%}

/* ============ AUTH / LANDING ============ */
.auth{position:fixed;inset:0;overflow:auto;display:flex;flex-direction:column;color:#EAF3EF;
  background:
    radial-gradient(1000px 560px at 82% -10%, rgba(127,201,188,.16), transparent 60%),
    radial-gradient(900px 800px at 8% 120%, rgba(10,42,47,.6), transparent 60%),
    linear-gradient(160deg,#0C3138 0%,#103C44 50%,#155059 100%);
  isolation:isolate}
.auth::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.herobg{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none;z-index:0}
.auth-top{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;
  padding:20px 40px;border-bottom:1px solid rgba(167,219,208,.16)}
.auth-brand{display:flex;align-items:center;gap:13px;color:#EAF3EF}
.auth-brand .crest{width:42px;height:42px;color:#DCEFEA}
.auth-brand .t1{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:0}
.auth-brand .t2{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.72;margin-top:2px}
.auth-body{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;gap:64px;padding:24px 40px;flex-wrap:wrap}
.hero-copy{max-width:490px}
.hero-copy .kicker{font-size:11.5px;color:var(--turq);letter-spacing:.2em}
.hero-copy .kicker::after{content:"";display:block;width:46px;height:1px;background:var(--gold);margin-top:12px;opacity:.8}
.hero-copy h1{font-family:var(--serif);font-weight:500;font-size:46px;line-height:1.04;letter-spacing:-.02em;color:#fff;margin:16px 0 16px}
.hero-copy h1 em{font-style:italic;color:var(--turq);font-weight:500}
.hero-copy p{font-size:16px;line-height:1.6;color:rgba(234,243,239,.86);max-width:440px}
.hero-stats{display:flex;gap:0;margin-top:30px}
.hero-stats>div{padding:0 22px;border-left:1px solid rgba(167,219,208,.22)}
.hero-stats>div:first-child{padding-left:0;border-left:0}
.hero-stats .n{font-family:var(--serif);font-weight:600;font-size:25px;color:#fff;font-feature-settings:"tnum" 1}
.hero-stats .l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:rgba(234,243,239,.62);margin-top:4px}

.authcard{width:380px;max-width:92vw;background:var(--card);color:var(--ink);border-radius:16px;
  padding:32px 30px 26px;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.5);position:relative}
.authcard::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:16px 16px 0 0;
  background:linear-gradient(90deg,var(--teal),var(--turq))}
.authcard .lock{color:var(--teal);margin-bottom:14px;display:flex}
.authcard .lock .crest{width:52px;height:52px}
.authcard h2{font-size:22px;margin-bottom:3px}
.authcard .sub{color:var(--muted);font-size:12.5px;margin-bottom:20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--hair-inkline);
  border-radius:var(--r-sm);font-size:14px;color:var(--ink);background:#FFFDF8}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal-600);box-shadow:0 0 0 3px var(--ring)}
.hint{background:var(--card-2);border:1px dashed var(--hair-inkline);border-radius:var(--r-sm);padding:9px 12px;font-size:12px;color:var(--ink-soft);margin-top:8px}
.auth-foot{position:relative;z-index:3;text-align:center;color:rgba(210,234,228,.72);font-size:11px;letter-spacing:.04em;padding:16px}

/* staggered reveal */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero-copy .kicker,.hero-copy h1,.hero-copy p,.hero-stats,.authcard{animation:rise .7s var(--ease) both}
.hero-copy h1{animation-delay:.06s}.hero-copy p{animation-delay:.12s}.hero-stats{animation-delay:.18s}.authcard{animation-delay:.1s}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}

/* ============ APP SHELL ============ */
.shell{display:grid;grid-template-columns:242px 1fr;min-height:100vh}
.side{background:linear-gradient(180deg,#0E3B42,#0B3138);color:#CFE3DE;position:sticky;top:0;height:100vh;overflow:auto;
  border-right:1px solid var(--teal-950)}
.side .brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid rgba(167,219,208,.14);color:#EAF3EF}
.side .brand .crest{width:34px;height:34px;color:var(--turq)}
.side .brand .t1{font-family:var(--serif);font-weight:600;font-size:15px;color:#fff;line-height:1.1}
.side .brand .t2{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.62;margin-top:2px}
.side .navsec{font-size:9.5px;letter-spacing:.16em;opacity:.5;padding:18px 18px 8px}
.side nav{padding:0 12px}
.side nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-sm);color:#BFDAD3;
  font-size:13.5px;font-weight:600;margin-bottom:2px;transition:.14s var(--ease);position:relative}
.side nav a:hover{background:rgba(255,255,255,.055);color:#fff}
.side nav a.active{background:rgba(127,201,188,.12);color:#fff;box-shadow:inset 3px 0 0 var(--turq)}
.side nav a svg{width:17px;height:17px;flex:0 0 auto;opacity:.85}
.side nav a.active svg{color:var(--turq);opacity:1}

.main{display:flex;flex-direction:column;min-width:0}
.topbar{background:rgba(253,251,245,.86);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--hair);
  padding:0 28px;height:60px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20}
.topbar .crumb{font-family:var(--serif);font-weight:600;font-size:17px}
.topbar .spacer{flex:1}
.topbar .who{display:flex;align-items:center;gap:11px;font-size:12.5px;color:var(--muted)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--teal);color:#EAF3EF;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;font-family:var(--serif)}
.content{padding:26px 28px 64px;max-width:1290px;width:100%}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;
  border-bottom:1px solid var(--hair);padding-bottom:16px}
.page-h h1{font-size:25px}
.page-h p{color:var(--muted);font-size:13.5px;margin-top:5px;max-width:640px}

/* cards + kpis */
.card{background:var(--card);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--shadow)}
.card.pad{padding:19px}
.grid{display:grid;gap:16px}
.kpis{grid-template-columns:repeat(4,1fr)}
.kpi{background:var(--card);border:1px solid var(--hair);border-radius:var(--r);padding:16px 17px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--turq);opacity:.55}
.kpi .l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi .v{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--teal);margin-top:6px;line-height:1;font-feature-settings:"tnum" 1}
.kpi .s{font-size:11.5px;color:var(--muted);margin-top:6px}
.kpi.alert::before{background:var(--crim);opacity:.8}
.kpi.alert .v{color:var(--crim)}
.grid.kpis .kpi{animation:rise .6s var(--ease) both}
.grid.kpis .kpi:nth-child(2){animation-delay:.05s}.grid.kpis .kpi:nth-child(3){animation-delay:.1s}.grid.kpis .kpi:nth-child(4){animation-delay:.15s}

/* toolbar */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar input[type=search],.toolbar select{padding:9px 12px;border:1px solid var(--hair-inkline);border-radius:var(--r-sm);font-size:13px;background:var(--card);color:var(--ink)}
.toolbar input:focus,.toolbar select:focus{outline:none;border-color:var(--teal-600);box-shadow:0 0 0 3px var(--ring)}
.toolbar .grow{flex:1;min-width:200px}

/* table */
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}
.tbl th{background:var(--card-2);text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#5A6E6B;
  padding:11px 13px;border-bottom:1px solid var(--hair-inkline);cursor:pointer;white-space:nowrap;font-weight:700}
.tbl th.no{cursor:default}
.tbl td{padding:11px 13px;border-bottom:1px solid var(--hair-2);font-size:13.5px;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer;transition:background .12s}
.tbl tbody tr:hover{background:var(--card-2)}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll .tbl{min-width:980px}
.name{font-weight:700;font-size:14px}
.sub2{font-size:11px;color:var(--muted)}
.urg{display:flex;align-items:center;gap:9px}
.urg .bar{width:54px;height:5px;border-radius:4px;background:#E7E0CF;overflow:hidden}
.urg .bar i{display:block;height:100%}
.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:14px;font-size:12.5px;color:var(--muted)}

/* detail */
.det{display:grid;grid-template-columns:1.45fr 1fr;gap:16px}
.det .sec{margin-bottom:16px}
.det h3,.card.pad h3{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#5A6E6B;margin-bottom:12px;font-weight:700}
.dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.dl .k{font-size:11px;letter-spacing:.03em;color:var(--muted);text-transform:uppercase}
.dl .v{font-size:15px;font-weight:700;font-family:var(--serif)}
.flagrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.urgbig{display:flex;align-items:center;gap:16px}
.urgring{width:74px;height:74px;flex:0 0 auto}
.bd{border-top:1px solid var(--hair);margin:14px 0}
.ai-boundary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.ai-boundary>div{padding:10px 11px;border:1px solid var(--hair);border-radius:8px;background:var(--card-2)}
.ai-boundary span,.privacy-strip span,.review-audit span{display:block;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ai-boundary b{display:block;font-size:12.5px;margin-top:2px}
.ai-boundary small{display:block;font-size:10.5px;color:var(--muted);line-height:1.35;margin-top:2px}
.route-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;
  border:1px solid #C8DDD3;border-radius:10px;background:#EFF7F2;margin-bottom:12px}
.route-summary>div{display:flex;flex-direction:column;gap:1px}
.route-summary .eyebrow{font-size:9px;color:var(--teal-600);letter-spacing:.14em}
.route-summary strong{font-family:var(--serif);font-size:18px;color:var(--teal-900)}
.route-summary>div>span:last-child:not(.eyebrow){font-size:11.5px;color:var(--muted)}
.channel-states{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:12px 0}
.channel-state{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid var(--hair-2);border-radius:8px;background:var(--card-2)}
.channel-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:0 0 auto}
.channel-dot.on{background:#3B7A57;box-shadow:0 0 0 3px rgba(59,122,87,.12)}
.channel-dot.off{background:#A59E8F}
.channel-state b{display:block;font-size:11.5px}
.channel-state div span{display:block;font-size:10.5px;color:var(--muted);line-height:1.35;margin-top:1px}
.consent-editor{border-top:1px solid var(--hair);padding-top:10px;margin-top:8px}
.consent-editor summary{font-weight:700;font-size:12px;color:var(--teal-600);cursor:pointer;margin-bottom:10px}
.consent-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0 0 12px}
.consent-checks label{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--ink-soft);line-height:1.35}
.consent-checks input{accent-color:var(--teal);margin-top:2px}
.review-audit{border-left:3px solid #3B7A57;background:#F0F7F2;border-radius:0 8px 8px 0;padding:8px 10px;margin-top:10px}
.review-audit b{display:block;font-size:12px;margin-top:2px}
.review-audit small{display:block;color:var(--muted);font-size:10.5px;line-height:1.4}
.support-score{margin-top:14px;padding:12px 13px;border:1px solid #C8DDD3;border-radius:10px;background:#F1F7F2}
.support-score>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}
.support-score>div:first-child span{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-600)}
.support-score>div:first-child strong{font-family:var(--serif);font-size:16px;color:#2C633F}
.support-score small{display:block;font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:8px}
.support-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.support-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid #C8DDD3;border-radius:999px;background:#FFFDF8;padding:4px 8px;font-size:10.5px;color:var(--ink-soft)}
.support-chip b{color:#2C633F}
.equity-safeguard{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:9px 11px;border-left:3px solid #3B7A57;background:#F0F7F2;border-radius:0 8px 8px 0;font-size:11px;line-height:1.45}
.equity-safeguard b{color:#2C633F;white-space:nowrap}.equity-safeguard span{color:var(--ink-soft)}
.access-profile{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.access-profile>div{padding:9px 10px;border:1px solid var(--hair);border-radius:8px;background:var(--card-2)}
.access-profile span,.case-facts span,.resolution-proof span,.escalation>span{display:block;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.access-profile b,.case-facts b{display:block;font-size:12px;margin-top:2px}.access-profile small,.case-facts small{display:block;font-size:10.5px;color:var(--muted);line-height:1.35;margin-top:2px}
.case-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.case-facts>div{padding:10px 11px;border:1px solid var(--hair);border-radius:8px;background:var(--card-2)}
.escalation{padding:11px 12px;border:1px solid var(--hair);border-radius:9px;margin-top:10px;background:#FFFDF8}
.escalation-chain{display:flex;align-items:center;gap:5px;margin-top:8px}
.escalation-chain>i{font-style:normal;color:#A59E8F;font-size:12px}
.escalation-step{display:flex;align-items:center;gap:5px;min-width:0;color:#8A8F8B}
.escalation-step span{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ECE7DC;color:#6D756F;font-size:9px;font-weight:700;flex:0 0 auto}
.escalation-step b{font-size:9.5px;white-space:nowrap}
.escalation-step.active{color:#9C332A}.escalation-step.active span{background:#F6E5E2;color:#9C332A;box-shadow:0 0 0 2px #EAC9C4}
.escalation-step.done{color:#2C5A3F}.escalation-step.done span{background:#E1EDDF;color:#2C5A3F}
.escalation small{display:block;font-size:10.5px;color:var(--muted);margin-top:8px}.escalation .overdue-copy{color:#9C332A;font-weight:700}
.resolution-proof{border-left:3px solid #3B7A57;background:#F0F7F2;border-radius:0 8px 8px 0;padding:9px 11px;margin-top:10px}
.resolution-proof b{display:block;font-size:12px;color:#2C5A3F;margin-top:2px}.resolution-proof small{display:block;font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:2px}
.case-editor{border-top:1px solid var(--hair);padding-top:10px;margin-top:10px}.case-editor summary{font-weight:700;font-size:12px;color:var(--teal-600);cursor:pointer;margin-bottom:10px}
.policy-chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin-top:8px}
.policy-chain>div{min-height:88px;padding:10px;border:1px solid var(--hair);border-radius:8px;background:var(--card-2);text-align:center}
.policy-chain>div span{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 5px;background:var(--teal);color:#fff;font-size:10px;font-weight:700}
.policy-chain b{display:block;font-size:11px}.policy-chain small{display:block;font-size:9.5px;color:var(--muted);line-height:1.3;margin-top:3px}.policy-chain>i{font-style:normal;color:var(--teal-600)}
.escalation-label{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#E7F0ED;color:#2C5A3F;font-size:10.5px;font-weight:700;white-space:nowrap}.escalation-label.overdue{background:#F6E5E2;color:#9C332A}

/* preventive / emergency boundary */
.preventive-boundary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;margin:-4px 0 16px;border:1px solid #C7DAD4;border-left:4px solid var(--teal);border-radius:9px;background:#F0F7F4}
.preventive-boundary>div b,.preventive-boundary>div span{display:block}.preventive-boundary>div b{font-size:12.5px;color:var(--teal-700)}.preventive-boundary>div span{font-size:11.5px;color:var(--muted);margin-top:1px}
.provider-boundary,.emergency-empty{padding:11px 12px;border-left:3px solid var(--teal);border-radius:0 8px 8px 0;background:#EEF6F4;margin-bottom:11px}
.provider-boundary b,.provider-boundary span,.emergency-empty b,.emergency-empty span{display:block}.provider-boundary b,.emergency-empty b{font-size:12px}.provider-boundary span,.emergency-empty span{font-size:11px;color:var(--muted);line-height:1.45;margin-top:3px}
.emergency-active{padding:11px 12px;border:1px solid #E0B9B3;border-radius:9px;background:#FCF0EE}.emergency-active>div{display:flex;align-items:center;gap:8px}.emergency-active b{font-size:12.5px;color:#842A22}.emergency-active small{display:block;font-size:10.5px;color:#755E59;margin-top:3px}
.emergency-pulse{width:9px;height:9px;border-radius:50%;background:var(--crim);box-shadow:0 0 0 4px rgba(178,58,46,.14);flex:0 0 auto}
.emergency-timeline{display:flex;align-items:flex-start;gap:5px;margin:13px 0}.emergency-timeline>i{font-style:normal;color:#AAA091;font-size:12px;margin-top:9px}.emergency-timeline-step{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;gap:3px;color:#8A867A;text-align:center}.emergency-timeline-step span{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#E9E3D7;color:#756F63;font-size:9.5px;font-weight:700}.emergency-timeline-step b{font-size:9px;line-height:1.2}.emergency-timeline-step.active{color:#8F2C22}.emergency-timeline-step.active span{background:#F5DCD8;color:#8F2C22;box-shadow:0 0 0 2px #E8BDB7}.emergency-timeline-step.done{color:#2C5A3F}.emergency-timeline-step.done span{background:#DCEBDD;color:#2C5A3F}
.emergency-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.emergency-facts>div{padding:8px 9px;border:1px solid var(--hair);border-radius:7px;background:var(--card-2)}.emergency-facts span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.emergency-facts b{display:block;font-size:10.5px;margin-top:2px}
.emergency-alert-head{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #DCA9A2;border-radius:10px;background:#FAE9E6;margin-bottom:12px}.emergency-alert-head>span{font-size:9px;letter-spacing:.13em;font-weight:800;color:#fff;background:#8F2C22;border-radius:4px;padding:4px 6px}.emergency-alert-head b,.emergency-alert-head small{display:block}.emergency-alert-head b{font-family:var(--serif);font-size:17px;color:#6F201A}.emergency-alert-head small{font-size:11px;color:#755E59;margin-top:1px}
.emergency-safety{padding:11px 13px;border-left:4px solid #8F2C22;border-radius:0 8px 8px 0;background:#FFF4F1}.emergency-safety b,.emergency-safety span{display:block}.emergency-safety b{font-size:12px;color:#742219}.emergency-safety span{font-size:11px;color:#665A55;line-height:1.5;margin-top:3px}
.emergency-evidence{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}.emergency-evidence>div{padding:10px 11px;border:1px solid var(--hair);border-radius:8px;background:var(--card-2)}.emergency-evidence span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.emergency-evidence b{display:block;font-size:12px;margin-top:2px}.emergency-evidence small{display:block;font-size:10px;color:var(--muted);line-height:1.35;margin-top:2px}
.emergency-audit{border-top:1px solid var(--hair);padding-top:11px;margin-top:8px}.emergency-audit>span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.emergency-audit ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:5px}.emergency-audit li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:6px;background:#F4F5EF}.emergency-audit li b{font-size:11px}.emergency-audit li small{font-size:10px;color:var(--muted);text-align:right}.emergency-audit li.danger{background:#FAE9E6;color:#8F2C22}
.emergency-policy{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:8px;padding:14px;border:1px solid var(--hair);border-radius:10px;background:var(--card)}.emergency-policy>div{text-align:center;min-height:96px;padding:9px;border-radius:8px;background:var(--card-2)}.emergency-policy>div span{width:23px;height:23px;margin:0 auto 5px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--teal);color:#fff;font-size:10px;font-weight:700}.emergency-policy>div b,.emergency-policy>div small{display:block}.emergency-policy>div b{font-size:11px}.emergency-policy>div small{font-size:9.5px;color:var(--muted);line-height:1.35;margin-top:3px}.emergency-policy>i{font-style:normal;color:var(--teal-600)}
.emergency-zero{display:flex;align-items:center;justify-content:space-between;gap:16px}.emergency-zero b,.emergency-zero span{display:block}.emergency-zero b{font-family:var(--serif);font-size:17px}.emergency-zero span{font-size:12px;color:var(--muted);margin-top:2px}

/* charts */
.chartbox{position:relative;height:280px}
.chartbox.sm{height:220px}
.legend-note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(10,42,47,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;backdrop-filter:blur(3px)}
.modal{background:var(--card);border-radius:16px;width:800px;max-width:96vw;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.5)}
.modal .mh{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--hair);position:sticky;top:0;background:var(--card)}
.modal .mh h3{font-family:var(--serif);font-size:17px}
.modal .mb{padding:22px}
.report{white-space:pre-wrap;font-size:14px;line-height:1.65;background:var(--card-2);border:1px solid var(--hair);border-radius:10px;padding:18px}
.report-ta{font-size:13.5px;line-height:1.6;background:var(--card-2);resize:vertical}
.field-help{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:5px}
.safe-sms[readonly]{background:#F0F7F2;border-color:#C8DDD3;color:#294A3D;cursor:not-allowed}
.draft-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #D8CDB6;border-radius:10px;background:#FBF5E8;margin-bottom:10px}
.draft-banner>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px}
.draft-banner strong{font-family:var(--serif);font-size:16px}
.draft-banner small{grid-column:1/-1;color:var(--muted);font-size:11px}
.privacy-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--hair);border-radius:9px;overflow:hidden;background:var(--hair);margin-bottom:14px}
.privacy-strip>div{background:var(--card-2);padding:8px 10px}
.privacy-strip b{display:block;font-size:11px;margin-top:2px;line-height:1.3}
.review-gate{display:flex;align-items:flex-start;gap:10px;border:1px solid #D9B9B3;border-radius:10px;background:#FBF1EF;padding:12px 14px;margin-top:14px;cursor:pointer}
.review-gate:has(input:checked){border-color:#AFCDBA;background:#F0F7F2}
.review-gate input{accent-color:var(--teal);width:17px;height:17px;margin-top:2px;flex:0 0 auto}
.review-gate b,.review-gate small{display:block}
.review-gate b{font-size:12.5px}
.review-gate small{font-size:11px;color:var(--muted);line-height:1.45;margin-top:2px}
.report-route{margin-bottom:18px}
.outreach-actions{border:1px solid var(--hair);border-radius:10px;background:var(--card-2);padding:12px 14px;margin-top:14px}
.outreach-actions>span{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.rolechip{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--teal-50,#EEF6F4);color:var(--teal-600,#18535C);border:1px solid var(--hair);font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.spinner{width:22px;height:22px;border:3px solid #DDE7DF;border-top-color:var(--teal);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.callout{border-left:3px solid var(--crim);background:linear-gradient(90deg,#FBF1EF,var(--card));padding:12px 15px;border-radius:0 10px 10px 0;font-size:13px;line-height:1.55}
.callout.teal{border-color:var(--teal);background:linear-gradient(90deg,#EEF6F4,var(--card))}

/* funnel */
.funnel{display:flex;flex-direction:column;gap:10px}
.funnel .row{display:flex;align-items:center;gap:12px}
.funnel .barf{height:34px;border-radius:7px;display:flex;align-items:center;padding:0 13px;color:#FBF7EE;font-weight:700;font-size:13px;min-width:60px;font-family:var(--serif)}
.big-num{font-family:var(--serif);font-size:36px;font-weight:600;font-feature-settings:"tnum" 1}

@media(max-width:900px){.shell{grid-template-columns:1fr}.side{display:none}.det{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.hero-copy h1{font-size:36px}.channel-states,.consent-checks,.ai-boundary,.access-profile,.case-facts,.emergency-evidence,.emergency-facts{grid-template-columns:1fr}.privacy-strip{grid-template-columns:1fr 1fr}.draft-banner{align-items:flex-start;flex-direction:column}.settings-grid,.tracking-summary{grid-template-columns:1fr!important}.policy-chain,.emergency-policy{grid-template-columns:1fr}.policy-chain>i,.emergency-policy>i{transform:rotate(90deg);text-align:center}.escalation-chain{flex-wrap:wrap}.emergency-timeline{overflow-x:auto}.emergency-timeline-step{min-width:70px}}
@media(max-width:600px){.topbar{padding:0 16px}.topbar .who{gap:6px}.topbar .who>span[title],.topbar .who>span:not(.rolechip){display:none}.content{padding:20px 16px 48px}.kpis{grid-template-columns:1fr 1fr}.card.pad{padding:16px}.page-h h1{font-size:23px}}
