/* Readability — uses tokens.css (do not redefine accent/bg) */
:root {
  --text: var(--text-primary);
  --text-soft: var(--text-secondary);
  --text-dim: var(--text-muted);
}


/* Panel shell only */
body.app-shell,
body:has(#app),
body:has(.sidebar) {
  color: var(--text-primary);
  background: var(--bg-primary);
}

/* Legal hub */
.legal-hub-grid a > span:first-child { color: var(--text-primary) !important; font-weight: 600; }
.legal-hub-grid a span:last-child { color: var(--text-secondary) !important; }
.legal-page .content,
.legal-page p,
.legal-page li { color: var(--text-primary); }

/* ML + status captions */
.ml-caption,
.ml-section-head .ml-caption,
.panel-updated,
.stat-sub,
.connect-hint,
.fineprint,
.svc-list .svc-desc,
.ep-list .ep-path { color: var(--text-secondary) !important; }

/* Panel cards/tables */
.sidebar .nav-item { color: var(--text-secondary); }
.sidebar .nav-item.active { color: var(--accent, #ff5c1a); }
.data-table td,
.data-table th,
.modal-body,
.notification-item__body { color: var(--text-primary); }
.text-muted, .muted, small { color: var(--text-muted); }

.inline-check, .inline-ico, .ico {
  display: inline-flex;
  vertical-align: middle;
  margin-right: 0.25rem;
}