/* ──────────────────────────────────────────────────────────────────────────
   PALETTE. These are the wireframe's values, not an approximation of them.

   What was here before was a WARM neutral set (--bg #161614, --card #1d1b18,
   --line #2e2b27, --fg #eceae5). Every one of those has its red channel ABOVE
   its blue channel, which is what a brown or pink tinge IS, measured rather
   than described. The wireframe's set is cool — blue above red on every token
   — and that difference is the whole of the "muted, pinkish" reading.

   It also cost contrast, which is the half that hurts to look at:
     body text   #F4F7FA on #0A0D12 = 18.10:1   was  #eceae5 on #161614 = 15.07:1
     soft text   #BAC4D2 on #12161D = 10.29:1   was  #9a978f on #1d1b18 =  5.89:1
   The soft-text row is the damage: 43% of the contrast gone, across most of
   the body copy on Cards and Attack-first.
   ────────────────────────────────────────────────────────────────────────── */
:root {
  --bg: #E8ECF2; --fg: #04070C; --muted: #2E3847; --line: #C6CEDA;
  --card: #FFFFFF; --warn: #7A4400; --bad: #94170A; --accent: #0E4489;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0A0D12; --fg: #F4F7FA; --muted: #BAC4D2; --line: #242B36;
    --card: #12161D; --warn: #F0A81E; --bad: #FF6B57; --accent: #5B9BF0;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0; padding: 2rem 1.25rem; background: var(--bg); color: var(--fg);
  font: 15px/1.55 ui-sans-serif, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
#root { max-width: 62rem; margin: 0 auto; }
h1 { font-size: 1.5rem; margin: 0 0 .25rem; }
h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 2rem 0 .75rem; }
h3 { font-size: .85rem; color: var(--muted); margin: 1rem 0 .35rem; }
.muted { color: var(--muted); margin: .25rem 0; }
.banner { color: var(--warn); font-weight: 600; margin: .5rem 0 0; }
.status { color: var(--muted); }
.status--error { color: var(--bad); }
/* The one way forward from a refusal, so it reads as an action, not a footnote. */
.status .signin { display:inline-block; padding:6px 14px; border:1px solid var(--accent);
  border-radius:4px; color:var(--accent); font-weight:600; text-decoration:none; }
