:root {
    --prefer-dark-bg: #0d1713;
    --prefer-dark-surface: #16231e;
    --prefer-dark-surface-soft: #1b2b24;
    --prefer-dark-border: #334940;
    --prefer-dark-text: #edf6f1;
    --prefer-dark-muted: #a9bbb2;
}

.global-theme-toggle {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 10000;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    background: #0b5135;
    color: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .24);
    font: 900 21px/1 "Segoe UI Symbol", "Segoe UI", sans-serif;
    cursor: pointer;
}

.global-theme-toggle:hover,
.global-theme-toggle:focus-visible {
    background: #087348;
    outline: 3px solid rgba(114, 219, 157, .35);
}

html[data-theme="dark"] {
    color-scheme: dark;
    --ink: var(--prefer-dark-text);
    --ink-950: var(--prefer-dark-text);
    --ink-900: var(--prefer-dark-text);
    --ink-800: #d9e8e0;
    --ink-600: var(--prefer-dark-muted);
    --ink-500: #91a59b;
    --muted: var(--prefer-dark-muted);
    --line: var(--prefer-dark-border);
    --line-soft: #293d34;
    --surface: var(--prefer-dark-surface);
    --background: var(--prefer-dark-bg);
    --soft: var(--prefer-dark-surface-soft);
    --white: var(--prefer-dark-surface);
    --bg: var(--prefer-dark-bg);
    --green-soft: #18392b;
    --green-50: #173226;
    --green-100: #214534;
    --danger-soft: #421f20;
    --warning-soft: #3c3218;
    --n-900: #edf6f1;
    --n-800: #d6e6de;
    --n-700: #bccdc4;
    --n-600: #a2b5ab;
    --n-500: #91a59b;
    --n-400: #72887d;
    --n-300: #52695e;
    --n-200: #354a40;
    --n-150: #293d34;
    --n-100: #16231e;
    --n-50: #111c18;
}

html[data-theme="dark"] body {
    color: var(--prefer-dark-text) !important;
    background: var(--prefer-dark-bg) !important;
}

html[data-theme="dark"] :where(
    .topbar, .portal-header, .login, .panel, .type-card, .dashboard-card,
    .stat, .tab, .record, .library-row, .manual-card, .empty, .library-item,
    .preview-toolbar, .modal-card, .drawer, .card, .content-card, .form-card,
    .section-card, .data-card
) {
    color: var(--prefer-dark-text) !important;
    background-color: var(--prefer-dark-surface) !important;
    border-color: var(--prefer-dark-border) !important;
}

html[data-theme="dark"] :where(
    input, select, textarea, .searchbar, .upload-box, .item-row,
    .answer-options span, .chapter-tabs button, .readonly-note
) {
    color: var(--prefer-dark-text) !important;
    background-color: #111d18 !important;
    border-color: var(--prefer-dark-border) !important;
}

