/* Ajustes visuais do painel do Nexxus. Carregado depois do CSS do Filament. */

.nx-marca {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    height: 100%;
}

.nx-marca-icone {
    height: 100%;
    width: auto;
}

/* Símbolo da marca: versão para fundo claro ou escuro */
.nx-marca-escuro,
.dark .nx-marca-claro {
    display: none;
}

.dark .nx-marca-escuro {
    display: block;
}

.nx-marca-nome {
    font-weight: 800;
    font-size: 1.2rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #8a6d33;
}

.dark .nx-marca-nome {
    color: #d4b56f;
}

/* Fundo com um brilho suave nas cores da marca */
.fi-body {
    background:
        radial-gradient(60rem 30rem at 100% -10%, rgb(184 150 79 / .09), transparent 60%),
        radial-gradient(40rem 25rem at -10% 110%, rgb(15 42 79 / .05), transparent 60%),
        var(--gray-50);
}

.dark .fi-body {
    background:
        radial-gradient(60rem 30rem at 100% -10%, rgb(184 150 79 / .12), transparent 60%),
        radial-gradient(40rem 25rem at -10% 110%, rgb(37 72 120 / .14), transparent 60%),
        var(--gray-950);
}

/* Barra lateral */
.fi-sidebar {
    border-inline-end: 1px solid rgb(15 23 42 / .06);
}

.dark .fi-sidebar {
    border-inline-end-color: rgb(255 255 255 / .06);
}

.fi-sidebar-item-btn {
    border-radius: .75rem;
    transition: background-color .15s ease, transform .15s ease;
}

.fi-sidebar-item-btn:hover {
    transform: translateX(2px);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background: linear-gradient(90deg, rgb(184 150 79 / .14), rgb(15 42 79 / .08));
    box-shadow: inset 3px 0 0 var(--primary-600);
}

/* Barra superior translúcida */
.fi-topbar > nav,
.fi-topbar {
    backdrop-filter: saturate(1.4) blur(10px);
}

/* Cartões, seções e tabelas com cantos mais suaves */
.fi-section,
.fi-ta-ctn,
.fi-wi-stats-overview-stat {
    border-radius: 1rem;
    box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 8px 24px -12px rgb(15 23 42 / .12);
}

.fi-wi-stats-overview-stat {
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.fi-wi-stats-overview-stat::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(90deg, #b8964f, #d9bd7a);
    opacity: .85;
}

.fi-wi-stats-overview-stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgb(15 23 42 / .05), 0 16px 32px -14px rgb(184 150 79 / .35);
}

.fi-header-heading {
    letter-spacing: -.02em;
}

/* Botões */
.fi-btn {
    border-radius: .65rem;
}

/* Tela de login e demais telas simples */
.fi-simple-layout {
    background:
        radial-gradient(50rem 30rem at 0% 0%, rgb(184 150 79 / .22), transparent 60%),
        radial-gradient(45rem 30rem at 100% 100%, rgb(15 42 79 / .2), transparent 60%),
        var(--gray-50);
}

.dark .fi-simple-layout {
    background:
        radial-gradient(50rem 30rem at 0% 0%, rgb(184 150 79 / .3), transparent 60%),
        radial-gradient(45rem 30rem at 100% 100%, rgb(15 42 79 / .2), transparent 60%),
        var(--gray-950);
}

.fi-simple-main {
    border-radius: 1.25rem;
    box-shadow: 0 30px 60px -30px rgb(15 42 79 / .45);
}

@media (prefers-reduced-motion: reduce) {
    .fi-sidebar-item-btn,
    .fi-wi-stats-overview-stat {
        transition: none;
    }

    .fi-sidebar-item-btn:hover,
    .fi-wi-stats-overview-stat:hover {
        transform: none;
    }
}

/* ---------------------------------------------------------------
   Agenda em calendário (App\Filament\Pages\Agenda)
   Cores por tipo: compromisso (índigo), audiência (violeta),
   tarefa (azul-céu) e prazo (âmbar).
   --------------------------------------------------------------- */