.status .signin:hover, .status .signin:focus-visible { background:var(--accent); color:var(--bg); }
.row { border: 1px solid var(--line); background: var(--card); border-radius: 8px; padding: .85rem 1rem; margin-bottom: .6rem; }
.row--broken { border-color: var(--bad); }
.row--stale { border-color: var(--warn); }
.row__head { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; }
.row__title { font-weight: 650; }
.row__stats { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: .6rem 0 0; }
.row__stats dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.row__stats dd { margin: 0; font-variant-numeric: tabular-nums; }
.row__entities { display: flex; gap: .4rem; flex-wrap: wrap; list-style: none; padding: 0; margin: .6rem 0 0; }
.row__entities li { border: 1px solid var(--line); border-radius: 999px; padding: .1rem .6rem; font-size: .8rem; }
.row__warnings { margin: .5rem 0 0; padding-left: 1.1rem; color: var(--warn); font-size: .82rem; }
.row__error { color: var(--bad); margin: .4rem 0 0; }
.row__repo { color: var(--muted); font-size: .78rem; margin: .5rem 0 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.badge { font-size: .72rem; border: 1px solid var(--line); border-radius: 999px; padding: .05rem .55rem; color: var(--muted); }
.badge--warn { color: var(--warn); border-color: var(--warn); }
.badge--bad { color: var(--bad); border-color: var(--bad); }
.badge--phase { color: var(--accent); border-color: var(--accent); }
.stalled__summary { margin: 0 0 .75rem; }
.stalled__summary--no-commitments-recorded, .stalled__summary--no-readable-rows { color: var(--warn); font-weight: 600; }
.stalled__list { list-style: none; padding: 0; margin: 0; }
.stalled__item { display: flex; flex-wrap: wrap; gap: .15rem .6rem; align-items: baseline; border-bottom: 1px solid var(--line); padding: .5rem 0; }
.stalled__id { font-weight: 600; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.stalled__age { color: var(--warn); }
.stalled__unsourced { color: var(--bad); font-style: italic; }
.stalled__ref { color: var(--muted); font-size: .8rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
/* Always its own line, so every item is two lines and the eye can scan the
   column of ids without the repo name shuffling the layout item by item. */
.stalled__repo { flex-basis: 100%; color: var(--muted); font-size: .78rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
a { color: var(--accent); }
.relay { border-top: 1px solid var(--line); padding-top: .75rem; margin-top: 2rem; font-size: .82rem; }


/* ══════════════════════════════════════════════════════════════════════════
   Kratexa — the four-view shell.
   Appended, not rewritten: every selector above still dresses the Entities
   view, which is the live one. Fonts stay on the system stack for the same
   reason this client has no framework — nothing that has to be reachable at
   load time for an internal tool to show anything at all.
   ══════════════════════════════════════════════════════════════════════════ */

:root {
  --accent: #0E4489;
  /* THE FOURTH SEMANTIC. Good / warning / critical describe the work.
     This one means "I could not look", which is a different kind of fact and
     the one most easily lost. It is never used for anything else. */
  --unknown: #43217F; --unknown-bg: #EDE5FB;
  --ground: #E8ECF2; --brief-ground: #EDE9E0;
  --surface: var(--card); --surface-2: #DFE5ED;
  /* ⚠ --rule-hard and --ink-faint were BOTH aliased onto their softer
     neighbours (--line and --muted). That silently collapsed three levels
     into two: the masthead's hard 2px border became the faint hairline, and
     every column header, filter label and table caption — all of which use
     --ink-faint — rendered at the same weight as body copy. They are
     separate values in the wireframe for a reason, and they are separate
     here now. */
  --rule: var(--line); --rule-hard: #8996A8;
  --ink: var(--fg); --ink-soft: var(--muted); --ink-faint: #5C6675;
  --crit: var(--bad); --st-block: #94170A; --st-todo: #6E7887; --st-prog: #1F4F96;
  --st-wait: #8A5000; --st-qa: #5F3C93; --st-uat: #0F6E80; --st-done: #125F43; --st-cancel: #6A5460;
  --shadow: 0 1px 2px rgba(4,7,12,.13), 0 6px 20px rgba(4,7,12,.1);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --accent: #5B9BF0; --unknown: #C4A5FF; --unknown-bg: #1B1626;
    --ground: #0A0D12; --brief-ground: #13120E; --surface-2: #1A202A;
    --rule-hard: #3C4553; --ink-faint: #818B9C;
    --st-block: #C0392B; --st-todo: #8A94A6; --st-prog: #2E69BD;
    --st-wait: #E08A1E; --st-qa: #8E63C7; --st-uat: #21A0B8; --st-done: #2E7D5B; --st-cancel: #87737F;
    --shadow: 0 1px 2px rgba(0,0,0,.5), 0 6px 22px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"] {
  --bg: #0A0D12; --fg: #F4F7FA; --muted: #BAC4D2; --line: #242B36; --card: #12161D;
  --warn: #F0A81E; --bad: #FF6B57; --accent: #5B9BF0;
  --unknown: #C4A5FF; --unknown-bg: #1B1626;
  --ground: #0A0D12; --brief-ground: #13120E; --surface-2: #1A202A;
  --rule-hard: #3C4553; --ink-faint: #818B9C;
  --st-block: #C0392B; --st-todo: #8A94A6; --st-prog: #2E69BD;
  --st-wait: #E08A1E; --st-qa: #8E63C7; --st-uat: #21A0B8; --st-done: #2E7D5B; --st-cancel: #87737F;
  --shadow: 0 1px 2px rgba(0,0,0,.5), 0 6px 22px rgba(0,0,0,.4);
}
:root[data-theme="light"] {
  --bg: #E8ECF2; --fg: #04070C; --muted: #2E3847; --line: #C6CEDA; --card: #FFFFFF;
  --warn: #7A4400; --bad: #94170A; --accent: #0E4489;
  --unknown: #43217F; --unknown-bg: #EDE5FB;
  --ground: #E8ECF2; --brief-ground: #EDE9E0; --surface-2: #DFE5ED;
  --rule-hard: #8996A8; --ink-faint: #5C6675;
  --st-block: #94170A; --st-todo: #6E7887; --st-prog: #1F4F96;
  --st-wait: #8A5000; --st-qa: #5F3C93; --st-uat: #0F6E80; --st-done: #125F43; --st-cancel: #6A5460;
  --shadow: 0 1px 2px rgba(4,7,12,.13), 0 6px 20px rgba(4,7,12,.1);
}

body { padding: 0; }
#root { max-width: none; margin: 0; }

.masthead { display:flex; flex-wrap:wrap; gap:12px 26px; align-items:center;
  padding:14px clamp(14px,3vw,30px); border-bottom:2px solid var(--rule-hard); background:var(--surface); }
.wordmark { font-size:30px; font-weight:800; letter-spacing:.10em; text-transform:uppercase; line-height:1.05; }
.wordmark span { color: var(--accent); }
.readline { display:flex; flex-wrap:wrap; gap:5px 14px; align-items:baseline; font-size:13px; color:var(--ink-soft); }
.readline .sep { color: var(--ink-faint); }
.readline .warn-txt { color: var(--warn); font-weight:700; }
.readline .bad-txt { color: var(--bad); font-weight:700; }
.mast-right { margin-left:auto; }
.themeBtn { background:var(--surface); color:var(--ink-soft); border:1px solid var(--rule-hard);
  border-radius:2px; font:inherit; font-size:11px; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; padding:6px 12px; cursor:pointer; }

.surfaces { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); align-items:start; }
.surfaces.solo { grid-template-columns:minmax(0,1fr); }
@media (max-width:1100px){ .surfaces{grid-template-columns:minmax(0,1fr);} }
.surface { padding:16px clamp(14px,3vw,30px) 34px; min-width:0; }
.surface-head { display:flex; align-items:baseline; gap:11px; flex-wrap:wrap; margin-bottom:14px; }
.surface-head h2 { font-size:13px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; margin:0; color:var(--ink-faint); }
.surface-head .q { font-size:13px; color:var(--ink-faint); font-style:italic; }
.vswitch { display:inline-flex; margin-left:auto; border:1px solid var(--rule-hard); border-radius:2px; overflow:hidden; }
.vswitch button { background:var(--surface); color:var(--ink-faint); border:0; font:inherit; font-size:11px;
  font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:6px 13px; cursor:pointer; }
.vswitch button + button { border-left:1px solid var(--rule-hard); }
.vswitch button[aria-pressed="true"] { background:var(--accent); color:#fff; }

.prov { border:1px dashed var(--unknown); background:var(--unknown-bg); padding:10px 13px;
  font-size:12.5px; line-height:1.55; color:var(--ink-soft); margin-bottom:12px; }
.prov b { color: var(--unknown); }
.prov__boundary { margin:6px 0 0; font-size:12px; }

.fgroup { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:8px; }
.flabel, .tslabel { font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.tslabel { margin-left:auto; margin-right:7px; }
.fchip { background:var(--surface); color:var(--ink-soft); border:1px solid var(--rule-hard); border-radius:2px;
  font:inherit; font-size:11.5px; font-weight:700; padding:5px 10px; cursor:pointer; }
.fchip[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fff; }
.fchip.zero { border-style:dashed; }
.fcount { color:var(--ink-faint); font-weight:600; margin-left:5px; }
.fchip.zero .fcount { color:var(--unknown); font-weight:800; }
.fchip[aria-pressed="true"] .fcount { color:#fff; }
.tsize { display:inline-flex; border:1px solid var(--rule-hard); border-radius:2px; overflow:hidden; }
.tsize button { background:var(--surface); color:var(--ink-soft); border:0; font:inherit; font-weight:800; cursor:pointer; padding:4px 10px; }
.tsize button + button { border-left:1px solid var(--rule-hard); }
.tsize button[aria-pressed="true"] { background:var(--accent); color:#fff; }
.tsize .t1{font-size:11px}.tsize .t2{font-size:13px}.tsize .t3{font-size:15px}.tsize .t4{font-size:17px}

.ctable-wrap { overflow-x:auto; border:1px solid var(--rule-hard); background:var(--surface); }
table.ctable { border-collapse:collapse; width:100%; min-width:620px; --ct:15px; }
.ctable th { font-size:calc(var(--ct) - 4px); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);
  font-weight:800; text-align:left; padding:9px 12px; border-bottom:1px solid var(--rule-hard); white-space:nowrap; }
.ctable td { padding:calc(var(--ct)*.62) 13px; border-bottom:1px solid var(--rule); font-size:var(--ct); vertical-align:top; line-height:1.45; }
.ctable tr:hover td { background: var(--surface-2); }
.ctable .no { font-size:calc(var(--ct) - 2.5px); color:var(--ink-faint); width:44px; }
.ctable .nm { font-weight:600; min-width:240px; }
.ctable .en { color:var(--ink-faint); font-size:calc(var(--ct) - 2.5px); white-space:nowrap; }
.ctable .dd { white-space:nowrap; font-size:calc(var(--ct) - 2.5px); }
.cpill { display:inline-block; font-size:calc(var(--ct) - 4px); font-weight:800; letter-spacing:.05em;
  padding:2px 7px; border-radius:2px; color:#fff; white-space:nowrap; }
.c-blocked,.c-block{background:var(--st-block)}.c-todo{background:var(--st-todo)}.c-prog{background:var(--st-prog)}
.c-qa{background:var(--st-qa)}.c-uat{background:var(--st-uat)}.c-done{background:var(--st-done)}
.c-wait{background:var(--st-wait)}.c-cancel,.c-cancelled{background:var(--st-cancel)}
.own { font-size:calc(var(--ct) - 1.5px); font-weight:600; white-space:nowrap; }
.own.none { color:var(--unknown); font-weight:800; background:var(--unknown-bg); padding:1px 6px; border-radius:2px; }
.ep,.bk { font-size:calc(var(--ct) - 5px); font-weight:800; letter-spacing:.06em; padding:1px 4px;
  border-radius:2px; margin-left:5px; border:1px solid currentColor; color:var(--ink-faint); vertical-align:middle; }
.late { color:#fff; background:var(--crit); font-weight:800; font-size:calc(var(--ct) - 3.5px); padding:2px 7px; border-radius:2px; }
.ontime { color:var(--ink-soft); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:calc(var(--ct) - 3px); }
.nodue { color:var(--unknown); background:var(--unknown-bg); font-weight:700; font-size:calc(var(--ct) - 3.5px); padding:2px 6px; border-radius:2px; }
.cempty { padding:18px; text-align:center; color:var(--ink-faint); }
.sig { font-size:11.5px; line-height:1.55; color:var(--ink-soft); }

.arule { border:1px dashed var(--rule-hard); padding:11px 14px; font-size:12.5px; line-height:1.6; color:var(--ink-soft); margin-bottom:12px; }
.arule b { color: var(--ink); }
.arule ol { margin:7px 0 0; padding-left:20px; }
.aq,.rgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:12px; align-items:start; }
.ecard,.rcard { border:1px solid var(--rule-hard); background:var(--surface); }
.ecard > h3,.rcard > h3 { display:flex; align-items:baseline; gap:9px; margin:0; padding:11px 14px;
  border-bottom:1px solid var(--rule-hard); font-size:15px; font-weight:800; }
.rcard > h3 { border-bottom:0; padding-bottom:3px; }
.ecard > h3 .open { margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.rrepo { margin-left:auto; font-family:ui-monospace,Menlo,monospace; font-size:10.5px; color:var(--ink-faint); font-weight:500; }
.rsub { padding:0 14px 10px; font-size:11.5px; color:var(--ink-faint); border-bottom:1px solid var(--rule-hard); }
.alist,.rlist { list-style:none; margin:0; padding:0; }
.alist li { display:grid; grid-template-columns:30px 1fr auto; gap:10px; align-items:start; padding:10px 14px; border-bottom:1px solid var(--rule); }
.alist li:last-child,.rlist li:last-child { border-bottom:0; }
.rank { font-weight:800; font-size:12px; color:#fff; background:var(--ink-faint); border-radius:2px; text-align:center; padding:2px 0; }
.rank.r1{background:var(--crit)}.rank.r2{background:var(--st-block)}.rank.r3{background:var(--st-qa)}
.rank.r4{background:var(--unknown)}.rank.r5{background:var(--ink-faint)}
.awhat { font-size:13.5px; font-weight:700; display:block; }
.awhy { font-size:12px; color:var(--ink-faint); line-height:1.5; margin-top:2px; }
.aids { font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-soft); margin-top:4px; word-break:break-word; }
.acount { font-size:19px; font-weight:800; }
.aclear { padding:14px; font-size:13px; color:var(--ink-faint); line-height:1.5; }
.aclear.zero { color:var(--unknown); background:var(--unknown-bg); }
.rproj { padding:9px 14px 3px; font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-soft); font-weight:700; }
.rlist li { display:grid; grid-template-columns:44px 1fr auto; gap:9px; align-items:center; padding:5px 14px; }
.rk { font-size:8.5px; font-weight:800; letter-spacing:.08em; text-align:center; padding:2px 0; border-radius:2px; color:#fff; }
.k-oq{background:var(--unknown)}.k-dec{background:var(--accent)}.k-reg{background:var(--st-qa)}
.k-cr{background:var(--crit)}.k-spec{background:var(--st-prog)}.k-state{background:var(--ink-faint)}
.rn { font-size:13px; font-weight:600; color:var(--ink); text-decoration:none; border-bottom:1px solid transparent; }
.rn:hover { border-bottom-color:var(--accent); color:var(--accent); }
.rcount { font-size:11px; color:var(--ink-faint); font-family:ui-monospace,Menlo,monospace; white-space:nowrap; }
.rcount.empty { color:var(--crit); font-weight:800; }
.rnone { padding:14px; font-size:12.5px; color:var(--unknown); background:var(--unknown-bg); line-height:1.55; }

.brief { padding:16px clamp(14px,3vw,30px) 34px; background:var(--surface-2); border-left:2px solid var(--rule-hard); min-width:0; }
@media (max-width:1100px){ .brief{border-left:0;border-top:2px solid var(--rule-hard);} }
.brief-intro { font-size:14px; line-height:1.6; }
.bcount { display:flex; align-items:baseline; gap:9px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.bcount b { color:var(--accent); font-size:13px; letter-spacing:0; }
.breset { background:none; border:0; font:inherit; font-size:10.5px; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-faint); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.bnote { font-size:11px; color:var(--ink-faint); line-height:1.5; }
.item { border-top:1px solid var(--rule); padding:13px 0; }
.item-top { display:flex; align-items:baseline; gap:8px; }
.item-top h3 { font-size:15px; font-weight:700; margin:0; flex:1; }
.item .where { display:flex; flex-wrap:wrap; gap:4px 10px; font-size:10.5px; color:var(--ink-faint); font-weight:700; margin-top:3px; }
.item p { font-size:14px; line-height:1.6; color:var(--ink-soft); }
.asks { font-size:12px; font-weight:800; color:var(--accent); }
.pill { font-size:10px; font-weight:800; letter-spacing:.07em; padding:2px 6px; border-radius:2px; border:1px solid currentColor; }
.pill.crit{color:var(--crit)}.pill.warn{color:var(--warn)}.pill.ok{color:var(--st-done)}.pill.plain{color:var(--ink-faint)}
.tick { flex:none; width:22px; height:22px; border-radius:50%; border:1.5px solid var(--rule-hard);
  background:var(--surface); color:transparent; cursor:pointer; font-size:12px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; padding:0; }
.tick:hover { border-color:var(--accent); color:var(--ink-faint); }
.tick[aria-pressed="true"] { background:var(--st-done); border-color:var(--st-done); color:#fff; }
.item.done { opacity:.46; }
.item.done h3 { text-decoration:line-through; }


/* ── The entity row: the home view, ported from the wireframe ───────────── */
:root { --ok: #0E5C39; --hatch: repeating-linear-gradient(135deg, transparent 0 7px, rgba(67,33,127,.14) 7px 14px); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ok: #3FD08C;
  --hatch: repeating-linear-gradient(135deg, transparent 0 7px, rgba(196,165,255,.16) 7px 14px); } }
:root[data-theme="dark"] { --ok: #3FD08C;
  --hatch: repeating-linear-gradient(135deg, transparent 0 7px, rgba(196,165,255,.16) 7px 14px); }
:root[data-theme="light"] { --ok: #0E5C39;
  --hatch: repeating-linear-gradient(135deg, transparent 0 7px, rgba(67,33,127,.14) 7px 14px); }

.summary { border-left:3px solid var(--warn); background:var(--surface); padding:11px 14px;
  font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin-bottom:14px; }
.rowsbox { display:flex; flex-direction:column; border:1px solid var(--rule-hard); background:var(--surface); margin-bottom:15px; }
.rowhead, .row { display:grid;
  grid-template-columns:4px minmax(140px,1.35fr) 88px minmax(104px,.95fr) 82px 70px 18px;
  gap:0 13px; align-items:center; padding:11px 13px 11px 0; }
.rowhead { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);
  font-weight:800; border-bottom:1px solid var(--rule-hard); padding-top:9px; padding-bottom:9px; }
.rowhead .r, .row .r { text-align:right; }
.row { border:0; border-bottom:1px solid var(--rule); width:100%; background:none; font:inherit;
  color:inherit; text-align:left; cursor:pointer; }
.row:hover { background: var(--surface-2); }
.row:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.rail { align-self:stretch; background:var(--rule); min-height:38px; }
.r-ok .rail { background: var(--ok); }
/* An entity with no repo to read is hatched violet: the pane could not look. */
.row.r-unbound { background-color:var(--unknown-bg); background-image:var(--hatch); }
.row.r-unbound .rail { background: var(--unknown); }
.row.r-conflict .rail { background: var(--crit); }

.ent { display:flex; flex-direction:column; gap:2px; min-width:0; padding-left:9px; }
.ent-name { font-weight:700; font-size:14.5px; letter-spacing:-.01em; }
.ent-path { font-size:10.5px; color:var(--ink-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-family:ui-monospace,Menlo,monospace; }
.state { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; }
.dot { width:8px; height:8px; border-radius:50%; flex:none; }
.s-ok { color:var(--ok); } .s-ok .dot { background:var(--ok); }
.s-empty, .s-no-sprint { color:var(--warn); } .s-empty .dot, .s-no-sprint .dot { background:var(--warn); }
.s-unbound, .s-unreachable { color:var(--unknown); }
.s-unbound .dot, .s-unreachable .dot { background:var(--unknown); border-radius:1px; transform:rotate(45deg); }
.s-unreadable { color:var(--crit); } .s-unreadable .dot { background:var(--crit); }

.bar { display:flex; height:9px; width:100%; overflow:hidden; background:var(--surface-2); border:1px solid var(--rule); }
.bar i { display:block; height:100%; }
.barwrap { display:flex; flex-direction:column; gap:4px; min-width:0; }
.barcap { font-size:10px; color:var(--ink-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fig { font-size:19px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.fig.bad { color: var(--crit); }
.fig .sub { font-size:10px; color:var(--ink-faint); font-weight:600; display:block; margin-top:1px; letter-spacing:0; }
.fig .clash { color:var(--crit); font-weight:700; }
.chev { color:var(--ink-faint); font-size:11px; justify-self:end; transition:transform .16s ease; display:inline-block; }
.row[aria-expanded="true"] .chev { transform: rotate(90deg); }

/* display:flex beats the browser default [hidden]{display:none}, so the
   attribute alone silently fails to collapse the drill-down. */
.drill[hidden] { display: none !important; }
.drill { border-bottom:1px solid var(--rule); background:var(--surface-2);
  padding:15px 16px 17px 26px; display:flex; flex-direction:column; gap:13px; }
.board { display:grid; grid-template-columns:repeat(auto-fit,minmax(88px,1fr)); gap:8px; }
.col { border:1px solid var(--rule); background:var(--surface); padding:7px 9px; display:flex; flex-direction:column; gap:2px; }
.col .n { font-size:20px; font-weight:800; font-variant-numeric:tabular-nums; }
.col .l { font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; }
.col.hot { border-color:var(--crit); } .col.hot .n { color:var(--crit); }
.note { font-size:13.5px; color:var(--ink-soft); line-height:1.58; margin:0; }
.note b { color:var(--ink); font-weight:700; }
.note.alarm { border-left:3px solid var(--crit); padding-left:11px; }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(224px,1fr)); gap:15px; margin-top:6px; }
.prov--slim { font-size:11.5px; padding:8px 11px; }


/* ══════════════════════════════════════════════════════════════════════════
   Kanban — the Cards view's second layout. Ported from the wireframe per P-4.
   ══════════════════════════════════════════════════════════════════════════ */
.lswitch{display:inline-flex;border:1px solid var(--rule-hard);border-radius:2px;overflow:hidden}
.lswitch button{background:var(--surface);color:var(--ink-faint);border:0;font:inherit;font-size:11px;
  font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:5px 11px;cursor:pointer}
.lswitch button+button{border-left:1px solid var(--rule-hard)}
.lswitch button[aria-pressed="true"]{background:var(--accent);color:#fff}
.lswitch button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* GRID, not flex, so the columns EAT the spare width instead of leaving it.
   minmax(272px,1fr) means: share whatever is available on a wide screen, and
   fall back to a 272px floor with a horizontal scroll when there genuinely is
   not room. One rule covers a laptop and an ultra-wide. */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(272px,1fr);
  gap:10px;overflow-x:auto;padding-bottom:6px;align-items:start}
.kcol{min-width:0;background:var(--surface);border:1px solid var(--rule-hard);box-shadow:var(--shadow);
  display:flex;flex-direction:column;max-height:74vh}
.kcol-head{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--rule-hard);
  position:sticky;top:0;background:var(--surface);z-index:1}
.kcol-head .sw{width:9px;height:9px;border-radius:2px;flex:0 0 auto}
.kcol-head h4{margin:0;font-size:calc(var(--ct) - 4px);font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kcol-head .kn{margin-left:auto;font-size:calc(var(--ct) - 4px);font-weight:800;color:var(--ink-faint);
  font-variant-numeric:tabular-nums}
.kcol-body{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:7px}
.kcard{border:1px solid var(--rule);border-left:3px solid var(--kc,var(--rule-hard));background:var(--ground);
  padding:7px 9px;display:flex;flex-direction:column;gap:4px}
.kcard .kid{font-size:calc(var(--ct) - 4.5px);color:var(--ink-faint);font-weight:700;letter-spacing:.03em}
.kcard .knm{font-size:calc(var(--ct) - 1.5px);line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.kcard .kmeta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;
  font-size:calc(var(--ct) - 4.5px);color:var(--ink-faint)}
.kcard .kown{font-weight:700;color:var(--ink-soft)}
.kcard .kown.none{color:var(--unknown);background:var(--unknown-bg);padding:0 4px;border-radius:2px;font-weight:800}
.kcard .kdue.nodue{color:var(--unknown);font-weight:700}
.kcard .kdue.late{color:var(--crit);font-weight:800}
/* THREE KINDS OF EMPTY, KEPT APART. Violet is reserved for "nothing inside the
   read boundary" — never for a filter result. */
.kempty{font-size:calc(var(--ct) - 3.5px);color:var(--ink-faint);font-style:italic;padding:10px 4px;line-height:1.45}
.kempty.zero{color:var(--unknown);font-style:normal;font-weight:700;background:var(--unknown-bg);
  border:1px dashed var(--unknown);border-radius:2px;padding:9px}
.knote{font-size:12.5px;color:var(--ink-faint);line-height:1.55;margin:4px 0 0}
.knote b{color:var(--ink-soft)}

/* ══ Kratexa v1 views (Brief, Leadership, EOS, Roadmap, Access) — ported from the approved v6 wireframe, 25 Sep 2026. ══ */
.mast-right { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.mbtn { background:var(--surface); color:var(--ink-soft); border:1px solid var(--rule-hard);
  border-radius:2px; font:inherit; font-size:11px; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; padding:6px 12px; cursor:pointer; }
.mbtn:hover { color:var(--ink); border-color:var(--accent); }
.mbtn[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fff; }
.mbtn:focus-visible, .xrow:focus-visible, .acc-h:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.readline.flash { animation: rlflash 1.1s ease; }
@keyframes rlflash { 0%{background:var(--accent);color:#fff} 100%{background:transparent} }
@media (prefers-reduced-motion: reduce) { .readline.flash { animation:none; outline:2px solid var(--accent); } }
/* Auto-refresh: a quiet line beside Refresh, and its pause. */
.autoline { font-size:12px; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.mast-right .autobtn { font-size:12px; font-weight:600; color:var(--ink-soft); }
.mast-right .autobtn:hover { color:var(--accent); }
.mast-right .autobtn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.vswitch { flex-wrap:wrap; }
.sec { border:1px solid var(--rule-hard); background:var(--surface); margin-bottom:14px; }
.sechead { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; padding:10px 14px; border-bottom:1px solid var(--rule-hard); }
.sechead h3 { margin:0; font-size:15px; font-weight:800; color:var(--ink); }
.sechead .meta { font-size:11px; color:var(--ink-faint); font-weight:700; }
.sechead .rt { margin-left:auto; }
.secbody { padding:4px 14px 10px; }
.lbl { font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin:12px 0 6px; display:block; }
.xlist { list-style:none; margin:0; padding:0; }
.xlist > li { border-top:1px solid var(--rule); padding:9px 0; display:flex; flex-direction:column; gap:3px; }
.xlist > li:first-child { border-top:0; }
.xtop { display:flex; flex-wrap:wrap; gap:4px 9px; align-items:baseline; }
.xtitle { font-size:14px; font-weight:700; flex:1; min-width:16ch; }
.xsub { font-size:12.5px; color:var(--ink-soft); line-height:1.5; }
.xmeta { display:flex; flex-wrap:wrap; gap:3px 12px; font-size:10.5px; color:var(--ink-faint); font-weight:700; }
.xmeta a { color:var(--accent); }
.xmeta .age { color:var(--ink-soft); }
.xmeta .also { font-weight:600; font-style:italic; }
.xmeta .hidebtn { margin-left:auto; background:none; border:1px solid var(--rule); border-radius:2px; padding:1px 8px; font:inherit; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); cursor:pointer; }
.xmeta .hidebtn:hover { color:var(--ink); border-color:var(--ink-faint); }
.xmeta .hidebtn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.xlist > li.dismissed { opacity:.55; }
.xmeta .donebox { margin-left:auto; display:inline-flex; align-items:center; gap:4px; border:1px solid var(--rule); border-radius:2px; padding:0 7px 0 4px; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); cursor:pointer; }
.xmeta .donebox:hover { color:var(--ink); border-color:var(--ink-faint); }
.xmeta .donebox input { margin:0; accent-color:var(--ok); cursor:pointer; }
.xmeta .donebox:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.xmeta .donebox ~ .hidebtn { margin-left:0; }
.xlist > li.done { opacity:.55; }
.xlist > li.done .xtitle { text-decoration:line-through; }
.doneflag { margin:2px 0 1px; font-size:11.5px; font-weight:800; color:var(--warn); }
.xlist > li.flagged { box-shadow:inset 3px 0 0 var(--warn); padding-left:8px; }
.hiddenbar .linkish + .linkish { margin-left:14px; }
.stale { display:inline-block; margin-left:10px; padding:1px 7px; border:1px solid var(--warn); border-radius:2px; color:var(--warn); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:none; vertical-align:baseline; }
.hiddenbar { margin:0 0 10px; font-size:12px; }
.aud { font-size:9.5px; font-weight:800; letter-spacing:.08em; padding:1px 6px; border-radius:2px; border:1px solid currentColor; text-transform:uppercase; }
.aud.sean{color:var(--crit)} .aud.sean_paulo{color:var(--warn)} .aud.team{color:var(--accent)} .aud.client{color:var(--ok)}
.res { font-size:10px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:2px; color:#fff; }
.res.PASS{background:var(--st-done)} .res.FAIL{background:var(--st-block)} .res.BLOCKED{background:var(--st-wait)} .res.SKIP{background:var(--st-todo)}
.sev { font-size:10px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:2px; color:#fff; text-transform:uppercase; }
.sev.high{background:var(--st-block)} .sev.medium{background:var(--st-wait)} .sev.low{background:var(--st-todo)}
.empty-unk { border:1px dashed var(--unknown); background:var(--unknown-bg); color:var(--unknown); padding:10px 12px; font-size:12.5px; font-weight:700; line-height:1.5; margin:8px 0; }
.empty-ok { color:var(--ink-faint); font-size:12.5px; font-style:italic; padding:6px 0; }
.tm { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; color:var(--ink-soft); white-space:nowrap; }
table.ptable { border-collapse:collapse; width:100%; min-width:560px; }
.ptable th { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); font-weight:800; text-align:left; padding:8px 12px; border-bottom:1px solid var(--rule-hard); white-space:nowrap; }
.ptable td { padding:9px 12px; border-bottom:1px solid var(--rule); font-size:13.5px; vertical-align:top; }
.xrow { cursor:pointer; }
.xrow:hover td { background:var(--surface-2); }
.xrow td:first-child { font-weight:700; }
.go { color:var(--accent); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.filed { background:var(--st-done); } .notfiled { background:var(--unknown); }
.pillx { font-size:10px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:2px; color:#fff; white-space:nowrap; }
.timebar { display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12px; color:var(--ink-soft); margin:0 0 12px; }
.timebar b { color:var(--ink); }
.viewas { display:inline-flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }

.drawer-back { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:40; }
.drawer { position:fixed; top:0; right:0; bottom:0; width:min(720px,100%); background:var(--ground); border-left:2px solid var(--rule-hard); z-index:41; overflow-y:auto; box-shadow:var(--shadow); padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px); }
.drawer .dhead { position:sticky; top:0; background:var(--surface); border-bottom:2px solid var(--rule-hard); padding:12px 16px; display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; z-index:1; }
.drawer .dhead h2 { margin:0; font-size:15px; font-weight:800; }
.drawer .dbody { padding:14px 16px 30px; }

.acc { border:1px solid var(--rule-hard); background:var(--surface); }
.acc + .acc { border-top:0; }
.acc-h { width:100%; display:flex; gap:10px; align-items:baseline; background:none; border:0; color:inherit; font:inherit; text-align:left; padding:11px 14px; cursor:pointer; }
.acc-h:hover { background:var(--surface-2); }
.acc-h .kid { font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-faint); font-weight:700; }
.acc-h .t { font-weight:700; font-size:14px; flex:1; }
.acc-b { padding:0 14px 12px 14px; font-size:13px; color:var(--ink-soft); line-height:1.55; display:flex; flex-direction:column; gap:9px; }
.acc-b[hidden] { display:none !important; }
.ids { display:flex; flex-wrap:wrap; gap:6px; }
.ids button { background:var(--surface); color:var(--ink-soft); border:1px solid var(--rule-hard); border-radius:2px; font:inherit; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px; cursor:pointer; }
.ids button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fff; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; align-items:start; }
.surface-foot { font-size:11.5px; color:var(--ink-faint); margin-top:8px; line-height:1.55; }
/* v6: the view switch sits in the same place on every view (Sean, v5 review). */
html { scrollbar-gutter: stable; }
.surface-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:baseline; gap:11px; }
.surface-head .q { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.surface-head .vswitch { margin-left:0; justify-self:end; }
@media (max-width:900px){ .surface-head { grid-template-columns:auto minmax(0,1fr); } .surface-head .vswitch { grid-column:1 / -1; justify-self:start; } }

/* Back to top */
.totop { position:fixed; right:calc(18px + env(safe-area-inset-right,0px)); bottom:calc(18px + env(safe-area-inset-bottom,0px));
  width:46px; height:46px; border-radius:2px; background:var(--accent); color:#fff; border:0; font:inherit; font-size:22px; font-weight:800;
  line-height:1; cursor:pointer; z-index:30; box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; }
.totop:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.totop[hidden] { display:none !important; }

/* Brief layouts */
.bl { display:grid; gap:14px; align-items:start; }
.bl-1 { grid-template-columns:minmax(0,1fr); }
.bl-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bl-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1100px){ .bl-3 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px){ .bl-2, .bl-3 { grid-template-columns:minmax(0,1fr); } }
.bl > .col { display:flex; flex-direction:column; gap:14px; min-width:0; }
.bl .sec { margin-bottom:0; }
.lswitch { display:inline-flex; border:1px solid var(--rule-hard); border-radius:2px; overflow:hidden; }
.lswitch button { background:var(--surface); color:var(--ink-faint); border:0; font:inherit; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; cursor:pointer; }
.lswitch button + button { border-left:1px solid var(--rule-hard); }
.lswitch button[aria-pressed="true"] { background:var(--accent); color:#fff; }

/* Leadership: entity filter and agenda */
.entfilter { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:12px; }
.agenda { border:1px solid var(--accent); background:var(--surface); margin-bottom:14px; }
.agenda .sechead { border-bottom-color:var(--accent); }
.agenda ol.ag { list-style:none; margin:0; padding:6px 14px 12px; counter-reset:ag; }
.agenda .agg { font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin:12px 0 4px; display:flex; gap:8px; }
.agenda .agg .n { color:var(--accent); }
.agenda li.ai { display:flex; gap:10px; align-items:baseline; padding:6px 0; border-top:1px solid var(--rule); font-size:14px; line-height:1.45; }
.agenda li.ai input { flex:none; width:16px; height:16px; accent-color:var(--accent); transform:translateY(2px); }
.agenda li.ai label { flex:1; min-width:0; cursor:pointer; }
.agenda li.ai.done label { text-decoration:line-through; color:var(--ink-faint); }
.agenda li.ai .tag { font-size:9.5px; font-weight:800; letter-spacing:.07em; padding:1px 6px; border-radius:2px; color:#fff; white-space:nowrap; }
.agenda .none { font-size:12.5px; color:var(--ink-faint); font-style:italic; padding:4px 0; }

/* Scorecard */
.rag { font-size:10px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:2px; color:#fff; white-space:nowrap; }
.rag.g { background:var(--st-done); } .rag.r { background:var(--st-block); } .rag.u { background:var(--unknown); }
.prop { font-size:10px; font-weight:800; letter-spacing:.1em; padding:2px 7px; border-radius:2px; border:1px dashed var(--unknown); color:var(--unknown); }
.ptable td.nw { color:var(--unknown); font-weight:700; font-size:12.5px; }

/* Roadmap as a backlog list */
.rmlist { border:1px solid var(--rule-hard); background:var(--surface); margin-bottom:14px; }
.rmlist > h3 { margin:0; padding:10px 14px; border-bottom:1px solid var(--rule-hard); font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; display:flex; gap:10px; align-items:baseline; }
.rmlist.now > h3 { background:var(--accent); color:#fff; border-bottom-color:var(--accent); }
.rmlist > h3 .cnt { font-size:11px; opacity:.8; }
.rrow { border-top:1px solid var(--rule); }
.rrow:first-of-type { border-top:0; }
.rrow-h { width:100%; display:grid; grid-template-columns:18px 64px minmax(0,1fr) 110px 110px 70px; gap:10px; align-items:baseline;
  background:none; border:0; color:inherit; font:inherit; text-align:left; padding:10px 14px; cursor:pointer; }
.rrow-h:hover { background:var(--surface-2); }
.rrow-h:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.rrow-h .rid { font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-faint); font-weight:700; }
.rrow-h .rt1 { font-weight:700; font-size:14px; display:block; }
.rrow-h .rd { font-size:12.5px; color:var(--ink-soft); line-height:1.45; display:block; margin-top:2px; }
.rrow-h .own { font-size:12px; color:var(--ink-soft); font-weight:700; }
.rrow-h .tgt { font-size:11px; color:var(--unknown); font-weight:800; letter-spacing:.08em; }
.rrow-b { padding:0 14px 12px 106px; font-size:13px; color:var(--ink-soft); line-height:1.55; }
.rrow-b[hidden] { display:none !important; }
.rrow-b dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:4px 12px; margin:6px 0 0; }
.rrow-b dt { font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.rrow-b dd { margin:0; }
.rhead { display:grid; grid-template-columns:18px 64px minmax(0,1fr) 110px 110px 70px; gap:10px; padding:7px 14px; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); border-bottom:1px solid var(--rule-hard); }
.rrow-h .rid-m { display:none; font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-faint); font-weight:700; }
@media (max-width:760px){ .rrow-h .rid-m { display:block; } }
@media (max-width:760px){ .rrow-h, .rhead { grid-template-columns:18px minmax(0,1fr) auto; } .rrow-h .rid, .rhead .rid, .rrow-h .own, .rhead .own, .rrow-h .tgt, .rhead .tgt { display:none; } .rrow-b { padding-left:42px; } }
.st { font-size:9.5px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:2px; color:#fff; white-space:nowrap; justify-self:start; }
.st-live{background:var(--st-done)} .st-design{background:var(--st-prog)} .st-next{background:var(--st-uat)} .st-def{background:var(--st-wait)} .st-later{background:var(--st-todo)} .st-park{background:var(--st-qa)}
.pillx.late { background:var(--st-wait); }
.tone-block { background:var(--st-block); } .tone-wait { background:var(--st-wait); } .tone-done { background:var(--st-done); }
.agenda li.ai .tag { margin-right:8px; }
.surfaces.solo .brief { display:none; }

/* CRB-I42/I44: live cards, clickable rows and the card drawer */
.ctable tr.crow { cursor:pointer; }
.ctable tr.crow:focus-visible td { outline:2px solid var(--accent); outline-offset:-2px; }
.kcard { cursor:pointer; }
.kcard:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.pullline { font-size:12.5px; color:var(--ink-soft); margin:0 0 10px; }
.pullline b { color:var(--ink); font-weight:800; }
.pullline--snap { border:1px dashed var(--unknown); background:var(--unknown-bg); padding:8px 11px; }
.dsec { margin:16px 0 0; }
.dsec h3 { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 8px; }
.ddesc { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.55; background:var(--surface); border:1px solid var(--rule); padding:10px 12px; }
.dfields { list-style:none; margin:0; padding:0; border:1px solid var(--rule); }
.dfields li { display:flex; justify-content:space-between; gap:12px; padding:6px 10px; border-bottom:1px solid var(--rule); font-size:13.5px; }
.dfields li:last-child { border-bottom:0; }
.dfl { color:var(--ink-soft); }
.dfv { font-weight:700; text-align:right; }
.dfv.none { color:var(--unknown); }
.dprog { font-size:13px; margin:0 0 6px; }
.dcom { border-left:3px solid var(--rule-hard); padding:6px 10px; margin:0 0 8px; background:var(--surface); }
.dcm { font-size:11.5px; color:var(--ink-faint); font-weight:700; margin-bottom:3px; }
.dct { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13.5px; }
.dfoot { margin:18px 0 0; font-weight:800; }
.linkish { background:none; border:0; padding:0; color:var(--accent); font:inherit; font-weight:700; cursor:pointer; text-align:left; text-decoration:underline; text-underline-offset:3px; }

/* ── Leadership filter banner (a filter is never silent) ─────────────────── */
.fbanner { display:flex; flex-wrap:wrap; gap:6px; align-items:baseline; border:1px solid var(--accent); border-left-width:4px;
  background:var(--surface); color:var(--ink); padding:8px 12px; margin:0 0 12px; font-size:13px; }
.fbanner b { font-weight:800; }
.fbanner .linkish { background:none; border:0; padding:0; font:inherit; font-weight:800; color:var(--accent); cursor:pointer; text-decoration:underline; }
.fbanner .linkish:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* ── EOS Issues List · IDS (CRB-I49) ────────────────────────────────────── */
.issues-line { margin:0 0 8px; }
.ids-list { border:1px solid var(--rule-hard); background:var(--surface); }
.ids-row { border-top:1px solid var(--rule); }
.ids-row:first-child { border-top:0; }
.ids-h { width:100%; display:grid; grid-template-columns:18px 72px minmax(0,1fr) 130px 100px 110px; gap:10px; align-items:baseline;
  background:none; border:0; color:inherit; font:inherit; text-align:left; padding:10px 14px; cursor:pointer; }
.ids-h:hover { background:var(--surface-2); }
.ids-h:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.ids-no { font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--ink-faint); font-weight:800; }
.ids-t { font-weight:800; font-size:14px; }
.ids-o { font-size:12px; color:var(--ink-soft); font-weight:700; }
.ids-a { font-size:12px; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.ids-w { font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); }
.ids-b { padding:0 14px 14px 114px; font-size:13px; color:var(--ink-soft); line-height:1.55; }
.ids-b[hidden] { display:none !important; }
.ids-meta { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:4px 12px; margin:6px 0 0; }
.ids-meta dt { font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.ids-meta dd { margin:0; }
.ids-out { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:10px 0 4px; }
.ids-out .lbl { margin:0 6px 0 0; display:inline; }
.ids-lbl { font-size:10px; font-weight:800; letter-spacing:.08em; padding:2px 8px; border-radius:2px; border:1px solid currentColor; cursor:default; }
.ids-keep { color:var(--st-done); } .ids-kill { color:var(--st-block); } .ids-combine { color:var(--st-qa); } .ids-defer { color:var(--st-wait); }
@media (max-width:760px){ .ids-h { grid-template-columns:18px minmax(0,1fr) auto; } .ids-no, .ids-o, .ids-w { display:none; } .ids-b { padding-left:14px; } }

/* CRB-I48: OKRs and scorecard, a labelled snapshot of the draft. */
.okr-snap { margin:0 0 10px; font-size:12px; color:var(--unknown); font-weight:700; line-height:1.5; }
.okr-obj { border-top:1px solid var(--rule); padding:10px 0 4px; }
.okr-oh { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; }
.okr-id { font-weight:800; color:var(--accent); }
.okr-t { font-weight:800; color:var(--ink); }
.okr-st { font-size:10px; font-weight:800; letter-spacing:.08em; padding:1px 6px; border-radius:2px; border:1px solid currentColor; }
.okr-st.accepted { color:var(--accent); }
.okr-st.open { color:var(--warn); }
.okr-note { margin:4px 0 6px; font-size:12.5px; color:var(--ink-faint); line-height:1.5; }
.okr-krs { margin:0 0 6px; padding-left:18px; }
.okr-krs li { margin:6px 0; font-size:13.5px; line-height:1.5; overflow-wrap:anywhere; }
.okr-base { font-size:12px; color:var(--ink-faint); margin-top:2px; }
.okr-base.none { font-style:italic; }
.okr-h4 { margin:14px 0 2px; font-size:13px; font-weight:800; color:var(--ink); }
.strike { text-decoration:line-through; }
.okr-out td { color:var(--ink-faint); }

/* Cliq ask 18: DoR and DoD from Sprints checklists in the card drawer. */
.dchecks { list-style:none; margin:4px 0 0; padding:0; }
.dchecks li { display:flex; gap:8px; align-items:baseline; padding:4px 0; border-bottom:1px solid var(--rule); font-size:13.5px; line-height:1.45; }
.dchecks .tick { flex:none; width:1.2em; font-size:15px; }
.dchecks li.done .tick { color:var(--accent); }
.dchecks li.open .tick { color:var(--warn); }
.dchecks .dcl { flex:1; min-width:0; overflow-wrap:anywhere; }
.dchecks .dco { flex:none; font-size:11.5px; color:var(--ink-faint); font-weight:700; }
.dprog.notset { color:var(--ink-faint); font-style:italic; }

/* CRB-I77: the registers library, read live, one group per register. */
#reg-lib { margin-bottom:28px; }
.lib-line { margin:0 0 10px; font-size:13px; color:var(--ink-soft); line-height:1.5; }
.lib-line b { color:var(--ink); }
.lib-bad { color:var(--bad); font-weight:800; }
.lib-filters { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin:0 0 12px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); }
.lib-filters select { margin-left:6px; font:inherit; font-size:13px; letter-spacing:0; text-transform:none; font-weight:700; color:var(--ink); background:var(--surface); border:1px solid var(--rule-hard); border-radius:3px; padding:4px 6px; max-width:100%; }
.lib-filters label { display:flex; align-items:center; max-width:100%; }
.lib-shown { color:var(--ink-soft); }
.lib-group { border:1px solid var(--rule-hard); background:var(--surface); margin:0 0 8px; }
.lib-group--bad { border-color:var(--bad); }
.lib-group > summary { display:grid; grid-template-columns:120px minmax(0,1fr) auto; gap:4px 12px; align-items:baseline; padding:10px 14px; cursor:pointer; }
.lib-group > summary:hover { background:var(--surface-2); }
.lib-group > summary:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.lib-g { font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.lib-l { font-weight:800; font-size:14px; }
.lib-n { font-weight:800; font-variant-numeric:tabular-nums; }
.lib-group--bad .lib-n { color:var(--bad); }
.lib-src { grid-column:2 / -1; font-size:11.5px; font-family:ui-monospace,Menlo,monospace; overflow-wrap:anywhere; }
.lib-group > .status, .lib-group > .muted, .lib-warn { margin:0 14px 12px; font-size:13px; }
.lib-warn { color:var(--warn); font-weight:700; }
.lib-wrap { overflow-x:auto; border-top:1px solid var(--rule); }
.lib-t { width:100%; border-collapse:collapse; font-size:13px; }
.lib-t th { text-align:left; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); padding:8px 14px 6px; border-bottom:1px solid var(--rule); }
.lib-t td { padding:6px 14px; border-bottom:1px solid var(--rule); vertical-align:baseline; line-height:1.45; }
.lib-t td a { overflow-wrap:anywhere; }
.lib-id { font-family:ui-monospace,Menlo,monospace; font-size:12px; font-weight:800; color:var(--ink-soft); overflow-wrap:anywhere; max-width:260px; }
.lib-st { font-size:12px; font-weight:700; white-space:nowrap; }
.lib-d { font-size:12px; color:var(--ink-soft); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lib-row--bad td { color:var(--bad); }
@media (max-width:760px){ .lib-group > summary { grid-template-columns:minmax(0,1fr) auto; } .lib-g { grid-column:1 / -1; } .lib-src { grid-column:1 / -1; } .lib-t th:nth-child(4), .lib-t td:nth-child(4) { display:none; } .lib-id { max-width:120px; } }

/* ── Analytics (CRB-I56) ────────────────────────────────────────────────────
   Wireframe: Analytics v2 (approved 27 Sep 2026, Cliq 1790480101004_102557953109).
   Palette tokens only. Colour is spent where attention is needed: healthy is
   plain ink, never green, and "not connected" is muted, never a warning.
   ────────────────────────────────────────────────────────────────────────── */
.an-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.an-hero { padding: clamp(20px, 5vh, 56px) 0 clamp(16px, 3vh, 32px); }
.an-hero h1 { margin: 10px 0 0; font-size: clamp(30px, 5.4vw, 64px); line-height: 1.04; font-weight: 800; letter-spacing: -.025em; }
.an-answer { margin: 14px 0 0; font-size: clamp(16px, 1.6vw, 20px); color: var(--muted); }
.an-answer b { color: var(--fg); font-weight: 800; }
.an-acts { list-style: none; margin: 24px 0 0; padding: 0; border-top: 1px solid var(--line); }
.an-act { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 4px 18px; align-items: start;
  padding: 16px 0; border-bottom: 1px solid var(--line); position: relative; }
.an-act::before { content: ''; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; background: var(--sev); }
.an-act--bad { --sev: var(--bad); } .an-act--warn { --sev: var(--warn); }
.an-act .an-ix { grid-row: 1 / span 2; font-size: 13px; font-weight: 800; color: var(--sev); padding-left: 16px; line-height: 1.9; font-variant-numeric: tabular-nums; }
.an-act .an-do { margin: 0; font-size: clamp(17px, 1.55vw, 21px); line-height: 1.35; font-weight: 600; overflow-wrap: anywhere; }
.an-act .an-do b { font-weight: 800; }
.an-act .an-so { margin: 4px 0 0; grid-column: 2; color: var(--muted); overflow-wrap: anywhere; }
.an-act .an-why { grid-row: 1 / span 2; grid-column: 3; align-self: center; background: none; border: 0; padding: 6px 0; cursor: pointer;
  font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.an-act .an-why:hover { color: var(--accent); }
@media (max-width: 600px) {
  .an-act { grid-template-columns: 30px minmax(0, 1fr); }
  .an-act .an-ix { padding-left: 12px; }
  .an-act .an-why { grid-row: auto; grid-column: 2; justify-self: start; padding: 4px 0 0; }
}
.an-calm { margin: 24px 0 0; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  font-size: clamp(18px, 1.8vw, 24px); font-weight: 600; color: var(--muted); }
.an-calm b { color: var(--fg); font-weight: 800; }
.an-clear { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 4px; margin-top: 22px; font-size: 14px; color: var(--muted); }
.an-clear .an-eyebrow { margin-right: 12px; }
.an-dot { padding: 0 6px; }
.an-seg { background: none; border: 0; padding: 2px 0; cursor: pointer; color: var(--muted); font: inherit; border-bottom: 1px dotted var(--muted); }
.an-seg:hover, .an-seg[aria-expanded="true"] { color: var(--fg); border-bottom-color: var(--fg); }
.an-seg--bad { color: var(--bad); border-bottom-color: var(--bad); font-weight: 700; }
.an-panel { margin-top: 14px; padding: 14px 18px; background: var(--card); border: 1px solid var(--line); max-width: 880px; overflow-wrap: anywhere; }
.an-panel p { margin: .25rem 0; }
.an-fold { margin-top: clamp(40px, 8vh, 96px); }
.an-fold > h2 { margin: 6px 0 22px; font-size: clamp(20px, 2.2vw, 28px); font-weight: 800; letter-spacing: -.015em; text-transform: none; color: var(--fg); }
.an-viz { display: grid; gap: 18px; align-items: start; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.an-card { background: var(--card); border: 1px solid var(--line); padding: 20px 22px 16px; min-width: 0; grid-column: span 4; display: flex; flex-direction: column; }
.an-card--wide { grid-column: span 8; }
@media (max-width: 1100px) { .an-card, .an-card--wide { grid-column: span 6; } }
@media (max-width: 700px) { .an-card, .an-card--wide { grid-column: 1 / -1; } }
.an-big { font-size: clamp(34px, 3.6vw, 48px); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin-top: 10px; font-variant-numeric: tabular-nums; }
.an-big small { font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--muted); margin-left: 8px; }
.an-sub { font-size: 13.5px; color: var(--muted); margin-top: 4px; overflow-wrap: anywhere; }
.an-empty { margin-top: 12px; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.an-empty b { color: var(--fg); font-weight: 800; }
.an-empty--error, .an-empty--error b { color: var(--bad); }
.an-bars { display: flex; align-items: flex-end; gap: 6px; height: 64px; margin-top: 14px; }
.an-bars span { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; gap: 2px; font-size: 10.5px; color: var(--muted); font-weight: 700; }
.an-bars i { display: block; width: 100%; background: var(--muted); opacity: .55; min-height: 2px; }
.an-bars span:last-child i { background: var(--fg); opacity: 1; }
.an-decides { margin-top: auto; padding-top: 14px; font-size: 13px; color: var(--muted); }
.an-decides b { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; margin-right: 8px; }
.an-more { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; font-size: 13px; }
.an-more summary { cursor: pointer; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.an-more summary:hover { color: var(--fg); }
.an-src { margin-top: 10px; font-size: 11.5px; color: var(--muted); overflow-wrap: anywhere; }
.an-kv { list-style: none; margin: 10px 0 0; padding: 0; }
.an-kv li { display: flex; gap: 12px; justify-content: space-between; padding: 4px 0; border-top: 1px solid var(--line); color: var(--muted); }
.an-kv li:first-child { border-top: 0; }
.an-kv li b { color: var(--fg); font-variant-numeric: tabular-nums; }
.an-foot { margin-top: 26px; font-size: 12px; color: var(--muted); }

/* ══ CRB-I84 (chip kratexa-v6-gaps): Access dropdowns, read-only. Palette tokens only. ══ */
select.acl { background:var(--surface); color:var(--ink); border:1px solid var(--rule-hard); border-radius:2px;
  font:inherit; font-size:12px; font-weight:700; padding:3px 6px; max-width:100%; }
select.acl[disabled] { opacity:1; color:var(--ink-soft); cursor:not-allowed; }
.viewas .meta { font-size:11px; color:var(--ink-faint); font-weight:700; }
