/* Panel-only palette. Keep original media and chart series unchanged. */
html[data-panel-theme="dark"] body .topbar .avatar {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    min-width: 32px;
    overflow: hidden;
    border-radius: 50%;
}

html[data-panel-theme="dark"] body .topbar .avatar img {
    width: 32px !important;
    height: 32px !important;
    max-width: 100%;
    object-fit: cover;
    display: block;
}

html[data-panel-theme="dark"] body .avatar-name {
    max-width: 180px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

html[data-panel-theme="dark"] body .content > *,
html[data-panel-theme="dark"] body .card {
    min-width: 0;
    overflow-wrap: anywhere;
}

html[data-panel-theme="dark"] body .card-meta {
    align-self: start;
    justify-self: start;
    height: auto;
}

html[data-panel-theme="dark"] {
    color-scheme: dark;
    --panel-surface: #121e32;
    --panel-raised: #1c2942;
    --panel-hover: #243551;
    --panel-text: #f7f9ff;
    --panel-muted: #b6c0d4;
    --panel-border: #748aac;
    --panel-primary: #175cd3;
    --panel-success-bg: #16372d;
    --panel-success-text: #a7f3c9;
    --panel-error-bg: #43232d;
    --panel-error-text: #ffbac3;
    --panel-warning-bg: #3c3019;
    --panel-warning-text: #ffe0a3;
    --border: var(--panel-border);
    --text-muted: var(--panel-muted) !important;
}

html[data-panel-theme="dark"] body :is(
    .sidebar-footer, .admin-form, .avatar-pane, .form-pane, .list-card,
    .table-card, .route-wrap, .method-card, .detail-row, .tiny-list,
    .helper-box, .info-box, .message-box, .read-only, .generated-key,
    .media-panel, .attachment-item, .workflow-step, .subject-section,
    .module-section, .lesson-item, .simulado-item, .period-card,
    .sim-feedback-modal, .sim-feedback-user, .comentario, .special-result,
    .alternativa, .choice, .enunciado, .image-preview-wrap, .dashboard-load,
    .avatar-circle, .flash
) {
    background: var(--panel-surface) !important;
    border-color: var(--panel-border) !important;
    color: var(--panel-text) !important;
}

html[data-panel-theme="dark"] body :is(
    .menu-btn, .visit-site-btn, .avatar-btn, .view-link, .secret-toggle,
    .sim-feedback-close, .btn, .btn-soft, .btn-soft-inline,
    .btn-link, .link-btn, .action-btn, .icon-btn, .run-btn.secondary,
    .page-link, .card-meta, .chip, .chip-table, .badge, .pill, .flag,
    .type-pill, .status-pill, .stats-chip, .status-badge, .badge-auth,
    .badge-get, .badge-post, .subject-head, .choice-letter,
    .alternativa .letra, .workflow-step span, .thumb-placeholder,
    .lesson-thumb-placeholder, .course-thumbnail, code, pre
) {
    background: var(--panel-raised) !important;
    border-color: var(--panel-border) !important;
    color: var(--panel-text) !important;
}

html[data-panel-theme="dark"] body :is(.card-meta, .sidebar-footer, .helper-box, .info-box, .message-box, .read-only, .generated-key, .comentario, .subject-head) :is(p, span, small, code) {
    color: var(--panel-muted) !important;
}

html[data-panel-theme="dark"] body :is(
    .menu-btn, .visit-site-btn, .avatar-btn, .view-link, .secret-toggle,
    .sim-feedback-close, .btn, .btn-soft-inline, .btn-link, .link-btn,
    .action-btn, .icon-btn, .page-link, .nav-link, .nav-sublink
):hover {
    background: var(--panel-hover) !important;
    border-color: #8dc5ff !important;
    color: var(--panel-text) !important;
}

html[data-panel-theme="dark"] body :is(.nav-link, .nav-sublink, .page-link)[aria-current="page"],
html[data-panel-theme="dark"] body :is(.nav-link.is-active, .nav-sublink.is-active, .workflow-step.is-current) {
    background: #173765 !important;
    border-color: #8dc5ff !important;
    color: var(--panel-text) !important;
}

html[data-panel-theme="dark"] body :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]),
    textarea, select
) {
    background: #0d1729 !important;
    border-color: var(--panel-border) !important;
    color: var(--panel-text) !important;
    caret-color: var(--panel-text);
}

html[data-panel-theme="dark"] body :is(input, textarea)::placeholder {
    color: var(--panel-muted) !important;
    opacity: 1;
}

html[data-panel-theme="dark"] body :is(option, optgroup) {
    background: #0d1729 !important;
    color: var(--panel-text) !important;
}

html[data-panel-theme="dark"] body input[type="file"]::file-selector-button {
    background: var(--panel-raised);
    color: var(--panel-text);
    border: 1px solid var(--panel-border);
    border-radius: 6px;
    padding: 8px 12px;
    margin-right: 10px;
}

html[data-panel-theme="dark"] body :is(input[type="checkbox"], input[type="radio"], input[type="range"]) {
    accent-color: #75baff;
    color-scheme: dark;
}

