/* =====================================================================
   CREPHIMat — camada de design sobre o Bootstrap 5.3

   Direção visual: "jornal técnico editorial sobre pergaminho"
   (baseada em DESIGN.md / Monad).
     • Títulos em serifa, peso 400, nunca negrito.
     • Todo o resto (corpo, menu, botões, tabelas) em monoespaçada.
     • Tela quente (#f6f3f1) em vez de branco; bordas finas de 1px.
     • Botões e etiquetas em pílula; cartões com cantos bem arredondados.
     • Sem sombras em cartões; elevação = borda + cor de superfície.
     • Um único azul saturado (#2b59d1) para a ação principal da tela.
       Coral, céu, menta e ouro só aparecem em lavagens decorativas.
   Tema escuro derivado do mesmo sistema (superfícies quentes, não azuladas).

   Organização:
     1. Tokens            5. Site público
     2. Base e a11y       6. Painel administrativo
     3. Superfícies       7. Bibliotecas externas
     4. Componentes ui-*  8. Modo escuro (ajustes)   9. Impressão

   Contrastes conferidos (WCAG AA): texto #242424 / #4e4d4d sobre pergaminho,
   branco sobre #2b59d1, links #2b59d1 (claro) e #92aaf2 (escuro).
   ===================================================================== */

/* ---------------------------------------------------------------- 1. Tokens */
:root {
    color-scheme: light;

    /* Paleta (nomes do DESIGN.md) */
    --mv-pergaminho: #f6f3f1;
    --mv-azul-lago: #2b59d1;
    --mv-pervinca: #cfdaf5;
    --mv-ceu: #a0b5eb;
    --mv-menta: #a7fccd;
    --mv-coral: #ff9473;
    --mv-ouro: #ecda98;
    --mv-quase-preto: #242424;
    --mv-tinta: #000;
    --mv-grafite: #4e4d4d;
    --mv-cinza: #6b6866;                 /* "Smoke" escurecido: o original (#797776) dá 3,9:1 */
    --mv-cinza-claro: #cecac8;           /* "Ash": linhas finas */

    /* Tipografia */
    --ui-serifa: 'Newsreader', 'Untitled Serif', ui-serif, Georgia, Cambria, 'Times New Roman', serif;
    --ui-mono: 'JetBrains Mono', 'ABC Diatype Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

    /* Marca (nomes antigos mantidos para não quebrar outros arquivos) */
    --crephimat-ink: var(--mv-tinta);
    --crephimat-accent: var(--mv-azul-lago);
    --crephimat-accent-texto: var(--mv-azul-lago);

    /* Bootstrap */
    --bs-primary: #2b59d1;
    --bs-primary-rgb: 43, 89, 209;
    --bs-secondary: #4e4d4d;
    --bs-secondary-rgb: 78, 77, 77;
    --bs-link-color: #2b59d1;
    --bs-link-color-rgb: 43, 89, 209;
    --bs-link-hover-color: #1d3f9e;
    --bs-link-hover-color-rgb: 29, 63, 158;
    --bs-body-font-family: var(--ui-mono);
    --bs-font-sans-serif: var(--ui-mono);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.6;
    --bs-body-bg: #f6f3f1;
    --bs-body-bg-rgb: 246, 243, 241;
    --bs-body-color: #242424;
    --bs-body-color-rgb: 36, 36, 36;
    --bs-emphasis-color: #242424;
    --bs-heading-color: #242424;
    --bs-secondary-color: #4e4d4d;
    --bs-secondary-bg: #efebe8;
    --bs-tertiary-bg: #efebe8;
    --bs-border-color: #cecac8;
    --bs-border-radius: 1rem;
    --bs-border-radius-sm: .75rem;
    --bs-border-radius-lg: 1.5rem;
    --bs-border-radius-xl: 2rem;
    --bs-border-radius-pill: 100px;

    /* Camada própria */
    --ui-superficie: #f6f3f1;            /* cartões: mesma cor da tela, separados por borda */
    --ui-superficie-2: #efebe8;
    --ui-borda: #cecac8;
    --ui-borda-forte: #8a8683;           /* campos de formulário: 3:1 contra a tela (WCAG 1.4.11) */
    --ui-sombra: none;
    --ui-sombra-hover: 0 0 10px rgba(0, 0, 0, .1);   /* único sombreamento: "ambiente" */
    --ui-foco: #2b59d1;
    --ui-foco-escuro: #a0b5eb;
    --ui-raio-card: 2.5rem;              /* 40px */
    --ui-raio-card-md: 1.75rem;          /* tabelas e painéis densos */
    --ui-raio-campo: 1rem;
    --ui-duracao: 180ms;
    --ui-easing: cubic-bezier(.4, 0, .2, 1);

    /* Escala tipográfica fluida (display 80, seção 48, subseção 32, cartão 24) */
    --ui-texto-hero: clamp(2.5rem, 1.5rem + 4.6vw, 5rem);
    --ui-texto-titulo: clamp(2rem, 1.4rem + 2.6vw, 3rem);
}

[data-bs-theme="dark"] {
    color-scheme: dark;

    --bs-primary: #92aaf2;
    --bs-primary-rgb: 146, 170, 242;
    --bs-secondary: #bdb8b4;
    --bs-secondary-rgb: 189, 184, 180;
    --bs-body-bg: #131211;
    --bs-body-bg-rgb: 19, 18, 17;
    --bs-body-color: #f1ede9;
    --bs-body-color-rgb: 241, 237, 233;
    --bs-emphasis-color: #fbf8f5;
    --bs-heading-color: #fbf8f5;
    --bs-secondary-color: #bdb8b4;
    --bs-secondary-bg: #1b1a19;
    --bs-tertiary-bg: #232120;
    --bs-border-color: #3b3937;
    --bs-link-color: #92aaf2;
    --bs-link-color-rgb: 146, 170, 242;
    --bs-link-hover-color: #bccaf7;
    --bs-link-hover-color-rgb: 188, 202, 247;
    --bs-dropdown-bg: #1b1a19;
    --bs-dropdown-link-color: #f1ede9;
    --bs-dropdown-link-hover-bg: #262423;
    --bs-dropdown-link-hover-color: #fff;
    --bs-dropdown-border-color: #3b3937;

    --mv-cinza: #a29d99;
    --crephimat-accent: #92aaf2;
    --crephimat-accent-texto: #92aaf2;
    --ui-superficie: #1b1a19;
    --ui-superficie-2: #232120;
    --ui-borda: #3b3937;
    --ui-borda-forte: #7d7976;
    --ui-sombra-hover: 0 0 14px rgba(0, 0, 0, .6);
    --ui-foco: #92aaf2;
}

