:root {
  --font-ui: "Avenir Next", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ink: #22383b;
  --muted: #617779;
  --line: #c9dcdd;
  --paper: #e9f1ef;
  --surface: #f8fbf9;
  --surface-quiet: #f2f7f5;
  --surface-warm: #faf7ef;
  --surface-cool: #eef6f6;
  --accent: #17746f;
  --accent-dark: #15585a;
  --accent-soft: #e7f4f1;
  --accent-rule: #9fc9c7;
  --warn: #9a6a16;
  --block: #a84a43;
  --pass: #267b55;
  --review: #65727c;
  --danger: var(--block);
  --shadow: 0 8px 24px rgba(30, 58, 64, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(247, 251, 249, 0.5), rgba(233, 241, 239, 0.94)),
    var(--paper);
  font-family: var(--font-ui);
  letter-spacing: 0;
  font-weight: 400;
}

button,
input,
select {
  font: inherit;
}

.topbar {
  height: 58px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(248, 251, 249, 0.94);
  backdrop-filter: blur(14px);
  position: sticky;
  top: 0;
  z-index: 10;
}

.topbar-brand {
  display: flex;
  align-items: baseline;
  gap: 22px;
  min-width: 0;
}

.brand {
  font-weight: 560;
  letter-spacing: 0.06em;
  color: var(--accent-dark);
  font-size: 13px;
  text-transform: uppercase;
  white-space: nowrap;
}

.product-title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  min-width: 0;
}

.release-pill,
.status,
.tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-cool);
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.role-mode,
.session-mode {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.role-mode span,
.session-mode span {
  white-space: nowrap;
}

.session-mode {
  margin-left: auto;
  min-height: 42px;
  padding: 4px 6px 4px 8px;
  border: 1px solid #d8e5e8;
  border-radius: 999px;
  background: var(--surface);
}

.session-mode select {
  min-width: 220px;
  min-height: 32px;
  border: 0;
  background: transparent;
  padding: 4px 28px 4px 2px;
  color: var(--ink);
  font-weight: 500;
}

.session-mode select {
  width: min(280px, 28vw);
}

.session-mode select:focus {
  outline: 2px solid rgba(13, 93, 97, 0.18);
  outline-offset: 2px;
}

.auth-action {
  min-height: 30px;
  padding: 5px 12px;
  font-size: 12px;
}

.session-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 560;
}

.session-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.session-copy strong {
  max-width: 190px;
  overflow: hidden;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-copy small {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.1;
}

.connection-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #d0d5dd;
}

.connection-dot.connected {
  background: var(--pass);
}

.connection-dot.offline,
.connection-dot.error {
  background: var(--block);
}

.hidden-control,
.permission-hidden {
  display: none !important;
}

.auth-required .shell {
  display: none;
}

.onboarding-self-service .shell {
  display: none;
}

.auth-gate {
  min-height: calc(100vh - 58px);
  display: grid;
  place-items: center;
  padding: 34px;
  background:
    linear-gradient(115deg, rgba(230, 241, 238, 0.94), rgba(247, 244, 235, 0.88)),
    var(--paper);
}

.auth-gate[hidden] {
  display: none;
}

.auth-gate-panel {
  width: min(980px, 100%);
  min-height: 480px;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(320px, 0.86fr);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  box-shadow: 0 28px 80px rgba(34, 56, 59, 0.16);
  overflow: hidden;
}

.auth-gate-panel p:not(.eyebrow) {
  color: var(--muted);
  font-size: 15px;
}

.auth-login-card {
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 46px;
  background: var(--surface);
}

.auth-login-card h1 {
  max-width: 360px;
  color: var(--ink);
  font-size: 34px;
  font-weight: 500;
  line-height: 1.08;
}

.auth-login-card p:not(.eyebrow) {
  max-width: 360px;
  margin-bottom: 12px;
  line-height: 1.55;
}

.auth-login-card .primary {
  width: fit-content;
  min-width: 140px;
}

.auth-graphic {
  position: relative;
  min-height: 480px;
  background:
    radial-gradient(circle at 74% 18%, rgba(231, 244, 241, 0.95), transparent 28%),
    linear-gradient(135deg, var(--surface-warm), var(--surface-cool)),
    var(--surface-warm);
  overflow: hidden;
}

.auth-graphic::before,
.auth-graphic::after {
  content: "";
  position: absolute;
  inset: auto;
  border: 1px solid rgba(21, 88, 90, 0.14);
  background: rgba(248, 251, 249, 0.58);
}

.auth-graphic::before {
  left: -20px;
  top: 62px;
  width: 190px;
  height: 310px;
  border-radius: 0 8px 8px 0;
}

.auth-graphic::after {
  right: -28px;
  bottom: -18px;
  width: 260px;
  height: 190px;
  border-radius: 8px 0 0 0;
}

.auth-pharmacy-scene {
  position: absolute;
  inset: 34px;
}

.pharmacy-mark,
.rx-badge,
.prescription-card,
.vial-rack,
.pharmacy-evidence-card,
.pharmacy-transfer-card {
  position: absolute;
  z-index: 1;
}

.pharmacy-mark {
  right: 34px;
  top: 30px;
  width: 86px;
  height: 86px;
  border: 1px solid rgba(21, 88, 90, 0.16);
  border-radius: 50%;
  background: rgba(248, 251, 249, 0.72);
  box-shadow: 0 10px 24px rgba(34, 56, 59, 0.08);
}

.pharmacy-mark::before,
.pharmacy-mark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: rgba(23, 116, 111, 0.42);
  border-radius: 999px;
  transform: translate(-50%, -50%);
}

.pharmacy-mark::before {
  width: 14px;
  height: 52px;
}

.pharmacy-mark::after {
  width: 52px;
  height: 14px;
}

.rx-badge {
  display: grid;
  place-items: center;
  left: 34px;
  top: 28px;
  width: 92px;
  height: 92px;
  border: 1px solid rgba(21, 88, 90, 0.18);
  border-radius: 50%;
  background: rgba(248, 251, 249, 0.88);
  color: var(--accent-dark);
  font-size: 24px;
  font-weight: 500;
  box-shadow: 0 12px 26px rgba(34, 56, 59, 0.1);
}

.prescription-card {
  left: 74px;
  top: 138px;
  width: min(68%, 320px);
  min-height: 210px;
  padding: 22px;
  border: 1px solid rgba(21, 88, 90, 0.16);
  border-radius: 8px;
  background: rgba(248, 251, 249, 0.9);
  box-shadow: 0 18px 40px rgba(34, 56, 59, 0.1);
}

.prescription-card::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(23, 116, 111, 0.22);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(231, 244, 241, 0.9), rgba(250, 247, 239, 0.9));
}

.prescription-kicker,
.prescription-title,
.prescription-line,
.prescription-chip {
  display: block;
  margin-left: 58px;
}

.prescription-kicker {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.prescription-title {
  margin-top: 7px;
  color: var(--ink);
  font-size: 18px;
}

.prescription-line {
  height: 8px;
  margin-top: 18px;
  border-radius: 999px;
  background: rgba(97, 119, 121, 0.16);
}

.prescription-line-a {
  width: 72%;
}

.prescription-line-b {
  width: 58%;
}

.prescription-line-c {
  width: 64%;
}

.prescription-chip {
  width: fit-content;
  margin-top: 20px;
  padding: 7px 10px;
  border: 1px solid rgba(154, 106, 22, 0.22);
  border-radius: 999px;
  background: #faf2df;
  color: var(--warn);
  font-size: 12px;
}

.vial-rack {
  right: 42px;
  bottom: 46px;
  display: flex;
  align-items: end;
  gap: 10px;
  min-height: 136px;
  padding: 20px 18px 18px;
  border: 1px solid rgba(21, 88, 90, 0.16);
  border-radius: 8px;
  background: rgba(248, 251, 249, 0.72);
  box-shadow: 0 14px 32px rgba(34, 56, 59, 0.1);
}

.vial {
  position: relative;
  display: block;
  width: 34px;
  height: 96px;
  border: 1px solid rgba(21, 88, 90, 0.22);
  border-radius: 7px 7px 10px 10px;
  background:
    linear-gradient(180deg, transparent 0 42%, rgba(231, 244, 241, 0.9) 42% 100%),
    rgba(248, 251, 249, 0.92);
}

.vial::before {
  content: "";
  position: absolute;
  left: 7px;
  top: -13px;
  width: 18px;
  height: 12px;
  border: 1px solid rgba(21, 88, 90, 0.22);
  border-radius: 4px 4px 2px 2px;
  background: rgba(21, 88, 90, 0.16);
}

.vial-b {
  height: 116px;
}

.vial-c {
  height: 84px;
}

.pharmacy-evidence-card,
.pharmacy-transfer-card {
  display: grid;
  gap: 4px;
  width: 190px;
  padding: 14px;
  border: 1px solid rgba(21, 88, 90, 0.16);
  border-radius: 8px;
  background: rgba(238, 246, 246, 0.9);
  box-shadow: 0 12px 28px rgba(34, 56, 59, 0.08);
}

.pharmacy-evidence-card {
  left: 34px;
  bottom: 42px;
}

.pharmacy-transfer-card {
  right: 34px;
  top: 152px;
}

.pharmacy-evidence-card span,
.pharmacy-transfer-card span {
  color: var(--muted);
  font-size: 12px;
}

.pharmacy-evidence-card strong,
.pharmacy-transfer-card strong {
  color: var(--ink);
  font-size: 14px;
}

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

.sidebar {
  border-right: 1px solid var(--line);
  background: var(--surface-quiet);
  padding: 14px 10px;
}

.nav-button {
  width: 100%;
  min-height: 37px;
  text-align: left;
  padding: 8px 11px;
  margin-bottom: 3px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #344054;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
}

.nav-button:hover,
.nav-button.active {
  background: #ecfdf8;
  border-color: #bfe8df;
  color: var(--accent-dark);
}

.workspace {
  min-width: 0;
  padding: 20px 22px;
}

.portal-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
  margin-bottom: 16px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfa;
}

.portal-action-context {
  display: flex;
  align-items: baseline;
  gap: 9px;
  min-width: 0;
}

.portal-action-context .eyebrow {
  margin: 0;
}

.portal-action-context strong {
  color: var(--accent-dark);
  font-size: 12px;
}

.portal-action-buttons,
.contracts-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.contracts-toolbar {
  align-items: flex-start;
}

.contracts-toolbar .muted {
  margin: 4px 0 0;
}

.contracts-filters input,
.contracts-filters select {
  min-height: 34px;
  max-width: 280px;
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.view-header,
.panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.view-header {
  margin-bottom: 18px;
}

.eyebrow {
  margin: 0 0 4px;
  color: #557a80;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  color: var(--accent-dark);
  font-family: var(--font-ui);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
}

h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.button-row,
.inline-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.inline-form {
  margin-bottom: 14px;
}

.inline-form.vertical {
  align-items: stretch;
  flex-direction: column;
}

.report-form {
  align-items: flex-start;
}

.report-form select {
  min-width: 220px;
}

.report-access-hint {
  margin: -2px 0 14px;
}

.report-access-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  font-size: 13px;
}

.report-access-row.available {
  border-color: #bfe8cf;
  background: #f2fbf5;
}

.report-access-row.locked {
  border-color: #fed7aa;
  background: #fff7ed;
}

.report-bundle-section {
  margin: 18px 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.section-title-row,
.report-bundle-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
}

.section-title-row {
  margin-bottom: 10px;
}

.section-title-row h3,
.section-title-row p {
  margin: 0;
}

.report-bundle-summary {
  margin: 8px 0 10px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  font-size: 13px;
}

.report-bundle-summary.available {
  border-color: #bfe8cf;
  background: #f2fbf5;
}

.report-bundle-summary.locked {
  border-color: #fed7aa;
  background: #fff7ed;
}

.microcopy {
  margin-top: 2px;
  font-size: 11px;
}

.bundle-report-section {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.closeout-section {
  border-top-color: #d7e7ea;
}

.closeout-command-panel {
  margin: 6px 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.closeout-status-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.22fr) minmax(150px, 0.28fr) minmax(280px, 1fr);
  gap: 12px;
  align-items: center;
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #e4ecee;
}

.closeout-status-row strong,
.closeout-status-row span,
.closeout-status-row p {
  display: block;
}

.closeout-status-row strong {
  color: var(--ink);
  font-size: 14px;
}

.closeout-status-row p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.closeout-label {
  margin-bottom: 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.closeout-status-row.ready {
  box-shadow: inset 3px 0 0 #2da66d;
}

.closeout-status-row.attention {
  box-shadow: inset 3px 0 0 #d97706;
}

.closeout-metric-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 12px;
}

.closeout-metric {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 32px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.closeout-metric strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.1;
}

.closeout-metric span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.closeout-metric.pass {
  border-color: #c7ead2;
  background: #f2fbf5;
}

.closeout-metric.blocker {
  border-color: #fecaca;
  background: #fff5f5;
}

.closeout-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.68fr) minmax(460px, 1.32fr);
  gap: 14px;
  align-items: start;
}

.closeout-checklist {
  display: grid;
  border-top: 1px solid #e4ecee;
}

.closeout-check {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 38px;
  padding: 8px 0;
  border-bottom: 1px solid #e4ecee;
}

.closeout-check strong,
.closeout-check small {
  display: block;
}

.closeout-check strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
}

.closeout-check small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.closeout-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--review);
}

.closeout-dot.pass {
  background: var(--pass);
}

.closeout-dot.blocker {
  background: var(--block);
}

.closeout-dot.warning {
  background: #d97706;
}

