/*
 * Camada APP do Purge Design System aplicada à Validação Preventiva.
 * Tokens originais: vendor/purge-design-system/tokens/macos.css
 * Fonte: amondf/purge_amael_macos_design-system @ 78f59246042f42bdc44ee7013c5aaae31c0854e
 */
:root {
  --app-radius-pill: 999px; /* formato pill definido no guia de componentes do sistema */
  --navy: var(--app-surface-base);
  --navy-2: var(--app-surface-card);
  --ink: var(--app-text-primary);
  --muted: var(--app-text-secondary);
  --line: var(--app-border-subtle);
  --paper: var(--app-surface-base);
  --white: var(--app-surface-card);
  --mint: var(--app-fill-secondary);
  --green: var(--app-status-safe-text);
  --green-dark: var(--app-action-primary);
  --amber: var(--app-status-check-text);
  --amber-bg: var(--app-status-check-fill);
  --red: var(--app-status-danger-text);
  --red-bg: var(--app-status-danger-fill);
  --blue: var(--app-status-unsure-text);
  --blue-bg: var(--app-status-unsure-fill);
}

body { background: var(--app-surface-base); color: var(--app-text-primary); font: var(--app-type-body); }
.sidebar { background: var(--app-surface-base); color: var(--app-text-primary); border-right: 1px solid var(--app-border-subtle); }
.brand, .brand:hover { color: var(--app-text-primary); }
.brand strong { font: var(--app-type-section-title); letter-spacing: -.02em; }
.brand small { color: var(--app-text-secondary); font: var(--app-type-micro); letter-spacing: .12em; }
.brand-mark { background: var(--app-fill-secondary); color: var(--app-text-primary); border-radius: var(--app-radius-md); }
.workspace-label, .eyebrow { color: var(--app-text-secondary); }
.workspace { background: var(--app-surface-card); color: var(--app-text-primary); border: 1px solid var(--app-border-strong); border-radius: var(--app-radius-md); height: var(--app-control-height); }
.workspace-dot, .local-badge i { background: var(--app-status-safe-text); box-shadow: none; }
.chevron { color: var(--app-text-tertiary); }
.main-nav { gap: var(--app-space-xxs); }
.nav-link { color: var(--app-text-secondary); border-radius: var(--app-radius-md); }
.nav-link.active { color: var(--app-text-primary); background: var(--app-fill-secondary); }
.nav-link kbd { background: var(--app-surface-card); color: var(--app-text-secondary); border: 1px solid var(--app-border-subtle); }
.local-note { background: var(--app-surface-card); border-color: var(--app-border-subtle); color: var(--app-text-secondary); border-radius: var(--app-radius-lg); }
.local-note strong, .sidebar-footer strong { color: var(--app-text-primary); }
.local-note p, .sidebar-footer small { color: var(--app-text-secondary); }
.sidebar-footer { border-color: var(--app-border-subtle); }
.avatar { background: var(--app-fill-secondary); color: var(--app-text-primary); }
.topbar { background: var(--app-surface-card); border-color: var(--app-border-subtle); }
.breadcrumbs, .local-badge { color: var(--app-text-secondary); }
.breadcrumbs strong { color: var(--app-text-primary); }
.icon-button { color: var(--app-text-secondary); border-color: var(--app-border-strong); background: var(--app-surface-card); }
.page h1 { color: var(--app-text-primary); font: var(--app-type-page-title); letter-spacing: -.02em; }
.page h2, .rules-toolbar h2, .custom-rule-area h2 { color: var(--app-text-primary); font: var(--app-type-section-title); }
.page-heading p, .section-heading p, .rules-toolbar p { color: var(--app-text-secondary); font: var(--app-type-callout); }
.eyebrow { font: var(--app-type-micro); letter-spacing: .14em; }
.button { border-radius: var(--app-radius-pill); font: var(--app-type-headline); transition: background var(--app-hover-duration) ease-out, color var(--app-hover-duration) ease-out, opacity var(--app-enable-duration) ease-out; }
.button-primary, .button-dark { background: var(--app-action-primary); color: var(--app-on-action-primary); box-shadow: none; }
.button-primary:hover, .button-dark:hover { background: var(--app-action-primary-hover); }
.button-primary:active, .button-dark:active { background: var(--app-action-primary-pressed); }
.button-primary:disabled { background: var(--app-action-primary); color: var(--app-on-action-primary); opacity: var(--app-disabled-opacity); }
.button-quiet, .button-white { background: var(--app-surface-card); border-color: var(--app-border-strong); color: var(--app-text-primary); }
.button-quiet:hover, .button-white:hover { background: var(--app-fill-secondary-hover); }
.button-quiet:active, .button-white:active { background: var(--app-fill-secondary-pressed); }
.text-button { color: var(--app-text-primary); border-radius: var(--app-radius-pill); padding: 8px 12px; }
.text-button:hover { background: var(--app-fill-secondary); }
:focus-visible { outline: 2px solid var(--app-action-primary); outline-offset: 3px; }
.onboarding-banner { background: var(--app-surface-card); border-color: var(--app-border-subtle); border-radius: var(--app-radius-lg); }
.onboarding-banner p { color: var(--app-text-secondary); }
.banner-icon { background: var(--app-fill-secondary); color: var(--app-text-primary); border-radius: var(--app-radius-md); }
.files-grid { gap: var(--app-space-xs); }
.file-card, .summary-card, .findings-panel, .coverage-panel, .custom-rule-area { background: var(--app-surface-card); border-color: var(--app-border-subtle); border-radius: var(--app-radius-lg); box-shadow: none; }
.file-card.loaded { border-color: var(--app-border-subtle); }
.file-icon { background: var(--app-fill-secondary); color: var(--app-text-secondary); border-radius: var(--app-radius-sm); }
.file-card.loaded .file-icon { background: var(--app-status-safe-fill); color: var(--app-status-safe-text); }
.file-name, .finding-title, .coverage-name, .rule-name { color: var(--app-text-primary); }
.file-sub, .file-status, .summary-label, .summary-note, .finding-detail, .coverage-count, .coverage-panel > p, .rule-description, .rules-counter, .custom-rule-area > div p, .config-io p { color: var(--app-text-secondary); }
.file-card.loaded .file-status, .coverage-footnote span { color: var(--app-status-safe-text); }
.summary-card:after { display: none; }
.summary-value { font: var(--app-type-display-small); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.summary-card.error .summary-value { color: var(--app-status-danger-text); }
.summary-card.warning .summary-value { color: var(--app-status-check-text); }
.summary-card.info .summary-value { color: var(--app-status-unsure-text); }
.summary-card.ok .summary-value { color: var(--app-status-safe-text); }
.results-layout { gap: var(--app-space-xs); }
.findings-toolbar { border-color: var(--app-border-subtle); }
.findings-toolbar h3, .coverage-panel h3 { color: var(--app-text-primary); font: var(--app-type-headline); }
.findings-toolbar span { color: var(--app-text-secondary); }
.pill { border-radius: var(--app-radius-pill); color: var(--app-text-secondary); }
.pill.active { background: var(--app-fill-secondary); border-color: var(--app-border-subtle); color: var(--app-text-primary); }
.finding { border-color: var(--app-border-subtle); }
.severity-line { background: var(--app-status-danger-text); }
.finding.warning .severity-line { background: var(--app-status-check-text); }
.finding.info .severity-line { background: var(--app-status-unsure-text); }
.severity-badge { background: var(--app-status-danger-fill); color: var(--app-status-danger-text); border-radius: var(--app-radius-xs); font: var(--app-type-micro); }
.finding.warning .severity-badge { background: var(--app-status-check-fill); color: var(--app-status-check-text); }
.finding.info .severity-badge { background: var(--app-status-unsure-fill); color: var(--app-status-unsure-text); }
.finding-count { color: var(--app-text-primary); font: var(--app-type-metadata-emphasis); }
.finding-examples { background: var(--app-status-check-fill); color: var(--app-status-check-text); border-radius: var(--app-radius-xs); }
.coverage-track { background: var(--app-fill-secondary); border-radius: var(--app-radius-xs); }
.coverage-track span { background: var(--app-status-safe-text); }
.coverage-footnote { border-color: var(--app-border-subtle); color: var(--app-text-secondary); }
.page-footer { border-color: var(--app-border-subtle); color: var(--app-text-secondary); }
.rules-intro { background: var(--app-surface-card); border-color: var(--app-border-subtle); border-radius: var(--app-radius-lg); }
.rules-intro-icon { color: var(--app-text-secondary); }
.rules-intro strong, .config-io strong { color: var(--app-text-primary); }
.rule-card { background: var(--app-surface-card); border-color: var(--app-border-subtle); border-radius: var(--app-radius-lg); }
.rule-card.disabled { opacity: var(--app-disabled-opacity); }
.rule-category { color: var(--app-text-secondary); background: var(--app-fill-secondary); border-radius: var(--app-radius-xs); }
.severity-select, .threshold-input, .custom-rule-form select { background: var(--app-surface-card); border-color: var(--app-border-strong); color: var(--app-text-primary); border-radius: var(--app-radius-md); }
.switch { background: var(--app-fill-secondary-pressed); }
.switch.on { background: var(--app-action-primary); }
.rule-delete { color: var(--app-text-secondary); border-radius: var(--app-radius-pill); }
.rule-delete:hover { background: var(--app-status-danger-fill); color: var(--app-status-danger-text); }
.config-io { border-color: var(--app-border-subtle); }
.file-label { color: var(--app-text-primary); }
.page h1, .page h2, .summary-value { font-family: var(--app-font-rounded); }
.page, .topbar, .sidebar { transition: background var(--app-enable-duration) ease-in-out, color var(--app-enable-duration) ease-in-out; }
.toast { background: var(--app-surface-raised); color: var(--app-text-primary); border: 1px solid var(--app-border-strong); box-shadow: none; border-radius: var(--app-radius-lg); }
dialog { background: var(--app-surface-raised); color: var(--app-text-primary); border: 1px solid var(--app-border-subtle); border-radius: var(--app-radius-lg); box-shadow: none; }
dialog::backdrop { background: var(--app-scrim); backdrop-filter: none; }
.dialog-head h2 { color: var(--app-text-primary); font: var(--app-type-title); }
.help-steps b { background: var(--app-fill-secondary); color: var(--app-text-primary); }
.page-footer, .config-io { font: var(--app-type-metadata); }
.summary-label, .summary-note, .file-sub, .file-status, .coverage-name, .coverage-count, .rule-description, .rule-category, .severity-badge, .rules-counter, .page-footer { font-size: var(--app-type-micro); }
.file-name, .findings-toolbar span, .finding-detail, .finding-count, .coverage-footnote { font-size: var(--app-type-metadata); }

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