html[data-panel-theme="dark"] body :is(
    .primary, .btn-primary, .btn.primary, .btn-link.primary, .run-btn:not(.secondary),
    .avatar, .brand-badge, .notif-btn.has-unread,
    .hero-btn, .special-button, .feedback-submit, .sim-feedback-submit,
    button[type="submit"], input[type="submit"]
) {
    background: var(--panel-primary) !important;
    border-color: #75baff !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html[data-panel-theme="dark"] body :is(.hero-btn, .special-button, .btn-primary, button[type="submit"]) :is(span, strong, small) {
    color: #ffffff !important;
}

html[data-panel-theme="dark"] body :is(
    .alert-ok, .alert.success, .success, .correct, .ok, .flag.ok,
    .badge-published, .chip-status-active, .status-badge.is-active,
    .status.concluido, .status-pill.concluido, .status-pill.fechado,
    .alternativa-correta, .workflow-step.is-complete,
    .feedback-message.success, .sim-feedback-message.success
) {
    background: var(--panel-success-bg) !important;
    border-color: #60b98c !important;
    color: var(--panel-success-text) !important;
}

html[data-panel-theme="dark"] body :is(
    .alert, .alert-error, .alert.error, .errors, .error-summary,
    .incorrect, .bad, .flag.bad, .btn-danger, .btn-danger-inline,
    .status-badge.is-revoked, .alternativa-selecionada-incorreta,
    .feedback-message.error, .sim-feedback-message.error
) {
    background: var(--panel-error-bg) !important;
    border-color: #dc899c !important;
    color: var(--panel-error-text) !important;
}

/* Explicit semantic states must win over generic alerts and buttons. */
html[data-panel-theme="dark"] body :is(.alert.success, .alert-ok) {
    background: var(--panel-success-bg) !important;
    color: var(--panel-success-text) !important;
    border-color: #60b98c !important;
}
html[data-panel-theme="dark"] body :is(.warning, .alert.warn, .status.aberto, .status-pill.aberto, .status-pill.pendente, .status-pill.processando) {
    background: var(--panel-warning-bg) !important;
    border-color: #c6a25e !important;
    color: var(--panel-warning-text) !important;
}
html[data-panel-theme="dark"] body :is(.badge-archived, .chip-status-inactive) {
    background: var(--panel-raised) !important;
    color: var(--panel-muted) !important;
}
html[data-panel-theme="dark"] body .notif-badge {
    background: #b42338 !important;
    color: #ffffff !important;
}
html[data-panel-theme="dark"] body .feedback-fab {
    background: #116c42 !important;
    color: #ffffff !important;
}

html[data-panel-theme="dark"] body :is(.alert, .alert-ok, .warning, .errors, .error-summary, .alternativa-correta, .alternativa-selecionada-incorreta, .workflow-step.is-complete) :is(p, span, strong, small, li) {
    color: inherit !important;
}

html[data-panel-theme="dark"] body :is(table, thead, tbody, th, td) {
    border-color: var(--panel-border) !important;
    color: var(--panel-text) !important;
}
html[data-panel-theme="dark"] body :is(th, .table-head) {
    background: var(--panel-raised) !important;
}
html[data-panel-theme="dark"] body tbody tr:hover {
    background: var(--panel-hover) !important;
}
html[data-panel-theme="dark"] body :is(.table-wrap, .route-wrap) {
    max-width: 100%;
    overflow-x: auto;
}

/* White doughnut centres had white text; do not overwrite the coloured ring. */
html[data-panel-theme="dark"] body :is(.pie, .pie-chart)::after {
    background: var(--panel-surface) !important;
}

html[data-panel-theme="dark"] body :is(.leaflet-popup-content-wrapper, .leaflet-popup-tip, .leaflet-control-attribution, .leaflet-bar a) {
    background: var(--panel-raised) !important;
    color: var(--panel-text) !important;
}

/* Transparent educational diagrams need an opaque canvas, not inversion. */
html[data-panel-theme="dark"] body :is(img.question-image, .question-image img, .historical-material img, .review-question img, img.image-preview) {
    background: #ffffff !important;
}

html[data-panel-theme="dark"] body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #8dc5ff !important;
    outline-offset: 3px !important;
    box-shadow: none !important;
}
html[data-panel-theme="dark"] body input:-webkit-autofill {
    -webkit-text-fill-color: var(--panel-text) !important;
    box-shadow: 0 0 0 1000px #0d1729 inset !important;
    caret-color: var(--panel-text);
}
html[data-panel-theme="dark"] body :is(button, input, select, textarea):disabled,
html[data-panel-theme="dark"] body [aria-disabled="true"] {
    background: #172139 !important;
    color: #b6c0d4 !important;
    border-color: var(--panel-border) !important;
    opacity: 1 !important;
    cursor: not-allowed;
}

@media (max-width: 600px) {
    html[data-panel-theme="dark"] body :is(.topbar-right, .actions, .row-actions) { flex-wrap: wrap; }
    html[data-panel-theme="dark"] body .topbar { gap: 8px; flex-wrap: wrap; }
    html[data-panel-theme="dark"] body .topbar-left { flex: 1 1 100%; }
    html[data-panel-theme="dark"] body .topbar-right { width: 100%; justify-content: flex-end; }
    html[data-panel-theme="dark"] body :is(.card-meta, .badge, .chip, .status-pill) { white-space: normal; overflow-wrap: anywhere; }
}
