@media screen {
  :root[data-theme="dark"] {
    color-scheme: dark;
    --paper: #111c28;
    --surface: #192837;
    --surface-raised: #223447;
    --ink: #edf3fa;
    --muted: #b3c5d5;
    --border: #445a70;
    --field: #101d2a;
    --field-border: #647d94;
    --button-ink: #111c28;
    --focus: #a8d9ff;
    --error-ink: #ffbdb2;
    --error-surface: #432824;
    --warning-ink: #f4d3a8;
    --warning-surface: #3a2d24;
    --success-ink: #b3e4cd;
    --success-surface: #20382f;
  }

  [data-theme="dark"] body {
    --tool-color: #235e51;
    --accent: color-mix(in srgb, var(--tool-color) 42%, white);
    --tool-tint: color-mix(in srgb, var(--tool-color) 27%, var(--surface));
    --border: #445a70;
    background: var(--paper);
  }
  [data-theme="dark"] body.reposteria { --tool-color: #a03f32; }
  [data-theme="dark"] body.turnos { --tool-color: #215a85; }
  [data-theme="dark"] body.cotizaciones { --tool-color: #795115; }
  [data-theme="dark"] body.abonos { --tool-color: #315e68; }
  [data-theme="dark"] body.menu-tool { --tool-color: #963e2b; }
  [data-theme="dark"] body.tool-caja { --tool-color: #27614a; }
  [data-theme="dark"] body.tool-inventario { --tool-color: #445687; }
  [data-theme="dark"] body.tool-pedidos { --tool-color: #8a432e; }
  [data-theme="dark"] body.tool-citas { --tool-color: #734c73; }
  [data-theme="dark"] body.tool-compras { --tool-color: #39613b; }
  [data-theme="dark"] body.tool-recibos { --tool-color: #684a7b; }

  [data-theme="dark"] :is(.secondary, .text-button, button[type="reset"]) { color: var(--accent); }
  [data-theme="dark"] .danger { color: var(--error-ink); background: var(--error-surface); border-color: var(--error-ink); }
  [data-theme="dark"] :is(input, select, textarea) { background: var(--field); border-color: var(--field-border); }
  [data-theme="dark"] :is(input, textarea)::placeholder { color: var(--muted); opacity: 1; }
  [data-theme="dark"] :is(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--error-ink);
    box-shadow: 0 0 0 1px var(--error-ink);
  }
  [data-theme="dark"] :is(.error, .field-error) { color: var(--error-ink); }
  [data-theme="dark"] :is(.notice, .connection-status) {
    border-color: var(--border);
    background: var(--success-surface);
    color: var(--success-ink);
  }
  [data-theme="dark"] .connection-status.warning {
    color: var(--warning-ink);
    background: var(--warning-surface);
    border-color: var(--border);
  }
  [data-theme="dark"] :focus-visible { outline-color: var(--focus); }
  [data-theme="dark"] .related-app-icon { color: color-mix(in srgb, var(--related-accent) 42%, white); }
  [data-theme="dark"] :is(dialog, .pwa-dialog)::backdrop { background: #040a12b3; }

  [data-theme="dark"] body.reposteria {
    --bakery-ink: var(--ink);
    --bakery-muted: var(--muted);
    --bakery-line: var(--border);
    --bakery-field-line: var(--field-border);
    --bakery-paper: var(--surface);
    --bakery-tint: var(--tool-tint);
    --bakery-dark: var(--accent);
  }
  [data-theme="dark"] .bakery-field > :is(input, select, textarea, textarea[readonly]) { background: var(--field); }
  [data-theme="dark"] .bakery-field > :is(input, select, textarea):hover { background: var(--surface-raised); }
  [data-theme="dark"] .bakery-field > :is(input, select, textarea)[aria-invalid="true"] {
    background: var(--error-surface);
    border-color: var(--error-ink);
  }
  [data-theme="dark"] .bakery-field > input::placeholder { color: var(--muted); }
  [data-theme="dark"] :is(.bakery-ingredient, .bakery-total, .bakery-pro-box, .bakery-field > :is(input[readonly], select:disabled)) {
    background: var(--tool-tint);
  }
  [data-theme="dark"] .bakery-line-cost { background: var(--surface-raised); }
  [data-theme="dark"] .bakery-primary { color: var(--paper); }
  [data-theme="dark"] .bakery-primary:hover { background: color-mix(in srgb, var(--accent) 75%, white); color: var(--paper); }
  [data-theme="dark"] .bakery-error { color: var(--error-ink); }

  [data-theme="dark"] body.turnos {
    --turnos-blue: var(--accent);
    --turnos-deep: #c8e7ff;
    --turnos-ink: var(--ink);
    --turnos-muted: var(--muted);
    --turnos-paper: var(--paper);
    --turnos-border: var(--border);
    --turnos-work: #223e57;
    --turnos-rest: #243c36;
    --turnos-before: #243340;
    --turnos-warn: var(--error-ink);
  }
  [data-theme="dark"] :is(.turnos-panel, .turnos-library, .turnos-dialog, .turnos-button) { background: var(--surface); }
  [data-theme="dark"] :is(.turnos-section-head, .turnos-detail-head) { background: linear-gradient(125deg, #1e3449, #28608a); }
  [data-theme="dark"] .turnos-field > :is(input, select) { background: var(--field); border-color: var(--field-border); }
  [data-theme="dark"] :is(.turnos-pattern-options label:has(:checked), .turnos-notice, .turnos-button:hover) { background: var(--surface-raised); }
  [data-theme="dark"] :is(.turnos-primary, .turnos-entry, .turnos-day-button[aria-current="date"] .turnos-day-number) {
    background: var(--turnos-blue);
    color: var(--paper);
  }
  [data-theme="dark"] .turnos-primary:hover { background: var(--turnos-deep); }
  [data-theme="dark"] .turnos-remove:hover { background: var(--error-surface); }
  [data-theme="dark"] .turnos-days { scrollbar-color: var(--field-border) var(--surface); }

  [data-theme="dark"] body.cotizaciones {
    --quote-ink: var(--ink);
    --quote-muted: var(--muted);
    --quote-rule: var(--border);
    --quote-surface: var(--surface);
    --quote-cream: var(--tool-tint);
    --quote-error: var(--error-ink);
  }
  [data-theme="dark"] .quote-header { background: linear-gradient(112deg, var(--surface), #382e29); }
  [data-theme="dark"] :is(.quote-header h1, .quote-panel h2, .quote-line-amount, .quote-subtotals .quote-final,
    .quote-action-status, .quote-tool :is(a, button)) { color: var(--accent); }
  [data-theme="dark"] .quote-fields :is(input, select, textarea) { border-color: var(--field-border); background: var(--field); }
  [data-theme="dark"] :is(#no-lines, .quote-subtotals, #review-lines h3, .quote-tool :is(a, button):hover,
    .quote-tool button[aria-current="page"]) { background: var(--tool-tint); border-color: var(--border); }
  [data-theme="dark"] #review-lines h3 { color: var(--accent); }
  [data-theme="dark"] .quote-warning { background: var(--warning-surface); color: var(--warning-ink); border-color: var(--border); }

  [data-theme="dark"] body.tandas {
    --td-paper: var(--paper);
    --td-white: var(--surface);
    --td-deep: #bde6d8;
    --td-ivory: var(--ink);
    --td-ink: var(--ink);
    --td-green: var(--accent);
    --td-muted: var(--muted);
    --td-line: var(--border);
    --td-tint: var(--tool-tint);
    --td-red: var(--error-ink);
  }
  [data-theme="dark"] .td-top { background: var(--surface); }
  [data-theme="dark"] :is(.td-welcome, .td-round-top) { background: linear-gradient(115deg, #1b3840, #235047); }
  [data-theme="dark"] .tandas .td-primary { color: var(--paper); }
  [data-theme="dark"] .tandas .td-primary:not(:disabled):hover { background: var(--td-deep); }
  [data-theme="dark"] .tandas .td-welcome .td-primary { background: var(--td-deep); border-color: var(--td-deep); }
  [data-theme="dark"] .tandas .td-welcome .td-primary:hover { background: #d2f3e7; }
  [data-theme="dark"] .tandas :is(.td-field input, .td-field select, #td-summary) { background: var(--field); border-color: var(--field-border); }
  [data-theme="dark"] .tandas :is(button, input, select, textarea, a):focus-visible { outline-color: var(--focus); }
  [data-theme="dark"] :is(.td-pill, .td-totals div) { background: var(--tool-tint); color: var(--ink); }
  [data-theme="dark"] :is(.td-notice.td-error:not(:empty), .td-pill.td-late) { background: var(--error-surface); color: var(--error-ink); }
  [data-theme="dark"] .td-pill.td-done { background: var(--success-surface); color: var(--success-ink); }
  [data-theme="dark"] .td-totals .td-totals-pending { background: var(--warning-surface); color: var(--warning-ink); }
  [data-theme="dark"] .td-totals .td-totals-pending dt { color: var(--warning-ink); }

  [data-theme="dark"] .balance-banner { background: var(--tool-tint); color: var(--ink); }
  [data-theme="dark"] .balance-banner button { background: var(--accent); color: var(--paper); }
  [data-theme="dark"] .abonos .backup-entry button.backup-entry-button { background: var(--tool-tint); color: var(--accent); }
  [data-theme="dark"] :is(.dish-input, .order-panel) { background: var(--surface-raised); }
  [data-theme="dark"] .record-tool #remove-record { color: var(--error-ink); }

  [data-theme="dark"] .backup-dialog { background: var(--surface); color: var(--ink); border-color: var(--border); }
  [data-theme="dark"] .backup-close { color: var(--ink); border-color: var(--border); }
  [data-theme="dark"] :is(.backup-intro, .backup-option p, .backup-dialog .backup-help, .backup-dialog .backup-footnote) { color: var(--muted); }
  [data-theme="dark"] :is(.backup-option, .backup-preview) { border-color: var(--border); }
  [data-theme="dark"] .backup-dialog .backup-button { color: var(--paper); }
  [data-theme="dark"] .backup-dialog .backup-secondary { background: var(--surface-raised); color: var(--accent); border-color: var(--border); }
  [data-theme="dark"] .backup-file-label { color: var(--ink); }
  [data-theme="dark"] .backup-dialog .backup-file { background: var(--field); color: var(--ink); border-color: var(--field-border); }
  [data-theme="dark"] .backup-file::file-selector-button,
  [data-theme="dark"] :is(.backup-counts, .backup-dialog .backup-filename) { background: var(--surface-raised); }
  [data-theme="dark"] .backup-entry-error .backup-entry-status { color: var(--error-ink); }
  [data-theme="dark"] .backup-dialog .backup-error { background: var(--error-surface); color: var(--error-ink); border-color: var(--border); }
  [data-theme="dark"] .backup-dialog .backup-message { background: var(--success-surface); color: var(--success-ink); border-color: var(--border); }
  [data-theme="dark"] :is(.backup-dialog, .backup-entry) :focus-visible { outline-color: var(--focus); }
}
