/* ============================================================
   Cadence — Grace Physiotherapy Hub
   PlainBlack · vision demo

   Clinical operations platform shell. Deep petrol-teal primary,
   warm coral accent, sage-green secondary, periwinkle tertiary.
   Display: Hanken Grotesk. Body: Inter. Mono: JetBrains Mono.
   ============================================================ */
:root {
  --navy:      #1e5f74;   /* deep petrol-teal (primary) */
  --navy-2:    #195162;
  --navy-3:    #267090;
  --navy-deep: #143d4f;
  --navy-ink:  #0f2e3d;
  --gold:      #c97b6e;   /* warm coral (accent) */
  --gold-2:    #a85d52;
  --gold-soft: #f2c4bc;
  --teal:      #5a7d5a;   /* sage-green (secondary) */
  --violet:    #9DA7D0;   /* periwinkle (tertiary) */
  --paper:     #FFFFFF;
  --wash:      #F3F5F9;
  --wash-2:    #EBEFF5;
  --ink:       #273140;
  --slate:     #5A6A75;
  --slate-2:   #8595A1;
  --line:      rgba(30,95,116,0.10);
  --line-2:    rgba(30,95,116,0.06);
  --good:      #1F8A55;
  --good-bg:   rgba(31,138,85,0.10);
  --warn:      #C2410C;
  --warn-bg:   rgba(194,65,12,0.10);
  --bad:       #C2362F;
  --bad-bg:    rgba(194,54,47,0.10);
  --info:      #2F6FB0;
  --info-bg:   rgba(47,111,176,0.10);

  --display: 'Hanken Grotesk','Inter',system-ui,-apple-system,sans-serif;
  --body:    'Inter',system-ui,-apple-system,sans-serif;
  --mono:    'JetBrains Mono',ui-monospace,monospace;

  --radius-sm: 8px;
  --radius:    14px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 2px rgba(14,45,60,0.06), 0 2px 8px rgba(14,45,60,0.04);
  --shadow:    0 4px 14px rgba(14,45,60,0.07), 0 16px 40px rgba(14,45,60,0.06);
  --shadow-lg: 0 24px 70px rgba(14,45,60,0.16);
  --ease: cubic-bezier(.2,.7,.2,1);
  --sidebar: 248px;
  --rail: 340px;

  /* Canvas sticky-note tints (soft paper, theme-consistent) + branch stroke */
  --note-coral:  #FBE2D8;
  --note-teal:   #DCEAE2;
  --note-gold:   #FCEBC9;
  --note-violet: #E6E8F4;
  --note-slate:  #E7ECF1;
  --branch:      rgba(30,95,116,0.42);
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{
  font-family:var(--body);
  font-size:14.5px;
  line-height:1.5;
  color:var(--ink);
  background:var(--wash);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:'cv11','ss01';
}
img,svg{display:block;max-width:100%;}
.ico{width:18px;height:18px;flex:0 0 auto;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px;border-radius:6px;}
h1,h2,h3,h4{font-family:var(--display);margin:0;letter-spacing:-0.02em;line-height:1.1;color:var(--navy-ink);}
.num{font-family:var(--display);font-feature-settings:'tnum';letter-spacing:-0.02em;}
.mono{font-family:var(--mono);}

/* ============================================================
   App grid
   ============================================================ */
.app{
  display:grid;
  grid-template-columns:var(--sidebar) minmax(0,1fr);
  height:100vh;
  overflow:hidden;
}
.app.rail-open{grid-template-columns:var(--sidebar) minmax(0,1fr) var(--rail);}

/* ============================================================
   Sidebar
   ============================================================ */
.sidebar{
  background:linear-gradient(185deg,var(--navy) 0%,var(--navy-deep) 60%,var(--navy-ink) 100%);
  color:#E9EEF6;
  display:flex;flex-direction:column;
  padding:18px 14px;
  position:relative;
  border-right:1px solid rgba(0,0,0,0.2);
}
.brand{display:flex;align-items:center;gap:11px;padding:6px 8px 18px;}
.brand-mark{
  width:38px;height:38px;border-radius:11px;flex:0 0 auto;
  display:grid;place-items:center;color:var(--navy-ink);
  background:linear-gradient(150deg,var(--gold-soft),var(--gold));
  box-shadow:0 6px 16px rgba(201,123,110,0.28);
}
.brand-mark svg{width:23px;height:23px;}
.brand-words{display:flex;flex-direction:column;line-height:1.15;}
.brand-name{font-family:var(--display);font-weight:700;font-size:1.06rem;letter-spacing:-0.02em;color:#fff;}
.brand-sub{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);opacity:.85;}

.nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1;margin:0 -4px;padding:0 4px;}
.nav::-webkit-scrollbar{width:0;}
.nav-label{
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(233,238,246,0.4);font-weight:600;
  padding:14px 12px 6px;
}
.nav-item{
  display:flex;align-items:center;gap:11px;
  padding:9px 12px;border-radius:10px;
  color:rgba(233,238,246,0.78);
  font-weight:500;font-size:.875rem;
  position:relative;transition:background .15s var(--ease),color .15s var(--ease);
}
.nav-item:hover{background:rgba(255,255,255,0.06);color:#fff;}
.nav-item.active{background:rgba(201,123,110,0.16);color:#fff;}
.nav-item.active::before{
  content:'';position:absolute;left:-4px;top:50%;transform:translateY(-50%);
  width:3px;height:20px;border-radius:3px;background:var(--gold);
}
.nav-item .ico{width:18px;height:18px;flex:0 0 auto;opacity:.9;}
.nav-item .soon{
  margin-left:auto;font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold-soft);background:rgba(201,123,110,0.12);
  padding:2px 6px;border-radius:6px;font-weight:600;
}
.nav-item.active .soon{color:var(--navy-ink);background:var(--gold-soft);}

.sb-user{
  display:flex;align-items:center;gap:10px;
  padding:10px;border-radius:12px;margin-top:8px;
  background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.07);
}
.avatar{
  width:34px;height:34px;border-radius:50%;flex:0 0 auto;
  display:grid;place-items:center;font-weight:700;font-size:.78rem;
  font-family:var(--display);color:var(--navy-ink);
}
.sb-user .who{display:flex;flex-direction:column;line-height:1.2;min-width:0;}
.sb-user .who b{font-size:.82rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-user .who span{font-size:.68rem;color:rgba(233,238,246,0.55);}

/* ============================================================
   Main column
   ============================================================ */
.main{display:flex;flex-direction:column;min-width:0;overflow:hidden;}

.topbar{
  display:flex;align-items:center;gap:14px;
  padding:14px 26px;
  background:rgba(255,255,255,0.8);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
  flex:0 0 auto;
}
.cmd{
  display:flex;align-items:center;gap:10px;
  flex:3 1 0;min-width:0;max-width:440px;
  padding:9px 14px;border-radius:11px;
  background:var(--wash);border:1px solid var(--line);
  color:var(--slate-2);font-size:.86rem;transition:border .15s,box-shadow .15s;
}
.cmd>span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cmd:hover{border-color:var(--gold);box-shadow:var(--shadow-sm);}
.cmd .ico{width:17px;height:17px;}
.topbar .spacer{flex:1;}
.tb-btn{
  width:38px;height:38px;border-radius:10px;
  display:grid;place-items:center;color:var(--slate);
  border:1px solid var(--line);background:var(--paper);
  transition:.15s var(--ease);position:relative;
}
.tb-btn:hover{color:var(--navy);border-color:var(--gold);box-shadow:var(--shadow-sm);}
.tb-btn .ico{width:18px;height:18px;}
.tb-back{
  width:38px;height:38px;flex:0 0 auto;border-radius:10px;
  display:grid;place-items:center;color:var(--slate);
  border:1px solid var(--line);background:var(--paper);
  transition:.15s var(--ease);
}
.tb-back .ico{width:19px;height:19px;}
.tb-back:hover:not(:disabled){color:var(--navy);border-color:var(--gold);box-shadow:var(--shadow-sm);}
.tb-back:disabled{opacity:.4;cursor:default;}
.tb-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--bad);border:2px solid var(--paper);}
.btn-primary{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border-radius:10px;font-weight:600;font-size:.84rem;
  color:var(--navy-ink);background:linear-gradient(145deg,var(--gold-soft),var(--gold));
  box-shadow:0 4px 14px rgba(201,123,110,0.35);transition:.15s var(--ease);
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(201,123,110,0.45);}
.btn-primary .ico{width:16px;height:16px;}
.btn-ai{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:10px;font-weight:600;font-size:.84rem;
  color:#fff;background:linear-gradient(135deg,var(--navy-3),var(--navy));
  border:1px solid rgba(255,255,255,0.12);transition:.15s var(--ease);
}
.btn-ai:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
.btn-ai.on{box-shadow:0 0 0 2px var(--gold-soft);}
.btn-ai .spark-ico{width:16px;height:16px;color:var(--gold-soft);}

/* ============================================================
   Workspace
   ============================================================ */
.work{overflow-y:auto;padding:26px;flex:1;}
.work::-webkit-scrollbar{width:10px;}
.work::-webkit-scrollbar-thumb{background:rgba(30,95,116,0.16);border-radius:8px;border:3px solid var(--wash);}

.greet{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:6px;}
.greet h1{font-size:1.8rem;font-weight:700;}
.greet .date{font-size:.82rem;color:var(--slate);font-weight:500;}
.greet .live{
  display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;
  color:var(--good);background:var(--good-bg);padding:5px 11px;border-radius:999px;
}
.greet .live .pulse{width:7px;height:7px;border-radius:50%;background:var(--good);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,138,85,.5);}70%{box-shadow:0 0 0 7px rgba(31,138,85,0);}100%{box-shadow:0 0 0 0 rgba(31,138,85,0);}}

.ai-summary{
  display:flex;align-items:flex-start;gap:13px;
  margin:16px 0 24px;padding:15px 18px;
  background:linear-gradient(120deg,rgba(23,77,96,0.05),rgba(201,123,110,0.06));
  border:1px solid var(--line);border-radius:var(--radius);
  position:relative;overflow:hidden;
}
.ai-summary::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(var(--gold),var(--navy-3));}
.ai-summary .orb{
  width:30px;height:30px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--navy-3),var(--navy));color:var(--gold-soft);
}
.ai-summary .orb svg{width:17px;height:17px;}
.ai-summary .ai-brief{flex:1;min-width:0;}
.ai-summary .ai-brief p{margin:0;font-size:.92rem;color:var(--ink);line-height:1.5;}
.ai-summary .ai-brief p b,.ai-summary .ai-brief strong{color:var(--navy-ink);font-weight:600;}
.ai-summary .ai-brief em{font-style:italic;}
.ai-summary .ai-brief ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
.ai-summary .ai-brief ul li{position:relative;padding-left:16px;font-size:.92rem;color:var(--ink);line-height:1.45;}
.ai-summary .ai-brief ul li::before{content:'';position:absolute;left:2px;top:.5em;width:5px;height:5px;border-radius:50%;background:var(--gold);}
.ai-summary .ai-brief ol{margin:8px 0 0;padding-left:18px;}
.ai-summary .tag{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);font-weight:700;display:block;margin-bottom:4px;}