.closeout-row-list,
.closeout-history-list,
.closeout-timeline-list {
  border-top: 1px solid #e4ecee;
}

.closeout-row-item,
.closeout-history-item,
.closeout-timeline-item {
  display: grid;
  grid-template-columns: 10px minmax(210px, 1fr) auto 72px minmax(112px, auto) auto;
  gap: 10px;
  align-items: center;
  min-height: 42px;
  padding: 8px 0;
  border-bottom: 1px solid #e4ecee;
}

.closeout-row-main strong,
.closeout-row-main small,
.closeout-history-item small,
.closeout-timeline-item small {
  display: block;
}

.closeout-row-main small,
.closeout-history-item small,
.closeout-timeline-item small,
.closeout-row-meta,
.closeout-row-hash {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
}

.closeout-row-meta,
.closeout-row-hash {
  white-space: nowrap;
}

.closeout-row-hash {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.closeout-row-actions {
  display: flex;
  justify-content: flex-end;
  min-width: 80px;
}

.closeout-history-item {
  grid-template-columns: minmax(220px, 1fr) auto 78px 78px 86px auto;
}

.closeout-timeline-item {
  grid-template-columns: 10px minmax(0, 1fr) auto;
}

.closeout-window-cover {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.closeout-window-cover .muted {
  margin: 3px 0 0;
}

.closeout-metric-grid.compact-window {
  padding: 0;
  margin-bottom: 12px;
}

.small-button {
  min-height: 30px;
  padding: 5px 9px;
  font-size: 12px;
}

.compact-range {
  margin-bottom: 0;
}

button.primary,
button.secondary {
  min-height: 38px;
  border-radius: 8px;
  padding: 8px 12px;
  border: 1px solid transparent;
  cursor: pointer;
  font-weight: 650;
}

button.primary {
  color: #ffffff;
  background: var(--accent);
}

button.primary:hover {
  background: var(--accent-dark);
}

button.secondary {
  color: #344054;
  background: #ffffff;
  border-color: var(--line);
}

button.secondary:hover {
  border-color: #93b7b0;
  color: var(--accent-dark);
}

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

.link-button:hover {
  text-decoration: underline;
}

input,
select {
  min-height: 38px;
  min-width: 180px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  padding: 8px 10px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.metric {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  box-shadow: var(--shadow);
}

button.metric,
button.role-metric {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  appearance: none;
}

.metric-trigger {
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.metric-trigger:hover,
.metric-trigger:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(13, 128, 113, 0.12), var(--shadow);
  outline: none;
}

.account-summary-card {
  grid-column: span 2;
  min-height: 122px;
  padding: 0;
  overflow: hidden;
}

.summary-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  border-bottom: 1px solid var(--line);
}

.summary-card-header h2 {
  margin: 0;
  color: #151b2d;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
}

.summary-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fff7ed;
  color: #b45309;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.summary-lines {
  padding: 14px 16px 18px;
  color: #667085;
  font-size: 16px;
  line-height: 1.45;
}

.summary-line {
  display: flex;
  gap: 6px;
  align-items: baseline;
}

.summary-line.metric-trigger {
  width: 100%;
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 3px 4px;
  color: inherit;
  font: inherit;
  text-align: left;
  box-shadow: none;
}

.summary-line.metric-trigger:hover,
.summary-line.metric-trigger:focus-visible {
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px #bfe8df;
}

.summary-line strong {
  color: #667085;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  font-weight: 800;
}

.metric strong {
  display: block;
  font-size: 26px;
  line-height: 1;
  margin-bottom: 8px;
}

.metric span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.operator-metric-grid {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  margin-bottom: 10px;
}

.operator-metric-card {
  position: relative;
  display: grid;
  grid-template-columns: 24px 1fr;
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-items: center;
  min-height: 58px;
  padding: 10px 12px;
}

.formulary-summary-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.formulary-summary-strip span {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid #d7e7ea;
  border-radius: 999px;
  background: #ffffff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.formulary-summary-strip strong {
  color: var(--ink);
  font-size: 16px;
}

.formulary-cost-note {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: baseline;
  margin-bottom: 12px;
  padding: 9px 10px;
  border: 1px solid #d7e7ea;
  border-radius: 8px;
  background: #f8fbfb;
  color: var(--muted);
  font-size: 13px;
}

.formulary-cost-note strong {
  color: var(--accent-dark);
}

.formulary-control-list {
  display: grid;
  border-top: 1px solid #e4ecee;
}

.formulary-control-list.compact {
  margin-top: 10px;
}

.formulary-control-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 42px;
  padding: 8px 0;
  border-bottom: 1px solid #e4ecee;
}

.formulary-control-row strong,
.formulary-control-row small {
  display: block;
}

.formulary-control-row strong {
  color: var(--ink);
  font-size: 14px;
}

.formulary-control-row small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.control-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
}

.alias-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 16px;
}

.alias-strip span {
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.compact-access-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px 12px;
  margin: 8px 0 10px;
  color: var(--muted);
  font-size: 12px;
}

.compact-access-summary strong {
  color: var(--ink);
  font-size: 13px;
}

.formulary-access-list {
  display: grid;
  gap: 7px;
  margin: 8px 0 16px;
}

.formulary-access-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.15fr) minmax(190px, 1fr) minmax(220px, auto) max-content max-content;
  gap: 10px;
  align-items: center;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.formulary-access-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.formulary-access-main strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.formulary-access-main span {
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.formulary-access-meta,
.formulary-access-prices {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.formulary-access-meta span,
.formulary-access-prices span {
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid #d7e7ea;
  border-radius: 999px;
  background: var(--surface-quiet);
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.notice-card {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid #bfe4de;
  border-radius: 8px;
  background: #eefbf7;
  color: var(--ink);
}

.notice-card strong {
  font-size: 13px;
}

.notice-card span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}

.import-preview-panel {
  display: grid;
  gap: 10px;
}

.import-result-strip {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid #bfe4de;
  border-radius: 8px;
  background: #f3fbf8;
}

.import-result-strip.blocked {
  border-color: #f4bbbb;
  background: #fff4f2;
}

.import-result-strip strong {
  color: var(--ink);
  font-size: 13px;
}

.import-result-strip span,
.import-result-strip small {
  color: var(--muted);
  font-size: 12px;
}

.import-error-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.import-error-list span {
  padding: 4px 8px;
  border: 1px solid #f4bbbb;
  border-radius: 999px;
  background: #fff4f2;
  color: #9f1d1d;
  font-size: 12px;
}

.operator-metric-card strong {
  display: block;
  margin: 0;
  font-size: 21px;
  line-height: 1;
}

.operator-metric-card span:not(.operator-metric-mark) {
  grid-column: 2;
  margin-top: 4px;
  color: #334155;
  font-size: 12px;
  font-weight: 750;
}

.operator-metric-mark {
  grid-row: 1 / span 2;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
}

.operator-metric-card.risk .operator-metric-mark {
  background: #fff1f2;
  border-color: #fecdd3;
}

.operator-metric-card.warn .operator-metric-mark,
.operator-metric-card.report .operator-metric-mark {
  background: #fff7ed;
  border-color: #fed7aa;
}

.operator-metric-card.work .operator-metric-mark {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.operator-metric-card.evidence .operator-metric-mark {
  background: #ecfeff;
  border-color: #a5f3fc;
}

.operator-workspace {
  margin-top: 10px;
}

.operator-workspace-stack {
  display: grid;
  gap: 12px;
}

.operator-ledger-ready-panel {
  display: grid;
  grid-template-columns: minmax(220px, 0.5fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #9dd8ca;
  border-radius: 8px;
  background: #eef9f6;
  box-shadow: var(--shadow);
}

.operator-ledger-ready-panel strong {
  display: block;
  color: var(--accent-dark);
  font-size: 15px;
}

.operator-ledger-ready-panel span,
.operator-ledger-ready-panel small {
  color: var(--muted);
}

.operator-ledger-ready-list {
  display: grid;
  gap: 8px;
}

.operator-ledger-ready-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(180px, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid rgba(13, 93, 97, 0.16);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.74);
}

.operator-ledger-ready-row > span {
  color: #17313a;
  font-weight: 700;
}

.requester-receipt-handoff {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid #9dd8ca;
  border-radius: 8px;
  background: #eef9f6;
}

.requester-receipt-handoff strong {
  color: var(--accent-dark);
  font-size: 15px;
}

.requester-receipt-handoff > span {
  color: var(--muted);
}

.requester-receipt-list {
  display: grid;
  gap: 6px;
}

.requester-receipt-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding-top: 6px;
  border-top: 1px solid rgba(13, 93, 97, 0.12);
}

.operator-workspace-grid {
  display: grid;
  grid-template-columns: minmax(620px, 1.1fr) minmax(420px, 0.9fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
}

.operator-queue-panel,
.operator-detail-panel {
  min-width: 0;
}

.operator-queue-panel {
  border-right: 1px solid var(--line);
}

.operator-panel-header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 16px 10px;
  border-bottom: 1px solid #edf2f4;
}

.operator-panel-header h2 {
  margin: 0;
  color: #162033;
  font-size: 19px;
  line-height: 1.2;
}

.operator-panel-header h2 span {
  display: inline-flex;
  min-width: 26px;
  min-height: 24px;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  border-radius: 999px;
  background: #e7f6f3;
  color: var(--accent-dark);
  font-size: 12px;
}

.operator-panel-header p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.compact-button {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 12px;
}

.operator-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(130px, 0.45fr) minmax(130px, 0.45fr) auto;
  gap: 8px;
  align-items: center;
  padding: 12px 18px;
  border-bottom: 1px solid #edf2f4;
  background: #fbfdfe;
}

.operator-filter-row input,
.operator-filter-row select {
  min-width: 0;
  width: 100%;
  min-height: 34px;
  border-radius: 7px;
  font-size: 12px;
}

.operator-toggle {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffff;
  color: #334155;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.operator-toggle input {
  width: 14px;
  height: 14px;
  min-width: 0;
  min-height: 0;
}

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

.operator-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.operator-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  color: #475569;
  font-size: 11px;
  font-weight: 800;
  text-align: left;
  padding: 11px 12px;
  border-bottom: 1px solid #e6edf1;
}

.operator-table td {
  padding: 12px;
  border-bottom: 1px solid #edf2f4;
  vertical-align: middle;
}

.operator-table tr {
  transition: background 140ms ease, box-shadow 140ms ease;
}

.operator-table tr.selected {
  background: #f0fbf8;
  box-shadow: inset 4px 0 0 var(--accent-dark);
}

.operator-table tr:hover {
  background: #f8fbfc;
}

.operator-row-link,
.row-select-button {
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}

.row-select-button {
  color: var(--accent-dark);
  font-size: 12px;
}

.priority-text {
  font-weight: 800;
}

.priority-text.high {
  color: #dc2626;
}

.priority-text.medium {
  color: #f59e0b;
}

.priority-text.low {
  color: #059669;
}

.operator-detail-panel {
  padding: 16px;
  background: linear-gradient(90deg, #ffffff 0%, #fbfdfd 100%);
}

.operator-detail-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid #e7edf0;
}

.operator-detail-top h2 {
  margin: 3px 0 6px;
  color: #162033;
  font-size: 18px;
  line-height: 1.25;
}

.operator-detail-top p:not(.eyebrow) {
  margin: 0;
  color: #334155;
  font-size: 13px;
}

.operator-detail-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid #edf2f4;
}

.operator-detail-meta span,
.operator-detail-section .detail-list-row span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.operator-detail-meta strong {
  display: block;
  margin-top: 3px;
  color: var(--ink);
  font-size: 13px;
}

.operator-tabs {
  display: flex;
  gap: 18px;
  min-height: 42px;
  align-items: end;
  border-bottom: 1px solid #e7edf0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.operator-tabs button {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  padding-bottom: 10px;
  cursor: pointer;
}

.operator-tabs .active {
  color: var(--accent-dark);
  box-shadow: inset 0 -2px 0 var(--accent-dark);
}

.operator-tab-body {
  min-height: 340px;
}

.operator-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 12px 0 2px;
}

.operator-inline-actions.tight {
  justify-content: flex-end;
  padding: 0;
}

.operator-inline-actions.tight .link-button {
  font-size: 12px;
  white-space: nowrap;
}

.operator-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-top: 14px;
}

.operator-detail-section {
  min-width: 0;
  padding: 10px 0;
  border-bottom: 1px solid #edf2f4;
}

.operator-detail-section.wide {
  grid-column: 1 / -1;
}

.operator-section-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 9px;
}

.operator-detail-section h3 {
  margin: 0 0 9px;
  color: #162033;
  font-size: 13px;
}

.operator-section-title h3 {
  margin: 0;
}

.operator-detail-section .detail-list {
  gap: 7px;
}

.operator-detail-section .detail-list-row {
  padding: 0;
  border: 0;
}

.operator-detail-section .detail-list-row strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 650;
}

.operator-timeline,
.operator-evidence-list {
  display: grid;
  gap: 8px;
}

.operator-activity-timeline {
  max-height: 340px;
  overflow: auto;
  padding-right: 4px;
}

.operator-activity-item {
  align-items: start;
}

.operator-activity-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}

.operator-activity-title .link-button {
  font-size: 12px;
  white-space: nowrap;
}

.operator-notes-list {
  margin-bottom: 0;
}

.operator-note-form {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid #e7edf0;
}

.operator-note-form label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.operator-note-form textarea {
  width: 100%;
  min-height: 92px;
  background: #ffffff;
}