/* ---------------------------------------------------------------- 2. Base e acessibilidade */
html { scroll-padding-top: 6rem; }   /* âncoras não ficam sob o menu fixo */
body {
    font-family: var(--ui-mono);
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: -.012em;
    background-color: var(--bs-body-bg);
    font-size-adjust: from-font;     /* fonte reserva com o mesmo tamanho visual: menos "pulo" ao carregar */
    text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--ui-serifa);
    font-weight: 400;                /* editorial: a serifa carrega o peso, nunca o negrito */
    letter-spacing: -.02em;
    line-height: 1.15;
    color: var(--bs-heading-color);
    text-wrap: balance;
}
h1, .h1 { font-size: var(--ui-texto-titulo); }
h2, .h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 3rem); }
h3, .h3 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.25rem; }
h6, .h6 { font-size: 1rem; font-family: var(--ui-mono); text-transform: uppercase; letter-spacing: .04em; }
strong, b, .fw-bold, .fw-semibold { font-weight: 500; }   /* só existem 400 e 500 na família */
small, .small { font-size: .875rem; }
.lead { font-size: 1.25rem; font-weight: 400; line-height: 1.5; color: var(--bs-secondary-color); }
::selection { background: color-mix(in srgb, var(--mv-azul-lago) 28%, transparent); }
a { text-underline-offset: .22em; text-decoration-thickness: 1px; }

/* Textos longos: medida de leitura confortável */
.ui-prosa { max-width: 68ch; }
.ui-prosa-larga { max-width: 75ch; }

/* Tamanho de fonte ajustável pelo usuário (e-MAG) */
html[data-tamanho-fonte="pequeno"] { font-size: 14px; }
html[data-tamanho-fonte="grande"] { font-size: 18px; }
html[data-tamanho-fonte="extra-grande"] { font-size: 20px; }

/* Foco sempre visível para teclado; invisível para mouse */
:focus-visible {
    outline: 3px solid var(--ui-foco);
    outline-offset: 3px;
    border-radius: 6px;
}
.form-control:focus-visible, .form-select:focus-visible, .btn:focus-visible { outline-offset: 2px; }
.btn:focus-visible, .page-link:focus-visible { border-radius: 100px; }
.barra-acessibilidade :focus-visible,
.ui-rodape :focus-visible,
.ui-pular:focus-visible { outline-color: var(--ui-foco-escuro); }

/* Link "Pular para o conteúdo" */
.ui-pular {
    position: absolute;
    left: .75rem;
    top: -4rem;
    z-index: 2000;
    padding: .75rem 1.25rem;
    border-radius: 100px;
    background: var(--mv-quase-preto);
    color: #f6f3f1;
    font-size: .8125rem;
    text-transform: uppercase;
    text-decoration: none;
    transition: top var(--ui-duracao) var(--ui-easing);
}
.ui-pular:focus { top: .75rem; color: #f6f3f1; }

/* O alvo do "pular" não deve mostrar anel ao receber foco programático */
main:focus { outline: none; }

/* Alvos de toque confortáveis em telas sensíveis ao toque */
@media (pointer: coarse) {
    .btn-sm { --bs-btn-padding-y: .55rem; --bs-btn-padding-x: 1rem; }
    .ui-botao-icone { min-width: 2.75rem; min-height: 2.75rem; }
    .navbar .nav-link, .dropdown-item { padding-top: .65rem; padding-bottom: .65rem; }
}

/* Movimento reduzido: cada animação já fica dentro de `prefers-reduced-motion: no-preference`
   (ver movimento.css). Zerar duração globalmente deixaria animações MAIS bruscas. */

/* ----- Botões: pílula, mono maiúscula; só UM azul por tela ----- */
.btn {
    --bs-btn-border-radius: 100px;
    --bs-btn-padding-x: 1.5rem;
    --bs-btn-padding-y: .65rem;
    --bs-btn-font-size: .8125rem;
    --bs-btn-font-weight: 500;
    font-family: var(--ui-mono);
    text-transform: uppercase;
    letter-spacing: .02em;
    line-height: 1.2;
    transition: background-color var(--ui-duracao) var(--ui-easing), border-color var(--ui-duracao) var(--ui-easing), color var(--ui-duracao) var(--ui-easing), box-shadow var(--ui-duracao) var(--ui-easing);
}
.btn-lg { --bs-btn-padding-x: 2rem; --bs-btn-padding-y: 1rem; --bs-btn-font-size: .875rem; --bs-btn-border-radius: 100px; }
.btn-sm { --bs-btn-padding-x: 1rem; --bs-btn-padding-y: .4rem; --bs-btn-font-size: .75rem; --bs-btn-border-radius: 100px; }

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #2b59d1; --bs-btn-border-color: #2b59d1;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1d3f9e; --bs-btn-hover-border-color: #1d3f9e;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #173481; --bs-btn-active-border-color: #173481;
    --bs-btn-disabled-bg: var(--mv-pervinca); --bs-btn-disabled-border-color: var(--mv-pervinca); --bs-btn-disabled-color: #4e4d4d;
}
[data-bs-theme="dark"] .btn-primary {
    --bs-btn-hover-bg: #4b72e0; --bs-btn-hover-border-color: #4b72e0;
    --bs-btn-active-bg: #6a8aea; --bs-btn-active-border-color: #6a8aea;
}
/* Seta final dos botões primários de destaque */
.btn-seta::after { content: "▸"; display: inline-block; margin-left: .6em; transition: translate var(--ui-duracao) var(--ui-easing); }
.btn-seta:hover::after { translate: .2em 0; }
/* Alias do botão de destaque antigo: agora é o botão primário (azul) */
.btn-acento {
    --bs-btn-color: #fff; --bs-btn-bg: #2b59d1; --bs-btn-border-color: #2b59d1;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1d3f9e; --bs-btn-hover-border-color: #1d3f9e;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #173481; --bs-btn-active-border-color: #173481;
}

