/**
 * RC1 Accessibility overrides — high contrast, token-only surfaces.
 * Loaded last so it wins over legacy app.css / module CSS.
 */

/* Typography hierarchy */
.admin-shell-v2 .shell-page-title,
#shell-page-title {
  color: var(--text-primary) !important;
  font: var(--font-h1);
}

.admin-shell-v2 .v2-page-desc,
#v2-page-description {
  color: var(--text-secondary) !important;
  font: var(--font-caption);
}

.admin-shell-v2 h1,
.admin-shell-v2 h2,
.page-panel h1,
.page-panel h2 {
  color: var(--text-primary);
}

.admin-shell-v2 h3,
.page-panel h3 {
  color: var(--text-primary);
  font: var(--font-h3);
}

/* Cards & metrics */
.admin-shell-v2 .card,
.page-panel .card,
.panel {
  background: var(--bg-card) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-default) !important;
}

.card .value,
.ax-metric-value,
.tl-metric strong,
.co-metric-value,
.ro-metric-value,
.so-metric-value,
.wb-card-value,
.studio-metric .value {
  color: var(--text-primary) !important;
  font-weight: 700 !important;
}

.card h3,
.ax-metric-label,
.ax-metric-hint,
.tl-metric .muted,
.muted {
  color: var(--text-secondary) !important;
}

.ax-metric-value.is-empty,
.v2-text-disabled {
  color: var(--text-tertiary) !important;
}

/* Tables */
.admin-shell-v2 table th,
.page-panel table th {
  background: var(--bg-muted);
  color: var(--text-primary);
  font-weight: 700;
}

.admin-shell-v2 table td,
.page-panel table td {
  color: var(--text-primary);
}

/* Forms inside shell */
.admin-shell-v2 input,
.admin-shell-v2 select,
.admin-shell-v2 textarea,
.page-panel input,
.page-panel select,
.page-panel textarea,
.login-panel input {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  -webkit-text-fill-color: var(--text-primary) !important;
  border-color: var(--border-default) !important;
}

.admin-shell-v2 input::placeholder,
.page-panel input::placeholder,
.login-panel input::placeholder {
  color: var(--text-tertiary) !important;
  opacity: 1 !important;
}

/* Buttons */
.admin-shell-v2 button.secondary,
.page-panel button.secondary {
  background: var(--bg-muted) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border-default) !important;
}

/* Code / JSON / developer details */
.admin-shell-v2 pre,
.page-panel pre,
.tl-pre,
.ax-export-preview,
details.tl-tech pre,
details.ax-tech pre,
details.co-tech pre,
.v2-state pre {
  background: var(--bg-code) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border-default);
}

/* Charts */
.ax-axis {
  fill: var(--text-secondary) !important;
}
.ax-grid {
  stroke: var(--border-light) !important;
}
.ax-line-path,
.ax-bar-fill {
  stroke: var(--color-primary);
}
.ax-bar-fill {
  background: var(--color-primary) !important;
}
.ax-chart-title,
.ax-section-title,
.tl-section-title {
  color: var(--text-primary) !important;
}
.ax-chart-empty .muted,
.ax-bar-label,
.ax-bar-value {
  color: var(--text-secondary) !important;
}

/* Status / badges — soft bg + dark semantic text (never pale green + white) */
.badge {
  background: var(--bg-muted) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border-default) !important;
  font-weight: 600 !important;
}
.badge.on,
.badge.ok,
.badge.success,
span.badge.ok {
  background: var(--success-soft) !important;
  color: var(--success) !important;
  border-color: var(--success) !important;
}
.badge.warn,
.badge.warning {
  background: var(--warning-soft) !important;
  color: var(--warning) !important;
  border-color: var(--warning) !important;
}
.badge.info {
  background: var(--info-soft) !important;
  color: var(--info) !important;
  border-color: var(--info) !important;
}
.badge.danger,
.badge.error {
  background: var(--danger-soft) !important;
  color: var(--danger) !important;
  border-color: var(--danger) !important;
}
.badge.off,
.badge.muted {
  background: var(--bg-muted) !important;
  color: var(--text-secondary) !important;
}
.ok { color: var(--success) !important; }
.error { color: var(--danger) !important; }

/* Workbench status chips */
.wb-card-label,
.wb-card-hint,
.wb-status dt {
  color: var(--text-secondary) !important;
}
.wb-card-value,
.wb-status dd {
  color: var(--text-primary) !important;
  font-weight: 700;
}

/* Sidebar section labels */
.admin-shell-v2 .sidebar-section-label {
  color: var(--text-secondary) !important;
  font-weight: 700 !important;
}
.v2-tech-chip {
  color: var(--text-secondary) !important;
  background: var(--bg-muted) !important;
  border-color: var(--border-default) !important;
}

/* Empty / loading */
.v2-state-title { color: var(--text-primary) !important; }
.v2-state-text { color: var(--text-secondary) !important; }
.v2-state-icon { color: var(--text-tertiary) !important; }

/* Login */
.login-panel {
  background: var(--bg-card);
  border: 1px solid var(--border-default);
  color: var(--text-primary);
  box-shadow: var(--shadow-floating);
}
.login-panel h1 { color: var(--text-primary); }
.login-panel .muted { color: var(--text-secondary); }

/* Toast */
.toast {
  background: var(--bg-card) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-default) !important;
}

/* Studio workspaces — force light readable surfaces */
.studio-shell,
.assets-workspace,
.testing-workspace,
.observe-workspace,
.release-workspace,
.audit-workspace,
.pg-grid,
.dashboard-workspace {
  color: var(--text-primary);
}

.studio-shell .card,
.assets-workspace .card,
.testing-workspace .card,
.observe-workspace .card,
.release-workspace .card,
.audit-workspace .card {
  background: var(--bg-card) !important;
  color: var(--text-primary) !important;
}

/* Timeline / analytics dark-hero leftovers */
.tl-hero,
.ax-health,
.ax-export-actions,
.tl-search,
.ax-health.tone-ok,
.ax-health.tone-warn,
.ax-health.tone-danger {
  background: var(--bg-card) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border-default);
}

.tl-health-score,
.ax-health-score {
  color: var(--text-primary) !important;
}

.tl-eyebrow,
.ax-eyebrow {
  color: var(--color-primary) !important;
}

/* Nav readability */
.admin-shell-v2 .nav-item {
  color: var(--text-secondary);
}
.admin-shell-v2 .nav-item:hover,
.admin-shell-v2 .nav-item.active {
  color: var(--color-primary);
}

/* Breadcrumb */
.shell-breadcrumb,
.shell-breadcrumb a {
  color: var(--text-secondary);
}
.shell-breadcrumb .crumb-current {
  color: var(--text-primary);
  font-weight: 600;
}

/* Kill low-opacity text tricks */
.admin-shell-v2 .muted[style*="opacity"],
.page-panel [style*="opacity: 0."] {
  opacity: 1 !important;
}