.operator-note-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.operator-note-footer span {
  color: var(--muted);
  font-size: 11px;
}

.operator-timeline-row,
.operator-evidence-row {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 8px;
  align-items: start;
}

.operator-timeline-row > span,
.operator-evidence-row > span {
  width: 9px;
  height: 9px;
  margin-top: 4px;
  border-radius: 999px;
  background: #94a3b8;
}

.operator-timeline-row.complete > span,
.operator-evidence-row.complete > span {
  background: var(--pass);
}

.operator-timeline-row.active > span,
.operator-timeline-row.attention > span,
.operator-evidence-row.waiting > span {
  background: var(--warn);
}

.operator-timeline-row.blocked > span,
.operator-evidence-row.blocked > span {
  background: var(--block);
}

.operator-timeline-row strong,
.operator-evidence-row strong {
  display: block;
  color: var(--ink);
  font-size: 12px;
}

.operator-timeline-row small,
.operator-evidence-row small {
  display: block;
  margin-top: 1px;
  color: var(--muted);
  font-size: 11px;
}

.operator-supplier-note {
  display: grid;
  gap: 4px;
  margin-top: 8px;
  padding: 11px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fbfdff;
}

.operator-supplier-note strong {
  color: #162033;
  font-size: 12px;
}

.operator-supplier-note span {
  color: #334155;
  font-size: 13px;
}

.operator-action-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid #e7edf0;
}

.account-summary-card .summary-line span,
.account-summary-card .summary-line strong {
  color: #667085;
  font-size: 16px;
  line-height: 1.45;
}

.account-summary-card .summary-line strong {
  display: inline;
  margin: 0;
  font-weight: 800;
}

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

.role-dashboard-header h2 {
  margin: 0 0 4px;
  font-size: 18px;
  line-height: 1.2;
}

.role-dashboard-header p {
  margin: 0;
  color: var(--muted);
}

.role-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.role-metric {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  background: #fbfcfd;
}

button.role-metric:hover,
button.role-metric:focus-visible {
  background: #f8fffd;
}

.role-metric strong {
  display: block;
  font-size: 22px;
  line-height: 1;
  margin-bottom: 5px;
}

.role-metric span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

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

.role-dashboard-section {
  min-width: 0;
}

.role-dashboard-section h3 {
  margin: 0 0 8px;
  font-size: 15px;
}

.scope-summary,
.supplier-scope-summary {
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) minmax(360px, 1.05fr);
  gap: 14px;
  align-items: start;
}

.scope-detail,
.supplier-scope-detail {
  min-width: 0;
}

.scope-metric-grid,
.supplier-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(92px, 1fr));
  gap: 8px;
}

.scope-metric-grid .metric,
.supplier-metric-grid .metric {
  min-height: 84px;
  padding: 11px;
}

.scope-metric-grid .metric strong,
.supplier-metric-grid .metric strong {
  font-size: 22px;
}

.finance-metric-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.finance-metric strong {
  font-size: 24px;
}

.finance-layout {
  margin-bottom: 16px;
}

.finance-reports-panel {
  margin-bottom: 16px;
}

.finance-source-panel {
  margin-bottom: 16px;
}

.finance-report-intro {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #d9e6ec;
  border-radius: 8px;
  background: #fbfdfe;
}

.finance-report-intro strong {
  display: block;
  color: var(--ink);
}

.finance-report-intro span {
  color: var(--muted);
  font-weight: 700;
}

.finance-report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  white-space: nowrap;
}

.finance-period-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}

.finance-period-controls select,
.finance-period-controls input {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: #ffffff;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
}

.finance-report-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.finance-report-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.finance-report-card-main h3 {
  margin: 2px 0 4px;
  font-size: 17px;
}

.finance-report-card-main p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.finance-report-card-stat {
  min-width: 78px;
  text-align: right;
}

.finance-report-card-stat strong {
  display: block;
  font-size: 18px;
  color: var(--ink);
}

.finance-report-card-stat span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.muted-stat strong {
  font-size: 15px;
}

.finance-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  grid-column: 1 / -1;
}

.finance-close-history {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.4fr);
  gap: 12px;
  margin-top: 12px;
}

.finance-close-history > section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.mini-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.mini-panel-header strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
}

.mini-panel-header span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.finance-source-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: stretch;
  margin-bottom: 12px;
}

.finance-source-metric {
  display: grid;
  gap: 2px;
  min-height: 70px;
  align-content: center;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfe;
}

.finance-source-metric strong {
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
}

.finance-source-metric span,
.finance-source-metric small {
  color: var(--muted);
  font-weight: 800;
}

.finance-source-metric span {
  font-size: 12px;
}

.finance-source-metric small {
  font-size: 11px;
}

.finance-source-summary .compact-button {
  min-height: 70px;
  padding-inline: 18px;
}

.finance-milestone-plan {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
  padding: 14px;
  border: 1px solid #cbdce4;
  border-radius: 8px;
  background: #f8fbfc;
}

.finance-milestone-plan-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.finance-milestone-plan-heading strong,
.finance-milestone-plan-heading span {
  display: block;
}

.finance-milestone-plan-heading > div > span,
.finance-milestone small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

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

.finance-milestone {
  display: grid;
  gap: 3px;
  min-height: 104px;
  align-content: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 4px solid #bd8a23;
  border-radius: 6px;
  background: #ffffff;
}

.finance-milestone.paid {
  border-left-color: #21825c;
}

.finance-milestone strong {
  color: var(--ink);
  font-size: 20px;
}

.finance-source-grid {
  display: grid;
  grid-template-columns: minmax(320px, 1.1fr) minmax(260px, 0.9fr);
  gap: 12px;
  align-items: start;
}

.finance-source-grid > section,
.finance-payment-list {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.finance-source-grid > section:first-child {
  grid-row: span 3;
}

.finance-source-grid .table-wrap,
.finance-payment-list .table-wrap {
  max-height: 340px;
  overflow: auto;
}

.finance-source-grid th,
.finance-source-grid td,
.finance-payment-list th,
.finance-payment-list td {
  padding-block: 8px;
  font-size: 12px;
}

.finance-payment-list {
  margin-top: 12px;
}

.finance-source-window {
  display: grid;
  gap: 12px;
}

.finance-source-window h3 {
  margin: 6px 0 0;
  font-size: 15px;
}

.finance-payment-form {
  margin-top: 4px;
  padding: 12px;
  border: 1px solid #d9e6ec;
  border-radius: 8px;
  background: #fbfdfe;
}

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

.finance-close-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 8px 0;
  border-bottom: 1px solid #edf2f4;
}

.finance-close-row:last-child {
  border-bottom: 0;
}

.finance-close-row strong {
  display: block;
  color: var(--ink);
  font-size: 13px;
}

.finance-close-row small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-weight: 700;
}

.finance-report-history-window h3 {
  margin: 16px 0 8px;
}

.finance-bucket-strip,
.finance-report-summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.finance-report-summary-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.finance-bucket-strip span,
.finance-report-summary-strip span {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #fbfdfe;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.finance-bucket-strip strong,
.finance-report-summary-strip strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink);
  font-size: 18px;
}

.finance-bucket-strip small {
  display: block;
  margin-top: 4px;
  color: var(--teal);
  font-size: 11px;
}

.finance-workbench-panel {
  padding-bottom: 12px;
}

.finance-workbench-summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #cce8e2;
  border-radius: 8px;
  background: #f3fffb;
}

.finance-workbench-summary strong,
.finance-workbench-totals strong {
  display: block;
  color: var(--ink);
}

.finance-workbench-summary span {
  color: var(--muted);
  font-weight: 700;
}

.finance-workbench-totals {
  display: flex;
  gap: 16px;
  text-align: right;
  white-space: nowrap;
}

.finance-workflow-strip {
  display: flex;
  gap: 8px;
  margin: 0 0 12px;
  padding: 8px;
  overflow-x: auto;
  border: 1px solid #d9e6ec;
  border-radius: 8px;
  background: #fbfdfe;
}

.finance-workflow-strip span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: max-content;
  padding: 6px 9px;
  border: 1px solid #dbe8ee;
  border-radius: 999px;
  color: var(--ink);
  background: #ffffff;
  font-size: 13px;
}

.finance-workflow-strip small {
  color: var(--muted);
  font-weight: 700;
}

.finance-workbench-grid .operations-queue-panel:first-child {
  grid-column: auto;
}

.finance-quick-action-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfe;
}

.finance-detail-status-stack {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.finance-ledger-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.finance-ledger-panels section,
.finance-closeout-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.finance-ledger-panels h3,
.finance-closeout-panel h3,
.finance-ledger-window h3 {
  margin: 0 0 10px;
  font-size: 16px;
}

.finance-closeout-panel {
  margin: 14px 0;
}

.finance-action-timeline {
  margin-bottom: 14px;
}

.finance-ledger-window .detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-status-form {
  margin-top: 16px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.pricing-exception-window .detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-document-packet {
  display: grid;
  gap: 16px;
}

.document-party-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.document-party-strip div,
.document-number,
.elegant-list div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfe;
  padding: 10px 12px;
}

.document-party-strip span,
.document-number small,
.elegant-list span {
  display: block;
  color: var(--muted);
  font-weight: 700;
  font-size: 12px;
}

.document-party-strip strong,
.document-number strong,
.elegant-list strong {
  display: block;
  color: var(--ink);
  font-weight: 750;
}

.finance-document-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: #ffffff;
}

.finance-document-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
  margin-bottom: 14px;
}

.finance-document-heading h3 {
  margin: 0 0 6px;
}

.document-number {
  min-width: 190px;
  text-align: right;
}

.document-totals,
.elegant-list {
  display: grid;
  gap: 8px;
}

.document-totals {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 10px 0 14px;
}

.document-totals span {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.supplier-queue-grid,
.operations-queue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.supplier-queue-panel,
.operations-queue-panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.supplier-queue-panel:first-child,
.operations-queue-panel:first-child {
  grid-column: 1 / -1;
}

.supplier-queue-header,
.operations-queue-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.supplier-queue-header h3,
.operations-queue-header h3 {
  margin: 0;
  font-size: 15px;
}

.supplier-queue-header p,
.operations-queue-header p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.supplier-queue-panel .table-wrap,
.operations-queue-panel .table-wrap {
  border: 0;
  border-radius: 0;
}

.mini-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.two-column {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}

.queue-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.panel {
  margin-bottom: 16px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  box-shadow: var(--shadow);
}

.role-summary {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
  padding: 14px 16px;
  border: 1px solid #bfe8df;
  border-radius: 8px;
  background: #ecfdf8;
}

.role-summary strong {
  color: var(--accent-dark);
}

.membership-brief {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
  gap: 24px;
  align-items: end;
  margin-bottom: 16px;
  border: 1px solid #386f75;
  border-radius: 8px;
  padding: 26px 28px;
  background: linear-gradient(135deg, #043a3f 0%, #0b5055 55%, #0f6469 100%);
  color: #eff8f9;
  box-shadow: var(--shadow);
}

.membership-brief .eyebrow {
  color: #b8d3d8;
}

.membership-brief h2 {
  margin: 0 0 10px;
  max-width: 760px;
  color: #ffffff;
  font-family: var(--font-ui);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.12;
}

.membership-brief p {
  max-width: 820px;
  margin: 0;
  color: #d9e9eb;
  font-size: 15px;
  line-height: 1.55;
}

.membership-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  border-top: 1px solid rgba(214, 232, 235, 0.48);
  padding-top: 16px;
}

.membership-facts span {
  display: block;
  margin-bottom: 6px;
  color: #b8d3d8;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.membership-facts strong {
  color: #ffffff;
  font-family: var(--font-ui);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.2;
}

.onboarding-packet-panel .panel-header h2,
.packet-card h3,
.drawer-section-title {
  color: var(--accent-dark);
  font-family: var(--font-ui);
  font-weight: 700;
}

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

.packet-card {
  min-height: 172px;
  border-top: 4px solid var(--accent-rule);
  background: var(--accent-soft);
  padding: 14px 14px 16px;
}

.packet-card span {
  display: inline-flex;
  margin-bottom: 16px;
  color: #557a80;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.packet-card h3 {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.2;
}

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

.drawer-section-title {
  margin: 4px 0 0;
  font-size: 18px;
  line-height: 1.2;
}

.drawer-section-note {
  margin: -6px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.role-hint {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  border: 1px solid #c7ead3;
  border-radius: 8px;
  padding: 10px 12px;
  background: #f0fdf4;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.role-hint strong {
  color: var(--accent-dark);
  font-weight: 700;
}

.role-hint small {
  color: var(--muted);
}

.workflow-board {
  display: grid;
  gap: 12px;
}

.workflow-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.workflow-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.readiness-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.readiness-title {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.readiness-chip {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 9px;
  background: #ffffff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.readiness-chip.complete {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: var(--pass);
}

.readiness-chip.attention {
  border-color: #f6d488;
  background: #fffbeb;
  color: var(--warn);
}

.readiness-chip.blocked {
  border-color: #fecaca;
  background: #fff1f2;
  color: var(--block);
}

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

.readiness-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.readiness-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.readiness-card .next-step {
  margin-bottom: 0;
}

.workbench-filter-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.workbench-filter-card {
  min-height: 72px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
}

.workbench-filter-card strong {
  display: block;
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
}

.workbench-filter-card span {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.workbench-filter-card.active,
.workbench-filter-card:hover,
.workbench-filter-card:focus-visible {
  border-color: var(--accent);
  background: #ecfdf8;
  outline: none;
}

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

.onboarding-invite-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) minmax(360px, 1.5fr) auto;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
}

.onboarding-invite-row:last-child {
  border-bottom: 0;
}

.invite-main {
  display: grid;
  gap: 2px;
}

.invite-main span,
.invite-meta span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.invite-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.invite-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.onboarding-manual-link-panel {
  background: linear-gradient(180deg, #f7fbfa 0%, #eef8f6 100%);
}

.onboarding-link-desk {
  display: grid;
  gap: 12px;
}

.onboarding-manual-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #c7e8e4;
  border-radius: 8px;
  padding: 12px 14px;
  background: #edf8f5;
}

.onboarding-manual-banner p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}

.onboarding-manual-banner small {
  color: #56767a;
  font-size: 12px;
  text-align: right;
  white-space: nowrap;
}

.onboarding-operator-handoff {
  display: grid;
  gap: 10px;
  border: 1px solid #cfe1df;
  border-radius: 8px;
  padding: 12px;
  background: rgba(245, 251, 248, 0.92);
}

.operator-handoff-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.operator-handoff-header h3 {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 600;
}

.operator-handoff-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: #577071;
  font-size: 12px;
}

