@font-face {
  font-family: "IBM Plex Sans";
  src: url("/fonts/IBMPlexSans-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.school-role-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.school-role-card {
  background: var(--surface-soft, #f7f8f6);
  border: 1px solid var(--border, #d8ddd7);
  border-radius: 12px;
  display: grid;
  gap: 12px;
  padding: 16px;
}

.school-role-card h4,
.school-role-card p {
  margin: 0;
}

.school-role-card p {
  color: var(--text-muted, #5c665e);
  font-size: 0.9rem;
  line-height: 1.45;
  margin-top: 5px;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("/fonts/IBMPlexSans-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("/fonts/IBMPlexSans-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Serif";
  src: url("/fonts/IBMPlexSerif-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("/fonts/IBMPlexMono-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --canvas: #f2efe9;
  --surface: #ffffff;
  --navy: #0f2a45;
  --chrome-fg: #e8eef4;
  --chrome-muted: #94a7b9;
  --ink: #1a2531;
  --muted: #5d6b78;
  --line: #e5e1d8;
  --line-strong: #d6d0c3;
  --accent: #2f6b9e;
  --accent-soft: #e9f0f6;
  --gate: #8a611a;
  --gate-soft: #f6efdd;
  --ok: #2f6b4f;
  --ok-soft: #e6efe9;
  --over: #a2402f;
  --over-soft: #f5e7e3;
  --focus: #123f68;
  --shadow: 0 18px 46px rgb(15 42 69 / 16%);
  --radius: 6px;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

button[data-permission-denied="true"] {
  display: none !important;
}

html {
  background: var(--canvas);
  color: var(--ink);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  min-width: 320px;
}

body {
  margin: 0;
  min-height: 100vh;
  text-rendering: optimizeLegibility;
}

.noscript-warning {
  background: #fff3cd;
  border-bottom: 1px solid rgb(15 42 69 / 18%);
  color: var(--navy);
  font-weight: 700;
  padding: 12px 20px;
  text-align: center;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

a {
  color: inherit;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.skip-link {
  background: var(--surface);
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  color: var(--navy);
  font-weight: 600;
  left: 12px;
  padding: 10px 14px;
  position: fixed;
  top: 12px;
  transform: translateY(-160%);
  z-index: 50;
}

.skip-link:focus {
  transform: translateY(0);
}

.app-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  background: var(--navy);
  color: var(--chrome-fg);
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-height: 100vh;
  padding: 28px 20px;
}

.brand-lockup,
.topbar,
.topbar-actions,
.component-row,
.citation-row,
.button-row,
.item-head,
.section-heading.with-actions {
  align-items: center;
  display: flex;
}

.brand-lockup {
  gap: 14px;
}

.brand-mark,
.signin-mark {
  align-items: center;
  border: 2px solid var(--chrome-fg);
  border-radius: 999px;
  display: inline-flex;
  font-family: "IBM Plex Serif", Georgia, serif;
  justify-content: center;
}

.brand-mark {
  font-size: 28px;
  height: 58px;
  width: 58px;
}

.brand-name {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 26px;
  line-height: 1;
}

.brand-kicker,
.policy-sync,
.capacity-role,
.eyebrow {
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.brand-kicker {
  color: var(--chrome-muted);
  font-size: 11px;
  margin-top: 8px;
}

.nav-list {
  display: grid;
  gap: 8px;
}

.nav-item {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--chrome-muted);
  display: flex;
  gap: 10px;
  min-height: 42px;
  padding: 10px 12px;
  text-align: left;
  width: 100%;
}

.nav-item:hover,
.nav-item.is-active {
  background: rgb(232 238 244 / 10%);
  border-color: rgb(232 238 244 / 14%);
  color: var(--chrome-fg);
}

.nav-dot {
  background: currentcolor;
  border-radius: 999px;
  height: 7px;
  width: 7px;
}

.policy-sync {
  align-items: center;
  border-top: 1px solid rgb(232 238 244 / 16%);
  color: var(--chrome-muted);
  display: flex;
  font-size: 12px;
  gap: 9px;
  margin-top: auto;
  padding-top: 18px;
}

.sync-light {
  background: var(--ok-soft);
  border: 2px solid var(--ok);
  border-radius: 999px;
  height: 12px;
  width: 12px;
}

.workspace {
  background: var(--canvas);
  min-width: 0;
}

.signin-view {
  background: var(--navy);
  color: var(--chrome-fg);
  display: none;
  min-height: 100vh;
  padding: 48px;
  place-items: center;
}

.app-shell[data-mode="signin"] {
  display: block;
}

.app-shell[data-mode="signin"] .sidebar,
.app-shell[data-mode="signin"] .shell-view {
  display: none;
}

.app-shell[data-mode="signin"] .signin-view {
  display: grid;
}

.signin-panel {
  max-width: 1060px;
  width: 100%;
}

.signin-brand {
  margin: 0 auto 34px;
  max-width: 620px;
  text-align: center;
}

.signin-mark {
  font-size: 70px;
  height: 116px;
  margin-bottom: 24px;
  width: 116px;
}

.signin-brand h1,
.topbar h1,
.section-heading h2 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-weight: 400;
}

.signin-brand h1 {
  font-size: 44px;
  line-height: 1.08;
  margin: 8px 0 12px;
}

.signin-copy {
  color: var(--chrome-muted);
  font-size: 17px;
  line-height: 1.55;
  margin: 0;
}

.role-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.signin-form {
  background: rgb(232 238 244 / 7%);
  border: 1px solid rgb(232 238 244 / 20%);
  border-radius: var(--radius);
  display: grid;
  gap: 10px;
  margin: 0 auto 18px;
  max-width: 460px;
  padding: 18px;
}

.signin-form .field-label {
  color: var(--chrome-muted);
  margin: 0;
}

.signin-form input {
  background: var(--surface);
  border: 1px solid rgb(232 238 244 / 30%);
  border-radius: var(--radius);
  color: var(--ink);
  min-height: 42px;
  padding: 9px 11px;
}

.role-card {
  background: rgb(232 238 244 / 7%);
  border: 1px solid rgb(232 238 244 / 20%);
  border-radius: var(--radius);
  color: var(--chrome-fg);
  display: grid;
  gap: 8px;
  min-height: 150px;
  padding: 18px;
  text-align: left;
}

.role-card:hover {
  background: rgb(232 238 244 / 12%);
  border-color: rgb(232 238 244 / 38%);
}

.role-card.is-active {
  border-color: var(--accent);
}

.role-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
}

.role-person,
.role-remit {
  color: var(--chrome-muted);
  line-height: 1.5;
}

.shell-view {
  padding: 28px 34px 48px;
}

.capacity-panel {
  max-width: 820px;
}

.topbar {
  align-items: start;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 22px;
}

.breadcrumb {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 8px;
  margin-bottom: 8px;
}

.breadcrumb a {
  text-decoration: none;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

.topbar h1 {
  font-size: 34px;
  line-height: 1.15;
  margin: 0;
}

.topbar-actions {
  gap: 12px;
  position: relative;
}

.advisory-marker,
.capacity-switch,
.filter-chip,
.tab-button,
.view-toggle,
.button {
  border-radius: var(--radius);
}

.advisory-marker {
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 14px;
  padding: 10px 12px;
  white-space: nowrap;
}

.case-identity {
  color: var(--ink);
  font-weight: 700;
  margin: 6px 0 0;
}

.identity-caption,
.identity-toggle p {
  color: var(--muted);
  font-size: 13px;
  margin: 4px 0 0;
}

.technical-caption,
.guidance-note {
  color: var(--muted);
  font-size: 13px;
  margin: 6px 0 0;
}

.guidance-note {
  margin-bottom: 14px;
}

.tok {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--muted);
  display: inline-block;
  font-family: var(--mono);
  font-size: 0.86em;
  font-weight: 700;
  padding: 2px 7px;
}

.capacity-switch {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  display: flex;
  gap: 10px;
  min-height: 50px;
  padding: 7px 10px;
  text-align: left;
}

.avatar {
  align-items: center;
  background: var(--navy);
  border-radius: 999px;
  color: var(--chrome-fg);
  display: inline-flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.capacity-name,
.capacity-role {
  display: block;
}

.capacity-name {
  font-weight: 600;
}

.capacity-role {
  color: var(--muted);
  font-size: 11px;
  margin-top: 2px;
}

.capacity-menu {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: grid;
  min-width: 250px;
  padding: 6px;
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 20;
}

.capacity-menu button {
  background: transparent;
  border: 0;
  border-radius: var(--radius);
  color: var(--ink);
  padding: 11px 12px;
  text-align: left;
}

.capacity-menu button:hover {
  background: var(--accent-soft);
}

.case-journey {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin: 0 0 24px;
  padding: 0;
}

.case-journey-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.case-journey-list li + li {
  border-left: 1px solid var(--line);
}

.case-journey-chip {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--muted);
  display: grid;
  gap: 2px 9px;
  grid-template-columns: auto 1fr;
  min-height: 64px;
  padding: 12px 14px;
  text-align: left;
  width: 100%;
}

.case-journey button.case-journey-chip:hover,
.case-journey button.case-journey-chip:focus-visible {
  background: var(--accent-soft);
}

.journey-marker,
.step-index,
.bundle-list > li > span {
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
}

.journey-label {
  font-weight: 600;
}

.case-journey-chip small {
  color: var(--muted);
  font-size: 12px;
  grid-column: 2;
  line-height: 1.3;
}

.case-journey-list .is-complete .case-journey-chip {
  color: var(--ok);
}

.case-journey-list .is-current .case-journey-chip {
  background: var(--accent-soft);
  color: var(--accent);
}

.case-journey-list .is-future .case-journey-chip {
  color: var(--muted);
  opacity: 0.58;
}

.screen {
  display: none;
}

.screen.is-active {
  display: block;
}

.screen[aria-busy="true"] {
  cursor: progress;
}

.screen[aria-busy="true"] > * {
  pointer-events: none;
}

.screen-grid {
  display: grid;
  gap: 20px;
}

.screen-grid.two-one {
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
}

.screen-grid.main-aside {
  grid-template-columns: minmax(0, 1fr) 340px;
}

.side-stack {
  display: grid;
  gap: 20px;
}

.surface-section {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
}

.section-heading {
  margin-bottom: 18px;
}

.section-heading.with-actions {
  align-items: flex-start;
  gap: 16px;
  justify-content: space-between;
}

.eyebrow {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  margin: 0 0 7px;
}

.section-heading h2 {
  font-size: 24px;
  line-height: 1.18;
  margin: 0;
}

.component-row,
.citation-row,
.button-row,
.filter-row {
  flex-wrap: wrap;
  gap: 10px;
}

.component-row + .component-row,
.citation-row {
  margin-top: 14px;
}

.status-pill,
.signal-chip,
.citation-chip,
.filter-chip {
  align-items: center;
  border: 1px solid var(--line);
  display: inline-flex;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  min-height: 32px;
}

.status-pill {
  border-radius: 999px;
  padding: 8px 11px;
  text-transform: uppercase;
}

.status-ok {
  background: var(--ok-soft);
  color: var(--ok);
}

.status-gate,
.status-draft {
  background: var(--gate-soft);
  color: var(--gate);
}

.status-over {
  background: var(--over-soft);
  color: var(--over);
}

.status-due {
  background: var(--accent-soft);
  color: var(--accent);
}

.status-idle {
  background: var(--canvas);
  color: var(--muted);
}

.signal-chip {
  border-radius: 999px;
  gap: 8px;
  padding: 8px 12px;
}

.signal-chip span {
  border-radius: 999px;
  height: 7px;
  width: 7px;
}

.signal-accent {
  background: var(--accent-soft);
  color: var(--accent);
}

.signal-accent span {
  background: var(--accent);
}

.signal-gate {
  background: var(--gate-soft);
  color: var(--gate);
}

.signal-gate span {
  background: var(--gate);
}

.signal-over {
  background: var(--over-soft);
  color: var(--over);
}

.signal-over span {
  background: var(--over);
}

.citation-row.vertical {
  align-items: stretch;
  display: grid;
}

.citation-chip {
  background: var(--surface);
  border-radius: 999px;
  color: var(--ink);
  gap: 9px;
  padding: 7px 11px;
}

.citation-detail {
  display: grid;
  gap: 8px;
}

.citation-detail summary {
  cursor: pointer;
  list-style: none;
}

.citation-detail summary::-webkit-details-marker {
  display: none;
}

.citation-detail blockquote,
.citation-detail .citation-empty {
  border-left: 3px solid var(--line-strong);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  margin: 0;
  padding: 0 0 0 12px;
}

.citation-chip strong,
.citation-chip small {
  font-size: 12px;
  line-height: 1.15;
}

.citation-chip small {
  color: var(--muted);
}

.inline-citations {
  margin-top: 10px;
}

.citation-chip span {
  border-radius: 999px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  padding: 5px 7px;
}

.citation-school span {
  background: var(--accent-soft);
  color: var(--accent);
}

.citation-national span {
  background: var(--ok-soft);
  color: var(--ok);
}

.button {
  border: 1px solid var(--line-strong);
  font-weight: 600;
  min-height: 40px;
  padding: 9px 13px;
}

.button.primary {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--chrome-fg);
}

.button.secondary {
  background: var(--surface);
  color: var(--ink);
}

.button.tertiary {
  background: transparent;
  border-color: transparent;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.button:hover {
  filter: brightness(0.97);
}

.link-button {
  background: transparent;
  border: 0;
  color: var(--accent);
  font-weight: 600;
  padding: 0;
  text-align: left;
}

.async-status {
  color: var(--muted);
  line-height: 1.45;
  min-height: 1.45em;
}

.async-status[data-tone="error"],
.signin-form .async-status {
  color: var(--over-soft);
}

.shell-status {
  margin: -10px 0 14px;
}

.empty-state {
  background: var(--canvas);
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius);
  color: var(--muted);
  line-height: 1.45;
  padding: 14px;
}

.filter-row {
  display: flex;
}

.filter-chip {
  background: var(--surface);
  color: var(--muted);
  padding: 8px 11px;
}

.filter-chip.is-active {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--chrome-fg);
}

.attention-list,
.risk-list,
.checklist,
.doc-grid,
.deadline-list,
.number-list,
.bundle-list,
.evidence-list,
.plain-list,
.flag-list {
  display: grid;
  gap: 10px;
}

.attention-item,
.risk-item,
.step-card,
.route-card,
.coordinator-assignment,
.document-card,
.correspondence-item,
.holding-pen article,
.bundle-list li,
.concern-card,
.panel-member,
.setup-summary,
.panel-readout article,
.finding-item,
.flag-item,
.board-card,
.report-grid article,
.diff-pane {
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.attention-item,
.risk-item {
  align-items: center;
  display: grid;
  gap: 13px;
  grid-template-columns: 5px minmax(0, 1fr) auto;
  min-height: 92px;
  overflow: hidden;
  padding: 14px;
}

.attention-item h3,
.risk-item h3,
.step-card h3,
.route-card h3,
.coordinator-assignment h3,
.track-grid h3,
.document-card h3,
.correspondence-item h4,
.bundle-list h3,
.gate-card h3,
.concern-card h3,
.panel-member h3,
.setup-summary h3,
.panel-readout h3,
.finding-item h3,
.flag-item h3,
.board-column h3 {
  font-size: 16px;
  margin: 0 0 6px;
}

.attention-item p,
.risk-item p,
.step-card p,
.route-card p,
.coordinator-assignment p,
.track-grid p,
.document-card p,
.correspondence-item p,
.holding-pen p,
.bundle-list p,
.gate-card p,
.compact-summary p,
.completeness-card p,
.plain-list,
.concern-card p,
.panel-member p,
.setup-summary p,
.panel-readout p,
.finding-item p,
.flag-item p,
.board-card p,
.report-grid p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.item-head {
  gap: 10px;
  justify-content: space-between;
}

.severity-bar {
  align-self: stretch;
  border-radius: 999px;
}

.attention-item.urgent .severity-bar,
.step-card.gate {
  border-left-color: var(--gate);
}

.attention-item.urgent .severity-bar,
.risk-item.medium .severity-bar {
  background: var(--gate);
}

.attention-item.overdue .severity-bar,
.risk-item.high .severity-bar {
  background: var(--over);
}

.attention-item.due .severity-bar,
.risk-item.low .severity-bar {
  background: var(--accent);
}

.metric-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.metric-list div {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
}

.metric-list dt {
  color: var(--muted);
}

.metric-list dd {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 34px;
  margin: 0;
}

.table-wrap {
  overflow-x: auto;
}

.case-table {
  border-collapse: collapse;
  min-width: 920px;
  width: 100%;
}

.case-table th,
.case-table td {
  border-bottom: 1px solid var(--line);
  padding: 13px 12px;
  text-align: left;
  vertical-align: middle;
}

.case-table th {
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.field-label {
  color: var(--muted);
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 8px;
}

.complaint-box,
.editor-box,
select {
  background: #fbfaf7;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--ink);
  line-height: 1.55;
  padding: 14px;
  resize: vertical;
  width: 100%;
}

.rendered-document-view {
  background:
    linear-gradient(rgb(255 255 255 / 88%), rgb(255 255 255 / 88%)),
    repeating-linear-gradient(
      -35deg,
      transparent,
      transparent 18px,
      rgb(162 64 47 / 12%) 18px,
      rgb(162 64 47 / 12%) 20px
    );
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--ink);
  line-height: 1.55;
  min-height: 340px;
  padding: 18px;
  white-space: pre-wrap;
}

.document-preview {
  background: var(--surface);
  border-left: 3px solid var(--navy);
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
  max-height: 7.25em;
  overflow: hidden;
  padding: 8px 10px;
}

.rendered-document-view::before {
  background: var(--over-soft);
  border: 1px solid rgb(162 64 47 / 28%);
  border-radius: 999px;
  color: var(--over);
  content: "read-only document";
  display: table;
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 12px;
  padding: 4px 10px;
  text-transform: uppercase;
}

.rendered-document-view.is-identified::before {
  content: "names shown · read-only";
}

.rendered-document-view.is-tokenised::before {
  background: var(--accent-soft);
  border-color: rgb(34 102 118 / 28%);
  color: var(--accent);
  content: "AI-safe copy · read-only";
}

select {
  min-width: 180px;
  padding: 9px 11px;
}

.inline-form-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin-bottom: 12px;
}

.inline-form-grid input,
.inline-form-grid select,
.drawer input,
.drawer select,
.drawer textarea {
  background: #fbfaf7;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--ink);
  min-height: 38px;
  padding: 8px 10px;
  width: 100%;
}

.number-list {
  counter-reset: item;
  list-style: none;
  padding: 0;
}

.number-list li {
  border-bottom: 1px solid var(--line);
  counter-increment: item;
  line-height: 1.5;
  padding: 12px 0 12px 34px;
  position: relative;
}

.number-list li::before {
  color: var(--accent);
  content: counter(item, decimal-leading-zero);
  font-family: "IBM Plex Mono", monospace;
  left: 0;
  position: absolute;
}

.summary-grid,
.track-grid,
.doc-grid,
.file-grid,
.correspondence-grid,
.panel-grid,
.panel-readout,
.finding-list,
.board-grid,
.report-grid,
.diff-grid {
  display: grid;
  gap: 14px;
}

.summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.summary-grid div,
.track-grid article {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
}

.summary-grid span,
.deadline-list span,
.report-grid span {
  color: var(--muted);
  display: block;
  font-size: 13px;
  margin-bottom: 5px;
}

.summary-grid strong,
.deadline-list strong {
  font-weight: 600;
}

.route-card {
  background: var(--accent-soft);
  margin: 18px 0;
  padding: 18px;
}

.decision-block {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 14px;
  padding: 16px;
}

.route-card,
.track-decision-block {
  display: grid;
  gap: 14px;
}

.decision-block-heading {
  display: grid;
  gap: 5px;
}

.decision-block-heading h3 {
  margin: 0;
}

.decision-block-section {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.decision-block-section h4 {
  color: var(--accent);
  font-size: 13px;
  margin: 0 0 6px;
}

.decision-block-section > p,
.decision-coordinator-summary p,
.decision-action-note,
.confidence-copy {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.confidence-copy {
  color: var(--accent);
  font-family: "IBM Plex Mono", monospace;
  font-weight: 600;
}

.coordinator-assignment {
  background: var(--canvas);
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
  padding: 18px;
}

.coordinator-assignment .assignment-grid {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.coordinator-assignment textarea {
  background: #fbfaf7;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--ink);
  line-height: 1.45;
  min-height: 74px;
  padding: 10px;
  resize: vertical;
  width: 100%;
}

.track-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 18px;
}

.track-groups,
.track-group,
.checked-procedure-list {
  display: grid;
  gap: 12px;
}

.track-group .track-grid {
  margin-bottom: 4px;
}

.checked-procedures {
  background: #fbfaf7;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.checked-procedures > summary {
  color: var(--ink);
  cursor: pointer;
  font-weight: 600;
  list-style-position: inside;
  padding: 14px 16px;
}

.checked-procedures > p {
  border-top: 1px solid var(--line);
  color: var(--muted);
  margin: 0;
  padding: 14px 16px 4px;
}

.checked-procedure-list {
  padding: 10px 16px 16px;
}

.checked-procedure {
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 14px;
}

.checked-procedure h4 {
  margin: 0 0 5px;
}

.checked-procedure p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.gate-card {
  align-items: flex-start;
  background: var(--gate-soft);
  border: 1px solid #d8bc78;
  border-radius: var(--radius);
  color: var(--ink);
  display: flex;
  gap: 14px;
  padding: 18px;
}

.gate-icon {
  align-items: center;
  background: var(--gate);
  border-radius: 999px;
  color: var(--surface);
  display: inline-flex;
  flex: 0 0 34px;
  font-weight: 700;
  height: 34px;
  justify-content: center;
}

.deadline-list div {
  border-bottom: 1px solid var(--line);
  padding: 11px 0;
}

.tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.case-workspace-tabs {
  border-bottom: 1px solid var(--line-strong);
  gap: 0;
  justify-content: flex-start;
  margin-top: 20px;
}

.case-workspace-tabs .tab-button {
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  min-height: 48px;
  padding: 10px 18px;
}

.case-workspace-tabs .tab-button.is-active {
  background: transparent;
  border-bottom-color: var(--accent);
  color: var(--ink);
}

/* Record sits apart from the three working sections, as a quieter link. */
.case-workspace-tabs .tab-button.record-link {
  color: var(--muted);
  font-weight: 500;
  margin-left: auto;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.case-workspace-tabs .tab-button.record-link.is-active {
  color: var(--ink);
  text-decoration: none;
}

.case-heading-actions {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.case-controls {
  position: relative;
}

.case-controls > summary {
  background: var(--canvas);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--muted);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  list-style-position: inside;
  padding: 9px 12px;
}

.case-controls-panel {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  box-shadow: 0 12px 28px rgba(20, 29, 42, 0.12);
  display: grid;
  gap: 14px;
  margin-top: 8px;
  padding: 14px;
  position: absolute;
  right: 0;
  width: min(420px, 80vw);
  z-index: 3;
}

.workspace-section {
  border-top: 1px solid var(--line);
  margin-top: 24px;
  padding-top: 22px;
}

.tab-panel > .workspace-section:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.workspace-section .section-heading > p:last-child {
  color: var(--muted);
  line-height: 1.5;
  margin: 6px 0 0;
}

.workspace-disclosure,
.analysis-supporting-detail {
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  margin-top: 22px;
}

.workspace-disclosure > summary,
.analysis-supporting-detail > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 600;
  gap: 16px;
  justify-content: space-between;
  list-style-position: inside;
  padding: 15px 17px;
}

.workspace-disclosure > summary small,
.analysis-supporting-detail > summary small {
  color: var(--muted);
  font-weight: 400;
}

.workspace-disclosure[open] > summary,
.analysis-supporting-detail[open] > summary {
  border-bottom: 1px solid var(--line);
}

.workspace-disclosure > .risk-list {
  padding: 16px;
}

.analysis-supporting-body {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.case-action-anchor {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr);
}

.case-action-anchor .briefing-primary-action {
  margin: 0;
}

.delay-signal {
  background: var(--gate-soft);
  border: 1px solid #d8bc78;
  border-radius: var(--radius);
  padding: 14px 16px;
}

.delay-signal .eyebrow {
  color: var(--gate);
}

.delay-signal p:last-child {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
  margin: 0;
}

.outputs-introduction .doc-grid,
.record-correspondence .correspondence-grid {
  margin-top: 18px;
}

.claim-ledger-panel {
  background: linear-gradient(150deg, #f5f1e8 0%, #fbfaf6 70%);
  border: 1px solid #c9b990;
  border-radius: var(--radius);
  margin-top: 18px;
  padding: 18px;
}

.claim-ledger-heading {
  align-items: start;
  display: flex;
  gap: 22px;
  justify-content: space-between;
}

.claim-ledger-heading h4 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 23px;
  font-weight: 400;
  margin: 3px 0 7px;
}

.claim-ledger-heading p,
.claim-ledger-overview,
.claim-ledger-assurance {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  max-width: 830px;
}

.claim-ledger-overview {
  color: var(--ink);
  margin-top: 16px;
}

.claim-ledger-summary {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 18px 0;
}

.claim-ledger-summary div {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--line-strong);
  padding: 13px 14px;
}

.claim-ledger-summary dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.claim-ledger-summary dd {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 25px;
  margin: 5px 0 0;
}

.claim-ledger-detail {
  border-top: 1px solid var(--line-strong);
  margin-top: 14px;
  padding-top: 14px;
}

.claim-ledger-detail > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 700;
  justify-content: space-between;
  list-style: none;
}

.claim-ledger-detail > summary small {
  color: var(--muted);
  font-weight: 400;
}

.claim-ledger-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.claim-ledger-item {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  display: grid;
  gap: 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  overflow: hidden;
}

.claim-ledger-item > header {
  align-items: center;
  border-bottom: 1px solid var(--line-strong);
  display: flex;
  grid-column: 1 / -1;
  justify-content: space-between;
  padding: 11px 14px;
}

.claim-ledger-item > header div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.claim-number {
  align-items: center;
  background: var(--ink);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 12px;
  height: 26px;
  justify-content: center;
  width: 26px;
}

.claim-wording,
.claim-interpretation,
.claim-check {
  padding: 15px;
}

.claim-wording {
  background: var(--canvas);
  border-right: 1px solid var(--line-strong);
}

.claim-check {
  border-top: 1px solid var(--line-strong);
  grid-column: 1 / -1;
}

.claim-wording blockquote {
  border-left: 3px solid var(--gate);
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 16px;
  line-height: 1.5;
  margin: 9px 0;
  padding-left: 12px;
}

.claim-interpretation > p:not(.eyebrow),
.claim-check > p:not(.eyebrow) {
  line-height: 1.5;
  margin: 9px 0;
}

.claim-wording small,
.claim-interpretation small,
.claim-ledger-assurance,
.claim-ledger-empty {
  color: var(--muted);
  font-size: 12px;
}

.claim-source-list {
  display: grid;
  gap: 7px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.claim-source-list li {
  background: var(--ok-soft);
  border-left: 3px solid var(--ok);
  display: grid;
  gap: 3px;
  padding: 9px 11px;
}

.claim-source-list span {
  color: var(--muted);
  font-size: 12px;
}

.claim-specialist {
  background: var(--gate-soft);
  border-left: 3px solid var(--gate);
  padding: 9px 11px;
}

.claim-ledger-assurance {
  margin-top: 14px;
}

.copilot-briefing {
  background: #fbfaf7;
  border: 1px solid var(--line-strong);
  border-left: 5px solid var(--ok);
  border-radius: var(--radius);
  display: grid;
  gap: 18px;
  margin-top: 0;
  padding: 20px;
}

.analysis-briefing {
  background: var(--ok-soft);
  border-color: var(--ok);
}

.briefing-heading h3 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 26px;
  font-weight: 400;
  margin: 3px 0 7px;
}

.briefing-heading p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  max-width: 820px;
}

.briefing-heading .eyebrow {
  color: var(--ok);
}

.briefing-facts {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.briefing-facts div {
  border-left: 1px solid var(--line-strong);
  display: grid;
  gap: 5px;
  padding: 3px 16px;
}

.briefing-facts div:first-child {
  border-left: 0;
  padding-left: 0;
}

.briefing-facts dt,
.briefing-decision span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.briefing-facts dd {
  font-weight: 600;
  line-height: 1.4;
  margin: 0;
}

.briefing-decision {
  align-items: baseline;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  display: flex;
  gap: 12px;
  padding: 12px 14px;
}

.head-briefing-lead {
  align-items: stretch;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
}

.head-briefing-lead.single {
  grid-template-columns: 1fr;
}

.prepared-work-heading .eyebrow {
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.prepared-work-heading h4 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 21px;
  font-weight: 400;
  margin: 5px 0 7px;
}

.head-briefing-section > p:last-child,
.prepared-work-heading > p,
.prepared-work-item p,
.briefing-empty {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.head-briefing-grid {
  border-bottom: 1px solid var(--line-strong);
  border-top: 1px solid var(--line-strong);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.head-briefing-section {
  border-left: 1px solid var(--line-strong);
  padding: 16px 18px;
}

.head-briefing-section:first-child {
  border-left: 0;
  padding-left: 0;
}

.head-briefing-section:last-child {
  padding-right: 0;
}

.head-briefing-section > .eyebrow {
  margin-bottom: 8px;
}

.briefing-detail-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  margin: 9px 0 0;
}

.case-analysis-panel {
  background: linear-gradient(150deg, #f5f1e8 0%, #fbfaf6 65%);
  border: 1px solid #c9b990;
  border-radius: var(--radius);
  display: grid;
  gap: 20px;
  padding: 20px;
}

.case-analysis-panel.is-empty {
  background: var(--surface);
}

.analysis-run-status {
  align-items: center;
  border: 1px solid #c9b990;
  border-radius: var(--radius);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 12px 14px;
}

.analysis-run-status span {
  color: var(--muted);
  flex: 1 1 320px;
  line-height: 1.5;
}

.analysis-run-status.is-failed {
  border-color: #b4533c;
}

.case-analysis-heading {
  align-items: start;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.case-analysis-heading h4 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 24px;
  font-weight: 400;
  margin: 4px 0 7px;
}

.case-analysis-heading > div > p:last-of-type,
.case-analysis-assurance {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  max-width: 760px;
}

.analysis-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 8px;
  margin-top: 10px;
}

/* Contract 5: the review reads as prose in one column, with only the sections
   the case actually has. */
.analysis-review {
  display: grid;
  gap: 16px;
}

.analysis-review > section {
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 16px;
}

.analysis-about p:last-child,
.analysis-review li p {
  line-height: 1.55;
  margin-bottom: 0;
}

.analysis-review ul,
.analysis-review ol {
  display: grid;
  gap: 12px;
  margin: 10px 0 0;
  padding-left: 20px;
}

.analysis-review li strong {
  display: block;
}

.analysis-review li small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  margin-top: 4px;
}

.analysis-risk-who {
  color: var(--muted);
  font-size: 12px;
}

.analysis-review ul.analysis-options {
  gap: 4px;
  margin: 6px 0;
}

.analysis-review ul.analysis-options li {
  color: var(--muted);
  font-size: 13px;
}

.analysis-review .analysis-detail-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.analysis-executive {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
}

.analysis-executive > div,
.analysis-executive aside,
.analysis-priority-block,
.analysis-detail-grid section,
.analysis-best-practice,
.analysis-approach {
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 16px;
}

.analysis-executive > div > p:last-child,
.analysis-executive aside p,
.analysis-evidence-position p,
.analysis-approach p {
  line-height: 1.55;
  margin-bottom: 0;
}

.analysis-executive aside {
  background: var(--navy);
  color: var(--chrome-fg);
}

.analysis-executive aside > span,
.analysis-phase {
  color: var(--chrome-muted);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.analysis-executive aside strong {
  display: block;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 19px;
  font-weight: 400;
  line-height: 1.35;
  margin-top: 7px;
}

.analysis-executive aside p {
  color: var(--chrome-muted);
  font-size: 13px;
}

.analysis-evidence-position {
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding-top: 14px;
}

.analysis-evidence-position .eyebrow {
  align-items: center;
  display: flex;
  gap: 8px;
}

.analysis-evidence-position p {
  margin: 8px 0 6px;
}

.analysis-evidence-position small,
.analysis-best-practice small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  line-height: 1.45;
}

.analysis-priority-block ul,
.analysis-detail-grid ul,
.analysis-best-practice ul,
.analysis-approach ol {
  display: grid;
  gap: 10px;
  margin: 10px 0 0;
  padding-left: 20px;
}

.analysis-best-practice ul {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  padding-left: 0;
}

.analysis-best-practice li {
  border-left: 3px solid var(--ok);
  padding-left: 12px;
}

.analysis-best-practice li p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  margin: 4px 0 7px;
}

.analysis-priority-block ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  padding-left: 0;
}

.analysis-priority-block li {
  border-left: 3px solid var(--accent);
  display: grid;
  gap: 4px;
  padding-left: 12px;
}

.analysis-priority-block li span,
.analysis-detail-grid li,
.analysis-approach li p,
.analysis-approach li small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.analysis-detail-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.analysis-secondary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.analysis-watch-list li::marker {
  color: var(--gate);
}

.analysis-approach ol {
  list-style: none;
  padding-left: 0;
}

.analysis-approach li {
  align-items: start;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  grid-template-columns: 110px minmax(0, 1fr);
  padding-top: 10px;
}

.analysis-approach li:first-child {
  border-top: 0;
  padding-top: 0;
}

.analysis-phase {
  color: var(--accent);
  padding-top: 2px;
}

.analysis-approach li p {
  margin: 4px 0;
}

.case-analysis-assurance {
  border-top: 1px solid var(--line-strong);
  font-size: 12px;
  max-width: none;
  padding-top: 12px;
}

.briefing-check-list,
.briefing-watch-list,
.briefing-risk-list {
  display: grid;
  gap: 7px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.briefing-check-list li,
.briefing-watch-list li,
.briefing-risk-list li {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
  padding-left: 19px;
  position: relative;
}

.briefing-check-list li::before {
  color: var(--ok);
  content: "✓";
  font-weight: 700;
  left: 0;
  position: absolute;
}

.briefing-watch-list li::before {
  color: var(--gate);
  content: "!";
  font-weight: 700;
  left: 3px;
  position: absolute;
}

.briefing-risk-list {
  border-top: 1px solid var(--line);
  margin-top: 10px;
  padding-top: 10px;
}

.briefing-risk-list li {
  display: grid;
  gap: 8px;
  grid-template-columns: 8px minmax(0, 1fr);
  padding-left: 0;
}

.prepared-work-panel {
  display: grid;
  gap: 12px;
}

.prepared-work-heading {
  align-items: end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.prepared-work-heading .eyebrow,
.prepared-work-heading h4 {
  margin-bottom: 0;
  margin-top: 0;
}

.prepared-work-heading > p {
  font-size: 13px;
  max-width: 470px;
  text-align: right;
}

.prepared-work-list {
  display: grid;
  gap: 8px;
}

.prepared-work-item {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 13px 14px;
}

.prepared-work-item h5 {
  display: inline;
  font-size: 15px;
  margin: 0 0 0 8px;
}

.prepared-work-item h5 small {
  color: var(--muted);
  font-weight: 400;
}

.prepared-work-item p {
  font-size: 13px;
  margin-top: 6px;
}

.briefing-primary-action {
  align-items: center;
  background: var(--navy);
  border-radius: var(--radius);
  color: var(--chrome-fg);
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 16px 18px;
}

.briefing-primary-action .eyebrow {
  color: var(--chrome-muted);
  margin: 0 0 4px;
}

.briefing-primary-action strong {
  display: block;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 20px;
  font-weight: 400;
}

.briefing-primary-action small {
  color: var(--chrome-muted);
  display: block;
  margin-top: 4px;
}

.briefing-primary-action.is-complete {
  background: var(--ok-soft);
  color: var(--ink);
}

.briefing-primary-action.is-complete .eyebrow,
.briefing-primary-action.is-complete small {
  color: var(--ok);
}

.detail-introduction {
  border-top: 1px solid var(--line);
  margin-top: 26px;
  padding-top: 20px;
}

.detail-introduction h3 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  margin: 2px 0 5px;
}

.detail-introduction p {
  color: var(--muted);
  margin: 0;
}

.identity-toggle {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  max-width: 420px;
}

.identity-toggle p {
  flex-basis: 100%;
  text-align: right;
}

.tab-button {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--muted);
  min-height: 38px;
  padding: 8px 11px;
}

.tab-button.is-active {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--chrome-fg);
}

.view-toggle {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  color: var(--muted);
  min-height: 34px;
  padding: 7px 10px;
}

.view-toggle.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--chrome-fg);
}