.nx-agenda {
    --nx-ag-borda: rgb(15 23 42 / .08);
    --nx-ag-fundo: #fff;
    --nx-ag-suave: var(--gray-50);
    --nx-ag-texto-suave: var(--gray-500);
    --nx-ag-compromisso: #4f46e5;
    --nx-ag-audiencia: #7c3aed;
    --nx-ag-tarefa: #0284c7;
    --nx-ag-prazo: #d97706;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.dark .nx-agenda {
    --nx-ag-borda: rgb(255 255 255 / .08);
    --nx-ag-fundo: var(--gray-900);
    --nx-ag-suave: rgb(255 255 255 / .03);
    --nx-ag-texto-suave: var(--gray-400);
    --nx-ag-compromisso: #818cf8;
    --nx-ag-audiencia: #a78bfa;
    --nx-ag-tarefa: #38bdf8;
    --nx-ag-prazo: #fbbf24;
}

.nx-ag-barra {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.nx-ag-nav,
.nx-ag-controles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.nx-ag-titulo {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.01em;
    margin-inline-start: .25rem;
}

.nx-ag-check {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .875rem;
    cursor: pointer;
}

.nx-ag-resp {
    min-width: 12rem;
}

.nx-ag-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    font-size: .75rem;
    color: var(--nx-ag-texto-suave);
}

.nx-ag-leg {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.nx-ag-leg::before {
    content: "";
    width: .6rem;
    height: .6rem;
    border-radius: 999px;
    background: var(--nx-ag-cor);
}

.nx-ag-compromisso { --nx-ag-cor: var(--nx-ag-compromisso); }
.nx-ag-audiencia { --nx-ag-cor: var(--nx-ag-audiencia); }
.nx-ag-tarefa { --nx-ag-cor: var(--nx-ag-tarefa); }
.nx-ag-prazo { --nx-ag-cor: var(--nx-ag-prazo); }

/* Item (compromisso, audiência, tarefa ou prazo) */
.nx-ag-item {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    width: 100%;
    min-width: 0;
    padding: .4rem .55rem;
    border-radius: .55rem;
    border-inline-start: 3px solid var(--nx-ag-cor);
    background: color-mix(in srgb, var(--nx-ag-cor) 10%, transparent);
    text-align: start;
    font-size: .8125rem;
    line-height: 1.3;
    cursor: pointer;
    transition: background-color .15s ease;
}

.nx-ag-item:hover,
.nx-ag-item:focus-visible {
    background: color-mix(in srgb, var(--nx-ag-cor) 18%, transparent);
    outline: none;
}

.nx-ag-quando {
    flex-shrink: 0;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--nx-ag-cor);
}

.nx-ag-corpo {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.nx-ag-rotulo {
    font-size: .6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--nx-ag-cor);
}

