/* =====================================================================
   RCLARO — Tema "Pro" (inspirado no estilo de painéis admin Bootstrap)
   ---------------------------------------------------------------------
   Carregado DEPOIS do style.css: só muda o aspeto (cores, tipografia,
   espaçamentos, sombras). Não mexe em nenhuma funcionalidade.
   - Claro (predefinido) e escuro: <html data-tema="escuro"> (+ data-bs-theme
     do Bootstrap 5.3). A escolha fica guardada no browser.
   - Letra Metropolis (domínio público), servida localmente.
   ===================================================================== */

@font-face { font-family: 'Metropolis'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/metropolis-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Metropolis'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/metropolis-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Metropolis'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/metropolis-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Metropolis'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/metropolis-latin-700-normal.woff2') format('woff2'); }

/* ---------- Tokens (claro) ---------- */
:root {
    --t-azul: #0061f2;      --t-azul-h: #0052cd;   --t-azul-soft: #dae7fb;  --t-azul-rgb: 0, 97, 242;
    --t-roxo: #6900c7;      --t-roxo-soft: #e3d1f4;
    --t-verde: #00ac69;     --t-verde-h: #009259;  --t-verde-soft: #d1f0e4;
    --t-ciano: #00cfd5;     --t-ciano-h: #00b0b5;  --t-ciano-soft: #d1f6f7;
    --t-amarelo: #f4a100;   --t-amarelo-h: #cf8900; --t-amarelo-soft: #fdefd1;
    --t-vermelho: #e81500;  --t-vermelho-h: #c51200; --t-vermelho-soft: #fbd3cf;
    --t-escuro: #212832;

    --t-fundo: #f2f6fc;
    --t-superficie: #ffffff;
    --t-superficie-2: #f8f9fc;
    --t-linha: #e0e5ec;
    --t-linha-forte: #c5ccd6;
    --t-texto: #69707a;
    --t-titulo: #363d47;
    --t-forte: #212832;
    --t-suave: #a7aeb8;
    --t-sombra: 0 .15rem 1.75rem 0 rgba(33, 40, 50, .15);
    --t-sombra-sm: 0 .125rem .25rem 0 rgba(33, 40, 50, .2);
    --t-raio: .35rem;
    --t-topo: 3.625rem;
    --t-lateral: 15rem;
    --t-fonte: 'Metropolis', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

    /* variáveis do style.css → mesmo aspeto em todas as páginas */
    --primary: var(--t-azul); --primary-light: #3b86f5; --primary-dark: var(--t-azul-h); --primary-800: #003a91;
    --secondary: var(--t-verde); --secondary-dark: var(--t-verde-h);
    --accent: var(--t-amarelo); --accent-dark: var(--t-amarelo-h);
    --success: var(--t-verde); --success-dark: var(--t-verde-h);
    --warning: var(--t-amarelo); --warning-dark: var(--t-amarelo-h);
    --danger: var(--t-vermelho); --danger-dark: var(--t-vermelho-h);
    --info: var(--t-ciano);
    --dark: var(--t-escuro); --darker: #12171e;
    --bg: var(--t-fundo); --surface: var(--t-superficie); --surface-2: var(--t-superficie-2); --surface-3: var(--t-linha);
    --text: var(--t-titulo); --text-muted: var(--t-texto); --text-faint: var(--t-suave);
    --border: var(--t-linha);
    --radius: var(--t-raio);
    --font-brand: var(--t-fonte);

    /* Bootstrap 5.3 */
    --bs-primary: var(--t-azul); --bs-primary-rgb: 0, 97, 242;
    --bs-success: var(--t-verde); --bs-success-rgb: 0, 172, 105;
    --bs-info: var(--t-ciano); --bs-info-rgb: 0, 207, 213;
    --bs-warning: var(--t-amarelo); --bs-warning-rgb: 244, 161, 0;
    --bs-danger: var(--t-vermelho); --bs-danger-rgb: 232, 21, 0;
    --bs-body-font-family: var(--t-fonte);
    --bs-body-color: var(--t-texto);
    --bs-body-bg: var(--t-fundo);
    --bs-border-color: var(--t-linha);
    --bs-border-radius: var(--t-raio);
    --bs-link-color: var(--t-azul); --bs-link-color-rgb: 0, 97, 242;
    --bs-link-hover-color: var(--t-azul-h);
    --bs-heading-color: var(--t-titulo);
    --bs-emphasis-color: var(--t-forte);
    --bs-secondary-color: var(--t-texto);
    --bs-tertiary-bg: var(--t-superficie-2);
}

/* ---------- Tokens (escuro) ---------- */
html[data-tema="escuro"] {
    color-scheme: dark;
    --t-azul: #4d8ff7;      --t-azul-h: #6aa2fa;   --t-azul-soft: rgba(77, 143, 247, .16);  --t-azul-rgb: 77, 143, 247;
    --t-roxo: #a66bff;      --t-roxo-soft: rgba(166, 107, 255, .16);
    --t-verde: #2ecb8b;     --t-verde-h: #4ad79e;  --t-verde-soft: rgba(46, 203, 139, .15);
    --t-ciano: #33dce1;     --t-ciano-h: #5be4e8;  --t-ciano-soft: rgba(51, 220, 225, .14);
    --t-amarelo: #ffb627;   --t-amarelo-h: #ffc657; --t-amarelo-soft: rgba(255, 182, 39, .15);
    --t-vermelho: #ff5a47;  --t-vermelho-h: #ff7a6b; --t-vermelho-soft: rgba(255, 90, 71, .15);
    --t-escuro: #e8ecf2;

    --t-fundo: #141a24;
    --t-superficie: #1c2430;
    --t-superficie-2: #232c3a;
    --t-linha: #2f3a4a;
    --t-linha-forte: #3d4a5c;
    --t-texto: #a9b3c1;
    --t-titulo: #e8ecf2;
    --t-forte: #f4f6fa;
    --t-suave: #6f7b8d;
    --t-sombra: 0 .15rem 1.75rem 0 rgba(0, 0, 0, .35);
    --t-sombra-sm: 0 .125rem .25rem 0 rgba(0, 0, 0, .4);

    --bs-primary-rgb: 77, 143, 247; --bs-success-rgb: 46, 203, 139; --bs-info-rgb: 51, 220, 225;
    --bs-warning-rgb: 255, 182, 39; --bs-danger-rgb: 255, 90, 71;
    --bs-body-color: var(--t-texto); --bs-body-bg: var(--t-fundo);
    --bs-border-color: var(--t-linha);
    --bs-link-color-rgb: 77, 143, 247;
    --bs-emphasis-color: var(--t-forte);
    --bs-secondary-bg: var(--t-superficie-2);
    --bs-tertiary-bg: var(--t-superficie-2);
}