/* Preto (ação secundária) — no escuro vira "pergaminho" */
.btn-dark, .btn-secondary {
    --bs-btn-color: #f6f3f1; --bs-btn-bg: #242424; --bs-btn-border-color: #242424;
    --bs-btn-hover-color: #f6f3f1; --bs-btn-hover-bg: #000; --bs-btn-hover-border-color: #000;
    --bs-btn-active-color: #f6f3f1; --bs-btn-active-bg: #000; --bs-btn-active-border-color: #000;
}
[data-bs-theme="dark"] .btn-dark, [data-bs-theme="dark"] .btn-secondary {
    --bs-btn-color: #131211; --bs-btn-bg: #f1ede9; --bs-btn-border-color: #f1ede9;
    --bs-btn-hover-color: #131211; --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff;
    --bs-btn-active-color: #131211; --bs-btn-active-bg: #fff; --bs-btn-active-border-color: #fff;
}

/* Fantasma: contorno fino na cor do texto */
.btn-ghost, .btn-outline-secondary, .btn-outline-dark, .btn-outline-primary, .btn-outline-light {
    --bs-btn-color: var(--bs-body-color); --bs-btn-bg: transparent; --bs-btn-border-color: var(--bs-body-color);
    --bs-btn-hover-color: var(--bs-body-bg); --bs-btn-hover-bg: var(--bs-body-color); --bs-btn-hover-border-color: var(--bs-body-color);
    --bs-btn-active-color: var(--bs-body-bg); --bs-btn-active-bg: var(--bs-body-color); --bs-btn-active-border-color: var(--bs-body-color);
    --bs-btn-disabled-color: var(--mv-cinza); --bs-btn-disabled-border-color: var(--ui-borda);
}
.btn-ghost { border-width: 1px; }
.btn-ghost:hover { color: var(--bs-body-bg); }
/* Botões sobre superfícies sempre escuras (barra preta) */
.barra-acessibilidade .btn-outline-light {
    --bs-btn-color: #f6f3f1; --bs-btn-border-color: #f6f3f1;
    --bs-btn-hover-color: #000; --bs-btn-hover-bg: #f6f3f1; --bs-btn-hover-border-color: #f6f3f1;
    --bs-btn-active-color: #000; --bs-btn-active-bg: #f6f3f1; --bs-btn-active-border-color: #f6f3f1;
}

/* ----- Formulários ----- */
.form-control, .form-select, .input-group-text {
    border-radius: var(--ui-raio-campo);
    background-color: var(--ui-superficie);
    border: 1px solid var(--ui-borda-forte);
    color: var(--bs-body-color);
    font-family: var(--ui-mono);
    font-size: .9375rem;
    padding: .7rem 1rem;
}
.form-control::placeholder { color: var(--mv-cinza); opacity: 1; }
.form-control:focus, .form-select:focus {
    background-color: var(--ui-superficie);
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), .25);
}
.form-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); margin-bottom: .4rem; }
.form-text { color: var(--bs-secondary-color); font-size: .8125rem; }
.form-check-input { border-color: var(--ui-borda-forte); }
.form-check-input:checked { background-color: var(--mv-quase-preto); border-color: var(--mv-quase-preto); }
[data-bs-theme="dark"] .form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); }
textarea.form-control { border-radius: var(--ui-raio-campo); }

/* ----- Cartões, alertas, menus, selos ----- */
.card {
    --bs-card-border-radius: var(--ui-raio-card-md);
    --bs-card-inner-border-radius: calc(var(--ui-raio-card-md) - 1px);
    --bs-card-bg: transparent;
    --bs-card-cap-bg: transparent;
    --bs-card-border-color: var(--ui-borda);
    border: 1px solid var(--ui-borda);
    box-shadow: none !important;     /* sem sombras em cartões (inclui .shadow-sm do HTML antigo) */
    overflow: clip;
}
.card-header {
    font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--bs-secondary-color);
    border-bottom: 1px solid var(--ui-borda); padding: 1rem 1.5rem;
}
.card-body { padding: 1.5rem; }
.dropdown-menu {
    --bs-dropdown-border-radius: 1.5rem;
    --bs-dropdown-padding-y: .75rem;
    --bs-dropdown-item-padding-x: 1.5rem;
    --bs-dropdown-item-padding-y: .5rem;
    --bs-dropdown-bg: var(--ui-superficie);
    --bs-dropdown-border-color: var(--ui-borda);
    --bs-dropdown-font-size: .875rem;
    --bs-dropdown-link-active-bg: var(--bs-body-color);
    --bs-dropdown-link-active-color: var(--bs-body-bg);
    box-shadow: var(--ui-sombra-hover);
    background-color: var(--bs-body-bg);
}
.dropdown-item { border-radius: 0; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--ui-superficie-2); color: var(--bs-body-color); }
.dropdown-header { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.modal-content { border-radius: var(--ui-raio-card-md); background: var(--bs-body-bg); border: 1px solid var(--ui-borda); }
.modal-header, .modal-footer { border-color: var(--ui-borda); }
.alert { --bs-alert-border-radius: 1.5rem; --bs-alert-padding-x: 1.25rem; --bs-alert-padding-y: 1rem; font-size: .9375rem; }
.badge {
    border-radius: 9999px; font-family: var(--ui-mono); font-weight: 500; font-size: .6875rem;
    text-transform: uppercase; letter-spacing: .05em; padding: .4em .8em;
}
.text-bg-light { background-color: var(--ui-superficie-2) !important; color: var(--bs-body-color) !important; border: 1px solid var(--ui-borda); }
.bg-light { background-color: var(--ui-superficie-2) !important; }
.bg-white { background-color: var(--ui-superficie) !important; }
.breadcrumb { --bs-breadcrumb-divider-color: var(--mv-cinza); --bs-breadcrumb-item-active-color: var(--bs-body-color); }

/* ----- Tabelas ----- */
.table { --bs-table-bg: transparent; --bs-table-border-color: var(--ui-borda); --bs-table-hover-bg: var(--ui-superficie-2); font-size: .875rem; }
.table > :not(caption) > * > * { padding: .85rem 1rem; }
.table > thead > tr > th {
    font-weight: 500; white-space: nowrap; font-size: .6875rem; text-transform: uppercase; letter-spacing: .07em;
    color: var(--bs-secondary-color); border-bottom: 1px solid var(--bs-body-color); background: transparent;
}
.table-light, .table-light > * { --bs-table-bg: var(--ui-superficie-2); --bs-table-color: var(--bs-body-color); }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--ui-superficie-2); }
.table-responsive { -webkit-overflow-scrolling: touch; position: relative; }