/* morning brief: lane toggle + your own focus */
.ai-brief-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.ai-brief-head .tag{margin-bottom:0;}
.lane-seg{margin-left:auto;display:inline-flex;gap:2px;padding:2px;background:var(--wash-2);border:1px solid var(--line);border-radius:9px;}
.lane-btn{font-size:.72rem;font-weight:600;color:var(--slate);padding:3px 11px;border-radius:7px;line-height:1.5;transition:.12s var(--ease);}
.lane-btn:hover{color:var(--navy);}
.lane-btn.on{background:var(--paper);color:var(--navy-ink);box-shadow:var(--shadow-sm);}
.ai-brief-body{margin-top:2px;}
.brief-src{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--slate-2);margin-top:9px;line-height:1.35;}
.brief-src svg{width:13px;height:13px;flex:0 0 auto;opacity:.8;}
.brief-lane{margin-top:8px;}
.brief-lane:first-child{margin-top:2px;}
.brief-lane-tag{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border-radius:6px;margin-bottom:4px;}
.brief-lane-tag.clinical{color:var(--navy);background:rgba(30,95,116,0.10);}
.brief-lane-tag.dhsc{color:#5660a6;background:rgba(157,167,208,0.20);}
.focus-block{margin-top:13px;padding-top:12px;border-top:1px dashed var(--line);}
.focus-head{display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;}
.focus-head svg{width:13px;height:13px;color:var(--gold-2);}
.focus-list{display:flex;flex-direction:column;gap:5px;}
.focus-item{display:flex;align-items:center;gap:9px;padding:6px 8px;background:var(--paper);border:1px solid var(--line);border-radius:9px;}
.focus-check{width:18px;height:18px;flex:0 0 auto;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;color:#fff;background:var(--paper);}
.focus-check svg{width:12px;height:12px;}
.focus-item.done .focus-check{background:var(--good);border-color:var(--good);}
.focus-item.done .focus-text{color:var(--slate-2);text-decoration:line-through;}
.focus-text{flex:1;min-width:0;font-size:.86rem;color:var(--ink);line-height:1.35;}
.focus-lane{flex:0 0 auto;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:5px;}
.focus-lane.clinical{color:var(--navy);background:rgba(30,95,116,0.10);}
.focus-lane.dhsc{color:#5660a6;background:rgba(157,167,208,0.20);}
.focus-del{flex:0 0 auto;width:20px;height:20px;display:grid;place-items:center;color:var(--slate-2);border-radius:6px;}
.focus-del svg{width:13px;height:13px;}
.focus-del:hover{color:var(--bad);background:var(--bad-bg);}
.focus-empty{font-size:.82rem;color:var(--slate-2);padding:4px 2px;}
.focus-add{display:flex;gap:7px;margin-top:7px;}
.focus-add input{flex:1;min-width:0;font-family:inherit;font-size:.85rem;color:var(--ink);padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);}
.focus-add input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,123,110,0.12);}
.focus-add button{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;color:#fff;background:var(--navy);border-radius:9px;}
.focus-add button svg{width:15px;height:15px;}
.focus-add button:hover{background:var(--navy-2);}
.focus-port{font-size:.72rem;color:var(--slate-2);line-height:1.4;margin-top:9px;}

/* "how the numbers go live" explainer */
.golive{margin:0 0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden;}
.golive>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:11px 15px;font-size:.86rem;font-weight:600;color:var(--navy-ink);}
.golive>summary::-webkit-details-marker{display:none;}
.golive>summary svg{width:15px;height:15px;color:var(--gold-2);}
.golive-hint{margin-left:auto;font-size:.72rem;font-weight:500;color:var(--slate-2);}
.golive[open]>summary{border-bottom:1px solid var(--line);}
.golive-body{padding:13px 15px 15px;}
.golive-body p{margin:0 0 8px;font-size:.86rem;color:var(--slate);line-height:1.5;}
.golive-body ol{margin:0 0 8px;padding-left:20px;display:flex;flex-direction:column;gap:5px;}
.golive-body ol li{font-size:.86rem;color:var(--ink);line-height:1.4;}
.golive-body ol li b{color:var(--navy);}
.golive-foot{font-weight:600;color:var(--navy-ink)!important;}
.golive-cta{color:var(--teal);text-decoration:underline;font-weight:600;}
.golive-cta:hover{color:var(--coral);}

/* section heads */
.row-head{display:flex;align-items:center;gap:10px;margin:28px 2px 13px;}
.row-head h2{font-size:1.02rem;font-weight:700;color:var(--navy-ink);}
.row-head .count{font-size:.72rem;font-weight:600;color:var(--slate);background:var(--wash-2);padding:2px 9px;border-radius:999px;}
.row-head .more{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--gold-2);display:inline-flex;align-items:center;gap:4px;}
.row-head .more:hover{color:var(--navy);}

/* provenance chip: where a piece of content is pulled from */
.src-chip{display:inline-flex;align-items:center;gap:5px;font-size:.66rem;font-weight:600;
  color:var(--navy-3);background:var(--wash);border:1px solid var(--line);
  padding:2px 8px 2px 7px;border-radius:999px;white-space:nowrap;cursor:help;}
.src-chip svg{width:12px;height:12px;opacity:.85;}
.row-head .src-chip{margin-left:2px;}

/* today's calendar strip */
.today-strip{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin;}
.appt{flex:0 0 auto;min-width:172px;display:flex;gap:10px;align-items:flex-start;
  background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--slate-2);
  border-radius:var(--radius-sm);padding:11px 13px;box-shadow:var(--shadow-sm);cursor:default;transition:.15s var(--ease);}
.appt:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
.appt-review{border-left-color:var(--navy-3);}
.appt-rehab{border-left-color:var(--teal);}
.appt-assess{border-left-color:var(--gold);}
.appt-triage{border-left-color:var(--violet);}
.appt-time{font-size:.82rem;font-weight:700;color:var(--navy-ink);}
.appt-pt{font-size:.8rem;font-weight:600;color:var(--ink);line-height:1.2;}
.appt-type{font-size:.69rem;color:var(--slate);margin-top:2px;line-height:1.25;}

/* ============================================================
   KPI tiles
   ============================================================ */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.kpi{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;
  transition:.18s var(--ease);cursor:pointer;
}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:rgba(201,123,110,0.5);}
.kpi .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}
.kpi .label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);}
.kpi .dot{width:8px;height:8px;border-radius:50%;}
.kpi.gold .dot{background:var(--gold);}.kpi.teal .dot{background:var(--teal);}
.kpi.navy .dot{background:var(--navy-3);}.kpi.violet .dot{background:var(--violet);}
.kpi .headline{font-size:1.7rem;font-weight:800;color:var(--navy-ink);line-height:1;}
.kpi .sub{font-size:.76rem;color:var(--slate);margin-top:3px;}
.kpi .delta{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:700;margin-top:9px;padding:2px 7px;border-radius:6px;}
.kpi .delta.up{color:var(--good);background:var(--good-bg);}
.kpi .delta.down{color:var(--warn);background:var(--warn-bg);}
.kpi .delta .dl{color:var(--slate);font-weight:500;margin-left:3px;}
.kpi .viz{height:34px;margin-top:12px;}
.kpi .foot{font-size:.68rem;color:var(--slate-2);margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2);}
.kpi-src{margin-top:9px;}
.kpi-src .src-chip{font-size:.62rem;padding:2px 7px 2px 6px;}
.kpi .ring-wrap{display:flex;align-items:center;gap:12px;margin-top:6px;}
.kpi .ring-wrap .headline{font-size:1.45rem;}

/* ============================================================
   Pipeline funnel
   ============================================================ */
.pipeline{display:flex;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);overflow-x:auto;}
.stage{
  flex:1;min-width:108px;border-radius:11px;padding:13px 13px 12px;
  background:var(--wash);border:1px solid transparent;position:relative;
  transition:.16s var(--ease);cursor:pointer;
}
.stage:hover{background:#fff;border-color:var(--gold);box-shadow:var(--shadow-sm);transform:translateY(-2px);}
.stage.book{background:rgba(23,77,96,0.05);}
.stage .st-name{font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--slate);display:flex;align-items:center;gap:5px;}
.stage .st-count{font-family:var(--display);font-size:1.5rem;font-weight:800;color:var(--navy-ink);margin-top:5px;line-height:1;}
.stage .st-val{font-size:.7rem;color:var(--gold-2);font-weight:700;margin-top:4px;}
.stage .st-bar{height:3px;border-radius:3px;margin-top:9px;background:linear-gradient(90deg,var(--gold),var(--gold-2));opacity:.7;}
.stage.book .st-bar{background:linear-gradient(90deg,var(--navy-3),var(--navy));}
.stage .flag{position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--bad);}
.stage .arrow{position:absolute;right:-13px;top:50%;transform:translateY(-50%);color:var(--line);z-index:1;}
.stage:last-child .arrow{display:none;}

/* ============================================================
   Action list + client groups (two-col)
   ============================================================ */
.split{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;align-items:start;}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;}
.panel-head{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line-2);}
.panel-head > svg{color:var(--gold-2);}
.panel-head h3{font-size:.92rem;font-weight:700;}
.panel-head .count{font-size:.7rem;font-weight:600;color:var(--slate);background:var(--wash-2);padding:2px 8px;border-radius:999px;}
.panel-head .more{margin-left:auto;font-size:.76rem;font-weight:600;color:var(--gold-2);}

