/* ══════════════════════════════════════════════════════════════════════════
   Egzakta Innovation Idea Bank
   Operate-mode product UI. One brand hue (Egzakta navy) carries identity,
   selection and primary actions; three semantic hues (green / amber / red)
   carry state only. Taxonomy (class, stage, pillar level) is neutral — it is
   information, not state, and colouring it drowned out the statuses.
   ══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Brand — Egzakta navy ramp */
  --navy-900: #041D3E;
  --navy-700: #08346D;
  --navy-600: #1B4A86;
  --navy-400: #718BAB;
  --navy-100: #DCE4EE;
  --navy-50:  #EEF2F7;

  /* Neutrals */
  --ink: #111827;
  --ink-soft: #374151;
  --ink-muted: #5F6B7A;
  --ink-faint: #9AA4B2;
  --surface: #FFFFFF;
  --surface-alt: #F5F6F8;
  --surface-sunken: #EDF0F4;
  --border: #E2E6EC;
  --border-strong: #CBD2DC;

  /* State */
  --success: #17754A;
  --success-bg: #E5F3EB;
  --warning: #935A0C;
  --warning-bg: #FBF0DD;
  --danger: #B42318;
  --danger-bg: #FCEBEA;
  --award: #B08421;

  /* Aliases kept for readability in component rules */
  --heading: var(--navy-700);
  --accent: var(--navy-700);

  /* Spacing */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;

  /* Type — 1.2 ratio around a 15px body */
  --fs-xs: 12px;
  --fs-sm: 13px;
  --fs-base: 15px;
  --fs-md: 16px;
  --fs-lg: 19px;
  --fs-xl: 23px;
  --fs-xxl: 28px;

  --radius: 6px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  --shadow-pop: 0 8px 24px rgba(4, 29, 62, 0.12), 0 2px 6px rgba(4, 29, 62, 0.06);
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --focus: 0 0 0 3px rgba(8, 52, 109, 0.25);
}

/* ── Reset & base ──────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: var(--fs-base);
  line-height: 1.5;
  color: var(--ink);
  background: var(--surface-alt);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--navy-700); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
p { margin: 0; }

h1, h2, h3, h4, h5, h6 {
  color: var(--navy-700);
  font-weight: 600;
  letter-spacing: -0.015em;
  margin: 0;
  text-wrap: balance;
}

:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none; }

.icon { flex-shrink: 0; vertical-align: -0.15em; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: var(--s-4); top: -48px; z-index: 50;
  background: var(--navy-700); color: #fff; padding: var(--s-2) var(--s-3);
  border-radius: var(--radius); font-size: var(--fs-sm); font-weight: 600;
}
.skip-link:focus { top: var(--s-2); }
.main:focus { outline: none; }
.nowrap { white-space: nowrap; }

/* ── Layout shell ──────────────────────────────────────────────────────── */

.app { min-height: 100vh; display: flex; flex-direction: column; }

.brand-mark {
  display: inline-grid; place-items: center;
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--navy-700); color: #fff;
  font-size: 15px; font-weight: 700; letter-spacing: 0;
}
.brand-mark-lg { width: 40px; height: 40px; border-radius: 10px; font-size: 20px; }
.nav-toggle {
  display: inline-flex; margin-left: auto;
  background: none; border: none; cursor: pointer;
  padding: var(--s-2); color: var(--ink); border-radius: var(--radius);
}
.nav-toggle svg { width: 22px; height: 22px; }
.user-menu-head {
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--s-2) var(--s-3) var(--s-3);
  margin-bottom: var(--s-1);
  border-bottom: 1px solid var(--border);
  font-size: var(--fs-sm);
}
.user-menu-head strong { color: var(--ink); }
.user-menu-head span { color: var(--ink-muted); overflow-wrap: anywhere; }
.user-menu-head .role-chip { margin-top: var(--s-2); }
.user-menu-item {
  display: flex; align-items: center; gap: var(--s-2);
  width: 100%; text-align: left;
  padding: var(--s-2) var(--s-3);
  border: none; background: none; cursor: pointer;
  border-radius: var(--radius);
  font-size: var(--fs-sm); color: var(--ink-soft);
}
.user-menu-item:hover { background: var(--surface-alt); color: var(--navy-700); text-decoration: none; }
.user-menu-lang { justify-content: space-between; cursor: default; }
.user-menu-lang:hover { background: none; color: var(--ink-soft); }
.role-chip {
  align-self: flex-start;
  display: inline-flex; align-items: center; flex-shrink: 0;
  padding: 1px var(--s-2);
  border-radius: var(--radius-pill);
  background: var(--navy-50); color: var(--navy-700);
  font-size: var(--fs-xs); font-weight: 600;
}
.lang-select {
  appearance: none; -webkit-appearance: none;
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%235F6B7A' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") no-repeat right 8px center;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 4px 26px 4px 10px;
  font-size: var(--fs-sm);
  color: var(--ink-soft);
  cursor: pointer;
}
.lang-select:focus { border-color: var(--navy-700); box-shadow: var(--focus); outline: none; }


.main {
  flex: 1;
  width: 100%;
  margin: 0 auto;
  padding: var(--s-5) var(--s-4) var(--s-8);
}
@media (min-width: 900px) { .main { padding: var(--s-6) var(--s-5) var(--s-8); } }

/* ── Page headers ──────────────────────────────────────────────────────── */

.page-header { margin-bottom: var(--s-5); }
.page-header h2 {
  font-size: var(--fs-xxl);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: var(--s-2);
}
.page-header p { color: var(--ink-muted); font-size: var(--fs-sm); max-width: 72ch; }
.idnum { color: var(--ink-faint); font-weight: 500; font-size: 0.6em; letter-spacing: 0; vertical-align: 0.15em; }

.back-link {
  display: inline-flex; align-items: center; gap: var(--s-1);
  color: var(--ink-muted); font-size: var(--fs-sm);
  margin-bottom: var(--s-3);
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.back-link:hover { color: var(--navy-700); }

.notice {
  background: var(--navy-50);
  color: var(--navy-900);
  border-radius: var(--radius);
  padding: var(--s-3) var(--s-4);
  font-size: var(--fs-sm);
  margin-bottom: var(--s-4);
}

/* ── Filter bar ────────────────────────────────────────────────────────── */

.filters {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-2);
  margin-bottom: var(--s-3);
}
.filters input, .filters select {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 9px var(--s-3);
  font-size: var(--fs-sm);
  min-width: 0;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.filters input:focus, .filters select:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.filters-meta { font-size: var(--fs-xs); color: var(--ink-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (min-width: 640px) {
  .filters { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; align-items: center; }
  .filters-compact { grid-template-columns: minmax(0, 360px) auto; justify-content: start; }
}

/* ── Lifecycle tabs & sort bar ───────────────────────────────────────── */

.lifecycle-tabs {
  display: flex; gap: var(--s-1);
  border-bottom: 1px solid var(--border);
  margin-bottom: var(--s-4);
  overflow-x: auto; scrollbar-width: none;
}
.lifecycle-tabs::-webkit-scrollbar { display: none; }
.lifecycle-tab {
  background: none; border: none;
  border-bottom: 2px solid transparent;
  padding: var(--s-2) var(--s-3) 10px;
  margin-bottom: -1px;
  font-size: var(--fs-sm); color: var(--ink-muted);
  cursor: pointer; white-space: nowrap;
  display: inline-flex; align-items: center; gap: var(--s-2);
  transition: color 0.15s var(--ease), border-color 0.15s var(--ease);
}
.lifecycle-tab:hover { color: var(--ink); }
.lifecycle-tab.active { color: var(--navy-700); border-bottom-color: var(--navy-700); font-weight: 600; }
.lifecycle-count {
  font-size: var(--fs-xs); font-weight: 600;
  background: var(--surface-sunken); color: var(--ink-muted);
  border-radius: var(--radius-pill);
  padding: 0 7px; min-width: 22px; text-align: center;
  font-variant-numeric: tabular-nums;
}
.lifecycle-tab.active .lifecycle-count { background: var(--navy-700); color: #fff; }

.sort-bar {
  display: flex; gap: var(--s-2); align-items: center;
  margin-bottom: var(--s-4);
  overflow-x: auto; scrollbar-width: none;
  padding-bottom: 2px;
}
.sort-bar::-webkit-scrollbar { display: none; }
.sort-bar-label { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 600; white-space: nowrap; }
.sort-btn {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  padding: 4px var(--s-3);
  font-size: var(--fs-xs); font-weight: 500;
  color: var(--ink-soft);
  cursor: pointer; white-space: nowrap;
  transition: background 0.15s var(--ease), border-color 0.15s var(--ease), color 0.15s var(--ease);
}
.sort-btn:hover { border-color: var(--border-strong); color: var(--ink); }
.sort-btn.active { background: var(--navy-700); color: #fff; border-color: var(--navy-700); }
.sort-btn.active::after { content: ' ' attr(data-dir); opacity: 0.8; }
.sort-bar-sep { width: 1px; height: 18px; background: var(--border-strong); margin: 0 var(--s-2); flex-shrink: 0; }

/* ── Idea cards ───────────────────────────────────────────────────────── */

.idea-list { display: flex; flex-direction: column; gap: var(--s-2); }
.idea-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5);
  color: inherit;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.idea-card:hover { border-color: var(--navy-400); text-decoration: none; }
.idea-card-top { display: flex; align-items: baseline; gap: var(--s-2); margin-bottom: var(--s-2); }
.idea-card-id { color: var(--ink-faint); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.idea-card-title { color: var(--navy-900); font-size: var(--fs-md); font-weight: 600; line-height: 1.35; flex: 1; min-width: 0; }
.idea-card-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.idea-card-meta {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: var(--s-1) var(--s-5);
  margin-top: var(--s-3);
  font-size: var(--fs-xs); color: var(--ink-muted);
}
.idea-card-owner { color: var(--ink-soft); font-weight: 500; }
@media (max-width: 640px) { .idea-card { padding: var(--s-4); } }

.idea-groups { display: flex; flex-direction: column; gap: var(--s-6); }
.idea-group-head {
  display: flex; align-items: center; gap: var(--s-3);
  padding-bottom: var(--s-2); margin-bottom: var(--s-3);
  border-bottom: 1px solid var(--border);
}

/* ── Tags ─────────────────────────────────────────────────────────────── */

.tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 1px 8px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 18px;
  white-space: nowrap;
}

/* Taxonomy — neutral, outlined */
.tag-stage,
.tag-class-1, .tag-class-2, .tag-class-3, .tag-class-4, .tag-class-5 {
  background: var(--surface);
  border-color: var(--border-strong);
  color: var(--ink-soft);
  font-weight: 500;
}
.tag-stage { color: var(--navy-700); font-weight: 600; }

/* Pillar level — quiet, text-weight */
.tag-level-full, .tag-level-adapted, .tag-level-research {
  background: var(--surface-sunken);
  color: var(--ink-muted);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.02em;
  padding: 0 6px;
  line-height: 18px;
}

/* Status — state colour carries meaning */
.tag-DRAFT          { background: var(--surface-sunken); color: var(--ink-soft); }
.tag-SUBMITTED,
.tag-PM_REVIEW      { background: var(--warning-bg); color: var(--warning); }
.tag-GATE_SCHEDULED { background: var(--navy-50); color: var(--navy-700); }
.tag-IN_PROGRESS    { background: var(--success-bg); color: var(--success); }
.tag-HOLD           { background: var(--danger-bg); color: var(--danger); }
.tag-PARKED         { background: var(--surface-sunken); color: var(--ink-muted); }
.tag-CLOSED_CHAMPION,
.tag-CLOSED_FOUNDER { background: var(--navy-700); color: #fff; }
.tag-MERGED         { background: var(--surface); border-color: var(--border-strong); color: var(--ink-muted); }

/* Gate decisions */
.tag-decision-GO   { background: var(--success-bg); color: var(--success); }
.tag-decision-HOLD { background: var(--danger-bg); color: var(--danger); }
.tag-decision-STOP { background: var(--surface-sunken); color: var(--ink-soft); }

.tag-meeting { background: var(--navy-50); color: var(--navy-700); }

/* Score */
.score-pill { display: inline-flex; align-items: baseline; gap: 4px; font-variant-numeric: tabular-nums; }
.score-pill .num { font-size: var(--fs-sm); font-weight: 700; color: var(--navy-900); }
.score-pill .num.missing { font-size: var(--fs-xs); font-weight: 500; color: var(--ink-muted); }
.score-pill .gate { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 500; }

/* Missing values render as quiet words, never as a bold dash that reads like data */
.is-empty { color: var(--ink-faint) !important; font-weight: 500 !important; font-size: var(--fs-sm) !important; }

/* ── Empty / loading ──────────────────────────────────────────────────── */

.empty { text-align: center; padding: var(--s-8) var(--s-4); color: var(--ink-muted); max-width: 520px; margin: 0 auto; }
.empty h3 { color: var(--ink); font-size: var(--fs-lg); margin-bottom: var(--s-2); }
.empty p + p { margin-top: var(--s-2); }
.empty-icon {
  display: inline-grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--surface-sunken); color: var(--ink-muted);
  margin-bottom: var(--s-3);
}
.loading { text-align: center; padding: var(--s-7) var(--s-4); color: var(--ink-muted); font-size: var(--fs-sm); }

/* ── Forms ────────────────────────────────────────────────────────────── */

.form { display: flex; flex-direction: column; gap: var(--s-4); max-width: 720px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
  font-size: var(--fs-sm);
  color: var(--ink-soft);
  font-weight: 600;
}
.field input, .field select, .field textarea {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 9px var(--s-3);
  font-size: var(--fs-base);
  color: var(--ink);
  min-width: 0;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.field textarea { resize: vertical; min-height: 88px; line-height: 1.55; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.field input:disabled, .field textarea:disabled, .field select:disabled { background: var(--surface-alt); color: var(--ink-soft); }
.field input::placeholder, .field textarea::placeholder { color: var(--ink-muted); }
.field-help { font-size: var(--fs-xs); color: var(--ink-muted); }
.field-actions { display: flex; gap: var(--s-2); margin-top: var(--s-1); }
.field-inline { flex-direction: row; align-items: center; gap: var(--s-3); margin-bottom: var(--s-4); }
.field-inline select { min-width: 200px; }

.form-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; margin-top: var(--s-2); }
.form-error {
  background: var(--danger-bg); color: var(--danger);
  padding: var(--s-3) var(--s-4); border-radius: var(--radius);
  font-size: var(--fs-sm);
}
.inline-msg { font-size: var(--fs-sm); }
.inline-msg.ok { color: var(--success); }
.inline-msg.error { color: var(--danger); }

select.select-sm, .settings-table select {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 5px var(--s-2);
  font-size: var(--fs-sm);
}

/* ── Buttons ──────────────────────────────────────────────────────────── */

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 9px var(--s-4);
  min-height: 38px;
  font-size: var(--fs-sm); font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s var(--ease), border-color 0.15s var(--ease), color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.btn:hover { text-decoration: none; }
.btn:focus-visible { outline: none; box-shadow: var(--focus); }
.btn-primary { background: var(--navy-700); color: #fff; }
.btn-primary:hover { background: var(--navy-600); }
.btn-secondary { background: var(--surface); color: var(--navy-700); border-color: var(--border-strong); }
.btn-secondary:hover { border-color: var(--navy-700); }
.btn-ghost { background: transparent; color: var(--ink-soft); }
.btn-ghost:hover { background: var(--surface-sunken); color: var(--navy-700); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { background: #8F1B12; }
.btn-danger-quiet { background: transparent; color: var(--danger); border-color: transparent; }
.btn-danger-quiet:hover { background: var(--danger-bg); }
.btn-sm { padding: 5px var(--s-3); min-height: 32px; font-size: var(--fs-xs); }
.btn-block { width: 100%; }
.btn[disabled] { opacity: 0.45; cursor: not-allowed; pointer-events: none; }
.btn-sso {
  background: var(--surface); color: var(--ink);
  border-color: var(--border-strong);
  min-height: 46px; font-size: var(--fs-base); gap: var(--s-3);
}
.btn-sso:hover { border-color: var(--navy-700); background: var(--navy-50); }

.link-button {
  background: none; border: none; padding: 0; cursor: pointer;
  color: var(--navy-700); font: inherit; text-align: left;
}
.link-button:hover { text-decoration: underline; text-underline-offset: 2px; }

/* ── Detail page ──────────────────────────────────────────────────────── */

.detail-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-2); }
.detail-top .back-link { margin-bottom: 0; }
.detail-top-actions { display: flex; gap: var(--s-2); align-items: center; }

.detail-header { margin-bottom: var(--s-6); }
.detail-header h2 { font-size: var(--fs-xxl); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
.detail-header .tag-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: var(--s-3); }
.detail-header .tag-row .muted-inline { margin-left: var(--s-2); }
.detail-header .hypothesis {
  margin-top: var(--s-4);
  max-width: 72ch;
  font-size: var(--fs-md);
  line-height: 1.55;
  color: var(--ink-soft);
  font-style: italic;
}

.description { line-height: 1.65; max-width: 75ch; }
.idea-description { white-space: pre-wrap; }

/* Sections */
.section { margin-top: var(--s-7); }
.section:first-child { margin-top: 0; }
.section-header {
  display: flex; align-items: baseline; gap: var(--s-3);
  margin-bottom: var(--s-3);
  flex-wrap: wrap;
}
.section-header h3 { font-size: var(--fs-lg); flex: 1; min-width: 0; }
.section-link { margin-left: auto; font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; }
.section-intro { color: var(--ink-muted); font-size: var(--fs-sm); margin: 0 0 var(--s-4); max-width: 72ch; }

/* Pillar notes on the overview */
.pillar-notes { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.pillar-note { padding: var(--s-4) var(--s-5); }
.pillar-note + .pillar-note { border-top: 1px solid var(--border); }
.pillar-note-head { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.pillar-note-name { font-weight: 600; color: var(--navy-900); }
.pillar-note-score { margin-left: auto; font-weight: 700; font-size: var(--fs-md); color: var(--navy-900); font-variant-numeric: tabular-nums; }
.pillar-note-q { color: var(--ink-muted); font-size: var(--fs-sm); margin: var(--s-1) 0 var(--s-2); }
.pillar-note-text { line-height: 1.6; white-space: pre-wrap; max-width: 75ch; }
.assess-pillar-key {
  font-size: 11px; color: var(--ink-muted);
  letter-spacing: 0.06em; text-transform: uppercase; font-weight: 500;
}

/* Collapsible panels (gate & scheduling, event log) */
.collapse-panel {
  margin-top: var(--s-6);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.collapse-summary {
  display: flex; align-items: center; gap: var(--s-3);
  cursor: pointer; list-style: none; user-select: none;
  padding: var(--s-4) var(--s-5);
  border-radius: var(--radius-lg);
}
.collapse-summary:hover { background: var(--surface-alt); }
.collapse-summary::-webkit-details-marker { display: none; }
.collapse-summary::before {
  content: ''; width: 7px; height: 7px; flex-shrink: 0;
  border-right: 2px solid var(--ink-muted); border-bottom: 2px solid var(--ink-muted);
  transform: rotate(-45deg); transition: transform 0.15s var(--ease);
  margin-right: 2px;
}
.collapse-panel[open] > .collapse-summary::before { transform: rotate(45deg); }
.collapse-title { font-weight: 600; color: var(--navy-900); font-size: var(--fs-md); }
.collapse-count { margin-left: auto; color: var(--ink-muted); font-size: var(--fs-sm); }
.collapse-hint { color: var(--ink-muted); font-size: var(--fs-sm); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.collapse-hint + .tag { margin-left: 0; }
.collapse-summary > .tag { margin-left: auto; }
.collapse-body { padding: 0 var(--s-5) var(--s-5); }

/* Action cards (workflow) */
.action-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5);
  margin-bottom: var(--s-3);
}
.action-card h4 { font-size: var(--fs-md); color: var(--navy-900); margin-bottom: var(--s-3); }
.action-card .form { gap: var(--s-4); max-width: 640px; }
.action-hint { color: var(--ink-muted); font-size: var(--fs-sm); margin-bottom: var(--s-3); }
.gate-panel .action-card { border: none; background: transparent; padding: 0; margin: 0; }
.gate-panel .action-card + .action-card,
.gate-panel .gate-decisions { margin-top: var(--s-5); padding-top: var(--s-5); border-top: 1px solid var(--border); }
.gate-panel .section-header { margin-bottom: var(--s-2); }
.gate-decisions .section-header h3 { font-size: var(--fs-md); }

.prep-banner {
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--s-3) var(--s-4);
  border-radius: var(--radius);
  margin-bottom: var(--s-4);
  font-size: var(--fs-sm);
}
.prep-banner strong { font-weight: 600; }
.prep-ok { background: var(--success-bg); color: var(--success); }
.prep-missing { background: var(--warning-bg); color: var(--warning); }

.queued-date {
  display: flex; align-items: center; gap: var(--s-2);
  font-size: var(--fs-lg); color: var(--navy-900); font-weight: 600;
  margin: 0 0 var(--s-4);
}
.parked-reason { margin: 0 0 var(--s-3); color: var(--ink-muted); font-size: var(--fs-sm); }

/* Lists: gate decisions, gap tasks, event log, activity — one container, divided rows */
.simple-list {
  list-style: none; padding: 0; margin: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.simple-list li {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: var(--s-1) var(--s-3);
  padding: var(--s-3) var(--s-4);
  font-size: var(--fs-sm);
}
.simple-list li + li { border-top: 1px solid var(--border); }
.simple-list .when { color: var(--ink-muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.simple-list .when-fixed { min-width: 136px; }
.simple-list .done { text-decoration: line-through; color: var(--ink-muted); }
.when-trailing { margin-left: auto; }
.collapse-body .simple-list { border-radius: var(--radius); }
.decision-gate { font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.decision-notes { color: var(--ink-soft); }
.activity-event { color: var(--ink-soft); }

/* Awards */
.awards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--s-3); }
.award-chip {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-3) var(--s-4);
  display: flex; flex-direction: column; gap: 2px;
}
.award-chip .level { font-weight: 700; color: var(--navy-900); font-size: var(--fs-sm); letter-spacing: 0.02em; }
.award-chip .level::before { content: '★'; color: var(--award); margin-right: 6px; }
.award-chip .desc { font-size: var(--fs-sm); color: var(--ink-soft); }
.award-date { font-size: var(--fs-xs); color: var(--ink-muted); }

/* Lineage */
.relations-banner {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-3) var(--s-4);
  margin-bottom: var(--s-5);
  display: flex; flex-direction: column; gap: var(--s-1);
}
.relation-line { font-size: var(--fs-sm); color: var(--ink-soft); }
.relation-tag { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); margin-right: var(--s-2); }

/* ── Assessment (three tracks per gate) ──────────────────────────────── */

.assess-gate-tabs { display: inline-flex; background: var(--surface-sunken); border-radius: var(--radius-pill); padding: 3px; gap: 2px; }
.assess-gate {
  background: transparent; border: none;
  border-radius: var(--radius-pill);
  padding: 3px var(--s-3);
  font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted);
  cursor: pointer;
}
.assess-gate:hover { color: var(--ink); }
.assess-gate.active { background: var(--surface); color: var(--navy-700); box-shadow: 0 1px 2px rgba(4, 29, 62, 0.12); }

.assess-composites { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); margin: var(--s-2) 0 var(--s-4); }
.assess-comp {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-3) var(--s-4);
  display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap;
}
.assess-comp-label { font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft); }
.assess-comp-num { font-size: var(--fs-xl); font-weight: 700; color: var(--navy-900); margin-left: auto; font-variant-numeric: tabular-nums; line-height: 1.2; }
.assess-verdict { font-size: 11px; font-weight: 700; padding: 1px var(--s-2); border-radius: var(--radius-pill); letter-spacing: 0.03em; }
.assess-verdict.pass { background: var(--success-bg); color: var(--success); }
.assess-verdict.fail { background: var(--danger-bg); color: var(--danger); }

.assess-actions { display: flex; gap: var(--s-2); align-items: center; flex-wrap: wrap; margin-bottom: var(--s-4); }
.assess-hint { font-size: var(--fs-xs); color: var(--warning); }

.assess-grid { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.assess-row { display: grid; grid-template-columns: 1.4fr 1fr 1.3fr 1fr; }
.assess-row + .assess-row { border-top: 1px solid var(--border); }
.assess-head-row { background: var(--surface-alt); font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); }
.assess-head-row > div { padding: var(--s-2) var(--s-4); }
.assess-pillar-col { padding: var(--s-4); border-right: 1px solid var(--border); }
.assess-pillar-col .tag { margin-left: var(--s-1); }
.assess-pillar-name { font-weight: 600; color: var(--navy-900); margin-bottom: 2px; }
.assess-pillar-q { font-size: var(--fs-xs); color: var(--ink-muted); margin: var(--s-2) 0 0; line-height: 1.5; }
.assess-cell { padding: var(--s-4); border-right: 1px solid var(--border); font-size: var(--fs-sm); min-width: 0; }
.assess-cell-board { border-right: none; }
.assess-score { font-size: var(--fs-md); font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.assess-text { margin: var(--s-2) 0 0; white-space: pre-wrap; line-height: 1.55; color: var(--ink-soft); }
.assess-empty { margin: var(--s-1) 0 0; color: var(--ink-muted); font-size: var(--fs-xs); }
.assess-by { margin: var(--s-2) 0 0; font-size: var(--fs-xs); color: var(--ink-muted); }
.assess-ai-head { display: flex; align-items: center; gap: var(--s-2); }
.assess-ai-toggle { background: none; border: none; color: var(--navy-700); cursor: pointer; font-size: var(--fs-xs); font-weight: 600; padding: var(--s-2) 0 0; }
.assess-ai-detail { margin-top: var(--s-2); border-top: 1px solid var(--border); padding-top: var(--s-2); }
.assess-ai-meta { font-size: var(--fs-xs); color: var(--ink-muted); margin: var(--s-3) 0 0; }

@media (max-width: 860px) {
  .assess-row { grid-template-columns: 1fr; }
  .assess-cell, .assess-pillar-col { border-right: none; }
  .assess-cell { border-top: 1px dashed var(--border); padding-top: var(--s-3); }
  .assess-cell::before { display: block; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); margin-bottom: 2px; }
  .assess-cell-self::before { content: 'Self'; }
  .assess-cell-ai::before { content: 'AI'; }
  .assess-cell-board::before { content: 'Board'; }
  .assess-head-row { display: none; }
  .assess-composites { grid-template-columns: 1fr; }
}

/* AI detail */
.ai-status { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; padding: 1px var(--s-2); border-radius: var(--radius-pill); font-weight: 600; }
.ai-status-queued, .ai-status-running { background: var(--warning-bg); color: var(--warning); }
.ai-status-completed, .ai-status-done { background: var(--success-bg); color: var(--success); }
.ai-status-partial { background: var(--navy-50); color: var(--navy-700); }
.ai-status-failed, .ai-status-cancelled { background: var(--danger-bg); color: var(--danger); }
.ai-conf { font-size: 11px; font-weight: 500; padding: 1px var(--s-2); border-radius: var(--radius-pill); background: var(--surface-sunken); color: var(--ink-muted); cursor: help; }
.ai-metrics { width: 100%; border-collapse: collapse; font-size: var(--fs-xs); }
.ai-metrics td { padding: var(--s-2) var(--s-1); border-top: 1px solid var(--border); vertical-align: top; }
.ai-metrics tr:first-child td { border-top: none; }
.ai-metric-val { font-weight: 700; width: 2.2em; text-align: center; color: var(--navy-900); }
.ai-metric-label { width: 30%; color: var(--ink-soft); font-weight: 500; }
.ai-metric-cites a { margin-left: 3px; font-size: var(--fs-xs); }
.ai-missing { margin: var(--s-3) 0 0; color: var(--warning); font-size: var(--fs-xs); }
.ai-steps { margin: var(--s-2) 0 var(--s-2); padding-left: var(--s-4); font-size: var(--fs-xs); color: var(--ink-soft); }
.ai-evidence { margin-top: var(--s-4); font-size: var(--fs-sm); }
.ai-evidence summary { cursor: pointer; color: var(--navy-700); font-weight: 600; }
.ai-evidence ul { margin: var(--s-2) 0 0; padding-left: var(--s-5); display: flex; flex-direction: column; gap: var(--s-1); }
.ai-ev-pillar { color: var(--ink-muted); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; margin-right: var(--s-2); }

/* Compact three-track summary (stage description screen) */
.assessment-summary { display: flex; align-items: stretch; gap: var(--s-2); flex-wrap: wrap; margin: 0 0 var(--s-5); }
.summary-gate { align-self: center; font-size: var(--fs-xs); font-weight: 700; color: var(--ink-muted); padding-right: var(--s-2); }
.summary-comp {
  display: flex; flex-direction: column; gap: 2px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: var(--s-2) var(--s-4); min-width: 110px;
}
.summary-comp-label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); }
.summary-comp-num { font-size: var(--fs-md); font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; }

