/*
 * ClosingBell design foundation.
 *
 * The cb-dark class is the permanent root of the new visual system. It is not
 * a runtime flag: scoping lets the legacy stylesheet coexist while pages are
 * migrated incrementally on the test branch.
 */
body.cb-dark {
    --cb-shell: #080909;
    --cb-background: #050505;
    --cb-surface: #101010;
    --cb-surface-raised: #191919;
    --cb-border: #3a2d12;
    --cb-border-strong: #5b4518;
    --cb-text: #f5f5f5;
    --cb-text-muted: #b8b8b8;
    --cb-accent: #ffd66b;
    --cb-accent-hover: #e6c15f;
    --cb-success: #33d69f;
    --cb-warning: #f2a93b;
    --cb-danger: #ef5f68;
    --cb-info: #65a7ff;
    --cb-action-query: #65a7ff;
    --cb-action-query-hover: #4f95eb;
    --cb-action-reset: #566176;
    --cb-action-reset-hover: #657189;
    --cb-action-icon-gap: 4px;
    --cb-space-1: 6px;
    --cb-space-2: 10px;
    --cb-space-3: 14px;
    --cb-space-4: 18px;
    --cb-space-5: 24px;
    --cb-panel-padding: 16px;
    --cb-panel-padding-compact: 12px;
    --cb-card-padding: 12px 14px;
    --cb-font-micro: .75rem;
    --cb-font-caption: .8125rem;
    --cb-font-control: .875rem;
    --cb-font-body: 1rem;
    --cb-font-subtitle: 1.125rem;
    --cb-font-card-title: 1.25rem;
    --cb-font-section-title: 1.5rem;
    --cb-font-page-title: 2rem;
    --cb-radius-sm: 8px;
    --cb-radius-md: 12px;
    --cb-radius-lg: 12px;
    --cb-control-height: 42px;
    --cb-focus-ring: 0 0 0 2px rgb(255 214 107 / 14%);
    --cb-shadow: 0 18px 50px rgb(0 0 0 / 35%);

    margin: 0;
    color: var(--cb-text);
    background: var(--cb-background);
    font-family: "Poppins", Helvetica, Arial, sans-serif;
    font-size: var(--cb-font-body);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

body.cb-dark button,
body.cb-dark input,
body.cb-dark select,
body.cb-dark textarea,
body.cb-dark .mud-typography,
body.cb-dark .mud-button-root,
body.cb-dark .mud-nav-link {
    font-family: "Poppins", Helvetica, Arial, sans-serif;
}

body.cb-dark ::selection {
    color: var(--cb-shell);
    background: var(--cb-accent);
}

body.cb-dark :focus-visible {
    outline: 1px solid var(--cb-accent);
    outline-offset: 2px;
}

body.cb-dark a {
    color: var(--cb-accent);
}

body.cb-dark .mud-layout {
    min-height: 100vh;
    background: var(--cb-background);
}

body.cb-dark .mud-main-content {
    background: var(--cb-background);
}

body.cb-dark .mud-appbar {
    color: var(--cb-text);
    background: rgb(8 9 9 / 94%);
    border-bottom: 1px solid var(--cb-border);
    box-shadow: none;
    backdrop-filter: blur(16px);
}

body.cb-dark .mud-drawer {
    color: var(--cb-text);
    background: var(--cb-shell);
    border-color: var(--cb-border);
}

body.cb-dark .mud-drawer-header {
    border-bottom: 1px solid var(--cb-border);
}

body.cb-dark .mud-nav-link {
    min-height: var(--cb-control-height);
    margin: 2px var(--cb-space-2);
    color: var(--cb-text-muted);
    border-radius: var(--cb-radius-sm);
}

body.cb-dark .mud-nav-link:hover,
body.cb-dark .mud-nav-link.active {
    color: var(--cb-text);
    background: var(--cb-surface-raised);
}

body.cb-dark .mud-nav-link.active {
    box-shadow: inset 3px 0 0 var(--cb-accent);
}

body.cb-dark .mud-nav-link.active .mud-nav-link-icon,
body.cb-dark .mud-nav-link:hover .mud-nav-link-icon {
    color: var(--cb-accent);
}

body.cb-dark .mud-paper,
body.cb-dark .mud-card,
body.cb-dark .mud-dialog,
body.cb-dark .mud-popover {
    color: var(--cb-text);
    background: var(--cb-surface);
    border-color: var(--cb-border);
}

body.cb-dark .mud-paper,
body.cb-dark .mud-card {
    border-radius: var(--cb-radius-md);
}

body.cb-dark .mud-elevation-1,
body.cb-dark .mud-elevation-2,
body.cb-dark .mud-elevation-4,
body.cb-dark .mud-elevation-8,
body.cb-dark .mud-elevation-16,
body.cb-dark .mud-elevation-24 {
    box-shadow: var(--cb-shadow);
}

body.cb-dark .mud-dialog {
    border: 1px solid var(--cb-border);
    border-radius: var(--cb-radius-lg);
}

body.cb-dark .cb-add-stock-account-dialog .mud-dialog-content {
    overflow: hidden;
}

body.cb-dark .mud-overlay-dark {
    background-color: rgb(0 0 0 / 72%);
}

body.cb-dark .mud-button-root:not(.mud-switch-base),
body.cb-dark .mud-icon-button:not(.mud-switch-base) {
    min-height: var(--cb-control-height);
    border-radius: var(--cb-radius-sm);
    font-weight: 600;
    text-transform: none;
}

body.cb-dark .mud-icon-button:not(.mud-switch-base) {
    min-width: var(--cb-control-height);
}

body.cb-dark .mud-button-filled-primary,
body.cb-dark .mud-button-filled-secondary {
    color: var(--cb-shell);
    background: var(--cb-accent);
}

body.cb-dark .mud-button-filled-primary:hover,
body.cb-dark .mud-button-filled-secondary:hover {
    background: var(--cb-accent-hover);
}

body.cb-dark .cb-action-query.mud-button-filled {
    color: var(--cb-shell);
    background: var(--cb-action-query);
}

body.cb-dark .cb-action-query.mud-button-filled:hover {
    background: var(--cb-action-query-hover);
}

body.cb-dark .cb-action-reset.mud-button-filled {
    color: var(--cb-text);
    background: var(--cb-action-reset);
}

body.cb-dark .cb-action-reset.mud-button-filled:hover {
    background: var(--cb-action-reset-hover);
}

body.cb-dark .cb-filter-panel {
    padding: var(--cb-panel-padding) !important;
    overflow: visible;
}

body.cb-dark .cb-filter-content {
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
}

body.cb-dark .cb-filter-fields,
body.cb-dark .cb-filter-actions {
    width: calc(100% + 8px);
    margin: -8px 0 0 -8px !important;
}

body.cb-dark .cb-filter-fields > .mud-grid-item,
body.cb-dark .cb-filter-actions > .mud-grid-item {
    padding: 8px 0 0 8px;
}

body.cb-dark .cb-filter-fields {
    align-items: flex-end;
}

body.cb-dark .cb-filter-actions {
    align-items: center;
    margin-top: 2px !important;
}

body.cb-dark .cb-filter-switch {
    display: flex;
    min-height: var(--cb-control-height);
    align-items: center;
}

body.cb-dark .cb-action-neutral.mud-button-outlined {
    color: var(--cb-text-muted);
    background: transparent;
    border-color: var(--cb-border-strong);
}

body.cb-dark .cb-action-neutral.mud-button-outlined:hover {
    color: var(--cb-text);
    background: var(--cb-surface-raised);
}

body.cb-dark .cb-action-tertiary.mud-button-text {
    color: var(--cb-text-muted);
}

body.cb-dark .cb-action-tertiary.mud-button-text:hover {
    color: var(--cb-accent);
    background: rgb(255 214 107 / 8%);
}

body.cb-dark .cb-action-icon-neutral.mud-icon-button {
    color: var(--cb-text-muted);
    background: rgb(255 255 255 / 2%);
    border: 1px solid var(--cb-border-strong);
}

body.cb-dark .cb-action-icon-neutral.mud-icon-button:hover {
    color: var(--cb-accent);
    background: rgb(255 214 107 / 8%);
    border-color: var(--cb-border);
}

body.cb-dark .cb-action-icon-edit.mud-icon-button {
    color: var(--cb-info);
    background: rgb(101 167 255 / 8%);
    border: 1px solid rgb(101 167 255 / 30%);
}

body.cb-dark .cb-action-icon-edit.mud-icon-button:hover {
    color: #8fc0ff;
    background: rgb(101 167 255 / 15%);
    border-color: rgb(101 167 255 / 48%);
}

body.cb-dark .cb-action-icon-report.mud-icon-button {
    color: var(--cb-accent);
    background: rgb(255 214 107 / 8%);
    border: 1px solid rgb(255 214 107 / 20%);
}

body.cb-dark .cb-action-icon-report.mud-icon-button:hover {
    color: #ffe39a;
    background: rgb(255 214 107 / 15%);
    border-color: rgb(255 214 107 / 38%);
}

body.cb-dark .mud-icon-button.mud-error-text {
    background: rgb(239 95 104 / 7%);
    border: 1px solid rgb(239 95 104 / 30%);
}

body.cb-dark .mud-icon-button.mud-error-text:hover {
    background: rgb(239 95 104 / 14%);
    border-color: rgb(239 95 104 / 48%);
}

body.cb-dark .mud-icon-button.mud-info-text {
    background: rgb(101 167 255 / 7%);
    border: 1px solid rgb(101 167 255 / 28%);
}

body.cb-dark .mud-icon-button.mud-success-text {
    background: rgb(51 214 159 / 7%);
    border: 1px solid rgb(51 214 159 / 28%);
}

body.cb-dark .mud-icon-button.mud-warning-text {
    background: rgb(242 169 59 / 7%);
    border: 1px solid rgb(242 169 59 / 28%);
}

body.cb-dark .cb-command-icon-button.mud-icon-button,
body.cb-dark .cb-command-file-action.mud-icon-button,
body.cb-dark .cb-command-log-action.mud-icon-button {
    background: rgb(255 255 255 / 2%);
    border: 1px solid var(--cb-border-strong);
}

body.cb-dark .mud-table-cell[data-label="Acciones"] {
    white-space: nowrap;
    font-size: 0;
}

body.cb-dark .mud-table-cell[data-label="Acciones"]::before {
    font-size: var(--cb-font-control);
}

body.cb-dark .mud-table-cell[data-label="Acciones"] > .mud-tooltip-root,
body.cb-dark .mud-table-cell[data-label="Acciones"] > .mud-icon-button {
    display: inline-flex;
    margin: 0;
    vertical-align: middle;
}

body.cb-dark .mud-table-cell[data-label="Acciones"] > :is(.mud-tooltip-root, .mud-icon-button) + :is(.mud-tooltip-root, .mud-icon-button) {
    margin-left: var(--cb-action-icon-gap);
}

body.cb-dark .mud-table-cell[data-label="Acciones"] .mud-tooltip-root .mud-icon-button,
body.cb-dark .mud-table-cell[data-label="Acciones"] .cb-command-queue-actions .mud-icon-button {
    margin: 0;
}

body.cb-dark .mud-table-cell[data-label="Acciones"] .cb-command-queue-actions {
    gap: var(--cb-action-icon-gap);
}

body.cb-dark .cb-list-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--cb-action-icon-gap);
    min-width: max-content;
}