.action{
  display:flex;align-items:center;gap:13px;padding:13px 16px;
  border-bottom:1px solid var(--line-2);transition:background .14s;
}
.action:last-child{border-bottom:0;}
.action:hover{background:var(--wash);}
.action .ai-ico{
  width:36px;height:36px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;
}
.action .ai-ico svg{width:18px;height:18px;}
.action.red .ai-ico{color:var(--bad);background:var(--bad-bg);}
.action.amber .ai-ico{color:var(--warn);background:var(--warn-bg);}
.action.green .ai-ico{color:var(--good);background:var(--good-bg);}
.action.blue .ai-ico{color:var(--info);background:var(--info-bg);}
.action .body{min-width:0;flex:1;display:flex;flex-direction:column;}
.action .body .t{font-size:.86rem;font-weight:600;color:var(--navy-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.action .body .m{font-size:.76rem;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.action .go{
  flex:0 0 auto;font-size:.76rem;font-weight:600;color:var(--navy);
  padding:7px 12px;border-radius:9px;border:1px solid var(--line);background:var(--paper);
  transition:.14s;white-space:nowrap;
}
.action .go:hover{border-color:var(--gold);color:var(--gold-2);box-shadow:var(--shadow-sm);}

.cg{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line-2);transition:background .14s;}
.cg:last-child{border-bottom:0;}
.cg:hover{background:var(--wash);}
.cg .av{width:34px;height:34px;flex:0 0 auto;}
.cg .body{min-width:130px;flex:1;display:flex;flex-direction:column;}
.cg .body .t{font-size:.84rem;font-weight:600;color:var(--navy-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cg .body .m{font-size:.72rem;color:var(--slate);}
.cg .pills{display:flex;gap:4px;flex:0 0 auto;}
.pill{font-size:.62rem;font-weight:600;letter-spacing:.02em;padding:2px 7px;border-radius:6px;background:var(--wash-2);color:var(--navy-3);white-space:nowrap;}

/* ============================================================
   AI rail
   ============================================================ */
.rail{
  background:linear-gradient(190deg,var(--navy) 0%,var(--navy-deep) 100%);
  color:#E9EEF6;display:flex;flex-direction:column;overflow:hidden;
  border-left:1px solid rgba(0,0,0,0.2);
}
.rail.hidden{display:none;}
.rail-top{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,0.08);}
.rail-top .orb{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:var(--navy-ink);}
.rail-top .orb svg{width:17px;height:17px;}
.rail-top h3{font-size:.95rem;color:#fff;font-weight:700;}
.rail-top .sub{font-size:.66rem;color:var(--gold-soft);letter-spacing:.04em;}
.rail-top .x{margin-left:auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:rgba(233,238,246,0.6);}
.rail-top .x:hover{background:rgba(255,255,255,0.08);color:#fff;}
.rail-body{flex:1;overflow-y:auto;padding:16px 18px;}
.rail-body::-webkit-scrollbar{width:0;}
.ai-msg{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:13px;padding:14px;font-size:.86rem;line-height:1.55;color:rgba(233,238,246,0.92);}
.ai-msg b{color:#fff;}
/* Rich-text rendering shared by the morning brief and AI chat replies */
.ai-msg p,.ai-chat-msg.ai p{margin:0 0 8px;}
.ai-msg p:last-child,.ai-chat-msg.ai p:last-child{margin-bottom:0;}
.ai-msg strong,.ai-chat-msg.ai strong{color:#fff;font-weight:600;}
.ai-msg em,.ai-chat-msg.ai em{font-style:italic;}
.ai-msg code,.ai-chat-msg.ai code{font-family:var(--mono);font-size:.9em;background:rgba(255,255,255,0.10);padding:1px 5px;border-radius:5px;}
.ai-msg ul,.ai-chat-msg.ai ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px;}
.ai-msg ul:last-child,.ai-chat-msg.ai ul:last-child{margin-bottom:0;}
.ai-msg ul li,.ai-chat-msg.ai ul li{position:relative;padding-left:17px;}
.ai-msg ul li::before,.ai-chat-msg.ai ul li::before{content:'';position:absolute;left:3px;top:.5em;width:5px;height:5px;border-radius:50%;background:var(--gold);}
.ai-msg ol,.ai-chat-msg.ai ol{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:7px;}
.ai-msg ol:last-child,.ai-chat-msg.ai ol:last-child{margin-bottom:0;}
.rail-label{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(233,238,246,0.45);font-weight:600;margin:20px 0 9px;}
.sugg{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:11px 13px;border-radius:11px;margin-bottom:8px;
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);
  color:rgba(233,238,246,0.9);font-size:.82rem;font-weight:500;transition:.14s var(--ease);
}
.sugg:hover{background:rgba(201,123,110,0.14);border-color:rgba(201,123,110,0.35);color:#fff;transform:translateX(2px);}
.sugg .si{width:30px;height:30px;border-radius:8px;flex:0 0 auto;display:grid;place-items:center;background:rgba(255,255,255,0.07);color:var(--gold-soft);}
.sugg .si svg{width:16px;height:16px;}
.sugg .arr{margin-left:auto;opacity:.4;}
.guardrail{display:flex;gap:9px;align-items:flex-start;margin-top:18px;padding:12px 13px;border-radius:11px;background:rgba(127,183,166,0.1);border:1px solid rgba(127,183,166,0.22);font-size:.74rem;line-height:1.45;color:rgba(233,238,246,0.8);}
.guardrail svg{width:16px;height:16px;flex:0 0 auto;color:var(--teal);margin-top:1px;}
.rail-attribution{margin-top:10px;font-size:.68rem;line-height:1.45;color:rgba(233,238,246,0.45);text-align:center;padding:0 4px;}
/* AI chat thread */
.ai-thread{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.ai-thread:empty{display:none;}
.ai-chat-msg{font-size:.84rem;line-height:1.55;border-radius:12px;padding:11px 13px;max-width:92%;}
.ai-chat-msg.user{background:rgba(232,137,94,0.18);border:1px solid rgba(232,137,94,0.22);color:rgba(233,238,246,0.9);align-self:flex-end;}
.ai-chat-msg.ai{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);color:rgba(233,238,246,0.92);align-self:flex-start;}
.ai-thinking{display:inline-flex;gap:5px;align-items:center;height:18px;}
.ai-thinking span{width:6px;height:6px;border-radius:50%;background:var(--gold-soft);animation:ai-pulse 1.2s ease-in-out infinite;}
.ai-thinking span:nth-child(2){animation-delay:.2s;}
.ai-thinking span:nth-child(3){animation-delay:.4s;}
@keyframes ai-pulse{0%,80%,100%{opacity:.3;transform:scale(.8);}40%{opacity:1;transform:scale(1);}}
.rail-input{padding:14px 18px;border-top:1px solid rgba(255,255,255,0.08);}
.rail-input .box{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:10px 13px;}
.rail-input input{flex:1;background:none;border:0;color:#fff;font-family:inherit;font-size:.84rem;outline:none;}
.rail-input input::placeholder{color:rgba(233,238,246,0.45);}
.rail-input .send{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:var(--navy-ink);flex:0 0 auto;}

/* toast */
.toast{
  position:fixed;bottom:22px;left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--navy-ink);color:#fff;padding:12px 18px;border-radius:12px;
  font-size:.84rem;font-weight:500;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:10px;z-index:200;opacity:0;pointer-events:none;
  transition:.28s var(--ease);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.actionable{pointer-events:auto;}
.toast .ti{width:18px;height:18px;color:var(--gold-soft);}
.toast .t-act{margin-left:5px;font-size:.8rem;font-weight:700;color:var(--gold-soft);
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);
  padding:5px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.15s var(--ease);}
.toast .t-act:hover{background:rgba(255,255,255,.20);color:#fff;}

/* phase banner for soon modules */
.soon-view{display:grid;place-items:center;height:100%;text-align:center;padding:40px;}
.soon-view .card{max-width:440px;}
.soon-view .badge{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-2);background:rgba(201,123,110,0.14);padding:6px 13px;border-radius:999px;margin-bottom:18px;}
.soon-view h2{font-size:1.7rem;margin-bottom:10px;}
.soon-view p{color:var(--slate);font-size:.95rem;line-height:1.55;margin:0 auto;max-width:38ch;}
.soon-view .mod-ico{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 auto 20px;background:linear-gradient(150deg,var(--wash-2),var(--paper));border:1px solid var(--line);color:var(--navy-3);box-shadow:var(--shadow-sm);}
.soon-view .mod-ico svg{width:30px;height:30px;}

/* ============================================================
   Workflow Builder
   ============================================================ */
.wf-wrap{display:flex;flex-direction:column;height:100%;}
.wf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:4px;}
.wf-head h1{font-size:1.5rem;font-weight:700;}
.wf-head .sub{font-size:.82rem;color:var(--slate);margin-top:3px;}

.wf-toolbar{display:flex;align-items:center;gap:10px;margin:16px 0 6px;flex-wrap:wrap;}
.wf-select{position:relative;}
.wf-select select{
  appearance:none;font-family:var(--display);font-weight:700;font-size:.95rem;color:var(--navy-ink);
  background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:10px 38px 10px 14px;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:.15s var(--ease);
}
.wf-select select:hover{border-color:var(--gold);}
.wf-select .cv{position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--slate);width:15px;height:15px;}
.wf-btn{
  display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:10px;font-weight:600;font-size:.82rem;
  color:var(--navy);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:.15s var(--ease);
}
.wf-btn:hover{border-color:var(--gold);color:var(--gold-2);transform:translateY(-1px);}
.wf-btn .ico{width:16px;height:16px;}
.wf-btn.ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--slate);}
.wf-btn.ghost:hover{background:var(--wash-2);color:var(--navy);}
.wf-btn.icon{padding:9px;}
.wf-btn.danger{color:var(--bad);border-color:var(--bad);background:var(--bad-bg);}
.wf-btn.danger:hover{color:var(--bad);border-color:var(--bad);transform:none;}
.wf-rename-in{font-family:var(--display);font-weight:700;font-size:.95rem;color:var(--navy-ink);background:var(--paper);border:1px solid var(--gold);border-radius:11px;padding:10px 14px;outline:none;box-shadow:var(--shadow-sm);min-width:260px;}
.wf-spacer{flex:1;}
.wf-toggle{display:inline-flex;align-items:center;gap:9px;font-size:.82rem;font-weight:600;color:var(--slate);user-select:none;cursor:pointer;}
.wf-switch{width:38px;height:22px;border-radius:999px;background:var(--wash-2);border:1px solid var(--line);position:relative;transition:.18s var(--ease);flex:0 0 auto;}
.wf-switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:.18s var(--ease);}
.wf-toggle.on .wf-switch{background:var(--gold);border-color:var(--gold-2);}
.wf-toggle.on .wf-switch::after{left:18px;}
.wf-toggle.on{color:var(--navy-ink);}

.wf-canvas{
  flex:1;overflow:auto;margin-top:12px;border:1px solid var(--line);border-radius:var(--radius);
  background:
    radial-gradient(circle at 18px 18px, rgba(30,95,116,0.06) 1.4px, transparent 1.6px) 0 0/26px 26px,
    var(--paper);
  box-shadow:var(--shadow-sm) inset;padding:34px 30px 60px;
}
.wf-canvas::-webkit-scrollbar{height:11px;width:11px;}
.wf-canvas::-webkit-scrollbar-thumb{background:rgba(30,95,116,0.18);border-radius:8px;border:3px solid var(--paper);}

.wf-spine-row{display:flex;align-items:flex-start;gap:0;min-width:min-content;}
.wf-col{display:flex;flex-direction:column;align-items:center;}
.wf-connector{flex:0 0 auto;display:flex;align-items:center;color:var(--slate-2);margin-top:26px;padding:0 4px;}
.wf-connector svg{width:26px;height:26px;}
.wf-connector .line{width:22px;height:2px;background:repeating-linear-gradient(90deg,var(--slate-2) 0 4px,transparent 4px 8px);opacity:.5;}

.wf-card{
  width:184px;background:var(--paper);border:1px solid var(--line);border-radius:13px;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:.16s var(--ease);position:relative;overflow:hidden;
}
.wf-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:rgba(201,123,110,0.6);}
.wf-card .bar{height:4px;background:var(--slate-2);}
.wf-card.st-done .bar{background:var(--good);}
.wf-card.st-active .bar{background:var(--gold);}
.wf-card.st-review .bar{background:var(--info);}
.wf-card .ch{display:flex;align-items:center;gap:8px;padding:11px 12px 7px;}
.wf-card .code{
  font-family:var(--display);font-weight:800;font-size:.72rem;color:#fff;background:var(--navy);
  width:24px;height:24px;border-radius:7px;display:grid;place-items:center;flex:0 0 auto;letter-spacing:0;
}
.wf-card .ct{font-size:.86rem;font-weight:700;color:var(--navy-ink);line-height:1.2;flex:1;}
.wf-card .sdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--slate-2);}
.wf-card.st-done .sdot{background:var(--good);}.wf-card.st-active .sdot{background:var(--gold);}.wf-card.st-review .sdot{background:var(--info);}
.wf-card .cmeta{display:flex;align-items:center;gap:8px;padding:0 12px 11px;flex-wrap:wrap;}
.wf-card .idchip{font-family:var(--mono);font-size:.64rem;font-weight:600;color:var(--navy-3);background:var(--wash-2);padding:2px 7px;border-radius:6px;}
.wf-card .mi{display:inline-flex;align-items:center;gap:3px;font-size:.66rem;color:var(--slate);font-weight:600;}
.wf-card .mi svg{width:13px;height:13px;}
.wf-card .mi.linked{color:var(--gold-2);}

/* add-step / add-branch ghost cards */
.wf-add{
  width:184px;border:1.6px dashed rgba(30,95,116,0.28);border-radius:13px;background:rgba(255,255,255,0.4);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  color:var(--slate);font-weight:600;font-size:.8rem;padding:18px 12px;cursor:pointer;transition:.16s var(--ease);min-height:64px;
}
.wf-add:hover{border-color:var(--gold);color:var(--gold-2);background:rgba(201,123,110,0.07);}
.wf-add svg{width:20px;height:20px;}
.wf-add.mini{width:auto;min-height:0;padding:7px 12px;font-size:.72rem;flex-direction:row;border-radius:9px;}

/* branches (tree under a card) */
.wf-branches{position:relative;margin-top:0;padding-top:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;width:100%;}
.wf-branches::before{content:'';position:absolute;top:0;left:23px;width:2px;height:14px;background:var(--line);}
.wf-branch-node{position:relative;padding-left:26px;width:100%;}
.wf-branch-node::before{content:'';position:absolute;left:23px;top:-10px;width:2px;height:34px;background:var(--line);}
.wf-branch-node::after{content:'';position:absolute;left:23px;top:24px;width:14px;height:2px;background:var(--line);}
.wf-branch-node:last-child::before{height:34px;}
.wf-branch{width:172px;}
.wf-branch .ch{padding:9px 11px 6px;}
.wf-branch .code{width:21px;height:21px;font-size:.66rem;background:var(--navy-3);}
.wf-branch .ct{font-size:.8rem;}
.wf-branch-children{margin-top:10px;display:flex;flex-direction:column;gap:10px;}

.wf-col > .wf-branches{align-self:stretch;}

/* edit affordances hidden unless .editing */
.wf-canvas:not(.editing) .wf-add{display:none;}
.wf-canvas:not(.editing) .wf-edit-only{display:none;}

/* ============================================================
   Modal (shared)
   ============================================================ */