/* ── Self / board assessment editors ──────────────────────────────────── */

.pillars { display: flex; flex-direction: column; gap: var(--s-4); }
.pillar-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5);
}
.pillar-card .head { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-1); flex-wrap: wrap; }
.pillar-card .name { color: var(--navy-900); font-weight: 600; font-size: var(--fs-md); flex: 1; min-width: 0; }
.pillar-card .key { color: var(--ink-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.pillar-card .question { color: var(--ink-soft); font-size: var(--fs-sm); margin: 0 0 var(--s-3); line-height: 1.5; }

.pillar-block { display: flex; flex-direction: column; }
.pillar-block .pillar-card { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.pillar-block .attachments {
  margin: 0;
  padding: var(--s-3) var(--s-5);
  background: var(--surface-alt);
  border: 1px solid var(--border); border-top: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.score-input { display: flex; gap: 6px; flex-wrap: wrap; }
.score-input label {
  flex: 1; min-width: 48px;
  text-align: center;
  padding: 8px var(--s-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  cursor: pointer;
  background: var(--surface);
  font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft);
  transition: background 0.15s var(--ease), border-color 0.15s var(--ease), color 0.15s var(--ease);
}
.score-input label:hover { border-color: var(--navy-400); color: var(--navy-700); }
.score-input input { position: absolute; opacity: 0; pointer-events: none; }
.score-input input:checked + label { background: var(--navy-700); color: #fff; border-color: var(--navy-700); }
.score-input input:focus-visible + label { box-shadow: var(--focus); }

.pillar-justification-input {
  margin-top: var(--s-3);
  width: 100%;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: var(--s-2) var(--s-3);
  font-size: var(--fs-sm); line-height: 1.55;
  resize: vertical; min-height: 72px;
  color: var(--ink);
}
.pillar-justification-input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.pillar-justification-input::placeholder { color: var(--ink-muted); }

.board-ref { display: flex; gap: var(--s-4); font-size: var(--fs-xs); color: var(--ink-muted); margin: 0 0 var(--s-3); }
.board-ref strong { color: var(--ink-soft); }

.composite-preview { padding: var(--s-3) var(--s-4); border-radius: var(--radius); font-size: var(--fs-sm); font-weight: 500; }
.composite-preview.pass { background: var(--success-bg); color: var(--success); }
.composite-preview.fail { background: var(--warning-bg); color: var(--warning); }

/* ── Per-stage description ────────────────────────────────────────────── */

.stage-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: var(--s-4); }
.stage-tab {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 6px var(--s-3); cursor: pointer;
  color: var(--ink-soft); font-weight: 600; font-size: var(--fs-sm); min-width: 92px;
  transition: border-color 0.15s var(--ease), background 0.15s var(--ease);
}
.stage-tab:hover { border-color: var(--border-strong); }
.stage-tab.active { border-color: var(--navy-700); color: var(--navy-700); background: var(--navy-50); }
.stage-tab.future { color: var(--ink-muted); background: var(--surface-alt); }
.stage-tab-name { font-size: var(--fs-xs); font-weight: 400; color: var(--ink-muted); }
.stage-future-note { font-size: var(--fs-sm); color: var(--ink-muted); margin: 0 0 var(--s-4); }
.stage-fields { display: flex; flex-direction: column; gap: var(--s-5); max-width: 760px; }
.stage-fields .field-help { margin-top: -2px; }

/* Attachments */
.attachments { margin-top: var(--s-2); }
.attachments-label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); margin-bottom: var(--s-2); }
.attachments-empty { font-size: var(--fs-sm); color: var(--ink-muted); margin: 0 0 var(--s-2); }
.attachments-list { list-style: none; padding: 0; margin: 0 0 var(--s-2); display: flex; flex-direction: column; gap: 2px; }
.attachment { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); min-height: 30px; }
.attachment-name { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-size { color: var(--ink-muted); font-size: var(--fs-xs); flex-shrink: 0; }
.attachment-del {
  margin-left: auto; border: none; background: none; cursor: pointer;
  color: var(--ink-muted); font-size: 18px; line-height: 1;
  width: 28px; height: 28px; border-radius: var(--radius);
}
.attachment-del:hover { color: var(--danger); background: var(--danger-bg); }
.attachment-add { display: inline-block; cursor: pointer; margin-left: calc(-1 * var(--s-3)); }
.attachment-add .btn { pointer-events: none; }
.attachment-add:hover .btn { background: var(--surface-sunken); color: var(--navy-700); }
.attachment-add:focus-within .btn { box-shadow: var(--focus); }

/* Split / merge */
.split-part { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4) var(--s-5); margin-bottom: var(--s-3); display: flex; flex-direction: column; gap: var(--s-3); max-width: 760px; }
.split-part-head { display: flex; align-items: center; justify-content: space-between; }
.split-part-num { font-weight: 700; color: var(--navy-900); }
.merge-list { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-bottom: var(--s-4); overflow: hidden; }
.merge-row { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); cursor: pointer; flex-wrap: wrap; }
.merge-row + .merge-row { border-top: 1px solid var(--border); }
.merge-row:hover { background: var(--surface-alt); }
.merge-row.selected { background: var(--navy-50); }
.merge-row-id { font-weight: 600; color: var(--ink-muted); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.merge-row-title { flex: 1; font-weight: 500; min-width: 160px; }
.page-header + .field { max-width: 720px; margin-bottom: var(--s-4); }

/* ── Utility text ─────────────────────────────────────────────────────── */

.muted-note { color: var(--ink-muted); font-size: var(--fs-sm); margin: var(--s-2) 0 0; }
.muted-inline { color: var(--ink-muted); font-size: var(--fs-sm); }

/* ── Toasts ───────────────────────────────────────────────────────────── */

.toast-host {
  position: fixed; bottom: var(--s-5); left: 50%; transform: translateX(-50%);
  z-index: 100; display: flex; flex-direction: column; gap: var(--s-2);
  pointer-events: none; width: max-content; max-width: calc(100vw - 32px);
}
.toast {
  background: var(--navy-900); color: #fff;
  padding: var(--s-3) var(--s-4);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  box-shadow: var(--shadow-pop);
  animation: toast-in 0.2s var(--ease);
}
.toast.success { background: var(--success); }
.toast.error { background: var(--danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ── Calendar ─────────────────────────────────────────────────────────── */

.cal-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-4); }
.cal-toggle { display: inline-flex; background: var(--surface-sunken); border-radius: var(--radius); padding: 3px; gap: 2px; }
.cal-toggle-btn {
  background: transparent; border: none; border-radius: 4px;
  padding: 5px var(--s-4);
  font-size: var(--fs-sm); font-weight: 600; color: var(--ink-muted);
  cursor: pointer;
}
.cal-toggle-btn:hover { color: var(--ink); }
.cal-toggle-btn.active { background: var(--surface); color: var(--navy-700); box-shadow: 0 1px 2px rgba(4, 29, 62, 0.12); }
.cal-nav { display: flex; align-items: center; gap: var(--s-2); }
.cal-nav-btn {
  background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius);
  width: 34px; height: 34px; display: grid; place-items: center;
  font-size: var(--fs-md); color: var(--ink-soft); cursor: pointer;
}
.cal-nav-btn:hover { border-color: var(--navy-700); color: var(--navy-700); }
.cal-nav-label { font-size: var(--fs-md); font-weight: 600; color: var(--navy-900); min-width: 150px; text-align: center; }