.tab-panel {
  margin-top: 18px;
}

.procedure-layout {
  display: grid;
}

.procedure-focus-card {
  background: var(--accent-soft);
  border: 1px solid var(--accent);
  border-left: 5px solid var(--accent);
  border-radius: var(--radius);
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 20px;
}

.procedure-focus-card.overdue {
  border-color: var(--over);
  border-left-color: var(--over);
}

.procedure-focus-heading {
  align-items: start;
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.procedure-focus-heading .eyebrow,
.procedure-focus-heading h3 {
  grid-column: 1;
  margin: 0;
}

.procedure-focus-heading .status-pill {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.procedure-timeline {
  display: grid;
  gap: 8px;
}

.procedure-completeness {
  color: var(--muted);
  font-size: 14px;
  margin: 8px 0 0;
}

.compact-heading {
  margin-top: 4px;
}

.compact-heading h3 {
  font-size: 18px;
  margin: 0;
}

.procedure-step-details {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-left: 4px solid var(--line-strong);
  border-radius: var(--radius);
}

.procedure-step-details.overdue {
  border-left-color: var(--over);
}

.procedure-step-details.blocked {
  border-left-color: var(--gate);
}

.procedure-step-details.done {
  border-left-color: var(--ok);
}

.procedure-step-details.pending:not([open]) {
  opacity: 0.72;
}

.procedure-step-details summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  list-style: none;
  min-height: 52px;
  padding: 12px 14px;
}

.procedure-step-details summary::-webkit-details-marker {
  display: none;
}

.procedure-step-details summary::after {
  color: var(--accent);
  content: "+";
  font-family: "IBM Plex Mono", monospace;
  font-size: 18px;
}

.procedure-step-details[open] summary::after {
  content: "-";
}

.procedure-step-summary-title {
  color: var(--ink);
  font-weight: 600;
}

.procedure-step-details summary > span:last-of-type,
.procedure-step-summary-reason {
  color: var(--muted);
  font-size: 14px;
  text-align: right;
}

.procedure-step-details-body {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  padding: 14px;
}

.procedure-step-details-body > p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.task-guide {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  display: grid;
  gap: 10px;
  padding: 16px;
}

.task-guide p {
  margin: 0;
}

.task-guide-intro {
  font-size: 16px;
  line-height: 1.55;
}

.task-guide ol {
  display: grid;
  gap: 7px;
  line-height: 1.45;
  margin: 0;
  padding-left: 22px;
}

.task-assurance {
  background: var(--ok-soft);
  border-left: 3px solid var(--ok);
  color: var(--ok);
  font-size: 14px;
  line-height: 1.45;
  padding: 10px 12px;
}

.procedure-step-meta {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.procedure-step-meta div {
  border-left: 2px solid var(--line-strong);
  padding-left: 10px;
}

.procedure-step-meta dt {
  color: var(--muted);
  font-size: 12px;
}

.procedure-step-meta dd {
  margin: 3px 0 0;
}

.step-index {
  color: var(--muted);
}

.file-grid,
.correspondence-grid {
  grid-template-columns: minmax(0, 1fr) 320px;
}

.file-record {
  display: grid;
  gap: 18px;
}

.file-overview {
  align-items: start;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 18px;
}

.file-overview h3,
.case-story h3,
.file-evidence-card h3,
.bundle-assurance h3,
.bundle-materials h3 {
  margin: 0;
}

.file-overview > div > p:last-child,
.case-story .section-heading > p:last-child,
.bundle-assurance p,
.bundle-materials .section-heading > p:last-child {
  color: var(--muted);
  line-height: 1.5;
}

.file-overview > div > p:last-child {
  margin: 7px 0 0;
  max-width: 760px;
}

.file-overview > .status-pill {
  align-self: start;
}

.file-overview dl {
  display: grid;
  gap: 10px;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.file-overview dl div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
}

.file-overview dt,
.bundle-assurance dt,
.audit-detail dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.file-overview dd {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 22px;
  margin: 5px 0 0;
}

.case-story,
.file-evidence-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}

.case-story .section-heading,
.file-evidence-card .section-heading,
.bundle-materials .section-heading {
  margin-bottom: 14px;
}

.case-story .section-heading > p:last-child,
.bundle-materials .section-heading > p:last-child {
  margin: 6px 0 0;
}

.file-story,
.file-side-stack,
.file-evidence-list,
.bundle-highlights {
  display: grid;
  gap: 10px;
}

.case-story-event {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 12px;
  grid-template-columns: 5px minmax(0, 1fr);
  overflow: hidden;
  padding: 14px;
}

.case-story-marker {
  background: var(--accent);
  border-radius: 999px;
}

.case-story-event.gate .case-story-marker {
  background: var(--gate);
}

.case-story-event.document .case-story-marker,
.case-story-event.evidence .case-story-marker {
  background: var(--ok);
}

.case-story-event.panel .case-story-marker,
.case-story-event.follow-up .case-story-marker {
  background: var(--navy);
}

.case-story-event.system {
  background: var(--canvas);
}

.case-story-event.system .case-story-marker {
  background: var(--line-strong);
}

.case-story-meta {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.case-story-meta span {
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.case-story-meta time,
.case-story-event small,
.evidence-record small {
  color: var(--muted);
  font-size: 12px;
}

.case-story-event h4 {
  font-size: 16px;
  margin: 7px 0 4px;
}

.case-story-event p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0 0 7px;
}

.case-story-event .audit-reason {
  background: var(--canvas);
  border-left: 3px solid var(--accent);
  color: var(--ink);
  margin: 9px 0;
  padding: 8px 10px;
}

.audit-history {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin-top: 16px;
}

.audit-history > summary,
.bundle-full-record > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 700;
  gap: 14px;
  justify-content: space-between;
  padding: 14px 16px;
}

.audit-history > summary small,
.bundle-full-record > summary small {
  color: var(--muted);
  font-weight: 400;
}

.audit-history-intro {
  border-top: 1px solid var(--line);
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  padding: 14px 16px 0;
}

.timeline {
  border-left: 1px solid var(--line-strong);
  display: grid;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0 0 0 18px;
}

.timeline li {
  display: grid;
  gap: 4px;
  position: relative;
}

.timeline li::before {
  background: var(--accent);
  border-radius: 999px;
  content: "";
  height: 9px;
  left: -23px;
  position: absolute;
  top: 5px;
  width: 9px;
}

.timeline time {
  color: var(--muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
}

.audit-timeline {
  margin: 14px 16px 16px 34px;
}

.audit-timeline .case-story-event {
  border-color: var(--line);
}

.audit-detail {
  border-top: 1px solid var(--line);
  margin-top: 12px;
  padding-top: 10px;
}

.audit-detail > summary {
  color: var(--navy);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.audit-detail dl {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 12px 0;
}

.audit-detail dl div {
  background: var(--canvas);
  border-radius: var(--radius);
  min-width: 0;
  padding: 9px 10px;
}

.audit-detail dd {
  margin: 4px 0 0;
}

.audit-detail code {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  overflow-wrap: anywhere;
}

.file-evidence-card {
  background: var(--canvas);
}

.file-evidence-card > .button {
  margin-top: 14px;
  width: 100%;
}

.evidence-record {
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 10px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 12px;
}

.evidence-record h4 {
  font-size: 14px;
  margin: 1px 0 5px;
}

.evidence-record p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  margin: 0 0 6px;
}

.completeness-card {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}

.completeness-card strong {
  display: block;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 42px;
  font-weight: 400;
  margin-bottom: 12px;
}

.meter {
  background: var(--line);
  border-radius: 999px;
  display: block;
  height: 10px;
  margin-bottom: 14px;
  overflow: hidden;
}

.meter span {
  background: var(--accent);
  display: block;
  height: 100%;
}

.document-workspace-heading {
  align-items: end;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 18px;
}

.document-workspace-heading h3,
.document-work-item h3,
.document-work-item h4 {
  margin: 0;
}

.document-workspace-heading h3 {
  font-size: 22px;
}

.document-workspace-heading > div > p:last-child,
.document-work-item header p,
.document-work-body p,
.document-modal-context {
  color: var(--muted);
  line-height: 1.5;
}

.document-workspace-heading > div > p:last-child {
  margin: 7px 0 0;
  max-width: 720px;
}

.document-workspace-heading dl {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(108px, 1fr));
  margin: 0;
}

.document-workspace-heading dl div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
}