/* ---------- Base ---------- */
html, body { font-family: var(--t-fonte); }
body { background: var(--t-fundo); color: var(--t-texto); font-size: .9375rem; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--t-fonte); color: var(--t-titulo); font-weight: 500; letter-spacing: 0; }
strong, b { color: var(--t-forte); font-weight: 600; }
a { color: var(--t-azul); }
a:hover { color: var(--t-azul-h); }
hr { border-color: var(--t-linha); opacity: 1; }
code { color: #d63384; }
html[data-tema="escuro"] code { color: #ff8cc6; }
::selection { background: rgba(var(--t-azul-rgb), .2); }
::-webkit-scrollbar-thumb { background: var(--t-linha-forte); }
::-webkit-scrollbar-track { background: transparent; }

/* ---------- Barra de topo ---------- */
.topnav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1039; height: var(--t-topo);
    display: flex; align-items: center; gap: .5rem; padding: 0 1rem 0 .5rem;
    background: var(--t-superficie); box-shadow: var(--t-sombra);
}
.topnav-toggle, .topnav-icone {
    width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: transparent; color: var(--t-texto);
    display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem; position: relative; text-decoration: none; flex-shrink: 0;
}
.topnav-toggle:hover, .topnav-icone:hover { background: var(--t-superficie-2); color: var(--t-azul); }
.topnav-brand { display: flex; align-items: center; gap: .6rem; color: var(--t-titulo); font-weight: 700; font-size: 1rem; text-decoration: none; width: 12.5rem; padding-left: .25rem; }
.topnav-brand:hover { color: var(--t-titulo); }
.topnav-brand-icone { width: 2rem; height: 2rem; border-radius: .5rem; background: var(--t-azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; }
.topnav-brand small { display: block; font-size: .65rem; font-weight: 500; color: var(--t-suave); text-transform: uppercase; letter-spacing: .08em; line-height: 1; margin-top: 2px; }
.topnav-titulo { font-size: .875rem; color: var(--t-texto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topnav-direita { margin-left: auto; display: flex; align-items: center; gap: .35rem; }
.topnav-ponto { position: absolute; top: .3rem; right: .2rem; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 1rem; background: var(--t-vermelho); color: #fff; font-size: .62rem; font-weight: 700; display: flex; align-items: center; justify-content: center; line-height: 1; }
.topnav-avatar {
    width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 0; background: var(--t-azul-soft); color: var(--t-azul);
    font-weight: 700; display: inline-flex; align-items: center; justify-content: center; margin-left: .25rem;
}
.topnav .dropdown-menu { min-width: 15rem; padding: 0; overflow: hidden; }
.topnav .dropdown-header { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.15rem; background: var(--t-superficie-2); border-bottom: 1px solid var(--t-linha); }
.topnav .dropdown-header .nome { color: var(--t-titulo); font-weight: 600; font-size: .9rem; }
.topnav .dropdown-header .papel { color: var(--t-texto); font-size: .75rem; text-transform: capitalize; }
.topnav .dropdown-item { padding: .7rem 1.15rem; font-size: .875rem; color: var(--t-titulo); display: flex; align-items: center; gap: .6rem; }
.topnav .dropdown-item i { color: var(--t-suave); width: 1rem; }
.topnav .dropdown-item:hover { background: var(--t-superficie-2); color: var(--t-azul); }
.topnav .dropdown-item:hover i { color: var(--t-azul); }
@media (max-width: 575.98px) { .topnav-brand { width: auto; } .topnav-brand small, .topnav-titulo { display: none; } }

/* ---------- Sino de notificações ---------- */
.topnav-ponto.nt-aviso { background: var(--t-amarelo); color: #3b2a00; }
.topnav-ponto.nt-alerta { background: var(--t-vermelho); color: #fff; }
.topnav .nt-menu { width: 23rem; max-width: calc(100vw - 1rem); }
.nt-cab { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1.15rem; background: var(--t-superficie-2); border-bottom: 1px solid var(--t-linha); color: var(--t-titulo); }
.nt-lidas { border: 0; background: transparent; color: var(--t-azul); font-size: .75rem; padding: 0; }
.nt-lidas:hover { text-decoration: underline; }
.nt-lista { max-height: min(26rem, 70vh); overflow-y: auto; }
.nt-item { display: flex; align-items: center; gap: .75rem; padding: .7rem 1.15rem; border-bottom: 1px solid var(--t-linha); text-decoration: none; color: var(--t-titulo); }
.nt-item:last-child { border-bottom: 0; }
.nt-item:hover { background: var(--t-superficie-2); color: var(--t-titulo); }
.nt-ico { width: 2.1rem; height: 2.1rem; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: .95rem; background: var(--t-azul-soft); color: var(--t-azul); }
.nt-aviso .nt-ico { background: var(--t-amarelo-soft); color: var(--t-amarelo-h); }
.nt-alerta .nt-ico { background: var(--t-vermelho-soft); color: var(--t-vermelho); }
.nt-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.nt-txt strong { font-size: .84rem; font-weight: 600; }
.nt-txt small { color: var(--t-texto); font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nt-seta { color: var(--t-suave); font-size: .7rem; }
.nt-vazio { display: flex; align-items: center; gap: .75rem; padding: 1.4rem 1.15rem; color: var(--t-texto); }
.nt-vazio i { font-size: 1.6rem; color: var(--t-verde); }
.nt-vazio small { display: block; font-size: .75rem; }

/* ---------- Layout ---------- */
.app-layout { padding-top: var(--t-topo); background: var(--t-fundo); }
.main-content { padding: 1.75rem 1.75rem 3rem; min-width: 0; }
.mobile-toggle { display: none !important; }   /* o botão de menu passa para a barra de topo */

/* ---------- Menu lateral (claro) ---------- */
.sidebar {
    width: var(--t-lateral); top: var(--t-topo); height: calc(100vh - var(--t-topo));
    background: var(--t-superficie); color: var(--t-forte); padding: 0;
    border-right: 0; box-shadow: .15rem 0 1.75rem 0 rgba(33, 40, 50, .15); z-index: 1038;
}
html[data-tema="escuro"] .sidebar { box-shadow: .15rem 0 1.75rem 0 rgba(0, 0, 0, .35); }
.sidebar-brand { display: none; }
.sidebar-scroll { margin: 0; padding: .25rem 0 1rem; }
.sidebar-scroll::-webkit-scrollbar-thumb, .sidebar-scroll:hover::-webkit-scrollbar-thumb { background: var(--t-linha); }
.sidebar-section {
    padding: 1.25rem 1rem .6rem; margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .05em;
    color: var(--t-suave); text-transform: uppercase; background: transparent;
}
.sidebar-section:hover { color: var(--t-texto); background: transparent; }
.sidebar-section i { color: var(--t-suave); }
.sidebar-nav { padding: 0; margin: 0; }
.sidebar-nav li { margin: 0; }
.sidebar-nav a {
    display: flex; align-items: center; gap: .5rem; padding: .7rem 1rem; margin: 0; border-radius: 0;
    color: var(--t-forte); font-size: .9rem; font-weight: 400; background: transparent; border-left: 0; position: relative;
}
.sidebar-nav a i:first-child { color: var(--t-suave); font-size: .95rem; width: 1.15rem; text-align: center; margin-right: .1rem; }
.sidebar-nav a i.text-warning:first-child { color: var(--t-amarelo) !important; }
.sidebar-nav a:hover { color: var(--t-azul); background: transparent; }
.sidebar-nav a:hover i:first-child { color: var(--t-azul); }
.sidebar-nav a.active { color: var(--t-azul); font-weight: 600; background: transparent; box-shadow: none; }
.sidebar-nav a.active i:first-child { color: var(--t-azul); }
.sidebar-nav a.active::before { content: ''; position: absolute; left: 0; top: .45rem; bottom: .45rem; width: 3px; border-radius: 0 3px 3px 0; background: var(--t-azul); }
.sidebar-nav .badge { margin-left: auto !important; font-size: .68rem; font-weight: 600; padding: .25em .5em; }
.sidebar-user {
    margin: 0; padding: .75rem; border-radius: 0; border: 0;
    background: rgba(33, 40, 50, .05); display: flex; align-items: center; gap: .5rem;
}
html[data-tema="escuro"] .sidebar-user { background: rgba(255, 255, 255, .04); }
.sidebar-user-link { flex: 1; display: flex; align-items: center; gap: .65rem; color: var(--t-forte); text-decoration: none; min-width: 0; padding: .15rem; border-radius: var(--t-raio); }
.sidebar-user-link:hover { background: transparent; }
.sidebar-user-link:hover .sidebar-user-name { color: var(--t-azul); }
.sidebar-user-avatar { background: var(--t-azul-soft); color: var(--t-azul); width: 2.25rem; height: 2.25rem; border-radius: 50%; font-weight: 700; box-shadow: none; }
.sidebar-user-name { color: var(--t-forte); font-weight: 500; font-size: .875rem; }
.sidebar-user-role { color: var(--t-texto); font-size: .72rem; }
.sidebar-user > a:last-child { color: var(--t-suave); }
.sidebar-user > a:last-child:hover { color: var(--t-vermelho); background: transparent; }

/* Menu recolhido em ecrã grande (botão ☰) */
@media (min-width: 992.02px) {
    .sidebar { transition: margin-left .2s ease; }
    html.menu-recolhido .sidebar { margin-left: calc(-1 * var(--t-lateral)); }
}
@media (max-width: 992px) {
    .sidebar { left: calc(-1 * var(--t-lateral) - 30px); width: var(--t-lateral); }
    .sidebar.open { left: 0; box-shadow: var(--t-sombra); }
    .main-content { padding: 1.15rem 1rem 2.5rem; }
    .sidebar-backdrop { top: var(--t-topo); background: rgba(33, 40, 50, .35); }
}

/* ---------- Cabeçalho das páginas ---------- */
.page-header { margin-bottom: 1.5rem; }
.page-title { font-family: var(--t-fonte); font-size: 1.5rem; font-weight: 500; color: var(--t-titulo); letter-spacing: 0; display: flex; align-items: center; gap: .6rem; }
.page-title i { color: var(--t-azul); -webkit-text-fill-color: currentColor; background: none; font-size: 1.25rem; }
.page-subtitle { color: var(--t-azul); font-size: .85rem; font-weight: 500; margin-top: .2rem; }
.main-content > h3:first-child, .main-content > .d-flex:first-child > h3, .main-content > .d-flex:first-child > div > h3 { font-size: 1.5rem; font-weight: 500; color: var(--t-titulo); }
.main-content > h3:first-child i, .main-content > .d-flex:first-child h3 i { color: var(--t-azul); }

/* ---------- Cartões ---------- */
.card {
    background: var(--t-superficie); border: 1px solid rgba(33, 40, 50, .125); border-radius: var(--t-raio);
    box-shadow: var(--t-sombra); color: var(--t-texto);
}
html[data-tema="escuro"] .card { border-color: var(--t-linha); }
.card:hover { box-shadow: var(--t-sombra); }
.card-header {
    background: rgba(33, 40, 50, .03); border-bottom: 1px solid rgba(33, 40, 50, .125);
    color: var(--t-azul); font-weight: 500; font-size: 1rem; padding: 1rem 1.35rem;
}
html[data-tema="escuro"] .card-header { background: rgba(255, 255, 255, .03); border-bottom-color: var(--t-linha); }
.card-header:first-child { border-radius: calc(var(--t-raio) - 1px) calc(var(--t-raio) - 1px) 0 0; }
.card-header i { color: inherit; }
.card-header.bg-white, .card-header.bg-light { background: rgba(33, 40, 50, .03) !important; }
.card-header .text-muted, .card-header .small { font-weight: 400; }
.card-body { padding: 1.35rem; }
.card-footer { background: rgba(33, 40, 50, .03); border-top: 1px solid rgba(33, 40, 50, .125); padding: .9rem 1.35rem; }
html[data-tema="escuro"] .card-footer { background: rgba(255, 255, 255, .03); border-top-color: var(--t-linha); }
.card.shadow-sm { box-shadow: var(--t-sombra) !important; }
.card.bg-primary { background: var(--t-azul) !important; border-color: var(--t-azul); }

/* Cartões de números (dashboard): borda colorida à esquerda, ícone discreto */
.stat-grid { gap: 1.5rem; }
.stat-card {
    position: relative; background: var(--t-superficie); border: 1px solid rgba(33, 40, 50, .125); border-left: .25rem solid var(--t-azul);
    border-radius: var(--t-raio); box-shadow: var(--t-sombra); padding: 1.25rem 1.35rem; overflow: hidden;
}
html[data-tema="escuro"] .stat-card { border-top-color: var(--t-linha); border-right-color: var(--t-linha); border-bottom-color: var(--t-linha); }
.stat-card::before { display: none; }
.stat-card:hover { transform: none; box-shadow: var(--t-sombra); }
.stat-icon {
    position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); background: none !important; box-shadow: none !important;
    width: auto; height: auto; margin: 0; font-size: 2.1rem; color: var(--t-linha-forte) !important; opacity: .7;
}
.stat-icon i { color: inherit; }
.stat-label { color: var(--t-azul); font-size: .875rem; font-weight: 500; text-transform: none; letter-spacing: 0; margin-bottom: .25rem; }
.stat-value { font-family: var(--t-fonte); font-size: 1.35rem; font-weight: 500; color: var(--t-titulo); letter-spacing: 0; }
.stat-sub { color: var(--t-texto); font-size: .75rem; margin-top: .35rem; padding-right: 2.5rem; }
.stat-card:has(.gradient-success) { border-left-color: var(--t-verde); }   .stat-card:has(.gradient-success) .stat-label { color: var(--t-verde); }
.stat-card:has(.gradient-warning) { border-left-color: var(--t-amarelo); } .stat-card:has(.gradient-warning) .stat-label { color: var(--t-amarelo-h); }
.stat-card:has(.gradient-info) { border-left-color: var(--t-ciano); }      .stat-card:has(.gradient-info) .stat-label { color: var(--t-ciano-h); }
.stat-card:has(.gradient-pink) { border-left-color: var(--t-roxo); }       .stat-card:has(.gradient-pink) .stat-label { color: var(--t-roxo); }
.stat-card:has(.gradient-dark) { border-left-color: var(--t-escuro); }
.stat-card:has(.gradient-danger) { border-left-color: var(--t-vermelho); } .stat-card:has(.gradient-danger) .stat-label { color: var(--t-vermelho); }
.gradient-danger { background: var(--t-vermelho); }
.gradient-primary { background: var(--t-azul); } .gradient-success { background: var(--t-verde); } .gradient-warning { background: var(--t-amarelo); }
.gradient-info { background: var(--t-ciano); } .gradient-pink { background: var(--t-roxo); } .gradient-dark { background: var(--t-escuro); }

/* ---------- Botões ---------- */
.btn { font-family: var(--t-fonte); font-weight: 500; font-size: .875rem; border-radius: var(--t-raio); padding: .55rem 1rem; box-shadow: none; transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s; }
.btn-sm { font-size: .75rem; padding: .35rem .65rem; border-radius: var(--t-raio); }
.btn-lg { font-size: 1rem; padding: .75rem 1.35rem; }
.btn:focus-visible { box-shadow: 0 0 0 .25rem rgba(var(--t-azul-rgb), .25); }
.btn:hover { transform: none; }
.btn-primary   { background: var(--t-azul); border-color: var(--t-azul); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: var(--t-azul-h); border-color: var(--t-azul-h); color: #fff; box-shadow: none; }
.btn-success   { background: var(--t-verde); border-color: var(--t-verde); color: #fff; }
.btn-success:hover { background: var(--t-verde-h); border-color: var(--t-verde-h); color: #fff; }
.btn-danger    { background: var(--t-vermelho); border-color: var(--t-vermelho); color: #fff; }
.btn-danger:hover { background: var(--t-vermelho-h); border-color: var(--t-vermelho-h); color: #fff; }
.btn-warning   { background: var(--t-amarelo); border-color: var(--t-amarelo); color: #fff; }
.btn-warning:hover { background: var(--t-amarelo-h); border-color: var(--t-amarelo-h); color: #fff; }
.btn-info      { background: var(--t-ciano); border-color: var(--t-ciano); color: #fff; }
.btn-info:hover { background: var(--t-ciano-h); border-color: var(--t-ciano-h); color: #fff; }
.btn-dark      { background: var(--t-escuro); border-color: var(--t-escuro); color: var(--t-superficie); }
.btn-dark:hover { background: #000; border-color: #000; color: #fff; }
html[data-tema="escuro"] .btn-dark:hover { background: #fff; border-color: #fff; color: #000; }
.btn-secondary, .btn-light { background: var(--t-superficie); border: 1px solid var(--t-linha-forte); color: var(--t-titulo); }
.btn-secondary:hover, .btn-light:hover { background: var(--t-superficie-2); border-color: var(--t-linha-forte); color: var(--t-azul); }
.btn-outline-primary   { color: var(--t-azul); border-color: var(--t-azul); background: transparent; }
.btn-outline-primary:hover, .btn-check:checked + .btn-outline-primary { background: var(--t-azul); border-color: var(--t-azul); color: #fff; }
.btn-outline-success   { color: var(--t-verde); border-color: var(--t-verde); background: transparent; }
.btn-outline-success:hover, .btn-check:checked + .btn-outline-success { background: var(--t-verde); border-color: var(--t-verde); color: #fff; }
.btn-outline-danger    { color: var(--t-vermelho); border-color: var(--t-vermelho); background: transparent; }
.btn-outline-danger:hover { background: var(--t-vermelho); border-color: var(--t-vermelho); color: #fff; }
.btn-outline-warning   { color: var(--t-amarelo-h); border-color: var(--t-amarelo); background: transparent; }
.btn-outline-warning:hover { background: var(--t-amarelo); border-color: var(--t-amarelo); color: #fff; }
.btn-outline-info      { color: var(--t-ciano-h); border-color: var(--t-ciano); background: transparent; }
.btn-outline-info:hover, .btn-check:checked + .btn-outline-info { background: var(--t-ciano); border-color: var(--t-ciano); color: #fff; }
.btn-outline-secondary { color: var(--t-texto); border-color: var(--t-linha-forte); background: transparent; }
.btn-outline-secondary:hover, .btn-check:checked + .btn-outline-secondary { background: var(--t-superficie-2); border-color: var(--t-linha-forte); color: var(--t-titulo); }
.btn-outline-dark      { color: var(--t-titulo); border-color: var(--t-titulo); background: transparent; }
.btn-outline-dark:hover { background: var(--t-titulo); border-color: var(--t-titulo); color: var(--t-superficie); }
.btn-link { color: var(--t-azul); font-weight: 500; }
.btn-group .btn.active { background: var(--t-azul); border-color: var(--t-azul); color: #fff; }
.btn-close { filter: none; }
html[data-tema="escuro"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* ---------- Formulários ---------- */
.form-control, .form-select {
    font-family: var(--t-fonte); font-size: .875rem; color: var(--t-titulo); background-color: var(--t-superficie);
    border: 1px solid var(--t-linha-forte); border-radius: var(--t-raio); padding: .6rem 1rem; box-shadow: none;
}
.form-select { padding-right: 2.25rem; }
.form-control::placeholder { color: var(--t-suave); }
.form-control:focus, .form-select:focus { border-color: rgba(var(--t-azul-rgb), .6); box-shadow: 0 0 0 .25rem rgba(var(--t-azul-rgb), .2); background-color: var(--t-superficie); color: var(--t-titulo); }
.form-control-sm, .form-select-sm { font-size: .8rem; padding: .375rem .75rem; }
.form-select-sm { padding-right: 2rem; }
.form-control-lg { font-size: 1rem; padding: .8rem 1.1rem; }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: var(--t-superficie-2); color: var(--t-texto); }
.form-label { color: var(--t-titulo); font-weight: 500; font-size: .85rem; margin-bottom: .35rem; }
.form-text, small.text-muted { color: var(--t-texto) !important; }
.form-check-input { border-color: var(--t-linha-forte); background-color: var(--t-superficie); }
.form-check-input:checked { background-color: var(--t-azul); border-color: var(--t-azul); }
.form-check-input:focus { box-shadow: 0 0 0 .25rem rgba(var(--t-azul-rgb), .2); border-color: rgba(var(--t-azul-rgb), .6); }
.input-group-text { background: var(--t-superficie-2); border-color: var(--t-linha-forte); color: var(--t-texto); font-size: .875rem; }
html[data-tema="escuro"] .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a9b3c1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
html[data-tema="escuro"] input[type="date"], html[data-tema="escuro"] input[type="datetime-local"], html[data-tema="escuro"] input[type="time"] { color-scheme: dark; }

/* ---------- Tabelas ---------- */
.table { --bs-table-bg: transparent; --bs-table-color: var(--t-texto); color: var(--t-texto); font-size: .875rem; margin-bottom: 0; border-color: var(--t-linha); }
.table > :not(caption) > * > * { border-bottom-color: var(--t-linha); }
.table th, .table thead th, .table-light th, .table > thead.table-light > tr > th {
    background: var(--t-superficie-2) !important; color: var(--t-titulo); font-weight: 600; font-size: .75rem;
    text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--t-linha); padding: .85rem 1rem; white-space: nowrap;
}
.table tbody th { text-transform: none; letter-spacing: 0; font-size: .875rem; background: transparent !important; }
.table td { padding: .85rem 1rem; color: var(--t-texto); vertical-align: middle; border-bottom: 1px solid var(--t-linha); }
.table td strong, .table td a strong { color: var(--t-titulo); }
.table-sm td, .table-sm th { padding: .5rem .75rem; }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: rgba(var(--t-azul-rgb), .04); background: rgba(var(--t-azul-rgb), .04); color: var(--t-titulo); }
.table-light, .table-light > * > * { --bs-table-bg: var(--t-superficie-2); --bs-table-color: var(--t-titulo); }
.table-primary > * { --bs-table-bg: var(--t-azul-soft); }
.table-success > * { --bs-table-bg: var(--t-verde-soft); }
.table-warning > * { --bs-table-bg: var(--t-amarelo-soft); }
.table-danger > * { --bs-table-bg: var(--t-vermelho-soft); }

/* ---------- Etiquetas (suaves, como no painel) ---------- */
.badge { font-family: var(--t-fonte); font-weight: 600; font-size: .72em; padding: .4em .65em; border-radius: var(--t-raio); letter-spacing: .01em; }
.badge.bg-primary, .bg-primary.badge   { background: var(--t-azul-soft) !important; color: var(--t-azul) !important; }
.badge.bg-success, .bg-success.badge   { background: var(--t-verde-soft) !important; color: var(--t-verde-h) !important; }
.badge.bg-warning, .bg-warning.badge   { background: var(--t-amarelo-soft) !important; color: var(--t-amarelo-h) !important; }
.badge.bg-danger, .bg-danger.badge     { background: var(--t-vermelho-soft) !important; color: var(--t-vermelho) !important; }
.badge.bg-info, .bg-info.badge         { background: var(--t-ciano-soft) !important; color: var(--t-ciano-h) !important; }
.badge.bg-secondary, .bg-secondary.badge { background: var(--t-superficie-2) !important; color: var(--t-texto) !important; border: 1px solid var(--t-linha); }
.badge.bg-dark, .bg-dark.badge         { background: var(--t-escuro) !important; color: var(--t-superficie) !important; }
.badge.bg-light, .bg-light.badge       { background: var(--t-superficie-2) !important; color: var(--t-titulo) !important; }
.badge.text-dark { color: inherit !important; }
html[data-tema="escuro"] .badge.bg-warning.text-dark { color: var(--t-amarelo-h) !important; }
.badge-solid.bg-primary { background: var(--t-azul) !important; color: #fff !important; }
.badge-solid.bg-success { background: var(--t-verde) !important; color: #fff !important; }
.badge-solid.bg-warning { background: var(--t-amarelo) !important; color: #fff !important; }
.badge-solid.bg-danger  { background: var(--t-vermelho) !important; color: #fff !important; }
.badge.rounded-pill { border-radius: 10rem; }
.bg-primary-subtle  { background: var(--t-azul-soft) !important; }    .text-primary-emphasis  { color: var(--t-azul) !important; }
.bg-success-subtle  { background: var(--t-verde-soft) !important; }   .text-success-emphasis  { color: var(--t-verde-h) !important; }
.bg-info-subtle     { background: var(--t-ciano-soft) !important; }   .text-info-emphasis     { color: var(--t-ciano-h) !important; }
.bg-warning-subtle  { background: var(--t-amarelo-soft) !important; } .text-warning-emphasis  { color: var(--t-amarelo-h) !important; }
.bg-danger-subtle   { background: var(--t-vermelho-soft) !important; }.text-danger-emphasis   { color: var(--t-vermelho) !important; }

/* ---------- Avisos ---------- */
.alert { border-radius: var(--t-raio); border: 1px solid transparent; border-left-width: .25rem; font-size: .875rem; padding: .9rem 1.15rem; box-shadow: none; }
.alert-primary, .alert-info { background: var(--t-azul-soft); border-color: rgba(var(--t-azul-rgb), .25); border-left-color: var(--t-azul); color: var(--t-titulo); }
.alert-success   { background: var(--t-verde-soft); border-color: rgba(0, 172, 105, .25); border-left-color: var(--t-verde); color: var(--t-titulo); }
.alert-warning   { background: var(--t-amarelo-soft); border-color: rgba(244, 161, 0, .3); border-left-color: var(--t-amarelo); color: var(--t-titulo); }
.alert-danger    { background: var(--t-vermelho-soft); border-color: rgba(232, 21, 0, .25); border-left-color: var(--t-vermelho); color: var(--t-titulo); }
.alert-secondary, .alert-light { background: var(--t-superficie-2); border-color: var(--t-linha); border-left-color: var(--t-suave); color: var(--t-titulo); }
.alert i:first-child { color: inherit; }
.alert-success > i:first-child { color: var(--t-verde); } .alert-danger > i:first-child { color: var(--t-vermelho); }
.alert-warning > i:first-child { color: var(--t-amarelo-h); } .alert-info > i:first-child, .alert-primary > i:first-child { color: var(--t-azul); }
.alert .alert-link { color: var(--t-azul); }

/* ---------- Menus, janelas, listas, separadores ---------- */
.dropdown-menu { border: 0; border-radius: var(--t-raio); box-shadow: var(--t-sombra); background: var(--t-superficie); font-size: .875rem; }
.dropdown-item { color: var(--t-titulo); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--t-superficie-2); color: var(--t-azul); }
.modal-content { border: 0; border-radius: var(--t-raio); box-shadow: var(--t-sombra); background: var(--t-superficie); color: var(--t-texto); }
.modal-header { border-bottom: 1px solid var(--t-linha); padding: 1rem 1.35rem; }
.modal-title { color: var(--t-titulo); font-weight: 500; font-family: var(--t-fonte); }
.modal-body { padding: 1.35rem; }
.modal-footer { border-top: 1px solid var(--t-linha); background: var(--t-superficie-2); }
.list-group-item { background: var(--t-superficie); border-color: var(--t-linha); color: var(--t-texto); }
.list-group-item-action:hover { background: var(--t-superficie-2); color: var(--t-azul); }
.nav-tabs { border-bottom-color: var(--t-linha); }
.nav-tabs .nav-link { color: var(--t-texto); font-weight: 500; border: 0; border-bottom: 2px solid transparent; }
.nav-tabs .nav-link.active { color: var(--t-azul); background: transparent; border-bottom-color: var(--t-azul); }
.nav-pills .nav-link.active { background: var(--t-azul); }
.pagination .page-link { color: var(--t-azul); border-color: var(--t-linha); background: var(--t-superficie); }
.pagination .active > .page-link { background: var(--t-azul); border-color: var(--t-azul); color: #fff; }
.progress { background: var(--t-superficie-2); border-radius: 10rem; }
.progress-bar { background-color: var(--t-azul); }
.tooltip-inner { font-family: var(--t-fonte); }

/* Separadores das Definições / Gestor Website (estilo do painel) */
.def-tab { font-family: var(--t-fonte); background: var(--t-superficie); border: 1px solid var(--t-linha); color: var(--t-texto); font-weight: 500; box-shadow: var(--t-sombra-sm); }
.def-tab:hover { border-color: var(--t-azul); color: var(--t-azul); }
.def-tab.ativo { background: var(--t-azul); border-color: var(--t-azul); color: #fff; box-shadow: 0 .25rem .75rem rgba(var(--t-azul-rgb), .3); }
.def-search input { background: var(--t-superficie); }
.def-save { background: linear-gradient(to top, var(--t-fundo) 70%, transparent); }

/* Utilitários com cor */
.text-muted { color: var(--t-texto) !important; }
.text-primary { color: var(--t-azul) !important; }
.text-success { color: var(--t-verde) !important; }
.text-info { color: var(--t-ciano-h) !important; }
.text-warning { color: var(--t-amarelo-h) !important; }
.text-danger { color: var(--t-vermelho) !important; }
.text-dark { color: var(--t-titulo) !important; }
.text-body, .text-body-emphasis { color: var(--t-titulo) !important; }
.bg-white { background-color: var(--t-superficie) !important; }
.bg-light { background-color: var(--t-superficie-2) !important; }
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--t-linha) !important; }
.border-primary { border-color: var(--t-azul) !important; }
.shadow-sm { box-shadow: var(--t-sombra-sm) !important; }
.shadow { box-shadow: var(--t-sombra) !important; }
.bg-primary:not(.badge) { background-color: var(--t-azul) !important; }
.bg-success:not(.badge) { background-color: var(--t-verde) !important; }
.bg-warning:not(.badge) { background-color: var(--t-amarelo) !important; }
.bg-danger:not(.badge) { background-color: var(--t-vermelho) !important; }
.bg-info:not(.badge) { background-color: var(--t-ciano) !important; }

/* Blocos próprios do gestor que usam fundos claros fixos */
.info-row { border-bottom-color: var(--t-linha); }
.info-label { color: var(--t-texto); } .info-value { color: var(--t-titulo); }
.simulator, .simulator-result { background: var(--t-superficie-2); border-color: var(--t-linha); }
.tipo-toggle label { background: var(--t-superficie); border-color: var(--t-linha); color: var(--t-texto); }
.tipo-toggle input:checked + label { border-color: var(--t-azul); background: var(--t-azul-soft); color: var(--t-azul); }
.msg-preview { background: var(--t-superficie-2); border-color: var(--t-linha); color: var(--t-titulo); }
.msg-marca, .msg-ins { background: var(--t-azul-soft); color: var(--t-azul); border-color: transparent; }
.msg-item { background: var(--t-superficie); }
.ws-foto { background: var(--t-superficie-2); border-color: var(--t-linha); }

/* FullCalendar (dashboard) */
.fc { --fc-border-color: var(--t-linha); --fc-page-bg-color: var(--t-superficie); --fc-neutral-bg-color: var(--t-superficie-2); --fc-today-bg-color: rgba(var(--t-azul-rgb), .07); font-family: var(--t-fonte); color: var(--t-texto); }
.fc .fc-toolbar-title { color: var(--t-titulo); font-weight: 500; }
.fc .fc-button, .fc .fc-button-primary { background: var(--t-superficie); border: 1px solid var(--t-linha-forte); color: var(--t-titulo); text-transform: none; font-weight: 500; box-shadow: none; }
.fc .fc-button:hover { background: var(--t-superficie-2); color: var(--t-azul); border-color: var(--t-linha-forte); }
.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active { background: var(--t-azul); border-color: var(--t-azul); color: #fff; }
.fc-col-header-cell { background: var(--t-superficie-2); }
.fc-col-header-cell-cushion, .fc-daygrid-day-number { color: var(--t-titulo); }

/* ---------- Modo escuro: fundos e textos fixos em HTML antigo ---------- */
html[data-tema="escuro"] .bg-white, html[data-tema="escuro"] .card-header.bg-white { background-color: var(--t-superficie) !important; }
html[data-tema="escuro"] .table-light, html[data-tema="escuro"] .table-light > * > * { --bs-table-bg: var(--t-superficie-2); --bs-table-color: var(--t-titulo); }
html[data-tema="escuro"] [style*="background:#fff"], html[data-tema="escuro"] [style*="background: #fff"], html[data-tema="escuro"] [style*="background:white"], html[data-tema="escuro"] [style*="background-color:#fff"] { background: var(--t-superficie) !important; }
html[data-tema="escuro"] [style*="background:#f8fafc"], html[data-tema="escuro"] [style*="background:#F8FAFC"], html[data-tema="escuro"] [style*="background:#f1f5f9"] { background: var(--t-superficie-2) !important; }
html[data-tema="escuro"] [style*="color:#0f172a"], html[data-tema="escuro"] [style*="color:#1e293b"], html[data-tema="escuro"] [style*="color:#1A2942"], html[data-tema="escuro"] [style*="color:#334155"] { color: var(--t-titulo) !important; }
html[data-tema="escuro"] .text-dark { color: var(--t-titulo) !important; }
html[data-tema="escuro"] .bg-light { background-color: var(--t-superficie-2) !important; }
html[data-tema="escuro"] .sidebar-backdrop { background: rgba(0, 0, 0, .5); }
html[data-tema="escuro"] img:not([src*=".svg"]) { filter: none; }

/* Cartões com gradiente fixo no HTML (dashboard): cores do tema */
.card[style*="#0f172a"] { background: linear-gradient(135deg, var(--t-azul) 0%, var(--t-roxo) 100%) !important; box-shadow: var(--t-sombra); }
html[data-tema="escuro"] .card[style*="#0f172a"] { background: linear-gradient(135deg, #1d4fa8 0%, #4b1f8a 100%) !important; }
.card[style*="#0f172a"] strong, .card[style*="#0f172a"] b { color: #fff; }
.modal-header[style*="#2D7DD2"] { background: var(--t-azul) !important; }
.card[style*="#f8fafc,#e2e8f0"] { background: var(--t-superficie-2) !important; box-shadow: none; border: 1px solid var(--t-linha) !important; }

/* Botão do tema (☀/☾) */
.tema-sol { display: none; }
html[data-tema="escuro"] .tema-lua { display: none; }
html[data-tema="escuro"] .tema-sol { display: inline; }

/* Impressão: sempre claro, sem barra de topo nem menu */
@media print {
    .topnav, .sidebar, .sidebar-backdrop { display: none !important; }
    .app-layout { padding-top: 0; }
    html[data-tema="escuro"] { color-scheme: light; }
}

/* ---------- Calendário único (Dashboard) ---------- */
.cal-filtro { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 10rem; font-size: .75rem; font-weight: 500;
    border: 1px solid var(--t-linha); background: var(--t-superficie); color: var(--t-titulo); cursor: pointer; user-select: none; }
.cal-filtro::before { content: ''; width: .55rem; height: .55rem; border-radius: 50%; background: var(--c, #2D7DD2); }
.cal-filtro[data-cor="#2D7DD2"] { --c: #2D7DD2; } .cal-filtro[data-cor="#f4a100"] { --c: #f4a100; } .cal-filtro[data-cor="#e81500"] { --c: #e81500; }
.cal-filtro[data-cor="#4285f4"] { --c: #4285f4; } .cal-filtro[data-cor="#64748b"] { --c: #64748b; }
.cal-filtro input { position: absolute; opacity: 0; pointer-events: none; }
.cal-filtro.off { opacity: .45; text-decoration: line-through; }
.cal-filtro:has(input:focus-visible) { box-shadow: 0 0 0 .2rem rgba(var(--t-azul-rgb), .25); }
.cal-leg { display: inline-block; width: .7rem; height: .7rem; border-radius: 3px; vertical-align: -1px; margin-right: .2rem; }
.cal-leg-pedido { background: var(--t-superficie); border: 2px dashed #f4a100; }
.cal-leg-bloq { background: repeating-linear-gradient(45deg, #fbd3cf 0 3px, #f3a59b 3px 6px); }
.fc .fc-pedido { --pc: #f4a100; border: 1px dashed var(--pc) !important; border-left-width: 3px !important; background: var(--t-superficie) !important; color: var(--pc) !important; font-weight: 600; }
.fc .fc-pedido-validar { --pc: #e81500; } .fc .fc-pedido-orcamento { --pc: #4a5fd0; } .fc .fc-pedido-confirmada { --pc: #00ac69; }
html[data-tema="escuro"] .fc .fc-pedido { --pc: #ffb627; } html[data-tema="escuro"] .fc .fc-pedido-validar { --pc: #ff7a6b; }
html[data-tema="escuro"] .fc .fc-pedido-orcamento { --pc: #a9b8ff; } html[data-tema="escuro"] .fc .fc-pedido-confirmada { --pc: #4ad79e; }
.fc .fc-pedido .fc-event-title, .fc .fc-pedido .fc-event-time, .fc .fc-pedido .fc-list-event-title a { color: var(--pc) !important; }
.fc .fc-pedido .fc-daygrid-event-dot { border-color: var(--pc) !important; }
.fc .fc-bloqueio { background: repeating-linear-gradient(45deg, #fbd3cf 0 6px, #f6b8b0 6px 12px) !important; }
html[data-tema="escuro"] .fc .fc-bloqueio { background: repeating-linear-gradient(45deg, #3d1a16 0 6px, #52221d 6px 12px) !important; color: #ffc2ba !important; }
html[data-tema="escuro"] .fc .fc-bloqueio .fc-event-title, html[data-tema="escuro"] .fc .fc-bloqueio .fc-event-time { color: #ffc2ba !important; }
.fc .fc-bloqueio .fc-event-title, .fc .fc-bloqueio .fc-event-time { color: #8c0e00; }
.fc .fc-google { opacity: .85; }
.fc a.fc-event { cursor: pointer; }

/* ---------- Definições → Mensagens (situações; email + WhatsApp lado a lado) ---------- */
.msg-app { display: grid; grid-template-columns: 17rem minmax(0, 1fr); overflow: hidden; }
.msg-lista { border-right: 1px solid var(--t-linha); background: var(--t-superficie-2); padding: .5rem 0 1rem; max-height: 80vh; overflow-y: auto; }
.msg-mod { padding: 1rem 1rem .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--t-suave); }
.msg-mod i { margin-right: .2rem; }
.msg-sit { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .5rem; text-align: left; border: 0; background: transparent;
    padding: .55rem 1rem; font-size: .875rem; color: var(--t-forte); border-left: 3px solid transparent; }
.msg-sit:hover { background: var(--t-superficie); color: var(--t-azul); }
.msg-sit.ativo { background: var(--t-superficie); color: var(--t-azul); font-weight: 600; border-left-color: var(--t-azul); }
.msg-sit-can { display: inline-flex; align-items: center; gap: .3rem; flex-shrink: 0; font-size: .8rem; }
.msg-sit-pers { width: .45rem; height: .45rem; border-radius: 50%; background: var(--t-amarelo); }
.msg-detalhe { padding: 1.25rem 1.35rem; min-width: 0; }
.msg-app .msg-item { background: transparent; }
.msg-app .msg-item .msg-form { display: block; }
.msg-canal { border: 1px solid var(--t-linha); border-radius: var(--t-raio); padding: .85rem 1rem 1rem; background: var(--t-superficie); }
.msg-canal-email { border-top: 3px solid var(--t-azul); }
.msg-canal-whatsapp { border-top: 3px solid var(--t-verde); }
.msg-canal-cab { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .75rem; align-items: baseline; font-weight: 600; color: var(--t-titulo); margin-bottom: .5rem; }
.msg-campo-bloco + .msg-campo-bloco { margin-top: .6rem; }
.msg-app .msg-preview { max-height: none; border-radius: var(--t-raio); }
.msg-app .msg-campo { display: none; font-family: var(--t-fonte); }
.msg-app .msg-item.editar .msg-campo { display: block; }
.msg-app .msg-item.editar .msg-preview { display: none; }
.msg-app .msg-item.editar.exemplo .msg-preview { display: block; margin-top: .4rem; border-style: dashed; }
.msg-app .msg-item.editar { border: 0 !important; box-shadow: none; }
.msg-app .msg-so-editar { display: none; }
.msg-app .msg-item.editar .msg-so-editar { display: inline-block; }
.msg-app .msg-item.editar .msg-editar { display: none; }
.msg-app .msg-item.editar .msg-canal { border-color: rgba(var(--t-azul-rgb), .45); }
.msg-marca-erro { background: var(--t-vermelho-soft) !important; color: var(--t-vermelho) !important; }
.msg-ins { cursor: pointer; }
@media (max-width: 991.98px) {
    .msg-app { grid-template-columns: 1fr; }
    .msg-lista { border-right: 0; border-bottom: 1px solid var(--t-linha); max-height: none; }
    .msg-detalhe { padding: 1rem; }
}

/* ---------- Definições por módulos (menu à esquerda) ---------- */
.def-layout { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.def-nav { position: sticky; top: calc(var(--t-topo) + 1rem); background: var(--t-superficie); border: 1px solid rgba(33, 40, 50, .125); border-radius: var(--t-raio);
    box-shadow: var(--t-sombra); padding: .75rem 0 1rem; max-height: calc(100vh - var(--t-topo) - 2rem); overflow-y: auto; }
html[data-tema="escuro"] .def-nav { border-color: var(--t-linha); }
.def-nav .def-search { margin: 0 .75rem .25rem; min-width: 0; flex: none; }
.def-grupo { padding: 1rem 1rem .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--t-suave); }
.def-nav .def-tab, .def-nav .def-link { display: flex; align-items: center; gap: .55rem; width: 100%; text-align: left; white-space: normal; border: 0; border-radius: 0; box-shadow: none;
    background: transparent; padding: .5rem 1rem; font-size: .875rem; font-weight: 400; color: var(--t-forte); text-decoration: none; border-left: 3px solid transparent; }
.def-nav .def-tab i:first-child, .def-nav .def-link i:first-child { color: var(--t-suave); width: 1rem; text-align: center; margin: 0; }
.def-nav .def-link .bi-box-arrow-up-right { margin-left: auto; font-size: .7rem; color: var(--t-suave); }
.def-nav .def-tab:hover, .def-nav .def-link:hover { background: var(--t-superficie-2); color: var(--t-azul); }
.def-nav .def-tab:hover i:first-child, .def-nav .def-link:hover i:first-child { color: var(--t-azul); }
.def-nav .def-tab.ativo { background: rgba(var(--t-azul-rgb), .07); color: var(--t-azul); font-weight: 600; border-left-color: var(--t-azul); box-shadow: none; }
.def-nav .def-tab.ativo i:first-child { color: var(--t-azul); }
.def-conteudo { min-width: 0; }
@media (max-width: 991.98px) {
    .def-layout { grid-template-columns: 1fr; gap: 1rem; }
    .def-nav { position: static; max-height: none; display: flex; flex-wrap: wrap; gap: .35rem; padding: .75rem; }
    .def-nav .def-search { width: 100%; margin: 0 0 .25rem; }
    .def-grupo { width: 100%; padding: .5rem 0 0; }
    .def-nav .def-tab, .def-nav .def-link { width: auto; border: 1px solid var(--t-linha); border-radius: 10rem; padding: .3rem .75rem; font-size: .8rem; }
    .def-nav .def-tab.ativo { background: var(--t-azul); color: #fff; border-color: var(--t-azul); }
    .def-nav .def-tab.ativo i:first-child { color: #fff; }
}
.msg-app .msg-item.editar .msg-campo-bloco { display: flex; flex-direction: column; }
.msg-app .msg-item.editar .msg-campo-bloco .msg-preview { order: 2; }

/* Estado do evento clicável (mudar sem abrir "Editar") */
.ev-estado > .dropdown-toggle { display: inline-flex; align-items: center; gap: .25rem; vertical-align: middle; }
.ev-estado > .dropdown-toggle .badge { font-size: .8rem; padding: .45em .75em; cursor: pointer; }
.ev-estado > .dropdown-toggle::after { color: var(--t-texto); }
.ev-estado > .dropdown-toggle:hover .badge { filter: brightness(.95); box-shadow: 0 0 0 .15rem rgba(var(--t-azul-rgb), .2); }
.ev-estado .dropdown-menu { font-size: .875rem; font-weight: 400; }
.page-title .ev-estado .dropdown-menu i { font-size: .95rem; color: var(--t-suave); width: 1.1rem; }
.page-title .ev-estado .dropdown-item:hover i { color: var(--t-azul); }
.page-title .ev-estado .dropdown-header { font-size: .75rem; }

/* Histórico */
.hist-tabela td { vertical-align: top; }
.hist-tabela tr.hist-imp td:first-child { box-shadow: inset 3px 0 0 var(--t-azul); }
.hist-det { display: grid; grid-template-columns: max-content 1fr; gap: 2px 10px; margin-top: 4px; }
.hist-det dt { font-weight: 600; color: var(--t-texto); } .hist-det dd { margin: 0; word-break: break-word; }
.hist-ficha { max-height: 22rem; overflow-y: auto; }