.cal-grid-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cal-grid {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px; background: var(--border);
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  overflow: hidden; min-width: 340px;
}
.cal-dow { background: var(--surface-alt); text-align: center; padding: var(--s-2) var(--s-1); font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); }
.cal-cell {
  background: var(--surface);
  min-height: 84px; padding: var(--s-2);
  position: relative;
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2);
  transition: background 0.15s var(--ease);
}
@media (min-width: 640px) { .cal-cell { min-height: 100px; padding: var(--s-3); } }
.cal-cell-other { background: var(--surface-alt); }
.cal-cell-other .cal-day { color: var(--ink-faint); }
.cal-day {
  font-size: var(--fs-sm); font-weight: 600; color: var(--ink);
  font-variant-numeric: tabular-nums;
  width: 26px; height: 26px; display: inline-grid; place-items: center; border-radius: 50%;
  margin: -3px 0 0 -3px;
}
.cal-cell-today .cal-day { background: var(--navy-700); color: #fff; }
.cal-cell-meeting { cursor: pointer; }
.cal-cell-meeting:hover { background: var(--navy-50); }
.cal-cell-expanded { z-index: 5; }
.cal-meeting {
  display: inline-flex; align-items: center; gap: 6px;
  max-width: 100%;
  font-size: 11px; font-weight: 600;
  color: var(--navy-700);
  background: var(--navy-50);
  border: 1px solid var(--navy-100);
  border-radius: var(--radius-pill);
  padding: 1px 4px 1px 8px;
}
.cal-meeting-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-cell-other .cal-meeting { opacity: 0.7; }
@media (max-width: 640px) { .cal-meeting-label { display: none; } .cal-meeting, .cal-meeting:not(.has-ideas) { padding: 3px; } }

.meeting-list { display: flex; flex-direction: column; gap: var(--s-3); }
.meeting-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4) var(--s-5); }
.meeting-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; }
.meeting-card .meeting-groups, .meeting-card .muted-note { margin-top: var(--s-3); padding-top: var(--s-3); border-top: 1px solid var(--border); }
.meeting-full { font-size: var(--fs-md); font-weight: 600; color: var(--navy-900); }
.meeting-count { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); background: var(--surface-sunken); padding: 2px var(--s-3); border-radius: var(--radius-pill); }
.meeting-groups { display: flex; flex-direction: column; gap: var(--s-4); }
.stage-group-head { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-2); }
.meeting-ideas { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.meeting-idea { display: flex; align-items: center; gap: var(--s-2); padding: var(--s-2) var(--s-3); border-radius: var(--radius); font-size: var(--fs-sm); color: var(--ink); flex-wrap: wrap; }
.meeting-idea:hover { background: var(--surface-alt); text-decoration: none; }
.meeting-idea-title { flex: 1; min-width: 160px; color: var(--navy-900); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Guide ────────────────────────────────────────────────────────────── */

.guide-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
@media (min-width: 640px) { .guide-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .guide-grid { grid-template-columns: 1fr 1fr 1fr; } }
.guide-card {
  display: flex; flex-direction: column; gap: var(--s-1);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5) var(--s-5);
  color: inherit;
  transition: border-color 0.15s var(--ease);
}
.guide-card:hover { border-color: var(--navy-400); text-decoration: none; }
.guide-card-icon {
  display: inline-grid; place-items: center;
  width: 36px; height: 36px; border-radius: 9px;
  background: var(--navy-50); color: var(--navy-700);
  margin-bottom: var(--s-2);
}
.guide-card h3 { font-size: var(--fs-md); color: var(--navy-900); }
.guide-card p { font-size: var(--fs-sm); color: var(--ink-muted); line-height: 1.5; }

.guide-article { max-width: 800px; }
.guide-article h2 { font-size: var(--fs-xxl); margin-bottom: var(--s-5); }
.guide-title { display: flex; align-items: center; gap: var(--s-3); }
.guide-title-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--navy-50); color: var(--navy-700); flex-shrink: 0; }
.guide-article h3 { margin-top: var(--s-7); margin-bottom: var(--s-3); font-size: var(--fs-lg); }
.prose p, .prose ul, .prose ol { font-size: var(--fs-base); line-height: 1.7; color: var(--ink); margin: 0 0 var(--s-4); max-width: 72ch; }
.prose li { margin-bottom: var(--s-2); }
.prose code { background: var(--surface-sunken); border-radius: 4px; padding: 1px 5px; font-size: var(--fs-sm); }
.diagram-wrap { margin: var(--s-5) 0; overflow-x: auto; }
.diagram { width: 100%; max-width: 820px; height: auto; }
.guide-table-wrap { overflow-x: auto; margin: var(--s-3) 0 var(--s-5); }
.guide-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); background: var(--surface); }
.guide-table th { background: var(--surface-alt); font-weight: 600; color: var(--navy-900); text-align: left; padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--border-strong); white-space: nowrap; }
.guide-table td { padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--border); vertical-align: top; }
.guide-chips { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-3); align-items: center; margin: var(--s-3) 0 var(--s-5); font-size: var(--fs-sm); }
.guide-note { font-size: var(--fs-sm); color: var(--ink-soft); padding: var(--s-3) var(--s-4); background: var(--navy-50); border-radius: var(--radius); max-width: 72ch; }
.guide-nav-footer { display: flex; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-8); padding-top: var(--s-5); border-top: 1px solid var(--border); }

/* ── Sign-in ──────────────────────────────────────────────────────────── */

.auth-page {
  min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--s-4);
  padding: var(--s-5) var(--s-4);
  background: var(--surface-alt);
}
.auth-card {
  width: 100%; max-width: 400px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: var(--s-6) var(--s-6) var(--s-5);
  display: flex; flex-direction: column; gap: var(--s-4);
}
.auth-brand { display: flex; align-items: center; gap: var(--s-3); padding-bottom: var(--s-4); border-bottom: 1px solid var(--border); }
.auth-brand-name { font-size: var(--fs-lg); font-weight: 700; color: var(--navy-900); letter-spacing: -0.02em; }
.auth-brand-sub { font-size: var(--fs-sm); color: var(--ink-muted); }
.auth-card h2 { font-size: var(--fs-xl); margin-top: var(--s-2); }
.auth-lead { color: var(--ink-muted); font-size: var(--fs-sm); margin-top: calc(-1 * var(--s-2)); }
.auth-form { max-width: none; gap: var(--s-3); }
.auth-form .btn { margin-top: var(--s-2); }
.auth-divider { display: flex; align-items: center; gap: var(--s-3); color: var(--ink-muted); font-size: var(--fs-xs); }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.auth-alt { align-self: center; font-size: var(--fs-sm); color: var(--ink-muted); }
.auth-alt:hover { color: var(--navy-700); }
.auth-switch { text-align: center; font-size: var(--fs-sm); color: var(--ink-muted); }
.auth-foot { display: flex; justify-content: center; }
@media (max-width: 480px) { .auth-card { padding: var(--s-5) var(--s-4); border-radius: var(--radius-lg); } }

/* ── People & profile ─────────────────────────────────────────────────── */

.avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--navy-100); color: var(--navy-900);
  display: grid; place-items: center;
  font-weight: 700; font-size: var(--fs-sm); letter-spacing: 0.02em;
  flex-shrink: 0;
}
.avatar-sm { width: 30px; height: 30px; font-size: 11px; }
.avatar-lg { width: 64px; height: 64px; font-size: var(--fs-lg); }

.people-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-2); }
@media (min-width: 640px) { .people-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .people-grid { grid-template-columns: 1fr 1fr 1fr; } }
.people-card {
  display: flex; align-items: center; gap: var(--s-3);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: var(--s-3) var(--s-4);
  color: inherit;
  transition: border-color 0.15s var(--ease);
}
.people-card:hover { border-color: var(--navy-400); text-decoration: none; }
.people-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.people-info strong { color: var(--navy-900); font-size: var(--fs-sm); font-weight: 600; }
.people-email { color: var(--ink-muted); font-size: var(--fs-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.people-stats { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: var(--fs-xs); color: var(--ink-muted); flex-shrink: 0; font-variant-numeric: tabular-nums; }

.profile-header { display: flex; align-items: center; gap: var(--s-4); margin-bottom: var(--s-5); }
.profile-header h2 { font-size: var(--fs-xxl); margin-bottom: 2px; }
.profile-stats { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-5); }
.stat-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--s-3) var(--s-4);
  display: flex; flex-direction: column; gap: 0; min-width: 104px;
}
.stat-num { font-size: var(--fs-xl); font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; line-height: 1.2; }
.stat-label { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 500; }
.account-settings .form { max-width: 460px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4) var(--s-5); }
.account-settings select { min-width: 200px; }
.account-settings { margin-top: 0; margin-bottom: var(--s-6); }

/* ── Settings ─────────────────────────────────────────────────────────── */

.settings-shell { display: grid; grid-template-columns: 1fr; gap: var(--s-4); }
@media (min-width: 900px) { .settings-shell { grid-template-columns: 232px minmax(0, 1fr); gap: var(--s-6); align-items: start; } }
.settings-sidebar {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--s-2);
  display: flex; flex-direction: column; gap: var(--s-2);
  position: sticky; top: var(--s-5);
  max-height: calc(100vh - 48px); overflow-y: auto;
}
@media (max-width: 899px) { .settings-sidebar { position: static; max-height: none; } }
.settings-group-label { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 600; padding: var(--s-2) var(--s-3) 2px; }
.settings-link {
  display: flex; align-items: center; gap: var(--s-2);
  padding: 7px var(--s-3);
  border-radius: var(--radius);
  color: var(--ink-soft); font-size: var(--fs-sm);
  transition: background 0.15s var(--ease), color 0.15s var(--ease);
}
.settings-link .icon { color: var(--ink-muted); }
.settings-link:hover { background: var(--surface-alt); color: var(--navy-700); text-decoration: none; }
.settings-link.active { background: var(--navy-50); color: var(--navy-700); font-weight: 600; }
.settings-link.active .icon { color: var(--navy-700); }
.settings-content { min-width: 0; }
.settings-breadcrumb { font-size: var(--fs-sm); color: var(--ink-muted); margin-bottom: var(--s-2); }
.settings-breadcrumb .sep { margin: 0 var(--s-2); color: var(--ink-faint); }
.settings-breadcrumb strong { color: var(--ink-soft); font-weight: 500; }
.settings-content h2 { font-size: var(--fs-xl); margin-bottom: var(--s-2); }
.settings-content .section-intro { margin-bottom: var(--s-5); line-height: 1.6; }
.settings-stack { display: flex; flex-direction: column; gap: var(--s-5); }
.json-section-embedded { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4) var(--s-5); }
.json-section-embedded h3 { font-size: var(--fs-md); margin-bottom: var(--s-2); }

.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.settings-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); background: var(--surface); }
.table-wrap .settings-table { border: none; }
:not(.table-wrap) > .settings-table { border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; border-collapse: separate; border-spacing: 0; }
.settings-table th { background: var(--surface-alt); font-weight: 600; color: var(--ink-soft); text-align: left; padding: var(--s-2) var(--s-4); border-bottom: 1px solid var(--border); font-size: var(--fs-xs); white-space: nowrap; }
.settings-table td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); vertical-align: middle; }
.settings-table tr:last-child td { border-bottom: none; }
.settings-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.settings-table .row-actions { text-align: right; white-space: nowrap; }

.tab-bar { display: inline-flex; gap: 2px; margin-bottom: var(--s-4); background: var(--surface-sunken); border-radius: var(--radius-pill); padding: 3px; flex-wrap: wrap; }
.tab-bar .sort-btn { border: none; background: transparent; color: var(--ink-muted); font-weight: 600; }
.tab-bar .sort-btn.active { background: var(--surface); color: var(--navy-700); box-shadow: 0 1px 2px rgba(4, 29, 62, 0.12); }

.json-editor {
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-sm); line-height: 1.55;
  min-height: 260px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: var(--s-3);
  width: 100%; resize: vertical; color: var(--ink);
}
.json-editor:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.json-editor[readonly] { background: var(--surface-alt); color: var(--ink-soft); }

.fivepsm-classes { display: flex; flex-direction: column; gap: var(--s-4); }
.fivepsm-class { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4); }
.fivepsm-class-head { display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3); flex-wrap: wrap; }

/* Users & roles */
.role-summary { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-bottom: var(--s-4); font-size: var(--fs-sm); color: var(--ink-muted); }
.role-summary-item strong { color: var(--navy-900); font-variant-numeric: tabular-nums; margin-right: 2px; }

.perm-matrix { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.perm-matrix thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--surface-alt);
  border-bottom: 1px solid var(--border);
  padding: var(--s-3) var(--s-4);
  font-weight: 600; color: var(--ink-soft); text-align: left;
}
.perm-matrix .role-col { text-align: center; width: 116px; }
.role-col-name { display: block; font-size: var(--fs-xs); color: var(--ink-soft); line-height: 1.3; }
.role-col-code { display: block; font-size: 11px; font-weight: 500; color: var(--ink-muted); letter-spacing: 0.04em; }
.perm-group-row th {
  background: var(--surface);
  padding: var(--s-4) var(--s-4) var(--s-2);
  font-size: var(--fs-xs); font-weight: 700; color: var(--navy-700);
  text-align: left; border-bottom: 1px solid var(--border);
}
.perm-matrix tbody td, .perm-matrix tbody th.perm-col { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); vertical-align: middle; }
.perm-matrix tbody tr:last-child td, .perm-matrix tbody tr:last-child th { border-bottom: none; }
.perm-matrix tbody + tbody .perm-group-row th { border-top: 1px solid var(--border); }
.perm-matrix tbody tr:not(.perm-group-row):hover { background: var(--surface-alt); }
.perm-col { text-align: left; font-weight: 400; min-width: 260px; }
.perm-label { display: flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ink); }
.perm-lock { color: var(--ink-muted); display: inline-flex; }
.perm-help { display: block; font-size: var(--fs-xs); color: var(--ink-muted); margin-top: 2px; max-width: 56ch; }
.perm-check { width: 18px; height: 18px; accent-color: var(--navy-700); cursor: pointer; }
.perm-check:disabled { cursor: not-allowed; opacity: 0.55; }
.sticky-actions {
  position: sticky; bottom: 0;
  background: var(--surface-alt);
  padding: var(--s-3) 0;
  margin-top: var(--s-3);
}

/* Modal */
.modal-backdrop { position: fixed; inset: 0; background: rgba(4, 29, 62, 0.4); display: flex; align-items: center; justify-content: center; z-index: 100; padding: var(--s-4); }
.modal { background: var(--surface); border-radius: var(--radius-lg); padding: var(--s-5); width: 100%; max-width: 480px; box-shadow: var(--shadow-pop); }
.modal h3 { margin-bottom: var(--s-4); }

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

/* ── Settings forms ───────────────────────────────────────────────────── */

.conn {
  display: block;
  font-size: var(--fs-sm); color: var(--ink-soft);
  margin: calc(-1 * var(--s-3)) 0 var(--s-5);
  max-width: 80ch;
}
.conn-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: var(--s-2); vertical-align: 1px; }
.conn-live .conn-dot { background: var(--success); }
.conn-stored .conn-dot { background: var(--ink-faint); }
.conn-stored { color: var(--ink-muted); }

.sform { display: flex; flex-direction: column; gap: var(--s-4); }
.sform-group { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.sform-group-head { padding: var(--s-4) var(--s-5) 0; }
.sform-group-head h3 { font-size: var(--fs-md); color: var(--navy-900); }
.sform-group-head p { font-size: var(--fs-sm); color: var(--ink-muted); margin-top: 2px; max-width: 72ch; }
.sform-group-body { padding: var(--s-2) var(--s-5) var(--s-3); }
.sform-group-body > .table-wrap { margin: var(--s-2) 0; }
.subsection-title { font-size: var(--fs-lg); margin-bottom: var(--s-4); }
.col-narrow { width: 1%; white-space: nowrap; }
.col-wide { width: 55%; }
.pay-ref { display: inline-block; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; font-size: var(--fs-xs); }
.meeting-card-empty .meeting-head-meta .muted-note { margin: 0; }

.srow { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-3) 0; }
.srow + .srow { border-top: 1px solid var(--border); }
.srow-inline { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--s-5); }
.srow-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.srow-label { font-size: var(--fs-sm); font-weight: 600; color: var(--ink); }
.srow-help { font-size: var(--fs-xs); color: var(--ink-muted); max-width: 64ch; }
.srow-control { flex-shrink: 0; }
.srow:not(.srow-inline) .srow-control { width: 100%; }
@media (max-width: 640px) { .srow-inline { flex-direction: column; align-items: flex-start; gap: var(--s-2); } }

