/* Load after app.css. Unlayered, low-specificity theme tokens allow local overrides. */
:where(:root) {
  color-scheme: light;
  --page-bg: #f9fafb;
  --page-surface: #ffffff;
  --page-text: #111827;
  --page-muted: #4b5563;
  --page-border: #9ca3af;
  --page-link: #14532d;
  --page-focus: #1d4ed8;
}
:where(html[data-theme="dark"]) {
  color-scheme: dark;
  --page-bg: #111827;
  --page-surface: #1f2937;
  --page-text: #f9fafb;
  --page-muted: #d1d5db;
  --page-border: #6b7280;
  --page-link: #86efac;
  --page-focus: #93c5fd;
  --color-gray-50: #111827;
  --color-gray-100: #1f2937;
  --color-gray-200: #4b5563;
  --color-gray-300: #6b7280;
  --color-gray-400: #9ca3af;
  --color-gray-500: #d1d5db;
  --color-gray-600: #d1d5db;
  --color-gray-700: #e5e7eb;
  --color-gray-800: #f3f4f6;
  --color-gray-900: #f9fafb;
}
@media (prefers-color-scheme: dark) {
  :where(html[data-theme="system"]) {
    color-scheme: dark;
    --page-bg: #111827;
    --page-surface: #1f2937;
    --page-text: #f9fafb;
    --page-muted: #d1d5db;
    --page-border: #6b7280;
    --page-link: #86efac;
    --page-focus: #93c5fd;
    --color-gray-50: #111827;
    --color-gray-100: #1f2937;
    --color-gray-200: #4b5563;
    --color-gray-300: #6b7280;
    --color-gray-400: #9ca3af;
    --color-gray-500: #d1d5db;
    --color-gray-600: #d1d5db;
    --color-gray-700: #e5e7eb;
    --color-gray-800: #f3f4f6;
    --color-gray-900: #f9fafb;
  }
}
:where(body) { background-color: var(--page-bg); color: var(--page-text); }
:where(.bg-white, dialog) { background-color: var(--page-surface); color: var(--page-text); }
:where(.text-brand) { color: var(--page-link); }
/* Error/status text keeps AA contrast on the dark surface (§28.3). */
:where(html[data-theme="dark"]) .text-red-700,
:where(html[data-theme="dark"]) .text-red-600 { color: #fca5a5; }
@media (prefers-color-scheme: dark) {
  :where(html[data-theme="system"]) .text-red-700,
  :where(html[data-theme="system"]) .text-red-600 { color: #fca5a5; }
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, select) {
  background-color: var(--page-surface);
  color: var(--page-text);
  border-color: var(--page-border);
}
:where(input, textarea)::placeholder { color: var(--page-muted); opacity: 1; }
:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--page-focus);
  outline-offset: 3px;
}
:where(dialog) { margin: auto; max-width: min(90vw, 38rem); padding: 1.5rem; border: 1px solid var(--page-border); border-radius: .75rem; }
:where(dialog)::backdrop { background: rgb(0 0 0 / 60%); }
:where(kbd) { border: 1px solid var(--page-border); border-radius: .2rem; padding: .1rem .35rem; }
:where(form[aria-busy="true"] button[type="submit"]) { cursor: progress; }
.print-header { display: none; }
@media print {
  @page { margin: 15mm; }
  :where(:root) { color-scheme: light; }
  /* Print overrides are deliberately stronger than screen utility classes. */
  *, *::before, *::after {
    color: #000 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-color: #666 !important;
  }
  html, body { background: #fff !important; }
  nav, body > header, aside, form, button, dialog, .skip-link,
  [role="navigation"], [role="alert"], [data-print-hide], .no-print,
  .actions, [data-actions] { display: none !important; }
  .print-header { display: block !important; margin-bottom: 1rem; border-bottom: 1px solid #000; padding-bottom: .5rem; }
  main, #main, [data-report] { width: 100%; max-width: none; margin: 0; padding: 0; }
  .overflow-x-auto, .overflow-auto { overflow: visible !important; }
  table { width: 100%; border-collapse: collapse; font-size: 10pt; }
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr, img { break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
  a { text-decoration: none; }
}