.nx-ag-nome {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.nx-ag-detalhe {
    color: var(--nx-ag-texto-suave);
    font-size: .75rem;
    overflow-wrap: anywhere;
}

.nx-ag-situacao {
    flex-shrink: 0;
    font-size: .6875rem;
    font-weight: 600;
    padding: .1rem .45rem;
    border-radius: 999px;
    background: var(--nx-ag-fundo);
    color: var(--nx-ag-texto-suave);
}

.nx-ag-alerta .nx-ag-situacao {
    background: #fef3c7;
    color: #92400e;
}

.nx-ag-encerrado {
    opacity: .6;
}

.nx-ag-cancelado .nx-ag-nome {
    text-decoration: line-through;
}

.nx-ag-compacto {
    padding: .15rem .35rem;
    font-size: .75rem;
    gap: .3rem;
}

.nx-ag-compacto .nx-ag-nome {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nx-ag-lista {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

/* Visão Dia: uma linha por hora */
.nx-ag-dia,
.nx-ag-semana,
.nx-ag-mes {
    background: var(--nx-ag-fundo);
    border: 1px solid var(--nx-ag-borda);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 8px 24px -12px rgb(15 23 42 / .12);
}

.nx-ag-linha {
    display: grid;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    gap: .5rem;
    padding: .35rem .75rem;
    min-height: 3rem;
    border-top: 1px solid var(--nx-ag-borda);
}

.nx-ag-linha:first-child {
    border-top: 0;
}

.nx-ag-linha-diatodo {
    background: var(--nx-ag-suave);
}

.nx-ag-slot {
    cursor: pointer;
}

.nx-ag-slot:hover {
    background: var(--nx-ag-suave);
}

.nx-ag-rot-hora {
    padding-top: .35rem;
    font-size: .75rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--nx-ag-texto-suave);
}

/* Visão Semana: no celular, um dia embaixo do outro; no computador, 7 colunas */
.nx-ag-semana {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.nx-ag-coluna {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-top: 1px solid var(--nx-ag-borda);
}

.nx-ag-coluna:first-child {
    border-top: 0;
}

.nx-ag-cab-dia {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .25rem;
    padding: .45rem .6rem;
    background: var(--nx-ag-suave);
}

.nx-ag-abrir-dia {
    display: inline-flex;
    align-items: baseline;
    gap: .4rem;
    font-size: .8125rem;
    color: var(--nx-ag-texto-suave);
}

.nx-ag-abrir-dia strong {
    color: inherit;
    font-weight: 700;
}

.nx-ag-hoje .nx-ag-abrir-dia,
.nx-ag-hoje .nx-ag-num {
    color: var(--primary-600);
}

.nx-ag-novo {
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    font-weight: 700;
    color: var(--nx-ag-texto-suave);
}

.nx-ag-novo:hover {
    background: var(--nx-ag-borda);
    color: var(--primary-600);
}

.nx-ag-area {
    flex: 1;
    padding: .5rem .6rem;
    min-height: 3rem;
    cursor: pointer;
}

.nx-ag-vazio {
    font-size: .75rem;
    color: var(--nx-ag-texto-suave);
}

@media (min-width: 1024px) {
    .nx-ag-semana {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .nx-ag-coluna {
        border-top: 0;
        border-inline-start: 1px solid var(--nx-ag-borda);
        min-height: 22rem;
    }

    .nx-ag-coluna:first-child {
        border-inline-start: 0;
    }

    .nx-ag-cab-dia {
        flex-direction: column;
        align-items: stretch;
    }

    .nx-ag-abrir-dia {
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .nx-ag-abrir-dia strong {
        font-size: 1.05rem;
    }

    .nx-ag-novo {
        align-self: center;
    }

    .nx-ag-coluna .nx-ag-item {
        flex-direction: column;
        gap: .1rem;
    }
}

/* Visão Mês: grade 7×N; no celular, só o número do dia e a contagem */
.nx-ag-mes {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.nx-ag-mes-cab {
    padding: .4rem;
    text-align: center;
    font-size: .6875rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--nx-ag-texto-suave);
    background: var(--nx-ag-suave);
}

.nx-ag-celula {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
    min-height: 3.25rem;
    padding: .3rem;
    border-top: 1px solid var(--nx-ag-borda);
    border-inline-start: 1px solid var(--nx-ag-borda);
    cursor: pointer;
}

.nx-ag-celula:nth-child(7n + 1) {
    border-inline-start: 0;
}

.nx-ag-celula:hover {
    background: var(--nx-ag-suave);
}

.nx-ag-fora {
    opacity: .45;
}

.nx-ag-num {
    align-self: flex-start;
    min-width: 1.6rem;
    padding: .1rem .3rem;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 600;
}

.nx-ag-hoje .nx-ag-num {
    background: var(--primary-600);
    color: #fff;
}

.nx-ag-contagem {
    align-self: flex-start;
    padding: 0 .4rem;
    border-radius: 999px;
    font-size: .6875rem;
    font-weight: 700;
    background: color-mix(in srgb, var(--primary-600) 15%, transparent);
    color: var(--primary-600);
}

.nx-ag-celula .nx-ag-lista {
    display: none;
}

.nx-ag-mais-itens {
    font-size: .6875rem;
    color: var(--nx-ag-texto-suave);
    text-align: start;
}

@media (min-width: 768px) {
    .nx-ag-celula {
        min-height: 7rem;
    }

    .nx-ag-celula .nx-ag-lista {
        display: flex;
    }

    .nx-ag-contagem {
        display: none;
    }
}

@media (max-width: 639px) {
    .nx-ag-resp {
        min-width: 0;
        flex: 1 1 100%;
    }

    .nx-ag-titulo {
        flex-basis: 100%;
        margin-inline-start: 0;
    }
}