.sinput {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 7px var(--s-3);
  font-size: var(--fs-sm);
  color: var(--ink);
  min-width: 220px;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.sinput:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.sinput:disabled { background: var(--surface-alt); color: var(--ink-soft); }
.sinput-wide { width: 100%; min-width: 0; }
textarea.sinput { resize: vertical; line-height: 1.55; font-family: inherit; }
.sinput-cell { width: 100%; min-width: 120px; padding: 6px var(--s-2); }
.stable td, .stable th { padding: var(--s-2) var(--s-3); }

.num-input { display: inline-flex; align-items: center; gap: var(--s-2); }
.num-input input {
  width: 110px; text-align: right;
  background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius);
  padding: 7px var(--s-3); font-size: var(--fs-sm); font-variant-numeric: tabular-nums;
}
.num-input input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.num-input input:disabled { background: var(--surface-alt); }
.num-suffix { font-size: var(--fs-sm); color: var(--ink-muted); min-width: 32px; }

.range-input { display: inline-flex; align-items: center; gap: var(--s-3); }
.range-input input { width: 200px; accent-color: var(--navy-700); }
.range-input output { font-size: var(--fs-sm); font-weight: 600; color: var(--navy-900); min-width: 40px; font-variant-numeric: tabular-nums; }

.check-grid { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); }
.check { display: inline-flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); cursor: pointer; }
.check input { width: 16px; height: 16px; accent-color: var(--navy-700); }

.switch {
  position: relative; width: 40px; height: 22px; flex-shrink: 0;
  border-radius: var(--radius-pill); border: none; padding: 0; cursor: pointer;
  background: var(--border-strong);
  transition: background 0.15s var(--ease);
}
.switch.on { background: var(--navy-700); }
.switch-knob {
  position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 2px rgba(4, 29, 62, 0.25);
  transition: transform 0.15s var(--ease);
}
.switch.on .switch-knob { transform: translateX(18px); }
.switch:focus-visible { outline: none; box-shadow: var(--focus); }
.switch:disabled { opacity: 0.5; cursor: not-allowed; }
.switch-sm { width: 34px; height: 20px; }
.switch-sm .switch-knob { width: 14px; height: 14px; }
.switch-sm.on .switch-knob { transform: translateX(14px); }

.save-bar { margin-top: 0; }
.save-bar.is-dirty {
  position: sticky; bottom: 0; z-index: 2;
  background: var(--surface-alt);
  padding: var(--s-3) 0;
  border-top: 1px solid var(--border);
}
.schedule-preview { font-size: var(--fs-sm); color: var(--ink-soft); }
.optional { color: var(--ink-muted); font-weight: 400; }
.field-help-row { display: flex; justify-content: space-between; gap: var(--s-3); }
.char-count { font-variant-numeric: tabular-nums; flex-shrink: 0; }
.char-count.near { color: var(--warning); font-weight: 600; }

/* ── Gate meeting statuses ─────────────────────────────────────────────── */

.meet-upcoming           { background: var(--navy-50); color: var(--navy-700); }
.meet-today              { background: var(--navy-700); color: #fff; }
.meet-held               { background: var(--success-bg); color: var(--success); }
.meet-awaiting_decisions { background: var(--warning-bg); color: var(--warning); }
.meet-not_held           { background: var(--surface-sunken); color: var(--ink-muted); }
.meet-cancelled          { background: var(--surface); color: var(--ink-muted); border-color: var(--border-strong); text-decoration: line-through; }

.cal-meeting { border: 1px solid transparent; padding: 2px 8px; text-decoration: none; }
.cal-meeting:hover { text-decoration: none; box-shadow: 0 0 0 1px currentColor inset; }
.cal-meeting.meet-cancelled { border-color: var(--border-strong); }
.cal-cell-meeting:hover { background: var(--surface); }
.cal-legend { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-4); }
.cal-toggle-count { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 500; margin-left: 2px; }
@media (max-width: 640px) {
  .cal-meeting, .cal-meeting:not(.has-ideas) { padding: 0; width: 10px; height: 10px; border-radius: 50%; }
  .cal-meeting-label { display: none; }
}

a.meeting-card { display: block; color: inherit; transition: border-color 0.15s var(--ease); }
a.meeting-card:hover { border-color: var(--navy-400); text-decoration: none; }
.meeting-head { justify-content: flex-start; }
.meeting-head-meta { margin-left: auto; display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.decision-counts { display: inline-flex; gap: 4px; }
.meeting-idea-line { display: flex; align-items: center; gap: var(--s-2); padding: 4px 0; font-size: var(--fs-sm); flex-wrap: wrap; }
.meeting-ideas-boxed { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-2); }

.meeting-page-head .tag-row { display: flex; align-items: center; gap: var(--s-3); flex-wrap: wrap; }
.meeting-summary { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-2); }
.stat-go .stat-num { color: var(--success); }
.stat-hold .stat-num { color: var(--danger); }
.stat-stop .stat-num { color: var(--ink-soft); }

.decision-list { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.decision-item { padding: var(--s-4) var(--s-5); display: flex; flex-direction: column; gap: var(--s-2); }
.decision-item + .decision-item { border-top: 1px solid var(--border); }
.decision-item-head { display: flex; align-items: center; gap: var(--s-2) var(--s-3); flex-wrap: wrap; }
.decision-idea { font-weight: 600; color: var(--navy-900); }
.decision-meta { font-size: var(--fs-xs); color: var(--ink-muted); }
.decision-item .decision-notes { font-size: var(--fs-sm); line-height: 1.55; max-width: 80ch; }
.decision-gaps { font-size: var(--fs-sm); background: var(--danger-bg); border-radius: var(--radius); padding: var(--s-2) var(--s-3); max-width: 80ch; }
.decision-gaps ul { margin: var(--s-1) 0 0; padding-left: var(--s-5); color: var(--ink); }
.decision-sub { font-size: var(--fs-xs); font-weight: 600; color: var(--danger); }
.decision-foot { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); font-size: var(--fs-xs); color: var(--ink-muted); }
.decision-award { color: var(--award); font-weight: 600; }
.decision-by { margin-left: auto; }
.meeting-admin .form-actions { margin-top: 0; }

/* ── Awards & pagination ───────────────────────────────────────────────── */

.award-totals { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin-bottom: var(--s-3); }
.award-totals > div { display: flex; flex-direction: column; }
.award-total-num { font-size: var(--fs-xl); font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; line-height: 1.2; }
.award-total-warn { color: var(--warning); }
.award-total-label { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 500; }
.chip-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s-3); }
.chip-count { opacity: 0.7; font-variant-numeric: tabular-nums; margin-left: 2px; }
.awards-table td { vertical-align: middle; }
.award-level { font-weight: 700; color: var(--navy-900); font-size: var(--fs-sm); }
.award-idea { min-width: 200px; }
.pay-not_applicable { background: var(--surface-sunken); color: var(--ink-muted); }
.pay-pending  { background: var(--warning-bg); color: var(--warning); }
.pay-approved { background: var(--navy-50); color: var(--navy-700); }
.pay-paid     { background: var(--success-bg); color: var(--success); }
.pay-date { margin-left: var(--s-2); font-size: var(--fs-xs); }
.pay-note { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-xs); color: var(--ink-muted); margin-top: 2px; }
.award-edit-row td { background: var(--surface-alt); }
.award-editor { display: grid; grid-template-columns: 160px 180px minmax(0, 1fr); gap: var(--s-3); align-items: start; padding: var(--s-2) 0; }
.award-editor .form-actions { grid-column: 1 / -1; margin-top: 0; }
@media (max-width: 720px) { .award-editor { grid-template-columns: 1fr; } }

.pager { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-top: var(--s-3); }
.pager-range { font-size: var(--fs-xs); color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.pager-buttons { display: flex; gap: 4px; align-items: center; }
.pager-btn {
  min-width: 32px; height: 32px; padding: 0 var(--s-2);
  border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius);
  font-size: var(--fs-sm); color: var(--ink-soft); cursor: pointer; font-variant-numeric: tabular-nums;
}
.pager-btn:hover:not(:disabled) { border-color: var(--navy-400); color: var(--navy-700); }
.pager-btn.active { background: var(--navy-700); border-color: var(--navy-700); color: #fff; font-weight: 600; }
.pager-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.pager-gap { color: var(--ink-muted); padding: 0 2px; }

.row-list { list-style: none; margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.row-list li + li { border-top: 1px solid var(--border); }
.row-link { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); color: inherit; flex-wrap: wrap; }
.row-link:hover { background: var(--surface-alt); text-decoration: none; }
.row-list li:first-child .row-link { border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.row-list li:last-child .row-link { border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
.row-title { flex: 1; min-width: 180px; font-weight: 600; color: var(--navy-900); }
.row-tags { display: flex; gap: 6px; flex-wrap: wrap; }

.meeting-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 120px)); }
.meeting-summary .stat-card { min-width: 0; }
@media (max-width: 480px) { .meeting-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); } .meeting-summary .stat-card { padding: var(--s-2) var(--s-3); } }

/* ══════════════════════════════════════════════════════════════════════════
   App shell — navigation on the left
   ══════════════════════════════════════════════════════════════════════════ */

.shell { min-height: 100vh; display: flex; }
.sidebar {
  position: sticky; top: 0; height: 100vh;
  width: 248px; flex-shrink: 0;
  display: flex; flex-direction: column; gap: var(--s-3);
  padding: var(--s-4) var(--s-3);
  background: var(--surface);
  border-right: 1px solid var(--border);
  z-index: 30;
}
.sidebar-top { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--s-2) var(--s-2); }
.sidebar .brand, .mobile-bar .brand { display: inline-flex; align-items: center; gap: var(--s-2); font-weight: 700; font-size: var(--fs-md); color: var(--navy-900); letter-spacing: -0.02em; }
.sidebar .brand:hover, .mobile-bar .brand:hover { text-decoration: none; }
.sidebar-close { display: none; background: none; border: none; color: var(--ink-muted); cursor: pointer; padding: var(--s-1); border-radius: var(--radius); }
.sidebar-cta { width: 100%; margin-bottom: var(--s-2); }
.side-nav { display: flex; flex-direction: column; gap: 2px; }
.side-nav a, .side-link {
  display: flex; align-items: center; gap: var(--s-3);
  padding: 9px var(--s-3);
  border-radius: var(--radius);
  color: var(--ink-soft); font-size: var(--fs-sm); font-weight: 500;
  transition: background 0.15s var(--ease), color 0.15s var(--ease);
}
.side-nav a .icon, .side-link .icon { color: var(--ink-muted); }
.side-nav a:hover, .side-link:hover { background: var(--surface-alt); color: var(--navy-700); text-decoration: none; }
.side-nav a.active, .side-link.active { background: var(--navy-50); color: var(--navy-700); font-weight: 600; }
.side-nav a.active .icon, .side-link.active .icon { color: var(--navy-700); }
.sidebar-bottom { margin-top: auto; display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--border); padding-top: var(--s-3); }
.side-user { position: relative; }
.side-user-btn {
  width: 100%; display: flex; align-items: center; gap: var(--s-3);
  padding: var(--s-2); border: 1px solid transparent; border-radius: var(--radius);
  background: none; cursor: pointer; text-align: left; color: var(--ink-soft);
}
.side-user-btn:hover, .side-user-btn.open { background: var(--surface-alt); border-color: var(--border); }
.side-user-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.side-user-text strong { font-size: var(--fs-sm); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.side-user-text span { font-size: var(--fs-xs); color: var(--ink-muted); }
.side-user-menu {
  position: absolute; left: 0; right: 0; bottom: calc(100% + 6px);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-pop); padding: var(--s-2); display: flex; flex-direction: column;
}
.shell-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mobile-bar { display: none; }
.main { max-width: 1120px; }
.main-wide { max-width: 1320px; }
.sidebar-scrim { display: none; }

@media (max-width: 900px) {
  .sidebar {
    position: fixed; left: 0; top: 0; bottom: 0; height: auto;
    transform: translateX(-100%); transition: transform 0.2s var(--ease), visibility 0.2s;
    visibility: hidden;
  }
  .sidebar.open { transform: none; visibility: visible; box-shadow: var(--shadow-pop); }
  .sidebar-close { display: inline-flex; }
  .sidebar-scrim { display: block; position: fixed; inset: 0; background: rgba(4, 29, 62, 0.35); z-index: 25; }
  .mobile-bar {
    display: flex; align-items: center; gap: var(--s-3);
    position: sticky; top: 0; z-index: 20;
    height: 56px; padding: 0 var(--s-4);
    background: var(--surface); border-bottom: 1px solid var(--border);
  }
  .mobile-bar .nav-toggle { display: inline-flex; margin: 0 0 0 calc(-1 * var(--s-2)); }
}

/* ══════════════════════════════════════════════════════════════════════════
   Home
   ══════════════════════════════════════════════════════════════════════════ */

.home-ask {
  display: flex; gap: var(--s-4); align-items: flex-start;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5); margin-bottom: var(--s-5);
}
.home-ask-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--navy-50); color: var(--navy-700); flex-shrink: 0; }
.home-ask-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--s-2); }
.home-ask-body label { font-weight: 600; color: var(--navy-900); }
.home-ask-row { display: flex; gap: var(--s-2); }
.home-ask-row input {
  flex: 1; min-width: 0;
  border: 1px solid var(--border-strong); border-radius: var(--radius);
  padding: 9px var(--s-3); font-size: var(--fs-base); background: var(--surface);
}
.home-ask-row input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.home-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--s-4); align-items: start; }
.home-col { display: flex; flex-direction: column; gap: var(--s-4); }
@media (max-width: 960px) { .home-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .home-ask { flex-direction: column; } .home-ask-row { flex-direction: column; } }

.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.panel-head { display: flex; align-items: baseline; gap: var(--s-3); padding: var(--s-4) var(--s-5) var(--s-2); }
.panel-head h3 { font-size: var(--fs-md); color: var(--navy-900); flex: 1; }
.panel-empty { padding: 0 var(--s-5) var(--s-4); margin: 0; }

.todo-list { list-style: none; margin: 0; padding: 0 0 var(--s-2); }
.todo { display: flex; align-items: flex-start; gap: var(--s-3); padding: var(--s-3) var(--s-5); }
.todo + .todo { border-top: 1px solid var(--border); }
.todo-mark { width: 8px; height: 8px; border-radius: 50%; margin-top: 7px; flex-shrink: 0; background: var(--ink-faint); }
.prio-1 .todo-mark { background: var(--danger); }
.prio-2 .todo-mark { background: var(--warning); }
.prio-3 .todo-mark { background: var(--navy-400); }
.todo-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.todo-idea { font-weight: 600; color: var(--navy-900); font-size: var(--fs-sm); }
.todo-text { font-size: var(--fs-sm); color: var(--ink-soft); }
.todo .role-chip { margin-top: 1px; }
.todo-due { font-size: var(--fs-xs); color: var(--ink-muted); white-space: nowrap; font-variant-numeric: tabular-nums; margin-top: 2px; }
.todo-due.overdue { color: var(--danger); font-weight: 600; }

.home-ideas, .home-meetings, .home-awards { list-style: none; margin: 0; padding: 0 0 var(--s-2); }
.home-idea { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-5); color: inherit; }
.home-ideas li + li .home-idea { border-top: 1px solid var(--border); }
.home-idea:hover { background: var(--surface-alt); text-decoration: none; }
.home-idea-title { flex: 1; min-width: 0; font-weight: 600; color: var(--navy-900); font-size: var(--fs-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-steps { display: inline-flex; gap: 3px; flex-shrink: 0; }
.mini-steps i { width: 14px; height: 4px; border-radius: 2px; background: var(--border); }
.mini-steps i.done { background: var(--navy-700); }
.mini-steps i.cur { background: var(--navy-400); }

.home-meeting { display: flex; gap: var(--s-3); align-items: center; padding: var(--s-3) var(--s-5); color: inherit; }
.home-meetings li + li .home-meeting { border-top: 1px solid var(--border); }
.home-meeting:hover { background: var(--surface-alt); text-decoration: none; }
.home-meeting-date { display: flex; flex-direction: column; align-items: center; width: 44px; flex-shrink: 0; border: 1px solid var(--border); border-radius: var(--radius); padding: 2px 0; }
.home-meeting-date strong { font-size: var(--fs-lg); color: var(--navy-900); line-height: 1.2; }
.home-meeting-date span { font-size: 11px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.home-meeting-body { display: flex; flex-direction: column; font-size: var(--fs-sm); color: var(--ink-soft); min-width: 0; }
.home-meeting-mine { font-size: var(--fs-xs); color: var(--navy-700); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.award-totals-sm { padding: 0 var(--s-5); gap: var(--s-2) var(--s-5); }
.award-totals-sm .award-total-num { font-size: var(--fs-lg); }
.home-awards li { display: flex; align-items: center; gap: var(--s-2); padding: var(--s-2) var(--s-5); font-size: var(--fs-sm); }
.home-awards li a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ══════════════════════════════════════════════════════════════════════════
   New idea composer and the assistant
   ══════════════════════════════════════════════════════════════════════════ */

.composer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-4); }
.composer-switch { display: none; }
.composer-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-4); align-items: start; }
.composer-chat { position: sticky; top: var(--s-4); }
.composer-chat .chat { height: calc(100vh - 170px); min-height: 480px; }
.form-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4) var(--s-5); display: flex; flex-direction: column; gap: var(--s-4); }
.composer-actions { margin-top: 0; padding-top: var(--s-3); border-top: 1px solid var(--border); }
.dot-badge { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--navy-700); vertical-align: 2px; }
@media (max-width: 1000px) {
  .composer-switch { display: inline-flex; margin-bottom: var(--s-3); background: var(--surface-sunken); border-radius: var(--radius); padding: 3px; gap: 2px; }
  .composer-grid { grid-template-columns: 1fr; }
  .composer-grid.view-chat .composer-form, .composer-grid.view-form .composer-chat { display: none; }
  .composer-chat { position: static; }
  .composer-chat .chat { height: calc(100vh - 230px); min-height: 420px; }
}