.wf-overlay{
  position:fixed;inset:0;background:rgba(10,35,48,0.5);backdrop-filter:blur(3px);
  z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:.2s var(--ease);
}
.wf-overlay.show{opacity:1;pointer-events:auto;}
.wf-modal{
  width:min(620px,100%);max-height:90vh;background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(.98);transition:.2s var(--ease);
}
.wf-overlay.show .wf-modal{transform:none;}
.wf-modal .mtop{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);}
.wf-modal .mcode{font-family:var(--display);font-weight:800;font-size:.92rem;color:#fff;background:var(--navy);width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;}
.wf-modal .mtitle-in{flex:1;font-family:var(--display);font-weight:700;font-size:1.2rem;color:var(--navy-ink);border:0;background:transparent;outline:none;border-bottom:2px solid transparent;padding:2px 0;}
.wf-modal .mtitle-in:focus{border-bottom-color:var(--gold);}
.wf-modal .midchip{font-family:var(--mono);font-size:.7rem;font-weight:600;color:var(--navy-3);background:var(--wash-2);padding:4px 9px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.wf-modal .midchip:hover{background:var(--gold-soft);color:var(--navy-ink);}
.wf-modal .midchip svg{width:13px;height:13px;}
.wf-modal .mx{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--slate);}
.wf-modal .mx:hover{background:var(--wash-2);color:var(--navy);}
.wf-modal .mbody{padding:18px 20px;overflow-y:auto;}
.wf-field{margin-bottom:18px;}
.wf-field > label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;}
.wf-status-seg{display:flex;gap:6px;}
.wf-status-seg button{flex:1;padding:8px;border-radius:9px;border:1px solid var(--line);background:var(--paper);font-size:.78rem;font-weight:600;color:var(--slate);transition:.14s;}
.wf-status-seg button.on{color:#fff;border-color:transparent;}
.wf-status-seg button[data-s="done"].on{background:var(--good);}
.wf-status-seg button[data-s="active"].on{background:var(--gold-2);}
.wf-status-seg button[data-s="review"].on{background:var(--info);}
.wf-status-seg button[data-s=""].on{background:var(--slate);}
.wf-sop{width:100%;min-height:120px;resize:vertical;font-family:var(--body);font-size:.9rem;line-height:1.55;color:var(--ink);background:var(--wash);border:1px solid var(--line);border-radius:11px;padding:12px 13px;outline:none;transition:.14s;}
.wf-sop:focus{border-color:var(--gold);background:var(--paper);}
.wf-list{display:flex;flex-direction:column;gap:7px;}
.wf-chiprow{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--wash);border:1px solid var(--line);border-radius:10px;font-size:.84rem;}
.wf-chiprow svg{width:16px;height:16px;color:var(--slate);flex:0 0 auto;}
.wf-chiprow .nm{flex:1;color:var(--navy-ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-chiprow.link{cursor:pointer;}
.wf-chiprow.link:hover{border-color:var(--gold);background:var(--paper);}
.wf-chiprow.link svg{color:var(--gold-2);}
.wf-chiprow .rm{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--slate-2);flex:0 0 auto;}
.wf-chiprow .rm:hover{background:var(--bad-bg);color:var(--bad);}
.wf-addrow{display:flex;gap:8px;margin-top:8px;}
.wf-addrow input,.wf-addrow select{flex:1;font-family:var(--body);font-size:.82rem;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);outline:none;color:var(--ink);}
.wf-addrow input:focus,.wf-addrow select:focus{border-color:var(--gold);}
.wf-addrow button{padding:8px 13px;border-radius:9px;background:var(--navy);color:#fff;font-weight:600;font-size:.8rem;}
.wf-addrow button:hover{background:var(--navy-3);}
.wf-empty{font-size:.8rem;color:var(--slate-2);font-style:italic;padding:4px 2px;}
.wf-modal .mfoot{display:flex;align-items:center;gap:10px;padding:15px 20px;border-top:1px solid var(--line);background:var(--wash);}
.wf-modal .mfoot .del{color:var(--bad);font-weight:600;font-size:.82rem;display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border-radius:9px;}
.wf-modal .mfoot .del:hover{background:var(--bad-bg);}
.wf-modal .mfoot .del svg{width:15px;height:15px;}
.wf-modal .mfoot .save{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border-radius:10px;font-weight:600;font-size:.86rem;color:var(--navy-ink);background:linear-gradient(145deg,var(--gold-soft),var(--gold));box-shadow:0 4px 14px rgba(201,123,110,0.35);}
.wf-modal .mfoot .save:hover{transform:translateY(-1px);}
.wf-modal .mfoot .saved{margin-left:auto;color:var(--good);font-weight:600;font-size:.86rem;display:inline-flex;align-items:center;gap:6px;}

/* ============================================================
   Control Centre — radial landing
   ============================================================ */
.cc{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center;position:relative;}
.cc-head{margin-bottom:clamp(6px,2vh,18px);}
.cc-head .eyebrow2{display:inline-flex;align-items:center;gap:7px;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2);background:rgba(201,123,110,0.13);padding:5px 13px;border-radius:999px;margin-bottom:12px;}
.cc-head h1{font-size:clamp(1.4rem,3vw,1.95rem);font-weight:700;}
.cc-head .sub{color:var(--slate);font-size:.9rem;margin-top:5px;}

.cc-stage{position:relative;flex:0 0 auto;}
.cc-spokes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0;}
.cc-spokes line{stroke:var(--line);stroke-width:1.5;stroke-linecap:round;transition:stroke .22s var(--ease),stroke-width .22s var(--ease);}
.cc-spokes line.hot{stroke:var(--gold-2);stroke-width:2.6;}
.cc-spokes .pulse-dot{fill:var(--gold);opacity:0;}
.cc-spokes line.hot ~ .pulse-dot{opacity:1;}

/* core */
.cc-core{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:radial-gradient(circle at 50% 35%,var(--navy-3),var(--navy) 60%,var(--navy-ink));
  color:#fff;cursor:pointer;z-index:3;
  box-shadow:0 18px 50px rgba(14,45,60,0.4), 0 0 0 1px rgba(255,255,255,0.06) inset;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.cc-core::before{content:'';position:absolute;inset:-10px;border-radius:50%;border:1.5px solid rgba(201,123,110,0.35);animation:ccRing 3.4s ease-in-out infinite;}
.cc-core::after{content:'';position:absolute;inset:-22px;border-radius:50%;border:1px solid rgba(201,123,110,0.16);animation:ccRing 3.4s ease-in-out infinite .4s;}
@keyframes ccRing{0%,100%{transform:scale(1);opacity:.7;}50%{transform:scale(1.04);opacity:.3;}}
.cc-core:hover{transform:translate(-50%,-50%) scale(1.03);box-shadow:0 26px 64px rgba(14,45,60,0.5),0 0 40px rgba(201,123,110,0.25);}
.cc-core .cmark{width:34%;height:34%;color:var(--gold-soft);display:grid;place-items:center;}
.cc-core .cmark svg{width:100%;height:100%;}
.cc-core .cname{font-family:var(--display);font-weight:800;font-size:clamp(.95rem,2vw,1.2rem);letter-spacing:-0.02em;line-height:1;}
.cc-core .csub{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);}
.cc-core .copen{font-size:.6rem;color:rgba(255,255,255,0.6);margin-top:2px;display:inline-flex;align-items:center;gap:3px;}

/* area node */
.cc-node{
  position:absolute;transform:translate(-50%,-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;width:124px;
  opacity:0;animation:ccPop .5s var(--ease) forwards;
}
@keyframes ccPop{from{opacity:0;transform:translate(-50%,-50%) scale(.7);}to{opacity:1;transform:translate(-50%,-50%) scale(1);}}
.cc-disc{
  width:64px;height:64px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;position:relative;
  background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);
}
.cc-disc svg{width:26px;height:26px;}
.cc-node.t-gold   .cc-disc{color:var(--gold-2);}
.cc-node.t-teal   .cc-disc{color:#4a7d5a;}
.cc-node.t-navy   .cc-disc{color:var(--navy-3);}
.cc-node.t-violet .cc-disc{color:#7d8eb8;}
.cc-node:hover .cc-disc{transform:translateY(-4px) scale(1.06);box-shadow:var(--shadow);border-color:var(--gold);}
.cc-node .cc-lab{font-family:var(--display);font-weight:700;font-size:.82rem;color:var(--navy-ink);line-height:1.15;}
.cc-node .cc-meta{font-size:.66rem;color:var(--slate);line-height:1.2;}
.cc-node .cc-pip{position:absolute;top:-3px;right:-3px;font-size:.5rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy-ink);background:var(--gold-soft);padding:2px 5px;border-radius:6px;box-shadow:var(--shadow-sm);}
.cc-node.live .cc-disc{border-color:rgba(31,138,85,0.4);}
.cc-node.live .cc-pip{background:var(--good);color:#fff;}

/* ============================================================
   Annotation layer (notes pinned to components)
   ============================================================ */
.wf-loading{padding:40px;color:var(--slate);font-size:.9rem;}

/* the hidden attribute must beat the display rules below */
.anno-panel[hidden], .anno-pop[hidden], .anno-count[hidden]{display:none !important;}

.anno-btn .anno-count{position:absolute;top:4px;right:5px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--gold);color:var(--navy-ink);font-size:.6rem;font-weight:800;display:grid;place-items:center;border:2px solid var(--paper);}

/* component highlight in annotate mode */
.wh-annotating [data-anno]{cursor:copy;}
.wh-annotating [data-anno]:hover{outline:2px dashed var(--gold-2);outline-offset:2px;border-radius:8px;}
.anno-host{position:relative;overflow:visible !important;}
.anno-flash{animation:annoFlash 1.3s var(--ease);}
@keyframes annoFlash{0%,100%{box-shadow:0 0 0 0 rgba(201,123,110,0);}30%{box-shadow:0 0 0 4px rgba(201,123,110,.55);}}

.anno-pin{
  position:absolute;top:-9px;right:-9px;z-index:20;
  min-width:20px;height:20px;padding:0 5px;border-radius:11px;
  background:linear-gradient(145deg,var(--gold-soft),var(--gold));color:var(--navy-ink);
  font-size:.66rem;font-weight:800;font-family:var(--display);
  display:grid;place-items:center;box-shadow:0 3px 9px rgba(14,45,60,.3);border:2px solid var(--paper);
  transition:transform .14s var(--ease);
}
.anno-pin:hover{transform:scale(1.15);}
.anno-pin.done{background:var(--good);color:#fff;}
.cc-node .anno-pin{top:0;right:14px;}

/* avatars (initials) */
.anno-av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.64rem;font-weight:800;font-family:var(--display);color:#fff;flex:0 0 auto;background:var(--navy-3);}
.anno-av[data-u="Jay"]{background:var(--navy-3);}
.anno-av[data-u="Craig"]{background:var(--gold-2);}

/* popover */
.anno-pop{position:fixed;z-index:320;width:320px;max-height:70vh;display:flex;flex-direction:column;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;}
.anno-pop-head{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--line-2);background:var(--wash);}
.anno-pop-label{flex:1;display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--navy-ink);}
.anno-pop-label svg{width:15px;height:15px;color:var(--gold-2);}
.anno-x{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--slate);flex:0 0 auto;}
.anno-x:hover{background:var(--wash-2);color:var(--navy);}
.anno-x svg{width:15px;height:15px;}
.anno-notes{overflow-y:auto;padding:10px 13px;flex:1;}
.anno-note{padding:9px 0;border-bottom:1px solid var(--line-2);}
.anno-note:last-child{border-bottom:0;}
.anno-nmeta{display:flex;align-items:center;gap:7px;margin-bottom:5px;}
.anno-nmeta b{font-size:.78rem;color:var(--navy-ink);}
.anno-time{font-size:.68rem;color:var(--slate-2);}
.anno-badge{margin-left:auto;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:6px;}
.anno-badge.open{color:var(--warn);background:var(--warn-bg);}
.anno-badge.resolved{color:var(--good);background:var(--good-bg);}
.anno-deliv{font-size:.62rem;font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:center;}
.anno-deliv.ok{color:var(--good);}
.anno-deliv.bad{color:var(--warn);}
.anno-ntext{font-size:.84rem;color:var(--ink);line-height:1.45;}
.anno-note.resolved .anno-ntext{color:var(--slate);}
.anno-nact{display:flex;gap:7px;margin-top:7px;}
.anno-nact button{font-size:.7rem;font-weight:600;color:var(--navy);padding:5px 9px;border-radius:7px;border:1px solid var(--line);background:var(--paper);display:inline-flex;align-items:center;gap:4px;}
.anno-nact button svg{width:13px;height:13px;}
.anno-nact button:hover{border-color:var(--gold);color:var(--gold-2);}
.anno-nact .del{margin-left:auto;color:var(--bad);border-color:transparent;}
.anno-nact .del:hover{background:var(--bad-bg);border-color:transparent;}
.anno-empty{font-size:.8rem;color:var(--slate-2);font-style:italic;padding:6px 0;}
.anno-empty.pad{padding:18px 14px;}
.anno-addbox{display:flex;gap:7px;padding:11px 13px;border-top:1px solid var(--line-2);background:var(--wash);}
.anno-addbox textarea{flex:1;resize:none;font-family:var(--body);font-size:.82rem;line-height:1.4;border:1px solid var(--line);border-radius:9px;padding:8px 10px;outline:none;background:var(--paper);color:var(--ink);}
.anno-addbox textarea:focus{border-color:var(--gold);}
.anno-send{align-self:flex-end;display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;color:var(--navy-ink);background:linear-gradient(145deg,var(--gold-soft),var(--gold));padding:8px 12px;border-radius:9px;white-space:nowrap;}
.anno-send svg{width:14px;height:14px;}
.anno-send:disabled{opacity:.5;}

