/* ============================================================
   覆盖 styles.css 遗留的 Jarvis 深色主题
   styles.css 用 !important 给 .admin-app 设置了深色背景，
   这里用同等优先级的规则恢复平台管理后台的浅色主题。
   ============================================================ */
body.admin-app {
  background: var(--platform-canvas, #f4f6f9) !important;
  color: var(--platform-ink, #172b4d) !important;
  isolation: auto !important;
}
body.admin-app::before,
body.admin-app::after {
  display: none !important;
}
.admin-app .stage {
  background: var(--platform-canvas, #f4f6f9) !important;
}

/* ── Shell grid layout (overrides brand-system.css / styles.css display:block) ── */
.admin-app .platform-admin-shell {
  display: grid !important;
  grid-template-columns: 248px minmax(0, 1fr) !important;
  grid-template-rows: auto 1fr !important;
  min-height: 100vh !important;
}

.admin-app .platform-admin-shell > main.stage {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

@media (max-width: 760px) {
  .admin-app .platform-admin-shell {
    display: block !important;
  }
}
.admin-app .panel,
.admin-app .signal-card,
.admin-app .metric,
.admin-app .client-card,
.admin-app .pipeline-step,
.admin-app .auth-card {
  background: var(--platform-surface, #ffffff) !important;
  border-color: var(--platform-border, #dbe7f3) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
}
.admin-app .masthead {
  background: var(--platform-surface, #ffffff) !important;
  border-color: var(--platform-border, #dbe7f3) !important;
}
.admin-app .masthead h1,
.admin-app .section-head h2 {
  color: var(--platform-ink, #172b4d) !important;
  text-shadow: none !important;
  font-family: inherit !important;
}
.admin-app .masthead p,
.admin-app .section-head p {
  color: var(--platform-text-muted, #66748a) !important;
}
.admin-app .kicker {
  color: var(--platform-blue, #0370ff) !important;
}
.admin-app .panel-head,
.admin-app .list-row {
  border-color: var(--platform-line-soft, #eaf0f5) !important;
}
.admin-app .list-row strong,
.admin-app .client-card h3 {
  color: var(--platform-ink, #172b4d) !important;
}
.admin-app .list-row small,
.admin-app .client-card p {
  color: var(--platform-text-muted, #66748a) !important;
}
.admin-app .list-row i {
  background: var(--platform-blue, #0370ff) !important;
  box-shadow: none !important;
}
.admin-app .bar {
  background: var(--platform-border, #dbe7f3) !important;
}
.admin-app .bar i {
  background: var(--platform-blue, #0370ff) !important;
  box-shadow: none !important;
}
.admin-app input,
.admin-app textarea,
.admin-app select {
  background: var(--platform-surface, #ffffff) !important;
  color: var(--platform-ink, #172b4d) !important;
  border-color: var(--platform-border-input, #d7e5f2) !important;
}
.admin-app input:focus,
.admin-app textarea:focus,
.admin-app select:focus {
  border-color: var(--platform-blue, #0370ff) !important;
  box-shadow: 0 0 0 3px rgba(3,112,255,.15) !important;
}
.admin-app .outline-button {
  border-color: var(--platform-border, #dbe7f3) !important;
  background: var(--platform-surface, #ffffff) !important;
  color: var(--platform-copy, #42566f) !important;
}
.admin-app .outline-button:hover {
  border-color: var(--platform-blue, #0370ff) !important;
  background: var(--platform-blue-soft, #eef6ff) !important;
  color: var(--platform-blue, #0370ff) !important;
}
.admin-app .action-button {
  background: var(--platform-blue, #0370ff) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
.admin-app .pill.green {
  color: var(--platform-success, #0f6b43) !important;
  background: var(--platform-success-soft, #eaf8f1) !important;
}
.admin-app .modal {
  background: var(--platform-surface, #ffffff) !important;
  color: var(--platform-ink, #172b4d) !important;
  border-color: var(--platform-border, #dbe7f3) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.15) !important;
}
.admin-app .modal-backdrop {
  background: rgba(0,0,0,.45) !important;
}
.admin-app .toast {
  background: var(--platform-surface, #ffffff) !important;
  color: var(--platform-ink, #172b4d) !important;
  border-color: var(--platform-border, #dbe7f3) !important;
}
.admin-app .rail-bottom {
  color: var(--platform-text-muted, #66748a) !important;
}
/* ============================================================
   登录页 / 加载页浅色主题兜底
   styles.css 给 body.admin-app 设置了深色背景 !important，
   这里用同等优先级覆盖，确保登录页和加载页始终浅色。
   ============================================================ */
body.admin-app .platform-login-shell {
  background: radial-gradient(circle at 15% 20%, rgba(9,195,255,.14), transparent 28%),
              linear-gradient(145deg, #f4f9ff, var(--platform-surface, #fff) 58%, #edf5ff) !important;
  color: var(--platform-ink, #172b4d) !important;
  isolation: auto !important;
}
body.admin-app .platform-login-card {
  background: rgba(255,255,255,.93) !important;
  color: var(--platform-ink, #172b4d) !important;
}
body.admin-app .platform-login-card h1 {
  color: var(--platform-text, #182536) !important;
  text-shadow: none !important;
}
body.admin-app .platform-login-card > p {
  color: var(--platform-text-muted, #66748a) !important;
}
body.admin-app .platform-login-form label {
  color: #3d526d !important;
}
body.admin-app .platform-login-form .action-button {
  background: var(--platform-blue, #0370ff) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
body.admin-app .platform-text-button {
  color: var(--platform-blue-mid, #0370ff) !important;
}
body.admin-app .platform-login-form .platform-remember small {
  color: #8aa0b5 !important;
}
body.admin-app .platform-field-hint {
  color: var(--platform-text-muted, #66748a) !important;
}
body.admin-app .platform-error {
  color: var(--platform-danger, #b42318) !important;
}
body.admin-app .platform-login-brand,
body.admin-app .platform-login-brand strong {
  color: #064eae !important;
}
body.admin-app .platform-login-brand small {
  color: #7c91aa !important;
}
body.admin-app .platform-loading {
  background: var(--platform-bg-subtle, #f6f9fc) !important;
  color: #4e6681 !important;
  isolation: auto !important;
}
body.admin-app .platform-recovery-status {
  background: #f2fbf6 !important;
  color: #245b3b !important;
  border-color: #b9ddc8 !important;
}

.admin-app .page-canvas {
  max-width: 1480px !important;
}

.admin-app {
  --platform-ink: #172b4d;
  --platform-copy: #42566f;
  --platform-muted: #53657b;
  --platform-line: #dce5ed;
  --platform-line-soft: #eaf0f5;
  --platform-canvas: #f4f6f9;
  --platform-surface: #ffffff;
  --platform-surface-soft: #f8fafc;
  --platform-blue: #0370ff;
  --platform-blue-dark: #014fbc;
  --platform-blue-soft: #eef6ff;
  --platform-success: #0f6b43;
  --platform-success-soft: #eaf8f1;
  --platform-warning: #855005;
  --platform-warning-soft: #fff5df;
  /* warning 语义的状态点/指示灯专用琥珀色 */
  --platform-warning-amber: #e59a38;
  --platform-danger: #b42318;
  --platform-danger-soft: #fff2f0;
  --platform-text: #182536;
  --platform-text-dark: #20334d;
  /* 加深自 #718196（约 4.0:1）至 ≥4.5:1，满足 WCAG AA 正文对比度 */
  --platform-text-muted: #66748a;
  --platform-text-secondary: #42566d;
  --platform-border: #dbe7f3;
  --platform-border-light: #e0eaf3;
  --platform-border-input: #d7e5f2;
  --platform-bg-soft: #f8fbff;
  --platform-bg-subtle: #f6f9fc;
  --platform-sidebar: #102b46;
  /* 第二蓝色已并入主蓝：历史 #1677c8 / #0f68b4 统一为 --platform-blue 系，
     保留别名以兼容既有引用 */
  --platform-blue-mid: var(--platform-blue);
  --platform-blue-mid-dark: var(--platform-blue-dark);
  --platform-focus-ring: rgba(37,131,216,.12);
  --platform-control-height: 44px;
  /* Secondary control + table tokens shared by the shell, views and
     platform-admin components. Values were harvested from repeated raw
     literals during the round-2 design-debt review. */
  --platform-border-strong: #d5dfe8;
  --platform-border-hover: #9fc0dc;
  --platform-control-border: #b9c6d3;
  --platform-action-ink: #456078;
  --platform-action-text: #0f65ad;
  --platform-surface-hover: #f7fbff;
  --platform-input-hover-border: #a8c9e8;
  --platform-input-hover-bg: #fbfdff;
  --platform-input-placeholder: #8b9aab;
  --platform-input-disabled-text: #98a5b5;
  --platform-input-disabled-bg: #f2f5f8;
  --platform-select-arrow: #718096;
  --platform-info-bg: #f5faff;
  --platform-info-border: #cfe4f5;
  /* Secondary accent (focus rings, eyebrows, selected borders) harvested
     from the benchmark management view during the round-3 debt closure. */
  --platform-accent-blue: #2583d8;
  --platform-focus-shadow: 0 0 0 2px rgba(1, 79, 188, .86), 0 0 0 5px rgba(3, 112, 255, .16);
  --platform-shadow-control: 0 1px 2px rgba(15, 35, 60, .04);
  --platform-shadow-card: 0 2px 8px rgba(15, 35, 60, .03);
}

.admin-app .platform-admin-shell input,
.admin-app .platform-admin-shell select,
.admin-app .platform-admin-shell textarea,
.admin-app .platform-admin-shell button {
  font: inherit;
}

.admin-app .platform-admin-shell input:not([type="checkbox"]):not([type="radio"]),
.admin-app .platform-admin-shell select,
.admin-app .platform-admin-shell textarea {
  width: 100%;
  min-height: var(--platform-control-height);
  border: 1px solid var(--platform-line) !important;
  border-radius: 12px !important;
  padding: 10px 12px !important;
  color: var(--platform-ink) !important;
  background-color: var(--platform-surface) !important;
  box-shadow: var(--platform-shadow-control);
  outline: none;
  transition: border-color .16s, box-shadow .16s, background-color .16s;
}

.admin-app .platform-admin-shell .platform-form-control__input input.is-search-input {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding: 10px 12px 10px 40px !important;
}

.admin-app .platform-admin-shell select {
  appearance: none;
  padding-right: 34px !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--platform-select-arrow) 50%),
    linear-gradient(135deg, var(--platform-select-arrow) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 17px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px) !important;
  background-repeat: no-repeat !important;
  background-size: 5px 5px, 5px 5px !important;
}

.admin-app .platform-admin-shell textarea {
  min-height: 88px;
  resize: vertical;
  line-height: 1.6;
}

.admin-app .platform-admin-shell input:not([type="checkbox"]):not([type="radio"]):hover,
.admin-app .platform-admin-shell select:hover,
.admin-app .platform-admin-shell textarea:hover {
  border-color: var(--platform-input-hover-border) !important;
  background-color: var(--platform-input-hover-bg) !important;
}

.admin-app .platform-admin-shell input:not([type="checkbox"]):not([type="radio"]):focus,
.admin-app .platform-admin-shell select:focus,
.admin-app .platform-admin-shell textarea:focus {
  border-color: transparent !important;
  background-color: var(--platform-surface) !important;
  box-shadow: var(--platform-focus-shadow) !important;
}

.admin-app .platform-admin-shell input:disabled,
.admin-app .platform-admin-shell select:disabled,
.admin-app .platform-admin-shell textarea:disabled {
  cursor: not-allowed;
  color: var(--platform-input-disabled-text) !important;
  background-color: var(--platform-input-disabled-bg) !important;
  box-shadow: none !important;
}

.admin-app .platform-admin-shell input::placeholder,
.admin-app .platform-admin-shell textarea::placeholder { color: var(--platform-input-placeholder); opacity: 1; }
.admin-app .platform-admin-shell input[aria-invalid="true"],
.admin-app .platform-admin-shell textarea[aria-invalid="true"] {
  border-color: transparent !important;
  box-shadow: 0 0 0 4px rgba(209, 67, 67, .14) !important;
}
.admin-app .platform-admin-shell input[type="date"] { color-scheme: light; }
.admin-app .platform-admin-shell input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .58; }
.admin-app .platform-admin-shell .platform-field { display: grid; gap: 7px; color: var(--platform-copy); font-size: 12px; font-weight: 650; }

.admin-app .platform-admin-shell input[type="checkbox"],
.admin-app .platform-admin-shell input[type="radio"] {
  appearance: none;
  display: inline-grid;
  flex: 0 0 18px;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  padding: 0 !important;
  place-content: center;
  margin: 0;
  border: 1px solid var(--platform-control-border);
  background: var(--platform-surface);
  cursor: pointer;
  transition: border-color .16s, background-color .16s, box-shadow .16s;
}

.admin-app .platform-admin-shell input[type="checkbox"] { border-radius: 5px; }
.admin-app .platform-admin-shell input[type="radio"] { border-radius: 50%; }
.admin-app .platform-admin-shell input[type="checkbox"]::after {
  content: "";
  width: 8px;
  height: 4px;
  border: solid var(--platform-surface);
  border-width: 0 0 2px 2px;
  transform: translateY(-1px) rotate(-45deg) scale(0);
  transition: transform .12s;
}
.admin-app .platform-admin-shell input[type="radio"]::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--platform-surface);
  transform: scale(0);
  transition: transform .12s;
}
.admin-app .platform-admin-shell input[type="checkbox"]:checked,
.admin-app .platform-admin-shell input[type="radio"]:checked {
  border-color: var(--platform-blue);
  background: var(--platform-blue);
}
.admin-app .platform-admin-shell input[type="checkbox"]:checked::after,
.admin-app .platform-admin-shell input[type="radio"]:checked::after { transform: scale(1); }
.admin-app .platform-admin-shell input[type="checkbox"]:checked::after { transform: translateY(-1px) rotate(-45deg) scale(1); }
.admin-app .platform-admin-shell input[type="checkbox"]:focus-visible,
.admin-app .platform-admin-shell input[type="radio"]:focus-visible {
  border-color: transparent;
  outline: 0;
  box-shadow: var(--platform-focus-shadow);
}

.admin-app .platform-admin-shell input[type="file"] {
  padding: 5px !important;
  color: var(--platform-muted) !important;
}
.admin-app .platform-admin-shell input[type="file"]::file-selector-button {
  min-height: 32px;
  margin-right: 10px;
  border: 0;
  border-radius: 9px;
  padding: 0 12px;
  color: #0e64ac;
  background: var(--platform-blue-soft);
  font-weight: 650;
  cursor: pointer;
}

.admin-app .platform-admin-shell label > span:first-child,
.admin-app .platform-admin-shell legend {
  color: var(--platform-copy);
  font-size: 12px;
  font-weight: 650;
}

/* Dialogs are teleported beside #admin-app, so they need the same control
   treatment without relying on the platform shell ancestor. */
body.admin-app .dialog-panel input:not([type="checkbox"]):not([type="radio"]),
body.admin-app .dialog-panel select,
body.admin-app .dialog-panel textarea {
  width: 100%;
  min-height: var(--platform-control-height);
  border: 1px solid var(--platform-line) !important;
  border-radius: 12px !important;
  padding: 10px 12px !important;
  color: var(--platform-ink) !important;
  background-color: var(--platform-surface) !important;
  box-shadow: 0 1px 2px rgba(15, 35, 60, .025) !important;
  outline: none;
}
body.admin-app .dialog-panel select {
  appearance: none;
  padding-right: 34px !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--platform-select-arrow) 50%),
    linear-gradient(135deg, var(--platform-select-arrow) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 17px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px) !important;
  background-repeat: no-repeat !important;
  background-size: 5px 5px, 5px 5px !important;
}
body.admin-app .dialog-panel textarea { min-height: 88px; resize: vertical; }
body.admin-app .dialog-panel input:not([type="checkbox"]):not([type="radio"]):focus,
body.admin-app .dialog-panel select:focus,
body.admin-app .dialog-panel textarea:focus {
  border-color: transparent !important;
  box-shadow: var(--platform-focus-shadow) !important;
}
body.admin-app .dialog-panel input::placeholder,
body.admin-app .dialog-panel textarea::placeholder { color: var(--platform-input-placeholder); opacity: 1; }
body.admin-app .dialog-panel input:disabled,
body.admin-app .dialog-panel textarea:disabled { cursor: not-allowed; color: var(--platform-input-disabled-text) !important; background: var(--platform-input-disabled-bg) !important; box-shadow:none !important; }
body.admin-app .dialog-panel input[type="checkbox"],
body.admin-app .dialog-panel input[type="radio"] {
  appearance: none;
  display: inline-grid;
  flex: 0 0 18px;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  padding: 0 !important;
  place-content: center;
  margin: 0;
  border: 1px solid var(--platform-control-border) !important;
  background: var(--platform-surface) !important;
  cursor: pointer;
}
body.admin-app .dialog-panel input[type="checkbox"] { border-radius: 5px; }
body.admin-app .dialog-panel input[type="radio"] { border-radius: 50%; }
body.admin-app .dialog-panel input[type="checkbox"]::after {
  content: "";
  width: 8px;
  height: 4px;
  border: solid var(--platform-surface);
  border-width: 0 0 2px 2px;
  transform: translateY(-1px) rotate(-45deg) scale(0);
}
body.admin-app .dialog-panel input[type="radio"]::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--platform-surface);
  transform: scale(0);
}
body.admin-app .dialog-panel input[type="checkbox"]:checked,
body.admin-app .dialog-panel input[type="radio"]:checked {
  border-color: var(--platform-blue) !important;
  background: var(--platform-blue) !important;
}
body.admin-app .dialog-panel input[type="checkbox"]:checked::after,
body.admin-app .dialog-panel input[type="radio"]:checked::after { transform: scale(1); }
body.admin-app .dialog-panel input[type="checkbox"]:checked::after { transform: translateY(-1px) rotate(-45deg) scale(1); }
body.admin-app .dialog-panel input[type="checkbox"]:focus-visible,
body.admin-app .dialog-panel input[type="radio"]:focus-visible { border-color:transparent!important;outline:0;box-shadow:var(--platform-focus-shadow)!important; }
body.admin-app .dialog-panel input[type="file"] { padding: 5px !important; color: var(--platform-muted) !important; }
body.admin-app .dialog-panel input[type="file"]::file-selector-button {
  min-height: 32px;
  margin-right: 10px;
  border: 0;
  border-radius: 9px;
  padding: 0 12px;
  color: #0e64ac;
  background: var(--platform-blue-soft);
  font-weight: 650;
  cursor: pointer;
}

.platform-data-card {
  overflow: hidden;
  border: 1px solid var(--platform-line);
  border-radius: 12px;
  background: var(--platform-surface);
  box-shadow: var(--platform-shadow-card);
}
.platform-data-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--platform-line-soft);
}
.platform-data-card__head h2,
.platform-data-card__head h3 { margin: 0; color: var(--platform-ink); }
.platform-data-card__head h2 { font-size: 18px; }
.platform-data-card__head h3 { font-size: 15px; }
.platform-data-card__head p { margin: 5px 0 0; color: var(--platform-muted); font-size: 12px; }
.platform-data-toolbar {
  display: flex;
  align-items: end;
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--platform-line-soft);
  background: var(--platform-surface-soft);
}
.platform-data-toolbar label { display: grid; gap: 5px; }
.platform-data-toolbar .platform-search { min-width: min(360px, 42vw); }
.platform-search-actions {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 8px;
}
.platform-search-actions button {
  min-height: 44px;
  border: 1px solid var(--platform-border-strong);
  border-radius: 10px;
  padding: 0 16px;
  color: var(--platform-action-ink);
  background: var(--platform-surface);
  font-weight: 700;
  cursor: pointer;
}
.platform-search-actions button:hover { border-color: var(--platform-border-hover); color: var(--platform-action-text); background: var(--platform-surface-hover); }
.platform-search-actions button.is-primary,
.platform-search-actions button.primary-button { border-color: var(--platform-blue); color: var(--platform-surface); background: var(--platform-blue); box-shadow: 0 6px 15px rgba(15, 101, 173, .16); }
.platform-search-actions button.is-primary:hover,
.platform-search-actions button.primary-button:hover { border-color: #0b5797; color: var(--platform-surface); background: #0b5797; }
.platform-search-actions button:disabled { cursor: not-allowed; opacity: .48; box-shadow: none; }
.platform-data-count { margin-left: auto; color: var(--platform-muted); font-size: 12px; }
.platform-data-table-wrap { overflow-x: auto; }
.admin-app .platform-admin-shell table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  white-space: nowrap;
}
.admin-app .platform-admin-shell table th {
  padding: 11px 14px !important;
  border-block: 0 1px solid var(--platform-line) !important;
  color: var(--platform-muted) !important;
  background: #f6f8fa !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
  text-align: left;
}
.admin-app .platform-admin-shell table td {
  padding: 12px 14px !important;
  border-bottom: 1px solid var(--platform-line-soft) !important;
  color: #34485f !important;
  font-size: 12px !important;
  vertical-align: middle;
}
.admin-app .platform-admin-shell table tbody tr { transition: background-color .14s; }
.admin-app .platform-admin-shell table tbody tr:hover { background: #f8fbfd !important; }
.admin-app .platform-admin-shell table tbody tr:last-child td { border-bottom: 0 !important; }
.platform-table-primary { display: block; color: var(--platform-ink); font-weight: 700; }
.platform-table-secondary { display: block; margin-top: 3px; color: var(--platform-muted); font-size: 10px; }
.platform-table-code { color: #60748b; font: 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
.platform-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 5px 9px;
  color: var(--platform-muted);
  background: #eef2f6;
  font-size: 11px;
}
.platform-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #94a3b5; }
.platform-status.is-success { color: var(--platform-success); background: var(--platform-success-soft); }
.platform-status.is-success::before { background: #25a36a; }
.platform-status.is-warning { color: var(--platform-warning); background: var(--platform-warning-soft); }
.platform-status.is-warning::before { background: #e79a32; }
.platform-status.is-danger { color: var(--platform-danger); background: var(--platform-danger-soft); }
.platform-status.is-danger::before { background: #d94b3f; }
.platform-row-actions { display: flex; align-items: center; gap: 6px; }
.platform-row-actions button {
  min-height: 30px;
  border: 1px solid var(--platform-border-strong);
  border-radius: 7px;
  padding: 0 9px;
  color: var(--platform-action-ink);
  background: var(--platform-surface);
  cursor: pointer;
}
.platform-row-actions button:hover { border-color: var(--platform-border-hover); color: var(--platform-action-text); background: var(--platform-surface-hover); }
.platform-row-actions button.is-primary { border-color: var(--platform-blue); color: var(--platform-surface); background: var(--platform-blue); }
.platform-row-actions button.is-danger { border-color: #edc7c2; color: var(--platform-danger); background: #fff8f7; }
.platform-row-actions button:disabled { cursor: not-allowed; opacity: .48; }
.platform-table-empty { padding: 42px 16px !important; color: var(--platform-muted) !important; text-align: center; }

/* Readiness rows keep the requirement marker on the left and align the
 * corresponding status copy as one consistent right-hand column. */
.admin-app .platform-admin-shell .table-list .list-row > div {
  text-align: right;
}

@media (min-width: 761px) {
  .admin-app .platform-admin-shell.saas-shell .platform-sidebar {
    position: sticky;
    top: 0;
    z-index: 45;
    display: grid;
    height: 100vh;
    min-height: 0;
    grid-column: 1;
    grid-row: 1 / 3;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    background: var(--platform-sidebar);
  }

  .admin-app .platform-admin-shell.saas-shell .command-nav {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

@media (max-width: 760px) {
  .admin-app .platform-admin-shell.saas-shell .platform-sidebar {
    position: static;
    display: block;
    height: auto;
  }
  .platform-data-card__head,
  .platform-data-toolbar { align-items: stretch; flex-direction: column; }
  .platform-data-toolbar .platform-search { min-width: 0; }
  .platform-search-actions { width: 100%; }
  .platform-search-actions button { flex: 1; }
  .platform-data-count { margin-left: 0; }
}

/* ── Spacing rhythm fixes (unified heading & component gaps) ──── */
/* #1: H1 margin-top — all pages, prevent title from hugging breadcrumb */
.admin-app .saas-shell .masthead h1 {
  margin-top: 12px;
}
.admin-app .masthead h1 {
  margin-top: 12px;
}

/* #3: H3 / section-head to content spacing */
.admin-app .section-block > .section-head,
.admin-app .panel-head {
  margin-bottom: 14px;
}
.admin-app .panel-head h3 {
  margin-bottom: 14px;
}

/* #6: command-actions button gap in sidebar */
.admin-app .saas-shell .command-actions {
  gap: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .admin-app .platform-admin-shell *,
  .admin-app .platform-admin-shell *::before,
  .admin-app .platform-admin-shell *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