.operator-handoff-summary span {
  border: 1px solid #d5e5e2;
  border-radius: 999px;
  padding: 4px 8px;
  background: rgba(255, 255, 255, 0.74);
}

.operator-handoff-list {
  display: grid;
  border-top: 1px solid #d8e7e5;
}

.operator-handoff-row {
  display: grid;
  grid-template-columns: 96px 160px minmax(220px, 1fr) minmax(180px, 0.8fr);
  gap: 12px;
  align-items: start;
  border-bottom: 1px solid #d8e7e5;
  padding: 8px 0;
  font-size: 12px;
}

.operator-handoff-row > span:first-child {
  color: #60787a;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.operator-handoff-label {
  color: var(--ink);
  font-weight: 600;
}

.operator-handoff-row p,
.operator-handoff-row em,
.operator-handoff-boundary {
  margin: 0;
  color: #51686b;
  font-style: normal;
  line-height: 1.35;
}

.operator-handoff-row em {
  color: #7a6a46;
}

.operator-handoff-boundary {
  font-size: 12px;
}

.onboarding-readiness-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.onboarding-readiness-metric {
  display: grid;
  gap: 2px;
  min-height: 58px;
  border: 1px solid #d4e3e4;
  border-radius: 8px;
  padding: 9px 10px;
  background: rgba(255, 255, 255, 0.7);
  color: #5e7478;
  font-size: 12px;
}

.onboarding-readiness-metric span {
  color: var(--ink);
  font-size: 20px;
  line-height: 1;
}

.onboarding-readiness-metric.ready span {
  color: var(--pass);
}

.onboarding-readiness-metric.attention span {
  color: var(--warn);
}

.onboarding-readiness-metric.blocked span {
  color: var(--block);
}

.onboarding-readiness-list {
  display: grid;
  border: 1px solid #d3e0e2;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.72);
}

.onboarding-readiness-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) minmax(360px, 1.25fr) minmax(280px, 1.4fr) auto;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 10px 12px;
}

.onboarding-readiness-row:last-child {
  border-bottom: 0;
}

.onboarding-readiness-row.finish_ready,
.onboarding-readiness-row.attention {
  background: #fffaf0;
}

.onboarding-readiness-row.blocked {
  background: #fff5f5;
}

.onboarding-readiness-row.approved {
  background: #f1fbf5;
}

.onboarding-readiness-main,
.onboarding-readiness-note {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.onboarding-readiness-main span,
.onboarding-readiness-note,
.onboarding-readiness-note small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.onboarding-readiness-note span {
  color: var(--ink);
}

.onboarding-readiness-note small {
  display: block;
}

.onboarding-readiness-track {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.onboarding-readiness-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  white-space: nowrap;
}

.locked-field-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.locked-field-list.compact {
  grid-template-columns: 1fr;
  margin: 0;
}

.locked-field {
  display: grid;
  gap: 4px;
  border: 1px solid #d7e3e6;
  border-radius: 8px;
  padding: 10px 12px;
  background: #f8fafb;
}

.locked-field span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.locked-field strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.onboarding-document-list {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.onboarding-document-row {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(220px, 1.2fr) minmax(180px, 1fr);
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 10px 12px;
  background: #ffffff;
}

.onboarding-document-row:last-child {
  border-bottom: 0;
}

.onboarding-document-row div {
  display: grid;
  gap: 3px;
}

.onboarding-document-row strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 750;
}

.onboarding-document-row span {
  color: var(--muted);
  font-size: 12px;
}

.onboarding-document-row input {
  min-width: 0;
  width: 100%;
}

.onboardee-window .drawer-form {
  margin-top: 4px;
}

.stage-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(92px, 1fr));
  gap: 6px;
}

.stage-row.compact-lifecycle {
  grid-template-columns: 1fr;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.stage {
  min-height: 50px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  background: #ffffff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.compact-lifecycle .stage {
  position: relative;
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 0;
  border-bottom: 1px solid #e8eef1;
  border-radius: 0;
  padding: 7px 12px 7px 28px;
  background: #ffffff;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.2;
}

.compact-lifecycle .stage:last-child {
  border-bottom: 0;
}

.compact-lifecycle .stage::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #98a2b3;
  transform: translateY(-50%);
}

.compact-lifecycle .stage::after {
  content: attr(data-stage-status-label);
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

button.stage {
  width: 100%;
  appearance: none;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

button.stage:hover,
button.stage:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(13, 128, 113, 0.12);
  outline: none;
}

.compact-lifecycle button.stage:hover,
.compact-lifecycle button.stage:focus-visible {
  background: #f6fbfb;
  box-shadow: inset 3px 0 0 var(--accent);
}

.stage.complete {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: var(--pass);
}

.compact-lifecycle .stage.complete {
  background: #f7fdf9;
  color: var(--pass);
}

.compact-lifecycle .stage.complete::before {
  background: var(--pass);
}

.stage.active,
.stage.attention {
  border-color: #f6d488;
  background: #fffbeb;
  color: var(--warn);
}

.compact-lifecycle .stage.active,
.compact-lifecycle .stage.attention {
  background: #fffaf0;
  color: var(--warn);
}

.compact-lifecycle .stage.active::before,
.compact-lifecycle .stage.attention::before {
  background: var(--warn);
}

.stage.blocked {
  border-color: #fecaca;
  background: #fff1f2;
  color: var(--block);
}

.compact-lifecycle .stage.blocked {
  background: #fff7f7;
  color: var(--block);
}

.compact-lifecycle .stage.blocked::before {
  background: var(--block);
}

.next-step {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
}

.stage-action-window h3 {
  margin: 14px 0 8px;
  font-size: 15px;
}

.stage-action-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.stage-action-grid button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.blocker-resolution-window h3 {
  margin: 16px 0 8px;
  font-size: 15px;
}

.instruction-packet-window h3,
.supplier-evidence-window h3 {
  margin: 16px 0 8px;
  font-size: 15px;
}

.blocker-resolution-form {
  margin-top: 14px;
}

.blocker-resolution-window .rule-detail-list {
  margin-bottom: 12px;
}

.owner-blocker-list {
  display: grid;
  border-top: 1px solid #e4ecee;
}

.owner-blocker-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) 90px 90px 130px minmax(0, 1.5fr);
  gap: 14px;
  align-items: center;
  min-height: 42px;
  border-bottom: 1px solid #e4ecee;
  color: var(--muted);
  font-size: 14px;
}

.owner-blocker-row strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}

.rule-fix-panel {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  border: 1px solid #cfe0e4;
  background: #f8fbfb;
  border-radius: 8px;
  padding: 14px;
  margin: 0 0 16px;
}

.rule-fix-panel strong {
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
}

.rule-fix-panel p,
.rule-fix-panel small {
  display: block;
  margin: 0;
  color: var(--muted);
}

.rule-fix-panel button {
  flex: 0 0 auto;
}

.blocker-status-trail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.blocker-trail-step {
  border: 1px solid #dbe7ea;
  border-radius: 8px;
  min-height: 74px;
  padding: 10px;
  background: #fff;
}

.blocker-trail-step span {
  display: block;
  color: var(--ink);
  font-size: 12px;
  font-weight: 750;
  margin-bottom: 5px;
}

.blocker-trail-step p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.blocker-trail-step.complete {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.blocker-trail-step.active {
  border-color: #facc15;
  background: #fffbea;
}

.blocker-trail-step.pending {
  background: #f8fbfb;
}

.rerun-prompt {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: min(720px, calc(100vw - 48px));
  border: 1px solid #b9dadd;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
}

.rerun-prompt div {
  min-width: 220px;
}

.rerun-prompt strong,
.rerun-prompt span,
.rerun-prompt small {
  display: block;
}

.rerun-prompt strong {
  color: var(--ink);
  font-size: 14px;
}

.rerun-prompt span,
.rerun-prompt small {
  color: var(--muted);
  font-size: 12px;
}

.evidence-action-center .operations-queue-panel {
  min-height: 180px;
}

.evidence-packet-window h3 {
  margin: 16px 0 8px;
  font-size: 15px;
}

.evidence-packet-window .rule-fix-panel .mini-action-row {
  justify-content: flex-end;
}

.evidence-review-form,
.evidence-attach-form {
  margin-top: 4px;
}

.window-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
}

.request-eligibility-preview {
  margin-top: 14px;
}

.eligibility-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.eligibility-panel.ready {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.eligibility-panel.blocked {
  border-color: #fecaca;
  background: #fff7f7;
}

.eligibility-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.eligibility-header p,
.eligibility-row p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
}

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

.eligibility-list.compact {
  gap: 6px;
}

.eligibility-row {
  display: grid;
  grid-template-columns: minmax(150px, 210px) 1fr;
  gap: 10px;
  align-items: start;
}

.eligibility-row small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
}

.drawer-actions.compact {
  margin-top: 12px;
}

.request-workbench-window h3,
.account-workbench-window h3 {
  margin: 16px 0 8px;
  font-size: 15px;
}

.workbench-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
  gap: 14px;
  align-items: start;
}

.workbench-stage-row {
  margin-top: 10px;
}

.request-workbench-timeline .timeline-item,
.account-workbench-timeline .timeline-item {
  background: #fbfcfd;
}

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

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

.evidence-slot {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #fbfcfd;
}

.evidence-slot strong {
  display: block;
  margin-bottom: 8px;
}

.evidence-slot .secondary {
  margin-top: 8px;
  min-height: 32px;
  padding: 5px 9px;
}

.explain-box {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  margin: 0 0 16px;
}

.explain-box strong {
  display: block;
  margin-bottom: 8px;
}

.explain-box p {
  margin: 0;
  color: var(--muted);
}

.explain-box ul {
  margin: 0;
  padding-left: 18px;
}

.explain-box li {
  margin-bottom: 8px;
}

.explain-box li span,
.explain-box li small {
  display: block;
}

.explain-box li small {
  color: var(--muted);
}

.pass-box {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.block-box {
  border-color: #fecaca;
  background: #fff1f2;
}

.warn-box {
  border-color: #fde68a;
  background: #fffbeb;
}

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

.handoff-list.compact-list {
  gap: 8px;
  margin-top: 10px;
}

.handoff-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.section-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
  margin: 12px 0 16px;
  box-shadow: var(--shadow);
}

.section-panel.slim {
  box-shadow: none;
}

.section-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.section-heading-row h3 {
  margin: 0 0 4px;
}

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

table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  font-size: 13px;
}

th,
td {
  padding: 10px 8px;
  border-bottom: 1px solid #edf1f3;
  text-align: left;
  vertical-align: top;
}

th {
  color: #475467;
  font-size: 12px;
  font-weight: 700;
  background: #f8fafc;
}

tr.selectable {
  cursor: pointer;
}

.empty-state {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  color: var(--muted);
}

.empty-state strong {
  color: var(--ink);
}

tr.selectable:hover,
tr.selected {
  background: #ecfdf8;
}

.status.pass,
.status.accepted,
.status.available,
.status.current,
.status.none,
.status.clear,
.status.in_terms,
.status.paid,
.status.inspection_ready,
.status.ready_to_submit,
.status.requester_ready,
.status.supplier_ready,
.status.evidence_received,
.status.released,
.status.resolved,
.status.ready_with_warnings,
.tag.pass {
  color: var(--pass);
  border-color: #c7ead3;
  background: #f0fdf4;
}

.status.warning,
.status.needs_review,
.status.needs_remediation,
.status.review,
.status.future,
.status.ready_to_invoice,
.status.invoice_due,
.status.payable_ready,
.status.delivered_pending_reconciliation,
.status.expiring,
.status.approved_instruction_needed,
.status.awaiting_supplier_evidence,
.status.sent_evidence_pending,
.status.evidence_pending,
.status.onboarding_review,
.status.action_needed,
.tag.warning {
  color: var(--warn);
  border-color: #f6d488;
  background: #fffbeb;
}

.status.blocker,
.status.critical,
.status.hold,
.status.finance_hold,
.status.attention,
.status.dispute,
.status.overdue,
.status.overdue_receivable,
.status.payable_hold,
.status.open_dispute,
.status.expired,
.status.expired_blocker,
.status.missing_evidence,
.status.blocked_draft,
.status.privacy_facility_needed,
.status.contract_formulary_needed,
.status.supplier_assignment_needed,
.status.suspended,
.tag.blocker {
  color: var(--block);
  border-color: #fecaca;
  background: #fff1f2;
}