body.cb-dark .cb-list-actions .mud-tooltip-root {
    display: inline-flex;
}

body.cb-dark .cb-list-actions .mud-icon-button {
    margin: 0;
}

body.cb-dark .mud-button-outlined {
    border-color: var(--cb-border-strong);
}

body.cb-dark .mud-button-root:focus-visible,
body.cb-dark .mud-icon-button:focus-visible {
    box-shadow: var(--cb-focus-ring);
}

@media (max-width: 600px) {
    body.cb-dark .cb-filter-panel {
        padding: var(--cb-space-3) !important;
    }

    body.cb-dark .cb-filter-actions > .mud-grid-item {
        flex: 1 1 100%;
        max-width: 100%;
    }

    body.cb-dark .cb-filter-actions .mud-button-root {
        width: 100%;
    }
}

body.cb-dark .mud-input-control {
    color: var(--cb-text);
}

body.cb-dark .mud-input-control:focus-within {
    box-shadow: none;
}

body.cb-dark .mud-input-outlined-border {
    border-color: var(--cb-border-strong);
}

body.cb-dark .mud-input-control:hover .mud-input-outlined-border {
    border-color: var(--cb-border-strong);
}

body.cb-dark .mud-input.mud-input-focused .mud-input-outlined-border,
body.cb-dark .mud-input.mud-input-outlined:focus-within .mud-input-outlined-border {
    border-width: 1px;
    border-color: var(--cb-border-strong);
}

