/* Shared palettes for the web application and self-contained report HTML.
   Theme selection is server-rendered on <html>, before the first paint. */
:root, [data-theme="night-laboratory"] {
  --theme-scheme: dark;
  --theme-bg: #12211e;
  --theme-panel: #1c302a;
  --theme-ink: #f2eddc;
  --theme-muted: #bac6ba;
  --theme-soft: #2e443b;
  --theme-line: #354b41;
  --theme-line-strong: #53665a;
  --theme-control-border: #819486;
  --theme-code: #142620;
  --theme-accent: #c8ae74;
  --theme-accent-hover: #e0c793;
  --theme-accent-rgb: 200, 174, 116;
  --theme-danger: #f38378;
  --theme-success: #a9ce91;
  --theme-warning: #e5be6f;
  --theme-info: #88c6e6;
  --theme-danger-bg: #3a2926;
  --theme-danger-border: #705048;
  --theme-success-bg: #223b2a;
  --theme-success-border: #52694c;
  --theme-warning-bg: #3b3423;
  --theme-warning-border: #716345;
  --theme-info-bg: #21363e;
  --theme-info-border: #476775;
  --theme-hover: #263c31;
  --theme-selected: #263b30;
  --theme-stripe: rgb(28 48 42 / 42%);
  --theme-selection: #685b3d;
  --theme-selection-ink: #fff;
  --theme-comment: #a2b5a7;
  --theme-region-header: #56523d;
  --theme-region-code: #395464;
  --theme-region-data: #395850;
  --theme-region-index: #564454;
  --theme-region-rsrc: #5e5236;
  --theme-region-debug: #385865;
  --theme-region-overlay: #5b4b3f;
  --theme-region-border: #89988c;
  --theme-region-pattern: #e2e4d8;
  --theme-close-filter: invert(1);
  --specimen-filter: none;
}

[data-theme="paper-white"] {
  --theme-scheme: light;
  --theme-bg: #faf9f6;
  --theme-panel: #ffffff;
  --theme-ink: #292824;
  --theme-muted: #65625b;
  --theme-soft: #eeece6;
  --theme-line: #dedbd3;
  --theme-line-strong: #aaa59a;
  --theme-control-border: #817d72;
  --theme-code: #f2f0eb;
  --theme-accent: #4c4840;
  --theme-accent-hover: #25231f;
  --theme-accent-rgb: 76, 72, 64;
  --theme-danger: #a5332d;
  --theme-success: #356a3e;
  --theme-warning: #805a13;
  --theme-info: #285c7c;
  --theme-danger-bg: #faeae6;
  --theme-danger-border: #c99a90;
  --theme-success-bg: #eaf2e8;
  --theme-success-border: #9bb49a;
  --theme-warning-bg: #f6efdc;
  --theme-warning-border: #c3af78;
  --theme-info-bg: #e9f0f5;
  --theme-info-border: #9eb5c5;
  --theme-hover: #eeece5;
  --theme-selected: #e7e4dc;
  --theme-stripe: #f5f4f0;
  --theme-selection: #d9d5c9;
  --theme-selection-ink: #25231f;
  --theme-comment: #666359;
  --theme-region-header: #e6e0cb;
  --theme-region-code: #d6e0e4;
  --theme-region-data: #dbe6dd;
  --theme-region-index: #e4dae3;
  --theme-region-rsrc: #e9dfc7;
  --theme-region-debug: #d4e3e5;
  --theme-region-overlay: #e7dcd2;
  --theme-region-border: #8c887e;
  --theme-region-pattern: #555248;
  --theme-close-filter: none;
  --specimen-filter: grayscale(1) brightness(.32);
}