.document-workspace-heading dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.document-workspace-heading dd {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 28px;
  line-height: 1;
  margin: 6px 0 0;
}

.document-workspace-list {
  display: grid;
  gap: 14px;
}

.document-work-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 5px solid var(--gate);
  border-radius: var(--radius);
  overflow: hidden;
}

.document-work-item.approved {
  border-left-color: var(--accent);
}

.document-work-item.sent {
  background: linear-gradient(90deg, var(--ok-soft), var(--surface) 28%);
  border-left-color: var(--ok);
}

.document-work-item.rejected {
  border-left-color: var(--over);
}

.document-work-item > header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 18px 20px 0;
}

.document-work-item header p {
  font-size: 13px;
  margin: 6px 0 0;
}

.document-work-body {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 16px 20px 20px;
}

.document-work-body h4 {
  font-size: 17px;
}

.document-work-body p {
  margin: 6px 0 0;
}

.document-work-body blockquote {
  background: var(--canvas);
  border-left: 3px solid var(--line-strong);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  margin: 14px 0 0;
  padding: 10px 12px;
}

.document-work-actions {
  align-content: start;
  display: grid;
  gap: 9px;
  min-width: 180px;
}

.document-history {
  border-top: 1px solid var(--line);
}

.document-history summary {
  align-items: center;
  color: var(--navy);
  cursor: pointer;
  display: flex;
  font-weight: 600;
  gap: 12px;
  justify-content: space-between;
  padding: 13px 20px;
}