/* panel (drawer) */
.anno-panel{position:fixed;top:0;right:0;bottom:0;width:340px;z-index:310;display:flex;flex-direction:column;
  background:var(--paper);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);}
.anno-phead{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--line-2);}
.anno-ptitle{display:flex;align-items:center;gap:8px;font-size:1rem;color:var(--navy-ink);}
.anno-ptitle svg{width:18px;height:18px;color:var(--gold-2);}
.anno-pcount{font-size:.7rem;font-weight:700;color:var(--slate);background:var(--wash-2);padding:2px 8px;border-radius:999px;}
.anno-who{display:flex;align-items:center;gap:9px;padding:12px 16px;font-size:.78rem;color:var(--slate);border-bottom:1px solid var(--line-2);}
.anno-userseg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;}
.anno-userseg button{padding:5px 12px;font-size:.78rem;font-weight:600;color:var(--slate);background:var(--paper);}
.anno-userseg button.on{color:#fff;background:var(--navy);}
.anno-userseg button.on[data-user="Craig"]{background:var(--gold-2);color:var(--navy-ink);}
.anno-online{width:9px;height:9px;border-radius:50%;background:var(--slate-2);margin-left:auto;}
.anno-online.on{background:var(--good);box-shadow:0 0 0 3px rgba(31,138,85,.15);}
.anno-help{margin:12px 16px 0;border:1px solid var(--line);border-radius:11px;background:var(--wash);overflow:hidden;}
.anno-help summary{display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:.78rem;font-weight:700;color:var(--navy-ink);cursor:pointer;list-style:none;}
.anno-help summary::-webkit-details-marker{display:none;}
.anno-help summary svg:first-child{width:15px;height:15px;color:var(--navy-3);flex:0 0 auto;}
.anno-help summary span{flex:1;}
.anno-help summary svg:last-child{width:14px;height:14px;color:var(--slate-2);transition:transform .18s var(--ease);}
.anno-help[open] summary svg:last-child{transform:rotate(90deg);}
.anno-help-steps{margin:0;padding:2px 14px 8px 32px;display:flex;flex-direction:column;gap:6px;}
.anno-help-steps li{font-size:.76rem;color:var(--slate);line-height:1.4;}
.anno-help-steps li b{color:var(--navy-ink);}
.anno-help-tip{margin:0;padding:8px 14px 11px;font-size:.72rem;color:var(--slate-2);line-height:1.45;border-top:1px solid var(--line-2);}
.anno-add-cta{display:flex;align-items:center;gap:9px;margin:14px 16px 0;padding:11px 13px;border-radius:11px;font-weight:600;font-size:.84rem;
  color:var(--navy-ink);background:linear-gradient(145deg,var(--gold-soft),var(--gold));box-shadow:var(--shadow-sm);transition:.15s var(--ease);}
.anno-add-cta svg{width:17px;height:17px;}
.anno-add-cta:hover{transform:translateY(-1px);box-shadow:var(--shadow);}
.anno-add-cta.on{background:var(--navy);color:#fff;}
.anno-add-cta.on svg{color:var(--gold-soft);}
.anno-hint{margin:9px 16px 0;padding:8px 11px;font-size:.74rem;color:var(--slate);background:var(--wash);border:1px dashed var(--line);border-radius:9px;}
.anno-tabs{display:flex;gap:6px;padding:14px 16px 8px;}
.anno-tabs button{font-size:.78rem;font-weight:600;color:var(--slate);padding:6px 12px;border-radius:8px;}
.anno-tabs button.on{color:var(--navy-ink);background:var(--wash-2);}
.anno-list{flex:1;overflow-y:auto;padding:0 10px 16px;}
.anno-row{display:flex;gap:10px;padding:11px 8px;border-radius:10px;cursor:pointer;transition:background .14s;}
.anno-row:hover{background:var(--wash);}
.anno-rbody{min-width:0;flex:1;}
.anno-rlabel{font-size:.72rem;font-weight:700;color:var(--gold-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.anno-rnote{font-size:.82rem;color:var(--navy-ink);line-height:1.4;margin:2px 0;}
.anno-rmeta{font-size:.68rem;color:var(--slate-2);}
.anno-row.gen .anno-rlabel{color:var(--slate-2);font-style:italic;}

/* general-note quick composer in the panel */
.anno-gen{display:flex;gap:7px;padding:12px 16px 4px;}
.anno-gen textarea{flex:1;resize:none;font-family:var(--body);font-size:.8rem;line-height:1.4;border:1px solid var(--line);border-radius:9px;padding:8px 10px;outline:none;background:var(--paper);color:var(--ink);}
.anno-gen textarea:focus{border-color:var(--gold);}
.anno-gen-add{align-self:flex-end;display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;color:var(--navy);background:var(--wash-2);padding:8px 11px;border-radius:9px;white-space:nowrap;}
.anno-gen-add:hover{background:var(--gold-soft);color:var(--navy-ink);}
.anno-gen-add:disabled{opacity:.5;}
.anno-gen-add svg{width:13px;height:13px;}

@media (max-width:560px){.anno-panel{width:100%;} .anno-pop{width:calc(100vw - 24px);}}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1240px){
  .app.rail-open{grid-template-columns:var(--sidebar) minmax(0,1fr);}
  .rail{position:fixed;right:0;top:0;bottom:0;width:var(--rail);z-index:100;box-shadow:var(--shadow-lg);}
  .kpis{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:900px){
  :root{--sidebar:64px;}
  .brand-words,.nav-label,.nav-item span:not(.soon):not(.ico),.sb-user .who{display:none;}
  .nav-item .soon{display:none;}
  .nav-item{justify-content:center;}
  .split{grid-template-columns:1fr;}
  .kpis{grid-template-columns:repeat(2,1fr);}
  .cmd{display:none;}
}
@media (max-width:560px){
  .kpis{grid-template-columns:1fr;}
  .work{padding:18px;}
  .rail{width:100%;}
  /* Topbar: collapse action buttons to icons so they stop clipping off-screen */
  .topbar{gap:8px;padding:12px 16px;}
  .btn-primary span,.tb-mindful span,.btn-ai span{display:none;}
  .btn-primary,.btn-ai{padding:9px 11px;}
  .btn-primary .ico,.btn-ai .spark-ico{margin:0;}
}

/* ============================================================
   Brand mark image (replaces SVG pulse in sidebar + control core)
   ============================================================ */
.brand-mark .bm-img{width:22px;height:22px;object-fit:contain;display:block;}
.cmark-img{width:100%;height:100%;object-fit:contain;display:block;}

/* ============================================================
   Shared page header (used by caseload, outcomes, team)
   ============================================================ */
.page-head{padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--line);}
.page-head h1{margin:0 0 4px;font-size:1.55rem;font-weight:700;color:var(--ink);}
.page-sub{font-size:.8rem;color:var(--slate);margin:0;}

/* ============================================================
   Caseload & Pathways board
   ============================================================ */
.pb-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;margin:14px -26px 0;padding-left:26px;padding-right:26px;align-items:flex-start;min-height:240px;}
.pb-board::-webkit-scrollbar{height:6px;}
.pb-board::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px;}
.pb-col{flex:0 0 200px;display:flex;flex-direction:column;gap:8px;}
.pb-col.col-alert .pb-col-head{border-top:2px solid var(--bad);}
.pb-col-head{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--wash);border-radius:10px;position:relative;}
.pb-stage{font-size:.75rem;font-weight:600;color:var(--slate);flex:1;text-transform:uppercase;letter-spacing:.04em;}
.pb-count{font-size:.72rem;font-weight:700;color:var(--navy);background:var(--wash-2);padding:2px 7px;border-radius:6px;}
.pb-empty{font-size:.76rem;color:var(--slate-2);text-align:center;padding:16px 8px;font-style:italic;}
.pb-cards{display:flex;flex-direction:column;gap:6px;}

.pt-card{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;background:var(--paper);border-radius:11px;
  border:1px solid var(--line);cursor:pointer;transition:box-shadow .15s,border-color .15s;}
.pt-card:hover{box-shadow:var(--shadow-sm);border-color:var(--navy-3);}
.pt-card.selected{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft);}
.pt-card .avatar{flex:0 0 auto;width:30px;height:30px;font-size:.7rem;}
.pt-card .ico{width:14px;height:14px;color:var(--slate-2);flex:0 0 auto;margin-top:3px;}
.pt-body{flex:1;min-width:0;}
.pt-name{font-size:.8rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt-meta{font-size:.72rem;color:var(--slate);margin-top:1px;}
.pt-val{font-size:.72rem;color:var(--navy);font-weight:500;margin-top:3px;}
.pt-pills{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px;}
.pt-pills .pill{font-size:.6rem;padding:1px 5px;}
/* drag-and-drop between pathway stages */
.pt-card{cursor:grab;touch-action:pan-y;}
.pt-card.pt-dragging{position:fixed;z-index:2000;pointer-events:none;cursor:grabbing;
  opacity:.97;transform:rotate(1.2deg);border-color:var(--gold);
  box-shadow:0 14px 30px rgba(15,46,61,.28);}
.pb-col-over .pb-cards{outline:2px dashed var(--gold);outline-offset:3px;border-radius:10px;background:var(--gold-soft);min-height:46px;}
.pb-col-over .pb-empty{color:var(--gold-2);font-style:normal;}

.pt-detail{margin:0 -26px;padding:14px 26px;background:var(--wash);border-top:1px solid var(--line);}
.pt-detail.hidden{display:none;}
.detail-inner{background:var(--paper);border-radius:14px;border:1px solid var(--line);padding:16px 20px;}
.detail-row1{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
.detail-item{display:flex;flex-direction:column;gap:2px;}
.di-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-2);}
.di-val{font-size:.85rem;font-weight:600;color:var(--ink);}

/* board "how to move" hint */
.pb-hint{display:flex;align-items:center;gap:9px;margin-top:12px;padding:9px 13px;font-size:.78rem;color:var(--slate);
  background:var(--wash);border:1px dashed var(--line);border-radius:10px;}
.pb-hint svg{width:16px;height:16px;flex:0 0 auto;color:var(--navy-3);}
.pb-hint b{color:var(--navy-ink);font-weight:700;}

/* richer patient record */
.detail-id{display:flex;align-items:center;gap:11px;}
.detail-id .avatar{width:40px;height:40px;font-size:.86rem;}
.detail-id h3{margin:0 0 2px;font-size:1.05rem;}
.detail-stage{display:flex;align-items:center;gap:5px;font-size:.8rem;color:var(--slate);}
.detail-stage svg{width:14px;height:14px;}
.detail-actions{display:flex;align-items:center;gap:8px;}
.ghost-btn{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--navy);
  padding:7px 12px;border-radius:9px;border:1px solid var(--line);background:var(--paper);transition:.15s var(--ease);}