.chat {
  display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  overflow: hidden;
}
.chat-head { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); }
.chat-head-icon { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--navy-50); color: var(--navy-700); flex-shrink: 0; }
.chat-head div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.chat-head strong { font-size: var(--fs-sm); color: var(--navy-900); }
.chat-head span { font-size: var(--fs-xs); color: var(--ink-muted); }
.chat-head .chat-web { display: inline-flex; align-items: center; gap: 3px; color: var(--success); font-weight: 600; white-space: nowrap; }
.bubble-ai .md a { overflow-wrap: anywhere; }
.chat-log { flex: 1; overflow-y: auto; padding: var(--s-4); display: flex; flex-direction: column; gap: var(--s-3); background: var(--surface-alt); }
.chat-empty { color: var(--ink-muted); font-size: var(--fs-sm); display: flex; flex-direction: column; gap: var(--s-3); padding: var(--s-2); }
.chat-suggestions { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-btn {
  background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-pill);
  padding: 5px var(--s-3); font-size: var(--fs-xs); font-weight: 500; color: var(--navy-700); cursor: pointer; text-align: left;
}
.chip-btn:hover { border-color: var(--navy-700); background: var(--navy-50); }
.bubble { max-width: 88%; border-radius: 12px; padding: var(--s-2) var(--s-3); font-size: var(--fs-sm); line-height: 1.55; }
.bubble-user { align-self: flex-end; background: var(--navy-700); color: #fff; border-bottom-right-radius: 4px; }
.bubble-user .bubble-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.bubble-who { display: block; font-size: 11px; opacity: 0.75; margin-bottom: 2px; }
.bubble-ai { align-self: flex-start; background: var(--surface); border: 1px solid var(--border); border-bottom-left-radius: 4px; color: var(--ink); }
.bubble-note { display: flex; align-items: center; gap: 6px; margin-top: var(--s-2); font-size: var(--fs-xs); color: var(--navy-700); font-weight: 600; }
.bubble-error { display: flex; align-items: center; gap: 6px; margin-top: var(--s-1); font-size: var(--fs-xs); color: var(--danger); }
.md p + p, .md p + ul, .md p + ol, .md ul + p, .md ol + p { margin-top: var(--s-2); }
.md ul, .md ol { margin: var(--s-1) 0 0; padding-left: 1.3em; }
.md li + li { margin-top: 2px; }
.md code { background: var(--surface-sunken); border-radius: 4px; padding: 0 4px; font-size: 0.92em; }
.typing { display: inline-flex; gap: 4px; padding: 4px 0; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--ink-faint); animation: typing 1.2s infinite ease-in-out; }
.typing i:nth-child(2) { animation-delay: 0.15s; }
.typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes typing { 0%, 60%, 100% { opacity: 0.3; transform: none; } 30% { opacity: 1; transform: translateY(-2px); } }
.chat-input { display: flex; gap: var(--s-2); align-items: flex-end; padding: var(--s-3); border-top: 1px solid var(--border); background: var(--surface); }
.chat-input textarea {
  flex: 1; min-width: 0; resize: none; max-height: 180px;
  border: 1px solid var(--border-strong); border-radius: var(--radius);
  padding: var(--s-2) var(--s-3); font-size: var(--fs-sm); line-height: 1.5; font-family: inherit;
}
.chat-input textarea:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.chat-send { min-width: 40px; min-height: 40px; padding: 0; }
.chat-unavailable { margin: 0; padding: var(--s-3) var(--s-4); border-top: 1px solid var(--border); font-size: var(--fs-sm); color: var(--ink-muted); background: var(--surface); }

.ifields { display: flex; flex-direction: column; gap: var(--s-4); }
.ifield-label { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.ifield-label label { font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft); }
.ifield-static { font-size: var(--fs-sm); padding: var(--s-2) 0; }
.field.is-ai input, .field.is-ai textarea, .field.is-ai select { border-color: var(--navy-400); background: var(--navy-50); }
.ai-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600; color: var(--navy-700);
  background: var(--navy-50); border-radius: var(--radius-pill); padding: 1px 8px;
}
.undo-btn { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); margin-left: auto; }

.link-list { list-style: none; margin: 0 0 var(--s-2); padding: 0; display: flex; flex-direction: column; gap: 2px; }
.link-list li { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); min-height: 30px; }
.link-list li .icon { color: var(--ink-muted); }
.link-list a { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.link-url { font-size: var(--fs-xs); color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.link-adder { display: flex; gap: var(--s-2); flex-wrap: wrap; }
.link-adder input { flex: 1 1 200px; min-width: 0; border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 6px var(--s-3); font-size: var(--fs-sm); }
.link-adder input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.suggested-links { display: flex; flex-direction: column; gap: var(--s-1); background: var(--navy-50); border-radius: var(--radius); padding: var(--s-2) var(--s-3); margin-bottom: var(--s-2); }
.suggested-link { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); }
.suggested-link a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ══════════════════════════════════════════════════════════════════════════
   Idea page — gate stepper, tabs, description, history
   ══════════════════════════════════════════════════════════════════════════ */

/* The idea's journey: stages (circles) and the milestones between them (rank
   tokens). One track for the idea page and the Guide map. */
.journey {
  --jr-node: 34px;
  list-style: none; margin: 0 0 var(--s-4); padding: var(--s-4) var(--s-3) var(--s-3);
  display: flex; align-items: flex-start;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
}
.jr { flex: 1 1 0; min-width: 0; position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--s-2); text-align: center; padding: 0 4px; }
.jr-stage { flex-grow: 1.15; }
/* Half a connector on each side; neighbours meet at the boundary. */
.jr::before, .jr::after { content: ''; position: absolute; top: calc(var(--jr-node) / 2 - 1px); height: 2px; background: var(--border); }
.jr::before { left: 0; right: calc(50% + 17px); }
.jr::after { left: calc(50% + 17px); right: 0; }
.jr:first-child::before, .jr:last-child::after { content: none; }
.jr-line-on::before, .jr-next-on::after { background: var(--navy-700); }
.journey-map .jr::before, .journey-map .jr::after { background: var(--navy-100); }

.jr-node { height: var(--jr-node); display: grid; place-items: center; flex-shrink: 0; }
.jr-stage .jr-node > * { pointer-events: none; }
.jr-stage .jr-node::before {
  content: ''; grid-area: 1 / 1; width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--border-strong); background: var(--surface); box-sizing: border-box;
}
.jr-stage .jr-node > svg { grid-area: 1 / 1; color: #fff; position: relative; }
.jr-stage.jr-done .jr-node::before { background: var(--navy-700); border-color: var(--navy-700); }
.jr-stage.jr-current .jr-node::before { border: 6px solid var(--navy-700); box-shadow: 0 0 0 5px var(--navy-50); }
.jr-stage.jr-stopped .jr-node::before { background: var(--surface-sunken); border-color: var(--ink-muted); }
.jr-stage.jr-stopped .jr-node > svg { color: var(--ink-muted); }
.jr-stage.jr-map .jr-node::before { border-color: var(--navy-400); }

.jr-text { display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 0; max-width: 100%; }
.jr-text strong { font-size: var(--fs-sm); color: var(--ink); line-height: 1.25; overflow-wrap: anywhere; }
.jr-text > span { font-size: 11.5px; color: var(--ink-muted); line-height: 1.3; }
.jr-text em { font-style: normal; font-size: 11px; line-height: 1.3; margin-top: 2px; }
.jr-todo .jr-text strong { color: var(--ink-muted); font-weight: 500; }
.jr-stage.jr-current .jr-text strong { color: var(--navy-700); }
.jr-here { color: var(--navy-700); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 10px !important; }
.jr-here-stop { color: var(--ink-muted); }
.jr-note { color: var(--ink-muted); white-space: nowrap; }
.jr-next .jr-note { color: var(--navy-700); font-weight: 600; }
.jr-hold .jr-note { color: var(--danger); font-weight: 600; }
.jr-coins { color: var(--ink-muted); }
.jr-coins .coins { font-size: 11px; gap: 3px; }
.jr-gate.jr-next .jr-node .hex, .jr-gate.jr-next .jr-node .hex-img { opacity: 0.75; filter: none; }
.jr-gate.jr-next .jr-node { border-radius: 50%; box-shadow: 0 0 0 4px var(--navy-50); }
.jr-plain .hex { display: block; }

.jr-text strong { overflow-wrap: normal; word-break: keep-all; }
.jr { min-width: min-content; }
/* In the Guide and handbook the track sits in prose: no text-width cap, no list spacing. */
.prose .journey, .md .journey { max-width: none; margin: var(--s-4) 0; line-height: normal; font-size: inherit; overflow-x: auto; }
.prose .journey .jr, .md .journey .jr { margin: 0; }
.journey-map .jr-text strong { font-size: 12.5px; }
.journey-map .jr-text > span { font-size: 11px; }
.journey-table td { vertical-align: top; }
.journey-table .token-with-name { display: inline-flex; align-items: center; gap: 6px; }
.jt-sub { display: block; font-size: var(--fs-xs); color: var(--ink-muted); margin-top: 2px; }
.jt-gate td { background: var(--navy-50); }

@media (max-width: 900px) {
  .journey { flex-direction: column; align-items: stretch; padding: var(--s-3) var(--s-4); gap: 0; }
  .jr { flex-direction: row; align-items: flex-start; text-align: left; gap: var(--s-3); padding: 0 0 var(--s-3); }
  .jr:last-child { padding-bottom: 0; }
  .jr-node { width: var(--jr-node); }
  .jr-text { align-items: flex-start; padding-top: 7px; }
  .jr::before, .jr::after { width: 2px; height: auto; left: calc(var(--jr-node) / 2 - 1px); right: auto; }
  .jr::before { content: none; }
  .jr::after { top: calc(var(--jr-node) + 2px); bottom: 2px; }
  .jr-note { white-space: normal; }
}

.gap-callout { background: var(--danger-bg); border-radius: var(--radius-lg); padding: var(--s-3) var(--s-4); margin-bottom: var(--s-4); font-size: var(--fs-sm); color: var(--ink); }
.gap-callout strong { display: flex; align-items: center; gap: 6px; color: var(--danger); margin-bottom: var(--s-1); }
.gap-callout ul { margin: 0; padding-left: 1.3em; }

.idea-page .collapse-panel { margin-top: 0; margin-bottom: var(--s-4); }
.idea-page .detail-header { margin-bottom: var(--s-4); }

.tabs { display: flex; gap: var(--s-1); border-bottom: 1px solid var(--border); margin: var(--s-5) 0 var(--s-5); overflow-x: auto; scrollbar-width: none; }
.tab {
  padding: var(--s-2) var(--s-4) 10px; margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  font-size: var(--fs-sm); font-weight: 500; color: var(--ink-muted); white-space: nowrap;
}
.tab:hover { color: var(--ink); text-decoration: none; }
.tab.active { color: var(--navy-700); border-bottom-color: var(--navy-700); font-weight: 600; }

.desc-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); align-items: start; }
.desc-layout.with-chat { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.desc-chat { position: sticky; top: var(--s-4); }
.desc-chat .chat { height: calc(100vh - 48px); max-height: 760px; min-height: 460px; }
@media (max-width: 1100px) {
  .desc-layout.with-chat { grid-template-columns: 1fr; }
  .desc-chat { position: static; }
  .desc-chat .chat { height: 520px; }
}
.desc-head { margin-bottom: var(--s-3); }
.desc-head h3 { flex: 1; }
.desc-view { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.desc-block { padding: var(--s-4) var(--s-5); }
.desc-view .desc-block + .desc-block { border-top: 1px solid var(--border); }
.desc-block h4 { font-size: var(--fs-sm); font-weight: 600; color: var(--ink-muted); margin-bottom: var(--s-1); }
.desc-block .muted-note { margin: 0; }
.sticky-save { position: sticky; bottom: 0; background: var(--surface); padding: var(--s-3) 0 var(--s-1); margin-top: 0; border-top: 1px solid var(--border); }
.form-card .notice { display: flex; align-items: center; gap: var(--s-2); margin: 0; }
.assess-intro { margin-bottom: var(--s-3); }

.version-list { display: flex; flex-direction: column; gap: var(--s-2); }
.version { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.version > summary { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); cursor: pointer; list-style: none; flex-wrap: wrap; }
.version > summary::-webkit-details-marker { display: none; }
.version > summary:hover { background: var(--surface-alt); border-radius: var(--radius-lg); }
.version-title { flex: 1; min-width: 160px; font-weight: 600; color: var(--navy-900); }
.version-body { border-top: 1px solid var(--border); }
.version-decision { padding: var(--s-3) var(--s-5) 0; font-size: var(--fs-sm); color: var(--ink-soft); }

.change-list { list-style: none; margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.change { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: var(--s-4); padding: var(--s-3) var(--s-4); }
.change + .change { border-top: 1px solid var(--border); }
.change-meta { display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-xs); color: var(--ink-muted); }
.change-meta .ai-badge { align-self: flex-start; }
.change-body { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-1) var(--s-2); font-size: var(--fs-sm); min-width: 0; }
.chg-cat { font-size: 11px; font-weight: 600; color: var(--ink-muted); background: var(--surface-sunken); border-radius: var(--radius-pill); padding: 0 8px; }
.chg-field { color: var(--ink); }
.chg-inline { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px; min-width: 0; }
.chg-old { color: var(--ink-muted); text-decoration: line-through; overflow-wrap: anywhere; }
.chg-arrow { color: var(--ink-faint); }
.chg-new { color: var(--ink); overflow-wrap: anywhere; }
.chg-details { width: 100%; }
.chg-details summary { cursor: pointer; color: var(--navy-700); font-size: var(--fs-xs); font-weight: 600; }
.chg-compare { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); margin-top: var(--s-2); }
.chg-compare > div { min-width: 0; }
.chg-label { font-size: 11px; font-weight: 600; color: var(--ink-muted); }
.chg-old-block, .chg-new-block { white-space: pre-wrap; font-size: var(--fs-xs); line-height: 1.55; border-radius: var(--radius); padding: var(--s-2) var(--s-3); margin-top: 2px; overflow-wrap: anywhere; }
.chg-old-block { background: var(--danger-bg); color: var(--ink-soft); }
.chg-new-block { background: var(--success-bg); color: var(--ink); }
@media (max-width: 720px) { .change { grid-template-columns: 1fr; gap: var(--s-1); } .chg-compare { grid-template-columns: 1fr; } }

/* ── 5PSM assessment: AI score + Board column ─────────────────────────────── */

.assess-summary {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s-2) var(--s-5);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--s-4) var(--s-5); margin-bottom: var(--s-4);
}
.assess-total { display: flex; flex-direction: column; gap: 2px; }
.assess-total-label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); }
.assess-total-num { font-size: var(--fs-xxl); font-weight: 700; color: var(--navy-900); line-height: 1.1; font-variant-numeric: tabular-nums; }
.assess-total .assess-verdict { align-self: flex-start; margin-top: 4px; }
.assess-summary-meta { display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-xs); color: var(--ink-muted); min-width: 0; }
@media (max-width: 720px) { .assess-summary { grid-template-columns: 1fr; } }

.assess-grid-2 .assess-row { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr) minmax(0, 1fr); }
.assess-cell-score { border-right: 1px solid var(--border); }
.src-badge { font-size: 11px; font-weight: 600; color: var(--warning); background: var(--warning-bg); border-radius: var(--radius-pill); padding: 1px 8px; }
.cell-action { display: inline-flex; align-items: center; gap: 4px; margin-top: var(--s-2); font-size: var(--fs-xs); font-weight: 600; }
.cell-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-1) var(--s-4); margin-top: var(--s-2); }
.cell-actions .cell-action, .cell-actions .assess-ai-toggle { margin-top: 0; padding: 0; }
.pillar-evidence { margin-top: var(--s-2); font-size: var(--fs-xs); }
.pillar-evidence summary { cursor: pointer; color: var(--navy-700); font-weight: 600; }
.pillar-evidence .attachment-add { margin-left: 0; }