body.cb-dark .mud-input-label,
body.cb-dark .mud-input-helper-text,
body.cb-dark .mud-select-input,
body.cb-dark .mud-input > input,
body.cb-dark .mud-input > textarea {
    color: var(--cb-text-muted);
}

body.cb-dark .mud-input.mud-input-adorned-start .mud-input-adornment,
body.cb-dark .mud-input.mud-input-adorned-end .mud-input-adornment {
    color: var(--cb-text-muted);
}

body.cb-dark .mud-table {
    color: var(--cb-text);
    background: var(--cb-surface);
    border-color: var(--cb-border);
}

body.cb-dark .mud-table-head {
    background: var(--cb-surface-raised);
}

body.cb-dark .mud-table-cell {
    border-color: var(--cb-border);
}

body.cb-dark .mud-table-row:hover {
    background: rgb(255 214 107 / 6%);
}

body.cb-dark .mud-tabs-toolbar {
    background: transparent;
    border-bottom: 1px solid var(--cb-border);
}

body.cb-dark .mud-tab {
    color: var(--cb-text-muted);
    text-transform: none;
}

body.cb-dark .mud-tab.mud-tab-active {
    color: var(--cb-accent);
}

body.cb-dark .mud-tabs-slider {
    background: var(--cb-accent);
}

body.cb-dark .mud-divider {
    border-color: var(--cb-border);
}

body.cb-dark .mud-alert {
    color: var(--cb-text);
    border-radius: var(--cb-radius-md);
}

body.cb-dark iframe {
    max-width: 100%;
    color-scheme: dark;
    border: 1px solid var(--cb-border);
    border-radius: var(--cb-radius-md);
    background: var(--cb-surface);
}

body.cb-dark #blazor-error-ui {
    color: var(--cb-text);
    background: var(--cb-danger);
    box-shadow: var(--cb-shadow);
}

body.cb-dark .lds-roller div::after {
    background: var(--cb-accent);
}

@media (max-width: 720px) {
    body.cb-dark {
        --cb-space-4: 16px;
        --cb-space-5: 18px;
        --cb-radius-md: 10px;
        --cb-radius-lg: 12px;
    }

    body.cb-dark .mud-main-content {
        padding-inline: 0;
    }

    body.cb-dark .mud-dialog {
        margin: var(--cb-space-2);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.cb-dark *,
    body.cb-dark *::before,
    body.cb-dark *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
