:root {
  --bg: #e7ebef;
  --panel: #ffffff;
  --panel-soft: #f7f9fb;
  --line: #d9e0e7;
  --text: #102235;
  --muted: #617182;
  --ink: #101820;
  --rail: #111827;
  --navy: #06386f;
  --blue: #0b4a82;
  --teal: #13bfc1;
  --pink: #ef1f67;
  --ok: #0f9f6e;
  --warn: #bc6c25;
  --bad: #b42318;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  background:
    linear-gradient(90deg, rgba(17, 24, 39, 0.06) 1px, transparent 1px),
    linear-gradient(180deg, #f7f8f9 0, var(--bg) 280px);
  background-size: 28px 28px, auto;
  color: var(--text);
}

button, input { font: inherit; }
button:not(:disabled), [role="button"], summary, select, label { cursor: pointer; }

.login-screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    linear-gradient(135deg, rgba(6, 56, 111, 0.08), transparent 36%),
    radial-gradient(circle at 50% -15%, #ffffff 0, #eef2f5 48%, #d8dee5 100%);
}

.login-card {
  width: min(100%, 560px);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(6, 56, 111, 0.16);
  border-radius: 8px;
  box-shadow: 0 30px 80px rgba(16, 34, 53, 0.18);
  padding: 38px;
  display: grid;
  gap: 26px;
}

.login-brand-lockup {
  display: grid;
  gap: 18px;
  justify-items: center;
  text-align: center;
}

.login-logo-lockup {
  display: grid;
  justify-items: center;
}

.login-logo {
  display: block;
  width: min(250px, 74vw);
  height: auto;
}

.login-environment-badge {
  margin-top: 12px;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}

.login-product-name {
  color: var(--text);
  font-size: 22px;
  font-weight: 850;
  line-height: 1.1;
}

.login-product-subtitle {
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
}

.login-copy { display: grid; gap: 10px; text-align: center; }
.login-copy h1 { font-size: 30px; max-width: none; }
.login-copy p { margin: 0; color: var(--muted); line-height: 1.5; }
.login-legal-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  padding: 16px;
  display: grid;
  gap: 10px;
}
.login-legal-panel p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.login-form { display: grid; gap: 12px; }
.login-form label:not(.remember-row) { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.login-form input:not([type="checkbox"]) {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  color: var(--text);
  background: #fff;
  font-size: 15px;
  text-transform: none;
}
.mfa-panel { display: grid; gap: 10px; }
.setup-instruction { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; text-transform: none; }
.setup-qr {
  width: 220px;
  height: 220px;
  justify-self: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}
.setup-fallback {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  padding: 10px 12px;
}
.setup-fallback summary {
  color: var(--navy);
  font-size: 13px;
  font-weight: 850;
}
.setup-secret {
  display: block;
  margin-top: 10px;
  overflow-wrap: anywhere;
  color: var(--navy);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0;
}
.login-button { justify-self: stretch; min-height: 46px; }
.link-button {
  justify-self: center;
  border: 0;
  background: transparent;
  color: var(--navy);
  font-size: 13px;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 4px 6px;
}
.remember-row {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--text);
  font-size: 13px;
  font-weight: 750;
}
.remember-row input { width: 16px; height: 16px; accent-color: var(--navy); }
.login-message { min-height: 18px; margin: -2px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.login-message.error { color: var(--bad); }
.login-terms {
  margin: -10px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  text-align: center;
}

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

.sidebar {
  background: #f5f7f9;
  border-right: 1px solid var(--line);
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 30px;
  transition: padding 0.18s ease;
}
.sidebar-collapsed .sidebar { padding: 22px 12px; gap: 22px; align-items: center; }

.brand { display: grid; gap: 12px; align-items: center; }

.sidebar-logo { width: 132px; height: auto; display: block; }
.sidebar-collapsed .sidebar-logo { width: 46px; }
.sidebar-toggle {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
  padding: 0 10px;
}
.sidebar-collapsed .sidebar-toggle { width: 52px; padding: 0; }

.nav-tree { display: grid; gap: 10px; }
.sidebar-collapsed .nav-tree { display: none; }
.tree-root {
  color: var(--navy);
  font-size: 13px;
  line-height: 1.12;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 9px;
}
.tree-root::-webkit-details-marker { display: none; }
.tree-root::before {
  content: '';
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  transform: rotate(-45deg);
  transition: transform 0.16s ease;
}
.nav-tree[open] .tree-root::before { transform: rotate(45deg); }
.nav-group-label {
  margin-left: 30px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.tree-children {
  position: relative;
  margin-left: 13px;
  padding-left: 17px;
}
.tree-children::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 10px;
  width: 1px;
  background: #cbd5df;
}

.nav-list { display: grid; gap: 8px; }
.nav-item {
  position: relative;
  color: var(--text);
  text-decoration: none;
  padding: 12px 13px;
  border-radius: 8px;
  border: 1px solid transparent;
  font-weight: 800;
  font-size: 13px;
}
.tree-children .nav-item::before {
  content: '';
  position: absolute;
  left: -17px;
  top: 50%;
  width: 11px;
  height: 1px;
  background: #cbd5df;
}
.nav-item.active, .nav-item:hover {
  background: #ffffff;
  color: var(--navy);
  border-color: var(--line);
  box-shadow: 0 8px 20px rgba(16, 34, 53, 0.05), inset 3px 0 0 var(--teal);
}

.sidebar-footer {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}
.sidebar-footer span { color: var(--muted); }
.sidebar-footer #sidebarVersion { color: var(--text); }
.sidebar-utility-link {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
}
.sidebar-utility-link.active, .sidebar-utility-link:hover {
  border-color: rgba(19, 191, 193, 0.55);
  box-shadow: inset 3px 0 0 var(--teal);
}
.sidebar-collapsed .sidebar-footer { display: none; }

.main-panel { padding: 32px; display: grid; gap: 22px; align-content: start; }

.global-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px 10px 16px;
  box-shadow: 0 10px 28px rgba(16, 34, 53, 0.08);
}
.product-lockup, .topbar-actions { display: flex; align-items: center; gap: 10px; }
.product-kicker {
  color: var(--navy);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0;
}
.settings-note { margin: 0 0 12px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.environment-pill {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  background: var(--panel-soft);
}
.environment-qa {
  border-color: #b45309;
  background: #fff7ed;
  color: #92400e;
}
.environment-prod {
  border-color: #0f766e;
  background: #ecfdf5;
  color: #0f766e;
}
.global-topbar .environment-qa,
.global-topbar .environment-prod {
  font-size: 13px;
  font-weight: 950;
  padding: 7px 11px;
}
.topbar-date { color: var(--muted); font-size: 13px; font-weight: 750; }
.topbar-button {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  padding: 0 12px;
  cursor: pointer;
  font-weight: 800;
}
.signout-button { background: var(--navy); color: #fff; border-color: var(--navy); }
.user-initials {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e8f1f8;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
}

.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.module-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 12px 28px rgba(16, 34, 53, 0.06);
}
.compact-module-header { margin-bottom: 16px; }
.module-header h2 { font-size: 24px; line-height: 1.1; }
.module-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}
.module-tab {
  min-height: 36px;
  border-radius: 6px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  color: var(--text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 850;
}
.module-tab.active, .module-tab:hover { background: #fff; color: var(--navy); box-shadow: 0 6px 14px rgba(16, 34, 53, 0.07); }

.eyebrow {
  margin: 0 0 7px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

h1, h2 { margin: 0; color: var(--text); letter-spacing: 0; }
h1 { font-size: 30px; line-height: 1.16; max-width: 760px; }
h2 { font-size: 18px; }

.session-actions, .action-row { display: flex; gap: 10px; align-items: center; }

.primary-button, .secondary-button, .ghost-button {
  border: 0;
  min-height: 40px;
  border-radius: 8px;
  padding: 0 15px;
  cursor: pointer;
  font-weight: 700;
}
.primary-button { background: var(--navy); color: #fff; }
.secondary-button { background: #ffffff; color: var(--navy); border: 1px solid var(--line); }
.danger-button { color: var(--bad); }
.ghost-button { background: transparent; color: var(--navy); }
button:disabled { opacity: 0.45; cursor: not-allowed; }

.notice-panel, .upload-panel, .run-panel, .history-panel, .settings-panel, .control-strip {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: 0 14px 34px rgba(16, 34, 53, 0.08);
}

.notice-panel { padding: 14px 16px; color: var(--muted); }
.workspace-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; }
.rules-page { grid-template-columns: minmax(0, 1fr) 360px; }
.upload-panel, .run-panel, .history-panel, .settings-panel { padding: 20px; }

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

.jobs-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.jobs-controls select {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: var(--text);
  font-weight: 750;
}

.drop-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tenant-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 10px;
  margin-bottom: 16px;
  padding: 14px;
  background: var(--panel-soft);
  border: 1px solid var(--line);
  border-radius: 8px;
}
.tenant-picker label { color: var(--text); font-weight: 800; }
.tenant-picker select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: var(--text);
}
.tenant-picker small { color: var(--muted); grid-column: 1 / -1; }
.combined-drop-zone { margin-bottom: 14px; min-height: 112px; background: #f7fbff; }
.combined-drop-zone strong { font-size: 16px; }
.drop-zone, .config-tile {
  min-height: 92px;
  border: 1px dashed #b9c5d1;
  background: var(--panel-soft);
  border-radius: 8px;
  padding: 13px;
  display: grid;
  gap: 4px;
  cursor: pointer;
}
.config-tile { cursor: default; border-style: solid; }
.drop-zone input { display: none; }
.drop-zone strong, .config-tile strong { font-size: 14px; }
.drop-zone small, .drop-zone em, .config-tile small, .config-tile em { color: var(--muted); font-style: normal; font-size: 12px; line-height: 1.35; }
.drop-zone.ready { border-color: var(--ok); background: #f0fbf7; }
.drop-zone.dragging { border-color: var(--blue); background: #eff7ff; }
.file-label { color: var(--blue); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.tenant-rulebar {
  display: grid;
  grid-template-columns: minmax(220px, 0.65fr) minmax(260px, 1fr);
  gap: 12px;
  align-items: end;
  margin-bottom: 14px;
}
.tenant-rulebar label, .tenant-rulebar div {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.tenant-rulebar select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  padding: 0 11px;
  font-weight: 800;
}
.tenant-rulebar strong { color: var(--text); font-size: 15px; text-transform: none; }
.rule-equation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.1fr);
  gap: 10px;
  align-items: stretch;
  margin-bottom: 14px;
}
.rule-equation div {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  padding: 14px;
  display: grid;
  gap: 6px;
  min-height: 84px;
}
.rule-equation div:last-child { border-color: rgba(239, 31, 103, 0.32); background: #fff5f8; }
.rule-equation span { color: var(--muted); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.rule-equation strong { color: var(--text); font-size: 18px; line-height: 1.1; }
.rule-equation b { align-self: center; color: var(--muted); font-size: 24px; }
.rule-matrix { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.rule-tile { min-height: 126px; background: #fbfcfd; }
.rule-tile strong { font-size: 18px; line-height: 1.16; }
.rule-editor-card {
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  padding: 16px;
}
.compact-title-row { margin-bottom: 12px; align-items: center; }
.rule-editor-grid {
  margin-top: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.rule-editor-grid label {
  min-height: 84px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-soft);
  padding: 10px;
  align-content: start;
}
.rule-editor-grid label.wide { grid-column: span 2; }
.rule-editor-grid label.rule-lock {
  grid-template-columns: 18px 1fr;
  align-items: center;
  color: var(--text);
  text-transform: none;
  font-size: 13px;
  font-weight: 800;
}
.rule-editor-grid label.rule-lock input { min-height: auto; width: 16px; height: 16px; padding: 0; accent-color: var(--navy); }
.rule-editor-grid textarea { min-height: 40px; }
.config-action-panel .message-area p { margin: 0 0 10px; display: grid; gap: 2px; }
.config-action-panel .message-area strong { color: var(--text); font-size: 13px; }
.config-action-panel .message-area span { color: var(--muted); font-size: 12px; }
.tenant-card-grid, .connection-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.tenant-card, .connection-card {
  min-height: 116px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 14px;
  text-align: left;
  display: grid;
  gap: 6px;
  align-content: start;
}
.tenant-card span, .connection-card span {
  color: var(--blue);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}
.tenant-card strong, .connection-card strong { font-size: 18px; line-height: 1.15; }
.tenant-card em, .connection-card em { color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.35; }
.tenant-card.active, .connection-card.active {
  border-color: rgba(19, 191, 193, 0.65);
  box-shadow: inset 4px 0 0 var(--teal), 0 10px 26px rgba(16, 34, 53, 0.08);
}
.tenant-actions { border-top: 1px solid var(--line); padding-top: 16px; }
.control-plane-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.control-plane-toolbar label {
  flex: 1 1 320px;
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}
.control-plane-toolbar input, .control-plane-toolbar select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  background: #fff;
  color: var(--text);
  text-transform: none;
  font-weight: 700;
}
.connection-editor {
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 14px;
}
.connection-list {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}
.connection-list p { margin: 0; color: var(--muted); font-size: 13px; }
.connection-list-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  color: var(--text);
  padding: 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 10px;
  align-items: center;
  text-align: left;
}
.connection-list-item.active {
  background: #fff;
  border-color: rgba(19, 191, 193, 0.65);
  box-shadow: inset 4px 0 0 var(--teal);
}
.connection-list-item strong { font-size: 14px; }
.connection-list-item em { color: var(--muted); font-style: normal; font-size: 12px; overflow-wrap: anywhere; }
.config-form, .generator-form { display: grid; gap: 10px; margin-top: 16px; }
.generator-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.generator-form label:first-child { grid-column: 1 / -1; }
.test-data-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.qa-lock-badge {
  border: 1px solid #b45309;
  border-radius: 999px;
  background: #fff7ed;
  color: #92400e;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.test-data-runbar {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(150px, 0.9fr) minmax(220px, 1.4fr) repeat(2, minmax(110px, 0.7fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
}
.test-data-form { grid-template-columns: 1fr; gap: 12px; }
.test-data-form label:first-child { grid-column: auto; }
.generator-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 14px;
}
.generator-section h3 { margin: 0 0 12px; color: var(--text); font-size: 15px; }
.generator-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.generator-fields.cure-fields { grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(120px, 0.8fr)); }
.config-form label, .generator-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.generator-form .checkbox-field { grid-template-columns: 18px 1fr; align-items: center; color: var(--text); text-transform: none; font-size: 13px; }
.config-form input, .config-form select, .config-form textarea, .generator-form input, .generator-form select, .test-data-runbar input, .test-data-runbar select {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: var(--text);
  text-transform: none;
  font-weight: 600;
}
.test-data-runbar label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.generator-form .checkbox-field input { min-height: auto; width: 16px; height: 16px; padding: 0; accent-color: var(--navy); }
.config-form textarea { padding: 10px; resize: vertical; }
.rollback-form { border-top: 1px solid var(--line); padding-top: 16px; }
.tenant-config-form { border-top: 1px solid var(--line); padding-top: 16px; }
.tenant-config-form label { grid-column: 1 / -1; }
.tenant-config-form button { align-self: end; }
.destination-guardrails {
  grid-column: 1 / -1;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  display: grid;
  gap: 10px;
  background: #fff;
}
.destination-guardrails legend { color: var(--muted); font-size: 12px; font-weight: 850; text-transform: uppercase; padding: 0 4px; }
.destination-guardrails label {
  grid-column: auto;
  grid-template-columns: 18px 1fr;
  align-items: center;
  color: var(--text);
  text-transform: none;
  font-size: 13px;
  font-weight: 800;
}
.destination-guardrails input { min-height: auto; width: 16px; height: 16px; padding: 0; accent-color: var(--navy); }

.action-row { margin-top: 16px; }

.run-facts { display: grid; gap: 12px; margin: 0; }
.run-facts div { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.run-facts dt { color: var(--muted); font-size: 12px; }
.run-facts dd { margin: 3px 0 0; font-weight: 800; word-break: break-word; }
.test-data-sidepanel .run-facts div:last-child { border-bottom: 0; padding-bottom: 0; }
.pack-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.test-data-manifest-row td { background: #f8fafc; padding: 0 12px 14px; }
.test-data-manifest {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}
.test-data-manifest p { margin: 0; color: var(--muted); font-size: 13px; }
.test-data-day {
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: hidden;
  background: var(--panel-soft);
}
.test-data-day summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  color: var(--text);
  font-weight: 850;
}
.test-data-day summary span { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.test-data-file-list { display: grid; gap: 1px; background: var(--line); }
.test-data-file-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: #fff;
}
.test-data-file-row input { width: 16px; height: 16px; accent-color: var(--navy); }
.test-data-file-row span { display: grid; gap: 2px; min-width: 0; }
.test-data-file-row strong { color: var(--text); font-size: 13px; }
.test-data-file-row em { color: var(--muted); font-size: 12px; font-style: normal; overflow-wrap: anywhere; }
.test-data-file-row b { color: var(--blue); font-size: 12px; white-space: nowrap; }

.message-area { margin-top: 16px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.message-area.error { color: var(--bad); }
.message-area.success { color: var(--ok); }
.current-downloads {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-soft);
  display: grid;
  gap: 10px;
}
.current-downloads h3 { margin: 0; font-size: 15px; color: var(--text); }
.current-downloads p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
th { color: var(--muted); font-size: 12px; text-transform: uppercase; }
.status-pill { display: inline-flex; border-radius: 999px; padding: 5px 9px; background: #edf3f8; color: var(--blue); font-weight: 800; font-size: 12px; }
.status-pill.completed { background: #e9f8f1; color: var(--ok); }
.status-pill.failed { background: #fff0ef; color: var(--bad); }
.user-access-row td { vertical-align: top; white-space: normal; }
.user-access-row td:first-child { display: grid; gap: 3px; min-width: 190px; }
.user-access-row td:first-child strong { color: var(--text); font-size: 13px; overflow-wrap: anywhere; }
.user-access-row td:first-child span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.user-access-row select {
  min-width: 150px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 8px 10px;
  font-weight: 750;
}
.user-access-row select[multiple] { min-width: 210px; }
.enabled-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
}
.enabled-toggle input { width: 16px; height: 16px; accent-color: var(--navy); }

.download-group { display: flex; gap: 6px; }
.download-group button { min-height: 32px; padding: 0 9px; }
.transfer-panel {
  min-width: 210px;
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  white-space: normal;
}
.transfer-panel strong { color: var(--navy); font-size: 13px; }
.transfer-panel span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.transfer-panel ul { margin: 2px 0 0; padding-left: 16px; color: var(--text); font-size: 12px; line-height: 1.4; }
.transfer-panel.completed { border-color: #bfe9d3; background: #f0fbf5; }
.transfer-panel.completed strong { color: var(--ok); }
.transfer-panel.failed { border-color: #ffd2cd; background: #fff7f5; }
.transfer-panel.failed strong { color: var(--bad); }
.transfer-panel.running { border-color: #b9d5ff; background: #f4f8ff; }
.transfer-panel.pending { border-color: #f4d28c; background: #fff9ec; }
.job-actions-cell { position: relative; min-width: 118px; }
.actions-menu { position: relative; display: inline-block; }
.actions-menu summary {
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 28px 7px 10px;
  background: #fff;
  color: var(--navy);
  font-weight: 850;
  list-style: none;
}
.actions-menu summary::-webkit-details-marker { display: none; }
.actions-menu summary::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 12px;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  transform: rotate(45deg);
}
.actions-menu[open] summary::after { top: 15px; transform: rotate(225deg); }
.actions-menu-panel {
  position: absolute;
  right: 0;
  z-index: 20;
  min-width: 176px;
  margin-top: 6px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(16, 34, 53, 0.16);
  display: grid;
  gap: 6px;
}
.actions-menu-panel button { width: 100%; min-height: 34px; justify-content: flex-start; }
.download-panel { display: grid; gap: 9px; min-width: 220px; }
.download-selector {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.download-selector summary {
  min-height: 36px;
  padding: 9px 12px;
  cursor: pointer;
  color: var(--navy);
  font-weight: 800;
  list-style: none;
}
.download-selector summary::-webkit-details-marker { display: none; }
.download-selector summary::after { content: 'Select'; float: right; color: var(--muted); font-size: 12px; }
.download-selector[open] summary::after { content: 'Close'; }
.download-checklist { display: grid; gap: 6px; padding: 0 10px 10px; }
.download-option {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text);
  font-size: 12px;
  line-height: 1.25;
  white-space: normal;
}
.download-option input { accent-color: var(--navy); }
.download-option.unavailable { color: var(--muted); opacity: 0.55; }

.app-page { min-width: 0; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.settings-grid.three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-layout { display: grid; grid-template-columns: minmax(280px, 0.8fr) minmax(360px, 1.2fr); gap: 16px; }
.connections-layout { grid-template-columns: repeat(2, minmax(280px, 1fr)); }
.credentials-card { grid-column: 1 / -1; overflow: hidden; }
.connections-layout .settings-card { min-width: 0; }
.reports-page { display: grid; gap: 18px; }
.scheduler-page { display: grid; gap: 16px; }
.scheduler-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(320px, 1fr)) minmax(260px, 0.7fr);
  gap: 14px;
}
.schedule-card, .schedule-control-panel, .admin-console {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-soft);
  padding: 16px;
  min-width: 0;
}
.active-schedule-card { background: #ffffff; border-color: rgba(19, 191, 193, 0.38); }
.schedule-card-header { display: flex; justify-content: space-between; gap: 12px; align-items: start; margin-bottom: 14px; }
.schedule-card h3, .schedule-control-panel h3 { margin: 0; font-size: 17px; color: var(--text); }
.schedule-cadence { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 100px; gap: 10px; }
.schedule-cadence label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}
.schedule-cadence input, .schedule-cadence select {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 0 10px;
  font-weight: 700;
}
.stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.stage-grid label {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
}
.stage-grid input { accent-color: var(--navy); }
.admin-console { margin-top: 16px; }
.admin-console-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.admin-action-card {
  min-height: 132px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  text-decoration: none;
  padding: 14px;
  display: grid;
  gap: 6px;
  align-content: start;
}
.admin-action-card:hover { border-color: rgba(19, 191, 193, 0.55); box-shadow: inset 0 0 0 2px rgba(19, 191, 193, 0.14); }
.admin-action-card span { color: var(--blue); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.admin-action-card strong { font-size: 15px; line-height: 1.2; }
.admin-action-card em { color: var(--muted); font-size: 12px; font-style: normal; line-height: 1.35; }
.report-panel, .metric-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(16, 34, 53, 0.06);
}
.report-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.report-toolbar.compact { justify-content: flex-start; }
.report-toolbar select, .report-date-input {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 0 10px;
  font-weight: 750;
}
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric-card {
  position: relative;
  overflow: hidden;
  padding: 16px;
  display: grid;
  gap: 8px;
}
.metric-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--blue);
}
.metric-card.accent-teal::before { background: var(--teal); }
.metric-card.accent-pink::before { background: var(--pink); }
.metric-card.accent-navy::before { background: var(--navy); }
.metric-card span { color: var(--muted); font-size: 12px; font-weight: 850; text-transform: uppercase; }
.metric-card strong { color: var(--text); font-size: clamp(26px, 4vw, 42px); line-height: 1; letter-spacing: 0; }
.metric-card small { color: var(--muted); line-height: 1.35; }
.contribution-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(16, 34, 53, 0.06);
  padding: 14px;
  display: grid;
  gap: 10px;
}
.contribution-panel:empty { display: none; }
.contribution-meter { height: 16px; border-radius: 999px; overflow: hidden; background: #eef3f7; display: flex; }
.contribution-meter span { min-width: 0; height: 100%; }
.contribution-facts { display: flex; gap: 14px; flex-wrap: wrap; }
.contribution-facts div { display: flex; gap: 7px; align-items: center; color: var(--muted); font-size: 12px; font-weight: 800; }
.contribution-facts i { width: 9px; height: 9px; border-radius: 999px; }
.contribution-facts span { color: var(--text); }
.contribution-facts strong, .contribution-facts em { font-style: normal; color: var(--muted); }
.contribution-panel p { margin: 0; color: var(--muted); font-size: 12px; }
.reports-layout { display: grid; grid-template-columns: repeat(2, minmax(320px, 1fr)); gap: 16px; }
.reports-layout.lower { grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1fr); }
.report-panel { padding: 18px; min-width: 0; }
.panel-title-row { display: flex; justify-content: space-between; align-items: start; gap: 12px; margin-bottom: 16px; }
.panel-title-row h3 { margin: 0; font-size: 18px; }
.chart-frame, .aged-debt-chart, .number-bar-chart, .journey-split-chart, .rephase-trend-chart { min-height: 260px; }
.split-chart { min-height: 150px; }
.chart-frame svg { width: 100%; height: auto; display: block; }
.chart-frame text { fill: var(--muted); font-size: 12px; font-weight: 750; }
.chart-frame .chart-value-label { fill: var(--text); font-size: 11px; font-weight: 900; paint-order: stroke; stroke: #fff; stroke-width: 5px; stroke-linejoin: round; }
.chart-legend { display: flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 850; }
.chart-legend span::before {
  content: '';
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  margin-right: 6px;
  background: var(--navy);
}
.chart-legend .legend-teal::before { background: var(--teal); }
.chart-legend .legend-pink::before { background: var(--pink); }
.aged-debt-header { display: grid; grid-template-columns: 82px minmax(110px, 1fr) 86px 86px 58px; gap: 10px; margin: -4px 0 10px; color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.aged-debt-header span:nth-child(2) { grid-column: 3; text-align: right; }
.aged-debt-header span:nth-child(3), .aged-debt-header span:nth-child(4) { text-align: right; }
.aged-debt-chart { display: grid; gap: 9px; align-content: start; }
.aged-row { display: grid; grid-template-columns: 82px minmax(110px, 1fr) 86px 86px 58px; gap: 10px; align-items: center; }
.aged-row span, .aged-row em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 750; }
.aged-row strong { font-size: 13px; text-align: right; }
.aged-bar { height: 11px; border-radius: 999px; background: #eef3f7; overflow: hidden; }
.aged-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--teal), var(--pink)); }
.missed-payments-header { display: grid; grid-template-columns: 92px minmax(110px, 1fr) 86px 58px; gap: 10px; margin: -4px 0 10px; color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.missed-payments-header span:nth-child(2) { grid-column: 3; text-align: right; }
.missed-payments-header span:nth-child(3) { text-align: right; }
.missed-payments-chart { min-height: 260px; display: grid; gap: 9px; align-content: start; }
.missed-payment-row { display: grid; grid-template-columns: 92px minmax(110px, 1fr) 86px 58px; gap: 10px; align-items: center; }
.missed-payment-row span, .missed-payment-row em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 750; }
.missed-payment-row strong { color: var(--text); font-size: 13px; text-align: right; }
.missed-payment-bar { height: 11px; border-radius: 999px; background: #eef3f7; overflow: hidden; }
.missed-payment-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--navy), var(--teal)); }
.number-bar-chart, .split-chart, .journey-split-chart { display: grid; gap: 12px; align-content: center; }
.number-bar-row { display: grid; grid-template-columns: minmax(135px, 0.9fr) minmax(150px, 1.4fr) 72px; gap: 10px; align-items: center; }
.number-bar-row span { color: var(--muted); font-size: 12px; font-weight: 850; }
.number-bar-row strong { color: var(--text); font-size: 14px; text-align: right; }
.number-bar { height: 22px; border-radius: 999px; background: #eef3f7; overflow: hidden; position: relative; }
.number-bar i { display: block; height: 100%; border-radius: inherit; }
.number-bar b { position: absolute; inset: 0 9px 0 auto; display: flex; align-items: center; color: var(--text); font-size: 11px; font-weight: 900; }
.journey-note { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.rephase-trend-chart { display: grid; gap: 14px; align-content: start; }
.rephase-trend-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rephase-trend-summary div {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-soft);
  padding: 10px;
  display: grid;
  gap: 3px;
}
.rephase-trend-summary span { color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.rephase-trend-summary strong { color: var(--text); font-size: 22px; line-height: 1; }
.rephase-trend-bars { display: grid; gap: 8px; align-content: start; }
.rephase-trend-row { display: grid; grid-template-columns: 66px minmax(120px, 1fr) 52px 52px; gap: 10px; align-items: center; }
.rephase-trend-row span, .rephase-trend-row em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 750; }
.rephase-trend-row strong { color: var(--text); font-size: 13px; text-align: right; }
.rephase-trend-row em { text-align: right; }
.rephase-trend-stack { height: 18px; border-radius: 999px; background: #eef3f7; overflow: hidden; position: relative; }
.rephase-trend-stack i, .rephase-trend-stack b { position: absolute; inset: 0 auto 0 0; border-radius: inherit; }
.rephase-trend-stack i { background: rgba(239, 31, 103, 0.78); }
.rephase-trend-stack b { background: var(--teal); min-width: 0; }
.empty-report { margin: 0; color: var(--muted); line-height: 1.5; }
.settings-card {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-soft);
  padding: 16px;
  display: grid;
  gap: 14px;
  align-content: start;
}
.settings-card h3 { margin: 0; font-size: 16px; color: var(--text); }
.settings-card p { margin: 0; color: var(--muted); line-height: 1.35; font-size: 13px; }
.settings-facts { display: grid; gap: 10px; margin: 0; }
.settings-facts div { display: grid; gap: 3px; }
.settings-facts dt { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.settings-facts dd { margin: 0; color: var(--text); font-weight: 700; }
.settings-form { display: grid; grid-template-columns: 1fr 110px; gap: 12px; }
.settings-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.settings-form label:nth-child(3), .settings-form label:nth-child(4), .settings-form label:nth-child(5) { grid-column: 1 / -1; }
.settings-form input, .settings-form select, .settings-form textarea {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: var(--text);
  text-transform: none;
  font-weight: 600;
}
.settings-form textarea { min-height: 112px; padding: 10px; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; }
.settings-form input[type="file"] { padding: 8px 10px; overflow: hidden; }
.sftp-settings-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px;
}
.sftp-settings-form label:nth-child(n) { grid-column: auto; }
.sftp-settings-form label { min-width: 0; }
.sftp-settings-form label.wide { grid-column: 1 / -1; }
.sftp-settings-form label.secret { grid-column: span 2; }
.sftp-settings-form label.secret textarea { min-height: 96px; }
.user-create-form { grid-template-columns: 1fr 150px; }
.user-create-form label:nth-child(1), .user-create-form label:nth-child(2), .user-create-form label:nth-child(4) { grid-column: 1 / -1; }
.user-create-form select[multiple] { min-height: 116px; padding: 8px 10px; }
.user-list-card { min-width: 0; }
.compact-table table { font-size: 13px; }
.compact-facts { border-top: 1px solid var(--line); padding-top: 12px; }
.disabled-card { opacity: 0.72; }

.control-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; background: var(--line); margin-top: 18px; }
.control-strip div { background: #fff; padding: 16px; display: grid; gap: 4px; }
.control-strip span { color: var(--muted); font-size: 12px; text-transform: uppercase; font-weight: 800; }
.control-strip strong { color: var(--text); }

.hidden { display: none !important; }

@media (max-width: 900px) {
  .app-shell, .app-shell.sidebar-collapsed { grid-template-columns: 1fr; }
  .sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar-collapsed .sidebar { align-items: stretch; }
  .global-topbar { align-items: flex-start; display: grid; }
  .module-header { align-items: stretch; display: grid; }
  .workspace-grid, .rules-page { grid-template-columns: 1fr; }
  .drop-grid { grid-template-columns: 1fr; }
  .tenant-picker { grid-template-columns: 1fr; }
  .scheduler-grid, .admin-console-grid { grid-template-columns: 1fr; }
  .schedule-cadence, .stage-grid { grid-template-columns: 1fr; }
  .test-data-runbar, .generator-fields, .generator-fields.cure-fields { grid-template-columns: 1fr 1fr; }
  .tenant-rulebar, .rule-matrix { grid-template-columns: 1fr; }
  .rule-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rule-equation { grid-template-columns: 1fr; }
  .rule-equation b { justify-self: center; transform: rotate(90deg); }
  .settings-grid, .settings-grid.three-column, .admin-layout, .metric-grid, .reports-layout, .reports-layout.lower { grid-template-columns: 1fr; }
  .report-toolbar { justify-content: start; }
  .control-strip { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .main-panel, .sidebar { padding: 20px; }
  .topbar-actions { flex-wrap: wrap; }
  .page-header { display: grid; }
  h1 { font-size: 24px; }
  .aged-debt-header { display: none; }
  .aged-row { grid-template-columns: 1fr; gap: 5px; }
  .aged-row strong { text-align: left; }
  .missed-payments-header { display: none; }
  .missed-payment-row { grid-template-columns: 1fr; gap: 5px; }
  .missed-payment-row strong { text-align: left; }
  .number-bar-row { grid-template-columns: 1fr; gap: 5px; }
  .number-bar-row strong { text-align: left; }
  .rule-editor-grid { grid-template-columns: 1fr; }
  .rule-editor-grid label.wide { grid-column: 1; }
  .control-strip { grid-template-columns: 1fr; }
  .test-data-runbar, .generator-fields, .generator-fields.cure-fields, .test-data-file-row { grid-template-columns: 1fr; }
}
/* Embedded QuickSight reporting */
.embed-frame-wrap { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; min-height: 70vh; display: flex; }
.embed-frame-wrap iframe { border: 0; width: 100%; min-height: 78vh; flex: 1; }
button.module-tab { cursor: pointer; font: inherit; }

/* Weekly digest panel */
.report-digest { display: flex; flex-direction: column; gap: 16px; }
.report-digest .digest-meta { color: var(--muted, #617182); font-size: 13px; margin: 0; }
.digest-card { background: #fff; border: 1px solid #e7ebef; border-radius: 12px; padding: 18px 20px; }
.digest-card h3 { margin: 0 0 12px; text-transform: capitalize; font-size: 16px; }
.digest-stats { display: flex; flex-wrap: wrap; gap: 18px 28px; margin-bottom: 12px; }
.digest-stat { display: flex; flex-direction: column; min-width: 110px; }
.digest-stat strong { font-size: 20px; color: #06386F; }
.digest-stat span { font-size: 12px; color: #617182; }
.digest-bullets { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.digest-bullets li { font-size: 14px; line-height: 1.45; }
.digest-empty { color: #617182; }