.document-history summary small,
.document-history li small {
  color: var(--muted);
  font-weight: 400;
}

.document-history ol {
  border-top: 1px solid var(--line);
  list-style: none;
  margin: 0;
  padding: 0 20px 8px;
}

.document-history li {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 0;
}

.document-history li:last-child {
  border-bottom: 0;
}

.document-history li small {
  display: block;
  margin-top: 4px;
}

.document-modal-context {
  margin: 7px 0 0;
}

.correspondence-item,
.holding-pen article {
  margin-bottom: 10px;
  padding: 14px;
}

.holding-pen {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}

.bundle-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.bundle-assurance {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr);
  margin-bottom: 18px;
  padding: 18px;
}

.bundle-assurance-lead {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(0, 1fr);
}

.bundle-assurance-mark {
  align-items: center;
  background: var(--ok-soft);
  border: 1px solid rgb(47 107 79 / 28%);
  border-radius: 999px;
  color: var(--ok);
  display: inline-flex;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.bundle-assurance-mark.warning {
  background: var(--gate-soft);
  border-color: #d8bc78;
  color: var(--gate);
}

.bundle-assurance p {
  margin: 6px 0 0;
}

.bundle-assurance dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.bundle-assurance dl div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
}

.bundle-assurance dd {
  margin: 4px 0 0;
}

