/* ===== GenericApp Site Styles ===== */
/* Minimal, non-intrusive styles that work with MudBlazor defaults */

:root {
    --custom-card-header-bg: #f4f4f4;
    --custom-element-bg: #dfdfdf;
    --bs-border-radius: 0.375rem;
    --bs-border-color: #dee2e6;
}

/* ===== Font Size Scaling for Full HD Screens ===== */
@media screen and (max-width: 1920px) and (max-height: 1080px) {
    :root {
        font-size: 13px;
    }
}

/* ===== Title Styling ===== */
.titulo-inter {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 1.5rem;
    letter-spacing: -0.03em;
}

.titulo-gradient {
    background: linear-gradient(135deg, var(--mud-palette-primary) 0%, var(--mud-palette-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 700;
}

/* ===== Card Header Themed (MudBlazor: segue paleta clara/escura) ===== */
.card-header-themed {
    background-color: var(--mud-palette-background-gray);
    border-bottom: 1px solid var(--mud-palette-lines-default);
    color: var(--mud-palette-text-primary);
}

.mud-card-header.card-header-themed.py-0,
.mud-card-header.card-header-themed.py-1,
.mud-card-header.card-header-themed.py-2 {
    background-color: var(--mud-palette-gray-light);
    /* text-primary: evita forçar cor Secondary da empresa (ex. vermelho) no título */
    color: var(--mud-palette-text-primary);
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.mud-card-header.card-header-themed.py-0 .mud-icon-root,
.mud-card-header.card-header-themed.py-1 .mud-icon-root,
.mud-card-header.card-header-themed.py-2 .mud-icon-root {
    color: var(--mud-palette-primary);
}

/* ===== Expanded Row Themed Background ===== */
.custom-element-themed {
    background-color: var(--custom-element-bg, #dfdfdf) !important;
}

/* ===== Custom Shadow for Cards/Tables ===== */
.custom-shadow {
    box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.15), -2px -2px 6px rgba(0, 0, 0, 0.1), 4px 4px 6px rgba(var(--mud-palette-primary-rgb), 0.4), 2px 2px 6px rgba(var(--mud-palette-primary-rgb), 0.25), 0 0 20px rgba(0, 0, 0, 0.08) !important;
    border-radius: 4px;
}

/* ===== Tab Slider uses Secondary Color (user-customizable) ===== */
.mud-tab-slider {
    position: absolute;
    background: var(--mud-palette-secondary);
}

/* ===== Left-aligned Tabs ===== */
.tabs-left-align .mud-tab {
    justify-content: flex-start !important;
    text-align: left !important;
}

    /* Active tab text uses secondary color */
    .tabs-left-align .mud-tab.mud-tab-active {
        color: var(--mud-palette-secondary) !important;
    }

/* Secondary color for interactive text (links, buttons) */
.text-secondary {
    color: var(--mud-palette-secondary) !important;
}


/* ===== Mobile Visibility ===== */
@media (max-width: 500px) {
    .hide-on-mobile {
        display: none !important;
    }

    .show-on-mobile {
        display: block !important;
    }
}

@media (min-width: 501px) {
    .hide-on-mobile {
        display: block !important;
    }

    .show-on-mobile {
        display: none !important;
    }
}

/* ===== MudBreadcrumbs Theme Styling ===== */
/* Auto-adapts to light/dark mode using MudBlazor CSS variables */
.mud-breadcrumbs-themed {
    padding: 0 !important;
}

    .mud-breadcrumbs-themed .mud-breadcrumb-item,
    .mud-breadcrumbs-themed .mud-breadcrumb-separator,
    .mud-breadcrumbs-themed a {
        color: var(--mud-palette-text-primary) !important;
        text-decoration: none;
    }

        .mud-breadcrumbs-themed a:hover {
            text-decoration: underline;
        }

    .mud-breadcrumbs-themed .mud-breadcrumb-separator {
        padding: 0px 4px;
    }

/* ===== Opt-in Border Classes ===== */
/* Use these when you specifically want themed borders */

.border-themed {
    border: 1px solid var(--mud-palette-secondary) !important;
    border-radius: 6px !important;
}

.border-primary {
    border: 1px solid var(--mud-palette-primary) !important;
}

.border-divider {
    border: 1px solid var(--mud-palette-lines-default) !important;
}

/* ===== Vertical Tabs Container (opt-in) ===== */
.vertical-tabs-container {
    display: flex;
}

    .vertical-tabs-container .mud-tabs-tabbar.mud-tabs-vertical .mud-tabs-tabbar-inner {
        flex-direction: column;
        border-radius: var(--mud-default-borderradius);
        border: 1px solid var(--mud-palette-secondary) !important;
    }

    .vertical-tabs-container .mud-tab {
        text-align: left;
        justify-content: flex-start;
        color: var(--mud-palette-secondary) !important;
        background-color: transparent !important;
    }

    .vertical-tabs-container .mud-tab-active {
        background-color: var(--mud-palette-secondary) !important;
        color: white !important;
    }

        .vertical-tabs-container .mud-tab-active .mud-icon-root {
            color: white !important;
        }

/* ===== Inner Tab Content (opt-in) ===== */
.inner-tab-content {
    padding: 24px;
    background-color: var(--mud-palette-surface);
    min-height: 400px;
    border: 1px solid var(--mud-palette-secondary);
    border-radius: 6px;
    margin-left: 56px;
    flex: 1;
    max-width: 1500px;
    min-width: 1500px;
}

/* ===== Info Row Styling ===== */
.info-row {
    display: flex;
    padding: 12px 0;
    border-bottom: 1px solid #e0e0e0;
}

    .info-row:last-child {
        border-bottom: none;
    }

    .info-row .info-label {
        flex: 0 0 200px;
        font-weight: 600;
        color: var(--mud-palette-text-secondary);
    }

    .info-row .info-value {
        flex: 1;
        color: var(--mud-palette-text-primary);
    }

.info-label {
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.info-value {
    color: var(--mud-palette-text-primary);
}

/* ===== Outer Tabs Container (opt-in) ===== */
.outer-tabs-container {
    border: 1px solid var(--mud-palette-secondary);
    border-radius: 6px;
    box-shadow: var(--mud-elevation-2);
    overflow: hidden;
}

/* ===== Highlight Border (static accent border) ===== */
.border-highlight {
    border: 1.5px solid var(--mud-palette-secondary) !important;
    border-radius: 12px !important;
}

.border-highlight-primary {
    border: 1.5px solid var(--mud-palette-primary) !important;
    border-radius: 12px !important;
}

/* ===== Interactive Card (hover border color shift + elevation) ===== */
.card-interactive {
    border: 1.5px solid transparent !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease !important;
}

    .card-interactive:hover {
        border-color: var(--mud-palette-primary) !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.12), 0 0 0 1px rgba(var(--mud-palette-primary-rgb), 0.15) !important;
        transform: translateY(-2px);
    }

.card-interactive-secondary {
    border: 1.5px solid transparent !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease !important;
}

    .card-interactive-secondary:hover {
        border-color: var(--mud-palette-secondary) !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.12), 0 0 0 1px rgba(var(--mud-palette-secondary-rgb), 0.15) !important;
        transform: translateY(-2px);
    }

/* ===== Text Color Classes ===== */
.text-primary-themed {
    color: var(--mud-palette-primary) !important;
}

.text-secondary-themed {
    color: var(--mud-palette-secondary) !important;
}

/* ===== Focus Removal ===== */
h1:focus-visible {
    outline: none !important;
}

.btn-check:focus + .btn,
.btn:focus {
    box-shadow: none !important;
}

/* ===== Validation Styling ===== */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

/* ===== Blazor Error UI ===== */
#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

/* ===== MudTable / DataGrid: células com texto e conteúdo ao centro ===== */
/* Colunas com Style="text-align: right;" (ex.: valores monetários) mantêm o alinhamento por especificidade inline. */
.mud-table-root .mud-table-cell {
    text-align: center;
    vertical-align: middle;
}

.mud-table-root .mud-table-sort-label {
    justify-content: center;
    width: 100%;
}

/* Corpo da grelha: cabeçalhos mantêm ícones de ordenação/filtros (flex); linhas centradas */
.mud-data-grid tbody .mud-table-cell {
    text-align: center;
    vertical-align: middle;
}

/* ===== Content Padding ===== */
.content {
    padding-top: 1.1rem;
}

/* ===== Help Screenshot Viewer ===== */
.screenshot-viewer { position: relative; display: inline-block; width: 100%; }
.screenshot-highlight {
    position: absolute; border: 2px solid; border-radius: 4px;
    background-color: rgba(0,0,0,0.05);
    transition: background-color 0.2s, box-shadow 0.2s;
}
.screenshot-highlight:hover {
    background-color: rgba(0,0,0,0.12); z-index: 10;
    box-shadow: 0 0 12px rgba(0,0,0,0.2);
}
.screenshot-highlight-primary { border-color: var(--mud-palette-primary); }
.screenshot-highlight-success { border-color: var(--mud-palette-success); }
.screenshot-highlight-warning { border-color: var(--mud-palette-warning); }
.screenshot-highlight-error   { border-color: var(--mud-palette-error); }
.screenshot-highlight-info    { border-color: var(--mud-palette-info); }
.screenshot-highlight-label {
    position: absolute; bottom: -24px; left: 0;
    background: var(--mud-palette-surface); color: var(--mud-palette-text-primary);
    padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; font-weight: 600;
    white-space: nowrap; border: 1px solid var(--mud-palette-lines-default);
}

/* ===== Mobile Visibility ===== */
@media (max-width: 767px) {
    .hide-on-mobile {
        display: none !important;
    }
}
