/* ============================================================
   Fitness Check — "dark desk" layer on top of Compliance OS styles.css
   Concept: deep ink-green/charcoal app surfaces; the verdict report
   is a warm-paper memo floating on the dark desk. Tokens reused
   from colors_and_type.css; new dark tokens namespaced --desk-*.
   ============================================================ */
:root {
  --desk:    #0e1714;   /* deepest ink-green charcoal (app bg) */
  --desk-2:  #14201c;   /* panels / cards on the desk */
  --desk-3:  #1b2c27;   /* hover / raised */
  --desk-line:   rgba(231, 238, 234, 0.10);
  --desk-line-2: rgba(231, 238, 234, 0.16);
  --desk-ink:    #eef3f0;   /* primary text on desk */
  --desk-ink-2:  #b3bfb9;   /* body on desk */
  --desk-ink-3:  #7d8b85;   /* muted on desk */
  --desk-accent: #8fb8ff;   /* lifted regulator blue for dark surfaces */
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  background: var(--desk);
  color: var(--desk-ink);
  overflow: hidden;
}
#root { height: 100vh; }

/* ---------- app shell ---------- */
.fc-app {
  display: grid;
  grid-template-columns: 232px 1fr;
  grid-template-rows: 48px 1fr;
  height: 100vh;
  overflow: hidden;
  background: var(--desk);
}

/* topbar */
.fc-top {
  grid-column: 1 / 3;
  display: flex; align-items: center; gap: 14px;
  padding: 0 18px;
  background: var(--desk-2);
  border-bottom: 1px solid var(--desk-line);
  z-index: 6;
}
.fc-logo { display: flex; align-items: center; gap: 9px; }
.fc-logo .mark {
  width: 24px; height: 24px; border-radius: 5px;
  background: var(--accent);
  display: grid; place-items: center;
  color: #fff;
}
.fc-logo .wm { font-weight: 600; font-size: 14px; letter-spacing: -0.01em; color: var(--desk-ink); }
.fc-logo .wm b { font-weight: 600; }
.fc-logo .wm .thin { color: var(--desk-ink-3); font-weight: 500; }
.fc-org {
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--desk-line-2);
  border-radius: 4px;
  padding: 4px 10px;
  font-size: 12px; color: var(--desk-ink-2);
  cursor: pointer;
}
.fc-org:hover { background: var(--desk-3); }
.fc-top .right { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.fc-pulse { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--desk-ink-3); }
.fc-pulse .dot {
  width: 8px; height: 8px; border-radius: 99px; background: #6ed197;
  animation: pulse-g 2.4s ease-out infinite;
}
@keyframes pulse-g {
  0% { box-shadow: 0 0 0 0 rgba(110,209,151,0.5); }
  70% { box-shadow: 0 0 0 8px rgba(110,209,151,0); }
  100% { box-shadow: 0 0 0 0 rgba(110,209,151,0); }
}
.fc-avatar {
  width: 28px; height: 28px; border-radius: 99px;
  background: linear-gradient(135deg, #5d7a6e, #2e4339);
  display: grid; place-items: center; color: #eef3f0;
  font-size: 11px; font-weight: 600; letter-spacing: 0.02em;
}

/* sidebar */
.fc-side {
  background: var(--desk-2);
  border-right: 1px solid var(--desk-line);
  overflow-y: auto;
  padding: 14px 0 24px;
  display: flex; flex-direction: column;
}
.fc-navsec { padding: 14px 16px 5px; }
.fc-navsec .lbl {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--desk-ink-3); font-weight: 600;
}
.fc-nav {
  display: flex; align-items: center; gap: 11px;
  padding: 8px 16px; margin: 1px 0;
  font-size: 13px; color: var(--desk-ink-2);
  cursor: pointer; position: relative;
  border: none; background: none; width: 100%; text-align: left;
  font-family: inherit;
}
.fc-nav:hover { background: var(--desk-3); color: var(--desk-ink); }
.fc-nav.active { background: var(--desk-3); color: var(--desk-ink); font-weight: 500; }
.fc-nav.active::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--accent);
}
.fc-nav .ico { color: inherit; opacity: 0.9; }
.fc-nav .count {
  margin-left: auto;
  font-family: var(--font-mono); font-feature-settings: var(--feat-mono);
  font-size: 10px; color: var(--desk-ink-3);
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--desk-line);
  padding: 1px 7px; border-radius: 99px;
}
.fc-nav .badge {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 9.5px; color: #fff; background: var(--warn);
  padding: 2px 6px; border-radius: 99px;
}