.ghost-btn:hover{border-color:var(--gold);color:var(--gold-2);box-shadow:var(--shadow-sm);}
.ghost-btn svg{width:14px;height:14px;}
.ghost-btn.sm{margin-left:auto;padding:4px 9px;font-size:.74rem;}
.detail-sec{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2);}
.ds-head{display:flex;align-items:center;gap:8px;margin-bottom:11px;}
.ds-head svg{width:15px;height:15px;color:var(--navy-3);}
.ds-head h4{font-size:.86rem;font-weight:700;color:var(--navy-ink);margin:0;}
.ps-empty{font-size:.8rem;color:var(--slate-2);font-style:italic;}
/* measures */
.pm-list{display:flex;flex-direction:column;gap:11px;}
.pm-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px;}
.pm-name{font-size:.82rem;font-weight:600;color:var(--ink);}
.pm-vals{font-size:.78rem;color:var(--slate);white-space:nowrap;}
.pm-vals b{color:var(--navy-ink);font-size:.86rem;}
.pm-arrow{display:inline-flex;}.pm-arrow svg{width:12px;height:12px;vertical-align:middle;color:var(--slate-2);}
.pm-target{color:var(--slate-2);font-size:.72rem;margin-left:4px;}
.pm-bar{height:7px;background:var(--wash-2);border-radius:99px;overflow:hidden;}
.pm-fill{height:100%;border-radius:99px;}
.pm-fill.good{background:var(--good);}
.pm-fill.warn{background:var(--warn);}
/* files */
.pf-list{display:flex;flex-direction:column;gap:7px;}
.pf-row{display:flex;align-items:center;gap:10px;padding:9px 11px;background:var(--wash);border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:.15s var(--ease);}
.pf-row:hover{border-color:var(--gold);background:var(--paper);box-shadow:var(--shadow-sm);}
.pf-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--paper);border:1px solid var(--line);color:var(--navy-3);flex:0 0 auto;}
.pf-ico svg{width:15px;height:15px;}
.pf-body{display:flex;flex-direction:column;flex:1;min-width:0;}
.pf-name{font-size:.82rem;font-weight:600;color:var(--ink);}
.pf-meta{font-size:.7rem;color:var(--slate-2);text-transform:capitalize;}
.pf-row>svg{width:15px;height:15px;color:var(--slate-2);flex:0 0 auto;}
/* progress notes */
.pn-list{display:flex;flex-direction:column;gap:9px;}
.pn-row{padding:9px 12px;background:var(--wash);border:1px solid var(--line-2);border-radius:9px;border-left:3px solid var(--navy-3);}
.pn-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px;}
.pn-meta b{font-size:.78rem;color:var(--navy-ink);}
.pn-meta span{font-size:.7rem;color:var(--slate-2);}
.pn-text{font-size:.82rem;color:var(--ink);line-height:1.45;}
.pn-add{display:flex;gap:8px;margin-top:10px;}
.pn-add input{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:.83rem;color:var(--ink);background:var(--paper);}
.pn-add input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,123,110,.12);}
.pn-add button{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:9px;font-weight:600;font-size:.82rem;
  color:#fff;background:var(--navy);transition:.15s var(--ease);white-space:nowrap;}
.pn-add button:hover{background:var(--navy-2);}
.pn-add button svg{width:14px;height:14px;}

/* status pill + grouped sections */
.pt-status{display:inline-block;vertical-align:middle;margin-left:8px;font-size:.6rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;padding:3px 9px;border-radius:99px;background:rgba(22,88,94,.10);color:var(--navy-ink);border:1px solid rgba(22,88,94,.18);}
.detail-sec.first{margin-top:10px;padding-top:0;border-top:none;}
/* measure history mini-trend */
.pm-spark{height:24px;margin-top:8px;}
/* appointments */
.pa-list{display:flex;flex-direction:column;gap:7px;}
.pa-row{display:flex;align-items:center;gap:11px;padding:9px 11px;background:var(--wash);border:1px solid var(--line);border-radius:9px;}
.pa-row.upcoming{border-left:3px solid var(--gold);}
.pa-row.done{opacity:.72;}
.pa-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--paper);border:1px solid var(--line);flex:0 0 auto;}
.pa-row.upcoming .pa-ico{color:var(--gold-2);}
.pa-row.done .pa-ico{color:var(--good);}
.pa-ico svg{width:15px;height:15px;}
.pa-when{display:flex;flex-direction:column;min-width:60px;flex:0 0 auto;}
.pa-when b{font-size:.8rem;color:var(--navy-ink);}
.pa-when span{font-size:.7rem;color:var(--slate-2);}
.pa-body{display:flex;flex-direction:column;flex:1;min-width:0;}
.pa-type{font-size:.82rem;font-weight:600;color:var(--ink);}
.pa-meta{font-size:.7rem;color:var(--slate-2);}
.pa-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:99px;flex:0 0 auto;white-space:nowrap;}
.pa-row.upcoming .pa-tag{background:var(--gold-soft);color:var(--gold-2);}
.pa-row.done .pa-tag{background:var(--wash-2);color:var(--slate-2);}
/* inline add-forms (measures / appointments / files) */
.add-form{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:11px;padding:11px;background:var(--wash);border:1px solid var(--line);border-radius:10px;}
.add-form[hidden]{display:none;}
.af-in{box-sizing:border-box;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:.8rem;color:var(--ink);background:var(--paper);min-width:0;}
.af-in:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,123,110,.12);}
.af-grow{flex:1 1 150px;}
.af-num{width:84px;flex:0 0 auto;}
.af-sel{flex:0 0 auto;cursor:pointer;}
.af-save{display:inline-flex;align-items:center;gap:5px;padding:8px 13px;border-radius:8px;font-weight:600;font-size:.8rem;color:#fff;background:var(--navy);white-space:nowrap;cursor:pointer;transition:.15s var(--ease);}
.af-save:hover{background:var(--navy-2);}
.af-save svg{width:14px;height:14px;}
.af-cancel{padding:8px 11px;border-radius:8px;font-weight:600;font-size:.8rem;color:var(--slate);background:transparent;border:1px solid var(--line);cursor:pointer;transition:.15s var(--ease);}
.af-cancel:hover{border-color:var(--slate-2);color:var(--ink);}
/* edit mode */
.detail-inner.editing{border-color:var(--gold);}
.edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:11px;}
.ef-field{display:flex;flex-direction:column;gap:4px;}
.ef-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-2);}
.ef-in{box-sizing:border-box;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:.82rem;color:var(--ink);background:var(--paper);}
select.ef-in{cursor:pointer;}
.ef-in:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,123,110,.12);}
.edit-hint{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:.74rem;color:var(--slate-2);}
.edit-hint svg{width:14px;height:14px;flex:0 0 auto;color:var(--navy-3);}

/* Referrals & MDT */
.rf-table-wrap{overflow-x:auto;border-radius:12px;}
.rf-table{min-width:680px;}
.rf-act{display:inline-flex;align-items:center;gap:3px;font-size:.76rem;font-weight:600;color:var(--navy);cursor:pointer;white-space:nowrap;}
.rf-act:hover{color:var(--gold-2);}
.rf-act svg{width:13px;height:13px;}
.rf-lane{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:99px;white-space:nowrap;}
.rf-lane.priv{background:rgba(22,88,94,.10);color:var(--navy-ink);}
.rf-lane.acc{background:var(--gold-soft);color:var(--gold-2);}
.rf-status{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:99px;white-space:nowrap;background:var(--wash-2);color:var(--slate-2);}
.rf-status.s-new{background:rgba(232,137,94,.16);color:var(--gold-2);}
.rf-status.s-triaged{background:rgba(79,163,140,.18);color:#2f7d68;}
.rf-status.s-booked{background:rgba(22,88,94,.12);color:var(--navy-ink);}
.rf-status.s-due{background:rgba(201,75,67,.14);color:var(--bad);}
.rf-status.s-recorded{background:rgba(79,163,140,.18);color:#2f7d68;}
.rf-tick{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:600;color:var(--good);}
.rf-tick svg{width:14px;height:14px;}

/* ACC Episodes */
.acc-claim{font-family:var(--mono);font-size:.71rem;color:var(--navy-ink);background:var(--wash);padding:2px 6px;border-radius:5px;white-space:nowrap;}
.acc-diag{font-size:.79rem;color:var(--slate);}
.acc-note{font-size:.75rem;color:var(--slate);}
.acc-empty{padding:16px;font-size:.8rem;color:var(--slate-2);margin:0;}
.acc-prog-wrap{display:flex;align-items:center;gap:7px;min-width:110px;}
.acc-prog-track{flex:1;height:6px;background:var(--wash-2);border-radius:4px;overflow:hidden;}
.acc-prog-bar{height:100%;background:var(--navy-3);border-radius:4px;transition:width .4s var(--ease);}
.acc-prog-wrap.at-risk .acc-prog-bar{background:var(--warn);}
.acc-prog-label{font-size:.71rem;font-weight:600;white-space:nowrap;color:var(--ink);width:36px;text-align:right;flex:0 0 auto;}
.acc-32-pill{display:inline-block;font-size:.61rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:99px;white-space:nowrap;}
.acc-32-pill.na{background:var(--wash-2);color:var(--slate-2);}
.acc-32-pill.pending{background:var(--warn-bg);color:var(--warn);}
.acc-32-pill.approved{background:var(--good-bg);color:var(--good);}
.prom-dot{display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;min-width:30px;height:20px;padding:0 5px;border-radius:6px;}
.prom-dot.recorded{background:var(--good-bg);color:var(--good);}
.prom-dot.missing{background:var(--warn-bg);color:var(--warn);}
.panel-head-note{font-size:.68rem;color:var(--slate-2);margin-left:auto;font-weight:400;}
.acc-table{min-width:720px;}
.acc-prom-table th,.acc-prom-table td{font-size:.76rem;}

/* ============================================================
   Education & CPD
   ============================================================ */
.cpd-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:12px;margin-top:4px;}
.cpd-card{background:var(--paper);border-radius:14px;border:1px solid var(--line);padding:16px 18px 12px;display:flex;flex-direction:column;gap:8px;}
.cpd-card-top{display:flex;align-items:center;gap:11px;}
.cpd-card-meta{flex:1;min-width:0;}
.cpd-card-name{font-size:.88rem;font-weight:700;color:var(--ink);}
.cpd-card-role{font-size:.71rem;color:var(--slate-2);}
.cpd-card-hrs{font-size:1.1rem;font-weight:800;color:var(--navy);font-family:var(--display);white-space:nowrap;flex:0 0 auto;}
.cpd-of{font-size:.68rem;font-weight:500;color:var(--slate-2);margin-left:1px;}
.cpd-bar-outer{height:6px;background:var(--wash-2);border-radius:4px;overflow:hidden;}
.cpd-bar-fill{height:100%;border-radius:4px;transition:width .4s var(--ease);}
.cpd-card-foot{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--slate-2);}
.cpd-pct{font-weight:700;color:var(--ink);}
.cpd-win{flex:1;}
.cpd-rot-chip{display:inline-flex;align-items:center;gap:4px;background:var(--info-bg,rgba(30,95,116,.10));color:var(--navy);padding:2px 7px;border-radius:99px;font-size:.63rem;font-weight:700;}
.cpd-rot-chip svg{width:11px;height:11px;}
.cpd-recent{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line-2);padding-top:8px;margin-top:2px;}
.cpd-act-row{display:flex;align-items:center;gap:7px;font-size:.76rem;}
.cpd-type-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
.cpd-act-name{flex:1;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cpd-act-hrs{font-weight:600;color:var(--slate);flex:0 0 auto;}
.cpd-verified{display:inline-flex;align-items:center;color:var(--good);flex:0 0 auto;}
.cpd-verified svg{width:13px;height:13px;}
.cpd-type-pill{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.02em;padding:2px 7px;border-radius:99px;text-transform:capitalize;white-space:nowrap;}
.cpd-type-pill.conference{background:rgba(22,88,94,.10);color:var(--navy-ink);}
.cpd-type-pill.workshop{background:var(--gold-soft,rgba(216,160,64,.13));color:#a07020;}
.cpd-type-pill.course{background:rgba(157,167,208,.20);color:#5c6494;}
.cpd-type-pill.peer-review,.cpd-type-pill.supervised{background:var(--good-bg);color:var(--good);}
.cpd-type-pill.online,.cpd-type-pill.self-directed{background:var(--wash-2);color:var(--slate-2);}
.cpd-pending{font-size:.72rem;color:var(--slate-2);}
.ms-done{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;color:var(--good);}
.ms-done svg{width:13px;height:13px;}
.rot-blocks{display:flex;flex-direction:column;}
.rot-block{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line-2);}
.rot-block:last-child{border-bottom:none;}
.rot-indicator{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:var(--wash-2);}
.rot-block.complete .rot-indicator{background:var(--good);}
.rot-block.current .rot-indicator{background:var(--navy);box-shadow:0 0 0 3px rgba(22,88,94,.20);}
.rot-block.upcoming .rot-indicator{background:var(--wash-2);border:2px solid var(--slate-2);}
.rot-block-info{flex:1;}
.rot-block-name{font-size:.84rem;font-weight:700;color:var(--ink);}
.rot-block-meta{font-size:.71rem;color:var(--slate-2);}

/* ============================================================
   Outcomes dashboard
   ============================================================ */
.outcomes-hero{display:flex;align-items:stretch;gap:0;margin:14px 0 0;border-radius:16px;
  background:linear-gradient(135deg,var(--navy),var(--navy-3));color:#fff;overflow:hidden;}
.oh-left{flex:1;padding:24px 28px;display:flex;flex-direction:column;gap:6px;}
.oh-pct{font-size:3rem;font-weight:800;line-height:1;color:#fff;}
.oh-label{font-size:.95rem;font-weight:500;opacity:.9;}
.oh-note{font-size:.75rem;opacity:.65;display:flex;align-items:center;gap:5px;margin-top:4px;}
.oh-note .ico{width:13px;height:13px;}
.oh-spark{width:200px;flex:0 0 auto;padding:16px 20px 16px 0;}
.trend-spark{width:100%;height:100%;min-height:64px;}

.measures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.measure-card{background:var(--paper);border-radius:14px;border:1px solid var(--line);padding:16px 18px;}
.measure-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:3px;}
.measure-name{font-size:.88rem;font-weight:700;color:var(--ink);}
.measure-n{font-size:.72rem;color:var(--slate-2);}
.measure-range{font-size:.7rem;color:var(--slate);margin-bottom:12px;}
.measure-series{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;}
.series-row{display:flex;align-items:center;gap:8px;}
.series-label{font-size:.72rem;color:var(--slate);width:72px;flex:0 0 auto;}
.series-bar-wrap{flex:1;height:7px;background:var(--wash-2);border-radius:4px;overflow:hidden;}
.series-bar-fill{height:100%;background:var(--navy-3);border-radius:4px;transition:width .4s var(--ease);}
.series-val{font-size:.75rem;font-weight:600;width:40px;text-align:right;flex:0 0 auto;color:var(--ink);}
.series-val.up{color:var(--good);}
.series-val.down{color:var(--warn);}
.mcid-note{font-size:.68rem;color:var(--slate-2);display:flex;align-items:center;gap:4px;}
.mcid-note .ico{width:12px;height:12px;}

.outcomes-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:4px;align-items:start;}
/* governance has 4 registers incl. wide free-text columns: 2-up so they breathe */
.outcomes-tables.gov-tables{grid-template-columns:repeat(2,1fr);}
.outcomes-table{background:var(--paper);border-radius:14px;border:1px solid var(--line);overflow:hidden;}
.outcomes-table .panel-head{padding:12px 16px 0;border-bottom:none;}
.data-table{width:100%;border-collapse:collapse;font-size:.8rem;}
.data-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-2);font-weight:600;padding:8px 16px;border-bottom:1px solid var(--line);text-align:left;}
.data-table td{padding:9px 16px;border-bottom:1px solid var(--line-2);color:var(--ink);}
.data-table tr:last-child td{border-bottom:none;}
.data-table td.num,.data-table th.num{text-align:right;}

