/* ════════════════════════════════════════════════════════════════
   CRIMIND ADMIN — Overrides sobre Metronic 8.3.3 (demo2)
   Identidade Crimind (vermelho / tema escuro profundo)
   ════════════════════════════════════════════════════════════════ */

/* ── Tokens de cor Crimind ───────────────────────────────────── */
:root {
  --crim-red:      #E5352A;
  --crim-red-dim:  rgba(229,53,42,.15);
  --crim-red-glow: 0 0 20px rgba(229,53,42,.25);
  --crim-cyan:     #00D4FF;
  --crim-gold:     #F5A623;
  --crim-green:    #00E676;
  --crim-bg-deep:  #07070F;
  --crim-indigo:   #6366f1;

  /* Aliases usados no formulário de criação de caso */
  --c-red:    var(--crim-red);
  --c-cyan:   var(--crim-cyan);
  --c-gold:   var(--crim-gold);
  --c-green:  var(--crim-green);
  --c-indigo: var(--crim-indigo);

  /* ── Tokens de espaçamento ───────────────────────────────── */
  --spacing-xxs: 0.25rem;  /* 4px  */
  --spacing-xs:  0.5rem;   /* 8px  */
  --spacing-sm:  0.75rem;  /* 12px */
  --spacing-md:  1rem;     /* 16px */
  --spacing-lg:  1.5rem;   /* 24px */
  --spacing-xl:  2rem;     /* 32px */
  --spacing-xxl: 3rem;     /* 48px */

  /* ── Tokens de tipografia ────────────────────────────────── */
  --font-size-xs:   0.75rem;   /* 12px — mínimo global */
  --font-size-sm:   0.875rem;  /* 14px */
  --font-size-base: 1rem;      /* 16px */
  --font-size-md:   1.125rem;  /* 18px */
  --font-size-lg:   1.5rem;    /* 24px */
  --font-size-xl:   2rem;      /* 32px */

  --font-weight-regular: 400;
  --font-weight-medium:  600;
  --font-weight-bold:    700;

  /* ── Tokens de sombra ────────────────────────────────────── */
  --shadow-sm:       0 0.125rem 0.25rem rgba(0,0,0,.08);
  --shadow-md:       0 0.25rem  0.5rem  rgba(0,0,0,.12);
  --shadow-lg:       0 0.5rem   1.5rem  rgba(0,0,0,.12);
  --shadow-glow-red: 0 0 20px rgba(229,53,42,.25);
  --shadow-glow-cyan:0 0 20px rgba(0,212,255,.25);

  /* ── Tokens de border-radius ─────────────────────────────── */
  --radius-xs:   3px;
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-pill: 9999px;
}

/* ── Utilitárias inline-styles migration (F8) ────────────────── */
.fase-vermelho { background-color: var(--crim-red-dim);        border-color: var(--crim-red);    border-style: solid; }
.fase-cyan     { background-color: rgba(0,212,255,.1);          border-color: var(--crim-cyan);   border-style: solid; }
.fase-gold     { background-color: rgba(245,166,35,.1);         border-color: var(--crim-gold);   border-style: solid; }
.fase-indigo   { background-color: rgba(99,102,241,.1);         border-color: var(--crim-indigo); border-style: solid; }
.stat-value    { font-size: 1.4rem; font-weight: 700; }
.stat-label    { font-size: 0.75rem; color: var(--bs-secondary); }
.w-52px        { width: 52px !important; }
.w-140px       { width: 140px !important; }
.mh-60px       { max-height: 60px !important; }
.mh-80px       { max-height: 80px; overflow: hidden; }
.mh-180px      { max-height: 180px !important; }
.mh-200px      { max-height: 200px; overflow-y: auto; }
.mh-220px      { min-height: 220px; }
.mh-260px      { max-height: 260px; }
.mh-300px      { min-height: 300px; }
.mh-400px      { max-height: 400px; overflow: auto; }
.h-150px       { height: 150px !important; }
.text-wordbreak { word-break: break-all; }