/* agent roster in sidebar */
.fc-roster { margin-top: auto; padding: 12px 16px 4px; }
.fc-agent-row {
  display: flex; align-items: center; gap: 9px;
  padding: 4px 0; font-size: 11px; color: var(--desk-ink-3);
}
.fc-agent-row .adot { width: 7px; height: 7px; border-radius: 99px; flex-shrink: 0; }
.fc-agent-row .an { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.04em; flex: 1; color: var(--desk-ink-2); }
.fc-agent-row .ar { font-family: var(--font-mono); font-size: 9px; color: var(--desk-ink-3); }
.adot.feed { background: #8aa3e8; } .adot.impact { background: #d39de1; }
.adot.classifier { background: #8ddada; } .adot.gap { background: #f0908a; }
.adot.precedent { background: #e8c489; } .adot.remediation { background: #98d6a7; }

/* main scroll area */
.fc-main { overflow-y: auto; background: var(--desk); position: relative; }
.fc-main::-webkit-scrollbar { width: 10px; }
.fc-main::-webkit-scrollbar-thumb { background: var(--desk-3); border-radius: 99px; border: 3px solid var(--desk); }

/* page header on desk */
.fc-head {
  padding: 22px 32px 0;
  max-width: 1080px; margin: 0 auto;
}
.fc-head .eye {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--desk-accent); font-weight: 600; margin-bottom: 8px;
}
.fc-head h1 { font-size: 24px; font-weight: 600; letter-spacing: -0.02em; color: var(--desk-ink); }
.fc-head .sub { color: var(--desk-ink-3); font-size: 13px; margin-top: 5px; max-width: 640px; }

/* ---------- stepper (dark) ---------- */
.fc-steps {
  display: flex; align-items: center; gap: 10px;
  max-width: 1080px; margin: 18px auto 0; padding: 0 32px;
}
.fc-step { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; color: var(--desk-ink-3); white-space: nowrap; }
.fc-step .n {
  width: 22px; height: 22px; display: inline-grid; place-items: center;
  border-radius: 99px; background: var(--desk-2); border: 1px solid var(--desk-line-2);
  color: var(--desk-ink-3); font-family: var(--font-mono); font-size: 11px; font-weight: 600;
}
.fc-step.active { color: var(--desk-ink); }
.fc-step.active .n { background: var(--accent); border-color: var(--accent); color: #fff; }
.fc-step.done { color: var(--desk-ink-2); }
.fc-step.done .n { background: rgba(152,214,167,0.18); border-color: rgba(152,214,167,0.4); color: #98d6a7; }
.fc-step-div { flex: 1; height: 1px; background: var(--desk-line); min-width: 14px; }

/* ---------- content wrap ---------- */
.fc-wrap { max-width: 1080px; margin: 0 auto; padding: 24px 32px 64px; }
.fc-wrap.narrow { max-width: 860px; }

/* ---------- client picker cards ---------- */
.fc-clients { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.fc-client {
  background: var(--desk-2);
  border: 1px solid var(--desk-line-2);
  border-radius: 6px; padding: 18px;
  cursor: pointer; position: relative;
  transition: border-color 120ms ease, transform 120ms ease, background 120ms ease;
  display: flex; flex-direction: column; gap: 12px;
  text-align: left; font-family: inherit; color: inherit;
}
.fc-client:hover { border-color: var(--desk-accent); background: var(--desk-3); transform: translateY(-2px); }
.fc-client.sel { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.fc-client .star {
  position: absolute; top: 14px; right: 14px;
  font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--desk-accent); border: 1px solid var(--desk-line-2);
  padding: 2px 7px; border-radius: 99px;
}
.fc-client .cname { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: var(--desk-ink); max-width: 78%; }
.fc-client .chh { font-size: 12px; color: var(--desk-ink-3); line-height: 1.45; min-height: 34px; }
.fc-client .caum {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-size: 22px; color: var(--desk-ink); letter-spacing: -0.01em;
}
.fc-client .caum .cur { color: var(--desk-ink-3); font-size: 14px; margin-right: 3px; }
.fc-client .crow { display: flex; align-items: center; gap: 14px; padding-top: 12px; border-top: 1px solid var(--desk-line); }
.fc-meta { display: flex; flex-direction: column; gap: 2px; }
.fc-meta .k { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); }
.fc-meta .v { font-family: var(--font-mono); font-size: 12px; color: var(--desk-ink-2); }
.fc-flags { display: flex; gap: 5px; }
.fc-flag {
  font-family: var(--font-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.04em;
  padding: 2px 7px; border-radius: 4px; background: rgba(255,255,255,0.05);
  border: 1px solid var(--desk-line-2); color: var(--desk-ink-2);
}
.fc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.fc-tag {
  font-size: 10.5px; color: var(--desk-ink-3);
  border: 1px dashed var(--desk-line-2); padding: 2px 8px; border-radius: 99px;
}

/* ---------- idea input ---------- */
.fc-idea-grid { display: grid; grid-template-columns: 1fr 300px; gap: 22px; align-items: start; }
.fc-panel {
  background: var(--desk-2); border: 1px solid var(--desk-line-2);
  border-radius: 6px; padding: 18px;
}
.fc-panel h3 {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--desk-ink-3); font-weight: 600; margin: 0 0 12px;
}
.fc-ta {
  width: 100%; min-height: 96px; resize: none;
  background: var(--desk); border: 1px solid var(--desk-line-2); border-radius: 5px;
  color: var(--desk-ink); font-family: inherit; font-size: 15px; line-height: 1.5;
  padding: 14px 16px; outline: none;
}
.fc-ta::placeholder { color: var(--desk-ink-3); }
.fc-ta:focus { border-color: var(--desk-accent); }
.fc-chiprow { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.fc-chip {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: var(--desk-ink-2);
  background: var(--desk); border: 1px solid var(--desk-line-2);
  border-radius: 99px; padding: 7px 13px; cursor: pointer;
  font-family: inherit; transition: all 120ms ease; text-align: left;
}
.fc-chip:hover { border-color: var(--desk-accent); color: var(--desk-ink); background: var(--desk-3); }
.fc-chip.on { border-color: var(--accent); background: rgba(143,184,255,0.12); color: var(--desk-ink); }
.fc-chip .dot { width: 6px; height: 6px; border-radius: 99px; background: var(--desk-accent); flex-shrink: 0; }
.fc-runbar { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.fc-btn-run {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--accent); color: #fff; border: 1px solid var(--accent);
  border-radius: 5px; padding: 11px 20px; font-family: inherit;
  font-size: 14px; font-weight: 600; letter-spacing: -0.005em; cursor: pointer;
  transition: background 120ms ease, transform 120ms ease;
}
.fc-btn-run:hover:not(:disabled) { background: var(--accent-2); transform: translateY(-1px); }
.fc-btn-run:disabled { opacity: 0.4; cursor: not-allowed; }
.fc-run-hint { font-size: 12px; color: var(--desk-ink-3); }

/* selected-client rail */
.fc-rail-client { display: flex; flex-direction: column; gap: 10px; }
.fc-rail-client .cn { font-size: 15px; font-weight: 600; color: var(--desk-ink); }
.fc-rail-client .ch { font-size: 11.5px; color: var(--desk-ink-3); line-height: 1.45; }
.fc-rail-row { display: flex; justify-content: space-between; font-size: 11.5px; padding: 6px 0; border-top: 1px solid var(--desk-line); }
.fc-rail-row .k { color: var(--desk-ink-3); }
.fc-rail-row .v { font-family: var(--font-mono); color: var(--desk-ink-2); }
.fc-doclist { display: flex; flex-direction: column; gap: 0; margin-top: 4px; }
.fc-docitem {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 11px; color: var(--desk-ink-3); padding: 5px 0;
  border-top: 1px dashed var(--desk-line); line-height: 1.4;
}
.fc-docitem .ico { color: var(--desk-ink-3); flex-shrink: 0; margin-top: 1px; }
.fc-changelink { background: none; border: none; color: var(--desk-accent); font-size: 12px; cursor: pointer; font-family: inherit; padding: 0; }
.fc-changelink:hover { text-decoration: underline; }

/* ---------- analysis / trace ---------- */
.fc-analysis { max-width: 860px; margin: 0 auto; }
.fc-trace-shell {
  background: #0a120f; border: 1px solid var(--desk-line-2);
  border-radius: 8px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,0.4);
}
.fc-trace-head {
  display: flex; align-items: center; gap: 12px;
  padding: 13px 18px; border-bottom: 1px solid var(--desk-line);
  background: rgba(255,255,255,0.015);
}
.fc-trace-head .lt {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--desk-ink-2);
}
.fc-trace-head .dots { display: flex; gap: 6px; }
.fc-trace-head .dots i { width: 9px; height: 9px; border-radius: 99px; background: var(--desk-3); }
.fc-trace-head .stat {
  margin-left: auto; font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--desk-ink-3);
  display: flex; align-items: center; gap: 7px;
}
.fc-trace-head .stat .sp {
  width: 7px; height: 7px; border-radius: 99px; background: #e8c489;
  animation: pulse-g 1.4s ease-out infinite;
}
.fc-trace-head .stat.done .sp { background: #98d6a7; animation: none; }
.fc-trace-body {
  padding: 16px 18px; min-height: 320px;
  font-family: var(--font-mono); font-feature-settings: var(--feat-mono);
  font-size: 12.5px; line-height: 1.55;
}
.fc-tl {
  display: grid; grid-template-columns: 46px 72px 1fr 22px;
  gap: 12px; align-items: start; padding: 5px 0;
  animation: tl-in 280ms ease both;
}
@keyframes tl-in { from { transform: translateY(6px); } to { transform: translateY(0); } }
.fc-tl .tt { color: #5a6661; font-variant-numeric: tabular-nums; }
.fc-tl .ta { font-weight: 600; letter-spacing: 0.04em; }
.fc-tl .ta.feed { color: #8aa3e8; } .fc-tl .ta.impact { color: #d39de1; }
.fc-tl .ta.classifier { color: #8ddada; } .fc-tl .ta.gap { color: #f0908a; }
.fc-tl .ta.precedent { color: #e8c489; } .fc-tl .ta.remediation { color: #98d6a7; }
.fc-tl .tm { color: #c8d2cd; word-break: break-word; }
.fc-tl .tm .hi { color: #fff; font-weight: 500; }
.fc-tl .tm .ok { color: #98d6a7; } .fc-tl .tm .warn { color: #e8c489; } .fc-tl .tm .bad { color: #f0908a; }
.fc-tl .tm .docref {
  display: inline-flex; align-items: center; gap: 4px; margin-left: 6px;
  font-size: 10px; color: #8aa3e8; border: 1px solid rgba(138,163,232,0.3);
  border-radius: 3px; padding: 0 5px; letter-spacing: 0.02em;
}
.fc-tl .tr { text-align: center; }
.fc-tl .tr .ck { color: #98d6a7; } .fc-tl .tr .wn { color: #e8c489; } .fc-tl .tr .bd { color: #f0908a; }
.fc-tl .tr.pending { color: #5a6661; }
.fc-cursor::after { content: "▍"; color: #98d6a7; animation: blink 1s steps(2,end) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.fc-trace-foot {
  padding: 14px 18px; border-top: 1px solid var(--desk-line);
  display: flex; align-items: center; gap: 14px;
  font-size: 12px; color: var(--desk-ink-3);
}
.fc-trace-foot .bar { flex: 1; height: 3px; background: var(--desk-3); border-radius: 2px; overflow: hidden; }
.fc-trace-foot .bar > i { display: block; height: 100%; background: var(--accent); transition: width 200ms linear; }
.fc-scan-doc {
  font-family: var(--font-mono); font-size: 11px; color: var(--desk-ink-2);
}

/* ---------- verdict report (the warm-paper memo on the desk) ---------- */
.fc-report-stage { display: flex; justify-content: center; padding: 8px 0 0; }
.fc-memo {
  background: #fdfcf8; color: var(--ink);
  width: 100%; max-width: 720px;
  border-radius: 6px;
  box-shadow: 0 30px 70px rgba(0,0,0,0.45), 0 2px 0 rgba(255,255,255,0.04) inset;
  border: 1px solid #e6e0d2;
  overflow: hidden;
  animation: memo-in 360ms cubic-bezier(.2,.7,.3,1) both;
}
@keyframes memo-in { from { transform: translateY(12px) scale(0.99); } to { transform: none; } }
.fc-memo-masthead {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 22px 30px 16px; border-bottom: 1px solid var(--line);
}
.fc-memo-masthead .eye {
  font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--accent); font-weight: 600;
}
.fc-memo-masthead .ttl {
  font-family: var(--font-serif); font-size: 20px; line-height: 1.2;
  color: var(--ink); margin-top: 5px; font-weight: 600; letter-spacing: -0.005em;
}
.fc-memo-masthead .mr { text-align: right; font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); line-height: 1.7; }
.fc-memo-masthead .mr b { color: var(--ink-2); font-weight: 500; }

/* verdict banner */
.fc-verdict { padding: 22px 30px; display: flex; gap: 18px; align-items: flex-start; border-bottom: 1px solid var(--line); }
.fc-verdict.fits { background: var(--ok-soft); }
.fc-verdict.changes { background: var(--warn-soft); }
.fc-verdict.no { background: var(--bad-soft); }
.fc-verdict .glyph {
  width: 44px; height: 44px; border-radius: 99px; flex-shrink: 0;
  display: grid; place-items: center; color: #fff;
}
.fc-verdict.fits .glyph { background: var(--ok); }
.fc-verdict.changes .glyph { background: var(--warn); }
.fc-verdict.no .glyph { background: var(--bad); }
.fc-verdict .vlabel {
  font-family: var(--font-serif); font-weight: 600;
  font-size: 26px; letter-spacing: -0.01em; line-height: 1.05;
}
.fc-verdict.fits .vlabel { color: var(--ok-d); }
.fc-verdict.changes .vlabel { color: var(--warn-d); }
.fc-verdict.no .vlabel { color: var(--bad-d); }
.fc-verdict .vsum { font-size: 14px; line-height: 1.5; color: var(--ink-2); margin-top: 6px; max-width: 52ch; }
.fc-prov {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 9px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--warn-d); border: 1px dashed var(--warn); background: rgba(255,255,255,0.4);
  padding: 3px 9px; border-radius: 4px;
}

/* findings */
.fc-findings { padding: 8px 30px 4px; }
.fc-find-label {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600;
  color: var(--ink-3); padding: 16px 0 6px;
}
.fc-find {
  display: grid; grid-template-columns: 26px 1fr; gap: 12px;
  padding: 14px 0; border-top: 1px solid var(--line);
}
.fc-find .fnum { font-family: var(--font-mono); font-size: 12px; color: var(--ink-4); padding-top: 1px; }
.fc-find .ftext { font-size: 14px; line-height: 1.55; color: var(--ink); }
.fc-find .fmeta { display: flex; align-items: center; gap: 10px; margin-top: 9px; flex-wrap: wrap; }
.fc-sev {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 9.5px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 4px; border: 1px solid;
}
.fc-sev .g { width: 7px; height: 7px; border-radius: 2px; }
.fc-sev.blocker { color: var(--bad-d); background: var(--bad-soft); border-color: rgba(165,35,35,0.3); }
.fc-sev.blocker .g { background: var(--bad); }
.fc-sev.warning { color: var(--warn-d); background: var(--warn-soft); border-color: rgba(160,107,0,0.3); }
.fc-sev.warning .g { background: var(--warn); }
.fc-sev.note { color: var(--ink-2); background: var(--bg-2); border-color: var(--line-2); }
.fc-sev.note .g { background: var(--ink-3); }
.fc-sev.missing { color: var(--ink-2); background: repeating-linear-gradient(45deg, var(--bg-2), var(--bg-2) 4px, #fff 4px, #fff 8px); border-color: var(--line-2); }
.fc-sev.missing .g { background: var(--ink-4); }

/* citation chip */
.fc-cite {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-feature-settings: var(--feat-mono);
  font-size: 10px; letter-spacing: 0.03em;
  background: var(--info-soft); color: var(--accent);
  border: 1px solid rgba(26,58,143,0.25); border-left: 3px solid var(--accent);
  border-radius: 4px; padding: 4px 9px 4px 8px; cursor: pointer;
  transition: background 120ms ease;
}
.fc-cite:hover { background: #d6deef; }
.fc-cite .src { font-weight: 500; text-transform: uppercase; }
.fc-cite .ref { color: var(--ink-3); }
.fc-cite .ico { color: var(--accent); opacity: 0.8; }
.fc-cite.missing { background: var(--bg-2); color: var(--ink-3); border-left-color: var(--ink-4); border-color: var(--line-2); }
.fc-cite.missing .ico { color: var(--ink-4); }

/* consider-instead box */
.fc-alt {
  margin: 16px 30px 4px;
  border: 1px solid var(--accent); border-radius: 5px;
  background: var(--info-soft); padding: 14px 16px;
}
.fc-alt .at {
  font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600;
  color: var(--accent); margin-bottom: 6px; display: flex; align-items: center; gap: 6px;
}
.fc-alt .ab { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); }
.fc-plan {
  margin: 16px 30px 4px; border: 1px dashed var(--ok); border-radius: 5px;
  background: var(--ok-soft); padding: 14px 16px;
}
.fc-plan .at { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--ok-d); margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.fc-plan .ab { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); }

/* memo footer */
.fc-memo-foot {
  margin-top: 18px; padding: 16px 30px 22px; border-top: 1px solid var(--line);
}
.fc-disclaimer { font-size: 11px; color: var(--ink-3); line-height: 1.5; font-style: italic; }
.fc-memo-actions { display: flex; gap: 10px; margin-top: 16px; }
.fc-mbtn {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: inherit; font-size: 12.5px; font-weight: 500;
  border: 1px solid var(--line-2); background: var(--panel); color: var(--ink);
  border-radius: 5px; padding: 8px 14px; cursor: pointer; transition: background 120ms ease;
}
.fc-mbtn:hover { background: var(--bg-2); }
.fc-mbtn.primary { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.fc-mbtn.primary:hover { background: var(--ink-2); }

/* tweak hooks: paper tone + serif headings */
[data-paper="bright"] .fc-memo { background: #ffffff; }
[data-paper="bright"] .fc-excerpt { background: #ffffff; }
[data-serif="off"] .fc-memo-masthead .ttl,
[data-serif="off"] .fc-verdict .vlabel { font-family: var(--font-sans); }

/* report side caption (on the desk, beside memo) */
.fc-report-note {
  font-size: 11px; color: var(--desk-ink-3); text-align: center;
  margin: 16px auto 0; max-width: 720px; font-family: var(--font-mono); letter-spacing: 0.04em;
}

/* ---------- doc drawer ---------- */
.fc-drawer-bg { position: fixed; inset: 0; background: rgba(8,12,10,0.55); z-index: 50; animation: fade 0.16s ease; }
@keyframes fade { from { opacity: 0; } }
.fc-drawer {
  position: fixed; right: 0; top: 0; bottom: 0; width: 560px; max-width: 92vw;
  background: var(--bg); border-left: 1px solid var(--line-2); z-index: 51;
  display: flex; flex-direction: column;
  box-shadow: -16px 0 50px rgba(0,0,0,0.4);
  animation: slidein 0.2s ease;
}
@keyframes slidein { from { transform: translateX(28px); } to { transform: translateX(0); } }
.fc-drawer-head { padding: 16px 20px; border-bottom: 1px solid var(--line); background: var(--panel); display: flex; align-items: flex-start; gap: 12px; }
.fc-drawer-head .dt { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.fc-drawer-head .ds { font-family: var(--font-mono); font-size: 10px; color: var(--accent); letter-spacing: 0.04em; margin-top: 4px; text-transform: uppercase; }
.fc-drawer-close { margin-left: auto; background: none; border: 1px solid var(--line); border-radius: 4px; cursor: pointer; padding: 5px; color: var(--ink-3); display: grid; place-items: center; }
.fc-drawer-close:hover { background: var(--bg-2); color: var(--ink); }
.fc-drawer-body { flex: 1; overflow-y: auto; padding: 20px; }
.fc-excerpt {
  background: #fdfcf8; border: 1px solid var(--line); border-radius: 5px;
  padding: 26px 28px; position: relative;
  font-family: var(--font-serif); font-size: 13px; line-height: 1.7; color: var(--ink);
  box-shadow: 0 1px 0 rgba(0,0,0,0.03);
}
.fc-excerpt .pagemark {
  position: absolute; top: 16px; right: 20px;
  font-family: var(--font-mono); font-size: 9px; color: var(--ink-4);
  letter-spacing: 0.08em; text-transform: uppercase;
}
.fc-excerpt h4 {
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink);
  margin: 18px 0 8px; padding-bottom: 5px; border-bottom: 1px solid var(--line);
}
.fc-excerpt h4:first-child { margin-top: 0; }
.fc-excerpt p { margin: 0 0 10px; }
.fc-excerpt p.cite {
  background: var(--info-soft); border-left: 3px solid var(--accent);
  padding: 12px 14px 14px; font-size: 12.5px; color: var(--ink-2);
  position: relative; border-radius: 0 4px 4px 0; margin: 4px 0 12px;
  animation: hl 1.2s ease 0.2s both;
}
@keyframes hl { 0% { background: #fff4cc; } 100% { background: var(--info-soft); } }
.fc-excerpt p.cite::after {
  content: attr(data-cite); position: absolute; top: 6px; right: 10px;
  font-family: var(--font-mono); font-style: normal; font-size: 8.5px;
  color: var(--accent); letter-spacing: 0.08em;
}
.fc-excerpt.missing { font-family: var(--font-sans); }
.fc-excerpt.missing h4 { color: var(--warn-d); }
.fc-missing-mark {
  display: inline-flex; align-items: center; gap: 7px; margin-bottom: 14px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--warn-d); background: var(--warn-soft); border: 1px dashed var(--warn);
  padding: 5px 10px; border-radius: 4px;
}
.fc-drawer-foot { padding: 12px 20px; border-top: 1px solid var(--line); background: var(--panel); font-size: 10.5px; color: var(--ink-3); font-family: var(--font-mono); letter-spacing: 0.03em; display: flex; align-items: center; gap: 8px; }

/* ---------- radar ---------- */
.fc-radar { display: flex; flex-direction: column; gap: 12px; }
.fc-alert {
  background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px;
  overflow: hidden; transition: border-color 120ms ease;
}
.fc-alert:hover { border-color: var(--desk-line-2); }
.fc-alert-head {
  display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; cursor: pointer;
  font-family: inherit; width: 100%; text-align: left; background: none; border: none; color: inherit;
}
.fc-alert-head:hover { background: var(--desk-3); }
.fc-alert .abadge {
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; padding-top: 2px;
}
.fc-alert .abadge .adot { width: 8px; height: 8px; border-radius: 99px; }
.fc-alert .atitle { font-size: 15px; font-weight: 600; color: var(--desk-ink); letter-spacing: -0.01em; }
.fc-alert .ablurb { font-size: 12.5px; color: var(--desk-ink-3); line-height: 1.5; margin-top: 4px; max-width: 64ch; }
.fc-alert .astamp { font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); margin-top: 8px; letter-spacing: 0.03em; }
.fc-alert-right { margin-left: auto; display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.fc-alert .acount {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-size: 13px; padding: 4px 10px; border-radius: 99px;
  border: 1px solid var(--desk-line-2); color: var(--desk-ink-2);
  display: flex; align-items: baseline; gap: 5px;
}
.fc-alert .acount b { font-size: 17px; color: var(--desk-ink); font-weight: 600; }
.fc-alert .achev { color: var(--desk-ink-3); transition: transform 180ms ease; }
.fc-alert.open .achev { transform: rotate(180deg); }
.fc-alert-body { border-top: 1px solid var(--desk-line); }
.fc-affected {
  display: grid; grid-template-columns: 200px 1fr; gap: 16px;
  padding: 12px 18px; border-bottom: 1px dashed var(--desk-line); align-items: center;
}
.fc-affected.linked { grid-template-columns: 200px 1fr auto; }
.fc-affected .acact { display: flex; justify-content: flex-end; }
.fc-affected:last-child { border-bottom: none; }
.fc-affected .acn { font-size: 13px; font-weight: 500; color: var(--desk-ink); }
.fc-affected .acr { font-size: 12.5px; color: var(--desk-ink-3); line-height: 1.5; }
.fc-affected.linked .acn { color: var(--desk-ink); }
.fc-see-reasoning {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  -webkit-appearance: none; appearance: none;
  background: rgba(143,184,255,0.10); border: 1px solid rgba(143,184,255,0.30);
  color: var(--desk-accent); border-radius: 5px; padding: 6px 12px;
  font: inherit; font-size: 11.5px; font-weight: 500; cursor: pointer; letter-spacing: 0.01em;
}
.fc-see-reasoning:hover { background: rgba(143,184,255,0.18); border-color: var(--desk-accent); }
.fc-see-reasoning .ico { color: var(--desk-accent); }
.fc-affected .known { display: inline-block; margin-top: 3px; font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--desk-accent); }

.sev-dot { width: 8px; height: 8px; border-radius: 99px; display: inline-block; }
.sev-dot.info { background: #8aa3e8; } .sev-dot.warn { background: #e8c489; } .sev-dot.bad { background: #f0908a; }

/* toast */
.fc-toast {
  position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%);
  background: var(--desk-2); border: 1px solid var(--desk-line-2); color: var(--desk-ink);
  padding: 11px 18px; border-radius: 6px; font-size: 13px; z-index: 80;
  box-shadow: 0 12px 32px rgba(0,0,0,0.5); display: flex; align-items: center; gap: 10px;
  animation: toast-in 200ms ease;
}
@keyframes toast-in { from { opacity: 0; transform: translate(-50%, 10px); } }
.fc-toast .ico { color: #98d6a7; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}

/* responsive — demo on a laptop */
@media (max-width: 1100px) {
  .fc-clients { grid-template-columns: 1fr; }
  .fc-idea-grid { grid-template-columns: 1fr; }
}
@media (max-width: 880px) {
  .fc-app { grid-template-columns: 1fr; grid-template-rows: 48px 1fr; }
  .fc-side { display: none; }
  .fc-top { grid-column: 1; }
}

/* ============================================================
   Additions: client switcher, Home overview, Client Profile,
   and hand-rolled charts. All reuse the --desk-* token family.
   ============================================================ */

/* ---------- client switcher / combobox ---------- */
.fc-cbx { position: relative; }
.fc-cbx.topbar .fc-cbx-btn {
  display: flex; align-items: center; gap: 8px;
  min-width: 200px; max-width: 280px;
  border: 1px solid var(--desk-line-2); border-radius: 4px;
  padding: 4px 10px; background: none; color: var(--desk-ink-2);
  font: inherit; font-size: 12px; cursor: pointer;
}
.fc-cbx.topbar .fc-cbx-btn:hover { background: var(--desk-3); }
.fc-cbx.topbar .fc-cbx-btn.open { border-color: var(--desk-accent); }
.fc-cbx .fc-cbx-btn .lab { font-weight: 500; color: var(--desk-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-cbx .fc-cbx-btn .aum { font-family: var(--font-mono); font-size: 11px; color: var(--desk-ink-3); }
.fc-cbx.block { display: block; }
.fc-cbx.block .fc-cbx-btn {
  width: 100%; display: flex; align-items: center; gap: 11px;
  border: 1px solid var(--desk-line-2); border-radius: 6px;
  padding: 14px 16px; background: var(--desk); color: var(--desk-ink);
  font: inherit; font-size: 15px; cursor: pointer;
}
.fc-cbx.block .fc-cbx-btn .lab { font-weight: 500; }
.fc-cbx.block .fc-cbx-btn:hover, .fc-cbx.block .fc-cbx-btn.open { border-color: var(--desk-accent); }
.fc-cbx-pop {
  position: absolute; top: calc(100% + 6px); left: 0; width: 340px; max-width: 92vw;
  background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 8px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.5); z-index: 40; overflow: hidden; animation: fade 0.14s ease;
}
.fc-cbx.block .fc-cbx-pop { width: 100%; }
.fc-cbx-search { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--desk-line); color: var(--desk-ink-3); }
.fc-cbx-search input { flex: 1; background: none; border: none; outline: none; color: var(--desk-ink); font: inherit; font-size: 13px; }
.fc-cbx-search input::placeholder { color: var(--desk-ink-3); }
.fc-cbx-list { max-height: 318px; overflow-y: auto; padding: 5px; }
.fc-cbx-opt { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: none; border-radius: 6px; padding: 10px 11px; cursor: pointer; color: inherit; font: inherit; }
.fc-cbx-opt:hover { background: var(--desk-3); }
.fc-cbx-opt.sel { background: rgba(143,184,255,0.10); }
.fc-cbx-opt .oc { flex: 1; min-width: 0; }
.fc-cbx-opt .on { font-size: 13.5px; font-weight: 500; color: var(--desk-ink); }
.fc-cbx-opt .oh { font-size: 11px; color: var(--desk-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.fc-cbx-opt .om { text-align: right; flex-shrink: 0; }
.fc-cbx-opt .oa { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 12px; color: var(--desk-ink-2); }
.fc-cbx-opt .oj { font-family: var(--font-mono); font-size: 9.5px; color: var(--desk-ink-3); margin-top: 2px; }
.fc-cbx-empty { padding: 18px; text-align: center; font-size: 12px; color: var(--desk-ink-3); }

/* ---------- shared section header ---------- */
.fc-sec-head { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.fc-sec-head h3 { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--desk-ink); letter-spacing: -0.01em; margin: 0; }
.fc-sec-head h3 .ico { color: var(--desk-accent); }
.fc-sec-count { font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); background: rgba(255,255,255,0.05); border: 1px solid var(--desk-line); padding: 1px 7px; border-radius: 99px; }
.fc-sec-cap { margin-left: auto; font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); letter-spacing: 0.03em; }
.fc-seclink { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; background: none; border: none; color: var(--desk-accent); font: inherit; font-size: 12px; cursor: pointer; }
.fc-seclink:hover { text-decoration: underline; }

/* ---------- Home: KPIs ---------- */
.fc-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 26px; }
.fc-kpi { background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 16px 18px; }
.fc-kpi .kh { display: flex; align-items: center; gap: 7px; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); font-weight: 600; }
.fc-kpi .kh .ico { color: var(--desk-ink-3); }
.fc-kpi .kv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 28px; color: var(--desk-ink); margin-top: 9px; letter-spacing: -0.01em; }
.fc-kpi .ks { font-size: 11.5px; color: var(--desk-ink-3); margin-top: 4px; }

/* ---------- Home: alerts + book ---------- */
.fc-home-sec { margin-bottom: 28px; }
.fc-booksearch { margin-left: auto; display: flex; align-items: center; gap: 7px; border: 1px solid var(--desk-line-2); border-radius: 5px; padding: 5px 10px; color: var(--desk-ink-3); }
.fc-booksearch input { background: none; border: none; outline: none; color: var(--desk-ink); font: inherit; font-size: 12.5px; width: 160px; }
.fc-booksearch input::placeholder { color: var(--desk-ink-3); }

.fc-alerts { display: flex; flex-direction: column; gap: 10px; }
.fc-acard { display: flex; align-items: flex-start; gap: 14px; background: var(--desk-2); border: 1px solid var(--desk-line-2); border-left: 3px solid var(--desk-line-2); border-radius: 6px; padding: 14px 16px; }
.fc-acard.blocker { border-left-color: #f0908a; }
.fc-acard.warning { border-left-color: #e8c489; }
.fc-acard.note { border-left-color: #8aa3e8; }
.fc-acard .ag { width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; flex-shrink: 0; }
.fc-acard.blocker .ag { background: rgba(240,144,138,0.14); color: #f0908a; }
.fc-acard.warning .ag { background: rgba(232,196,137,0.14); color: #e8c489; }
.fc-acard.note .ag { background: rgba(138,163,232,0.14); color: #8aa3e8; }
.fc-acard .abody { flex: 1; min-width: 0; }
.fc-acard .atop { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.asev { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; border: 1px solid; }
.asev.blocker { color: #f0908a; border-color: rgba(240,144,138,0.4); }
.asev.warning { color: #e8c489; border-color: rgba(232,196,137,0.4); }
.asev.note { color: #8aa3e8; border-color: rgba(138,163,232,0.4); }
.fc-acard .acli { background: none; border: none; padding: 0; font: inherit; font-size: 12px; color: var(--desk-accent); cursor: pointer; }
.fc-acard .acli:hover { text-decoration: underline; }
.fc-acard .acli.muted { color: var(--desk-ink-3); cursor: default; }
.fc-acard .acli.muted:hover { text-decoration: none; }
.fc-acard .atitle { font-size: 14px; font-weight: 600; color: var(--desk-ink); letter-spacing: -0.01em; }
.fc-acard .ablurb { font-size: 12.5px; color: var(--desk-ink-3); line-height: 1.5; margin-top: 3px; max-width: 74ch; }
.fc-acard .aact { flex-shrink: 0; align-self: center; display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid var(--desk-line-2); color: var(--desk-ink-2); border-radius: 5px; padding: 7px 12px; font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.fc-acard .aact:hover { background: var(--desk-3); color: var(--desk-ink); border-color: var(--desk-accent); }

.fc-book { display: flex; flex-direction: column; gap: 8px; }
.fc-bookrow { display: flex; align-items: center; gap: 18px; width: 100%; text-align: left; background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 14px 16px; cursor: pointer; color: inherit; font: inherit; transition: border-color 120ms ease, background 120ms ease; }
.fc-bookrow:hover { border-color: var(--desk-accent); background: var(--desk-3); }
.fc-bookrow .brmain { flex: 1; min-width: 0; }
.fc-bookrow .brn { font-size: 15px; font-weight: 600; color: var(--desk-ink); display: flex; align-items: center; gap: 9px; }
.fc-bookrow .brstar { font-family: var(--font-mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--desk-accent); border: 1px solid var(--desk-line-2); padding: 1px 6px; border-radius: 99px; }
.fc-bookrow .brh { font-size: 12px; color: var(--desk-ink-3); margin-top: 2px; }
.fc-bookrow .brtags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fc-bookrow .brtag { font-size: 10px; color: var(--desk-ink-3); border: 1px dashed var(--desk-line-2); padding: 2px 8px; border-radius: 99px; }
.fc-bookrow .brstat { text-align: right; flex-shrink: 0; }
.fc-bookrow .braum { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 17px; color: var(--desk-ink); }
.fc-bookrow .brmeta { font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); margin-top: 4px; }
.fc-bookrow .brgo { color: var(--desk-ink-3); flex-shrink: 0; }
.fc-bookrow:hover .brgo { color: var(--desk-accent); }

/* ---------- Client Profile ---------- */
.fc-back { display: inline-flex; align-items: center; gap: 7px; background: none; border: none; color: var(--desk-ink-3); font: inherit; font-size: 12px; cursor: pointer; padding: 0; margin-bottom: 16px; }
.fc-back:hover { color: var(--desk-ink); }
.fc-prof-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--desk-line); }
.fc-prof-head .ph-name { font-size: 24px; font-weight: 600; letter-spacing: -0.02em; color: var(--desk-ink); display: flex; align-items: center; gap: 12px; }
.fc-prof-head .ph-star { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--desk-accent); border: 1px solid var(--desk-line-2); padding: 2px 8px; border-radius: 99px; }
.fc-prof-head .ph-house { font-size: 13px; color: var(--desk-ink-3); margin-top: 6px; }
.fc-prof-head .ph-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fc-prof-head .ph-tag { font-size: 10.5px; color: var(--desk-ink-2); border: 1px dashed var(--desk-line-2); padding: 2px 9px; border-radius: 99px; }
.fc-prof-head .ph-r { flex-shrink: 0; }

.fc-prof-stats { display: flex; flex-wrap: wrap; margin: 18px 0 22px; border: 1px solid var(--desk-line-2); border-radius: 6px; overflow: hidden; background: var(--desk-2); }
.fc-prof-stats .ps { flex: 1; min-width: 140px; padding: 13px 16px; border-right: 1px solid var(--desk-line); display: flex; flex-direction: column; gap: 5px; }
.fc-prof-stats .ps:last-child { border-right: none; }
.fc-prof-stats .psk { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); font-weight: 600; }
.fc-prof-stats .psv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 15px; color: var(--desk-ink); }

.fc-prof-alerts-sec { margin-bottom: 24px; }
.fc-prof-alerts-sec .fc-sec-head { margin-bottom: 10px; }
.fc-prof-alerts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 0; }
.fc-alerts-empty { font-size: 13px; color: var(--desk-ink-3); padding: 18px 0; }
.fc-pa { display: flex; align-items: center; gap: 12px; background: var(--desk-2); border: 1px solid var(--desk-line-2); border-left: 3px solid var(--desk-line-2); border-radius: 6px; padding: 11px 14px; }
.fc-pa.blocker { border-left-color: #f0908a; }
.fc-pa.warning { border-left-color: #e8c489; }
.fc-pa.note { border-left-color: #8aa3e8; }
.fc-pa .pasev { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; border: 1px solid; flex-shrink: 0; }
.fc-pa.blocker .pasev { color: #f0908a; border-color: rgba(240,144,138,0.4); }
.fc-pa.warning .pasev { color: #e8c489; border-color: rgba(232,196,137,0.4); }
.fc-pa.note .pasev { color: #8aa3e8; border-color: rgba(138,163,232,0.4); }
.fc-pa .patext { flex: 1; font-size: 13px; color: var(--desk-ink); }
.fc-pa .paact { display: inline-flex; align-items: center; gap: 5px; background: none; border: none; color: var(--desk-accent); font: inherit; font-size: 12px; cursor: pointer; flex-shrink: 0; }
.fc-pa .paact:hover { text-decoration: underline; }

.fc-prof-docs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 24px; }
.fc-pdoc { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--desk-ink-3); padding: 8px 0; border-top: 1px dashed var(--desk-line); line-height: 1.4; }
.fc-pdoc .ico { flex-shrink: 0; margin-top: 1px; color: var(--desk-ink-3); }

/* ---------- chart cards + grid ---------- */
.fc-charts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 26px; }
.fc-chart-card { background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 16px 18px; display: flex; flex-direction: column; }
.fc-chart-card.span2 { grid-column: 1 / -1; }
.fc-chart-card .cc-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.fc-chart-card .cc-head h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-2); font-weight: 600; margin: 0; }
.fc-chart-card .cc-hint { font-family: var(--font-mono); font-size: 9.5px; color: var(--desk-ink-3); letter-spacing: 0.03em; }
.fc-chart-card .cc-body { flex: 1; }

/* donut */
.cc-donut-row { display: flex; align-items: center; gap: 22px; }
.fc-donut { position: relative; flex-shrink: 0; }
.fc-donut svg { display: block; }
.fc-donut-c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; }
.fc-donut-c .t { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 17px; color: var(--desk-ink); }
.fc-donut-c .s { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); margin-top: 1px; }

/* shared legend */
.fc-legend { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.fc-li { display: flex; align-items: center; gap: 9px; font-size: 12px; }
.fc-li .sw { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.fc-li .lk { color: var(--desk-ink-2); flex: 1; }
.fc-li .lv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--desk-ink); }

/* bullet */
.cc-gauges { display: flex; flex-direction: column; gap: 18px; }
.fc-bullet .bv { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.fc-bullet .bv b { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 20px; font-weight: 600; color: var(--desk-ink); }
.fc-bullet .bt { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.03em; padding: 2px 7px; border-radius: 4px; border: 1px solid; }
.fc-bullet .bt.ok { color: #98d6a7; border-color: rgba(152,214,167,0.35); }
.fc-bullet .bt.bad { color: #f0908a; border-color: rgba(240,144,138,0.4); }
.fc-bullet .bt.warn { color: #e8c489; border-color: rgba(232,196,137,0.4); }
.fc-bullet .bt.note { color: var(--desk-ink-3); border-color: var(--desk-line-2); }
.fc-bullet .btrack { position: relative; height: 10px; background: var(--desk); border: 1px solid var(--desk-line); border-radius: 99px; }
.fc-bullet .bfill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 99px; min-width: 4px; }
.fc-bullet .bfill.ok { background: #8fb8ff; }
.fc-bullet .bfill.warn { background: #e8c489; }
.fc-bullet .bfill.bad { background: #f0908a; }
.fc-bullet .bmark { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--desk-ink); border-radius: 2px; }
.fc-bullet .bnote { font-size: 11px; color: var(--desk-ink-3); line-height: 1.45; margin-top: 8px; }

/* split bar */
.fc-splitbar .sbar { display: flex; height: 14px; border-radius: 5px; overflow: hidden; border: 1px solid var(--desk-line); }
.fc-splitbar .sbar i { display: block; height: 100%; }
.fc-splitbar .slegend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; }
.fc-splitbar .sli { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.fc-splitbar .sli .sw { width: 10px; height: 10px; border-radius: 3px; }
.fc-splitbar .sli .sk { color: var(--desk-ink-2); }
.fc-splitbar .sli .sv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--desk-ink); }

/* trend */
.cc-trend-row { display: flex; align-items: flex-end; gap: 18px; }
.cc-trend-fig { flex-shrink: 0; }
.cc-trend-fig .ctv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 26px; color: var(--desk-ink); letter-spacing: -0.01em; }
.cc-trend-fig .ctd { font-family: var(--font-mono); font-size: 11px; margin-top: 4px; }
.cc-trend-fig .ctd.up { color: #98d6a7; }
.cc-trend-fig .ctd.down { color: #f0908a; }
.cc-trend-fig .ctd span { color: var(--desk-ink-3); }
.fc-trend { flex: 1; height: 88px; min-width: 0; }
.fc-trend .tsvg { width: 100%; height: 100%; display: block; }
.fc-trend .tarea { fill: rgba(143,184,255,0.12); stroke: none; }
.fc-trend .tline { fill: none; stroke: #8fb8ff; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.fc-trend .tdot { fill: #8fb8ff; }

/* timeline */
.fc-timeline { position: relative; display: flex; justify-content: space-between; gap: 16px; padding: 6px 4px 4px; }
.fc-timeline .tlrail { position: absolute; left: 10px; right: 10px; top: 12px; height: 1px; background: var(--desk-line-2); }
.fc-timeline .tlnode { position: relative; flex: 1; padding-top: 22px; }
.fc-timeline .tldot { position: absolute; top: 7px; left: 0; width: 11px; height: 11px; border-radius: 99px; border: 2px solid var(--desk-2); }
.fc-timeline .tldot.info { background: #8aa3e8; }
.fc-timeline .tldot.warn { background: #e8c489; }
.fc-timeline .tldot.bad { background: #f0908a; }
.fc-timeline .tld { font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); letter-spacing: 0.03em; }
.fc-timeline .tll { font-size: 12.5px; font-weight: 500; color: var(--desk-ink); margin-top: 4px; }
.fc-timeline .tls { font-size: 11px; color: var(--desk-ink-3); line-height: 1.45; margin-top: 3px; }

/* holdings table */
.fc-holdings { width: 100%; border-collapse: collapse; }
.fc-holdings td { padding: 9px 10px; border-top: 1px solid var(--desk-line); font-size: 13px; vertical-align: middle; }
.fc-holdings tr:first-child td { border-top: none; }
.fc-holdings .hk { color: var(--desk-ink); width: 40%; }
.fc-holdings .hbarc { width: 38%; }
.fc-holdings .hbar { display: block; height: 8px; background: var(--desk); border: 1px solid var(--desk-line); border-radius: 99px; overflow: hidden; }
.fc-holdings .hbar i { display: block; height: 100%; background: #8fb8ff; border-radius: 99px; }
.fc-holdings .hp { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--desk-ink-2); text-align: right; width: 10%; }
.fc-holdings .hv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--desk-ink); text-align: right; }

/* ---------- Fitness Check step 1: dropdown picker ---------- */
.fc-pick-panel { background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 8px; padding: 24px; max-width: 560px; margin: 0 auto; }
.fc-pick-lbl { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); font-weight: 600; margin-bottom: 9px; }
.fc-pick-or { display: flex; align-items: center; gap: 12px; margin: 22px 0 16px; color: var(--desk-ink-3); font-size: 11px; }
.fc-pick-or::before, .fc-pick-or::after { content: ""; flex: 1; height: 1px; background: var(--desk-line); }
.fc-pick-quick { display: flex; flex-direction: column; gap: 10px; }
.fc-quick { position: relative; text-align: left; background: var(--desk); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 14px 16px; cursor: pointer; color: inherit; font: inherit; transition: border-color 120ms ease, background 120ms ease; }
.fc-quick:hover { border-color: var(--desk-accent); background: var(--desk-3); }
.fc-quick.sel { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.fc-quick .qstar { position: absolute; top: 12px; right: 14px; font-family: var(--font-mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--desk-accent); border: 1px solid var(--desk-line-2); padding: 1px 6px; border-radius: 99px; }
.fc-quick .qn { font-size: 15px; font-weight: 600; color: var(--desk-ink); }
.fc-quick .qh { font-size: 12px; color: var(--desk-ink-3); margin-top: 3px; }
.fc-quick .qm { display: flex; gap: 12px; margin-top: 9px; font-family: var(--font-mono); font-size: 11px; }
.fc-quick .qaum { color: var(--desk-ink-2); }
.fc-quick .qj { color: var(--desk-ink-3); }

/* ---------- responsive for the new surfaces ---------- */
@media (max-width: 1100px) {
  .fc-kpis { grid-template-columns: repeat(2, 1fr); }
  .fc-charts { grid-template-columns: 1fr; }
  .fc-prof-docs { grid-template-columns: 1fr; }
}
@media (max-width: 880px) {
  .fc-cbx.topbar { display: none; }
  .fc-prof-head { flex-direction: column; }
  .fc-bookrow { flex-direction: column; align-items: flex-start; gap: 10px; }
  .fc-bookrow .brstat { text-align: left; }
  .fc-acard { flex-wrap: wrap; }
  .fc-acard .aact { align-self: flex-start; }
}

/* ============================================================
   Round 2: readable switcher, clickable KPIs, firm analytics,
   interactive trend (range toggle + hover tooltip), radar chips.
   (Rules below intentionally override earlier ones.)
   ============================================================ */

/* topbar client switcher — background = the app theme colour, text coloured so
   it reads. appearance:none kills the native (light) button chrome that otherwise
   paints over our background in OS light mode. */
.fc-cbx.topbar .fc-cbx-btn {
  -webkit-appearance: none;
  appearance: none;
  background: var(--desk-2);
  border: 1px solid var(--desk-line-2);
  color: var(--desk-ink);
}
.fc-cbx.topbar .fc-cbx-btn:hover { background: var(--desk-3); border-color: var(--desk-line-2); }
.fc-cbx.topbar .fc-cbx-btn.open { background: var(--desk-3); border-color: var(--desk-accent); }
.fc-cbx.topbar .fc-cbx-btn .lab { color: var(--desk-ink); font-weight: 600; }
.fc-cbx.topbar .fc-cbx-btn .aum { color: var(--desk-ink-3); }
.fc-cbx.topbar .fc-cbx-btn > .ico:first-child { color: var(--desk-ink-3); }
.fc-cbx-btn:focus { outline: none; }
.fc-cbx-btn:focus-visible { outline: none; border-color: var(--desk-accent); }

/* KPI: 3-up grid + clickable card */
.fc-kpis.kpi3 { grid-template-columns: repeat(3, 1fr); }
button.fc-kpi { text-align: left; font: inherit; cursor: pointer; transition: border-color 120ms ease, background 120ms ease; }
.fc-kpi.clickable:hover { border-color: var(--desk-accent); background: var(--desk-3); }
.fc-kpi.accent { border-left: 3px solid var(--warn); }
.fc-kpi .kh { position: relative; }
.fc-kpi .kh .kgo { margin-left: auto; color: var(--desk-ink-3); }
.fc-kpi.clickable:hover .kh .kgo { color: var(--desk-accent); }

/* alert cards are now whole-card buttons */
.fc-acard { width: 100%; text-align: left; font: inherit; cursor: pointer; transition: border-color 120ms ease, background 120ms ease; }
.fc-acard:hover { border-color: var(--desk-accent); background: var(--desk-3); }
.fc-acard .acli { pointer-events: none; color: var(--desk-accent); }
.fc-acard .aact { pointer-events: none; }
.fc-acard:hover .aact { color: var(--desk-ink); border-color: var(--desk-accent); }

/* horizontal bars (firm: AUM by client) */
.fc-hbars { display: flex; flex-direction: column; gap: 14px; }
.fc-hbrow { display: grid; grid-template-columns: 168px 1fr 64px; align-items: center; gap: 12px; }
.fc-hbrow .hbk { font-size: 12.5px; color: var(--desk-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-hbrow .hbtrack { height: 12px; background: var(--desk); border: 1px solid var(--desk-line); border-radius: 99px; overflow: hidden; }
.fc-hbrow .hbfill { display: block; height: 100%; background: #8fb8ff; border-radius: 99px; }
.fc-hbrow .hbv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; color: var(--desk-ink); text-align: right; }

/* interactive net-worth trend */
.fc-trend-ranges { display: inline-flex; gap: 2px; padding: 2px; background: var(--desk); border: 1px solid var(--desk-line); border-radius: 7px; margin-bottom: 14px; }
.fc-trend-ranges .trbtn { appearance: none; border: none; background: none; color: var(--desk-ink-3); font: inherit; font-size: 11px; font-weight: 500; padding: 4px 12px; border-radius: 5px; cursor: pointer; }
.fc-trend-ranges .trbtn:hover { color: var(--desk-ink); }
.fc-trend-ranges .trbtn.on { background: var(--desk-3); color: var(--desk-ink); }
/* the interactive TrendLine outer container must size to its content
   (range toggle + plot); override the round-1 fixed-height sparkline rule
   that otherwise clamps it to 88px and lets the plot spill out of the card. */
.fc-trend { height: auto; flex: none; min-width: 0; }
.fc-trend-wrap { position: relative; }
.fc-trend-wrap .tsvg { display: block; width: 100%; height: 100%; }
.fc-trend-wrap .tt-guide { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--desk-line-2); pointer-events: none; }
.fc-trend-wrap .tt-hot { position: absolute; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 99px; background: #8fb8ff; box-shadow: 0 0 0 3px rgba(143,184,255,0.2); pointer-events: none; }
.fc-trend-wrap .tt-tip { position: absolute; z-index: 5; transform: translate(-50%, -120%); background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 6px 10px; box-shadow: 0 10px 26px rgba(0,0,0,0.5); pointer-events: none; white-space: nowrap; }
.fc-trend-wrap .tt-tip .ttl { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.04em; color: var(--desk-ink-3); text-transform: uppercase; }
.fc-trend-wrap .tt-tip .ttv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 14px; color: var(--desk-ink); margin-top: 2px; }

/* radar jurisdiction chip */
.ajur { display: inline-block; font-family: var(--font-mono); font-size: 9px; font-weight: 600; letter-spacing: 0.08em; padding: 2px 7px; border-radius: 4px; margin-right: 9px; border: 1px solid; vertical-align: middle; position: relative; top: -1px; }
.ajur.us { color: #8fb8ff; border-color: rgba(143,184,255,0.4); background: rgba(143,184,255,0.10); }
.ajur.in { color: #e8c489; border-color: rgba(232,196,137,0.4); background: rgba(232,196,137,0.10); }

@media (max-width: 1100px) {
  .fc-kpis.kpi3 { grid-template-columns: 1fr; }
  .fc-hbrow { grid-template-columns: 130px 1fr 58px; }
}

/* ============================================================
   Round 3: Home "Upcoming" strip, Data room, Activity trail.
   ============================================================ */

/* ---- Home: minimal global upcoming strip ---- */
.fc-upcoming { display: flex; flex-direction: column; border: 1px solid var(--desk-line-2); border-radius: 6px; overflow: hidden; background: var(--desk-2); }
.fc-up-row { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--desk-line); padding: 11px 16px; cursor: pointer; color: inherit; font: inherit; }
.fc-up-row:first-child { border-top: none; }
.fc-up-row:hover { background: var(--desk-3); }
.fc-up-row .up-dot { width: 8px; height: 8px; border-radius: 99px; flex-shrink: 0; }
.fc-up-row .up-dot.info { background: #8aa3e8; }
.fc-up-row .up-dot.warn { background: #e8c489; }
.fc-up-row .up-dot.bad { background: #f0908a; }
.fc-up-row .up-date { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 11.5px; color: var(--desk-ink-3); width: 92px; flex-shrink: 0; }
.fc-up-row .up-label { font-size: 13px; color: var(--desk-ink); flex: 1; }
.fc-up-row .up-client { font-size: 11.5px; color: var(--desk-ink-3); white-space: nowrap; }
.fc-up-row .up-go { color: var(--desk-ink-3); flex-shrink: 0; }
.fc-up-row:hover .up-go { color: var(--desk-accent); }

/* ---- Data room ---- */
.fc-droom { display: flex; flex-direction: column; gap: 14px; }
.fc-droom-head { display: flex; align-items: center; gap: 14px; }
.fc-droom-head .dr-name { font-size: 15px; font-weight: 600; color: var(--desk-ink); }
.fc-droom-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fc-droom-viewall { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid var(--desk-line-2); color: var(--desk-ink-2); border-radius: 5px; padding: 6px 12px; font: inherit; font-size: 12px; cursor: pointer; }
.fc-droom-viewall:hover { background: var(--desk-3); color: var(--desk-ink); border-color: var(--desk-accent); }
.fc-droom-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fc-droom-filter { appearance: none; background: var(--desk) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%237d8b85' d='M0 0h10L5 6z'/></svg>") no-repeat right 10px center; border: 1px solid var(--desk-line-2); color: var(--desk-ink); font: inherit; font-size: 12.5px; padding: 7px 28px 7px 11px; border-radius: 5px; cursor: pointer; }
.fc-droom-filter:focus { outline: none; border-color: var(--desk-accent); }
.fc-droom-search { display: flex; align-items: center; gap: 7px; border: 1px solid var(--desk-line-2); border-radius: 5px; padding: 6px 11px; color: var(--desk-ink-3); flex: 1; min-width: 180px; }
.fc-droom-search input { background: none; border: none; outline: none; color: var(--desk-ink); font: inherit; font-size: 12.5px; width: 100%; }
.fc-droom-search input::placeholder { color: var(--desk-ink-3); }
.fc-droom-add { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; background: rgba(143,184,255,0.10); border: 1px dashed var(--desk-accent); color: var(--desk-accent); border-radius: 6px; padding: 9px 14px; font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.fc-droom-add:hover { background: rgba(143,184,255,0.16); }
.fc-droom-row { display: flex; align-items: center; gap: 11px; background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; padding: 12px 14px; }
.fc-droom-row .ico { color: var(--desk-ink-3); flex-shrink: 0; }
.fc-droom-row .dr-title { font-size: 13px; color: var(--desk-ink); flex: 1; }
.fc-droom-row .dr-client { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.03em; color: var(--desk-ink-3); border: 1px solid var(--desk-line-2); padding: 2px 8px; border-radius: 99px; white-space: nowrap; }
.fc-droom > .fc-droom-row { margin: 0; }
.fc-droom-list, .fc-droom .fc-droom-rows { display: flex; flex-direction: column; gap: 8px; }

/* ---- Activity trail ---- */
.fc-trail { position: relative; padding-left: 8px; }
.fc-trail-empty { color: var(--desk-ink-3); font-size: 13px; padding: 24px 0; }
.fc-trail-item { position: relative; display: flex; gap: 16px; padding: 0 0 22px 0; }
.fc-trail-item::before { content: ""; position: absolute; left: 12px; top: 22px; bottom: -4px; width: 1px; background: var(--desk-line-2); }
.fc-trail-item:last-child::before { display: none; }
.fc-trail-item .tr-dot { position: relative; z-index: 1; width: 25px; height: 25px; border-radius: 99px; flex-shrink: 0; display: grid; place-items: center; border: 1px solid var(--desk-line-2); background: var(--desk-2); }
.fc-trail-item .tr-dot .ico { width: 12px; height: 12px; }
.fc-trail-item .tr-dot.suggestion { color: #e8c489; }
.fc-trail-item .tr-dot.transaction { color: #98d6a7; }
.fc-trail-item .tr-dot.document { color: #8aa3e8; }
.fc-trail-item .tr-dot.note { color: #d39de1; }
.fc-trail-item .tr-dot.review { color: #8ddada; }
.fc-trail-item .tr-dot.fitcheck { color: var(--desk-accent); }
.fc-trail-item .tr-body { flex: 1; padding-top: 2px; }
.fc-trail-item .tr-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.fc-trail-item .tr-date { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 11px; color: var(--desk-ink-3); }
.fc-trail-item .tr-type { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; padding: 1px 7px; border-radius: 4px; border: 1px solid var(--desk-line-2); color: var(--desk-ink-3); }
.fc-trail-item .tr-type.suggestion { color: #e8c489; border-color: rgba(232,196,137,0.4); }
.fc-trail-item .tr-type.transaction { color: #98d6a7; border-color: rgba(152,214,167,0.4); }
.fc-trail-item .tr-type.document { color: #8aa3e8; border-color: rgba(138,163,232,0.4); }
.fc-trail-item .tr-type.note { color: #d39de1; border-color: rgba(211,157,225,0.4); }
.fc-trail-item .tr-type.review { color: #8ddada; border-color: rgba(141,218,218,0.4); }
.fc-trail-item .tr-type.fitcheck { color: var(--desk-accent); border-color: rgba(143,184,255,0.4); }
.fc-trail-item .tr-title { font-size: 14px; font-weight: 600; color: var(--desk-ink); letter-spacing: -0.01em; }
.fc-trail-item .tr-detail { font-size: 12.5px; color: var(--desk-ink-3); line-height: 1.5; margin-top: 3px; max-width: 70ch; }

/* ============================================================
   Dark color-scheme + native-control reset. Without this, macOS/iOS
   in light mode paints native (light) chrome on <button>/<select>/<input>
   that ignores our background, leaving unreadable white pills in the bar.
   ============================================================ */
:root, html, body { color-scheme: dark; }
.fc-org,
.fc-cbx-btn,
.fc-cbx-search input,
.fc-booksearch input,
.fc-droom-search input,
.fc-droom-filter,
.fc-ta,
.twk-field { -webkit-appearance: none; appearance: none; }
/* the org switcher had no background of its own — give it the theme colour too */
.fc-org { background: var(--desk-2); color: var(--desk-ink-2); }
.fc-org:hover { background: var(--desk-3); }

/* The combobox wrapper's variant class ("topbar"/"block") collides with the
   Compliance OS base .topbar (white panel bg, --line border-bottom, 0 16px
   padding). Neutralise all of it so only our dark button shows — no white
   frame, no padding gap, no light underline. */
.fc-cbx, .fc-cbx.topbar, .fc-cbx.block { background: transparent; border: 0; box-shadow: none; }
.fc-cbx.topbar { display: inline-flex; padding: 0; gap: 0; z-index: auto; }
.fc-cbx.topbar .fc-cbx-btn { width: 100%; }

/* clickable timeline nodes (used by Home "Upcoming") */
.fc-timeline .tlnode-btn { -webkit-appearance: none; appearance: none; background: none; border: none; font: inherit; text-align: left; cursor: pointer; }
.fc-timeline .tlnode-btn .tll { transition: color 120ms ease; }
.fc-timeline .tlnode-btn:hover .tll { color: var(--desk-accent); }
.fc-timeline .tlnode-btn:hover .tldot { box-shadow: 0 0 0 4px rgba(143,184,255,0.14); }

/* ============================================================
   Round 4: data-room folders, reasoning-trace dropdown,
   Home Upcoming range, Radar jurisdiction filter.
   ============================================================ */

/* Home "Upcoming" range toggle row */
.fc-up-bar { display: flex; justify-content: flex-end; margin-bottom: 12px; }

/* Radar jurisdiction filter row */
.fc-radar-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.fc-radar-bar-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--desk-ink-3); font-weight: 600; }

/* ---- Data room: collapsible folder filesystem ---- */
.fc-fs { display: flex; flex-direction: column; gap: 8px; }
.fc-folder { background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 6px; overflow: hidden; }
.fc-folder-head { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: none; color: var(--desk-ink); font: inherit; padding: 11px 14px; cursor: pointer; }
.fc-folder-head:hover { background: var(--desk-3); }
.fc-folder-head .fc-folder-chev { display: inline-flex; color: var(--desk-ink-3); transition: transform 160ms ease; }
.fc-folder.open .fc-folder-head .fc-folder-chev { transform: rotate(90deg); }
.fc-folder-head > .ico { color: var(--desk-accent); flex-shrink: 0; }
.fc-folder-name { font-size: 13px; font-weight: 500; flex: 1; }
.fc-folder-count { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 10px; color: var(--desk-ink-3); background: rgba(255,255,255,0.05); border: 1px solid var(--desk-line); padding: 1px 8px; border-radius: 99px; }
.fc-folder-body { border-top: 1px solid var(--desk-line); padding: 7px; display: flex; flex-direction: column; gap: 6px; }
.fc-folder-body .fc-droom-row { background: var(--desk); border-color: var(--desk-line); padding: 10px 12px; }

/* ---- Verdict report: collapsible reasoning trace ---- */
.fc-reasoning { max-width: 720px; margin: 0 auto 14px; background: #0a120f; border: 1px solid var(--desk-line-2); border-radius: 8px; overflow: hidden; }
.fc-reasoning-toggle { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: none; color: var(--desk-ink-2); font: inherit; font-size: 12.5px; padding: 12px 16px; cursor: pointer; }
.fc-reasoning-toggle:hover { background: rgba(255,255,255,0.02); color: var(--desk-ink); }
.fc-reasoning-toggle > .ico:first-child { color: var(--desk-accent); flex-shrink: 0; }
.fc-reasoning-toggle .rt-label { font-weight: 500; }
.fc-reasoning-toggle .rt-meta { font-family: var(--font-mono); font-size: 10px; color: var(--desk-ink-3); letter-spacing: 0.04em; }
.fc-reasoning-toggle .rt-chev { margin-left: auto; display: inline-flex; color: var(--desk-ink-3); transition: transform 180ms ease; }
.fc-reasoning.open .fc-reasoning-toggle .rt-chev { transform: rotate(180deg); }
.fc-reasoning-body { border-top: 1px solid var(--desk-line); padding: 14px 16px; font-family: var(--font-mono); font-feature-settings: var(--feat-mono); font-size: 12.5px; line-height: 1.55; }

/* ============================================================
   Round 5: (A) Client requirements on the profile, and
   (B) the transcript review modal. All on the dark desk —
   reuse --desk-* tokens, verdict tints match the app's
   green/amber/red treatment used elsewhere.
   ============================================================ */

/* ---------- (A) Client requirements ---------- */
.fc-reqs { display: flex; flex-direction: column; gap: 16px; }

/* small secondary button (section header + empty state) */
.fc-reqs-add {
  display: inline-flex; align-items: center; gap: 7px;
  -webkit-appearance: none; appearance: none;
  background: none; border: 1px solid var(--desk-line-2);
  color: var(--desk-ink-2); border-radius: 5px;
  padding: 7px 12px; font: inherit; font-size: 12px; cursor: pointer;
  white-space: nowrap; transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
}
.fc-reqs-add:hover { background: var(--desk-3); color: var(--desk-ink); border-color: var(--desk-accent); }
.fc-reqs-add .ico { color: var(--desk-ink-3); }
.fc-reqs-add:hover .ico { color: var(--desk-accent); }

/* muted empty-state card */
.fc-reqs-empty {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  background: var(--desk-2); border: 1px dashed var(--desk-line-2);
  border-radius: 6px; padding: 26px 18px; text-align: center;
}
.fc-reqs-empty .muted, .fc-reqs-empty.muted { color: var(--desk-ink-3); font-size: 12.5px; line-height: 1.5; max-width: 46ch; }

/* muted text helper scoped to the requirements + transcript surfaces
   (global .muted maps to the light --ink-3; on the dark desk these
   areas need the desk muted ink instead) */
.fc-reqs .muted,
.fc-req .muted,
.fc-disc .muted { color: var(--desk-ink-3); }

/* requirement block — one calm card; the requirement is the headline,
   matched instruments live below as a flat, divided list (no nested boxes) */
.fc-req {
  background: var(--desk-2); border: 1px solid var(--desk-line-2);
  border-radius: 10px; padding: 22px 24px;
  display: flex; flex-direction: column;
}

/* header row: category eyebrow (left) + current-stage badge (right) */
.fc-req-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.fc-req-cat {
  font-family: var(--font-mono); font-size: 10px; font-weight: 600;
  letter-spacing: 0.11em; text-transform: uppercase; color: var(--desk-accent);
}
/* current lifecycle stage — dot + label (color + text, never color alone) */
.fc-req-stage {
  display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0;
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap;
  color: var(--desk-ink-3); border: 1px solid var(--desk-line-2);
  padding: 3px 10px 3px 9px; border-radius: 999px;
}
.fc-req-stage .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.fc-req-stage.matched { color: var(--desk-accent); border-color: rgba(143,184,255,0.30); background: rgba(143,184,255,0.07); }
.fc-req-stage.review { color: #e8c489; border-color: rgba(232,196,137,0.30); background: rgba(232,196,137,0.07); }
.fc-req-stage.addressed { color: #98d6a7; border-color: rgba(152,214,167,0.30); background: rgba(152,214,167,0.07); }
.fc-req-stage.captured { color: var(--desk-ink-3); }

/* requirement text — the headline of the block */
.fc-req-text {
  font-size: 15px; line-height: 1.5; color: var(--desk-ink);
  letter-spacing: -0.01em; max-width: 70ch;
}

/* source — quiet inline link, no heavy chip */
.fc-req-src {
  display: inline-flex; align-items: center; gap: 6px; align-self: flex-start;
  margin-top: 12px; -webkit-appearance: none; appearance: none;
  background: none; border: 0; padding: 2px 0; cursor: pointer;
  font-family: var(--font-mono); font-feature-settings: var(--feat-mono);
  font-size: 10.5px; letter-spacing: 0.02em; color: var(--desk-ink-3);
  transition: color 150ms ease;
}
.fc-req-src:hover { color: var(--desk-ink-2); }
.fc-req-src .ico { color: var(--desk-ink-3); opacity: 0.85; }
.fc-req-src:hover .ico { color: var(--desk-accent); }

/* expanded quote */
.fc-req-quote {
  font-family: var(--font-serif); font-style: italic;
  font-size: 12.5px; line-height: 1.6; color: var(--desk-ink-3);
  margin-top: 9px; padding: 2px 0 2px 14px;
  border-left: 2px solid var(--desk-line-2); max-width: 64ch;
}

/* matched instruments — indented under the requirement with a guide rule,
   so they read clearly as children; divided list inside (no nested boxes) */
.fc-disc {
  display: flex; flex-direction: column;
  margin-top: 16px; margin-left: 16px; padding-left: 18px;
  border-left: 1px solid var(--desk-line);
}
.fc-disc-label {
  font-family: var(--font-mono); font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--desk-ink-3);
}
.fc-disc-empty { font-size: 12px; color: var(--desk-ink-3); }

/* candidate row — flat, hairline-divided (no per-card box) */
.fc-disc-row {
  display: flex; flex-direction: column; gap: 5px;
  padding: 16px 0 4px; border-top: 1px solid var(--desk-line);
}
.fc-disc-label + .fc-disc-row { border-top: 0; padding-top: 12px; }
.fc-disc-top { display: flex; align-items: center; gap: 10px; }
.fc-disc-name { font-size: 13.5px; font-weight: 600; color: var(--desk-ink); letter-spacing: -0.005em; }

/* verdict — single colored word (color + text, never color alone) */
.fc-disc-verdict {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 4px; white-space: nowrap;
  border: 1px solid transparent;
}
.fc-disc-verdict.fits { color: #98d6a7; background: rgba(152,214,167,0.10); border-color: rgba(152,214,167,0.26); }
.fc-disc-verdict.changes { color: #e8c489; background: rgba(232,196,137,0.10); border-color: rgba(232,196,137,0.26); }
.fc-disc-verdict.no { color: #f0908a; background: rgba(240,144,138,0.10); border-color: rgba(240,144,138,0.26); }

/* type — quiet muted label on its own line */
.fc-disc-type {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--desk-ink-3);
}

/* action — quiet text link, right-aligned on the top row */
.fc-disc-act {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
  -webkit-appearance: none; appearance: none; background: none; border: 0;
  color: var(--desk-accent); font: inherit; font-size: 12px; font-weight: 500;
  cursor: pointer; padding: 4px 0; white-space: nowrap;
}
.fc-disc-act .ico { color: var(--desk-accent); transition: transform 150ms ease; }
.fc-disc-act:hover .ico { transform: translateX(3px); }
.fc-disc-act:focus-visible { outline: 2px solid var(--desk-accent); outline-offset: 3px; border-radius: 3px; }

/* summary */
.fc-disc-sum { font-size: 12.5px; line-height: 1.55; color: var(--desk-ink-2); max-width: 80ch; }

/* meta line — citation chip + eligibility, quiet inline (no boxes) */
.fc-disc-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 3px; }
.fc-disc-elig {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; line-height: 1.4; color: #e8c489;
}
.fc-disc-elig .ico { color: #e8c489; flex-shrink: 0; }

/* ---------- (B) Transcript review modal ---------- */
.fc-tx-bg {
  position: fixed; inset: 0; background: rgba(8,12,10,0.55); z-index: 60;
  display: flex; align-items: center; justify-content: center;
  padding: 24px; animation: fade 0.16s ease;
}
.fc-tx-dialog {
  position: relative; z-index: 61;
  width: 100%; max-width: 640px; max-height: 80vh;
  display: flex; flex-direction: column;
  background: var(--desk-2); border: 1px solid var(--desk-line-2);
  border-radius: 8px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,0.55), 0 2px 0 rgba(255,255,255,0.03) inset;
  animation: memo-in 280ms cubic-bezier(.2,.7,.3,1) both;
}

/* header */
.fc-tx-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 16px 20px; border-bottom: 1px solid var(--desk-line);
  background: rgba(255,255,255,0.015);
}
.fc-tx-head .dt { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--desk-ink); }
.fc-tx-file {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.04em;
  color: var(--desk-ink-3); margin-top: 4px;
}
.fc-tx-close {
  margin-left: auto; -webkit-appearance: none; appearance: none;
  background: none; border: 1px solid var(--desk-line-2); border-radius: 4px;
  cursor: pointer; padding: 5px; color: var(--desk-ink-3);
  display: grid; place-items: center; flex-shrink: 0;
}
.fc-tx-close:hover { background: var(--desk-3); color: var(--desk-ink); }

/* scrollable body */
.fc-tx-body { flex: 1; overflow-y: auto; padding: 16px 20px; }
.fc-tx-body::-webkit-scrollbar { width: 10px; }
.fc-tx-body::-webkit-scrollbar-thumb { background: var(--desk-3); border-radius: 99px; border: 3px solid var(--desk-2); }

/* section group */
.fc-tx-section { margin-bottom: 22px; }
.fc-tx-section:last-child { margin-bottom: 0; }
.fc-tx-section-title {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--desk-ink-3); font-weight: 600; margin-bottom: 8px;
}

/* item row */
.fc-tx-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 0; border-top: 1px solid var(--desk-line);
}
.fc-tx-section-title + .fc-tx-item { border-top: none; }

/* checkbox */
.fc-tx-check {
  width: 16px; height: 16px; flex-shrink: 0; cursor: pointer;
  accent-color: var(--accent); margin: 0;
}

/* inline editable text — looks like plain text until hover/focus */
.fc-tx-item-text {
  flex: 1; min-width: 0; -webkit-appearance: none; appearance: none;
  background: none; border: 1px solid transparent; border-radius: 4px;
  color: var(--desk-ink); font: inherit; font-size: 13px; line-height: 1.45;
  padding: 5px 8px; transition: border-color 120ms ease, background 120ms ease;
}
.fc-tx-item-text:hover { border-color: var(--desk-line-2); }
.fc-tx-item-text:focus { outline: none; border-color: var(--desk-accent); background: var(--desk); }
.fc-tx-item-text::placeholder { color: var(--desk-ink-3); }

/* kind badge — requirement / context / action */
.fc-tx-kind {
  font-family: var(--font-mono); font-size: 9px; font-weight: 500;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 4px; border: 1px solid var(--desk-line-2);
  color: var(--desk-ink-3); white-space: nowrap; flex-shrink: 0;
}
.fc-tx-kind.requirement { color: #98d6a7; background: rgba(152,214,167,0.10); border-color: rgba(152,214,167,0.4); }
.fc-tx-kind.context { color: var(--desk-ink-2); background: rgba(255,255,255,0.04); border-color: var(--desk-line-2); }
.fc-tx-kind.action { color: #8aa3e8; background: rgba(138,163,232,0.10); border-color: rgba(138,163,232,0.4); }

/* tiny quote toggle icon button */
.fc-tx-quote-btn {
  -webkit-appearance: none; appearance: none; flex-shrink: 0;
  background: none; border: 1px solid var(--desk-line-2); border-radius: 4px;
  color: var(--desk-ink-3); cursor: pointer; padding: 4px;
  display: grid; place-items: center;
  transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
}
.fc-tx-quote-btn:hover { color: var(--desk-accent); border-color: var(--desk-accent); background: rgba(143,184,255,0.10); }

/* expanded quote */
.fc-tx-quote {
  font-family: var(--font-serif); font-style: italic;
  font-size: 12.5px; line-height: 1.6; color: var(--desk-ink-3);
  margin: 0 0 4px 26px; padding: 6px 0 6px 14px;
  border-left: 2px solid var(--desk-accent);
}

/* footer */
.fc-tx-foot {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  padding: 14px 20px; border-top: 1px solid var(--desk-line);
  background: rgba(255,255,255,0.015);
}

/* primary submit */
.fc-tx-submit {
  display: inline-flex; align-items: center; gap: 8px;
  -webkit-appearance: none; appearance: none;
  background: var(--accent); color: #fff; border: 1px solid var(--accent);
  border-radius: 5px; padding: 9px 18px; font: inherit;
  font-size: 13px; font-weight: 600; letter-spacing: -0.005em; cursor: pointer;
  transition: background 120ms ease, transform 120ms ease;
}
.fc-tx-submit:hover:not(:disabled) { background: var(--accent-2); transform: translateY(-1px); }
.fc-tx-submit:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

/* secondary / ghost cancel */
.fc-tx-cancel {
  display: inline-flex; align-items: center; gap: 7px;
  -webkit-appearance: none; appearance: none;
  background: none; border: 1px solid var(--desk-line-2);
  color: var(--desk-ink-2); border-radius: 5px;
  padding: 9px 16px; font: inherit; font-size: 13px; cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
}
.fc-tx-cancel:hover { background: var(--desk-3); color: var(--desk-ink); border-color: var(--desk-line-2); }

/* transcript modal — fit small screens */
@media (max-width: 880px) {
  .fc-tx-dialog { max-height: 88vh; }
  .fc-tx-foot { flex-wrap: wrap; }
}

/* ---------- Client requirements: profile entry card + refined empty state ---------- */
.fc-req-entry {
  display: flex; align-items: center; gap: 14px; width: 100%;
  margin: 16px 0 8px; padding: 15px 18px;
  background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 8px;
  color: var(--desk-ink); text-align: left; cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.fc-req-entry:hover { border-color: var(--desk-accent); background: var(--desk-3); }
.fc-req-entry:focus-visible { outline: 2px solid var(--desk-accent); outline-offset: 2px; }
.fc-req-entry .re-ico {
  display: grid; place-items: center; width: 38px; height: 38px; flex-shrink: 0;
  border-radius: 8px; color: var(--desk-accent);
  background: rgba(143,184,255,0.10); border: 1px solid rgba(143,184,255,0.18);
}
.fc-req-entry .re-main { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.fc-req-entry .re-title { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; color: var(--desk-ink); }
.fc-req-entry .re-sub { font-size: 12px; color: var(--desk-ink-3); }
.fc-req-entry .re-go { display: flex; align-items: center; gap: 9px; color: var(--desk-ink-3); flex-shrink: 0; transition: color .18s ease; }
.fc-req-entry:hover .re-go { color: var(--desk-accent); }
.fc-req-entry .re-count {
  font-family: var(--font-mono); font-size: 11.5px; font-weight: 600; color: var(--desk-ink);
  background: rgba(255,255,255,0.05); border: 1px solid var(--desk-line-2); border-radius: 999px;
  min-width: 22px; height: 22px; padding: 0 7px; display: grid; place-items: center;
}

/* refined empty state for the requirements page */
.fc-reqs-empty {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 9px;
  padding: 44px 24px; background: var(--desk-2);
  border: 1px dashed var(--desk-line-2); border-radius: 10px; color: var(--desk-ink-3);
}
.fc-reqs-empty .ico { color: var(--desk-ink-3); opacity: .65; }
.fc-reqs-empty .re-empty-title { font-size: 14px; font-weight: 600; color: var(--desk-ink-2); margin-top: 2px; }
.fc-reqs-empty .re-empty-sub { font-size: 12.5px; line-height: 1.55; max-width: 440px; }
.fc-reqs-empty .fc-reqs-add { margin-top: 8px; }

/* ---------- Available instruments (firm shelf) ---------- */
.fc-instr-list { display: flex; flex-direction: column; gap: 16px; }

.fc-instr {
  background: var(--desk-2); border: 1px solid var(--desk-line-2);
  border-radius: 10px; padding: 20px 22px;
  display: flex; flex-direction: column;
}

/* header: name + provider/asset class, current shelf status */
.fc-instr-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.fc-instr-name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--desk-ink); }
.fc-instr-sub { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.04em; color: var(--desk-ink-3); margin-top: 4px; }
.fc-instr-status {
  display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0;
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap;
  color: var(--desk-ink-3); border: 1px solid var(--desk-line-2);
  padding: 3px 10px 3px 9px; border-radius: 999px;
}
.fc-instr-status .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.fc-instr-status.open { color: #98d6a7; border-color: rgba(152,214,167,0.30); background: rgba(152,214,167,0.07); }
.fc-instr-status.waitlist { color: #e8c489; border-color: rgba(232,196,137,0.30); background: rgba(232,196,137,0.07); }
.fc-instr-status.closed { color: var(--desk-ink-3); }

.fc-instr-thesis { font-size: 13px; line-height: 1.5; color: var(--desk-ink-2); margin-top: 12px; max-width: 82ch; }

/* structured specs — label/value grid, at a glance */
.fc-instr-specs {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px 22px; margin-top: 16px;
}
.fc-instr-specs .sp { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fc-instr-specs .k {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--desk-ink-3);
}
.fc-instr-specs .v { font-size: 12.5px; color: var(--desk-ink); font-variant-numeric: tabular-nums; line-height: 1.35; }

/* documentation — tax + eligibility prose */
.fc-instr-doc {
  margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--desk-line);
  display: flex; flex-direction: column; gap: 10px;
}
.fc-instr-docrow { display: flex; gap: 12px; }
.fc-instr-docrow .dk {
  flex: 0 0 64px; font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--desk-accent); padding-top: 2px;
}
.fc-instr-docrow .dv { flex: 1; font-size: 12.5px; line-height: 1.55; color: var(--desk-ink-2); max-width: 80ch; }

/* footer — eligible-in-book chips (coarse) + Fitness Check action */
.fc-instr-foot {
  margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--desk-line);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.fc-instr-elig { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.fc-instr-elig .lbl {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--desk-ink-3);
}
.fc-instr-elig .clis { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.fc-instr-elig .cli {
  display: inline-flex; align-items: center; font-size: 11.5px; color: var(--desk-ink-2);
  background: var(--desk-3); border: 1px solid var(--desk-line-2);
  padding: 3px 9px; border-radius: 999px; white-space: nowrap;
}
.fc-instr-elig .none { font-size: 12px; color: var(--desk-ink-3); font-style: italic; }

.fc-instr-fitwrap { position: relative; flex-shrink: 0; }
.fc-instr-fit {
  display: inline-flex; align-items: center; gap: 7px;
  -webkit-appearance: none; appearance: none;
  background: rgba(143,184,255,0.10); border: 1px solid rgba(143,184,255,0.30);
  color: var(--desk-accent); border-radius: 6px; padding: 8px 13px;
  font: inherit; font-size: 12px; font-weight: 500; cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, opacity 150ms ease;
}
.fc-instr-fit:hover:not(:disabled) { background: rgba(143,184,255,0.18); border-color: var(--desk-accent); }
.fc-instr-fit:disabled { opacity: 0.4; cursor: not-allowed; }
.fc-instr-fit .ico { color: var(--desk-accent); }
.fc-instr-fit .fitchev { transition: transform 150ms ease; }
.fc-instr-fit[aria-expanded="true"] .fitchev { transform: rotate(180deg); }
.fc-instr-fit:focus-visible { outline: 2px solid var(--desk-accent); outline-offset: 2px; }

/* eligible-client picker menu */
.fc-instr-menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 30;
  min-width: 240px; padding: 6px;
  background: var(--desk-2); border: 1px solid var(--desk-line-2); border-radius: 8px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.5);
  animation: fade 0.14s ease;
}
.fc-instr-menu-lbl {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--desk-ink-3);
  padding: 6px 8px 7px;
}
.fc-instr-menu-opt {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  -webkit-appearance: none; appearance: none; background: none; border: 0; cursor: pointer;
  padding: 8px 9px; border-radius: 6px; text-align: left; transition: background 120ms ease;
}
.fc-instr-menu-opt:hover { background: var(--desk-3); }
.fc-instr-menu-opt .on { font-size: 12.5px; color: var(--desk-ink); }
.fc-instr-menu-opt .oa { font-family: var(--font-mono); font-size: 10.5px; color: var(--desk-ink-3); font-variant-numeric: tabular-nums; }

/* ---------- Available instruments: client filter toolbar ---------- */
.fc-instr-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.fc-instr-count { font-size: 12.5px; color: var(--desk-ink-2); }
.fc-instr-count .for { color: var(--desk-ink-3); }
.fc-instr-filter { display: inline-flex; align-items: center; gap: 9px; }
.fc-instr-filter .fl {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--desk-ink-3);
}
.fc-instr-empty {
  padding: 42px 24px; text-align: center; font-size: 13px; color: var(--desk-ink-3);
  background: var(--desk-2); border: 1px dashed var(--desk-line-2); border-radius: 10px;
}
/* highlight the filtered client's eligibility chip */
.fc-instr-elig .cli.on { color: var(--desk-accent); background: rgba(143,184,255,0.10); border-color: rgba(143,184,255,0.30); }

/* ---------- Requirement lifecycle stage tracker + cancelled state ---------- */
.fc-stagebar { display: flex; gap: 10px; margin-top: 16px; }
.fc-stage-step { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.fc-stage-step.captured  { --sc: #8aa0b8; }
.fc-stage-step.matched   { --sc: var(--desk-accent); }
.fc-stage-step.review    { --sc: #e8c489; }
.fc-stage-step.addressed { --sc: #98d6a7; }
.fc-stage-step .seg { height: 4px; border-radius: 999px; background: var(--desk-line); transition: background 150ms ease, opacity 150ms ease; }
.fc-stage-step.done .seg { background: var(--sc); opacity: 0.5; }
.fc-stage-step.current .seg { background: var(--sc); }
.fc-stage-step .lbl {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--desk-ink-3);
}
.fc-stage-step.done .lbl { color: var(--desk-ink-2); }
.fc-stage-step.current .lbl { color: var(--sc); }

/* cancelled requirement */
.fc-req.cancelled .fc-req-text { color: var(--desk-ink-3); }
.fc-req-stage.cancelled { color: #f0908a; border-color: rgba(240,144,138,0.32); background: rgba(240,144,138,0.08); }
.fc-req-cancel {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px;
  padding: 10px 12px; border-radius: 6px;
  background: rgba(240,144,138,0.06); border: 1px solid rgba(240,144,138,0.22);
}
.fc-req-cancel .ico { color: #f0908a; flex-shrink: 0; }
.fc-req-cancel .ct {
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; color: #f0908a;
}
.fc-req-cancel .cr { flex: 1 1 240px; font-size: 12.5px; line-height: 1.5; color: var(--desk-ink-2); }