/* ============================================================
   Team & Competency
   ============================================================ */
.team-summary{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 0;
  padding:16px 20px;background:var(--paper);border-radius:14px;border:1px solid var(--line);}
.ts-stat{display:flex;flex-direction:column;gap:2px;padding-right:20px;border-right:1px solid var(--line);}
.ts-stat:last-of-type{border-right:none;}
.ts-num{font-size:1.4rem;font-weight:800;color:var(--navy);font-family:var(--display);}
.ts-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-2);}
.team-alert{flex-basis:100%;font-size:.78rem;color:var(--warn);background:var(--warn-bg);padding:8px 12px;border-radius:8px;
  display:flex;align-items:center;gap:6px;}
.team-alert .ico{width:15px;height:15px;flex:0 0 auto;}

.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.staff-card{background:var(--paper);border-radius:14px;border:1px solid var(--line);padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px;}
.staff-top{display:flex;align-items:flex-start;gap:12px;}
.staff-info{flex:1;min-width:0;}
.staff-name{font-size:.92rem;font-weight:700;color:var(--ink);}
.staff-role{font-size:.75rem;color:var(--slate);margin-top:2px;}

.scope-badge{display:inline-block;font-size:.66rem;font-weight:600;padding:2px 8px;border-radius:6px;letter-spacing:.02em;}
.scope-app{background:rgba(35,123,130,0.12);color:var(--navy);}
.scope-gen{background:var(--wash-2);color:var(--slate);}
.scope-aha{background:rgba(201,107,67,0.1);color:var(--gold-2);}

.apc-badge{font-size:.75rem;font-weight:500;padding:7px 10px;border-radius:9px;display:flex;align-items:center;gap:5px;}
.apc-badge .ico{width:14px;height:14px;flex:0 0 auto;}
.apc-current{background:var(--good-bg);color:var(--good);}
.apc-verify{background:var(--warn-bg);color:var(--warn);}
.apc-na{background:var(--wash-2);color:var(--slate);}

.cpd-section{display:flex;flex-direction:column;gap:5px;}
.cpd-label{font-size:.73rem;color:var(--slate);display:flex;align-items:center;gap:4px;}
.cpd-label .ico{width:13px;height:13px;}
.cpd-bar{height:6px;background:var(--wash-2);border-radius:3px;overflow:hidden;}
.cpd-fill{height:100%;border-radius:3px;transition:width .4s var(--ease);}

.cred-tags{display:flex;flex-wrap:wrap;gap:4px;}
.cred-tags .pill{font-size:.65rem;padding:2px 7px;}

.rotation-tag{font-size:.73rem;padding:7px 10px;border-radius:9px;display:flex;align-items:center;gap:5px;
  background:var(--warn-bg);color:var(--warn);}
.rotation-tag.sup-only{background:var(--info-bg);color:var(--info);}
.rotation-tag .ico{width:13px;height:13px;flex:0 0 auto;}

/* responsive for new views */
@media (max-width:900px){
  .pb-board{padding:16px;}
  .outcomes-hero{flex-direction:column;}
  .oh-spark{width:100%;height:80px;padding:0 20px 16px;}
  .page-head{padding-bottom:10px;}
}
@media (max-width:560px){
  .pb-col{flex:0 0 168px;}
  .measures-grid{grid-template-columns:1fr;}
  .outcomes-tables{grid-template-columns:1fr;}
}

/* ============================================================
   Pathways & Protocols (example standard-work library)
   ============================================================ */
.protocols-list{margin-top:4px;}
.protocol-card{background:var(--paper);border-radius:14px;border:1px solid var(--line);margin-bottom:10px;overflow:hidden;}
.protocol-card > details > summary{list-style:none;cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:15px 18px;}
.protocol-card > details > summary::-webkit-details-marker{display:none;}
.protocol-card > details > summary:hover{background:var(--wash);}
.protocol-card > details > summary > .ico{width:18px;height:18px;color:var(--navy-3);flex:0 0 auto;}
.protocol-name{font-size:.92rem;font-weight:700;color:var(--ink);}
.protocol-sub{font-size:.73rem;color:var(--slate);margin-left:auto;}
.protocol-chev .ico{width:16px;height:16px;color:var(--slate-2);transition:transform .2s var(--ease);}
.protocol-card details[open] .protocol-chev .ico{transform:rotate(90deg);}
.protocol-body{padding:2px 18px 16px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line-2);}
.protocol-summary{font-size:.82rem;color:var(--slate);margin:10px 0 0;}
.protocol-prom{display:flex;gap:7px;align-items:flex-start;font-size:.78rem;color:var(--ink);}
.protocol-prom .ico{width:14px;height:14px;color:var(--navy-3);flex:0 0 auto;margin-top:2px;}
.protocol-prom .pp-label{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-2);}
.protocol-prom ul{margin:3px 0 0;padding-left:16px;color:var(--slate);}
.protocol-phases{display:flex;flex-direction:column;gap:12px;}
.protocol-phase{border-left:2px solid var(--line);padding:0 0 0 14px;}
.protocol-phase-name{font-size:.82rem;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:5px;}
.protocol-phase-name .ico{width:14px;height:14px;color:var(--navy-3);flex:0 0 auto;}
.protocol-phase ul{margin:5px 0 6px;padding-left:18px;font-size:.8rem;color:var(--slate);}
.protocol-phase li{margin:1px 0;}
.protocol-meta{font-size:.76rem;color:var(--slate-2);display:flex;align-items:flex-start;gap:5px;}
.protocol-meta .ico{width:14px;height:14px;color:var(--good);flex:0 0 auto;margin-top:2px;}
.protocol-redflag{font-size:.75rem;color:var(--warn);background:var(--warn-bg);padding:6px 10px;border-radius:8px;display:flex;align-items:flex-start;gap:6px;margin-top:6px;}
.protocol-redflag .ico{width:14px;height:14px;flex:0 0 auto;margin-top:1px;}
.protocol-note{font-size:.72rem;color:var(--slate-2);display:flex;align-items:flex-start;gap:5px;background:var(--wash);padding:7px 10px;border-radius:8px;}
.protocol-note .ico{width:13px;height:13px;flex:0 0 auto;margin-top:1px;}

/* ============================================================
   Governance & Audit (example quality dashboard)
   ============================================================ */
.ts-foot{font-size:.66rem;color:var(--slate-2);max-width:150px;}
.gov-lognote{font-size:.74rem;color:var(--info);background:var(--info-bg);padding:8px 12px;border-radius:8px;display:flex;align-items:center;gap:6px;margin:0 2px 12px;}
.gov-lognote .ico{width:15px;height:15px;flex:0 0 auto;}
.gov-incidents{display:flex;flex-direction:column;gap:10px;}
.gov-incident .measure-name{line-height:1.3;}
.gov-detail{font-size:.78rem;color:var(--slate);margin:7px 0 9px;line-height:1.5;}
.gov-pills{display:flex;gap:6px;flex:0 0 auto;align-items:center;}
.sac-pill{font-size:.62rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:6px;background:var(--warn-bg);color:var(--warn);white-space:nowrap;}
.gov-status{font-size:.62rem;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:6px;background:var(--wash-2);color:var(--slate);white-space:nowrap;text-transform:capitalize;}
.gov-status.complete,.gov-status.closed,.gov-status.on-track{background:var(--good-bg);color:var(--good);}
.gov-status.due,.gov-status.open{background:var(--warn-bg);color:var(--warn);}
.gov-status.scheduled{background:var(--info-bg);color:var(--info);}

/* ============================================================
   Welcome / demo sign-in modal
   ============================================================ */