/* Range input accent-color variants */
.range-accent-orange { accent-color: #FF7043; }
.range-accent-blue   { accent-color: #009ef7; }
.range-accent-purple { accent-color: #7239ea; }

/* Fase barra — cor lateral da barra vertical do header de fase */
.fase-barra-red    { background: var(--c-red,    #E5352A); }
.fase-barra-gold   { background: var(--c-gold,   #F5A623); }
.fase-barra-cyan   { background: var(--c-cyan,   #00D4FF); }
.fase-barra-indigo { background: var(--c-indigo, #6366f1); }
.fase-barra-green  { background: var(--c-green,  #10b981); }
.fase-barra-gray   { background: rgba(255,255,255,.25); }

/* Fase título — cor do texto do header de fase */
.fase-titulo-red    { color: var(--c-red,    #E5352A); }
.fase-titulo-gold   { color: var(--c-gold,   #F5A623); }
.fase-titulo-cyan   { color: var(--c-cyan,   #00D4FF); }
.fase-titulo-indigo { color: var(--c-indigo, #6366f1); }
.fase-titulo-green  { color: var(--c-green,  #10b981); }

/* Fase card border-left */
.fase-card-red    { border-left: 3px solid var(--c-red,    #E5352A) !important; }
.fase-card-gold   { border-left: 3px solid var(--c-gold,   #F5A623) !important; }
.fase-card-cyan   { border-left: 3px solid var(--c-cyan,   #00D4FF) !important; }
.fase-card-indigo { border-left: 3px solid var(--c-indigo, #6366f1) !important; }
.fase-card-green  { border-left: 3px solid var(--c-green,  #10b981) !important; }
.fase-card-gray   { border-left: 3px solid rgba(255,255,255,.12) !important; }

/* Gerador IA card */
.gerador-ia-card  { border: 1px solid rgba(245,166,35,.2) !important; background: rgba(245,166,35,.02) !important; }

/* Sticky header painel */
.sticky-header-painel { position: sticky; top: 0; z-index: 100; }

/* text-prewrap — white-space: pre-line para sinopses e textos com quebras */
.text-prewrap { white-space: pre-line; }

/* text-indigo — cor indigo Crimind */
.text-indigo { color: var(--crim-indigo) !important; }

/* Home dashboard — cards coloridos Metronic */
.card-stat-crimson  { background-color: #F1416C !important; background-image: url('../images/patterns/vector-1.png'); }
.card-stat-violet   { background-color: #7239EA !important; background-image: url('../images/patterns/vector-1.png'); }
.card-stat-blue     { background-color: #009EF7 !important; background-image: url('../images/patterns/vector-1.png'); }
.card-stat-green    { background-color: #50CD89 !important; background-image: url('../images/patterns/vector-1.png'); }
.card-stat-yellow   { background-color: #FFC700 !important; background-image: url('../images/patterns/vector-1.png'); }

/* Modal content dark */
.modal-content-dark { background: var(--bs-body-bg, #1a1a2e) !important; }

/* Login page — app-blank evita header-bg do Metronic em body:not(.app-blank) */
body.app-blank.auth-bg {
  background-color: #0d0d0f !important;
  background-image: none !important;
}
.login-bg         { background: linear-gradient(135deg, #0d0d0f 0%, #1a0a0a 50%, #0d0d0f 100%); }
.login-brand-text { font-size: 3.5rem; letter-spacing: .15em; }
.auth-creative-root { min-height: 100vh; }
.auth-creative-aside { min-height: 100vh; }
@media (min-width: 992px) {
  .auth-creative-aside { min-height: 100vh; }
}

/* Viewport-relative height/max-height */
.mh-78vh { max-height: 78vh; overflow-y: auto; }

/* Sala de crise feeds */
.sc-feed-eventos { height: 420px; overflow-y: auto; padding: 0 1.25rem; }
.sc-feed-quadro  { height: 200px; overflow-y: auto; padding: 0 1.25rem; }

/* planos_config table cells + selects */
.cell-mw-80  { max-width: 80px;  display: inline-block; font-size: 12px; }
.cell-mw-90  { max-width: 90px;  display: inline-block; font-size: 12px; }
.cell-mw-120 { max-width: 120px; display: inline-block; font-size: 11px; }
.cell-mw-160 { max-width: 160px; display: inline-block; font-size: 11px; }

/* planos_config — valor gravado ≠ default (D-052) */
.feat-plano-cell.feat-cell-modified {
    background: rgba(var(--bs-warning-rgb), 0.12);
    border-radius: 0.35rem;
    outline: 1px dashed rgba(var(--bs-warning-rgb), 0.45);
}
.feat-input-json.is-invalid {
    border-color: var(--bs-danger);
}
[data-bs-theme='dark'] .feat-plano-cell.feat-cell-modified {
    background: rgba(var(--bs-warning-rgb), 0.18);
}

/* Avatar placeholder gradient */
.avatar-placeholder      { background: linear-gradient(135deg, #78909C, #546E7A); }
.avatar-placeholder-sm   { width: 52px; height: 52px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(135deg, #78909C, #546E7A); }
.avatar-placeholder-lg   { width: 100px; height: 100px; border-radius: 14px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(135deg, #78909C, #546E7A); }
.avatar-placeholder-md   { width: 90px; height: 90px; border-radius: 14px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(135deg, #78909C, #546E7A); }

/* Form selects with fixed width */
.select-w-100    { width: 100px; }
.select-w-160    { width: 160px; }
.select-mw-140   { max-width: 140px; }
.select-minw-320 { min-width: 320px; }

/* Canvas chart height */
.h-250px { height: 250px; }

/* Inline val display */
.val-minw { min-width: 2rem; text-align: right; }

/* Textarea resize */
.textarea-resize { min-height: 38px; resize: vertical; }

/* Personagem profile width constraints */
.mw-46rem { max-width: 46rem; }
.minw-160px { min-width: 160px; }

/* Storage td column */
.mw-280px { max-width: 280px; }

/* Icon circle gold */
.icon-circle-gold { width: 32px; height: 32px; background: rgba(245,166,35,.12); }

/* Custom select style for readonly persona editor textarea */
.textarea-persona { border-color: rgba(255,255,255,.1); resize: vertical; font-size: .8rem; }

/* Pipeline peso bar */
.barra-pesos-bg { height: 8px; background: #f1f1f1; }

/* Agentes resultado pre */
.pre-resultado { max-height: min(60vh, 800px); }

/* ── F8 utility classes — replaces static inline styles ────────────────── */
/* Table column fixed widths */
.th-w-55  { width: 55px }
.th-w-60  { width: 60px }
.th-w-70  { width: 70px }
.th-w-80  { width: 80px }
.th-w-90  { width: 90px }
.th-w-100 { width: 100px }
.th-w-110 { width: 110px }
.th-w-140 { width: 140px }
.th-w-160 { width: 160px }
.th-w-210 { width: 210px }
/* Image preview — visibilidade via .d-none (igual ao avatar do hero) */
.img-preview     { width: 100%; height: 100%; object-fit: cover }
.img-preview-r14 { width: 100%; height: 100%; object-fit: cover; border-radius: 14px }
.img-preview.d-none,
.img-preview-r14.d-none { display: none !important; }
/* Avatar fixed sizes */
.img-cover-80 { width: 80px; height: 80px; object-fit: cover }
.img-cover-90 { width: 90px; height: 90px; object-fit: cover; border-radius: 14px }
/* Misc layout */
.mw-180px   { max-width: 180px }
.mw-200px   { max-width: 200px }
.mw-250px   { max-width: 250px }
.mw-1100px  { max-width: 1100px }
.mw-58pct   { max-width: 58% }
.w-45r      { width: 4.5rem }
.minw-22px  { min-width: 22px; text-align: center }
.minw-24px  { min-width: 24px }
.h-150px    { height: 150px }
.minh-220px { min-height: 220px }
/* Color dot indicator */
.dot-6px  { width: 6px;  height: 6px;  border-radius: 50%; display: inline-block }
.dot-14px { width: 14px; height: 14px; border-radius: 50%; display: inline-block }
.dot-16px { width: 16px; height: 16px; border-radius: 50%; display: inline-block }
/* Border accent variants */
.border-l-cyan   { border-left: 3px solid var(--c-cyan, #00D4FF) }
.border-l-red    { border-left: 3px solid var(--c-red, #E5352A) }
.border-l-gold   { border-left: 3px solid var(--c-gold, #F5A623) }
.border-l-indigo { border-left: 3px solid var(--c-indigo, #6366f1) }
.border-l-dim    { border-left: 3px solid rgba(255,255,255,.12) }
/* Text color aliases */
.text-gold   { color: var(--c-gold, #F5A623) }
.text-cyan   { color: var(--c-cyan, #00D4FF) }
.text-indigo { color: var(--c-indigo, #6366f1) }
/* Dark terminal card */
.card-terminal { background: #1A1A2E; color: #CFD8DC; border-color: rgba(255,255,255,.1) }
/* Range input accent */
.accent-orange { accent-color: #FF7043 }
/* Word break */
.word-break-all { word-break: break-all }
/* Flex utility */
.flex-shrink-0-inline { flex-shrink: 0 }
/* Pipeline step icon */
.pipeline-step-w { width: 28px; text-align: center }
/* Agente card preview (configuracoes_pipeline) */
.agente-preview-box { width: 210px; min-height: 200px }
.pipeline-card.agente-preview-box { min-height: 200px }

/* ── Palette overrides — alinha cores semânticas Bootstrap com o tema noir ── */
:root[data-bs-theme="dark"] {
  --bs-success:      var(--crim-green);
  --bs-danger:       var(--crim-red);
  --bs-warning:      var(--crim-gold);
  --bs-info:         var(--crim-cyan);
  --bs-success-rgb:  0,230,118;
  --bs-danger-rgb:   229,53,42;
}

/* ── Scrollbar fina ──────────────────────────────────────────── */
::-webkit-scrollbar        { width:5px; height:5px; }
::-webkit-scrollbar-track  { background:transparent; }
::-webkit-scrollbar-thumb  { background:rgba(229,53,42,.35); border-radius:var(--radius-xs); }
::-webkit-scrollbar-thumb:hover { background:var(--crim-red); }

/* ── Logo ────────────────────────────────────────────────────── */
.crimind-logo-text { font-size:1.4rem; letter-spacing:.12em; font-weight:800; }
[data-bs-theme="dark"] .crimind-logo-text.text-gray-900 { color:var(--bs-gray-100) !important; }

/* Barra de menus principal (#kt_header): ícones e títulos claros (só primeiro nível — mega painéis mantêm cores Metronic) */
#kt_header #kt_header_menu > .menu-item > .menu-link .menu-icon i.ki-duotone,
#kt_header #kt_header_menu > .menu-item > .menu-link .menu-icon i {
  color: #fff !important;
}
#kt_header #kt_header_menu > .menu-item > .menu-link > .menu-title {
  color: rgba(255, 255, 255, 0.92) !important;
}
#kt_header #kt_header_menu > .menu-item > .menu-link .menu-arrow:after {
  background-color: rgba(255, 255, 255, 0.78) !important;
}

/* ── Botão primário → vermelho Crimind ──────────────────────── */
.btn-primary, .btn-danger {
  --bs-btn-bg:                var(--crim-red);
  --bs-btn-border-color:      var(--crim-red);
  --bs-btn-hover-bg:          #c72d23;
  --bs-btn-hover-border-color:#c72d23;
  --bs-btn-active-bg:         #a82620;
}
.btn-light-danger,
.btn-active-color-danger:active,
.btn-active-color-danger:hover { color:var(--crim-red) !important; }

/* ── Formulário criar caso — separadores de fase ─────────────── */
#formGerarIA .fase-header {
  padding: .75rem 1rem;
  border-radius: .5rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  margin-top: 2.5rem !important;
  margin-bottom: 1.25rem !important;
}
#formGerarIA .fase-header:first-of-type { margin-top: .5rem !important; }
#formGerarIA .fase-header .fase-barra { width: 5px; height: 36px; border-radius: 3px; }
#formGerarIA .fase-header .fase-titulo { font-size: 1.1rem; letter-spacing: .02em; }

/* ── Botões de fase — cores alinhadas com as variáveis Crimind ── */
.btn-fase-red    { color:var(--c-red,#E5352A)    !important; background:rgba(229,53,42,.12)  !important; border:1px solid rgba(229,53,42,.25)  !important; }
.btn-fase-red:hover    { background:rgba(229,53,42,.22)  !important; }
.btn-fase-gold   { color:var(--c-gold,#F5A623)   !important; background:rgba(245,166,35,.12) !important; border:1px solid rgba(245,166,35,.25) !important; }
.btn-fase-gold:hover   { background:rgba(245,166,35,.22) !important; }
.btn-fase-cyan   { color:var(--c-cyan,#00D4FF)   !important; background:rgba(0,212,255,.10)  !important; border:1px solid rgba(0,212,255,.25)  !important; }
.btn-fase-cyan:hover   { background:rgba(0,212,255,.20)  !important; }
.btn-fase-indigo { color:var(--c-indigo,#6366f1)  !important; background:rgba(99,102,241,.12) !important; border:1px solid rgba(99,102,241,.25) !important; }
.btn-fase-indigo:hover { background:rgba(99,102,241,.22) !important; }
.btn-fase-gray   { color:var(--bs-gray-500,#78829D) !important; background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.10) !important; }
.btn-fase-gray:hover   { background:rgba(255,255,255,.12) !important; }
.btn-fase-green  { color:var(--c-green,#10b981)   !important; background:rgba(16,185,129,.12) !important; border:1px solid rgba(16,185,129,.25) !important; }
.btn-fase-green:hover  { background:rgba(16,185,129,.22) !important; }

/* Badges de seção — mesma lógica das fases */
.badge-fase-red    { color:var(--c-red,#E5352A)    !important; background:rgba(229,53,42,.15)  !important; }
.badge-fase-gold   { color:var(--c-gold,#F5A623)   !important; background:rgba(245,166,35,.15) !important; }
.badge-fase-cyan   { color:var(--c-cyan,#00D4FF)   !important; background:rgba(0,212,255,.12)  !important; }
.badge-fase-indigo { color:var(--c-indigo,#6366f1)  !important; background:rgba(99,102,241,.15) !important; }
.badge-fase-gray   { color:var(--bs-gray-500,#78829D) !important; background:rgba(255,255,255,.08) !important; }
.badge-fase-green  { color:var(--c-green,#10b981)   !important; background:rgba(16,185,129,.15) !important; }

/* ── Perfis Rápidos — Gerador IA ────────────────────────────── */
.perfil-dif-btn { transition: background .15s, border-color .15s; cursor: pointer; }
.perfil-dif-btn:hover { background: rgba(255,255,255,.07) !important; }
.perfil-dif-btn .fw-semibold { color: rgba(255,255,255,.85); }

/* Modo fictício/real cards */
.perfil-modo-card {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.perfil-modo-card:hover {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.15);
}
.perfil-modo-card.active {
    border-color: var(--c-gold,#F5A623);
    background: rgba(245,166,35,.08);
    box-shadow: 0 0 0 1px rgba(245,166,35,.25);
}
.perfil-modo-card.active i { color: var(--c-gold,#F5A623) !important; }

/* Scrollbar da lista de dificuldades */
#listaPerfisRapidos::-webkit-scrollbar { width: 4px; }
#listaPerfisRapidos::-webkit-scrollbar-track { background: transparent; }
#listaPerfisRapidos::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 4px; }
#listaPerfisRapidos::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.2); }

/* ── Formulário criar caso — seção colapsada ─────────────────── */
#formGerarIA .form-secao-bloco.secao-collapsed > .card-header {
  padding-bottom: 1.25rem;
  border-bottom: none;
}

/* ── Cards dark ──────────────────────────────────────────────── */
[data-bs-theme="dark"] .card { border-color:rgba(255,255,255,.07); }
[data-bs-theme="dark"] .card-header { border-bottom-color:rgba(255,255,255,.06); }

/* ── GrowlNotification (plugins/growl-notification/colored-theme.min.css) ──
   No dark mode, o fundo #fff e o texto herdado do body geram baixo contraste.
   Reforçamos com variáveis Bootstrap / tons do tema — sem segundo ficheiro CSS. */
[data-bs-theme="dark"] .growl-notification {
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.55) !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
[data-bs-theme="dark"] .growl-notification__title,
[data-bs-theme="dark"] .growl-notification__desc {
  color: #fff !important;
}
[data-bs-theme="dark"] .growl-notification--default {
  background: var(--bs-gray-900, #1e1e2d) !important;
  border-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .growl-notification--default .growl-notification__title,
[data-bs-theme="dark"] .growl-notification--default .growl-notification__desc {
  color: var(--bs-gray-100, #f5f8fa) !important;
}
[data-bs-theme="dark"] .growl-notification--default:before {
  background: var(--bs-gray-500, #6c757d) !important;
}
[data-bs-theme="dark"] .growl-notification--default .growl-notification__close-icon {
  filter: invert(1) brightness(1.1);
  opacity: 0.85;
}
[data-bs-theme="dark"] .growl-notification--success {
  background: #0d9f6a !important;
}
[data-bs-theme="dark"] .growl-notification--info {
  background: #0095e8 !important;
}
[data-bs-theme="dark"] .growl-notification--warning {
  background: #e8cc00 !important;
}
[data-bs-theme="dark"] .growl-notification--warning .growl-notification__title,
[data-bs-theme="dark"] .growl-notification--warning .growl-notification__desc {
  color: #1a1a1a !important;
}
[data-bs-theme="dark"] .growl-notification--danger,
[data-bs-theme="dark"] .growl-notification--error {
  background: #e04a2b !important;
}
[data-bs-theme="dark"] .growl-notification__buttons {
  border-top-color: rgba(255, 255, 255, 0.12) !important;
}
[data-bs-theme="dark"] .growl-notification__button:hover {
  background: rgba(255, 255, 255, 0.08) !important;
}

/* ── Menu active color: vermelho Crimind ─────────────────────── */
.menu-state-primary .menu-item .menu-link.active,
.menu-state-primary .menu-item.show>.menu-link,
.menu-state-primary .menu-item.here>.menu-link,
.menu-active-bg .menu-item .menu-link.active,
.menu-here-bg.menu-item>.menu-link { color:var(--crim-red) !important; }

/* ── Symbol label (iniciais usuário) ─────────────────────────── */
.symbol-label.bg-danger {
  background-color:var(--crim-red) !important;
  font-size:.875rem; font-weight:700;
}

/* ── Bullet dot notificação ──────────────────────────────────── */
.bullet-dot.bg-danger { background-color:var(--crim-red) !important; }

/* ── Indicadores de loading (Metronic pattern) ───────────────── */
[data-kt-indicator="on"] .indicator-label   { display:none; }
[data-kt-indicator="on"] .indicator-progress{ display:inline-flex !important; }
.indicator-progress { display:none; align-items:center; gap:.5rem; }

/* ── Body dark bg (--crim-bg-deep sobrepõe Bootstrap gray-900) ── */
[data-bs-theme="dark"] body { background-color: var(--crim-bg-deep) !important; }

/* ── Chart.js colors no dark mode ───────────────────────────── */
/* Definidos via JS no crimind.js */

/* ════════════════════════════════════════════════════════════════
   COMPONENTES DE PÁGINA — mapeados para Metronic
   Usados pelas páginas internas para manter consistência
   ════════════════════════════════════════════════════════════════ */

/* ── Badge chips (semânticos) ────────────────────────────────── */
.chip {
  display:inline-flex; align-items:center;
  padding:var(--spacing-xxs) var(--spacing-sm); border-radius:var(--radius-pill);
  font-size:var(--font-size-xs); font-weight:var(--font-weight-medium);
}
.chip-red    { background:rgba(229,53,42,.15);   color:#E5352A; }
.chip-cyan   { background:rgba(0,212,255,.1);    color:#00D4FF; }
.chip-gold   { background:rgba(245,166,35,.12);  color:#F5A623; }
.chip-green  { background:rgba(0,230,118,.12);   color:#00E676; }
.chip-gray   { background:rgba(255,255,255,.07); color:#888;    }
.chip-purple { background:rgba(156,39,176,.15);  color:#CE93D8; }

/* ── Trend ───────────────────────────────────────────────────── */
.trend-up   { color:#00E676; }
.trend-down { color:#E5352A; }

/* ════════════════════════════════════════════════════════════════
   COMPATIBILIDADE LEGACY — Páginas de detalhe
   Mapeiam as classes antigas para equivalentes Metronic.
   Remover conforme as páginas forem migradas.
   ════════════════════════════════════════════════════════════════ */

/* Tabela legada → usa classes Bootstrap padrão */
.c-table { width:100%; border-collapse:collapse; }
.c-table thead th {
  padding:.5rem .75rem; font-size:var(--font-size-xs); font-weight:600;
  text-transform:uppercase; letter-spacing:.07em;
  opacity:.5; border-bottom:1px solid var(--bs-border-color);
}
.c-table tbody td { padding:.55rem .75rem; border-bottom:1px solid var(--bs-border-color); vertical-align:middle; }
.c-table tbody tr:hover { background:rgba(229,53,42,.04); }
.table-wrap { overflow-x:auto; }

/* Page title area legado (escondido — toolbar já mostra o título) */
.page-title-area,
.page-eyebrow { display:none !important; }
.page-actions  { display:none !important; }

/* Stat grid / stat card legado → card simples */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1rem; margin-bottom:1.5rem; }
.stat-card {
  position:relative; background:var(--bs-card-bg,#fff);
  border:1px solid var(--bs-border-color); border-radius:.625rem;
  padding:1rem 1.25rem; overflow:hidden;
}
[data-bs-theme="dark"] .stat-card { background:rgba(255,255,255,.04); }
.stat-label  { font-size:var(--font-size-xs); font-weight:600; letter-spacing:.08em; text-transform:uppercase; opacity:.5; margin-bottom:.35rem; }
.stat-value  { font-size:1.8rem; font-weight:700; line-height:1; }
.stat-sub    { font-size:var(--font-size-xs); opacity:.55; margin-top:.25rem; }
.stat-icon   { position:absolute; right:1rem; top:50%; transform:translateY(-50%); font-size:2rem; opacity:.1; }
.stat-card.cyan   { border-left:3px solid #00D4FF; }
.stat-card.gold   { border-left:3px solid #F5A623; }
.stat-card.green  { border-left:3px solid #00E676; }
.stat-card.purple { border-left:3px solid #9C27B0; }

/* Empty state legado */
.empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2.5rem 1rem; gap:.5rem; text-align:center; }
.empty-icon  { font-size:2.5rem; opacity:.35; }
.empty-title { font-size:.85rem; font-weight:600; opacity:.5; }
.empty-sub   { font-size:.75rem; opacity:.4; }

/* Filters bar legado */
.filters-bar { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; padding:.75rem 0; margin-bottom:1rem; }
.filters-bar .form-control { max-width:200px; }

/* Modal overlay legado → Bootstrap-like */
.modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  z-index:1055; display:none; align-items:center; justify-content:center;
}
.modal-overlay[style*="display:flex"],
.modal-overlay[style*="display: flex"] { display:flex !important; }
.modal-box  {
  background:var(--bs-body-bg,#fff);
  border:1px solid var(--bs-border-color);
  border-radius:.75rem;
  width:min(580px, 95vw);
  max-height:90vh; overflow-y:auto;
}
.modal-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.5rem; border-bottom:1px solid var(--bs-border-color);
}
.modal-title   { font-weight:700; font-size:1rem; }
.modal-body    { padding:1.25rem 1.5rem; }
.modal-footer  { display:flex; justify-content:flex-end; gap:.5rem; padding:1rem 1.5rem; border-top:1px solid var(--bs-border-color); }

/* AI Status bar */
/* ── IA Provider status dots ─────────────────────────────────── */
.dot-ok   { width:6px;height:6px;border-radius:50%;background:#00E676;box-shadow:0 0 6px #00E676;display:inline-block; }
.dot-warning { width:6px;height:6px;border-radius:50%;background:#FFC107;box-shadow:0 0 6px #FFC107;display:inline-block; }
.dot-warn { width:6px;height:6px;border-radius:50%;background:#F5A623;box-shadow:0 0 6px #F5A623;display:inline-block; }
.dot-err  { width:6px;height:6px;border-radius:50%;background:#E5352A;box-shadow:0 0 6px #E5352A;display:inline-block; }
/* Barra de status IA — compatível light/dark (evitar bg fixo tipo bg-dark) */
.ai-status-bar {
  display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap;
  padding:.6rem 1rem;
  background:var(--bs-secondary-bg, #f5f8fa);
  border:1px solid var(--bs-border-color);
  border-radius:8px; margin-bottom:1.25rem; font-size:.72rem;
}
[data-bs-theme="dark"] .ai-status-bar {
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.1);
}
.ai-provider { display:flex; align-items:center; gap:.4rem; color:var(--bs-secondary-color); }

/* Página Agentes — faixa “Providers” (card) */
.crimind-provider-bar {
  background:var(--bs-card-bg, #fff) !important;
  border:1px dashed var(--bs-border-color) !important;
}
[data-bs-theme="dark"] .crimind-provider-bar {
  background:rgba(255,255,255,.04) !important;
  border-color:rgba(255,255,255,.12) !important;
}

/* ── Progress bar simples ────────────────────────────────────── */
.progress-bar-wrap  { height:6px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden; }
.progress-bar-fill  { height:100%;background:var(--fill-color,#E5352A);border-radius:3px;transition:width .4s; }

/* ════════════════════════════════════════════════════════════════
   DATATABLES — Integração com Metronic Bootstrap 5
   ════════════════════════════════════════════════════════════════ */

/* Wrapper ocupa todo o espaço */
.dataTables_wrapper { width:100%; }

/* Barra de controle (length + search) */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border-radius:6px;
  min-height:38px;
}

/* Paginação Bootstrap 5 nativo */
.dataTables_wrapper .dataTables_paginate .paginate_button {
  border-radius:6px !important;
  padding:6px 12px !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background:var(--crim-red) !important;
  border-color:var(--crim-red) !important;
  color:#fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background:var(--crim-red-dim) !important;
  border-color:transparent !important;
  color:var(--crim-red) !important;
}

/* Sorting cabeçalho */
table.dataTable thead .sorting::before,
table.dataTable thead .sorting_asc::before,
table.dataTable thead .sorting_desc::before,
table.dataTable thead .sorting::after,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after { font-size:.7em; opacity:.55; }

/* Processing overlay */
div.dataTables_processing {
  background:rgba(0,0,0,.5) !important;
  color:#fff !important;
  border-radius:8px !important;
  padding:1rem 2rem !important;
  border:none !important;
  box-shadow:none !important;
}

/* Hover nas linhas */
table.dataTable tbody tr:hover td { background:rgba(229,53,42,.04) !important; }

/* ── Criar caso — textareas em linha única (largura total) + cartões de ferramentas ── */
.caso-form-textarea {
  width: 100%;
  min-height: 2.75rem;
  resize: vertical;
}
.interact-card,
.transmidia-canal-card {
  background-color: var(--bs-body-bg);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.interact-card:hover,
.transmidia-canal-card:hover {
  border-color: rgba(229, 53, 42, 0.35) !important;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.04);
}
.interact-card .interact-desc {
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* ── Painel — respiro entre blocos (cartões) Mar/2026 ──
   Conteúdo da página vive em #kt_content_inner (htmlBase.php). */
#kt_content_inner .card.painel-card-stack {
  margin-bottom: 1.75rem !important;
}
@media (max-width: 991.98px) {
  #kt_content_inner .card.painel-card-stack {
    margin-bottom: 1.75rem !important;
  }
}
.score-weights-panel .inp-peso-score {
  max-width: 5rem;
}
.form-label.lh-sm {
  line-height: 1.25;
}

/* ════════════════════════════════════════════════════════════════
   FORMULÁRIOS — Metronic overrides + Select2 + Checkboxes
   ════════════════════════════════════════════════════════════════ */

/* ── Select2 — dark mode e integração Bootstrap 5 ──────────── */
/* Stack: header fixo (97) < mega menu (#kt_header .menu-sub-* 1100) < modal (1055+).
   Antes: container a 1025 e --open a 10560 faziam o widget ficar POR CIMA do header e mega menu (107).
   Container fechado: z-index normal; o clique na .select2-selection não precisa de 1025 global. */
.select2-container {
  display: block;
  position: relative;
  z-index: auto;
}
.select2-container .select2-selection {
  min-height: 38px;
  pointer-events: auto;
  cursor: pointer;
}

/* Lista do Select2 (plugins.bundle usa 1051 no .select2-dropdown): na página fica abaixo dos mega menus. */
body:not(.modal-open) .select2-container--bootstrap5 .select2-dropdown {
  z-index: 1040 !important;
}

/* Mega menus do header: acima do dropdown do Select2 na área de conteúdo */
#kt_header .menu-sub-dropdown,
#kt_header .menu-sub-lg-dropdown {
  z-index: 1100 !important;
}

/* Alinhamento com form-control / form-select padrão */
.select2-container--bootstrap5 .select2-selection--single {
  height:38px;
  padding:.375rem .75rem;
  line-height:1.5;
}
.select2-container--bootstrap5 .select2-selection--single .select2-selection__rendered {
  line-height:1.5;
  padding:0;
  color:inherit;
}
.select2-container--bootstrap5 .select2-selection--single .select2-selection__arrow {
  height:38px;
}

/* form-select-sm equivalente para Select2 */
.select2--small .select2-selection--single,
.select2-container--bootstrap5.select2--small .select2-selection--single {
  height:calc(1.5em + .5rem + 2px) !important;
  padding:.25rem .5rem !important;
  font-size:.875rem !important;
  border-radius:.425rem !important;
}
.select2--small .select2-selection--single .select2-selection__rendered {
  line-height:1.5 !important;
}
.select2--small .select2-selection--single .select2-selection__arrow {
  height:calc(1.5em + .5rem + 2px) !important;
}

/* Select2 dark mode */
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection {
  background-color:var(--bs-body-bg);
  border-color:var(--bs-border-color);
  color:var(--bs-body-color);
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown {
  background-color:#1e1e2d;
  border-color:rgba(255,255,255,.12);
  color:var(--bs-body-color);
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-search__field {
  background-color:#2a2a3b;
  border-color:rgba(255,255,255,.1);
  color:var(--bs-body-color);
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-results__option {
  color:var(--bs-body-color);
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-results__option--highlighted {
  background-color:var(--crim-red-dim) !important;
  color:var(--crim-red) !important;
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-results__option--selected {
  background-color:rgba(229,53,42,.2);
  color:var(--crim-red);
}
/* Separador de grupo */
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-results__group {
  color:rgba(255,255,255,.4);
  font-size:.7rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  padding:.4rem .75rem .2rem;
}
/* Foco */
.select2-container--bootstrap5.select2-container--focus .select2-selection,
.select2-container--bootstrap5.select2-container--open .select2-selection {
  border-color:var(--crim-red) !important;
  box-shadow:0 0 0 .2rem rgba(229,53,42,.15) !important;
}

/* ── Checkboxes e Radios — Metronic form-check-custom ───────── */
/* Garantir que checkboxes customizados tenham tamanho correto */
.form-check-custom .form-check-input {
  flex-shrink:0;
}
.form-check-custom.form-check-sm .form-check-input {
  width:1.25rem;
  height:1.25rem;
  margin-top:0;
}
.form-check-custom.form-check-lg .form-check-input {
  width:1.75rem;
  height:1.75rem;
}
/* Sólido (fundo preenchido quando marcado) */
.form-check-solid .form-check-input {
  background-color:var(--bs-gray-200);
  border:0;
}
.form-check-solid .form-check-input:checked {
  background-color:var(--bs-primary);
}
[data-bs-theme="dark"] .form-check-solid .form-check-input {
  background-color:rgba(255,255,255,.07);
}
[data-bs-theme="dark"] .form-check-input {
  background-color:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.15);
}
[data-bs-theme="dark"] .form-check-input:checked {
  background-color:var(--crim-red);
  border-color:var(--crim-red);
}
[data-bs-theme="dark"] .form-check-input:focus {
  box-shadow:0 0 0 .2rem rgba(229,53,42,.2);
  border-color:var(--crim-red);
}
/* Label do checkbox no dark mode */
[data-bs-theme="dark"] .form-check-label {
  color:var(--bs-body-color);
}

/* ── Inputs e Selects dark mode ──────────────────────────────── */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color:var(--bs-body-bg);
  border-color:rgba(255,255,255,.1);
  color:var(--bs-body-color);
}
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  border-color:var(--crim-red);
  box-shadow:0 0 0 .2rem rgba(229,53,42,.15);
}
[data-bs-theme="dark"] .form-control::placeholder {
  color:rgba(255,255,255,.25);
}
[data-bs-theme="dark"] .input-group-text {
  background-color:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.1);
  color:rgba(255,255,255,.4);
}

/* ── Range input (sliders em config) ─────────────────────────── */
[data-bs-theme="dark"] .form-range::-webkit-slider-thumb {
  background:var(--crim-red);
}
[data-bs-theme="dark"] .form-range::-webkit-slider-runnable-track {
  background:rgba(255,255,255,.1);
}
.form-range { cursor:pointer; }

/* ── Labels ──────────────────────────────────────────────────── */
.form-label.required::after {
  content:" *";
  color:var(--crim-red);
}

/* ── Fieldset / separator visual ─────────────────────────────── */
.form-section-title {
  font-size:var(--font-size-xs); font-weight:var(--font-weight-bold); letter-spacing:.1em;
  text-transform:uppercase; opacity:.5;
  margin-bottom:.75rem; padding-bottom:.4rem;
  border-bottom:1px solid var(--bs-border-color);
}

/* ── Notice / callout ────────────────────────────────────────── */
.notice.bg-light-info    { background:rgba(0,212,255,.06) !important; }
.notice.bg-light-warning { background:rgba(245,166,35,.08) !important; }
.notice.bg-light-success { background:rgba(0,230,118,.07) !important; }
.notice.bg-light-danger  { background:rgba(229,53,42,.07)  !important; }

/* ════════════════════════════════════════════════════════════════
   BADGES DE STATUS (Caso / Jogador / IA)
   ════════════════════════════════════════════════════════════════ */
.badge-crim-revisao  { background:rgba(245,166,35,.15); color:#F5A623; }
.badge-crim-ativo    { background:rgba(0,230,118,.12);  color:#00E676; }
.badge-crim-inativo  { background:rgba(255,255,255,.07);color:#888;    }
.badge-crim-banido   { background:rgba(229,53,42,.15);  color:#E5352A; }
.badge-crim-rascunho { background:rgba(0,212,255,.1);   color:#00D4FF; }

/* ════════════════════════════════════════════════════════════════
   NAV TABS — espaçamento nas páginas internas
   ════════════════════════════════════════════════════════════════ */
.nav-line-tabs.nav-line-tabs-2x .nav-link { padding-bottom:1rem; }
.nav-tabs.nav-line-tabs .nav-link.active  { color:var(--crim-red); }
.nav-tabs.nav-line-tabs .nav-link:hover   { color:var(--crim-red); }
.nav-tabs.nav-line-tabs .nav-item.show .nav-link,
.nav-tabs.nav-line-tabs .nav-link.active {
  border-bottom:2px solid var(--crim-red) !important;
}

/* Catálogo Criar caso — recolher tabela de opções por campo */
.cfc-campo-toggle.collapsed .ki-down {
  transform: rotate(-90deg);
}
.cfc-campo-toggle .ki-down {
  transition: transform 0.2s ease;
  display: inline-block;
}
.cfc-sec-toolbar .btn-icon {
  min-width: 2.25rem;
}

/* ════════════════════════════════════════════════════════════════
   HEADER — mega menus (Metronic: Dashboard / Pages)
   ════════════════════════════════════════════════════════════════ */
#kt_header .menu-sub-lg-dropdown.crimind-mega-panel {
  border-radius: 0.75rem;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--bs-border-color);
  overflow: hidden;
  background: var(--bs-body-bg);
}
[data-bs-theme="dark"] #kt_header .menu-sub-lg-dropdown.crimind-mega-panel {
  box-shadow: 0 0.5rem 1.75rem rgba(0, 0, 0, 0.45);
}
#kt_header .crimind-mega-rail {
  background: var(--bs-gray-100);
  min-width: 220px;
}
[data-bs-theme="dark"] #kt_header .crimind-mega-rail {
  background: rgba(255, 255, 255, 0.04);
}
#kt_header .crimind-mega-panel .menu-link.rounded-2:hover,
#kt_header .crimind-mega-panel .menu-link.rounded-3:hover {
  background-color: var(--bs-gray-100);
}
[data-bs-theme="dark"] #kt_header .crimind-mega-panel .menu-link.rounded-2:hover,
[data-bs-theme="dark"] #kt_header .crimind-mega-panel .menu-link.rounded-3:hover {
  background-color: rgba(255, 255, 255, 0.06);
}
@media (min-width: 992px) {
  #kt_header .crimind-mega-col-divider:not(:last-child) {
    border-inline-end: 1px solid var(--bs-border-color);
  }
}
@media (max-width: 991.98px) {
  #kt_header .crimind-mega-col-divider:not(:last-child) {
    border-bottom: 1px solid var(--bs-border-color);
  }
}

/* Mega Dashboard — coluna "More" (Metronic .menu-more.bg-light) */
#kt_header .menu-sub-lg-dropdown .menu-more.bg-light {
  border-left: 1px solid var(--bs-border-color);
}
[data-bs-theme="dark"] #kt_header .menu-sub-lg-dropdown .menu-more.bg-light {
  background-color: rgba(255, 255, 255, 0.04) !important;
  border-left-color: var(--bs-border-color);
}

/* ── SweetAlert2 dark mode ────────────────────────────────── */
[data-bs-theme="dark"] .swal2-popup {
  background: #1e1e2d !important;
  color: #cdcdde !important;
}
[data-bs-theme="dark"] .swal2-title {
  color: #cdcdde !important;
}
[data-bs-theme="dark"] .swal2-html-container {
  color: #92929f !important;
}
[data-bs-theme="dark"] .swal2-timer-progress-bar {
  background: rgba(255,255,255,0.2);
}
[data-bs-theme="dark"] .colored-toast {
  background: #1e1e2d !important;
  color: #cdcdde !important;
}
[data-bs-theme="dark"] .colored-toast .swal2-title {
  color: #ffffff !important;
}
[data-bs-theme="dark"] .swal2-icon.swal2-success [class^=swal2-success-line] {
  background-color: #50cd89 !important;
}
[data-bs-theme="dark"] .swal2-icon.swal2-success .swal2-success-ring {
  border-color: rgba(80,205,137,0.3) !important;
}
[data-bs-theme="dark"] .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
  background-color: #f1416c !important;
}

/* ── Bootstrap alerts + GrowlNotification dark mode ───────── */
[data-bs-theme="dark"] .alert {
  border-color: rgba(255,255,255,0.1) !important;
}
[data-bs-theme="dark"] .alert-success {
  background-color: rgba(80,205,137,0.15) !important;
  color: #50cd89 !important;
}
[data-bs-theme="dark"] .alert-danger {
  background-color: rgba(241,65,108,0.15) !important;
  color: #f1416c !important;
}
[data-bs-theme="dark"] .alert-warning {
  background-color: rgba(255,199,0,0.15) !important;
  color: #ffc700 !important;
}
[data-bs-theme="dark"] .alert-info {
  background-color: rgba(0,158,247,0.15) !important;
  color: #009ef7 !important;
}
[data-bs-theme="dark"] .alert-primary {
  background-color: rgba(0,158,247,0.15) !important;
  color: #009ef7 !important;
}
[data-bs-theme="dark"] .alert-secondary,
[data-bs-theme="dark"] .alert-light {
  background-color: rgba(255,255,255,0.08) !important;
  color: #92929f !important;
}

/* ── GrowlNotification dark mode ──────────────────────────── */
[data-bs-theme="dark"] .growl-notification {
  background: #1e1e2d !important;
  color: #cdcdde !important;
  border-color: rgba(255,255,255,0.08) !important;
}
[data-bs-theme="dark"] .growl-notification.alert-success {
  background-color: rgba(80,205,137,0.15) !important;
  color: #50cd89 !important;
  border-color: rgba(80,205,137,0.3) !important;
}
[data-bs-theme="dark"] .growl-notification.alert-danger {
  background-color: rgba(241,65,108,0.15) !important;
  color: #f1416c !important;
  border-color: rgba(241,65,108,0.3) !important;
}
[data-bs-theme="dark"] .growl-notification.alert-warning {
  background-color: rgba(255,199,0,0.15) !important;
  color: #ffc700 !important;
  border-color: rgba(255,199,0,0.3) !important;
}
[data-bs-theme="dark"] .growl-notification.alert-info {
  background-color: rgba(0,158,247,0.15) !important;
  color: #009ef7 !important;
  border-color: rgba(0,158,247,0.3) !important;
}
[data-bs-theme="dark"] .growl-notification .growl-close {
  color: #92929f !important;
}
[data-bs-theme="dark"] .growl-notification .growl-title {
  color: #ffffff !important;
}

/* ========================================================== */
/* Criar Caso — Layout split (resultado esquerdo + form dir.) */
/* ========================================================== */

/* Form sidebar sticky */
.form-ia-sidebar {
    position: sticky;
    top: 80px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(229,53,42,.3) transparent;
}
.form-ia-sidebar::-webkit-scrollbar { width: 4px; }
.form-ia-sidebar::-webkit-scrollbar-track { background: transparent; }
.form-ia-sidebar::-webkit-scrollbar-thumb { background: rgba(229,53,42,.3); border-radius: 2px; }

/* Compact columns inside form sidebar (lg screens) */
@media (min-width: 992px) {
    .form-ia-sidebar .row > [class*="col-sm-3"],
    .form-ia-sidebar .row > [class*="col-sm-4"] {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }
    .form-ia-sidebar .row > [class*="col-sm-6"],
    .form-ia-sidebar .row > [class*="col-sm-8"],
    .form-ia-sidebar .row > .col-sm-12 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }
    /* compact card header font */
    .form-ia-sidebar .card-header .card-title span.fw-bold {
        font-size: .85rem;
    }
    .form-ia-sidebar .card-body {
        padding: 1rem 1.25rem;
    }
    .form-ia-sidebar .form-label {
        font-size: .75rem;
        margin-bottom: .25rem;
    }
    .form-ia-sidebar .form-control-sm,
    .form-ia-sidebar .form-select-sm {
        font-size: .75rem;
    }
}

/* Accordion indicator on section card headers */
.form-ia-sidebar .card-header[data-bs-toggle="collapse"] {
    cursor: pointer;
    user-select: none;
}
.form-ia-sidebar .card-header[data-bs-toggle="collapse"]:hover {
    background-color: rgba(0,0,0,.02);
}
.form-ia-sidebar .card-header[data-bs-toggle="collapse"] .accordion-indicator {
    transition: transform .2s;
}
.form-ia-sidebar .card-header[data-bs-toggle="collapse"][aria-expanded="false"] .accordion-indicator {
    transform: rotate(-90deg);
}

/* Section result cards (left panel) */
.crm-secao-resultado .card-header {
    transition: background .15s;
}
.crm-secao-resultado .card-header:hover {
    background: rgba(229,53,42,.03);
}
.crm-btn-regen {
    transition: transform .2s, opacity .2s;
}
.crm-btn-regen:hover {
    transform: rotate(180deg);
}
.crm-btn-regen.regenerando {
    animation: crm-spin 1s linear infinite;
    opacity: .6;
    pointer-events: none;
}
@keyframes crm-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Idle banner */
.crm-resultado-idle-banner {
    border: 2px dashed rgba(229,53,42,.2);
    background: rgba(229,53,42,.03) !important;
}

/* Pipeline step states */
.pipeline-step-item.ativo .step-label {
    color: var(--bs-primary);
    font-weight: 600;
}
.pipeline-step-item.concluido .step-label {
    color: var(--bs-success);
}
.pipeline-step-item.erro .step-label {
    color: var(--bs-danger);
}
.pipeline-step-item .step-badge.ativo {
    background: var(--bs-primary);
    color: #fff;
}
.pipeline-step-item .step-badge.concluido {
    background: var(--bs-success);
    color: #fff;
}

/* ============================================================
   F5 — DataTables + Select2: helpers noir (inputs + theming)
   Complementa as regras DataTables/Select2 existentes acima.
   ============================================================ */

/* DataTables — inputs e selects respeitam tema Bootstrap */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
  color: var(--bs-body-color);
}

/* Select2 — garantia de compat light/dark (bootstrap5 + bootstrap-5) */
.select2-container--bootstrap-5 .select2-selection,
.select2-container--bootstrap5 .select2-selection {
  background-color: var(--bs-body-bg) !important;
  border-color: var(--bs-border-color) !important;
  color: var(--bs-body-color) !important;
}
.select2-container--bootstrap-5 .select2-dropdown,
.select2-container--bootstrap5 .select2-dropdown {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
}
.select2-container--bootstrap-5 .select2-results__option--highlighted,
.select2-container--bootstrap5 .select2-results__option--highlighted {
  background-color: var(--crim-red) !important;
  color: #fff !important;
}

/* ============================================================
   F9 — Acessibilidade WCAG 2.1 AA
   ============================================================ */

/* Focus visible global */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
  outline: 2px solid var(--crim-cyan);
  outline-offset: 2px;
}

/* Skip link */
.skip-link {
  position: absolute;
  top: -150%;
  left: 0;
  background: var(--crim-red);
  color: #fff;
  padding: .5rem 1rem;
  z-index: 9999;
  text-decoration: none;
  border-bottom-right-radius: .25rem;
}
.skip-link:focus {
  top: 0;
}

/* Min font-size — badges/chips abaixo de 12px */
.badge,
.fs-badge,
.chip,
.fs-8,
.fs-9 {
  font-size: max(0.75rem, 1em) !important;
}

/* ============================================================
   F12 — Skeleton Loading + Empty State
   ============================================================ */

/* ── Skeleton shimmer ─────────────────────────────────────── */
.skeleton-shimmer {
  background: linear-gradient(90deg,
    rgba(255,255,255,.03) 0%,
    rgba(255,255,255,.08) 50%,
    rgba(255,255,255,.03) 100%);
  background-size: 200% 100%;
  animation: crim-skeleton-shimmer 1.5s infinite ease-in-out;
  min-height: 14px;
}

@keyframes crim-skeleton-shimmer {
  0%   { background-position: 200% 0; opacity: .3; }
  50%  { opacity: .6; }
  100% { background-position: -200% 0; opacity: .3; }
}

/* ── P3 — Corrupção / barras dinâmicas (sem width inline) ─── */
.crim-bar-fill {
  width: calc(var(--crim-pct, 0) * 1%);
}

.crim-pre-scroll-sm {
  max-height: 200px;
  overflow: auto;
}

.crim-pre-scroll-md {
  max-height: 280px;
  overflow-y: auto;
}

/* ── Empty state ──────────────────────────────────────────── */
.crimind-empty-state .ki-duotone {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   locais_mapa — Mapa de locais admin (drag-drop SVG)
   ============================================================ */
#mapa-canvas { background: #141820; border: 1px solid #444; border-radius: 8px; touch-action: none; }
#mapa-canvas.mapa-panning { cursor: grab; }
#mapa-canvas .mapa-brasil-fill { fill: #1e2a38; stroke: #3d5166; stroke-width: 2; }
#mapa-canvas .mapa-brasil-uf { fill: none; stroke: #2a3a4d; stroke-width: 1; opacity: 0.65; }
#mapa-canvas .mapa-empty-hint { fill: #8899aa; font-size: 22px; font-family: inherit; }
#mapa-canvas .mapa-conexao { stroke: #6b8cae; stroke-width: 2; opacity: 0.75; pointer-events: none; }
#mapa-canvas .mapa-conexao--passagem_secreta { stroke: #c9a227; opacity: 0.9; }
#mapa-canvas .mapa-conexao--rota_fuga { stroke: #c45c5c; }
#mapa-canvas .local-bola { cursor: move; transition: opacity 0.15s; }
#mapa-canvas .local-bola:hover { opacity: 0.85; }
#mapa-canvas .local-label { fill: #ddd; font-size: 11px; pointer-events: none; }

/* caso_aprimorador — wizard Fase 2 */
#wizardAprimoradorNav .nav-link { font-size: 0.75rem; padding: 0.35rem 0.65rem; }
#wizardAprimoradorNav .nav-link.active { font-weight: 600; }
.lista-locais { max-height: 600px; overflow-y: auto; }
.lista-locais .local-item { padding: 8px; border-bottom: 1px solid var(--bs-border-color, #333); cursor: pointer; }
.lista-locais .local-item:hover { background: rgba(0, 0, 0, 0.06); }
[data-bs-theme="dark"] .lista-locais .local-item:hover { background: #222; }
.lista-locais .local-item.ativo { background: rgba(74, 144, 226, 0.15); }
.lista-locais .local-item--sem-pos { border-left: 3px solid var(--bs-warning); }

/* ============================================================
   caso_detalhe — Widget aprimoramento do caso (CRIM-CASO-APRIORADOR)
   ============================================================ */
.caso-aprimoramento-lista {
  max-height: 320px;
  overflow-y: auto;
  margin: 0 -2px;
  padding: 0 2px;
}
.caso-aprimoramento-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.45rem 0.35rem;
  border-bottom: 1px solid var(--bs-border-color, rgba(0, 0, 0, 0.08));
  font-size: 0.78rem;
  line-height: 1.35;
}
.caso-aprimoramento-item:last-child { border-bottom: 0; }
.caso-aprimoramento-item:hover { background: rgba(0, 0, 0, 0.03); }
[data-bs-theme="dark"] .caso-aprimoramento-item:hover { background: rgba(255, 255, 255, 0.04); }
.caso-aprimoramento-item__icon {
  flex-shrink: 0;
  width: 1.1rem;
  text-align: center;
  margin-top: 0.1rem;
  font-size: 0.85rem;
}
.caso-aprimoramento-item__body { flex: 1; min-width: 0; }
.caso-aprimoramento-item__label { font-weight: 600; color: var(--bs-gray-800, #333); }
.caso-aprimoramento-item__motivo {
  display: block;
  color: var(--bs-gray-600, #666);
  font-size: 0.72rem;
  margin-top: 0.1rem;
}
.caso-aprimoramento-item__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.2rem;
}
.caso-aprimoramento-item__link {
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.caso-aprimoramento-item--ok .caso-aprimoramento-item__icon { color: var(--bs-success); }
.caso-aprimoramento-item--aviso .caso-aprimoramento-item__icon { color: var(--bs-warning); }
.caso-aprimoramento-item--vazio .caso-aprimoramento-item__icon,
.caso-aprimoramento-item--incoerente .caso-aprimoramento-item__icon { color: var(--bs-danger); }
.caso-aprimoramento-item--bloqueado_plano .caso-aprimoramento-item__icon,
.caso-aprimoramento-item--ia_sugerido .caso-aprimoramento-item__icon { color: var(--bs-info); }
#badgeCasoAprimoramento.badge-light-success { color: var(--bs-success); }
#badgeCasoAprimoramento.badge-light-warning { color: var(--bs-warning); }
#badgeCasoAprimoramento.badge-light-danger { color: var(--bs-danger); }

/* ============================================================
   personagens_perfil — Perfil do personagem (P2 onda 18)
   ============================================================ */
.crim-hero-card {
  border-left: 4px solid var(--crim-role-color, #78909c);
  transition: border-color 0.3s;
}
.crim-avatar {
  width: 80px;
  height: 80px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
  border: 0;
  box-shadow: none;
}
.crim-avatar-lg { width: 100px; height: 100px; border-radius: 14px; }
.crim-avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  outline: none;
  box-shadow: none;
}
.crim-avatar-ampliavel.crim-avatar--com-foto { cursor: zoom-in; }
.crim-avatar-ampliavel.crim-avatar--com-foto::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  opacity: 0;
  transition: opacity 0.2s;
}
.crim-avatar-ampliavel.crim-avatar--com-foto:hover::after,
.crim-avatar-ampliavel.crim-avatar--com-foto:focus-visible::after { opacity: 1; }
.crim-avatar-ampliavel.crim-avatar--com-foto:focus-visible {
  outline: 2px solid var(--bs-primary, #0d6efd);
  outline-offset: 3px;
}
.crim-avatar-ampliavel:not(.crim-avatar--com-foto) { cursor: default; }
[data-bs-theme='dark'] .crim-avatar-ampliavel.crim-avatar--com-foto::after {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.crim-status-dot {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 13px;
  height: 13px;
  border: 2px solid var(--kt-card-bg, #fff);
  border-radius: 50%;
  background: #78909c;
}
.crim-status-dot.active { background: #4caf50; }
.crim-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 60px;
}
.crim-stat-item .val { font-size: 1.1rem; font-weight: 700; color: #333; line-height: 1; }
.crim-stat-item .lbl { font-size: 0.7rem; color: #9099a3; margin-top: 2px; }
.crim-trait-row { --trait-accent: #78909c; margin-bottom: 1.1rem; }
.crim-trait-row .ki-duotone { color: var(--trait-accent); }
.crim-trait-row .crim-trait-val { color: var(--trait-accent); }
.crim-trait-row .crim-trait-range { height: 6px; padding: 0; cursor: pointer; accent-color: var(--trait-accent); }
.crim-trait-row .crim-trait-range::-webkit-slider-thumb { width: 15px; height: 15px; margin-top: -5px; }
.crim-trait-row .form-range { height: 6px; padding: 0; cursor: pointer; }
.crim-trait-row .form-range::-webkit-slider-thumb { width: 15px; height: 15px; margin-top: -5px; }
.crim-trait-val { font-size: 0.85rem; font-weight: 700; min-width: 2.2rem; text-align: right; }
.crim-range-field { --crf-accent: #78909c; }
.crim-range-field .crf-label .ki-duotone { color: var(--crf-accent); }
.crim-range-field .crf-num { color: var(--crf-accent); border-bottom-color: var(--crf-accent); }
.crim-range-field .crf-range { accent-color: var(--crf-accent); }
.crim-range-field .crf-fill { background: var(--crf-accent); }
.crim-trait-desc {
  font-size: 0.68rem;
  padding: 1px 7px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.06);
  color: #666;
}
.crim-metric-card {
  background: rgba(0, 0, 0, 0.025);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 10px;
  padding: 14px 10px;
  text-align: center;
}
.crim-metric-card .mval { font-size: 1.4rem; font-weight: 800; line-height: 1; }
.crim-metric-card .mlbl { font-size: 0.65rem; color: #9099a3; margin-top: 4px; }
.crim-metric-card .mbar {
  height: 4px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.08);
  margin-top: 8px;
  overflow: hidden;
}
.crim-metric-card .mbar-fill { height: 100%; border-radius: 4px; transition: width 0.4s; }
.crim-range-field {
  background: rgba(0, 0, 0, 0.03);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  padding: 12px 14px 10px;
  transition: border-color 0.2s;
}
.crim-range-field:focus-within {
  border-color: rgba(0, 0, 0, 0.18);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.crim-range-field .crf-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
  gap: 0.4rem;
}
.crim-range-field .crf-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--bs-gray-700, #5e6278);
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex: 1;
  min-width: 0;
}
.crim-range-field .crf-num {
  width: 52px;
  border: none;
  background: transparent;
  text-align: right;
  font-weight: 800;
  font-size: 1.15rem;
  line-height: 1;
  padding: 0 0 2px;
  outline: none;
  appearance: textfield;
  border-bottom: 2px solid currentcolor;
}
.crim-range-field .crf-num::-webkit-inner-spin-button,
.crim-range-field .crf-num::-webkit-outer-spin-button { display: none; }
.crim-range-field .crf-num:focus { border-bottom-width: 3px; }
.crim-range-field .crf-range { width: 100%; height: 4px; padding: 0; margin-bottom: 6px; display: block; }
.crim-range-field .crf-range::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; }
.crim-range-field .crf-range::-webkit-slider-thumb {
  width: 16px;
  height: 16px;
  margin-top: -6px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
.crim-range-field .crf-bar { height: 3px; border-radius: 3px; background: rgba(0, 0, 0, 0.08); overflow: hidden; }
.crim-range-field .crf-fill { height: 100%; border-radius: 3px; transition: width 0.15s ease; }
.crim-secret-zone {
  background: #12121e;
  border: 1px solid rgba(244, 67, 54, 0.25);
  border-radius: 10px;
  padding: 20px;
}
.crim-secret-zone label { color: #b0bec5 !important; }
.crim-secret-zone textarea {
  background: #1a1a2e !important;
  color: #cfd8dc !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.crim-secret-zone textarea::placeholder { color: #546e7a !important; }
.crim-json-editor {
  background: #13131e;
  color: #a9bcca;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  font-size: 0.78rem;
  line-height: 1.6;
  border-radius: 6px;
}
.crim-json-editor::placeholder { color: #455a64; }
.mem-tipo-fato { background: rgba(33, 150, 243, 0.12); color: #2196f3; }
.mem-tipo-contradicao { background: rgba(244, 67, 54, 0.12); color: #f44336; }
.mem-tipo-emocional { background: rgba(233, 30, 99, 0.12); color: #e91e63; }
.mem-tipo-revelacao { background: rgba(255, 152, 0, 0.12); color: #ff9800; }
.mem-tipo-segredo_mantido { background: rgba(103, 58, 183, 0.12); color: #673ab7; }
.mem-tipo-episodio { background: rgba(120, 144, 156, 0.12); color: #78909c; }
.fato-acontecimento { background: rgba(0, 188, 212, 0.12); color: #00bcd4; }
.fato-segredo { background: rgba(244, 67, 54, 0.12); color: #f44336; }
.fato-depoimento { background: rgba(76, 175, 80, 0.12); color: #4caf50; }
.fato-pista { background: rgba(255, 152, 0, 0.12); color: #ff9800; }
.fato-alibi { background: rgba(103, 58, 183, 0.12); color: #673ab7; }
.fato-timeline { background: rgba(33, 150, 243, 0.12); color: #2196f3; }
.fato-detector_mentiras { background: rgba(255, 107, 53, 0.12); color: #ff6b35; }
.crim-perfil-page .nav-link .ki-duotone { vertical-align: middle; }
.crim-perfil-page .sep-v { width: 1px; background: rgba(0, 0, 0, 0.1); align-self: stretch; }
.crim-perfil-tabs-card {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.04);
  border: 1px solid var(--bs-border-color, #eff2f5);
}
.crim-perfil-tabs-card .nav-line-tabs .nav-link {
  border-bottom-width: 3px;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  white-space: nowrap;
}
.crim-perfil-tabs-card .nav-line-tabs .nav-link:not(.active) { color: var(--bs-gray-600, #7e8299); }
.crim-perfil-tabs-card .nav-line-tabs .nav-link.active {
  color: var(--bs-primary, #009ef7);
  border-bottom-color: var(--bs-primary, #009ef7) !important;
  background: linear-gradient(180deg, rgba(0, 158, 247, 0.06) 0%, transparent 100%);
}
.crim-perfil-tabs-card .nav { scrollbar-width: thin; overflow-y: hidden !important; }
.crim-ia-kpi .card { transition: transform 0.15s ease, box-shadow 0.15s ease; }
.crim-ia-kpi .card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.crim-ia-accordion .accordion-button:not(.collapsed) {
  background: rgba(0, 158, 247, 0.08);
  color: var(--bs-gray-900, #181c32);
}
.crim-ia-accordion .accordion-item {
  border: 1px solid var(--bs-border-color, #eff2f5);
  border-radius: 0.75rem !important;
  margin-bottom: 1rem;
  overflow: hidden;
}
.crim-ia-slider-label { min-width: 3.5rem; font-variant-numeric: tabular-nums; }
[data-bs-theme='dark'] .crim-trait-item .val { color: #e4e6ef !important; }
[data-bs-theme='dark'] .crim-ia-kpi .text-gray-900 { color: #f5f8fa !important; }
.crim-perfil-accordion .accordion-button {
  font-weight: 600;
  font-size: 0.875rem;
  background: transparent;
  border-radius: 0;
}
.crim-perfil-accordion .accordion-button:not(.collapsed) {
  background: rgba(0, 158, 247, 0.06);
  color: var(--bs-primary, #009ef7);
  box-shadow: inset 3px 0 0 var(--bs-primary, #009ef7);
}
.crim-perfil-accordion .accordion-button::after { opacity: 0.5; }
.crim-perfil-accordion .accordion-item {
  border: 1px solid var(--bs-border-color, #eff2f5);
  border-radius: 0.75rem !important;
  margin-bottom: 0.75rem;
  overflow: hidden;
}
.crim-perfil-accordion .accordion-body { padding: 1.25rem 1.5rem; }
.crim-metrica-card { transition: box-shadow 0.15s; }
.crim-metrica-card:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important; }
.crim-caso-vinculo-cfg { border-left: 3px solid var(--bs-primary, #009ef7); }
[data-bs-theme='dark'] .crim-perfil-accordion .accordion-button:not(.collapsed) {
  background: rgba(0, 158, 247, 0.12);
}
[data-bs-theme='dark'] .crim-caso-vinculo-cfg { background: rgba(255, 255, 255, 0.04) !important; }
[data-bs-theme='dark'] .crim-metrica-card { background: var(--bs-card-bg, #1e1e2d); }
.crim-img-preview-modal { max-width: 100%; max-height: min(70vh, 640px); object-fit: contain; }
.crim-img-preview-sm { max-height: 200px; object-fit: contain; }
.crim-img-preview-ia { max-height: 420px; object-fit: contain; }
.crim-textarea-mono-sm { font-family: monospace; font-size: 0.8rem; line-height: 1.55; }

/* ============================================================
   ia_modelos — alertas orçamento (P2 onda 19 / D-040)
   ============================================================ */
.crim-ia-budget-banner { border-radius: 0.75rem; }

/* KPI cards → abas (provedores LLM / D-038) */
a.crim-kpi-tab-link { transition: transform 0.15s ease, box-shadow 0.15s ease; }
a.crim-kpi-tab-link:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08); }

/* Modal profissões — tabs mobile (D-046) */
#modalProfissao .nav-line-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
#modalProfissao .w-80px { width: 5rem; }

/* ============================================================
   modal_personagem_editor — MPE (P2 onda 19)
   ============================================================ */
#modalPersonagemEditor .modal-content { min-height: 520px; }
.mpe-tab-nav .nav-link { font-size: 0.77rem; padding: 0.45rem 0.8rem; white-space: nowrap; }
.mpe-trait-row { margin-bottom: 0.9rem; }
.mpe-trait-row .form-range { cursor: pointer; }
.mpe-trait-val { font-size: 0.83rem; font-weight: 700; min-width: 2.1rem; text-align: right; }
.mpe-trait-desc {
  font-size: 0.67rem;
  padding: 1px 6px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.06);
  color: #777;
}
.mpe-metric-card {
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding: 10px 12px;
  text-align: center;
}
.mpe-metric-bar {
  height: 4px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.08);
  overflow: hidden;
  margin-top: 6px;
}
.mpe-metric-fill { height: 100%; border-radius: 4px; transition: width 0.3s; }
.mpe-metric-card input[type='number'] {
  width: 60px;
  border: none;
  background: transparent;
  font-weight: 800;
  font-size: 1.2rem;
  text-align: center;
}
.mpe-metric-card input[type='number']:focus { outline: none; }
.mpe-secret-zone {
  background: #12121e;
  border: 1px solid rgba(244, 67, 54, 0.25);
  border-radius: 10px;
  padding: 18px;
}
.mpe-secret-zone label { color: #b0bec5 !important; }
.mpe-secret-zone textarea,
.mpe-secret-zone input {
  background: #1a1a2e !important;
  color: #cfd8dc !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.mpe-secret-zone textarea::placeholder { color: #546e7a !important; }

/* D-060 — planos_config: grupos fora do viewport não pintam até scroll */
.card.feature-group {
  content-visibility: auto;
  contain-intrinsic-size: auto 220px;
}

/* F-028 — barras de quota storage */
.storage-quota-bar {
  min-width: 160px;
  max-width: 280px;
}

/* CRIM-PAINEL-STD-MENU — mobile drawer: agrupamento por jornada */
@media (width <= 991.98px) {
  .app-header-menu [data-crimind-jornada] > .menu-link {
    font-weight: 600;
    letter-spacing: 0.02em;
  }
  .app-header-menu [data-crimind-jornada] + [data-crimind-jornada] {
    margin-top: 0.35rem;
    padding-top: 0.35rem;
    border-top: 1px dashed var(--bs-border-color, rgba(0, 0, 0, 0.08));
  }
}