.bundle-materials {
  margin: 20px 0;
}

.bundle-highlights {
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.bundle-highlights .bundle-record {
  grid-template-columns: 1fr;
}

.bundle-record {
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 14px;
}

.bundle-record h3 {
  font-size: 15px;
  margin: 0 0 5px;
}

.bundle-record p {
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
}

.bundle-record time {
  color: var(--muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  white-space: nowrap;
}

.bundle-full-record {
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.bundle-full-record .bundle-list {
  border-top: 1px solid var(--line);
  padding: 0 14px;
}

.bundle-list li {
  align-items: center;
  display: grid;
  gap: 14px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 16px;
}

.bundle-list .bundle-record {
  border-width: 0 0 1px;
  border-radius: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.bundle-list .bundle-record:last-child {
  border-bottom: 0;
}

.bundle-list > li > span {
  color: var(--accent);
}

.bundle-list time {
  color: var(--muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
}

.concern-card {
  align-items: center;
  background: var(--canvas);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: 16px;
  padding: 16px;
}

.stage-actions {
  margin-top: 16px;
}

.plain-list {
  margin: 0;
  padding-left: 18px;
}

.plain-list li + li {
  margin-top: 8px;
}

.panel-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.panel-member,
.setup-summary,
.panel-readout article,
.finding-item,
.flag-item,
.board-card,
.report-grid article,
.diff-pane {
  background: var(--canvas);
  padding: 16px;
}

.panel-member.ready {
  border-left: 5px solid var(--ok);
}

.panel-member.conflict {
  border-left: 5px solid var(--over);
}

.panel-member.pending {
  border-left: 5px solid var(--gate);
}

.compact-dl {
  display: grid;
  gap: 8px;
  margin: 12px 0 16px;
}

.compact-dl div {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
}

.compact-dl dt {
  color: var(--muted);
}

.compact-dl dd {
  font-weight: 600;
  margin: 0;
}

.panel-readout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 16px;
}

.finding-list {
  margin-bottom: 16px;
}

.finding-item {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.record-warning {
  background: var(--gate-soft);
  border: 1px solid #d8bc78;
  border-radius: var(--radius);
  color: var(--gate);
  font-weight: 600;
  line-height: 1.45;
  margin-bottom: 14px;
  padding: 13px 16px;
}

.permission-note {
  background: var(--accent-soft);
  border-left: 4px solid var(--accent);
  color: var(--ink);
  line-height: 1.5;
  margin: 12px 0 18px;
  padding: 12px 14px;
}

.flag-item {
  align-items: center;
  display: grid;
  gap: 14px;
  grid-template-columns: 5px minmax(0, 1fr) auto;
  overflow: hidden;
}

.flag-item .severity-bar {
  background: var(--gate);
}

.board-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.board-column {
  align-content: start;
  background: #fbfaf7;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  gap: 10px;
  padding: 14px;
}

.board-card strong {
  display: block;
  font-size: 13px;
  margin-top: 10px;
}

.report-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 16px;
}

.report-grid strong {
  display: block;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 8px;
}

.diff-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.diff-pane {
  background: #fbfaf7;
  overflow: hidden;
  padding: 0;
}

.diff-header {
  background: var(--navy);
  color: var(--chrome-fg);
  font-weight: 600;
  padding: 11px 14px;
}

.diff-pane pre {
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
  overflow: auto;
  padding: 14px;
  white-space: pre-wrap;
}

.modal,
.drawer {
  background: rgb(15 42 69 / 48%);
  inset: 0;
  position: fixed;
  z-index: 40;
}

.modal {
  display: grid;
  padding: 24px;
  place-items: center;
}

/* The decision modal always asks about whatever is already open behind it --
   approving the document in the editor, confirming a step in a drawer -- so it
   sits above every other overlay rather than losing to DOM order. */
#decision-modal {
  z-index: 60;
}

.modal-panel,
.drawer-panel {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  max-height: calc(100vh - 48px);
  overflow: auto;
}

.modal-panel {
  max-width: 720px;
  padding: 22px;
  width: min(720px, 100%);
}

.editor-panel {
  max-width: 880px;
  width: min(880px, 100%);
}

.decision-panel {
  max-width: 760px;
  width: min(760px, 100%);
}

.decision-context {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 16px;
  padding: 14px;
}

.decision-context p {
  margin: 0;
}

.decision-context p + p {
  margin-top: 8px;
}

.decision-form {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.decision-form input,
.decision-form select,
.decision-form textarea {
  background: #fbfaf7;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--ink);
  line-height: 1.45;
  min-height: 40px;
  padding: 9px 10px;
  width: 100%;
}

.decision-form textarea {
  resize: vertical;
}

.decision-options {
  display: grid;
  gap: 8px;
}

.decision-options label,
.decision-check {
  align-items: flex-start;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  display: flex;
  gap: 10px;
  line-height: 1.45;
  padding: 10px;
}

.decision-options input,
.decision-check input {
  flex: 0 0 auto;
  margin-top: 3px;
  min-height: auto;
  width: auto;
}

.drawer {
  display: flex;
  justify-content: flex-end;
}

.drawer-panel {
  height: 100%;
  padding: 22px;
  width: min(460px, 100%);
}

.modal-header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.modal-header h2 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 26px;
  font-weight: 400;
  margin: 0;
}

.icon-button {
  align-items: center;
  background: var(--canvas);
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--ink);
  display: inline-flex;
  font-weight: 600;
  height: 36px;
  justify-content: center;
  width: 36px;
}

.redaction-preview {
  background: #fbfaf7;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}

.redaction-preview p + p {
  margin-top: 12px;
}

.intake-redaction-text {
  max-height: 420px;
  overflow-y: auto;
  white-space: pre-wrap;
}

.intake-redaction-choice {
  display: block;
  margin-top: 6px;
}

mark {
  background: var(--accent-soft);
  border-radius: 4px;
  color: var(--accent);
  padding: 1px 4px;
}

.draft-banner {
  background: var(--gate-soft);
  border: 1px solid #d8bc78;
  border-radius: var(--radius);
  color: var(--gate);
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 14px;
  padding: 11px 14px;
}

.evidence-list label {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 10px;
  padding: 12px 0;
}

@media (max-width: 1120px) {
  .screen-grid.two-one,
  .screen-grid.main-aside,
  .file-grid,
  .correspondence-grid,
  .panel-grid,
  .panel-readout,
  .board-grid,
  .report-grid,
  .diff-grid {
    grid-template-columns: 1fr;
  }

  .summary-grid,
  .track-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    min-height: 0;
  }

  .topbar,
  .topbar-actions,
  .section-heading.with-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .head-briefing-lead,
  .case-action-anchor,
  .head-briefing-grid,
  .analysis-executive,
  .analysis-detail-grid,
  .analysis-secondary-grid,
  .claim-ledger-item,
  .claim-ledger-summary,
  .document-workspace-heading,
  .document-work-body,
  .file-overview,
  .bundle-assurance {
    grid-template-columns: 1fr;
  }

  .claim-wording {
    border-bottom: 1px solid var(--line-strong);
    border-right: 0;
  }

  .analysis-priority-block ul,
  .analysis-best-practice ul {
    grid-template-columns: 1fr;
  }

  .document-work-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .head-briefing-section,
  .head-briefing-section:first-child,
  .head-briefing-section:last-child {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 14px 0;
  }

  .head-briefing-section:first-child {
    border-top: 0;
  }

  .briefing-facts {
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .briefing-facts div,
  .briefing-facts div:first-child {
    border-left: 0;
    padding: 0;
  }

  .case-journey-list,
  .role-grid,
  .summary-grid,
  .track-grid {
    grid-template-columns: 1fr;
  }

  .file-overview dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-journey-list li + li {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .case-heading-actions {
    align-items: stretch;
  }

  .case-controls-panel {
    left: 0;
    right: auto;
  }
}

@media (max-width: 620px) {
  .signin-view,
  .shell-view {
    padding: 22px;
  }

  .signin-brand h1 {
    font-size: 34px;
  }

  .topbar h1 {
    font-size: 28px;
  }

  .attention-item,
  .risk-item,
  .step-card,
  .route-card,
  .bundle-list li,
  .concern-card,
  .finding-item,
  .flag-item {
    grid-template-columns: 1fr;
  }

  .briefing-facts {
    grid-template-columns: 1fr;
  }

  .briefing-decision {
    align-items: flex-start;
    flex-direction: column;
  }

  .case-analysis-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .claim-ledger-heading,
  .claim-ledger-detail > summary {
    align-items: stretch;
    flex-direction: column;
  }

  .analysis-approach li {
    grid-template-columns: 1fr;
  }

  .prepared-work-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .prepared-work-heading > p {
    text-align: left;
  }

  .prepared-work-item,
  .briefing-primary-action {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .checked-procedure {
    grid-template-columns: 1fr;
  }

  .document-workspace-heading dl,
  .document-work-actions,
  .document-history li,
  .file-overview dl,
  .audit-detail dl,
  .bundle-highlights,
  .bundle-record,
  .bundle-list .bundle-record {
    grid-template-columns: 1fr;
  }

  .document-work-item > header,
  .document-history summary,
  .workspace-disclosure > summary,
  .analysis-supporting-detail > summary,
  .audit-history > summary,
  .bundle-full-record > summary,
  .case-story-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .case-workspace-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }

  .case-workspace-tabs .tab-button {
    border-bottom: 0;
    border-left: 3px solid transparent;
    text-align: left;
  }

  .case-workspace-tabs .tab-button.is-active {
    background: var(--accent-soft);
    border-bottom: 0;
    border-left-color: var(--accent);
  }

  .attention-item .severity-bar,
  .risk-item .severity-bar,
  .flag-item .severity-bar {
    height: 5px;
  }
}

/* ---------------------------------------------------------------------------
   Action plan and My work
   --------------------------------------------------------------------------- */

.action-plan {
  margin-top: 6px;
}
.plan-empty {
  background: var(--accent-soft);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.plan-empty p {
  margin: 0 0 8px;
}
.plan-assurance,
.plan-draft-note {
  color: var(--muted);
  font-size: 0.86rem;
  margin: 12px 0 0;
}
.plan-heading {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}
.plan-summary {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  background: var(--line);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  margin: 0 0 18px;
  overflow: hidden;
}
.plan-summary div {
  background: var(--surface);
  padding: 11px 14px;
}
.plan-summary dt {
  color: var(--muted);
  font-size: 0.76rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.plan-summary dd {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 3px 0 0;
}
.plan-action-list {
  display: grid;
  gap: 14px;
}
.plan-action {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 16px 18px;
}
.plan-action.is-overdue {
  border-left-color: var(--over);
}
.plan-action.is-withdrawn {
  opacity: 0.72;
}
.plan-action-heading {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}
.plan-action-heading h4 {
  font-size: 1.02rem;
  margin: 2px 0 0;
}
.plan-action-rationale {
  color: var(--muted);
  margin: 10px 0 0;
}
.plan-action-meta {
  display: grid;
  gap: 10px 22px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  margin: 14px 0 0;
}
.plan-action-meta dt {
  color: var(--muted);
  font-size: 0.76rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.plan-action-meta dd {
  margin: 3px 0 0;
}
.plan-action-notes {
  background: var(--gate-soft);
  border-radius: var(--radius);
  list-style: none;
  margin: 14px 0 0;
  padding: 12px 16px;
}
.plan-action-notes li + li {
  margin-top: 6px;
}
.plan-action .button-row {
  margin-top: 14px;
}
.plan-versions,
.plan-withdrawn {
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  margin-top: 18px;
}
.plan-versions > summary,
.plan-withdrawn > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 600;
  gap: 16px;
  justify-content: space-between;
  list-style-position: inside;
  padding: 13px 16px;
}
.plan-versions > summary small,
.plan-withdrawn > summary small {
  color: var(--muted);
  font-weight: 400;
}
.plan-version-list {
  margin: 4px 16px 16px 30px;
  padding: 0 0 0 18px;
}
.plan-version-list span,
.plan-version-list small {
  color: var(--muted);
  display: block;
}

.plan-action-heading-side {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 8px;
}

.plan-reorder {
  display: flex;
  gap: 4px;
}

.plan-reorder .icon-button {
  font-size: 15px;
  height: 28px;
  width: 28px;
}

.plan-reorder .icon-button[disabled] {
  color: var(--muted);
  cursor: not-allowed;
  opacity: 0.45;
}

.decision-options label.decision-option-detailed {
  align-items: flex-start;
}

.decision-options label small {
  color: var(--muted);
  display: block;
  margin-top: 3px;
}
.plan-withdrawn .plan-action-list {
  padding: 4px 16px 16px;
}

.my-work-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}
.my-work-item {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.my-work-item.is-overdue {
  border-left-color: var(--over);
}
.my-work-heading {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}
.my-work-heading h3 {
  font-size: 1.05rem;
  margin: 2px 0 0;
}

/* Investigation: each complaint point and what has been decided about it. */
.investigation-panel {
  border-bottom: 1px solid var(--line);
  margin-bottom: 20px;
  padding-bottom: 20px;
}

.investigation-heading {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.investigation-heading h4 {
  font-size: 1.05rem;
  margin: 2px 0 0;
}

.investigation-gate {
  background: #fbf7ec;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  margin: 12px 0 0;
  padding: 10px 12px;
}

.investigation-warning {
  background: #fdf2f0;
  border: 1px solid #e6c3bb;
  border-radius: var(--radius);
  margin: 10px 0 0;
  padding: 10px 12px;
}

.investigation-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.investigation-point {
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}

.investigation-point h4 {
  font-size: 1rem;
  margin: 2px 0 0;
}

.investigation-detail {
  margin-top: 12px;
}

.investigation-detail > summary {
  align-items: baseline;
  cursor: pointer;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.investigation-detail > summary small {
  color: var(--muted);
}

.investigation-columns {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-top: 14px;
}

.investigation-column .eyebrow {
  margin-bottom: 6px;
}

.investigation-empty {
  color: var(--muted);
  margin: 0;
}

.investigation-claims,
.investigation-evidence,
.investigation-tasks {
  display: grid;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.investigation-claims blockquote {
  border-left: 2px solid var(--line-strong);
  color: var(--ink);
  margin: 0 0 6px;
  padding-left: 10px;
}

.investigation-claims p,
.investigation-claims small,
.investigation-evidence small {
  color: var(--muted);
  display: block;
  margin: 0;
}

.investigation-evidence strong {
  display: block;
  margin-top: 4px;
}

.investigation-finding {
  background: #f7f6f2;
  border-radius: var(--radius);
  margin-top: 14px;
  padding: 12px;
}

.investigation-remedy {
  margin: 8px 0 0;
}

.resolution-section {
  margin-block: 1rem;
}

.resolution-card {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 0.75rem;
  background: var(--paper, #fff);
}

.resolution-summary,
.resolution-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1rem;
}

.resolution-summary span,
.resolution-detail-grid h4 {
  font-weight: 650;
}

.resolution-card footer,
.promise-row-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.resolution-card footer > div:first-child {
  display: grid;
  gap: 0.4rem;
}

.promises-section {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line, #d7d2c8);
}

.promise-row {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line, #d7d2c8);
}

.my-work-group + .my-work-group {
  margin-top: 2rem;
}

/* ---------------------------------------------------------------------------
   Phase 9 -- governed sources
   --------------------------------------------------------------------------- */

.section-lede {
  color: var(--muted);
  margin: 6px 0 0;
  max-width: 68ch;
}

.support-tag {
  vertical-align: middle;
}

.source-row {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin-bottom: 12px;
  padding: 14px 16px;
}

.source-row-main {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.source-row h4 {
  margin: 0;
}

.source-meta {
  color: var(--muted);
  margin: 4px 0 0;
}

.source-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* Gaps in the library read as warnings, not as decoration. */
.source-warnings {
  color: var(--warning-text, #7a4a00);
  margin: 10px 0 0;
  padding-left: 18px;
}

.source-detail {
  margin-top: 10px;
}

.source-detail summary {
  color: var(--muted);
  cursor: pointer;
}

.detail-list {
  display: grid;
  gap: 4px 14px;
  grid-template-columns: minmax(120px, max-content) 1fr;
  margin: 10px 0 0;
}

.detail-list dt {
  color: var(--muted);
  font-weight: 600;
}

.detail-list dd {
  margin: 0;
}

.source-review-banner {
  align-items: center;
  background: #fdf6e6;
  border: 1px solid #e2c98a;
  border-radius: var(--radius);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 14px 18px;
}

.source-review-banner p {
  margin: 4px 0 0;
}

.source-review-affected {
  color: var(--muted);
}

.source-review-banner .button {
  white-space: nowrap;
}

.impact-review-panel {
  background: #fdf6e6;
  border: 1px solid #d6b96f;
  border-radius: var(--radius);
  margin-bottom: 18px;
  padding: 18px;
}

.impact-review-heading,
.impact-review-item {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.impact-review-heading h3,
.impact-review-group h4 {
  margin: 4px 0;
}

.impact-review-heading p,
.impact-review-group > p,
.impact-review-item p {
  margin: 5px 0 0;
}

.impact-review-group {
  border-top: 1px solid #e2c98a;
  margin-top: 16px;
  padding-top: 14px;
}

.impact-review-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.impact-review-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) - 2px);
  padding: 12px 14px;
}

.impact-review-item small {
  color: var(--muted);
  display: block;
  margin-top: 3px;
}

.impact-change-detail {
  margin-top: 9px;
}

.impact-change-detail summary {
  color: var(--accent);
  cursor: pointer;
  font-weight: 600;
}

.impact-change-detail div {
  border-left: 3px solid var(--line);
  margin-top: 8px;
  padding-left: 10px;
}

.impact-sent-note,
.impact-coverage-note {
  color: var(--muted);
  font-size: 13px;
}

.historical-exports {
  border-top: 1px solid var(--line);
  margin-top: 24px;
  padding-top: 20px;
}

.export-history-list {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.export-history-list li {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 12px 14px;
}

.export-history-list small {
  color: var(--muted);
  display: block;
  margin-top: 3px;
}

.impact-coverage-note {
  border-top: 1px solid #e2c98a;
  margin: 16px 0 0;
  padding-top: 12px;
}

.confirmed-procedure-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 18px;
}

.confirmed-procedure-card.unconfirmed {
  background: #fdf6e6;
  border-color: #e2c98a;
}

.confirmed-procedure-card h4 {
  margin: 8px 0 0;
}

.escalation-route {
  margin: 10px 0 0;
}

@media (max-width: 900px) {
  .source-row-main,
  .source-review-banner,
  .impact-review-heading,
  .impact-review-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .detail-list {
    grid-template-columns: 1fr;
  }
}

/* Imported documents use the existing case-record type and colour system. */
.import-upload { display:flex; flex-wrap:wrap; gap:1rem; align-items:end; margin:1rem 0; }
.import-record { border-top:1px solid var(--border, #d5d5cf); padding:1rem 0; }
.import-record li { padding:.6rem; }
.import-review { width:min(1050px, 94vw); max-height:90vh; padding:2rem; border:1px solid #a6b4af; border-radius:12px; background:#fafbf8; color:#183e35; }
.import-review::backdrop { background:#152f2aaa; }
.import-review-columns { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.import-review pre { white-space:pre-wrap; overflow-wrap:anywhere; max-height:40vh; overflow:auto; font:inherit; background:white; padding:1rem; }
.import-review textarea { width:100%; }
.cloud-workspaces { padding:.75rem 1rem; display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; border-bottom:1px solid #ccd7ce; }
@media(max-width:650px) { .import-review-columns {grid-template-columns:1fr;} }

.analysis-safeguarding-flag {
  background: var(--gate-soft);
  border: 1px solid var(--gate);
  border-left-width: 4px;
  border-radius: var(--radius);
  color: var(--ink);
  margin-bottom: 16px;
  padding: 12px 16px;
}

.analysis-safeguarding-flag strong {
  color: var(--gate);
  display: block;
}

.analysis-safeguarding-flag ul,
.analysis-safeguarding-flag p {
  margin: 8px 0 0;
}

.add-material { width:min(760px, 94vw); max-height:90vh; overflow:auto; padding:2rem; border:1px solid #a6b4af; border-radius:12px; background:#fafbf8; color:#183e35; }
.add-material::backdrop { background:#152f2aaa; }
.add-material textarea, .add-material input[type=text] { width:100%; }
.add-material-part { margin-bottom:1.25rem; }
.add-material-part .intake-redaction-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:40vh; overflow:auto; background:white; padding:1rem; }
.add-material-missed { display:flex; gap:.75rem; align-items:flex-end; }
.add-material-missed .field-label { flex:1; }

.response-outcome-list { display: grid; gap: 16px; padding-left: 20px; }
.response-outcome textarea { width: 100%; }
.response-outcome .status-pill { margin-bottom: 8px; }

/* Parked features stay in the code but out of the main UI (?parked=1 shows them). */
:root:not([data-parked="shown"]) [data-parked] {
  display: none !important;
}

.complaint-source-text {
  background: var(--surface, transparent);
  border: 1px solid var(--line);
  border-radius: 8px;
  line-height: 1.55;
  padding: 14px 16px;
  white-space: pre-wrap;
}

.complaint-source-section h4 {
  margin: 18px 0 8px;
}

.stage-control {
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 16px 18px;
}

.stage-control h3 {
  margin: 2px 0 6px;
}

.stage-control.is-confirmed {
  border-color: var(--line);
  padding: 10px 16px;
}

.stage-control.is-confirmed p {
  margin: 0;
}

.stage-control-decision {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.stage-control-decision .field-label {
  flex: 1 1 240px;
}