.status.approved,
.status.active,
.status.closed,
.status.locked,
.status.ready_to_close,
.status.approved_open,
.status.supplier_released,
.status.closed_reconciled,
.status.completed {
  color: var(--pass);
  border-color: #c7ead3;
  background: #f0fdf4;
}

.status.held,
.status.rejected,
.status.recalled,
.status.evidence_held,
.status.evidence_rejected,
.status.evidence_recalled,
.status.missing,
.status.due,
.status.high {
  color: var(--block);
  border-color: #fecaca;
  background: #fff1f2;
}

.status.medium,
.status.open,
.status.draft,
.status.generated,
.status.issued,
.status.not_invoiced,
.status.invoiced,
.status.open_settlement,
.status.not_ready {
  color: #1d4ed8;
  border-color: #bfdbfe;
  background: #eff6ff;
}

.status.low {
  color: var(--muted);
  border-color: var(--line);
  background: #f8fafc;
}

.status.attached {
  color: var(--pass);
  border-color: #c7ead3;
  background: #f0fdf4;
}

.status.npho_review,
.status.submitted,
.status.under_review,
.status.transfer_ready,
.status.transfer_open,
.status.supplier_instruction_sent,
.status.released_to_fulfillment,
.status.in_custody,
.status.received_pending_reconciliation {
  color: #1d4ed8;
  border-color: #bfdbfe;
  background: #eff6ff;
}

.status.superseded {
  color: var(--muted);
  border-color: var(--line);
  background: #f8fafc;
}

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

.timeline {
  display: grid;
  gap: 10px;
}

.timeline-item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.timeline-date {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  max-width: min(440px, calc(100vw - 36px));
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 36px rgba(16, 24, 40, 0.16);
  color: var(--ink);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 150ms ease, transform 150ms ease;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

.drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(15, 23, 42, 0.28);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(15, 23, 42, 0.36);
}

.drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 50;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(720px, 100vw);
  height: 100vh;
  background: #ffffff;
  border-left: 1px solid var(--line);
  box-shadow: -24px 0 60px rgba(15, 23, 42, 0.18);
  transform: translateX(100%);
  transition: transform 180ms ease;
}

.drawer.open {
  transform: translateX(0);
}

.drawer-header,
.drawer-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
}

.drawer-footer {
  border-top: 1px solid var(--line);
  border-bottom: 0;
  justify-content: flex-end;
  background: #fbfcfd;
}

.drawer-body {
  overflow: auto;
  padding: 18px 20px 28px;
}

.report-modal {
  position: fixed;
  inset: 42px;
  z-index: 70;
  display: none;
  grid-template-rows: auto minmax(0, 1fr);
  max-width: 1280px;
  margin: 0 auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28);
  overflow: hidden;
}

.report-modal.open {
  display: grid;
}

.report-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.report-modal-body {
  overflow: auto;
  padding: 20px;
  background: #fbfcfd;
}

.report-modal-body .print-area {
  min-height: 0;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
}

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

.two-column-window {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

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

.status-list li {
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}

.status-list li:last-child {
  border-bottom: 0;
}

.status-list span {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.45;
}

.icon-button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: #344054;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.drawer-form {
  display: grid;
  gap: 14px;
}

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

.route-conditional {
  grid-column: 1 / -1;
}

.field {
  display: grid;
  gap: 6px;
}

.field label {
  color: #475467;
  font-size: 12px;
  font-weight: 800;
}

.field.required-reason label::after {
  content: " required";
  color: var(--danger);
  font-weight: 800;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-width: 0;
}

textarea {
  min-height: 88px;
  border-radius: 8px;
  border: 1px solid var(--line);
  padding: 9px 10px;
  resize: vertical;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.detail {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 10px;
}

.detail span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 4px;
}

.detail-list {
  display: grid;
  margin-bottom: 16px;
  border-top: 1px solid #e4ecee;
}

.detail-list-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.62fr) minmax(0, 1fr);
  gap: 16px;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid #e4ecee;
}

.detail-list-row span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.detail-list-row strong {
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
}

.npho-review-panel .evidence-status-list {
  margin-top: 2px;
}

.drawer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 18px;
}

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

.endpoint {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfcfd;
}

.endpoint code {
  display: block;
  margin-top: 6px;
  color: #0f172a;
  word-break: break-word;
}

.request-route-summary,
.workflow-summary-panel {
  margin: 12px 0 16px;
}

.route-summary {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.route-summary.ready {
  border-color: #bfe8df;
  background: #ecfdf8;
}

.route-summary.blocked {
  border-color: #fecaca;
  background: #fff7f7;
}

.route-summary span {
  color: var(--muted);
  font-size: 13px;
}

.workflow-summary-panel {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.workflow-summary-panel .detail-grid {
  margin-bottom: 12px;
}

.workflow-summary-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.workflow-summary-step {
  display: grid;
  gap: 5px;
  min-height: 92px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.workflow-summary-step.ready {
  border-color: #bfe8df;
  background: #ecfdf8;
}

.workflow-summary-step.waiting {
  border-color: #f6d488;
  background: #fffbeb;
}

.workflow-summary-step span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.workflow-summary-step small {
  color: var(--muted);
  line-height: 1.35;
}

.npho-decision-workspace {
  margin: 12px 0 16px;
  padding: 14px;
  border: 1px solid #bfe8df;
  border-radius: 8px;
  background: #f8fffc;
}

.npho-decision-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(260px, 0.8fr) minmax(280px, 1fr);
  gap: 12px;
  align-items: start;
}

.npho-review-panel {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.npho-review-panel h4 {
  margin: 0 0 10px;
  font-size: 14px;
}

.npho-checklist {
  display: grid;
  gap: 8px;
}

.npho-check {
  display: grid;
  gap: 4px;
  min-height: 74px;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}

.npho-check.ready {
  border-color: #bfe8df;
  background: #ecfdf8;
}

.npho-check.waiting {
  border-color: #f6d488;
  background: #fffbeb;
}

.npho-check span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.npho-check small {
  color: var(--muted);
  line-height: 1.35;
  word-break: break-word;
}

.npho-decision-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 0.9fr);
  gap: 18px;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  align-items: start;
}

.decision-notes-block {
  display: grid;
  gap: 7px;
}

.decision-notes-block label,
.npho-action-group > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.decision-notes-block textarea {
  min-height: 132px;
  background: #ffffff;
}

.decision-notes-block span,
.npho-action-group p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.npho-action-panel {
  display: grid;
  gap: 12px;
}

.npho-action-group {
  display: grid;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e4ecee;
}

.npho-action-group:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.npho-action-group.primary-decision button {
  justify-self: start;
  min-width: 170px;
}

.npho-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.stage-action-grid.compact {
  grid-template-columns: repeat(auto-fit, minmax(128px, max-content));
}

.decision-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.decision-checklist span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.decision-checklist .complete {
  border-color: #c7ead3;
  color: var(--pass);
  background: #f0fdf4;
}

.decision-checklist .waiting {
  border-color: #f6d488;
  color: var(--warn);
  background: #fffbeb;
}

.print-area {
  min-height: 260px;
}

.report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 14px 0;
  color: var(--muted);
  font-size: 12px;
}

.required-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 12px 0 16px;
}

.required-fields span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 8px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.signature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.signature-line {
  border-top: 1px solid #98a2b3;
  padding-top: 8px;
  color: var(--muted);
  font-size: 12px;
}

/* R153 screen polish: softer surfaces, lighter typography, and compact formulary access rows without changing print output. */
body:not(.printing-controlled-document) :where(.topbar, .sidebar, .auth-login-card, .panel, .metric, .role-metric, .closeout-command-panel, .report-access-row, .report-bundle-summary, .operator-workspace-grid, .supplier-queue-panel, .operations-queue-panel, .section-panel, .report-modal, .drawer, .finance-ledger-panels section, .finance-closeout-panel, .finance-document-card, .finance-source-grid > section, .finance-payment-list, .finance-close-history > section, .workflow-card, .readiness-card, .workbench-filter-card, .locked-field, .onboarding-document-row, .stage-row.compact-lifecycle, .stage, .compact-lifecycle .stage, .eligibility-panel, .handoff-item, .evidence-slot, .workflow-summary-step, .npho-review-panel, .npho-check, .blocker-trail-step, .rule-fix-panel, .document-party-strip div, .document-number, .elegant-list div, .finance-report-card, .finance-source-metric, .formulary-access-row, .onboarding-operator-handoff) {
  background-color: var(--surface) !important;
}

body:not(.printing-controlled-document) :where(.operator-filter-row, .operator-table th, th, .supplier-queue-header, .operations-queue-header, .report-modal-body, .drawer-footer, .closeout-metric, .finance-report-intro, .finance-quick-action-bar, .finance-payment-form, .auth-gate-panel, .formulary-cost-note, .alias-strip span, .formulary-access-meta span, .formulary-access-prices span, .release-pill, .status, .tag) {
  background-color: var(--surface-quiet) !important;
}

body:not(.printing-controlled-document) :where(.role-summary, .workbench-filter-card.active, .workbench-filter-card:hover, .workbench-filter-card:focus-visible, .stage.complete, .readiness-chip.complete, .pass-box, .eligibility-panel.ready, .finance-workbench-summary, .npho-decision-workspace) {
  background-color: var(--accent-soft) !important;
}

body:not(.printing-controlled-document) :where(.report-bundle-summary.locked, .report-access-row.locked, .summary-badge, .stage.active, .stage.attention, .readiness-chip.attention, .warn-box, .workflow-summary-step.waiting) {
  background-color: #faf2df !important;
}

body:not(.printing-controlled-document) :where(.stage.blocked, .readiness-chip.blocked, .block-box, .eligibility-panel.blocked, .blocker-trail-step.blocked) {
  background-color: #f8e9e7 !important;
}

body:not(.printing-controlled-document) :where(input, select, textarea, button.secondary, .operator-toggle, .icon-button) {
  background-color: var(--surface) !important;
}

body:not(.printing-controlled-document) * {
  font-weight: 400 !important;
}

body:not(.printing-controlled-document) :where(.brand, .product-title, .release-pill, .status, .tag, .role-mode, .session-mode, .session-mode select, .session-avatar, .nav-button, .eyebrow, h1, h2, h3, h4, strong, b, label, th, button, .metric span, .metric strong, .role-metric span, .role-metric strong, .summary-line strong, .summary-badge, .closeout-label, .closeout-metric span, .operator-toggle, .operator-table th, .operator-row-link, .row-select-button, .priority-text, .operator-detail-meta span, .operator-tabs, .operator-note-form label, .operator-metric-card span:not(.operator-metric-mark), .finance-bucket-strip span, .finance-report-summary-strip span, .finance-report-intro span, .finance-period-controls select, .finance-period-controls input, .finance-report-card-stat span, .mini-panel-header span, .finance-source-metric span, .finance-source-metric small, .document-party-strip span, .document-number small, .elegant-list span, .document-party-strip strong, .document-number strong, .elegant-list strong, .membership-brief h2, .membership-facts span, .membership-facts strong, .drawer-section-title, .packet-card span, .role-hint strong, .readiness-title, .readiness-chip, .workbench-filter-card span, .invite-main span, .invite-meta span, .locked-field span, .locked-field strong, .onboarding-document-row strong, .stage, .compact-lifecycle .stage::after, .owner-blocker-row strong, .rule-fix-panel strong, .blocker-trail-step span, .workflow-summary-step span) {
  font-weight: 500 !important;
}

body:not(.printing-controlled-document) :where(.metric strong, .role-metric strong, .workbench-filter-card strong, .operator-metric-card strong, .finance-source-metric strong, .finance-report-card-stat strong, .finance-bucket-strip strong, .finance-report-summary-strip strong) {
  font-weight: 500 !important;
}

body:not(.printing-controlled-document) :where(.panel, .metric, .role-summary, .operator-workspace-grid, .report-modal, .auth-gate-panel, .drawer, .section-panel, .supplier-queue-panel, .operations-queue-panel) {
  box-shadow: 0 12px 34px rgba(30, 58, 64, 0.07);
}