/* Azul só na ação principal: ícones decorativos herdam a cor do texto e selos "primários" viram pílula preta */
i.text-primary, .text-primary > i { color: inherit !important; }
.text-bg-primary { background-color: var(--mv-quase-preto) !important; color: #f6f3f1 !important; }
[data-bs-theme="dark"] .text-bg-primary { background-color: #f1ede9 !important; color: #131211 !important; }
/* Linhas de tabela sem zebra: só linhas finas (o hover já destaca) */
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-bg-type: transparent; --bs-table-color-type: var(--bs-body-color); }
table .btn { white-space: nowrap; }

/* ---------------------------------------------------------------- 3. Superfícies */
/* Lavagem atmosférica: manchas desfocadas coral→céu e céu→menta (só decoração) */
.ui-lavagem { position: relative; isolation: isolate; overflow: clip; }
.ui-lavagem::before,
.ui-lavagem::after {
    content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none;
    filter: blur(64px); opacity: var(--lavagem-op, .8);
}
.ui-lavagem::before {
    width: 34rem; height: 26rem; right: -9rem; top: -10rem;
    background: linear-gradient(135deg, rgb(255 148 115 / .8), rgb(160 181 235 / .8));
}
.ui-lavagem::after {
    width: 30rem; height: 22rem; left: -11rem; bottom: -11rem;
    background: linear-gradient(45deg, rgb(160 181 235 / .8), rgb(167 252 205 / .8));
}
[data-bs-theme="dark"] .ui-lavagem { --lavagem-op: .26; }

/* Barra de topo (acessibilidade): faixa preta como a "announcement bar" do modelo */
.barra-acessibilidade { background: #000; color: #f6f3f1; font-size: .75rem; padding: .5rem 0; text-transform: uppercase; letter-spacing: .03em; }
.barra-acessibilidade .btn { --bs-btn-padding-y: .2rem; --bs-btn-padding-x: .8rem; --bs-btn-font-size: .6875rem; }
.barra-acessibilidade .btn-group { gap: .35rem; }
.barra-acessibilidade .btn-group > .btn { border-radius: 100px !important; margin: 0; }
.barra-acessibilidade .btn[aria-pressed="true"] { background: #f6f3f1; color: #000; }

/* Menu principal: transparente sobre o pergaminho, linha fina embaixo */
.ui-navbar {
    --bs-navbar-padding-y: .9rem;
    background: color-mix(in srgb, var(--bs-body-bg) 90%, transparent);
    backdrop-filter: saturate(1.4) blur(14px);
    border-bottom: 1px solid var(--ui-borda);
}
.ui-navbar .nav-link,
.ui-navbar .navbar-brand { color: var(--bs-body-color); }
.ui-navbar .nav-link {
    font-size: .8125rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em;
    border-radius: 100px; padding: .55rem .8rem; white-space: nowrap;
}
.ui-navbar .nav-link i { display: none; }     /* menu editorial: só texto */
@media (min-width: 992px) and (max-width: 1199.98px) { .ui-navbar .nav-link { padding-inline: .55rem; font-size: .75rem; } }
.ui-navbar .nav-link:hover,
.ui-navbar .nav-link:focus-visible { background: var(--ui-superficie-2); color: var(--bs-body-color); }
.ui-navbar .nav-link.active { color: var(--bs-body-color); box-shadow: none; }
.ui-navbar .nav-link.active::before { background: var(--bs-body-color); }
.ui-navbar .navbar-brand img { display: block; height: 2.25rem; width: auto; }
[data-bs-theme="dark"] .ui-navbar .navbar-brand img { background: #f6f3f1; padding: .3rem .7rem; border-radius: 100px; height: 2.6rem; }
.ui-navbar .navbar-toggler { border: 1px solid var(--ui-borda-forte); border-radius: 100px; padding: .45rem .8rem; }
.ui-navbar .navbar-toggler:focus { box-shadow: none; }
.ui-navbar .dropdown-menu .dropdown-header { color: var(--bs-secondary-color); }
@media (max-width: 991.98px) {
    .ui-navbar .navbar-collapse { padding-top: 1rem; }
    .ui-navbar .nav-link { padding-inline: .5rem; border-radius: 12px; }
}

/* Faixa de topo das páginas internas */
.ui-faixa {
    position: relative;
    padding: clamp(2.5rem, 1.5rem + 4vw, 5rem) 0 clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
    border-bottom: 1px solid var(--ui-borda);
    --lavagem-op: .55;
}
.ui-faixa.ui-lavagem::after { display: none; }
.ui-faixa__titulo { font-size: var(--ui-texto-titulo); margin-bottom: .75rem; text-wrap: balance; }
.ui-faixa__sub { color: var(--bs-secondary-color); max-width: 60ch; font-size: 1.0625rem; }

/* Hero da home: tipográfico, centralizado.
   As lavagens "vazam" para baixo (overflow-y visível, sem contexto de empilhamento) em vez de terminarem numa linha reta. */
.hero-crephimat.ui-lavagem { overflow-x: clip; overflow-y: visible; isolation: auto; }
.hero-crephimat {
    position: relative;
    padding: clamp(3.5rem, 2rem + 6vw, 7rem) 0 clamp(3rem, 2rem + 4vw, 5.5rem);
    text-align: center;
}
.hero-crephimat h1 {
    font-size: var(--ui-texto-hero); line-height: 1.08; letter-spacing: -.02em;
    max-width: 18ch; margin-inline: auto; margin-bottom: 1.5rem;
}
.hero-crephimat .lead { max-width: 52ch; margin-inline: auto; font-size: clamp(1rem, .9rem + .5vw, 1.25rem); }
.hero-crephimat .ui-hero__acoes { justify-content: center; }

/* Rodapé: faixa de tinta (preto) com texto pergaminho */
.ui-rodape { background: #000; color: #d9d4d0; margin-top: clamp(3rem, 2rem + 4vw, 6rem) !important; }
.ui-rodape h2, .ui-rodape h3 { color: #f6f3f1; font-size: .75rem; font-family: var(--ui-mono); text-transform: uppercase; letter-spacing: .08em; font-weight: 500; }
.ui-rodape h2 { font-family: var(--ui-serifa); font-size: 1.75rem; text-transform: none; letter-spacing: -.02em; font-weight: 400; }
.ui-rodape a { color: #f6f3f1; text-underline-offset: .2em; }
.ui-rodape a:hover { color: var(--mv-ceu); }
.ui-rodape li a { display: inline-block; padding: .3rem 0; }
.ui-rodape .ui-rodape__fino { color: #b4afab; }
.ui-rodape .border-bottom { border-color: #2e2c2b !important; }

/* ---------------------------------------------------------------- 4. Componentes ui-* */
.ui-migalhas { margin-bottom: 1.25rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }
.ui-migalhas .breadcrumb-item + .breadcrumb-item::before { color: var(--bs-secondary-color); }

/* Cabeçalho de página do admin */
.ui-cabecalho-admin {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: .75rem 1rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--ui-borda);
}
.ui-cabecalho-admin h1 { margin: 0; }

/* Indicador (número + rótulo) */
.ui-indicador {
    height: 100%;
    background: var(--ui-superficie);
    border: 1px solid var(--ui-borda);
    border-radius: var(--ui-raio-card-md);
    padding: 1.5rem;
    transition: border-color var(--ui-duracao) var(--ui-easing), background-color var(--ui-duracao) var(--ui-easing);
}
.ui-indicador:hover { border-color: var(--ui-borda-forte); }
.ui-indicador__icone {
    display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem;
    border-radius: 9999px; margin-bottom: 1rem;
    border: 1px solid var(--ui-borda); color: var(--bs-body-color); font-size: .85rem;
}
.ui-indicador__valor { font-family: var(--ui-serifa); font-size: 3rem; font-weight: 400; letter-spacing: -.03em; line-height: 1; color: var(--bs-emphasis-color); }
.ui-indicador__rotulo { color: var(--bs-secondary-color); font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; margin-top: .6rem; }

/* Estado vazio */
.ui-vazio { text-align: center; padding: clamp(2.5rem, 1rem + 5vw, 4.5rem) 1rem; }
.ui-vazio__icone {
    display: inline-grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 9999px;
    border: 1px solid var(--ui-borda-forte); color: var(--bs-body-color); font-size: 1.2rem; margin-bottom: 1.25rem;
}
.ui-vazio__titulo { font-size: 1.5rem; display: block; margin-bottom: .5rem; padding: 0; }
.ui-vazio__texto { color: var(--bs-secondary-color); max-width: 44ch; margin: 0 auto 1.25rem; }

/* Esqueleto de carregamento */
.ui-esqueleto { padding: 1rem; display: grid; gap: .75rem; }
.ui-esqueleto__linha { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 1rem; }
.ui-esqueleto__celula {
    display: block; height: 1rem; border-radius: 9999px;
    background: var(--ui-superficie-2);
    animation: ui-pulso 1.4s ease-in-out infinite;
}
.ui-esqueleto__linha:nth-child(odd) .ui-esqueleto__celula:first-child { max-width: 4rem; }
@keyframes ui-pulso { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
.ui-esqueleto[hidden] { display: none; }

/* Erro de tabela */
.ui-erro-tabela {
    margin: 1rem; padding: 1rem 1.25rem; border-radius: 1.5rem;
    background: var(--bs-danger-bg-subtle); border: 1px solid var(--bs-danger-border-subtle); color: var(--bs-danger-text-emphasis);
}
.ui-erro-tabela[hidden] { display: none; }

/* Botão de ícone: círculo com alvo mínimo de 2,25rem */
.ui-botao-icone { min-width: 2.25rem; min-height: 2.25rem; display: inline-grid; place-items: center; padding: .25rem; border-radius: 9999px !important; }

/* Etiqueta em pílula (nó do diagrama / tag) */
.ui-tag {
    display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid var(--ui-borda); border-radius: 9999px; padding: .5rem 1rem;
    font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; background: var(--bs-body-bg);
}

/* Acordeão (FAQ) com <details>: linha fina embaixo, pergunta em serifa */
.ui-faq { border-top: 1px solid var(--ui-borda); }
.ui-faq details { border-bottom: 1px solid var(--ui-borda); }
.ui-faq summary {
    display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; cursor: pointer;
    list-style: none; padding: clamp(1.25rem, 1rem + 1vw, 2rem) 0;
    font-family: var(--ui-serifa); font-size: clamp(1.25rem, 1.05rem + .8vw, 1.5rem); letter-spacing: -.02em; line-height: 1.25;
    border-radius: 12px;
}
.ui-faq summary::-webkit-details-marker { display: none; }
.ui-faq summary::after {
    content: ""; flex: 0 0 auto; width: .75rem; height: .75rem;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; rotate: 45deg; translate: 0 -.15rem;
    transition: rotate 260ms var(--ui-easing), translate 260ms var(--ui-easing);
}
.ui-faq details[open] > summary::after { rotate: 225deg; translate: 0 .15rem; }
.ui-faq .ui-faq__resposta { padding: 0 0 clamp(1.25rem, 1rem + 1vw, 2rem); max-width: 68ch; color: var(--bs-secondary-color); }
@supports selector(::details-content) {
    .ui-faq details::details-content { block-size: 0; overflow: clip; transition: block-size 320ms var(--ui-easing), content-visibility 320ms allow-discrete; }
    .ui-faq details[open]::details-content { block-size: auto; }
    :root { interpolate-size: allow-keywords; }
}
@media (prefers-reduced-motion: reduce) { .ui-faq details::details-content, .ui-faq summary::after { transition: none; } }

/* ---------------------------------------------------------------- 5. Site público */
/* Números do acervo */
.numeros-crephimat-card {
    background: var(--ui-superficie); border: 1px solid var(--ui-borda); border-radius: var(--ui-raio-card);
    padding: clamp(.5rem, 1vw, 1rem) clamp(.5rem, 2vw, 2.5rem);
}
.numeros-crephimat > div:not(:last-child) { border-right: 1px solid var(--ui-borda); }
@media (max-width: 767.98px) {
    .numeros-crephimat > div { border-right: none !important; }
    .numeros-crephimat > div:nth-child(odd) { border-right: 1px solid var(--ui-borda) !important; }
}
.numeros-crephimat-valor {
    font-family: var(--ui-serifa); font-weight: 400; letter-spacing: -.03em;
    font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.5rem); line-height: 1; color: var(--bs-emphasis-color);
}
.numeros-crephimat-rotulo { color: var(--bs-secondary-color); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; margin-top: .75rem; }

/* Cartão pervinca (o único cartão colorido da página) com lavagem dentro */
.citacao-crephimat {
    position: relative; isolation: isolate; overflow: clip; margin: 0;
    background: var(--mv-pervinca); color: var(--mv-quase-preto);
    border: 0; border-radius: var(--ui-raio-card); padding: clamp(1.75rem, 1rem + 2.5vw, 2.5rem);
}
.citacao-crephimat::after {
    content: ""; position: absolute; z-index: -1; right: -6rem; bottom: -7rem; width: 20rem; height: 16rem; border-radius: 50%;
    background: linear-gradient(135deg, rgb(255 148 115 / .85), rgb(160 181 235 / .85) 55%, rgb(167 252 205 / .85)); filter: blur(46px);
}
.citacao-crephimat p { font-family: var(--ui-serifa); font-size: clamp(1.25rem, 1.05rem + .8vw, 1.5rem); line-height: 1.3; letter-spacing: -.02em; }
.citacao-crephimat footer { color: #3a3938 !important; font-size: .8125rem; }
.citacao-crephimat a { color: #1d3f9e; }
[data-bs-theme="dark"] .citacao-crephimat { background: #1f2a4d; color: #f1ede9; }
[data-bs-theme="dark"] .citacao-crephimat footer { color: #cfd6ee !important; }
[data-bs-theme="dark"] .citacao-crephimat a { color: #bccaf7; }
[data-bs-theme="dark"] .citacao-crephimat::after { opacity: .4; }

/* Cartão de depoimento: borda fina, 40px de raio, 40px de respiro */
.depoimento-crephimat {
    background: transparent; border: 1px solid var(--ui-borda); border-radius: var(--ui-raio-card);
    padding: clamp(1.5rem, 1rem + 1.6vw, 2.5rem); height: 100%; display: flex; flex-direction: column;
}
.depoimento-crephimat blockquote { flex-grow: 1; font-family: var(--ui-serifa); font-size: 1.375rem; line-height: 1.3; letter-spacing: -.02em; }
.depoimento-crephimat figcaption .fw-semibold { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }

/* Diagrama "do acervo à citação" */
.ui-fluxo { width: 100%; height: auto; display: block; }
.ui-fluxo text { font-family: var(--ui-mono); font-size: 14px; letter-spacing: .02em; text-transform: uppercase; fill: var(--bs-body-color); }
.ui-fluxo .no { fill: var(--bs-body-bg); stroke: var(--ui-borda-forte); stroke-width: 1; }
.ui-fluxo .fio { fill: none; stroke: var(--ui-borda-forte); stroke-width: 1.2; opacity: .8; }
.ui-fluxo .hub { fill: var(--bs-body-bg); stroke: var(--bs-body-color); stroke-width: 1.2; }
.ui-fluxo .hub-texto { font-family: var(--ui-serifa); font-size: 22px; text-transform: none; letter-spacing: -.02em; }
.ui-fluxo .ponto { fill: var(--bs-body-color); }
.ui-fluxo-lista { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Títulos de seção sem decoração extra: a serifa já basta */
.ui-vazio h2, .ui-vazio__titulo { padding-bottom: 0; margin-bottom: .5rem; }
.ui-secao-rotulo { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bs-secondary-color); margin-bottom: 1rem; }
section h2, main h2 { margin-bottom: 1.25rem; }

/* Carrossel de depoimentos */
.carousel-depoimentos .carousel-control-prev,
.carousel-depoimentos .carousel-control-next { width: 2.75rem; opacity: .75; }
.carousel-depoimentos .carousel-control-prev { left: -1rem; }
.carousel-depoimentos .carousel-control-next { right: -1rem; }
.carousel-depoimentos .carousel-control-prev:hover,
.carousel-depoimentos .carousel-control-next:hover { opacity: 1; }
.carousel-depoimentos .carousel-control-prev-icon,
.carousel-depoimentos .carousel-control-next-icon { filter: invert(1) grayscale(1); width: 1.5rem; height: 1.5rem; }
[data-bs-theme="dark"] .carousel-depoimentos .carousel-control-prev-icon,
[data-bs-theme="dark"] .carousel-depoimentos .carousel-control-next-icon { filter: none; }
.carousel-depoimentos .carousel-indicators [data-bs-target] {
    box-sizing: content-box; width: 10px; height: 10px; padding: 0; margin: 0 2px;
    border: 7px solid transparent; background-clip: padding-box;   /* área de toque de 24px, ponto visível de 10px */
    background-color: var(--bs-body-color); border-radius: 50%; opacity: .35;
}
.carousel-depoimentos .carousel-indicators .active { opacity: 1; }
@media (max-width: 767.98px) {
    .carousel-depoimentos .row { padding-inline: 1.5rem !important; }
    .carousel-depoimentos .carousel-control-prev { left: 0; }
    .carousel-depoimentos .carousel-control-next { right: 0; }
}

/* Hero antigo de carrossel (mantido por compatibilidade) */
.hero-carousel .carousel-item { min-height: 380px; background-size: cover; background-position: center; }
.hero-carousel .carousel-caption { background: rgba(0, 0, 0, .55); border-radius: .5rem; bottom: 2rem; }

/* Submenu (dropdown aninhado) de "Produção Acadêmica" */
.dropdown-submenu { position: relative; }
.dropdown-submenu > .dropdown-menu {
    display: none; position: static; float: none; margin: 0; border: none;
    box-shadow: none; background: transparent; padding-left: .75rem;
}
.dropdown-submenu > .dropdown-menu.show { display: block; }
@media (min-width: 992px) {
    .dropdown-submenu > .dropdown-menu {
        position: absolute; top: 0; left: 100%; margin-top: -.75rem;
        border: 1px solid var(--ui-borda); box-shadow: var(--ui-sombra-hover);
        background: var(--bs-body-bg); padding-left: 0; min-width: 14rem; border-radius: 1.5rem;
    }
}

/* Selo de acessos nas produções */
.badge-contagem-acessos { background-color: transparent; color: var(--bs-body-color); border: 1px solid var(--ui-borda-forte); font-weight: 500; }

/* ---------------------------------------------------------------- 6. Painel administrativo */
.admin-shell { display: flex; align-items: flex-start; }
.admin-sidebar {
    width: 260px; flex-shrink: 0; background: var(--ui-superficie-2); color: var(--bs-body-color);
    border-right: 1px solid var(--ui-borda);
    position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 1.25rem 1rem;
    display: flex; flex-direction: column;
    transition: width var(--ui-duracao) var(--ui-easing);
}
.admin-sidebar .navbar-brand, .admin-sidebar .admin-marca { font-family: var(--ui-serifa); font-size: 1.5rem; letter-spacing: -.02em; color: var(--bs-body-color); }
.admin-sidebar .nav-link {
    color: var(--bs-body-color); border-radius: 100px; display: flex; align-items: center; gap: .65rem;
    font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; padding: .6rem .9rem;
}
.admin-sidebar .nav-link:hover { background: color-mix(in srgb, var(--bs-body-color) 8%, transparent); color: var(--bs-body-color); }
.admin-sidebar .nav-link.active { background: var(--mv-quase-preto); color: #f6f3f1; }
[data-bs-theme="dark"] .admin-sidebar .nav-link.active { background: #f1ede9; color: #131211; }
.admin-sidebar .nav-link i { width: 1.25rem; text-align: center; }
.admin-sidebar .btn-outline-light { --bs-btn-color: var(--bs-body-color); --bs-btn-border-color: var(--bs-body-color); --bs-btn-hover-color: var(--bs-body-bg); --bs-btn-hover-bg: var(--bs-body-color); --bs-btn-hover-border-color: var(--bs-body-color); }
.admin-sidebar .text-white, .admin-sidebar .text-white-50 { color: var(--bs-body-color) !important; }
.admin-main { flex: 1 1 0; min-width: 0; padding: clamp(1.25rem, .5rem + 2.5vw, 3rem); }
.admin-nav-colapso { display: flex; flex-direction: column; flex: 1 1 auto; }
.admin-topo-movel { display: none; }
.admin-sidebar .admin-marca-desktop { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.pagination {
    --bs-pagination-color: var(--bs-body-color); --bs-pagination-bg: transparent; --bs-pagination-border-color: var(--ui-borda);
    --bs-pagination-hover-color: var(--bs-body-color); --bs-pagination-hover-bg: var(--ui-superficie-2); --bs-pagination-hover-border-color: var(--ui-borda-forte);
    --bs-pagination-active-bg: var(--mv-quase-preto); --bs-pagination-active-border-color: var(--mv-quase-preto); --bs-pagination-active-color: #f6f3f1;
    --bs-pagination-disabled-color: var(--mv-cinza); --bs-pagination-disabled-bg: transparent; --bs-pagination-disabled-border-color: var(--ui-borda);
    --bs-pagination-font-size: .8125rem; --bs-pagination-padding-x: .9rem; --bs-pagination-padding-y: .45rem; --bs-pagination-border-radius: 100px;
    gap: .25rem;
}
.pagination .page-link { border-radius: 100px !important; margin: 0 !important; }
[data-bs-theme="dark"] .pagination { --bs-pagination-active-bg: #f1ede9; --bs-pagination-active-border-color: #f1ede9; --bs-pagination-active-color: #131211; }

@media (min-width: 992px) {
    .admin-nav-colapso.collapse:not(.show) { display: flex; }
}
@media (max-width: 991.98px) {
    .admin-shell { flex-direction: column; align-items: stretch; }
    .admin-sidebar { width: 100%; height: auto; position: static; overflow: visible; padding: .75rem 1rem; border-right: 0; border-bottom: 1px solid var(--ui-borda); }
    .admin-sidebar .admin-marca-desktop { display: none; }
    .admin-topo-movel { display: flex; align-items: center; justify-content: space-between; }
    .admin-nav-colapso { display: none; padding-top: .75rem; }
    .admin-nav-colapso.show { display: flex; }
    #admin-sidebar-alternar { display: none; }
}

/* Menu lateral recolhido: só ícones (desktop) */
@media (min-width: 992px) {
    html.admin-sidebar-colapsada .admin-sidebar { width: 80px; }
    html.admin-sidebar-colapsada .admin-nav-rotulo { display: none; }
    html.admin-sidebar-colapsada .admin-sidebar .nav-link { justify-content: center; }
    html.admin-sidebar-colapsada .admin-sidebar .nav-link i { font-size: 1.1rem; }
    html.admin-sidebar-colapsada #admin-sidebar-icone { transform: rotate(180deg); }
}
#admin-sidebar-icone { transition: transform var(--ui-duracao) var(--ui-easing); }

.admin-login { min-height: 100vh; }
html:has(.admin-login) { overflow-x: clip; }
.admin-login.ui-lavagem { isolation: auto; }

/* Inline code: Bootstrap's pink fails AA on the parchment background. */
code { color: var(--bs-body-color); background: var(--ui-superficie-2, rgba(0, 0, 0, .05)); padding: .1em .35em; border-radius: .35rem; }
pre code { background: none; padding: 0; }

/* ---------------------------------------------------------------- 7. Bibliotecas externas */
.dt-buttons { display: flex; gap: .5rem; flex-wrap: wrap; }
/* Exportar/Imprimir: pílulas fantasma (sem cores extras) */
.dt-buttons .btn, .dt-buttons .btn-success, .dt-buttons .btn-danger, .dt-buttons .btn-primary {
    --bs-btn-color: var(--bs-body-color); --bs-btn-bg: transparent; --bs-btn-border-color: var(--ui-borda-forte);
    --bs-btn-hover-color: var(--bs-body-bg); --bs-btn-hover-bg: var(--bs-body-color); --bs-btn-hover-border-color: var(--bs-body-color);
    --bs-btn-active-color: var(--bs-body-bg); --bs-btn-active-bg: var(--bs-body-color); --bs-btn-active-border-color: var(--bs-body-color);
    background-color: transparent; color: var(--bs-body-color); border: 1px solid var(--ui-borda-forte); box-shadow: none !important;
}
.dt-buttons .btn:hover { background-color: var(--bs-body-color); color: var(--bs-body-bg); border-color: var(--bs-body-color); }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { margin-left: .4rem; }
div.dt-container .dt-search input,
div.dt-container .dt-length select { border-radius: 100px; padding: .5rem 1rem; font-size: .875rem; }
div.dt-container .dt-processing { border-radius: 1.5rem; box-shadow: var(--ui-sombra-hover); background: var(--bs-body-bg); border: 1px solid var(--ui-borda); }
div.dt-container { padding: 1.25rem; position: relative; }
div.dt-container .dt-info { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); }
div.dt-container .dt-search label, div.dt-container .dt-length label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); }
/* Só a tabela rola na horizontal; busca, contagem e paginação ficam fixas e quebram linha */
.table-responsive:has(> .dt-container) { overflow-x: visible; }
/* position: relative contém os .visually-hidden (absolutos) dentro da área rolável, evitando overflow na página */
div.dt-container .dt-layout-table > .dt-layout-full { overflow-x: auto; display: block; position: relative; }
div.dt-container .dt-layout-table table.dataTable { margin-inline: 0; }
div.dt-container .pagination { flex-wrap: wrap; justify-content: center; row-gap: .25rem; }
div.dt-container .dt-info { padding-top: .5rem; }
table.dataTable > thead > tr > th, table.dataTable > thead > tr > td { border-bottom: 1px solid var(--bs-body-color); }
@media (max-width: 575.98px) {
    div.dt-container { padding: .75rem; }
    div.dt-container .dt-search input { width: 100%; margin: .5rem 0 0; }
    div.dt-container .dt-search { text-align: left; }
}

.swal-citacao-aviso { font-size: .85rem; color: var(--bs-secondary-color); margin-top: -6px; }
.swal-citacao-texto {
    text-align: left; font-family: var(--ui-mono); font-size: .875rem;
    padding: 1rem 1.25rem; border: 1px solid var(--ui-borda); border-radius: 1.25rem;
    background: var(--ui-superficie-2); color: var(--bs-body-color);
    max-height: 240px; overflow-y: auto; margin: 0;
}
.swal2-popup { border-radius: var(--ui-raio-card-md) !important; font-family: var(--ui-mono) !important; background: var(--bs-body-bg) !important; color: var(--bs-body-color) !important; }
.swal2-title { font-family: var(--ui-serifa) !important; font-weight: 400 !important; letter-spacing: -.02em; color: var(--bs-body-color) !important; }
.swal2-html-container { color: var(--bs-body-color) !important; }
.swal2-styled { border-radius: 100px !important; text-transform: uppercase; font-size: .8125rem !important; letter-spacing: .02em; }

/* Tags de autores (seleção múltipla com autocomplete) */
.tags-combobox { position: relative; }
.tags-lista { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.tags-lista:empty { margin-bottom: 0; }
.tag-chip {
    display: inline-flex; align-items: center; gap: .35rem;
    background: var(--mv-quase-preto); color: #f6f3f1;
    padding: .3rem .6rem .3rem .9rem; border-radius: 9999px; font-size: .75rem; text-transform: uppercase; letter-spacing: .03em;
}
[data-bs-theme="dark"] .tag-chip { background: #f1ede9; color: #131211; }
.tag-chip-remover { background: none; border: none; color: inherit; opacity: .85; line-height: 1; font-size: 1rem; padding: 0 .15rem; cursor: pointer; }
.tag-chip-remover:hover { opacity: 1; }
.combobox-opcao-novo { color: var(--bs-link-color); font-style: italic; }

/* Combobox de busca */
.combobox { position: relative; }
.combobox-lista {
    position: absolute; top: calc(100% + .35rem); left: 0; right: 0; z-index: 1050;
    background: var(--bs-body-bg); color: var(--bs-body-color);
    border: 1px solid var(--ui-borda-forte);
    max-height: 280px; overflow-y: auto; box-shadow: var(--ui-sombra-hover);
    border-radius: 1.25rem;
}
.combobox-lista[hidden] { display: none; }
.combobox-opcao { padding: .65rem 1.1rem; font-size: .875rem; cursor: pointer; }
.combobox-opcao:hover, .combobox-opcao.ativa { background: var(--ui-superficie-2); }
.combobox-vazio { padding: .6rem 1.1rem; font-size: .8125rem; color: var(--bs-secondary-color); }

/* ---------------------------------------------------------------- 8. Modo escuro (ajustes) */
[data-bs-theme="dark"] .text-primary { color: var(--bs-primary) !important; }
[data-bs-theme="dark"] .text-secondary { color: var(--bs-secondary-color) !important; }
[data-bs-theme="dark"] .input-group-text { background-color: var(--ui-superficie-2); color: var(--bs-body-color); }
[data-bs-theme="dark"] .ui-rodape { background: #0a0909; }
[data-bs-theme="dark"] table.dataTable tbody tr { background-color: transparent; color: var(--bs-body-color); }
/* No escuro, "primário" vira azul claro: texto de selos precisa ser escuro */
[data-bs-theme="dark"] .text-bg-secondary { color: #131211 !important; }

/* ---------------------------------------------------------------- 9. Impressão */
@media print {
    .barra-acessibilidade, .ui-navbar, .ui-rodape, .admin-sidebar, .ui-pular, .dt-buttons, .dt-search, .dt-length, .dt-paging { display: none !important; }
    body { background: #fff; color: #000; }
    .ui-lavagem::before, .ui-lavagem::after, .citacao-crephimat::after { display: none; }
    .card, .ui-indicador, .depoimento-crephimat { border-color: #999; }
}