.inline-edit { display: flex; flex-direction: column; gap: var(--s-2); margin-top: var(--s-2); padding: var(--s-3); background: var(--surface-alt); border-radius: var(--radius); }
.inline-edit textarea { width: 100%; border: 1px solid var(--border-strong); border-radius: var(--radius); padding: var(--s-2) var(--s-3); font-size: var(--fs-sm); font-family: inherit; resize: vertical; }
.inline-edit textarea:focus, .inline-edit select:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.inline-edit-row { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft); }
.inline-edit-row select { border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 4px var(--s-2); font-size: var(--fs-sm); background: var(--surface); }
.inline-edit-actions { display: flex; gap: var(--s-2); }
.board-picks { display: flex; gap: 4px; flex-wrap: wrap; }
.pick { min-width: 36px; height: 32px; padding: 0 var(--s-2); border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft); cursor: pointer; }
.pick:hover { border-color: var(--navy-400); color: var(--navy-700); }
.pick.on { background: var(--navy-700); border-color: var(--navy-700); color: #fff; }
.pick:focus-visible { outline: none; box-shadow: var(--focus); }

@media (max-width: 860px) {
  .assess-grid-2 .assess-row { grid-template-columns: 1fr; }
  .assess-cell-score { border-right: none; }
  .assess-cell-score::before { content: '5PSM'; }
  .assess-grid-2 .assess-cell-board::before { content: 'Board'; }
}

/* ── Financial assumptions (Class 1A) ───────────────────────────────────── */

.notice-warn { background: var(--warning-bg); color: var(--warning); }
.notice-warn a, .notice-warn .link-button { color: inherit; text-decoration: underline; }
.fin-fields {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4);
  margin: var(--s-2) 0 0;
  min-width: 0;
}
.fin-fields legend {
  padding: 0 var(--s-2);
  font-weight: 600;
  color: var(--heading);
  font-size: var(--fs-base);
}
.fin-fields > .field-help { display: block; margin: 0 0 var(--s-3); }
.fin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3) var(--s-4); }
.fin-grid .field { margin: 0; }
.fin-wide { grid-column: 1 / -1; }
.fin-view {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-3) var(--s-5);
  margin: 0;
}
.fin-view dt { font-size: var(--fs-xs); color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 2px; }
.fin-view dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .fin-grid, .fin-view { grid-template-columns: minmax(0, 1fr); }
}

/* ── Guide: layout, documents, assistant ────────────────────────────────── */

.guide-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); align-items: start; }
@media (min-width: 1180px) { .guide-layout { grid-template-columns: minmax(0, 1fr) 380px; } }
.guide-aside { position: sticky; top: var(--s-5); }
@media (max-width: 1179px) { .guide-aside { position: static; order: -1; } }
.guide-section + .guide-section { margin-top: var(--s-6); }
.guide-section-title { font-size: var(--fs-md); color: var(--ink-soft); margin-bottom: var(--s-3); }
.guide-card-wide { display: flex; flex-direction: row; gap: var(--s-3); align-items: flex-start; }
.guide-card-wide > div { min-width: 0; }

.doc-toc { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-3) var(--s-4); margin: 0 0 var(--s-5); background: var(--surface); }
.doc-toc-label { display: block; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); margin-bottom: var(--s-2); }
.doc-toc ol { margin: 0; padding-left: 1.3em; columns: 2 220px; column-gap: var(--s-6); font-size: var(--fs-sm); }
.doc-toc li { break-inside: avoid; padding: 2px 0; }
.doc-toc ul.is-numbered { list-style: none; padding-left: 0; margin: 0; columns: 2 220px; column-gap: var(--s-6); font-size: var(--fs-sm); }

.md h2.md-h { font-size: var(--fs-xl); margin: var(--s-7) 0 var(--s-3); color: var(--heading); scroll-margin-top: var(--s-5); }
.md h3.md-h { font-size: var(--fs-lg); margin: var(--s-6) 0 var(--s-2); color: var(--heading); scroll-margin-top: var(--s-5); }
.md h4.md-h { font-size: var(--fs-md); margin: var(--s-5) 0 var(--s-2); }
.md > :first-child { margin-top: 0; }
.md p, .md ul, .md ol { margin: 0 0 var(--s-3); line-height: 1.6; max-width: 72ch; }
.md ul, .md ol { padding-left: 1.4em; }
.md li { margin: 3px 0; }
.md li.md-sub { margin-left: 1.4em; list-style-type: circle; }
.md code { font-size: 0.92em; background: var(--surface-sunken); padding: 1px 5px; border-radius: 4px; overflow-wrap: anywhere; }
.md-pre { background: var(--surface-sunken); border-radius: var(--radius); padding: var(--s-3) var(--s-4); overflow-x: auto; font-size: var(--fs-sm); margin: 0 0 var(--s-3); }
.md-pre code { background: none; padding: 0; }
.md blockquote { margin: 0 0 var(--s-3); }
.md-target { animation: md-flash 2.4s var(--ease); }
@keyframes md-flash { 0%, 40% { background: var(--warning-bg); } 100% { background: transparent; } }
.guide-doc.is-spec .md h2.md-h { border-top: 1px solid var(--border); padding-top: var(--s-5); }

.md-compact p, .md-compact ul, .md-compact ol { margin: 0 0 var(--s-2); line-height: 1.5; }
.md-compact h4.md-h, .md-compact h3.md-h { font-size: var(--fs-base); margin: var(--s-3) 0 var(--s-1); }
.md-compact > :last-child { margin-bottom: 0; }

.ga {
  display: flex; flex-direction: column;
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface);
  max-height: calc(100vh - 2 * var(--s-5)); min-height: 420px; overflow: hidden;
}
.ga-head { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); }
.ga-head-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ga-head-text strong { color: var(--navy-900); }
.ga-head-text span { font-size: var(--fs-xs); color: var(--ink-muted); }
.ga-body { flex: 1; overflow-y: auto; padding: var(--s-4); display: flex; flex-direction: column; gap: var(--s-3); }
.ga-empty p { font-size: var(--fs-sm); color: var(--ink-soft); margin: 0 0 var(--s-3); line-height: 1.5; }
.ga-suggest { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ga-suggest .chip-btn { text-align: left; }
.ga-msg { font-size: var(--fs-sm); line-height: 1.5; max-width: 100%; overflow-wrap: anywhere; }
.ga-user { align-self: flex-end; background: var(--navy-700); color: #fff; padding: var(--s-2) var(--s-3); border-radius: 12px 12px 4px 12px; max-width: 88%; white-space: pre-wrap; }
.ga-bot { align-self: stretch; }
.ga-bot.is-declined { background: var(--surface-alt); border-radius: var(--radius); padding: var(--s-2) var(--s-3); color: var(--ink-soft); }
.ga-bot.is-error { color: var(--danger); }
.ga-flag { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); font-weight: 600; color: var(--warning); margin-bottom: 4px; }
.ga-sources { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: var(--s-2); font-size: var(--fs-xs); color: var(--ink-muted); }
.ga-sources a { color: var(--navy-700); }
.ga-input { display: flex; gap: var(--s-2); align-items: flex-end; padding: var(--s-3) var(--s-4) 0; border-top: 1px solid var(--border); }
.ga-input textarea { flex: 1; min-width: 0; resize: none; font: inherit; font-size: var(--fs-sm); border: 1px solid var(--border-strong); border-radius: var(--radius); padding: var(--s-2) var(--s-3); }
.ga-input textarea:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.ga-foot { font-size: var(--fs-xs); color: var(--ink-muted); padding: var(--s-2) var(--s-4) var(--s-3); margin: 0; }

/* ── Guide assistant log (Settings) ─────────────────────────────────────── */

.log-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); margin-bottom: var(--s-5); }
.log-stats > div { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-3) var(--s-4); display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-xs); color: var(--ink-muted); }
.log-stat-num { font-size: var(--fs-xl); font-weight: 600; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.log-toolbar { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; justify-content: space-between; margin-bottom: var(--s-3); }
.log-toolbar .chip-filter { margin: 0; }
.log-search input { border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 7px var(--s-3); font: inherit; font-size: var(--fs-sm); min-width: 240px; }
.log-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.log-item + .log-item { border-top: 1px solid var(--border); }
.log-row { display: grid; grid-template-columns: 150px 160px minmax(0, 1fr) auto; gap: var(--s-3); align-items: center; width: 100%; text-align: left; background: var(--surface); border: 0; padding: var(--s-3) var(--s-4); font: inherit; font-size: var(--fs-sm); cursor: pointer; }
.log-row:hover, .log-item.open .log-row { background: var(--surface-alt); }
.log-when { color: var(--ink-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.log-who { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.log-q { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-soft); }
.log-meta { display: inline-flex; gap: var(--s-2); align-items: center; white-space: nowrap; color: var(--ink-muted); }
.log-detail { padding: var(--s-3) var(--s-4) var(--s-4); background: var(--surface-alt); display: flex; flex-direction: column; gap: var(--s-3); }
.log-msg { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--s-3); font-size: var(--fs-sm); display: flex; flex-direction: column; gap: var(--s-2); }
.log-msg-q, .log-msg-a { line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.log-msg-a { display: flex; gap: var(--s-2); align-items: baseline; flex-wrap: wrap; }
.log-answer { flex: 1 1 300px; min-width: 0; }
.log-err { color: var(--danger); }
.log-msg-meta { font-size: var(--fs-xs); color: var(--ink-muted); }
.tag-ok { background: var(--success-bg); color: var(--success); }
.tag-warn { background: var(--warning-bg); color: var(--warning); }
.tag-err { background: var(--danger-bg); color: var(--danger); }
@media (max-width: 760px) {
  .log-row { grid-template-columns: minmax(0, 1fr) auto; }
  .log-q { grid-column: 1 / -1; }
  .log-stats { grid-template-columns: minmax(0, 1fr); }
  .log-search input { min-width: 0; width: 100%; }
  .log-search { flex: 1; }
}

/* ── Housekeeping ───────────────────────────────────────────────────────── */
.hk-panel { display: flex; flex-wrap: wrap; gap: var(--s-4); align-items: center; justify-content: space-between; margin: 0 0 var(--s-5); }
.hk-now { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-2); flex: 1 1 520px; min-width: 0; }
.hk-stat { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-2) var(--s-3); display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-xs); color: var(--ink-muted); background: var(--surface); }
.hk-stat-num { font-size: var(--fs-lg); font-weight: 600; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.hk-stat.is-warn { border-color: var(--warning); background: var(--warning-bg); }
.hk-stat.is-warn .hk-stat-num { color: var(--warning); }
.hk-run { display: flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; }
.hk-results { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.hk-results li + li { margin-top: 2px; }
@media (max-width: 760px) { .hk-now { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.ga-note { font-size: var(--fs-xs); color: var(--ink-muted); text-align: center; margin: 0; padding: var(--s-1) 0; border-bottom: 1px dashed var(--border); }

/* ── Handbook illustrations ─────────────────────────────────────────────── */
.dg-fig { margin: var(--s-5) 0 var(--s-6); max-width: 820px; }
.dg-scroll { overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4); }
.dg { display: block; width: 100%; min-width: 600px; height: auto; }
.dg-fig figcaption { font-size: var(--fs-sm); color: var(--ink-muted); margin-top: var(--s-2); line-height: 1.5; max-width: 72ch; }
.hk-log-title { margin-top: var(--s-7); }

/* ── Co-authors ─────────────────────────────────────────────────────────── */
.team-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s-2); margin-top: var(--s-3); }
.team-label { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); margin-right: var(--s-1); }
.person-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 6px 2px 2px; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); font-size: var(--fs-sm); max-width: 100%; }
.person-chip a, .person-chip > span:not(.avatar):not(.person-role) { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-chip.is-leader { border-color: var(--navy-400); background: var(--navy-50); }
.person-role { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--navy-700); }
.person-act { border: 0; background: none; color: var(--ink-muted); cursor: pointer; padding: 0 2px; line-height: 1; font-size: 15px; display: inline-flex; }
.person-act:hover { color: var(--navy-700); }
.avatar-xs { width: 22px; height: 22px; font-size: 9.5px; }
.team-add { display: inline-flex; align-items: center; gap: var(--s-2); }
.coauthors { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s-2); }
.user-picker { position: relative; min-width: 240px; flex: 0 0 auto; max-width: 420px; }
.team-add .user-picker { flex: 1 1 260px; }
.user-picker input { width: 100%; border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 7px var(--s-3); font: inherit; font-size: var(--fs-sm); background: var(--surface); }
.user-picker input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.user-picker-list { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); list-style: none; margin: 0; padding: 4px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-pop); max-height: 280px; overflow-y: auto; }
.user-picker-list button { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: var(--s-2); align-items: center; width: 100%; text-align: left; border: 0; background: none; padding: 6px var(--s-2); border-radius: 6px; cursor: pointer; font: inherit; }
.user-picker-list button:hover { background: var(--navy-50); }
.user-picker-list .avatar { grid-row: 1 / 3; }
.user-picker-name { font-size: var(--fs-sm); font-weight: 600; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-picker-mail { font-size: var(--fs-xs); color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-picker-empty { padding: 6px var(--s-2); font-size: var(--fs-sm); color: var(--ink-muted); }
@media (max-width: 640px) { .user-picker { min-width: 0; max-width: none; } }

/* ── Logo and the recognition icon system ───────────────────────────────── */
.brand-logo { display: inline-flex; line-height: 0; }
.auth-brand { flex-direction: column; text-align: center; gap: var(--s-1); padding-bottom: var(--s-5); }
.auth-logo { display: inline-flex; line-height: 0; margin-bottom: var(--s-3); filter: drop-shadow(0 6px 14px rgba(4, 29, 62, 0.18)); }
.auth-brand-name { font-size: var(--fs-xxl); }
.hex { display: inline-block; vertical-align: middle; flex-shrink: 0; }
.hex.is-dim, .hex-img.is-dim { filter: grayscale(1); opacity: 0.32; }
.token-strip { display: inline-flex; gap: 3px; align-items: center; vertical-align: middle; }
.token-with-name { display: inline-flex; gap: 6px; align-items: center; }
.coins { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-variant-numeric: tabular-nums; vertical-align: middle; }
.coins-num { font-weight: 700; color: var(--navy-900); }
.coins-sym { font-size: 0.78em; font-weight: 600; color: var(--ink-muted); letter-spacing: 0.04em; }
.stat-coins .coins-num { font-size: inherit; }

/* Idea Account */
.account { display: flex; flex-direction: column; gap: var(--s-5); }
.account-top { display: flex; flex-wrap: wrap; gap: var(--s-5); align-items: center; justify-content: space-between; padding: var(--s-4) var(--s-5); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.account-balance { display: flex; flex-direction: column; gap: var(--s-1); min-width: 220px; }
.account-balance .coins-num { font-size: var(--fs-xxl); }
.account-label, .account-h { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); }
.account-h { margin: 0 0 var(--s-3); }
.account-tokens { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.account-token { display: grid; justify-items: center; gap: 2px; min-width: 76px; padding: var(--s-2); border: 1px solid transparent; border-radius: var(--radius); background: none; cursor: pointer; font: inherit; }
.account-token:hover:not(:disabled), .account-token.is-open { border-color: var(--border); background: var(--surface-alt); }
.account-token:disabled { cursor: default; }
.account-token-num { font-size: var(--fs-lg); font-weight: 700; color: var(--navy-900); line-height: 1.1; }
.account-token-name { font-size: var(--fs-xs); color: var(--ink-muted); }
.token-ideas { border: 1px solid var(--border); border-radius: var(--radius); padding: var(--s-3) var(--s-4); background: var(--surface-alt); font-size: var(--fs-sm); }
.token-ideas ul { margin: var(--s-2) 0 0; padding-left: 1.2em; }
.account-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-6); }
@media (max-width: 860px) { .account-grid { grid-template-columns: minmax(0, 1fr); } }
.funnel { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); }
.funnel li { display: grid; grid-template-columns: auto 84px minmax(0, 1fr) 32px; gap: var(--s-2); align-items: center; font-size: var(--fs-sm); }
.funnel-bar { height: 10px; background: var(--surface-sunken); border-radius: 5px; overflow: hidden; }
.funnel-bar i { display: block; height: 100%; border-radius: 5px; min-width: 2px; }
.funnel-num { text-align: right; font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.achv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--s-2); margin-bottom: var(--s-4); }
.achv { display: flex; gap: var(--s-2); align-items: center; padding: var(--s-2); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.achv.is-locked { background: var(--surface-alt); }
.achv.is-locked strong { color: var(--ink-muted); }
.achv-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0; }
.achv-text { display: flex; flex-direction: column; min-width: 0; font-size: var(--fs-sm); }
.achv-text span { font-size: var(--fs-xs); color: var(--ink-muted); }
.corp-list { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); display: flex; flex-direction: column; gap: 4px; }
.tx-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.tx-list li { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto 110px; gap: var(--s-3); align-items: center; padding: var(--s-2) var(--s-4); font-size: var(--fs-sm); background: var(--surface); }
.tx-list li + li { border-top: 1px solid var(--border); }
.tx-date { color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.tx-main { display: flex; flex-direction: column; min-width: 0; }
.tx-main a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tx-reason { font-size: var(--fs-xs); color: var(--ink-muted); }
.tx-amount { text-align: right; }
@media (max-width: 640px) {
  .tx-list li { grid-template-columns: minmax(0, 1fr) auto auto; row-gap: 2px; padding: var(--s-2) var(--s-3); }
  .tx-date { grid-column: 1 / -1; font-size: var(--fs-xs); }
  .tx-amount { min-width: 0; }
  .account-top { padding: var(--s-4); }
  .account-tokens { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; gap: 0; }
  .account-token { min-width: 0; padding: var(--s-1) 0; }
  .account-token-name { font-size: 10.5px; }
}

/* Idea page, Home */
.idea-rec-tokens { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-2); }
@media (max-width: 760px) { .idea-rec-tokens { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.idea-rec-token { display: grid; justify-items: center; text-align: center; gap: 4px; padding: var(--s-3) var(--s-2); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); font-size: var(--fs-xs); color: var(--ink-muted); }
.idea-rec-token strong { font-size: var(--fs-sm); color: var(--navy-900); }
.idea-rec-token.is-locked { background: var(--surface-alt); }
.idea-rec-token.is-locked strong { color: var(--ink-muted); }
.idea-rec-note { color: var(--ink); font-style: italic; }
.idea-rec-actions { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-3); }
.idea-rec-form { flex: 1 1 100%; }
.home-capital { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); padding: var(--s-2) var(--s-5) var(--s-3); }
.home-capital .coins-num { font-size: var(--fs-xl); }
.home-capital .coins .hex { width: 26px; }
.home-tokens { display: flex; gap: var(--s-2); }
.home-token { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; font-size: var(--fs-xs); font-weight: 700; color: var(--navy-900); }
.home-credits { list-style: none; margin: 0; padding: 0 var(--s-5) var(--s-4); display: flex; flex-direction: column; gap: var(--s-3); font-size: var(--fs-sm); border-top: 1px solid var(--border); padding-top: var(--s-3); }
.home-credits li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 var(--s-2); }
.home-credits li a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-credits li .muted-inline { grid-column: 1; font-size: var(--fs-xs); }
.home-credits li .coins { grid-column: 2; grid-row: 1 / 3; }
.decision-award { display: inline-flex; align-items: center; gap: 6px; }