@media (max-width: 1080px) {
  .auth-gate-panel {
    grid-template-columns: 0.9fr 1fr;
  }

  .metric-grid {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
  }

  .operator-metric-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }

  .operator-workspace-grid {
    grid-template-columns: 1fr;
  }

  .operator-ledger-ready-panel,
  .operator-ledger-ready-row {
    grid-template-columns: 1fr;
  }

  .formulary-access-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .formulary-access-main strong,
  .formulary-access-main span {
    white-space: normal;
  }

  .operator-handoff-row {
    grid-template-columns: 80px 130px minmax(0, 1fr);
  }

  .operator-handoff-row em {
    grid-column: 3;
  }

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

  .operator-queue-panel {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

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

  .onboarding-invite-row,
  .onboarding-readiness-row,
  .onboarding-document-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .invite-actions,
  .onboarding-readiness-actions {
    justify-content: flex-start;
  }

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

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

  .account-summary-card {
    grid-column: span 3;
  }

  .two-column {
    grid-template-columns: 1fr;
  }

  .scope-summary,
  .supplier-scope-summary {
    grid-template-columns: 1fr;
  }

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

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

  .finance-source-summary .compact-button {
    grid-column: 1 / -1;
    min-height: 44px;
  }

  .finance-source-grid {
    grid-template-columns: 1fr;
  }

  .finance-bucket-strip,
  .finance-report-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .queue-grid,
  .supplier-queue-grid,
  .operations-queue-grid,
  .role-dashboard-grid,
  .readiness-board,
  .packet-grid,
  .handoff-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .membership-brief {
    grid-template-columns: 1fr;
  }

  .stage-row {
    grid-template-columns: repeat(4, minmax(82px, 1fr));
  }

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

  .npho-decision-grid,
  .npho-decision-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  .portal-action-bar,
  .contracts-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-action-buttons,
  .contracts-filters {
    justify-content: flex-start;
  }

  .contracts-filters input,
  .contracts-filters select {
    width: 100%;
    max-width: none;
  }

  .auth-gate {
    padding: 18px;
  }

  .auth-gate-panel {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .auth-graphic {
    min-height: 220px;
  }

  .auth-login-card {
    padding: 28px;
  }

  .auth-login-card h1 {
    font-size: 26px;
  }

  .operator-handoff-header,
  .onboarding-manual-banner {
    align-items: flex-start;
    flex-direction: column;
  }

  .operator-handoff-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .operator-handoff-row em {
    grid-column: auto;
  }

  .topbar {
    height: auto;
    min-height: 64px;
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    padding: 14px 16px;
  }

  .connection {
    margin-left: 0;
  }

  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    display: flex;
    overflow-x: auto;
    gap: 6px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .nav-button {
    width: auto;
    white-space: nowrap;
  }

  .workspace {
    padding: 16px;
  }

  .onboarding-manual-banner {
    align-items: flex-start;
    flex-direction: column;
  }

  .onboarding-manual-banner small {
    text-align: left;
    white-space: normal;
  }

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

  .workflow-summary-steps {
    grid-template-columns: 1fr;
  }

  .report-modal {
    inset: 10px;
  }

  .report-modal-body {
    padding: 12px;
  }

  .two-column-window {
    grid-template-columns: 1fr;
  }

  .metric-grid {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
  }

  .closeout-layout,
  .closeout-status-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .closeout-metric-grid {
    align-items: stretch;
  }

  .closeout-metric {
    flex: 1 1 130px;
  }

  .closeout-row-item,
  .closeout-history-item {
    grid-template-columns: 10px minmax(0, 1fr);
    align-items: start;
  }

  .closeout-row-item > .status,
  .closeout-row-meta,
  .closeout-row-hash,
  .closeout-row-actions,
  .closeout-history-item > .status {
    grid-column: 2;
  }

  .closeout-row-actions {
    justify-content: flex-start;
  }

  .operator-metric-grid,
  .operator-detail-grid,
  .operator-detail-meta,
  .operator-filter-row {
    grid-template-columns: 1fr;
  }

  .operator-workspace-grid {
    border-radius: 0;
    margin-inline: -16px;
    border-left: 0;
    border-right: 0;
  }

  .operator-table {
    min-width: 760px;
  }

  .operator-panel-header,
  .operator-detail-top,
  .operator-action-footer,
  .operator-note-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .operator-inline-actions.tight {
    justify-content: flex-start;
  }

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

  .invite-actions,
  .invite-meta {
    align-items: stretch;
    flex-direction: column;
  }

  .account-summary-card {
    grid-column: 1 / -1;
  }

  .field-grid,
  .detail-grid,
  .finance-source-summary,
  .finance-source-grid,
  .finance-report-card-grid,
  .finance-close-history,
  .finance-bucket-strip,
  .finance-report-summary-strip,
  .scope-metric-grid,
  .supplier-metric-grid,
  .supplier-queue-grid,
  .operations-queue-grid,
  .queue-grid,
  .role-dashboard-grid,
  .readiness-board,
  .packet-grid,
  .workbench-grid,
  .npho-decision-grid,
  .npho-decision-form,
  .evidence-grid,
  .document-party-strip,
  .document-totals,
  .handoff-list,
  .signature-grid {
    grid-template-columns: 1fr;
  }

  .membership-brief {
    padding: 20px;
  }

  .membership-brief h2 {
    font-size: 28px;
  }

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

  .eligibility-row {
    grid-template-columns: 1fr;
  }

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

  .role-mode {
    margin-left: 0;
  }

  .report-form,
  .report-form select,
  .compact-range,
  .compact-range input {
    width: 100%;
  }

  .stage-row {
    grid-template-columns: repeat(2, minmax(82px, 1fr));
  }

  .finance-document-heading {
    display: grid;
  }

  .document-number {
    min-width: 0;
    text-align: left;
  }
}

@page {
  size: letter portrait;
  margin: 0.45in;
}

@media print {
  html,
  body {
    width: auto !important;
    min-width: 0 !important;
    color: #101828;
    font-size: 9.5pt;
    line-height: 1.35;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body {
    background: #ffffff;
  }

  body.printing-controlled-document > *:not(#reportModal) {
    display: none !important;
  }

  .topbar,
  .sidebar,
  .view-header,
  .panel:not(.print-area),
  .toast,
  .drawer,
  .drawer-backdrop,
  .modal-backdrop,
  .report-modal-header,
  button {
    display: none !important;
  }

  .shell,
  .workspace,
  .view,
  .view.active,
  .report-modal,
  .report-modal.open,
  .report-modal-body {
    display: block;
    padding: 0;
    position: static;
    inset: auto;
    width: auto;
    max-width: none;
    height: auto;
    max-height: none;
    overflow: visible;
    box-shadow: none;
    border: 0;
    background: #ffffff;
  }

  body.printing-controlled-document #reportModalBody > *:not([data-controlled-print-active]) {
    display: none !important;
  }

  .print-area {
    display: block !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none;
    border: 0;
    border-radius: 0;
    background: #ffffff !important;
  }

  body.printing-controlled-document .print-area:not([data-controlled-print-active]) {
    display: none !important;
  }

  .print-area .panel-header,
  .print-area .closeout-window-cover {
    display: flex !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 0 0 10px;
    margin: 0 0 12px;
    border-bottom: 2px solid #12314a;
    background: #ffffff !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .print-area .eyebrow {
    margin: 0 0 5px;
    color: #064e4b !important;
    font-size: 8pt;
    letter-spacing: 1.5px;
  }

  .print-area h2 {
    margin: 0;
    color: #12314a;
    font-size: 17pt;
    line-height: 1.15;
  }

  .print-area h3,
  .print-area h4 {
    color: #12314a;
    break-after: avoid;
    page-break-after: avoid;
  }

  .print-area h3 {
    margin: 16px 0 7px;
    font-size: 11pt;
  }

  .print-area h4 {
    margin: 12px 0 6px;
    font-size: 9.5pt;
  }

  .report-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px 12px;
    margin: 8px 0 12px;
    color: #344054;
    font-size: 8pt;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .detail {
    min-height: 0;
    padding: 7px 8px;
    border-color: #cbd5e1;
    background: #ffffff !important;
    color: #101828;
    font-size: 8.5pt;
  }

  .detail span,
  .detail-list-row span {
    color: #475467;
    font-size: 7.5pt;
  }

  .table-wrap {
    max-width: none;
    overflow: visible !important;
    border: 0;
  }

  table {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    font-size: 7.5pt;
  }

  thead {
    display: table-header-group;
  }

  tfoot {
    display: table-footer-group;
  }

  tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  th,
  td {
    padding: 5px 6px;
    border-bottom: 1px solid #d9e2e7;
    vertical-align: top;
    word-break: break-word;
  }

  th {
    color: #344054;
    background: #f5f7f9 !important;
    font-size: 7pt;
  }

  .status {
    border-color: #cbd5e1 !important;
    background: #ffffff !important;
    color: #101828 !important;
  }

  .required-fields,
  .signature-grid,
  .finance-bucket-strip,
  .finance-report-summary-strip,
  .document-party-strip,
  .closeout-metric-grid,
  .window-section,
  .finance-document-card,
  .bundle-report-section,
  .explain-box,
  .rule-fix-panel,
  .report-bundle-summary {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .window-actions,
  .button-row,
  .print-area button {
    display: none !important;
  }

  .print-area .link-button {
    display: inline !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    text-align: left !important;
  }

  .signature-grid {
    gap: 16px;
    margin-top: 18px;
  }

  .signature-line {
    min-height: 28px;
    border-top-color: #475467;
    color: #344054;
    font-size: 8pt;
  }
}

/* R307: settlement-authority line under the transfer finance window header */
.finance-settlement-authority {
  margin: 0 0 12px;
  font-size: 0.92rem;
  color: inherit;
}

/* R310: payment form status line and pending toast */
.finance-payment-status { margin: 6px 0 0; font-weight: 600; }
.finance-payment-status[data-kind="pending"] { color: #6b5b00; }
.finance-payment-status[data-kind="error"] { color: #a12020; }
.finance-payment-notice { margin: 10px 0; }
.toast.toast-pending { border-left: 4px solid #c99a00; }
button[aria-busy="true"] { cursor: progress; opacity: 0.75; }

/* ===== R313: desk simplification ===== */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; margin: -1px; }
.desk-role-line { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.connection-line { position: absolute; top: 4px; right: 4px; }
.session-mode { position: relative; }
.connection-dot { width: 9px; height: 9px; box-shadow: 0 0 0 2px #fff; cursor: help; }
.connection-dot.connected { background: var(--pass); }
.connection-dot.syncing { background: #d4a017; }
.connection-dot.offline { background: var(--block); }
.portal-action-context[data-r313-desk] { display: grid; gap: 1px; }
.portal-action-context[data-r313-desk] span { font-size: 11px; color: var(--muted); text-transform: none; letter-spacing: 0; }

/* B1 My next actions */
.r313-next-actions { border-left: 4px solid var(--accent); }
.r313-next-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.r313-next-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.r313-next-copy { display: grid; gap: 2px; min-width: 0; }
.r313-next-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r313-next-copy small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r313-waiting { margin: 8px 0 0; font-size: 12px; }

/* B2 one primary + More */
.mini-action-row { align-items: center; }
.mini-action-row .r313-primary.link-button { font-weight: 700; }
details.more-menu { position: relative; display: inline-block; }
details.more-menu > summary { list-style: none; cursor: pointer; padding: 2px 8px; border: 1px solid var(--line); border-radius: 6px; font-size: 12px; color: var(--muted); background: #fff; user-select: none; }
details.more-menu > summary::-webkit-details-marker { display: none; }
details.more-menu > summary::after { content: " \25BE"; }
details.more-menu[open] > summary { color: var(--ink); border-color: var(--accent-rule); }
.more-menu-list { position: absolute; right: 0; z-index: 30; min-width: 170px; margin-top: 4px; padding: 4px; display: grid; gap: 2px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); }
.more-menu-list .more-menu-item { display: block; width: 100%; text-align: left; padding: 6px 8px; border-radius: 6px; white-space: nowrap; }
.more-menu-list .more-menu-item:hover { background: var(--accent-soft); }

/* B3 short refs + details */
.ref-chip { display: inline-flex; align-items: center; padding: 1px 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-quiet); color: var(--ink); font: 12px ui-monospace, SFMono-Regular, Menlo, monospace; cursor: copy; }
.ref-chip:hover { border-color: var(--accent-rule); background: var(--accent-soft); }
details.r313-ref-details { margin: 8px 0 4px; font-size: 12px; }
details.r313-ref-details > summary { cursor: pointer; color: var(--muted); font-weight: 600; }
details.r313-ref-details dl { display: grid; gap: 4px; margin: 6px 0 0; }
details.r313-ref-details dl > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 8px; }
details.r313-ref-details dt { color: var(--muted); }
details.r313-ref-details dd { margin: 0; word-break: break-all; }
details.r313-ref-details code { font-size: 11px; }

/* B4 one chip style */
.status.r313-chip, .readiness-chip.r313-chip { border-radius: 999px; font-weight: 600; font-size: 12px; text-transform: none; }
.status.tone-waiting, .readiness-chip.tone-waiting { background: #f2f4f7; border-color: #d0d5dd; color: #475467; }
.status.tone-action, .readiness-chip.tone-action { background: #fff5e0; border-color: #f0c36d; color: #8a5a00; }
.status.tone-progress, .readiness-chip.tone-progress { background: #e8f1fb; border-color: #a9c8ec; color: #1f5b99; }
.status.tone-done, .readiness-chip.tone-done { background: #e6f4ec; border-color: #9fd3b4; color: #1e6b45; }
.status.tone-problem, .readiness-chip.tone-problem { background: #fdecea; border-color: #f1aaa3; color: #9b2c22; }

/* B5 empty sections */
.r313-empty-line { grid-column: 1 / -1; margin: 0; padding: 8px 10px; border: 1px dashed var(--line); border-radius: 8px; font-size: 12px; }
.panel.r313-collapsed { padding-top: 10px; padding-bottom: 10px; }
.panel.r313-collapsed > :not(.panel-header) { display: none !important; }
.panel.r313-collapsed > .panel-header { margin: 0; }
.panel.r313-collapsed > .panel-header::after { content: "Nothing here right now"; color: var(--muted); font-size: 12px; font-weight: 500; }
.r313-nothing { margin: 4px 0; }

/* B8 slim tables */
.r313-table { position: relative; }
.r313-table .table-wrap { max-height: 520px; overflow: auto; }
.r313-table thead th { position: sticky; top: 0; z-index: 2; box-shadow: inset 0 -1px 0 var(--line); }
.r313-col-hidden { display: none; }
.r313-table tbody tr:has([data-open-transfer], [data-open-request], [data-open-drilldown], [data-open-finance], [data-open-instruction-packet], [data-open-finance-invoice], [data-open-packet]) { cursor: pointer; }
.r313-table tbody tr:hover { background: #f4faf8; }
details.r313-columns { display: flex; justify-content: flex-end; margin: 0 0 4px; font-size: 12px; position: relative; }
details.r313-columns > summary { cursor: pointer; color: var(--muted); list-style: none; padding: 2px 8px; border: 1px solid var(--line); border-radius: 6px; background: #fff; margin-left: auto; width: max-content; }
details.r313-columns > summary::-webkit-details-marker { display: none; }
.r313-columns-menu { position: absolute; right: 0; top: 26px; z-index: 31; display: grid; gap: 4px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); min-width: 200px; }
.r313-columns-menu label { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.print-area .r313-col-hidden, .report-modal .print-area .r313-col-hidden { display: table-cell; }
.print-area details.r313-columns { display: none; }
.print-area .r313-table .table-wrap { max-height: none; overflow: visible; }
@media print {
  .r313-col-hidden { display: table-cell !important; }
  details.r313-columns, details.more-menu > summary { display: none !important; }
  .r313-table .table-wrap { max-height: none !important; overflow: visible !important; }
}

/* B9 forms */
.r313-required > span:first-child::after, label.r313-required:not(:has(span))::after { content: " *"; color: var(--block); font-weight: 700; }
.r313-helper { margin: 2px 0 8px; font-size: 12px; }
.r313-suggest-ref { justify-self: start; margin-top: 4px; font-size: 12px; }
form.r313-reviewing .field-grid, form.r313-reviewing > label { opacity: 0.75; pointer-events: none; }
form.r313-reviewing [data-finance-payment-submit] { display: none; }
.r313-payment-confirm dl.r313-confirm-list { display: grid; gap: 4px; margin: 8px 0; }
.r313-payment-confirm dl.r313-confirm-list > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px; }
.r313-payment-confirm dt { color: var(--muted); }
.r313-payment-confirm dd { margin: 0; font-weight: 700; word-break: break-all; }

/* B10 feedback */
.toast.toast-pending { padding-left: 38px; }
.toast.toast-pending::before { content: ""; position: absolute; left: 14px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border: 2px solid #c99a00; border-right-color: transparent; border-radius: 50%; animation: r313-spin 0.8s linear infinite; }
.toast.toast-success { border-left: 4px solid var(--pass); }
.toast.toast-error { border-left: 4px solid var(--block); pointer-events: auto; cursor: pointer; }
@keyframes r313-spin { to { transform: rotate(360deg); } }
button[aria-busy="true"] { cursor: progress; opacity: 0.8; }

/* ===== R314: desk focus ===== */
/* Tabs (Supplier QA To do / Done, ColdShip Open Transfers) */
.r314-tabs { display: flex; gap: 2px; margin: 2px 0 8px; border-bottom: 1px solid var(--line); }
.r314-tab { padding: 6px 12px; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; background: transparent; color: var(--muted); font-size: 12px; font-weight: 600; cursor: pointer; margin-bottom: -1px; }
.r314-tab.active { background: #fff; color: var(--ink); border-color: var(--line); border-bottom: 2px solid var(--accent); }
.r314-tab-pane[hidden] { display: none !important; }
.r314-footnote, .r314-more { margin: 8px 0 0; font-size: 12px; }
/* Compliance Open / Closed filter */
.r314-filter { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 12px; }
.r314-fchip { padding: 3px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 12px; cursor: pointer; }
.r314-fchip.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.r314-empty-sections { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 8px 12px; border: 1px dashed var(--line); border-radius: 8px; font-size: 12px; color: var(--muted); }
.r314-empty-sections strong { color: var(--ink); }
.panel.r314-folded { display: none !important; }
/* Approver groups */
.r314-group-note { margin: 0 0 8px; }
.r314-groups { display: grid; gap: 8px; }
.r314-group { border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.r314-group-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 8px 10px; }
.r314-group.open .r314-group-head { border-bottom: 1px solid var(--line); }
.r314-group-toggle { width: 26px; height: 26px; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 14px; cursor: pointer; }
.r314-group-table { padding: 4px 10px 8px 46px; max-height: 420px; overflow: auto; }
.r314-group-table table { width: 100%; }
.r314-group-table th { font-size: 11px; color: var(--muted); font-weight: 600; text-align: left; }
.r314-waiting strong { color: var(--ink); font-weight: 600; }
/* Clinic: latest contract version + History */
details.r314-hist { margin: -2px 0 6px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-quiet, #f7faf9); font-size: 12px; }
details.r314-hist > summary { cursor: pointer; font-weight: 600; color: var(--ink); }
details.r314-hist > .formulary-access-list { margin-top: 6px; }
.r314-hist-none { margin: -2px 0 6px; font-size: 12px; }
.r314-latest-access { min-width: 0; }
.r314-latest-access .formulary-access-row { grid-template-columns: minmax(0, 1fr) max-content max-content; grid-template-areas: "main action status" "meta meta meta"; row-gap: 6px; min-width: 0; }
.r314-latest-access .formulary-access-row > .formulary-access-main { grid-area: main; }
.r314-latest-access .formulary-access-row > .formulary-access-meta { grid-area: meta; }
.r314-latest-access .formulary-access-row > .link-button { grid-area: action; font-size: 12px; white-space: nowrap; }
.r314-latest-access .formulary-access-row > .status { grid-area: status; }
.r314-latest-access .formulary-access-meta > span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r314-latest-access .formulary-access-main, .r314-latest-access .formulary-access-meta { min-width: 0; }
.r314-latest-access .formulary-access-meta { flex-wrap: wrap; }
/* Finance tiles + invoice table */
.finance-metric-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.r314-tile-blocked { border-color: #f1aaa3 !important; }
.r314-tile-blocked strong { color: var(--block, #9b2c22); }
.r314-invoice-table { margin: 8px 0 14px; }
.r314-invoice-table table { width: 100%; }
.r314-invoice-table td { white-space: nowrap; vertical-align: middle; }
.r314-invoice-table .r314-amount { margin-right: 4px; }
/* Supplier scope slim line */
.panel.r314-scope-slim-panel { padding-top: 8px; padding-bottom: 8px; }
details.r314-slim-scope > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; cursor: pointer; }
details.r314-slim-scope > summary::-webkit-details-marker { display: none; }
.r314-slim-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; font-size: 13px; }
.r314-dot { color: var(--muted); }
.r314-slim-details { flex: none; font-size: 12px; font-weight: 700; color: var(--ink); }
.r314-slim-details::after { content: " \25B8"; }
details.r314-slim-scope[open] .r314-slim-details::after { content: " \25BE"; }
.r314-slim-body { margin-top: 10px; }
/* Sidebar section label (Admin tools) */
.nav-section-label { margin: 12px 8px 4px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
/* Archive preview */
.r314-archive-copy { margin: 0 0 10px; font-size: 12px; }
.r314-archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.r314-archive-tile { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.r314-archive-tile strong { font-size: 22px; }
.r314-archive-tile span { font-size: 12px; color: var(--muted); }
.r314-archive-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 10px; }
.r314-archive-note { margin: 0; font-size: 12px; color: var(--muted); }
.r314-archive-note strong { color: var(--ink); }
.r314-archive-group { margin-top: 12px; }
.r314-archive-group h3 { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 0 0 6px; }
.r314-diag-note { margin: 0 0 12px; }
@media (max-width: 760px) {
  .r314-archive-grid { grid-template-columns: 1fr; }
  .r314-group-head { grid-template-columns: auto minmax(0, 1fr); }
  .r314-group-table { padding-left: 10px; }
}

/* R314: header activity spinner next to the connection dot. Space is always reserved (no layout shift); only
   visibility changes. Reduced motion: a static dot, no spinning. The page cursor is never changed. */
.connection-line .r314-busy {
  display: inline-block;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 12px;
  height: 12px;
  margin-left: 6px;
  vertical-align: middle;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-right-color: transparent;
  opacity: 0.7;
  visibility: hidden;
}
.connection-line .r314-busy.is-active { visibility: visible; animation: r314-spin 0.8s linear infinite; }
@keyframes r314-spin { to { transform: rotate(360deg); } }
/* Write buttons: small inline spinner while the button's own request runs (the button stays disabled). */
button[aria-busy="true"] { cursor: default; }
button[aria-busy="true"]::before {
  content: "";
  display: inline-block;
  box-sizing: border-box;
  width: 0.85em;
  height: 0.85em;
  margin-right: 0.4em;
  vertical-align: -0.1em;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-right-color: transparent;
  animation: r314-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .connection-line .r314-busy.is-active { animation: none; border-right-color: currentColor; background: currentColor; transform: scale(0.6); }
  button[aria-busy="true"]::before { animation: none; border-right-color: currentColor; background: currentColor; transform: scale(0.6); }
}

/* ===== R315 ===== */
/* 4b: hover is a light neutral tint, never the selected (green) style; the selected item also gets a left bar. */
.nav-button:hover:not(.active) {
  background: #f2f4f7;
  border-color: transparent;
  color: #344054;
}
.nav-button.active,
.nav-button[aria-current="page"] {
  background: #ecfdf8;
  border-color: #bfe8df;
  color: var(--accent-dark);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--accent-dark);
}
/* 7: loading placeholders */
.r315-desk-loading[aria-busy="true"]::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 7px;
  border: 2px solid #bfe8df;
  border-top-color: var(--accent-dark);
  border-radius: 50%;
  vertical-align: -1px;
  animation: r315-spin 0.9s linear infinite;
}
.r315-desk-loading[data-r315-desk-state="failed"] { color: #b42318; }
@keyframes r315-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .r315-desk-loading[aria-busy="true"]::before { animation: none; } }
.summary-badge.r315-pending { opacity: 0.7; }
.r315-tiles-note { grid-column: 1 / -1; margin: 2px 0 0; }
/* 3: tile hint under a label */
.r315-tile-hint { display: block; font-size: 11px; color: #667085; font-weight: 400; margin-top: 2px; }
/* 2: invoice filter */
.r315-invoice-filter { margin: 6px 0 8px; }
.r315-custody-reconcile { margin-top: 6px; }
/* R316 onboarding + Contract Builder redesign. Ported from the approved mockup components (onboarding-redesign/src/mk.css,
   .mk-* -> .r316-*) on top of the live styles; mockup-only chrome rules are not included. */
.r316-ex{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7a5b12;background:#fdf3dc;border:1px solid #efd9a6;border-radius:999px;padding:2px 7px;vertical-align:middle;margin-left:6px}
/* header */
.r316-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.r316-head h1{font-size:28px;font-weight:600;letter-spacing:-.01em;margin:0}
.r316-head .sub{margin:4px 0 0;color:var(--muted);font-size:13.5px}
.r316-head .acts{display:flex;gap:8px;align-items:center}
.r316-back{font-size:12.5px;color:var(--accent-dark);font-weight:600;margin-bottom:6px;display:inline-block}
/* card */
.r316-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px rgba(30,58,64,.04)}
.r316-card+.r316-card{margin-top:14px}
.r316-card h2{font-size:16px;font-weight:650;margin:0;color:var(--ink)}
.r316-card h3{font-size:14px;font-weight:650;margin:0;color:var(--ink)}
.r316-card .hint{color:var(--muted);font-size:12.5px;margin:3px 0 0}
.r316-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.r316-row{display:flex;gap:14px;align-items:flex-start}
.r316-grid2{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.r316-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.r316-muted{color:var(--muted)}
/* pills */
.r316-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent}
.r316-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.r316-pill.done{color:#1f6f4a;background:#effaf3;border-color:#c7ead3}
.r316-pill.need{color:#8a5a0c;background:#fff7e6;border-color:#f1d7a3}
.r316-pill.wait{color:#4d5b66;background:#f1f4f6;border-color:#d7dee3}
.r316-pill.live{color:#fff;background:var(--accent);border-color:var(--accent)}
.r316-pill.todo{color:#8193a0;background:#fff;border-color:#dde5e8}
.r316-pill.block{color:#9c3b33;background:#fdf1ef;border-color:#f1cbc5}
/* stepper */
.r316-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 10px 12px;margin-bottom:14px}
.r316-step{position:relative;text-align:center;padding:0 6px}
.r316-step::after{content:"";position:absolute;top:15px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:#dbe6e6}
.r316-step:last-child::after{display:none}
.r316-step.done::after{background:#7cc3a0}
.r316-dot{width:32px;height:32px;border-radius:50%;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;border:2px solid #cfdcdc;color:#7b8f92;background:#fff;position:relative;z-index:1}
.r316-step.done .r316-dot{background:#267b55;border-color:#267b55;color:#fff}
.r316-step.need .r316-dot{border-color:#d49a2a;color:#8a5a0c;background:#fff7e6}
.r316-step.wait .r316-dot{border-color:#9aa8b2;color:#4d5b66;background:#f1f4f6}
.r316-step.cur .r316-dot{box-shadow:0 0 0 4px rgba(13,93,97,.15);border-color:var(--accent);}
.r316-step b{display:block;font-size:12.5px;font-weight:650;color:var(--ink);line-height:1.25}
.r316-step small{display:block;font-size:11.5px;margin-top:2px;color:var(--muted)}
.r316-step.done small{color:#1f6f4a}.r316-step.need small{color:#8a5a0c}.r316-step.wait small{color:#4d5b66}
.r316-step.cur b{color:var(--accent-dark)}
/* next box */
.r316-next{display:flex;align-items:center;gap:16px;border:1px solid #bfe0dc;background:linear-gradient(90deg,#f0f8f6,#fff);border-radius:12px;padding:14px 18px;margin-bottom:14px}
.r316-next .ic{width:38px;height:38px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;flex:none}
.r316-next .tx{flex:1;min-width:0}
.r316-next .tx span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#557a80;font-weight:700}
.r316-next .tx strong{display:block;font-size:16px;font-weight:650;margin-top:2px}
.r316-next .tx p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.r316-next button.primary{min-height:42px;padding:9px 18px;font-size:14px;white-space:nowrap}
/* key-values */
.r316-kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 10px;font-size:13px;margin:0}
.r316-kv dt{color:var(--muted)}
.r316-kv dd{margin:0;color:var(--ink);font-weight:500;min-width:0;overflow-wrap:anywhere}
.r316-sec{border:1px solid #dbe7e7;border-radius:10px;padding:12px 14px;background:#fff}
.r316-sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}
.r316-sec-h h3{font-size:13.5px;font-weight:650;margin:0;display:flex;align-items:center;gap:8px}
.r316-edit{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;background:transparent;color:var(--accent-dark);font-weight:600;font-size:12.5px;padding:3px 7px;border-radius:6px;cursor:pointer}
.r316-edit svg{width:13px;height:13px}
.r316-sec.editing{border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,93,97,.12)}
/* forms */
.r316-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600;min-width:0}
.r316-f input,.r316-f select,.r316-in{min-width:0;width:100%;min-height:36px;font-size:13.5px;font-weight:500;color:var(--ink)}
.r316-f .err{color:#9c3b33;font-weight:500}
.r316-fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.r316-btns{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.r316-root button.sm{min-height:32px;padding:5px 12px;font-size:12.5px}
.r316-root button.lg{min-height:44px;padding:10px 20px;font-size:14.5px}
.r316-root button[disabled].primary{background:#b8cfcf;cursor:not-allowed}
/* search */
.r316-search{position:relative;flex:1}
.r316-search input{width:100%;min-width:0;padding-left:34px;min-height:40px;font-size:14px;border-radius:10px}
.r316-search::before{content:"";position:absolute;left:12px;top:12px;width:12px;height:12px;border:2px solid #7b8f92;border-radius:50%}
.r316-search::after{content:"";position:absolute;left:24px;top:25px;width:6px;height:2px;background:#7b8f92;transform:rotate(45deg)}
/* filters */
.r316-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.r316-fchip{padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;font-weight:600;color:var(--ink)}
.r316-fchip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.r316-fchip .n{margin-left:6px;opacity:.75;font-weight:500}
/* list */
.r316-list{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.r316-lh,.r316-li{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.25fr) 150px minmax(0,1.4fr) 70px 90px;gap:14px;align-items:center;padding:11px 16px}
.r316-lh{font-size:11.5px;color:var(--muted);font-weight:650;background:var(--surface-quiet);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em}
.r316-li{border-bottom:1px solid #e6efee;font-size:13px}
.r316-li:last-child{border-bottom:0}
.r316-li strong{font-size:13.5px;font-weight:650;display:block}
.r316-li small{color:var(--muted);font-size:12px;display:block;margin-top:1px}
.r316-bar{height:7px;border-radius:99px;background:#e3eded;overflow:hidden}
.r316-bar i{display:block;height:100%;background:var(--accent);border-radius:99px}
.r316-bar.full i{background:#267b55}
.r316-prog{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.r316-prog .r316-bar{flex:1}
.r316-days{font-variant-numeric:tabular-nums;color:var(--ink)}
.r316-days.late{color:#9c3b33;font-weight:600}
/* banner */
.r316-warn{display:flex;gap:12px;align-items:flex-start;border:1px solid #f1d7a3;background:#fffaf0;border-radius:10px;padding:12px 14px;font-size:13px;color:#5f4410}
.r316-warn .i{flex:none;width:22px;height:22px;border-radius:50%;background:#d49a2a;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.r316-warn strong{color:#3d2a00}
.r316-warn .b{display:flex;gap:8px;margin-top:8px}
.r316-info{border:1px solid #cfe5e2;background:#f3faf8;border-radius:10px;padding:10px 12px;font-size:12.5px;color:#2f5658}
.r316-ok{display:flex;gap:10px;align-items:center;border:1px solid #c7ead3;background:#f3fbf6;border-radius:10px;padding:10px 12px;font-size:13px;color:#1f5b40}
/* area cards */
.r316-area{border:1px solid #dbe7e7;border-radius:10px;padding:13px 14px;background:#fff;display:flex;flex-direction:column;gap:8px;min-height:128px}
.r316-area.missing{border-style:dashed;border-color:#e1c27d;background:#fffcf4}
.r316-area.off{background:var(--surface-quiet);border-style:dashed}
.r316-area-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.r316-area-h b{font-size:13.5px;font-weight:650}
.r316-area p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.4}
.r316-area p strong{color:var(--ink);font-weight:600}
.r316-area .ft{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px}
.r316-check{width:20px;height:20px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none}
.r316-check.y{background:#267b55;color:#fff}.r316-check.n{border:2px dashed #d49a2a;color:#d49a2a}.r316-check.w{background:#f1f4f6;border:1px solid #9aa8b2;color:#4d5b66}
/* toggle */
.r316-tg{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink);font-weight:600}
.r316-tg i{cursor:pointer;width:34px;height:20px;border-radius:99px;background:#cbd8d8;position:relative;flex:none}
.r316-tg i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.r316-tg.on i{background:var(--accent)}
.r316-tg.on i::after{left:16px}
/* segmented */
.r316-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;background:var(--surface-quiet);padding:3px;gap:2px}
.r316-seg span{padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted)}
.r316-seg span.on{background:#fff;color:var(--accent-dark);box-shadow:0 1px 3px rgba(30,58,64,.15)}
/* picker */
.r316-pick{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;display:flex;align-items:center;gap:12px;min-width:0}
.r316-pick .av{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none}
.r316-pick .av.s{background:#eef1fb;color:#3b4a8a}
.r316-pick .t{flex:1;min-width:0}
.r316-pick .t span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.r316-pick .t strong{display:block;font-size:15.5px;font-weight:650;margin-top:1px}
.r316-pick .t small{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.r316-pick .chev{color:var(--muted);font-size:14px}
/* table */
.r316-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.r316-tbl th{font-size:11.5px;color:var(--muted);text-align:left;padding:8px 8px;border-bottom:1px solid var(--line);font-weight:650;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:var(--surface-quiet)}
.r316-tbl td{padding:7px 8px;border-bottom:1px solid #e6efee;vertical-align:middle}
.r316-tbl td.num,.r316-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.r316-tbl input,.r316-tbl select{min-width:0;width:100%;min-height:34px;padding:6px 8px;font-size:13px}
.r316-tbl input.num{text-align:right;font-variant-numeric:tabular-nums}
.r316-tbl .x{width:28px;height:28px;border-radius:7px;border:1px solid transparent;background:transparent;color:#8193a0;font-size:16px;line-height:1;cursor:pointer}
.r316-tbl tr.warnrow td{background:#fffbf2}
.r316-margin{font-weight:650;color:#1f6f4a;font-variant-numeric:tabular-nums;white-space:nowrap}
.r316-margin small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.r316-add{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--accent-rule);background:#f6fbfa;color:var(--accent-dark);font-weight:650;font-size:13px;padding:8px 14px;border-radius:8px;margin-top:10px}
/* summary */
.r316-sum{position:sticky;top:76px}
.r316-stat{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid #e6efee;font-size:13px}
.r316-stat:last-of-type{border-bottom:0}
.r316-stat span{color:var(--muted)}
.r316-stat strong{font-size:15px;font-variant-numeric:tabular-nums}
.r316-big{font-size:28px;font-weight:700;color:var(--accent-dark);letter-spacing:-.01em}
.r316-wl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.r316-wl li{border-radius:9px;padding:9px 11px;font-size:12.5px;line-height:1.4}
.r316-wl li.w{background:#fffaf0;border:1px solid #f1d7a3;color:#5f4410}
.r316-wl li.i{background:#f3faf8;border:1px solid #cfe5e2;color:#2f5658}
.r316-wl li strong{color:var(--ink)}
.r316-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.r316-foot p{margin:0;font-size:12.5px;color:var(--muted)}
/* review */
.r316-rv{display:grid;grid-template-columns:28px 170px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid #e6efee;font-size:13px}
.r316-rv:last-child{border-bottom:0}
.r316-rv b{font-weight:650}
.r316-rv .d{color:var(--muted)}
.r316-rv .d strong{color:#8a5a0c;font-weight:650}
/* intake */
.r316-intake-wrap{max-width:860px;margin:0 auto;padding:28px 20px 60px}
.r316-isteps{display:flex;gap:8px;margin:14px 0 18px}
.r316-isteps div{flex:1;border-top:4px solid #dbe6e6;padding-top:7px;font-size:12px;color:var(--muted);font-weight:600}
.r316-isteps div.done{border-color:#267b55;color:#1f6f4a}
.r316-isteps div.cur{border-color:var(--accent);color:var(--accent-dark)}
.r316-drop{border:1.5px dashed var(--accent-rule);border-radius:10px;background:#f6fbfa;padding:14px;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.r316-drop strong{color:var(--ink)}
.r316-file{display:flex;align-items:center;gap:10px;border:1px solid #dbe7e7;border-radius:10px;padding:10px 12px;font-size:13px;background:#fff}
.r316-file .fi{width:30px;height:36px;border-radius:5px;background:#e9f3f1;color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}
/* overlay */
.r316-overlay{position:fixed;inset:0;background:rgba(34,56,59,.35);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding-top:80px}
.r316-modal{width:600px;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(20,40,44,.3);padding:22px 24px}
.r316-modal h2{margin:0;font-size:19px;font-weight:650}
.r316-dim{opacity:.55}
.r316-chk{color:#267b55;font-weight:800}
.r316-edit::before{content:"";width:13px;height:13px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 17.25V21h3.75L17.8 9.94l-3.75-3.75L3 17.25zm17.7-10.2a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/></svg>") center/contain no-repeat}
.r316-edit.noi::before{display:none}
.r316-lh,.r316-li{grid-template-columns:minmax(0,1.9fr) 160px 130px minmax(0,1.5fr) 44px 78px}
.r316-kv{grid-template-columns:84px minmax(0,1fr)}
.r316-root button[disabled].primary{background:#a9c4c4;color:#fff;opacity:1}
.r316-root button.sm,.r316-root button.primary,.r316-root button.secondary{white-space:nowrap}

/* R316 additions (behaviour states not in the static mockups) */
.r316-root{display:block}
.r316-root .r316-hide,.r316-hidden{display:none !important}
#contracts.r316-builder-on > :not(#r316Contracts){display:none !important}
.r316-classic{margin-top:22px;border:1px dashed var(--line);border-radius:12px;padding:8px 14px;background:#fff}
.r316-classic > summary{cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:600;padding:4px 0}
.r316-li{cursor:pointer}
.r316-li:hover{background:#f7fbfa}
.r316-step{cursor:pointer;background:none;border:0;font:inherit}
.r316-fchip{cursor:pointer}
.r316-seg span{cursor:pointer}
.r316-seg button{padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted);background:transparent;border:0;min-height:0;cursor:pointer}
.r316-seg button.on{background:#fff;color:var(--accent-dark);box-shadow:0 1px 3px rgba(30,58,64,.15)}
.r316-tg input{position:absolute;opacity:0;width:1px;height:1px}
.r316-tg{position:relative;cursor:pointer}
.r316-overlay[hidden]{display:none}
.r316-modal .r316-f input,.r316-modal .r316-f select{min-height:38px}
.r316-err-line{color:#9c3b33;font-size:12.5px;margin:6px 0 0}
.r316-saved{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#1f6f4a;background:#effaf3;border:1px solid #c7ead3;border-radius:999px;padding:3px 10px}
.r316-pick select{border:0;background:transparent;font-size:15.5px;font-weight:650;padding:0;min-height:0;color:var(--ink);width:100%}
.r316-pick input[type=search]{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:2px 0;min-height:0;font-size:12px;width:100%;margin-top:3px}
.r316-intake-page{position:fixed;inset:0;z-index:40;overflow:auto;background:var(--surface,#f4f7f6)}
.r316-intake-top{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;border-bottom:1px solid var(--line);background:#fff}
.r316-tbl .r316-lineno{font-size:11px;color:var(--muted);display:block;margin-top:3px}
.contract-line-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.r316-check-panel{border:1.5px solid var(--accent);border-radius:12px}
.r316-steplink{color:var(--accent-dark);font-weight:600;cursor:pointer;background:none;border:0;padding:0;font-size:12.5px}
@media (max-width:1100px){.r316-grid2{grid-template-columns:minmax(0,1fr)}.r316-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* R316 builder picker menu, sub-rows and small tags */
.r316-pick-wrap{position:relative}
.r316-pick-wrap > .r316-pick{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.r316-pick-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;padding:10px;max-height:340px;overflow:auto;box-shadow:0 12px 32px rgba(15,40,40,.16)}
.r316-pick-menu input[type=search]{width:100%;margin-bottom:8px}
.r316-pick-opt{display:block;width:100%;text-align:left;border:0;border-radius:8px;background:none;padding:8px 10px;font:inherit;color:var(--ink);cursor:pointer}
.r316-pick-opt:hover,.r316-pick-opt:focus{background:var(--surface-quiet)}
.r316-pick-opt small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.r316-tag{height:20px;font-size:11px;padding:0 7px;margin-left:4px}
.r316-cb-tbl{table-layout:fixed}
.r316-cb-tbl select,.r316-cb-tbl input{width:100%;min-width:0}
.r316-subrow td{font-size:12px;color:var(--muted);background:var(--surface-quiet)}
.r316-subrow.err td{color:#9c3b33;background:#fdf1ef}
.r316-audit table{font-size:12.5px}
.r316-li{cursor:pointer}