html[data-theme="dark"] :where(input, textarea)::placeholder { color: #80948a; }

html[data-theme="dark"] :where(
    p, small, .muted, .help, .hint, .field-label, .field > span,
    .top-title span, .panel-sub, .type-card p, .dashboard-card p,
    .manual-card p, .manual-card .meta, .upload-copy, .image-controls label
) { color: var(--prefer-dark-muted) !important; }

html[data-theme="dark"] :where(label, h1, h2, h3, h4, strong, dt, dd) { color: inherit; }

html[data-theme="dark"] :where(.nav a:hover, .nav a.is-active, .button--ghost, .btn, .chapter-tabs button.active) {
    color: #b9edce !important;
    background-color: #17382b !important;
    border-color: #3b5a4c !important;
}

html[data-theme="dark"] :where(.button, .button--primary, .btn-primary, button[type="submit"]) { color: #fff; }
html[data-theme="dark"] :where(.data-table td, table td) { border-color: var(--prefer-dark-border); }
html[data-theme="dark"] :where(.data-table tbody tr:nth-child(even), table tbody tr:nth-child(even)) { background: rgba(255, 255, 255, .025); }

html[data-theme="dark"] :where(.brand img, .loading-screen img) {
    padding: 4px 7px;
    border-radius: 8px;
    background: #fff;
}

html[data-theme="dark"] :where(.alert, .error) {
    color: #ffc2bd !important;
    background: #3b1e1e !important;
    border-color: #75403d !important;
}

/* Documentos e certificados precisam continuar fieis ao papel/PDF. */
html[data-theme="dark"] :where(.doc-page, .certificate-page, .certificate-sheet, .print-page, .a4-page, [data-print-page]) {
    color-scheme: light;
    color: #111 !important;
    background: #fff !important;
}

html[data-theme="dark"] :where(.doc-page, .certificate-page, .certificate-sheet, .print-page, .a4-page, [data-print-page]) :where(p, small, strong, h1, h2, h3, h4, td, th, span) { color: inherit; }

@media (max-width: 640px) {
    .global-theme-toggle { right: 12px; bottom: 12px; width: 42px; height: 42px; }
}

@media print { .global-theme-toggle { display: none !important; } }


/* Reforco de legibilidade para componentes compartilhados */
html[data-theme="dark"] a:not(.button):not(.btn){color:#9de0b8}
html[data-theme="dark"] :where(
    table th, .records-table th, .table-head, .photo-toolbar, .photo-gallery__item,
    .hrn-result, .detail-summary-grid>div, .result-card, .toolbar, .breadcrumb
){color:var(--prefer-dark-text)!important;border-color:var(--prefer-dark-border)!important;background-color:var(--prefer-dark-surface-soft)!important}
html[data-theme="dark"] :where(.status-badge,.tag,.pill,.badge){border-color:var(--prefer-dark-border)}
html[data-theme="dark"] :where(.flash,.notice,.panel-note){color:var(--prefer-dark-text)}

/* Controles nativos e estados desabilitados no tema noturno */
html[data-theme="dark"] :where(input, select, textarea, button):disabled,
html[data-theme="dark"] :where(input, textarea)[readonly] {
    opacity: 1;
    color: #aebfb6 !important;
    border-color: var(--prefer-dark-border) !important;
    background-color: #202d27 !important;
    -webkit-text-fill-color: #aebfb6;
}
html[data-theme="dark"] select option {
    color: var(--prefer-dark-text);
    background: #111d18;
}
html[data-theme="dark"] input[type="file"]::file-selector-button {
    color: #d9eee2;
    border: 1px solid #466055;
    background: #22362c;
}
html[data-theme="dark"] :where(legend, summary, output, table th) {
    color: var(--prefer-dark-text);
}

/*
 * Componentes que usam fundos claros ou gradientes fixos no tema original.
 * A cor de fundo precisa ser removida por completo: alterar apenas
 * background-color ainda deixa a camada branca do gradiente visivel.
 */
html[data-theme="dark"] :where(
    .card--tinted, .check-card__header, .photo-gallery__placeholder,
    .empty-state, .records-table-wrap, .detail-card, .filter-card,
    .stat-card, .success-card, .detail-summary-grid article
) {
    color: var(--prefer-dark-text) !important;
    border-color: var(--prefer-dark-border) !important;
    background: var(--prefer-dark-surface) !important;
}

html[data-theme="dark"] :where(
    .hazard-field, .photo-server-item, .answer-row,
    .check-card__body, .hazards-grid, .data-grid > div
) {
    color: var(--prefer-dark-text) !important;
    border-color: var(--prefer-dark-border) !important;
    background: var(--prefer-dark-surface-soft) !important;
}

html[data-theme="dark"] :where(
    .hazard-option span, .energy-option span, .choice span
) {
    color: #d9e8e0 !important;
    border-color: #496056 !important;
    background: #111d18 !important;
}

html[data-theme="dark"] :where(
    .hazard-option:hover span, .energy-option:hover span, .choice:hover span
) {
    color: #f4fbf7 !important;
    border-color: #769487 !important;
    background: #20352b !important;
}

html[data-theme="dark"] :where(
    .hazard-option input:checked + span,
    .energy-option input:checked + span,
    .choice--conforme input:checked + span
) {
    color: #d8f7e5 !important;
    border-color: #42a875 !important;
    background: #17442f !important;
}

html[data-theme="dark"] .choice--nao_conforme input:checked + span {
    color: #ffd2ce !important;
    border-color: #b96762 !important;
    background: #4b2525 !important;
}

html[data-theme="dark"] .choice--nao_aplicavel input:checked + span {
    color: #e1ebe6 !important;
    border-color: #6a7e74 !important;
    background: #33423b !important;
}

html[data-theme="dark"] :where(.hazard-option i, .energy-option i) {
    border-color: #73887e !important;
}

html[data-theme="dark"] :where(
    .hazard-field legend, .energy-field legend, .check-item__question p,
    .answer-row p, .card__title h3, .section-heading h2,
    .records-heading h2, .photo-server-item strong
) {
    color: var(--prefer-dark-text) !important;
}

html[data-theme="dark"] :where(
    .hazard-field > small, .energy-field > small, .check-card__header p,
    .check-card__header small, .answer-row small, .photo-server-item small,
    .records-table td > span, .records-table td > small,
    .detail-summary-grid article > small
) {
    color: #b8cbc1 !important;
}

html[data-theme="dark"] :where(.optional-tag, .section-number) {
    color: #c6f0d7 !important;
    border-color: #3f6654 !important;
    background: #1d3a2d !important;
}

html[data-theme="dark"] .eyebrow {
    color: #72d69d !important;
}

/* Cabecalhos verdes conservam sua paleta propria e texto claro. */
html[data-theme="dark"] :where(.hero, .records-hero, .detail-hero, .hrn-formula) :where(h1, h2, h3, p, small, strong) {
    color: var(--prefer-dark-text) !important;
}
html[data-theme="dark"] :where(.hero, .records-hero, .detail-hero) .eyebrow {
    color: #a7f0c7 !important;
}

html[data-theme="dark"] .records-table tbody tr:hover {
    background: #1d3027 !important;
}

html[data-theme="dark"] :where(
    .detail-summary-grid__risk--success,
    .detail-summary-grid__risk--warning,
    .detail-summary-grid__risk--danger
) {
    background: var(--prefer-dark-surface-soft) !important;
}