/* Recognition settings */
.color-field { display: inline-flex; align-items: center; gap: var(--s-2); }
.color-field input[type=color] { width: 34px; height: 28px; padding: 0; border: 1px solid var(--border-strong); border-radius: 6px; background: none; cursor: pointer; }
.color-field code { font-size: var(--fs-xs); color: var(--ink-muted); }
.rank-rows { display: flex; flex-direction: column; gap: var(--s-3); }
.rank-row { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--s-3); padding: var(--s-3); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.rank-preview { display: grid; place-items: center; }
.rank-fields { display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; }
.rank-line { display: flex; gap: var(--s-3); align-items: center; }
.rank-triggers { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: var(--fs-xs); }
.chk-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface-alt); cursor: pointer; }
.chk-pill:has(input:checked) { border-color: var(--navy-400); background: var(--navy-50); color: var(--navy-900); }
.corp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--s-4); }
.corp-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4); background: var(--surface); display: flex; flex-direction: column; gap: var(--s-3); }
.corp-card header { display: flex; flex-direction: column; gap: 2px; }
.corp-shortlist { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.corp-shortlist li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--s-2); align-items: center; }
.corp-value { font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.corp-winners { display: flex; flex-wrap: wrap; gap: 6px; }
.corp-winner { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--radius-pill); background: #F3EAD9; color: #6B4F1D; font-size: var(--fs-sm); font-weight: 600; }

.capital-ladder { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-3); margin: var(--s-5) 0; }
.capital-step { display: grid; justify-items: center; align-content: start; text-align: center; gap: var(--s-1); padding: var(--s-4) var(--s-2); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.capital-step strong { color: var(--navy-900); margin-top: var(--s-1); }
.capital-step span { font-size: var(--fs-xs); color: var(--ink-muted); line-height: 1.4; }
@media (max-width: 720px) { .capital-ladder { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .rank-row { grid-template-columns: minmax(0, 1fr); } .rank-preview { justify-items: start; } .rank-line { flex-wrap: wrap; } }

/* ── Live assessment + notifications ────────────────────────────────────── */
.spinner { width: 12px; height: 12px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; display: inline-block; animation: spin 0.8s linear infinite; flex-shrink: 0; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation-duration: 2.4s; } }
.ai-running { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 600; color: var(--navy-700); }
.ai-running.is-compact { font-size: var(--fs-xs); padding: 1px 8px; border-radius: var(--radius-pill); background: var(--navy-50); white-space: nowrap; }
.ai-running.is-compact .spinner { width: 10px; height: 10px; }
.live-banner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); padding: var(--s-3) var(--s-4); border-radius: var(--radius-lg); margin: var(--s-3) 0 var(--s-2); font-size: var(--fs-sm); }
.live-banner.is-running { background: var(--navy-50); border: 1px solid var(--navy-100); }
.live-banner.is-done { background: var(--success-bg); color: #0F5134; border: 1px solid #BFE0CC; }
.live-banner.is-done a { color: inherit; font-weight: 600; }
.live-banner .toast-close { margin-left: auto; color: inherit; }
.live-bar { flex: 1 1 160px; max-width: 280px; height: 6px; background: #fff; border-radius: 3px; overflow: hidden; }
.live-bar i { display: block; width: 100%; height: 100%; background: var(--navy-700); border-radius: 3px; transform-origin: left; transition: transform 0.6s var(--ease); }
.toast-host { pointer-events: none; }
.toast-card { pointer-events: auto; display: flex; align-items: flex-start; gap: var(--s-3); background: var(--surface); color: var(--ink); max-width: 420px; --tone: var(--success); }
.toast-card::before { content: ""; flex-shrink: 0; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: var(--tone); }
.toast-card.tone-warning { --tone: var(--warning); }
.toast-card.tone-error { --tone: var(--danger); }
.toast-card a { display: flex; flex-direction: column; gap: 2px; color: inherit; text-decoration: none; flex: 1; min-width: 0; }
.toast-card strong { color: var(--navy-900); }
.toast-card span { color: var(--ink-soft); font-size: var(--fs-sm); }
.toast-close { border: 0; background: none; font-size: 18px; line-height: 1; color: var(--ink-muted); cursor: pointer; padding: 0 2px; }
.side-live { display: flex; flex-direction: column; gap: 6px; margin-top: auto; }
.side-live-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--s-2); align-items: center; padding: var(--s-2) var(--s-3); border-radius: var(--radius); background: var(--navy-50); color: var(--navy-700); font-size: var(--fs-xs); text-decoration: none; }
.side-live-item:hover { text-decoration: none; background: var(--navy-100); }
.side-live-text { display: flex; flex-direction: column; min-width: 0; }
.side-live-text strong { font-size: var(--fs-xs); }
.side-live-text span { color: var(--ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.side-live-num { font-weight: 700; font-variant-numeric: tabular-nums; }
.side-live + .sidebar-bottom { margin-top: 0; }
.bell { position: relative; }
.bell-btn { width: 100%; border: 0; background: none; font: inherit; cursor: pointer; text-align: left; }
.bell-count { margin-left: auto; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--danger); color: #fff; font-size: 11px; font-weight: 700; display: inline-grid; place-items: center; }
.bell.is-compact { margin-left: auto; }
.bell.is-compact .bell-count { position: absolute; top: 2px; right: 0; margin: 0; }
.bell-panel { position: absolute; z-index: 60; bottom: calc(100% + 6px); left: 0; width: 340px; max-height: 70vh; overflow-y: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-pop); }
.bell.is-compact .bell-panel { bottom: auto; top: calc(100% + 6px); left: auto; right: 0; width: min(340px, calc(100vw - 32px)); }
.bell-head { display: flex; justify-content: space-between; align-items: center; padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); }
.bell-empty { padding: var(--s-4); margin: 0; }
.bell-active, .bell-list { list-style: none; margin: 0; padding: 0; }
.bell-active li a { display: flex; flex-direction: column; gap: 4px; padding: var(--s-2) var(--s-4); background: var(--navy-50); text-decoration: none; border-bottom: 1px solid var(--border); }
.bell-title { font-size: var(--fs-sm); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bell-list li + li { border-top: 1px solid var(--border); }
.bell-list button { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; border: 0; background: none; padding: var(--s-3) var(--s-4); font: inherit; font-size: var(--fs-sm); cursor: pointer; color: var(--ink-soft); }
.bell-list button:hover { background: var(--surface-alt); }
.bell-list strong { color: var(--ink); }
.bell-list li.is-unread button { background: var(--navy-50); }
.bell-list li.is-unread strong::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--navy-700); margin-right: 6px; vertical-align: middle; }
.bell-time { font-size: var(--fs-xs); color: var(--ink-muted); }

.live-banner.is-done { flex-wrap: nowrap; align-items: flex-start; }
.live-banner.is-done > span { flex: 1; min-width: 0; }
.live-banner.is-done > svg { margin-top: 2px; flex-shrink: 0; }

/* Egzakta Group profile */
.gp-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); padding: var(--s-3) var(--s-4); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); margin-bottom: var(--s-4); }
.gp-meta { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); font-size: var(--fs-sm); }
.gp-profile { display: flex; flex-direction: column; gap: var(--s-4); margin-bottom: var(--s-6); }
.gp-overview p { max-width: 80ch; line-height: 1.6; margin: 0; }
.gp-companies { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--s-3); }
.gp-company { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--s-4); background: var(--surface); display: flex; flex-direction: column; gap: var(--s-2); font-size: var(--fs-sm); min-width: 0; }
.gp-company header { display: flex; justify-content: space-between; gap: var(--s-2); align-items: baseline; }
.gp-company header strong { color: var(--navy-900); font-size: var(--fs-base); }
.gp-company p { margin: 0; color: var(--ink-soft); line-height: 1.5; }
.gp-site { font-size: var(--fs-xs); overflow-wrap: anywhere; }
.gp-row { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: var(--s-2); align-items: start; }
.gp-row > span:first-child { font-size: var(--fs-xs); color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.04em; padding-top: 3px; }
.gp-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.gp-chip { padding: 1px 8px; border-radius: var(--radius-pill); background: var(--surface-alt); border: 1px solid var(--border); font-size: var(--fs-xs); color: var(--ink-soft); }
.gp-sources { font-size: var(--fs-xs); columns: 2 320px; margin: 0; padding-left: 1.2em; }
.gp-sources a { overflow-wrap: anywhere; }

/* Gate readiness checklist */
.prep-checks { list-style: none; margin: var(--s-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.prep-checks li { display: flex; gap: 6px; align-items: flex-start; }
.prep-checks li svg { flex-shrink: 0; margin-top: 3px; }
.prep-checks li.is-ok { color: var(--success); }
.prep-checks li.is-missing { color: var(--ink); }
.prep-checks li.is-missing svg { color: var(--danger); }

/* Pillar dossiers */
.dossier .section-header { align-items: baseline; }
.dossier-locked .tag { display: inline-flex; align-items: center; gap: 4px; }
.dz-list { display: flex; flex-direction: column; gap: var(--s-2); }
.dz-pillar { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.dz-pillar.is-open { border-color: var(--navy-100); }
.dz-head { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: var(--s-2); padding: var(--s-3) var(--s-4); cursor: pointer; flex-wrap: wrap; }
.dz-head:focus-visible { outline: 2px solid var(--navy-700); outline-offset: -2px; border-radius: var(--radius-lg); }
.dz-chev { color: var(--ink-muted); width: 12px; }
.dz-name { font-weight: 650; color: var(--navy-900); }
.dz-count { margin-left: auto; font-size: var(--fs-xs); color: var(--ink-muted); padding: 2px 8px; border-radius: var(--radius-pill); background: var(--surface-alt); border: 1px solid var(--border); }
.dz-count.is-short { color: var(--warning); background: var(--warning-bg); border-color: transparent; }
.dz-count.is-full { color: var(--success); background: var(--success-bg); border-color: transparent; }
.dz-body { padding: 0 var(--s-4) var(--s-4); display: flex; flex-direction: column; gap: var(--s-3); }
.dz-body > .assess-pillar-q { margin: 0; }
.dz-actions { display: flex; gap: var(--s-2); flex-wrap: wrap; }
.dz-draft-note { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: flex-start; margin: 0; }
.dz-draft-note > span { flex: 1; min-width: 220px; }
.dz-draft-sources { flex-basis: 100%; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.check-row { display: flex; gap: 6px; align-items: center; }
.dz-fields { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-3); }
.dz-field { border-top: 1px solid var(--border); padding-top: var(--s-3); }
.dz-field:first-child { border-top: none; padding-top: 0; }
.dz-q { display: flex; gap: var(--s-2); align-items: center; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--ink); }
.dz-help { margin: 2px 0 var(--s-2); font-size: var(--fs-xs); color: var(--ink-muted); max-width: 80ch; }
.dz-answer { margin: 0; }
.dz-meta { margin: 4px 0 0; font-size: var(--fs-xs); color: var(--ink-faint); }
.dz-input { width: 100%; box-sizing: border-box; font: inherit; font-size: var(--fs-sm); line-height: 1.5; padding: var(--s-2) var(--s-3); border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); resize: vertical; }
.dz-input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.dz-field.is-ai .dz-input { border-color: var(--navy-400); background: var(--navy-50); }
.dz-extras { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s-4); border-top: 1px solid var(--border); padding-top: var(--s-3); }
.dz-extras h5 { margin: 0 0 var(--s-2); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); font-weight: 600; }

/* Assessment: analysis, findings, sources, rounds */
.pa { display: flex; flex-direction: column; gap: var(--s-3); margin-bottom: var(--s-3); }
.pa-block h5, .pa-h { margin: 0 0 var(--s-1); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); font-weight: 600; }
.pa-text { margin: 0; font-size: var(--fs-sm); line-height: 1.6; white-space: pre-wrap; color: var(--ink-soft); }
.pa-changes { background: var(--navy-50); border-radius: var(--radius); padding: var(--s-2) var(--s-3); }
.pa-findings, .pa-sources { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-sm); }
.pa-findings li { display: flex; gap: var(--s-2); align-items: baseline; }
.pa-kind { flex-shrink: 0; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 1px 6px; border-radius: var(--radius-pill); background: var(--surface-alt); color: var(--ink-muted); border: 1px solid var(--border); }
.pa-kind-statistic { color: var(--navy-700); background: var(--navy-50); border-color: transparent; }
.pa-kind-risk, .pa-kind-gap { color: var(--warning); background: var(--warning-bg); border-color: transparent; }
.pa-cite { font-size: var(--fs-xs); }
.pa-cite a, .pa-sources a, .pa-cite .link-button, .pa-sources .link-button { display: inline-flex; gap: 4px; align-items: center; overflow-wrap: anywhere; }
.pa-unverified { font-size: var(--fs-xs); color: var(--ink-faint); font-style: italic; }
.pa-src-label { color: var(--ink-soft); }
.pa-details > summary { cursor: pointer; font-size: var(--fs-sm); color: var(--navy-700); margin-top: var(--s-2); }
.pa-details[open] > summary { margin-bottom: var(--s-2); }
.round-picker { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-3); align-items: center; margin: 0 0 var(--s-3); font-size: var(--fs-sm); }
.round-picker label { font-weight: 600; color: var(--ink); }
.round-picker select { font: inherit; padding: 4px 8px; border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); max-width: 100%; }
.round-note, .stale-note { display: flex; gap: var(--s-2); align-items: center; flex-wrap: wrap; }
.assess-grid-round .assess-row { grid-template-columns: minmax(160px, 1fr) 3fr; }
.version-dossier { margin-bottom: var(--s-3); }
.version-dossier h5 { margin: 0 0 4px; color: var(--navy-900); }
.version-dossier dl { margin: 0; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.version-dossier dt { font-weight: 600; }
.version-dossier dd { margin: 0 0 4px; white-space: pre-wrap; color: var(--ink-soft); }
.version-scores { border-collapse: collapse; font-size: var(--fs-sm); margin-bottom: 4px; }
.version-scores th, .version-scores td { text-align: left; padding: 4px 12px 4px 0; border-bottom: 1px solid var(--border); vertical-align: top; }

/* ══════════════════════════════════════════════════════════════════════════
   Where an idea stands — one phrase with a tone mark (process.js)
   ══════════════════════════════════════════════════════════════════════════ */
.ps { display: inline-flex; gap: var(--s-2); align-items: flex-start; min-width: 0; --ps: var(--navy-400); }
.ps-mark { flex-shrink: 0; width: 10px; height: 10px; margin-top: 4px; border-radius: 50%; border: 2px solid var(--ps); box-sizing: border-box; }
.ps-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ps-text strong { font-size: var(--fs-sm); font-weight: 600; color: var(--ink); }
.ps-text span { font-size: var(--fs-xs); color: var(--ink-muted); }
.ps-compact .ps-text strong, .ps-compact .ps-text span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-work    { --ps: var(--navy-400); }
.ps-blocked { --ps: var(--warning); }
.ps-blocked .ps-text span { color: var(--warning); }
.ps-ready   { --ps: var(--success); }
.ps-ready .ps-mark, .ps-agenda .ps-mark, .ps-done .ps-mark { background: var(--ps); }
.ps-agenda  { --ps: var(--navy-700); }
.ps-hold    { --ps: var(--danger); }
.ps-hold .ps-mark { border-radius: 2px; }
.ps-live    { --ps: var(--success); }
.ps-done    { --ps: var(--success); }
.ps-stopped { --ps: var(--ink-faint); }
.ps-stopped .ps-text strong { color: var(--ink-muted); font-weight: 500; }

.stage-cell { display: inline-flex; flex-direction: column; gap: 5px; min-width: 0; }
.stage-track { display: inline-flex; gap: 3px; }
.stage-track i { width: 18px; height: 4px; border-radius: 2px; background: var(--border); }
.stage-track i.done { background: var(--navy-700); }
.stage-track i.cur { background: var(--navy-700); box-shadow: 0 0 0 2px var(--navy-100); }
.stage-cell.is-stopped .stage-track i.done, .stage-cell.is-stopped .stage-track i.cur { background: var(--ink-faint); box-shadow: none; }
.stage-name { font-size: var(--fs-sm); color: var(--ink); }

/* ══════════════════════════════════════════════════════════════════════════
   Ideas table — fixed page top, scrolling body, frozen header and title
   ══════════════════════════════════════════════════════════════════════════ */
.main-fill { max-width: none; }
@media (min-width: 901px) {
  .main-fill { height: 100vh; box-sizing: border-box; display: flex; flex-direction: column; padding-bottom: var(--s-4); }
}
.ideas-page { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.ideas-top { flex-shrink: 0; }
.ideas-top .page-header { margin-bottom: var(--s-3); }
.table-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); margin: var(--s-3) 0; }
.table-search { flex: 1 1 260px; max-width: 420px; font: inherit; font-size: var(--fs-sm); padding: 7px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
.table-search:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.table-count { margin-left: auto; font-size: var(--fs-sm); color: var(--ink-muted); }
.col-picker-wrap { position: relative; }
.col-picker {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: 340px; max-height: 70vh; overflow: auto;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-pop);
  padding: var(--s-3) var(--s-4); display: flex; flex-direction: column; gap: var(--s-3);
}
.col-picker fieldset { border: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px var(--s-3); }
.col-picker legend { grid-column: 1 / -1; padding: 0; margin-bottom: 4px; font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); }
.col-picker .check-row { font-size: var(--fs-sm); }
.col-picker-foot { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border); padding-top: var(--s-3); }