/* Legacy component names remain aliases, not independent color palettes. */
:root, .full-report, .full-report-standalone, .analysis-hover-card {
  color-scheme: var(--theme-scheme);
  --page-bg: var(--theme-bg);
  --bg: var(--theme-bg);
  --paper: var(--theme-panel);
  --panel: var(--theme-panel);
  --ink: var(--theme-ink);
  --text: var(--theme-ink);
  --muted: var(--theme-muted);
  --soft: var(--theme-soft);
  --line: var(--theme-line);
  --line-strong: var(--theme-line-strong);
  --code-bg: var(--theme-code);
  --malcat-blue: var(--theme-accent);
  --malcat-blue-2: var(--theme-accent-hover);
  --malcat-red: var(--theme-danger);
  --success: var(--theme-success);
  --warning: var(--theme-warning);
  --green-50: var(--theme-success-bg);
  --green-100: var(--theme-success-bg);
  --green-600: var(--theme-success);
  --green-700: var(--theme-success);
  --blue-50: var(--theme-info-bg);
  --blue-600: var(--theme-info);
  --amber-50: var(--theme-warning-bg);
  --amber-700: var(--theme-warning);
  --red-50: var(--theme-danger-bg);
  --red-700: var(--theme-danger);
  --purple-50: var(--theme-soft);
}
:root {
  --bs-primary-rgb: var(--theme-accent-rgb);
  --tblr-primary-rgb: var(--theme-accent-rgb);
  --bs-focus-ring-color: rgba(var(--theme-accent-rgb), .3);
  --bs-primary-text-emphasis: var(--theme-accent);
  --bs-primary-bg-subtle: var(--theme-soft);
  --bs-primary-border-subtle: var(--theme-line-strong);
  --bs-link-color-rgb: var(--theme-accent-rgb);
  --bs-link-hover-color-rgb: var(--theme-accent-rgb);
}
::selection { color: var(--theme-selection-ink); background: var(--theme-selection); }
.analysis-report-frame { color-scheme: var(--theme-scheme); }
.report-action-modal .btn-close { filter: var(--theme-close-filter); }
.detection-bar { --detection-bar-color: var(--theme-muted); }
.detection-bar-clean { --detection-bar-color: var(--theme-success); }
.detection-bar-pua, .detection-bar-suspicious { --detection-bar-color: var(--theme-warning); }
.detection-bar-malicious { --detection-bar-color: var(--theme-danger); }
.status-failed { color: var(--theme-danger); }
.status-queued { color: var(--theme-warning); }
.dashboard-detection-clean { --dashboard-detection-color: var(--theme-success); }
.dashboard-detection-suspicious, .dashboard-detection-pua { --dashboard-detection-color: var(--theme-warning); }
.dashboard-detection-malicious { --dashboard-detection-color: var(--theme-danger); }
.dashboard-detection-unknown { --dashboard-detection-color: var(--theme-muted); }
.theme-choice { color: var(--theme-ink); }

@media print {
  :root, [data-theme] {
    --theme-scheme: light; --theme-bg: #fff; --theme-panel: #fff;
    --theme-ink: #292824; --theme-muted: #65625b; --theme-code: #f2f0eb;
    --theme-soft: #eeece6; --theme-line: #dedbd3; --theme-line-strong: #aaa59a;
    --theme-accent: #4c4840; --specimen-filter: grayscale(1) brightness(.32);
    --theme-danger: #a5332d; --theme-danger-bg: #faeae6; --theme-danger-border: #c99a90;
    --theme-success: #356a3e; --theme-success-bg: #eaf2e8; --theme-success-border: #9bb49a;
    --theme-warning: #805a13; --theme-warning-bg: #f6efdc; --theme-warning-border: #c3af78;
    --theme-info: #285c7c; --theme-info-bg: #e9f0f5; --theme-info-border: #9eb5c5;
    --theme-comment: #666359;
    --theme-region-header: #e6e0cb; --theme-region-code: #d6e0e4;
    --theme-region-data: #dbe6dd; --theme-region-index: #e4dae3;
    --theme-region-rsrc: #e9dfc7; --theme-region-debug: #d4e3e5;
    --theme-region-overlay: #e7dcd2; --theme-region-border: #8c887e;
  }
}