.welcome-overlay{
  position:fixed;inset:0;z-index:500;
  display:flex;align-items:center;justify-content:center;padding:24px;
  background:
    radial-gradient(120% 90% at 50% -10%, rgba(38,112,144,0.45), transparent 60%),
    radial-gradient(90% 80% at 110% 110%, rgba(201,123,110,0.22), transparent 55%),
    rgba(15,46,61,0.62);
  backdrop-filter:saturate(1.2) blur(8px);
  opacity:0;pointer-events:none;transition:opacity .28s var(--ease);
}
.welcome-overlay.show{opacity:1;pointer-events:auto;}
.welcome-card{
  width:100%;max-width:432px;
  background:var(--paper);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:34px 32px 22px;text-align:center;
  transform:translateY(14px) scale(.985);transition:transform .3s var(--ease);
  max-height:calc(100vh - 48px);overflow-y:auto;
}
.welcome-overlay.show .welcome-card{transform:none;}
.welcome-mark{
  width:72px;height:72px;border-radius:20px;margin:0 auto 16px;
  display:grid;place-items:center;
  background:linear-gradient(155deg, var(--wash), var(--wash-2));
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.welcome-mark img{width:46px;height:46px;}
.welcome-name{
  font-family:var(--display);font-weight:800;font-size:1.92rem;
  letter-spacing:-0.03em;color:var(--navy-ink);line-height:1;
}
.welcome-sub{
  font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--navy-3);font-weight:600;margin-top:7px;
}
.welcome-lead{
  font-size:.86rem;color:var(--slate);line-height:1.5;
  margin:14px auto 0;max-width:330px;
}
.welcome-divider{
  display:flex;align-items:center;gap:10px;margin:20px 2px 14px;
  font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--slate-2);font-weight:600;
}
.welcome-divider::before,.welcome-divider::after{
  content:'';flex:1;height:1px;background:var(--line);
}
.persona-grid{display:flex;flex-direction:column;gap:9px;text-align:left;}
.persona{
  display:flex;align-items:center;gap:12px;
  padding:11px 13px;border-radius:13px;
  border:1.5px solid var(--line);background:var(--paper);
  transition:.16s var(--ease);width:100%;text-align:left;
}
.persona:hover{border-color:var(--gold);box-shadow:var(--shadow-sm);}
.persona.on{
  border-color:var(--navy-3);background:rgba(38,112,144,0.06);
  box-shadow:0 0 0 3px rgba(38,112,144,0.10);
}
.persona .avatar{width:38px;height:38px;font-size:.82rem;}
.persona .p-body{display:flex;flex-direction:column;line-height:1.25;min-width:0;flex:1;}
.persona .p-name{font-family:var(--display);font-weight:700;font-size:.96rem;color:var(--navy-ink);}
.persona .p-role{font-size:.74rem;color:var(--slate);}
.persona .p-check{
  width:22px;height:22px;border-radius:50%;flex:0 0 auto;
  display:grid;place-items:center;color:#fff;background:var(--navy-3);
  opacity:0;transform:scale(.6);transition:.16s var(--ease);
}
.persona .p-check .ico{width:14px;height:14px;}
.persona.on .p-check{opacity:1;transform:none;}
.welcome-enter{
  width:100%;justify-content:center;margin-top:16px;
  padding:12px 18px;font-size:.92rem;
}
.welcome-foot{
  font-size:.68rem;color:var(--slate-2);line-height:1.55;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2);
}
.welcome-foot b{color:var(--slate);font-weight:600;}
.sb-user.replayable{cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease);}
.sb-user.replayable:hover{background:rgba(255,255,255,0.09);border-color:rgba(201,123,110,0.4);}
@media (max-width:520px){
  .welcome-card{padding:28px 22px 18px;}
  .welcome-name{font-size:1.66rem;}
}

/* ============================================================
   Mindfulness Minute (staff wellbeing corner · mindful.js)
   ============================================================ */
/* topbar quick-access button */
.tb-mindful{
  width:auto;display:inline-flex;align-items:center;gap:7px;
  padding:0 14px 0 11px;font-size:.8rem;font-weight:600;color:var(--navy);
}
.tb-mindful span{white-space:nowrap;}
.tb-mindful .ico{width:17px;height:17px;color:var(--teal);}
.tb-mindful:hover .ico{color:var(--gold-2);}

.mm-intro{margin:16px 2px 20px;font-size:.92rem;color:var(--slate);max-width:640px;}

.mm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-items:start;}
@media (max-width:980px){ .mm-grid{grid-template-columns:1fr;} }

.mm-card .panel-head .count{margin-left:auto;text-transform:none;letter-spacing:0;}
.mm-body{padding:20px 18px 22px;text-align:center;}

/* shared action button */
.mm-btn{
  margin-top:6px;font-size:.84rem;font-weight:600;color:var(--navy);
  padding:9px 22px;border-radius:10px;border:1px solid var(--line);background:var(--paper);
  transition:.14s var(--ease);
}
.mm-btn:hover{border-color:var(--gold);color:var(--gold-2);box-shadow:var(--shadow-sm);}

/* shared message lines */
.mm-phase{
  font-family:var(--display);font-weight:600;font-size:1.04rem;color:var(--navy-ink);
  min-height:26px;margin:4px 0 2px;
}
.mm-round{font-size:.74rem;color:var(--slate-2);min-height:18px;margin-bottom:8px;}

/* breathing */
.mm-pills{display:flex;gap:8px;justify-content:center;margin-bottom:4px;}
.mm-pill{
  font-size:.74rem;font-weight:600;color:var(--slate);
  padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);
  transition:.14s var(--ease);
}
.mm-pill:hover{border-color:var(--gold);color:var(--gold-2);}
.mm-pill.on{color:#fff;background:linear-gradient(135deg,var(--navy-3),var(--navy));border-color:var(--navy);}
.mm-breathe-wrap{height:188px;display:flex;align-items:center;justify-content:center;}
.mm-orb{
  width:88px;height:88px;border-radius:50%;
  background:radial-gradient(circle at 36% 30%, var(--teal) 0%, var(--navy) 82%);
  box-shadow:0 0 30px rgba(90,125,90,0.35), 0 0 70px rgba(30,95,116,0.16);
  transform:scale(0.72);
}

/* one-minute reset ring */
.mm-ring-wrap{position:relative;width:172px;height:172px;margin:6px auto 8px;}
.mm-ring-wrap svg{width:100%;height:100%;display:block;}
.mm-ring-bg{stroke:var(--wash-2);stroke-width:9;fill:none;}
.mm-ring-fg{stroke:var(--gold);stroke-width:9;fill:none;stroke-linecap:round;transition:stroke-dashoffset 1s linear;}
.mm-ring-num{
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--display);font-weight:700;font-size:2.6rem;color:var(--navy-ink);letter-spacing:-0.03em;
}

/* grounding */
.mm-g-count{
  font-family:var(--display);font-weight:800;font-size:3rem;line-height:1.1;
  color:var(--teal);letter-spacing:-0.02em;margin-top:6px;
}
.mm-g-sense{
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--slate);margin:2px 0 8px;
}
.mm-g-prompt{font-weight:500;font-size:.94rem;max-width:340px;margin:0 auto 6px;min-height:48px;}
.mm-dots{display:flex;gap:7px;justify-content:center;margin:10px 0 6px;}
.mm-dots .d{width:8px;height:8px;border-radius:50%;background:var(--wash-2);transition:.2s var(--ease);}
.mm-dots .d.on{background:var(--teal);}

/* check-in */
.mm-checks{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;padding:14px 0 6px;}
.mm-check{
  font-size:.84rem;font-weight:600;color:var(--navy);
  padding:10px 17px;border-radius:999px;border:1px solid var(--line);background:var(--paper);
  transition:.14s var(--ease);
}
.mm-check:hover{border-color:var(--gold);color:var(--gold-2);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.mm-check-saved{font-size:.74rem;color:var(--slate-2);margin-top:8px;}
.mm-check-label{
  font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--navy-ink);margin:2px 0 4px;
}
.mm-check-note{font-weight:500;font-size:.92rem;max-width:340px;margin:0 auto 4px;}
.mm-privacy{
  display:flex;align-items:center;justify-content:center;gap:6px;
  font-size:.72rem;color:var(--slate-2);margin-top:12px;
}
.mm-privacy .ico{width:13px;height:13px;}

.mm-foot{margin-top:18px;font-size:.74rem;color:var(--slate-2);text-align:center;}

/* ============================================================
   Canvas — visual thought map (canvas.js)
   ============================================================ */
.cv-wrap{display:flex;flex-direction:column;height:100%;}
.cv-head{flex:0 0 auto;}
.cv-toolbar{display:flex;align-items:center;gap:16px;margin:14px 0;flex:0 0 auto;flex-wrap:wrap;}
.cv-add{cursor:pointer;}
.cv-hint{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:var(--slate);}
.cv-hint svg{width:15px;height:15px;color:var(--gold-2);flex:0 0 auto;}

.cv-stage{position:relative;flex:1 1 auto;min-height:360px;}
.cv-viewport{
  position:absolute;inset:0;overflow:auto;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--wash);
}
.cv-viewport::-webkit-scrollbar{height:12px;width:12px;}
.cv-viewport::-webkit-scrollbar-thumb{background:rgba(30,95,116,0.18);border-radius:8px;border:3px solid var(--wash);}
.cv-canvas{
  position:relative;width:4000px;height:3000px;
  background-color:var(--wash);
  background-image:radial-gradient(rgba(30,95,116,0.12) 1.2px, transparent 1.2px);
  background-size:26px 26px;background-position:-1px -1px;
}

/* edge layer */
.cv-edges{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:visible;}
.cv-wire{stroke:var(--branch);stroke-width:2;pointer-events:none;}
.cv-hit{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer;}
.cv-rubber{stroke:var(--gold);stroke-width:2;stroke-dasharray:5 5;pointer-events:none;}

/* tiles */
.cv-tile{
  position:absolute;width:212px;z-index:2;
  background:var(--note-coral);border:1px solid rgba(14,45,60,0.10);border-radius:12px;
  box-shadow:var(--shadow-sm);padding:12px 13px 11px;
  cursor:grab;touch-action:none;user-select:none;
  transition:box-shadow .15s var(--ease);
}
.cv-tile:hover{box-shadow:var(--shadow);}
.cv-tile--drag{cursor:grabbing;box-shadow:var(--shadow-lg);}
.cv-tile--target{outline:2px solid var(--gold);outline-offset:2px;}
.cv-tile--coral{background:var(--note-coral);}
.cv-tile--teal{background:var(--note-teal);}
.cv-tile--gold{background:var(--note-gold);}
.cv-tile--violet{background:var(--note-violet);}
.cv-tile--slate{background:var(--note-slate);}
.cv-tile__title{font-family:var(--display);font-weight:700;font-size:.92rem;color:var(--navy-ink);line-height:1.25;word-break:break-word;}
.cv-tile__ph{color:var(--slate-2);font-weight:600;}
.cv-tile__body{font-size:.8rem;color:var(--ink);line-height:1.45;margin-top:5px;white-space:pre-wrap;word-break:break-word;max-height:124px;overflow:hidden;}
.cv-tile__foot{margin-top:9px;}
.cv-link{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:7px;background:rgba(255,255,255,0.55);color:var(--navy-3);cursor:pointer;}
.cv-link:hover{background:#fff;color:var(--gold-2);}
.cv-link svg{width:15px;height:15px;}
.cv-port{
  position:absolute;right:-7px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;border-radius:50%;background:var(--paper);border:2px solid var(--gold);
  box-shadow:0 1px 3px rgba(14,45,60,0.22);cursor:crosshair;touch-action:none;
  opacity:.6;transition:opacity .14s,transform .14s;
}
.cv-tile:hover .cv-port{opacity:1;}
.cv-port:hover{transform:translateY(-50%) scale(1.18);}

/* edge delete control */
.cv-edge-del{
  position:absolute;z-index:3;transform:translate(-50%,-50%);
  width:26px;height:26px;border-radius:50%;background:var(--bad);color:#fff;
  display:grid;place-items:center;border:2px solid var(--paper);box-shadow:var(--shadow);cursor:pointer;
}
.cv-edge-del svg{width:13px;height:13px;}

/* empty state (sibling overlay, does not intercept pointer events) */
.cv-empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;}
.cv-empty-in{text-align:center;max-width:260px;}
.cv-empty-in svg{width:30px;height:30px;color:var(--slate-2);}
.cv-empty-in p{font-size:.9rem;color:var(--slate);margin-top:10px;}

/* edit modal extras (reuses .wf-overlay / .wf-modal / .wf-field / .wf-sop / .mfoot) */
.cv-mcolor{width:26px;height:26px;border-radius:8px;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(14,45,60,0.14);}
.cv-input{width:100%;font-family:var(--body);font-size:.88rem;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--wash);outline:none;color:var(--ink);transition:.14s;}
.cv-input:focus{border-color:var(--gold);background:var(--paper);}
.cv-swatches{display:flex;gap:9px;}
.cv-swatch{width:30px;height:30px;border-radius:9px;border:2px solid transparent;box-shadow:inset 0 0 0 1px rgba(14,45,60,0.12);cursor:pointer;transition:.14s;}
.cv-swatch:hover{transform:translateY(-1px);}
.cv-swatch.on{border-color:var(--navy-ink);}
.cv-swatch--coral{background:var(--note-coral);}
.cv-swatch--teal{background:var(--note-teal);}
.cv-swatch--gold{background:var(--note-gold);}
.cv-swatch--violet{background:var(--note-violet);}
.cv-swatch--slate{background:var(--note-slate);}