.table-scroll { flex: 1; min-height: 0; overflow: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
@media (max-width: 900px) { .table-scroll { max-height: 70vh; } }
.table-scroll:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
.ideas-table { table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: var(--fs-sm); min-width: 100%; }
.ideas-table th, .ideas-table td { box-sizing: border-box; text-align: left; vertical-align: middle; background: var(--surface); }
.ideas-table thead th { position: sticky; z-index: 2; background: var(--surface-alt); border-bottom: 1px solid var(--border); }
.ideas-table .th-row th { top: 0; height: 40px; padding: 0; }
.ideas-table .tf-row th { top: 40px; height: 40px; padding: 4px 8px; }
.ideas-table th.is-frozen, .ideas-table td.is-frozen { position: sticky; z-index: 1; }
.ideas-table thead th.is-frozen { z-index: 3; }
.ideas-table td.is-frozen { box-shadow: inset -1px 0 0 var(--border); }
.th-sort {
  all: unset; box-sizing: border-box; width: 100%; height: 40px; display: flex; align-items: center; gap: 4px;
  padding: 0 14px 0 12px; cursor: pointer; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-soft);
  text-transform: uppercase; letter-spacing: 0.03em; white-space: nowrap; overflow: hidden;
}
.th-sort span:first-child { overflow: hidden; text-overflow: ellipsis; }
.th-sort:hover { color: var(--navy-700); }
.th-sort:focus-visible { outline: 2px solid var(--navy-700); outline-offset: -2px; }
th[aria-sort="ascending"] .th-sort, th[aria-sort="descending"] .th-sort { color: var(--navy-700); }
.th-arrow { font-size: 9px; }
.is-num .th-sort { justify-content: flex-end; }
.th-resize { position: absolute; top: 6px; right: 0; bottom: 6px; width: 8px; cursor: col-resize; touch-action: none; }
.th-resize::after { content: ""; position: absolute; top: 0; bottom: 0; right: 3px; width: 1px; background: var(--border-strong); }
.th-resize:hover::after { background: var(--navy-700); width: 2px; right: 2px; }
.tf-input { width: 100%; box-sizing: border-box; font: inherit; font-size: var(--fs-xs); padding: 5px 8px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--ink); min-width: 0; }
.tf-input:focus { outline: none; border-color: var(--navy-700); box-shadow: var(--focus); }
.tf-num { text-align: right; }
.ideas-table tbody td { padding: 10px 12px; border-bottom: 1px solid var(--border); overflow: hidden; }
.ideas-table tbody tr { cursor: pointer; }
.ideas-table tbody tr:hover td { background: var(--navy-50); }
.ideas-table tbody tr:last-child td { border-bottom: none; }
.ideas-table td.is-num { text-align: right; font-variant-numeric: tabular-nums; }
.cell-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; color: var(--navy-900); line-height: 1.35; }
.cell-title:hover { color: var(--navy-700); }
.cell-class { display: inline-flex; gap: 6px; align-items: center; min-width: 0; max-width: 100%; }
.cell-class span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-soft); }
.cell-score { font-weight: 600; color: var(--ink); }
.cell-sub { display: block; font-size: var(--fs-xs); color: var(--ink-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cell-empty { color: var(--ink-faint); }
.table-empty { text-align: center; padding: var(--s-6) !important; color: var(--ink-muted); cursor: default; }
.table-pager { flex-shrink: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); padding-top: var(--s-3); font-size: var(--fs-sm); }
.page-size { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--ink-muted); }
.page-size select { font: inherit; padding: 3px 6px; border: 1px solid var(--border-strong); border-radius: 6px; background: var(--surface); }
.pager-btns { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; }
.pager-pos { padding: 0 var(--s-2); color: var(--ink-soft); white-space: nowrap; }

/* ══════════════════════════════════════════════════════════════════════════
   The way to the next gate (idea page)
   ══════════════════════════════════════════════════════════════════════════ */
.gw { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-bottom: var(--s-4); }
.gw-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3) var(--s-5); padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--border); }
.gw-plain .gw-head { border-bottom: none; }
.gw-plain > .action-card, .gw-plain-body { margin: 0; padding: 0 var(--s-5) var(--s-4); border: none; background: none; }
.gw-title { display: flex; align-items: center; gap: var(--s-3); }
.gw-title h3 { margin: 0; font-size: var(--fs-md); color: var(--navy-900); }
.gw-kicker { display: block; font-size: var(--fs-xs); color: var(--ink-muted); }
.gw-sub { font-size: var(--fs-xs); color: var(--ink-muted); }
.gw-head > .ps { max-width: 460px; }
.gw-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gw-step { padding: var(--s-4) var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); min-width: 0; }
.gw-step + .gw-step { border-left: 1px solid var(--border); }
.gw-step.is-now { background: linear-gradient(var(--navy-700), var(--navy-700)) top / 100% 2px no-repeat; }
.gw-step-head { display: flex; align-items: center; gap: var(--s-2); }
.gw-step-head strong { font-size: var(--fs-sm); color: var(--ink); }
.gw-num { width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; font-size: var(--fs-xs); font-weight: 700; border: 2px solid var(--border-strong); color: var(--ink-muted); box-sizing: border-box; flex-shrink: 0; }
.gw-step.is-now .gw-num { border-color: var(--navy-700); color: var(--navy-700); }
.gw-step.is-done .gw-num { background: var(--navy-700); border-color: var(--navy-700); color: #fff; }
.gw-state { margin-left: auto; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-faint); }
.gw-step.is-now .gw-state { color: var(--navy-700); }
.gw-step.is-done .gw-state { color: var(--success); }
.gw-step.is-wait .gw-step-head strong { color: var(--ink-muted); font-weight: 500; }
.gw-step-body { display: flex; flex-direction: column; gap: var(--s-2); font-size: var(--fs-sm); }
.gw-step-body p { margin: 0; }
.gw-step-body .prep-checks { margin: 0; }
.gw-label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.gw-link { font-size: var(--fs-sm); }
.gw-gaps { margin: 0; padding-left: 1.2em; }
.gw-date { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-md); font-weight: 600; color: var(--navy-900); }
.gw-queue { display: flex; flex-direction: column; gap: 6px; }
.gw-queue label, .gw-notes label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink-soft); }
.gw-queue-row { display: flex; gap: var(--s-2); flex-wrap: wrap; }
.gw-queue-row select { flex: 1 1 160px; min-width: 0; font: inherit; font-size: var(--fs-sm); padding: 6px 8px; border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
.gw-unqueue { align-self: flex-start; font-size: var(--fs-xs); }
.gw-notes { margin: var(--s-1) 0 0; display: flex; flex-direction: column; gap: 6px; }
.gw-notes textarea { font: inherit; font-size: var(--fs-sm); padding: var(--s-2); border: 1px solid var(--border-strong); border-radius: var(--radius); resize: vertical; }
.gw-step .action-card { border: none; padding: 0; margin: 0; background: none; }
.gw-step .action-card h4 { display: none; }
.gw-history { border-top: 1px solid var(--border); padding: var(--s-3) var(--s-5); font-size: var(--fs-sm); }
.gw-history summary { cursor: pointer; color: var(--navy-700); }
.gw-history .simple-list { margin-top: var(--s-2); }
@media (max-width: 860px) {
  .gw-steps { grid-template-columns: 1fr; }
  .gw-step + .gw-step { border-left: none; border-top: 1px solid var(--border); }
  .gw-head { padding: var(--s-4); }
  .gw-step { padding: var(--s-4); }
}
@media (max-width: 700px) {
  .ideas-table th.is-frozen, .ideas-table td.is-frozen { position: static; box-shadow: none; }
  .ideas-table thead th.is-frozen { position: sticky; }
  .col-picker { right: auto; left: 0; width: min(340px, calc(100vw - 32px)); }
  .table-count { margin-left: 0; }
}

/* ══════════════════════════════════════════════════════════════════════════
   The journey as navigation: reached steps open their details below
   ══════════════════════════════════════════════════════════════════════════ */
.jr-hit {
  all: unset; box-sizing: border-box; position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; gap: var(--s-2);
  width: 100%; padding: 0 2px 8px; border-radius: 10px; cursor: pointer; text-align: center;
}
.jr-hit:hover { background: var(--navy-50); }
.jr-hit:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
.jr.is-selected .jr-hit { background: var(--navy-50); box-shadow: inset 0 -2px 0 var(--navy-700); }
.jr.is-selected .jr-text strong { color: var(--navy-900); }
.journey:has(+ .jp) { margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
@media (max-width: 900px) {
  .jr-hit { flex-direction: row; align-items: flex-start; text-align: left; gap: var(--s-3); padding: 0 6px 6px 0; }
}

.jp {
  background: var(--surface); border: 1px solid var(--border); border-top: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg); margin-bottom: var(--s-4);
  box-shadow: inset 0 1px 0 var(--navy-100);
}
.jp-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--border); }
.jp-title { flex: 1 1 200px; min-width: 0; }
.jp-title h3 { margin: 0; font-size: var(--fs-md); color: var(--navy-900); line-height: 1.25; }
.jp-head > .ps { max-width: 420px; }
.jp-close { all: unset; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; color: var(--ink-muted); cursor: pointer; }
.jp-close:hover { background: var(--surface-alt); color: var(--ink); }
.jp-close:focus-visible { outline: 2px solid var(--navy-700); }
.jp-stage-dot { width: 22px; height: 22px; border-radius: 50%; border: 6px solid var(--navy-700); box-sizing: border-box; flex-shrink: 0; }
.jp-stage-dot.is-done { border-width: 2px; background: var(--navy-700); }
.jp-chip { font-size: var(--fs-xs); font-weight: 600; padding: 3px 10px; border-radius: var(--radius-pill); }
.jp-chip.is-now { background: var(--navy-50); color: var(--navy-700); }
.jp-chip.is-done { background: var(--success-bg); color: var(--success); }
.jp-chip.is-stopped { background: var(--surface-alt); color: var(--ink-muted); }
.jp-body { padding: var(--s-4) var(--s-5) var(--s-5); display: flex; flex-direction: column; gap: var(--s-4); }
.jp-body-steps { padding: 0; gap: 0; }
.jp-body-steps > .jp-earlier { padding: var(--s-3) var(--s-5); border-top: 1px solid var(--border); }
.jp-lede { margin: 0; font-size: var(--fs-sm); color: var(--ink-soft); }
.jp-hint { margin: 0 0 var(--s-2); font-size: var(--fs-xs); color: var(--ink-muted); }
.jp-action { display: flex; flex-direction: column; gap: var(--s-2); }
.jp-action .action-card { margin: 0; }
.jp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s-5); }
.jp-sec { display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; }
.jp-sec h4, .jp-body .desc-block h4 { margin: 0 0 var(--s-1); font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); }
.jp-field span { display: block; font-size: var(--fs-xs); color: var(--ink-muted); }
.jp-field p { margin: 2px 0 0; font-size: var(--fs-sm); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.jp-scores { border-collapse: collapse; width: 100%; font-size: var(--fs-sm); }
.jp-scores th { text-align: left; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-muted); padding: 4px 10px 4px 0; border-bottom: 1px solid var(--border); }
.jp-scores td { padding: 6px 10px 6px 0; border-bottom: 1px solid var(--border); vertical-align: top; }
.jp-scores tfoot td { border-bottom: none; }
.jp-scores .is-num { text-align: right; font-variant-numeric: tabular-nums; }
.jp-comment { color: var(--ink-soft); font-size: var(--fs-xs); }
.jp-decision { display: flex; flex-direction: column; gap: var(--s-2); }
.jp-decision-main { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); font-size: var(--fs-sm); }
.jp-note { margin: 0; padding: var(--s-3) var(--s-4); background: var(--surface-alt); border-radius: var(--radius); font-size: var(--fs-sm); line-height: 1.55; color: var(--ink); white-space: pre-wrap; }
.jp-earned { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); font-size: var(--fs-sm); }
.jp-earlier > summary { cursor: pointer; font-size: var(--fs-sm); color: var(--navy-700); }
.jp-earlier[open] > summary { margin-bottom: var(--s-2); }
@media (max-width: 860px) { .jp-head, .jp-body { padding-left: var(--s-4); padding-right: var(--s-4); } }
.jp-body .version-content .desc-block, .jp-body > .desc-block { padding: 0; margin: 0; border: none; background: none; }
.jp-head { position: relative; padding-right: 56px; }
.jp-close { position: absolute; top: 14px; right: 14px; }

/* What belongs to a stage: stage chips, materials, changes */
.stage-chip { display: inline-flex; align-items: center; padding: 0 7px; height: 18px; border-radius: var(--radius-pill); font-size: 11px; font-weight: 500; color: var(--navy-700); background: var(--navy-50); white-space: nowrap; flex-shrink: 0; }
.material-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-sm); }
.material-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s-2); min-width: 0; }
.material-list a, .material-list .link-button { display: inline-flex; align-items: center; gap: 6px; overflow-wrap: anywhere; }
.material-list li.is-removed a, .material-list li.is-removed .link-button { color: var(--ink-muted); text-decoration: line-through; text-decoration-color: var(--ink-faint); }
.material-pillar { font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; color: var(--ink-muted); }
.material-removed { font-size: var(--fs-xs); color: var(--ink-muted); font-style: italic; }
.stage-work { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--border); }
.jp-body > .stage-work:first-child { padding-top: 0; border-top: none; }
.stage-counts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.change-list.compact .change { padding: var(--s-2) 0; }
.stage-filter { font: inherit; font-size: var(--fs-sm); padding: 4px 8px; border: 1px solid var(--border-strong); border-radius: var(--radius-pill); background: var(--surface); margin-left: var(--s-2); }
.attachment .stage-chip, .link-list .stage-chip { margin-left: var(--s-1); }

/* The idea page is the journey: the selected stage holds its work */
.jp-jump { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); padding-bottom: var(--s-3); border-bottom: 1px solid var(--border); font-size: var(--fs-sm); }
.jp-jump .link-button:last-child { margin-left: auto; }
.jp-part { scroll-margin-top: var(--s-4); }
.jp-part + .jp-part, .jp-part + .budget, .budget + .jp-part { border-top: 1px solid var(--border); padding-top: var(--s-4); }
.jp-part > .section, .jp-part .assess { margin-top: 0; }
.jp-stage-log { border-top: 1px solid var(--border); padding-top: var(--s-3); }
.jp-stage-log[open] .stage-work { margin-top: var(--s-3); }
.budget { scroll-margin-top: var(--s-4); border-top: 1px solid var(--border); padding-top: var(--s-4); }
.budget h4 { margin: 0 0 var(--s-3); font-size: var(--fs-md); color: var(--navy-900); }
.budget-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-4); }
.budget-cell { display: flex; flex-direction: column; gap: 4px; padding: var(--s-3) var(--s-4); background: var(--surface-alt); border-radius: var(--radius); min-width: 0; }
.budget-cell > span { font-size: var(--fs-xs); color: var(--ink-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.budget-cell strong { font-size: 20px; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.budget-cell strong.is-ok { color: var(--success); }
.budget-cell strong.is-over { color: var(--danger); }
.budget-cell em { font-style: normal; font-size: var(--fs-xs); color: var(--ink-muted); }
.budget-cell .link-button { align-self: flex-start; font-size: var(--fs-sm); }
.budget-edit { display: flex; align-items: center; gap: 6px; }
.budget-edit input { width: 140px; font: inherit; padding: 6px 8px; border: 1px solid var(--border-strong); border-radius: var(--radius); text-align: right; }
.budget-cell textarea { font: inherit; font-size: var(--fs-sm); padding: 6px 8px; border: 1px solid var(--border-strong); border-radius: var(--radius); resize: vertical; }
.budget-actions { display: flex; gap: var(--s-2); }
.idea-log-pick { max-width: 520px; margin-bottom: var(--s-5); }
.idea-log-pick select { width: 100%; font: inherit; padding: 7px 10px; border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); }
.jp .desc-layout { margin-top: 0; }
