    :root {
      --primary: #2563eb;
      --primary-dark: #1e3a8a;
      --primary-light: #c0deff;
      --primary-pale: #edf6ff;
--primary-solid: #2563eb;
      --white: #ffffff;
      --success: #10b981;
      --warning: #f59e0b;
      --danger: #ef4444;
      --gray-50: #f9fafb;
      --gray-100: #f3f4f6;
      --gray-200: #e5e7eb;
      --gray-300: #d1d5db;
--gray-400: #6b7280;
--gray-500: #6b7280;
--danger-text: #dc2626;
--success-text: #047857;
      --warning-text: #b45309;
      --gray-600: #4b5563;
      --gray-700: #374151;
      --gray-800: #111827;
      --gray-900: #111827;
--error: #dc2626;
      --surface: #ffffff;
--sidebar-w: 220px;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--gray-50); color: var(--gray-900); min-height: 100vh; }

    /* ── LOGIN ── */
    #login-screen { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #f0f4ff 0%, #e3f2fd 50%, #f0f4ff 100%); }
    .login-card { background: var(--white); border-radius: 20px; padding: 3rem 2.5rem; box-shadow: 0 20px 60px rgba(37,99,235,0.12); width: 100%; max-width: 420px; border: 1px solid rgba(37,99,235,0.08); }
    .login-logo { text-align: center; margin-bottom: 0.2rem; line-height: 0; }
    .login-logo svg { overflow: visible; }
    .login-sub { text-align: center; font-size: 10px; color: var(--gray-400); font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; margin-bottom: 1.8rem; font-family: 'Poppins', sans-serif; }
    .form-label { display: block; font-size: 11px; font-weight: 700; color: var(--gray-600); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0.5rem; }
    .form-input { width: 100%; padding: 12px 14px; border: 1.5px solid var(--gray-200); border-radius: 10px; font-size: 14px; margin-bottom: 1rem; transition: all 0.2s; background: var(--gray-50); font-family: 'Poppins', sans-serif; }
    .form-input:focus { outline: none; border-color: var(--primary); background: var(--white); box-shadow: 0 0 0 3px rgba(37,99,235,0.08); }
    .btn-login { width: 100%; padding: 13px; background: linear-gradient(135deg, var(--primary-solid), #1d4ed8); color: #fff; border: none; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; transition: all 0.3s; box-shadow: 0 8px 20px rgba(37,99,235,0.3); }
    .btn-login:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(37,99,235,0.4); }
    .login-error { display: none; margin-top: 1rem; padding: 10px 14px; background: #fff0f0; color: #b91c1c; border-radius: 8px; font-size: 13px; border: 1px solid #fcc; }
    body.dark .login-error { background: #3a1a1a; color: #fca5a5; border-color: #5c2626; }
    body.dark .err-inline-box { background: #3a1a1a; color: #fca5a5; border-color: #5c2626; }

    /* ── APP SHELL ── */
    #app { display: none; min-height: 100vh; }

    /* ── SIDEBAR ── */
    .sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-w); background: var(--white); border-right: 1px solid var(--gray-200); display: flex; flex-direction: column; z-index: 100; box-shadow: 2px 0 12px rgba(0,0,0,0.04); }
    .sidebar-brand { padding: 1.4rem 1.2rem 1rem; border-bottom: 1px solid var(--gray-100); }
    .brand-tag { font-size: 10px; font-weight: 600; color: var(--gray-400); text-transform: uppercase; letter-spacing: 1.2px; margin-top: 2px; }
    .sidebar-nav { flex: 1; padding: 1rem 0.7rem; display: flex; flex-direction: column; gap: 3px; overflow-y: auto; }
    .nav-section { font-size: 9px; font-weight: 700; color: var(--gray-400); text-transform: uppercase; letter-spacing: 1.2px; padding: 0.8rem 0.5rem 0.3rem; }
    .nav-item { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border-radius: 9px; cursor: pointer; font-size: 13px; font-weight: 600; color: var(--gray-600); transition: all 0.15s; border: none; background: none; width: 100%; text-align: left; }
    .nav-item:hover { background: var(--gray-100); color: var(--primary); }
    .nav-item.active { background: var(--primary-pale); color: var(--primary); }
    .nav-icon { font-size: 15px; width: 18px; text-align: center; flex-shrink: 0; }
    .sidebar-footer { padding: 0.75rem; border-top: 1px solid var(--gray-100); }
    .sidebar-user-card { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 10px; padding: 0.65rem; }
    .sidebar-user-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
    .sidebar-user-avatar { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--primary-solid), #1d4ed8); color: #fff; font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .sidebar-user-info { flex: 1; min-width: 0; }
    .user-info { font-size: 10px; color: var(--gray-400); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; }
    .user-role-badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 20px; margin-bottom: 1px; }
    .btn-logout { width: 100%; padding: 7px; background: var(--white); color: var(--gray-600); border: 1px solid var(--gray-200); border-radius: 7px; font-size: 11px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
    .btn-logout:hover { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }


    /* ── GLOBAL TOPBAR ── */
    .global-topbar { position:sticky; top:0; z-index:90; background:rgba(249,250,251,0.97); backdrop-filter:blur(8px); padding:0.65rem 0; margin:-2rem -2.2rem 1.4rem; padding-left:2.2rem; padding-right:2.2rem; border-bottom:1px solid var(--gray-200); display:flex; align-items:center; gap:1rem; }
    .global-search-wrap { position:relative; flex:1; max-width:520px; }
    .global-search-input { width:100%; padding:9px 14px 9px 36px; border:1.5px solid var(--gray-200); border-radius:10px; font-size:13px; font-family:'Poppins',sans-serif; background:var(--white); transition:all 0.2s; }
    .global-search-input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(37,99,235,0.08); }
    .global-search-icon { position:absolute; left:11px; top:50%; transform:translateY(-50%); font-size:14px; pointer-events:none; }
    .global-results { position:absolute; top:calc(100% + 6px); left:0; right:0; background:var(--white); border:1.5px solid var(--gray-200); border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,0.12); z-index:200; max-height:420px; overflow-y:auto; display:none; }
    .global-results.open { display:block; }
    .gr-section { padding:0.5rem 0.75rem 0.3rem; font-size:10px; font-weight:800; color:var(--gray-400); text-transform:uppercase; letter-spacing:1px; }
    .gr-item { display:flex; align-items:center; gap:0.7rem; padding:0.6rem 0.9rem; cursor:pointer; transition:background 0.12s; }
    .gr-item:hover { background:var(--primary-pale); }
    .gr-item:last-child { border-radius:0 0 10px 10px; }
    .gr-icon { font-size:18px; flex-shrink:0; }
    .gr-main { flex:1; min-width:0; }
    .gr-nome { font-size:13px; font-weight:600; color:var(--gray-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .gr-sub  { font-size:11px; color:var(--gray-400); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .gr-badge { font-size:10px; padding:2px 8px; border-radius:6px; font-weight:700; background:var(--primary-pale); color:var(--primary); flex-shrink:0; }
    .gr-empty { padding:1.2rem; text-align:center; color:var(--gray-400); font-size:13px; }
    .gr-divider { height:1px; background:var(--gray-100); margin:0; }
    .gr-item.focused { background:var(--primary-pale); }

    /* ── MANUTENÇÃO — grid estilo atalhos ── */
  .manut-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }
  .manut-card {
    background: var(--white);
    border-radius: 14px;
    padding: 1.8rem 1.4rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    border: 1px solid var(--gray-100);
    cursor: pointer;
    transition: all 0.25s;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    gap: 0.7rem;
  }
  .manut-card:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(37,99,235,0.13); border-color: var(--primary-light); }
  .manut-card-icon { font-size: 38px; }
  .manut-card-title { font-size: 13px; font-weight: 700; color: var(--gray-900); line-height: 1.35; }
  .manut-card-desc  { font-size: 11.5px; color: var(--gray-400); line-height: 1.5; }
  .manut-card-btn {
    margin-top: 4px;
    padding: 7px 18px; border-radius: 8px;
    font-size: 12px; font-weight: 700; cursor: pointer;
    border: 1.5px solid var(--gray-200);
    background: var(--gray-50); color: var(--gray-700);
    font-family: inherit;
    transition: all 0.2s;
    display: inline-flex; align-items: center; gap: 5px;
  }
  .manut-card:hover .manut-card-btn { background: var(--primary-solid); color: #fff; border-color: var(--primary-solid); }
  .manut-card-btn:disabled { opacity: .45; cursor: not-allowed; }

  /* ── HISTÓRICO DE STATUS ── */

    .hist-info { flex:1; }
    .hist-meta { font-size:11px; color:var(--gray-400); margin-top:2px; }
    .hist-empty { text-align:center; padding:1.5rem; color:var(--gray-400); font-size:13px; }

    /* ── MAIN CONTENT ── */
    .main-content { margin-left: var(--sidebar-w); padding: 2rem 2.2rem; min-height: 100vh; }
    .page { display: none; animation: fadeIn 0.25s ease; }
    .page.active { display: block; }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes slideInRight { from { opacity:0; transform:translateX(40px); } to { opacity:1; transform:translateX(0); } }
    .page-header { margin-bottom: 1.5rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
    .page-title { font-size: 22px; font-weight: 800; color: var(--gray-900); }
    .page-subtitle { font-size: 13px; color: var(--gray-400); margin-top: 2px; }

    /* ── STATS GRID ── */
    .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; margin-bottom: 1.8rem; }
.stat-card.primary { border-left-color: var(--primary); }
    .stat-card.success { border-left-color: var(--success-text); }
    .stat-card.warning { border-left-color: var(--warning-text); }
    .stat-card.danger  { border-left-color: var(--danger-text); }
    .stat-value { color: var(--gray-900); }

    /* ── CARD ── */
.card { background: var(--white); overflow: hidden; margin-bottom: 1.5rem; }
    .card-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

    /* ── DUPLICATAS PARA REVISÃO (modal) ── */
    .dup-rev-card { background: var(--white); border: 1.5px solid var(--gray-100); border-left: 4px solid var(--primary); border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); padding: 1rem 1.2rem; overflow: visible; height: auto; }
    .dup-rev-titulo { font-size: 12px; font-weight: 700; color: var(--gray-400); margin-bottom: 10px; }
    .dup-rev-titulo span { opacity: 0.6; margin: 0 2px; }
    .dup-rev-linhas { display: flex; flex-direction: column; gap: 6px; }
    .dup-rev-linha { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1.5px solid var(--gray-100); border-radius: 8px; cursor: pointer; transition: border-color .15s, background .15s; }
    .dup-rev-linha:hover { border-color: var(--primary); background: var(--primary-pale); }
    .dup-rev-linha input[type="radio"] { flex: 0 0 auto; width: 16px; height: 16px; accent-color: var(--primary); cursor: pointer; }
    .dup-rev-info { flex: 1; font-size: 13px; min-width: 0; }
    .dup-rev-info strong { color: var(--gray-900); }
    .dup-rev-meta { color: var(--gray-400); font-size: 11px; margin-top: 2px; overflow-wrap: anywhere; }
    .dup-rev-acoes { display: flex; gap: 8px; margin-top: 12px; justify-content: flex-end; }
    body.dark .dup-rev-card { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .dup-rev-linha { border-color:#2a2f45; }
    body.dark .dup-rev-linha:hover { background:rgba(37,99,235,0.12); }
    body.dark .dup-rev-info strong { color:#e6f0ff; }
    .empty-state { text-align: center; padding: 2.5rem; color: var(--gray-400); font-size: 13px; }
    .empty-icon { font-size: 36px; margin-bottom: 0.6rem; }

    /* ── TABLE ── */
    .table-wrap { overflow-x: auto; }
    table { width: 100%; border-collapse: collapse; }
    th { padding: 9px 14px; text-align: left; font-size: 10px; font-weight: 700; color: var(--gray-400); text-transform: uppercase; letter-spacing: 0.8px; background: var(--gray-50); border-bottom: 1px solid var(--gray-100); white-space: nowrap; }
    td { padding: 12px 14px; font-size: 13px; border-bottom: 1px solid var(--gray-50); vertical-align: middle; }
    tr:last-child td { border-bottom: none; }
    tbody tr:hover td { background: #fafbff; }

    /* ── BADGES ── */
    .badge { display: inline-flex; align-items: center; gap: 3px; padding: 3px 9px; border-radius: 20px; font-size: 11px; font-weight: 700; white-space: nowrap; }
    .b-prospeccao   { background: #ede9fe; color: #5b21b6; }
    .b-triagem      { background: #fef3c7; color: #92400e; }
    .b-processo     { background: #dbeafe; color: #1e40af; }
    .b-aprovado     { background: #d1fae5; color: #065f46; }
    .b-nao_aprovado { background: #fff7ed; color: #9a3412; }
    .b-reprovado    { background: #fee2e2; color: #991b1b; }
    .b-contratado   { background: #f3e8ff; color: #6b21a8; }
    .b-em_garantia  { background: #ede9fe; color: #5b21b6; }    /* Em Garantia — roxo */
    .b-garantia_ok  { background: #fff7ed; color: #9a3412; }   /* Em Recontratação — laranja */
    .b-garantia_perdida { background: #d1fae5; color: #065f46; } /* Garantia Expirada — verde */
    .alerta-garantia { background:#fffbeb; border:1.5px solid #f59e0b; border-radius:12px; padding:0.9rem 1.1rem; margin-bottom:1rem; display:flex; align-items:center; gap:0.8rem; }
    .alerta-garantia-icon { font-size:22px; flex-shrink:0; }
    .alerta-garantia-txt { flex:1; font-size:13px; color:#92400e; }
    .alerta-garantia-txt strong { display:block; font-size:14px; margin-bottom:2px; }

    /* ── BUTTONS ── */
    .btn { padding: 9px 18px; border: none; border-radius: 9px; font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.2s; display: inline-flex; align-items: center; gap: 5px; }
    .btn:disabled { opacity: 0.5; cursor: not-allowed; }
    .btn-primary { background: linear-gradient(135deg, var(--primary-solid), #1d4ed8); color: #fff; box-shadow: 0 4px 12px rgba(37,99,235,0.25); }
    .btn-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(37,99,235,0.35); }
    .btn-sm { padding: 5px 10px; font-size: 12px; border-radius: 7px; }
    .btn-ghost { background: var(--gray-100); color: var(--gray-600); }
    .btn-ghost:hover { background: var(--gray-200); }
    .btn-danger { background: #fee2e2; color: #991b1b; }
    .btn-danger:hover { background: #fecaca; }
    .btn-indigo { background: linear-gradient(135deg,#5b5ef0,#4f46e5); color:#fff; }
    .btn-indigo:hover { transform:translateY(-1px); }
    .btn-info { background:#dbeafe; color:#1e40af; border:1px solid #bfdbfe; }
    .btn-info:hover { background:#bfdbfe; border-color:#93c5fd; }
    .btn-whatsapp { background:#0f8340; color:#fff; border:1px solid #0d7739; }
    .btn-whatsapp:hover { background:#0d7739; transform:translateY(-1px); }
    .btn-meet { background:linear-gradient(135deg,#1a7534,#1c7d38); color:#fff; }
    .btn-meet:hover { transform:translateY(-1px); }
    .btn-link { background:none; border:none; color:var(--primary); padding:0; font-size:inherit; font-weight:600; text-decoration:underline; text-underline-offset:2px; cursor:pointer; font-family:inherit; }
    .btn-link:hover { color:var(--primary-dark); }

    /* ── TOOLBAR ── */
    .toolbar { display: flex; gap: 0.7rem; align-items: center; flex-wrap: wrap; }
    .search-input { padding: 8px 13px; border: 1.5px solid var(--gray-200); border-radius: 8px; font-size: 13px; width: 240px; }
    .search-input:focus { outline: none; border-color: var(--primary); }
    .filter-select { padding: 8px 11px; border: 1.5px solid var(--gray-200); border-radius: 8px; font-size: 13px; color: var(--gray-700); background: var(--white); cursor: pointer; }
    .filter-select:focus { outline: none; border-color: var(--primary); }

    /* ── FILTER BAR (redesenho de UX/UI dos filtros) ── */
    .filter-toolbar { display: flex; flex-direction: column; gap: 0.6rem; }
    .filter-toolbar-row { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
    .filter-select, .search-input { height: 36px; transition: border-color .15s, background .15s, box-shadow .15s, color .15s; }
    .filter-select:hover { border-color: var(--gray-300); }
    .search-input:focus, .filter-select:focus { box-shadow: 0 0 0 3px rgba(37,99,235,0.10); }
    /* Estado "ativo": fica óbvio quais filtros estão realmente sendo aplicados */
    .filter-select.is-active, .search-input.is-active {
      border-color: var(--primary); background: var(--primary-pale); color: var(--primary-dark); font-weight: 600;
    }
    /* Busca com ícone + botão de limpar embutido */
    .filter-search-wrap { position: relative; flex: 1 1 220px; max-width: 280px; }
    .filter-search-wrap .search-input { width: 100%; padding-left: 32px; padding-right: 30px; }
    .filter-search-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--gray-400); pointer-events: none; }
    .filter-search-clear {
      position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
      width: 20px; height: 20px; display: none; align-items: center; justify-content: center;
      background: none; border: none; cursor: pointer; color: var(--gray-400); font-size: 12px; border-radius: 50%; padding: 0; line-height: 1;
    }
    .filter-search-clear:hover { background: var(--gray-100); color: var(--gray-700); }
    .filter-search-wrap.has-value .filter-search-clear { display: flex; }
    /* Botão "Mais filtros" (agrupa filtros secundários e evita poluição visual) */
    .filter-more-toggle {
      display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px;
      border: 1.5px dashed var(--gray-300); border-radius: 8px; background: var(--white); color: var(--gray-600);
      font-size: 12.5px; font-weight: 700; cursor: pointer; transition: all .15s; font-family: inherit;
    }
    .filter-more-toggle:hover { border-color: var(--primary); color: var(--primary); }
    .filter-more-toggle.has-active-filters { border-style: solid; border-color: var(--primary); background: var(--primary-pale); color: var(--primary-dark); }
    .filter-more-toggle .fmt-arrow { font-size: 9px; transition: transform .15s; }
    .filter-more-toggle.is-open .fmt-arrow { transform: rotate(180deg); }
    .filter-more-badge {
      display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 4px;
      border-radius: 20px; background: var(--primary-solid); color: #fff; font-size: 10px; font-weight: 800;
    }
    .filter-more-row { display: none; padding-top: 0.5rem; border-top: 1px dashed var(--gray-100); margin-top: 0.1rem; }
    .filter-more-row.open { display: flex; }
    /* Chips com os filtros ativos — cada um pode ser removido individualmente */
    .filter-chips-row { display: none; flex-wrap: wrap; gap: 6px; align-items: center; padding-top: 0.35rem; }
    .filter-chips-row.open { display: flex; }
    .filter-chip {
      display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 10px; border-radius: 20px;
      background: var(--primary-pale); color: var(--primary-dark); font-size: 11.5px; font-weight: 600;
      border: 1px solid var(--primary-light); max-width: 260px;
    }
    .filter-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .filter-chip button {
      display: flex; align-items: center; justify-content: center; width: 15px; height: 15px; border-radius: 50%;
      border: none; background: rgba(37,99,235,0.14); color: var(--primary-dark); cursor: pointer; font-size: 9px; padding: 0; flex-shrink: 0;
    }
    .filter-chip button:hover { background: rgba(37,99,235,0.28); }
    .filter-chip-clearall {
      font-size: 11.5px; font-weight: 700; color: var(--gray-400); background: none; border: none; cursor: pointer;
      text-decoration: underline; text-underline-offset: 2px; padding: 3px 4px; font-family: inherit;
    }
    .filter-chip-clearall:hover { color: var(--danger-text); }
    .filter-results-empty-clear { margin-top: 0.6rem; }
    body.dark .filter-more-toggle { background: #131620; }
    body.dark .filter-chip button { background: rgba(59,130,246,0.22); }

    /* ── MODAL ── */
    .modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 200; align-items: center; justify-content: center; padding: 1rem; backdrop-filter: blur(2px); }
    .modal-overlay.open { display: flex; }
    .modal { background: var(--white); border-radius: 18px; padding: 2rem; width: 100%; max-width: 580px; max-height: 90vh; overflow-y: auto; }
    .modal-title { font-size: 18px; font-weight: 800; color: var(--gray-900); margin-bottom: 1.5rem; }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    .form-grid .span2 { grid-column: 1 / -1; }
    .fgroup { display: flex; flex-direction: column; gap: 0.4rem; }
    .flabel { font-size: 11.5px; font-weight: 700; color: var(--gray-600); text-transform: uppercase; letter-spacing: 0.7px; }
    .finput { padding: 12px 14px; border: 1.5px solid var(--gray-200); border-radius: 10px; font-size: 13.5px; transition: all 0.2s; font-family: 'Poppins', sans-serif; background: var(--white); color: var(--gray-900); box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
    .finput:hover:not(:focus) { border-color: var(--gray-300); }
    .finput:focus { outline: none; border-color: var(--primary); background: var(--white); box-shadow: 0 0 0 3px rgba(37,99,235,0.09), 0 1px 2px rgba(0,0,0,0.04); }
    .finput::placeholder { color: var(--gray-400); }
    select.finput { cursor: pointer; }
    textarea.finput { resize: vertical; min-height: 88px; line-height: 1.55; }
    .modal-actions { display: flex; gap: 0.8rem; justify-content: flex-end; margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--gray-100); }

    /* ══════════════════ BRIEFING IA — Modal & Visualizador ══════════════════ */
    #modal-briefing-ia .modal {
      max-width: 880px;
      padding: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      max-height: 92vh;
    }
    .bf-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1rem;
      padding: 1.3rem 1.6rem;
      background: linear-gradient(135deg, #eff6ff, #dbeafe);
      border-bottom: 1px solid var(--gray-100);
      flex-shrink: 0;
    }
    .bf-body {
      padding: 1.5rem 1.6rem;
      overflow-y: auto;
      flex: 1;
    }
    .bf-preview {
      background: var(--gray-50);
      border: 1px solid var(--gray-100);
      border-radius: 12px;
      padding: 1rem 1.2rem;
      margin-bottom: 1.2rem;
    }
    .bf-sec-title {
      font-size: 12px;
      font-weight: 800;
      color: var(--gray-600);
      text-transform: uppercase;
      letter-spacing: 0.8px;
      margin: 1.4rem 0 0.8rem;
      padding-bottom: 0.5rem;
      border-bottom: 1.5px solid var(--gray-100);
    }
    .bf-skill-lbl {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: var(--gray-50);
      border: 1.5px solid var(--gray-200);
      border-radius: 20px;
      padding: 6px 12px;
      font-size: 12px;
      color: var(--gray-700);
      cursor: pointer;
      font-weight: 600;
      transition: all 0.15s;
    }
    .bf-skill-lbl:hover { border-color: var(--primary); background: var(--primary-pale); color: var(--primary); }
    .bf-skill-lbl input[type="checkbox"] { accent-color: var(--primary); margin: 0; cursor: pointer; }
    .bf-skill-lbl:has(input:checked) {
      background: var(--primary-pale);
      border-color: var(--primary);
      color: var(--primary);
    }

    /* Loading view */
    .bf-loading {
      padding: 3rem 1.6rem;
      text-align: center;
    }

    /* Result view */
    #_bfResult {
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }
    .bf-res-header {
      padding: 1.2rem 1.6rem;
      background: linear-gradient(135deg, #f0fdf4, #dcfce7);
      border-bottom: 1px solid var(--gray-100);
    }
    .bf-tabs {
      display: flex;
      gap: 0;
      padding: 0 1.6rem;
      background: var(--gray-50);
      border-bottom: 1.5px solid var(--gray-100);
    }
    .bf-tab {
      background: transparent;
      border: none;
      border-bottom: 3px solid transparent;
      padding: 12px 18px;
      font-size: 13px;
      font-weight: 600;
      color: var(--gray-500);
      cursor: pointer;
      font-family: 'Poppins', sans-serif;
      transition: all 0.15s;
    }
    .bf-tab:hover { color: var(--primary); background: var(--primary-pale); }
    .bf-tab.on {
      color: var(--primary);
      border-bottom-color: var(--primary);
      font-weight: 700;
      background: var(--white);
    }
    .bf-tab-body {
      padding: 1.5rem 1.8rem;
      overflow-y: auto;
      flex: 1;
      background: #fafbfc;
    }
    .bf-actions {
      display: flex;
      justify-content: space-between;
      gap: 0.8rem;
      padding: 1rem 1.6rem;
      background: var(--white);
      border-top: 1px solid var(--gray-100);
      flex-shrink: 0;
    }

    /* ── Visualizador genérico (modal de Ver Briefing / Ver Descritivo) ── */
    .bf-viewer-overlay {
      position: fixed;
      inset: 0;
      background: rgba(15, 23, 42, 0.55);
      backdrop-filter: blur(4px);
      z-index: 10000;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
      animation: fadeInUp 0.2s ease;
    }
    .bf-viewer {
      background: var(--white);
      border-radius: 18px;
      max-width: 820px;
      width: 100%;
      max-height: 90vh;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
    }
    .bf-viewer-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 1.3rem 1.6rem;
      border-bottom: 1px solid var(--gray-100);
    }
    .bf-viewer-title {
      font-size: 16px;
      font-weight: 800;
      line-height: 1.3;
    }
    .bf-viewer-sub {
      font-size: 12px;
      color: var(--gray-500);
      margin-top: 3px;
      font-weight: 500;
    }
    .bf-viewer-body {
      padding: 1.5rem 2rem;
      overflow-y: auto;
      flex: 1;
      background: #fafbfc;
    }

    /* ── Documento formatado (briefing/descritivo) ── */
    .bf-doc {
      font-family: 'Poppins', Arial, sans-serif;
      font-size: 13.5px;
      line-height: 1.7;
      color: var(--gray-700);
      max-width: 720px;
      margin: 0 auto;
      background: var(--white);
      padding: 2rem 2.2rem;
      border-radius: 12px;
      border: 1px solid var(--gray-100);
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
    }
    .bf-doc-h {
      font-size: 12.5px;
      font-weight: 800;
      color: var(--primary);
      text-transform: uppercase;
      letter-spacing: 0.9px;
      margin: 1.6rem 0 0.7rem;
      padding-bottom: 0.4rem;
      border-bottom: 1.5px solid var(--gray-100);
    }
    .bf-doc-h:first-child { margin-top: 0; }
    .bf-doc-p {
      margin: 0.45rem 0;
      color: var(--gray-700);
    }
    .bf-doc-k {
      color: var(--gray-900);
      font-weight: 700;
    }
    /* Rótulo de seção "solto" (ex.: "Responsabilidades:", "Requisitos:") — mais leve
       que .bf-doc-h (que é pra CABEÇALHOS EM CAIXA ALTA), usado no descritivo externo
       onde as seções ficam em Title Case seguidas do parágrafo corrido. */
    .bf-doc-label {
      font-weight: 800;
      color: var(--gray-900);
      margin: 1rem 0 0.2rem;
    }
    .bf-doc-label:first-child { margin-top: 0; }
    .bf-doc-ul {
      padding-left: 1.4rem;
      margin: 0.4rem 0 0.6rem;
    }
    .bf-doc-ul li {
      margin: 0.3rem 0;
      color: var(--gray-700);
    }

    /* Dark mode adaptations */
    body.dark .bf-header,
    body.dark .bf-res-header { background: linear-gradient(135deg, #1e2540, #2a2f45); }
    body.dark .bf-preview,
    body.dark .bf-tabs,
    body.dark .bf-tab-body,
    body.dark .bf-viewer-body { background: #131620; }
    body.dark .bf-doc { background: #1a1d2e; border-color: #2a2f45; color: #ccd6f6; }
    body.dark .bf-doc-p,
    body.dark .bf-doc-ul li { color: #ccd6f6; }
    body.dark .bf-doc-k { color: #e6f0ff; }
    body.dark .bf-doc-h { color: #93c5fd; border-color: #2a2f45; }
    body.dark .bf-doc-label { color: #e6f0ff; }
    body.dark .bf-actions { background: #1a1d2e; border-color: #2a2f45; }
    body.dark .bf-tab.on { background: #1a1d2e; }
    body.dark .bf-skill-lbl { background: #1e2130; border-color: #2a2f45; color: #a8b2d8; }
    body.dark .bf-viewer { background: #1a1d2e; }

    /* Responsividade */
    @media (max-width: 720px) {
      #modal-briefing-ia .modal { max-width: 100%; max-height: 100vh; border-radius: 0; }
      .bf-doc { padding: 1.2rem 1rem; }
      .bf-viewer-body { padding: 1rem; }
    }

    /* ── GARANTIAS ── */
    .garantia-card { background: var(--white); border-radius: 13px; padding: 1.1rem 1.3rem; box-shadow: 0 1px 6px rgba(0,0,0,0.06); border: 1px solid var(--gray-100); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: nowrap; overflow: hidden; margin-bottom: 0.8rem; }
    .g-info { flex: 0 0 220px; min-width: 220px; max-width: 220px; overflow: hidden; }
    .g-nome  { font-size: 14px; font-weight: 700; color: var(--gray-900); }
    .g-meta  { font-size: 11px; color: var(--gray-400); margin-top: 2px; }
    .g-bar   { flex: 0 0 260px; min-width: 260px; max-width: 260px; }
    .g-bar-label { font-size: 11px; color: var(--gray-400); margin-bottom: 4px; }
    .bar-outer { height: 8px; background: var(--gray-200); border-radius: 4px; overflow: hidden; }
    .bar-inner { height: 100%; border-radius: 4px; transition: width 0.4s; }
    .countdown { font-size: 13px; font-weight: 700; white-space: nowrap; }
    .cd-ok      { color: #059669; }
    .cd-warn    { color: #d97706; }
    .cd-danger  { color: var(--danger-text); }
    .cd-expired { color: var(--gray-400); }


    /* ── TAREFAS ── */
    .task-cols { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
    @media(max-width:768px){ .task-cols { grid-template-columns:1fr; } }
    .task-col-title { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0.8px; color:var(--gray-400); margin-bottom:0.8rem; display:flex; align-items:center; justify-content:space-between; }
    .task-card { background:var(--white); border-radius:11px; padding:1rem 1.1rem; box-shadow:0 1px 5px rgba(0,0,0,0.06); border:1px solid var(--gray-100); margin-bottom:0.65rem; border-left:4px solid var(--gray-300); transition:all 0.15s; }
    .task-card:hover { box-shadow:0 4px 14px rgba(37,99,235,0.1); }
    .task-card.pri-alta   { border-left-color:#ef4444; }
    .task-card.pri-media  { border-left-color:#f59e0b; }
    .task-card.pri-baixa  { border-left-color:#10b981; }
    .task-card.concluida  { opacity:0.55; border-left-color:var(--gray-300); }
    .task-card.vencida    { background:#fff8f8; }
    .task-titulo  { font-size:13px; font-weight:700; color:var(--gray-900); margin-bottom:4px; }
    .task-meta    { font-size:11px; color:var(--gray-400); display:flex; gap:0.6rem; flex-wrap:wrap; align-items:center; margin-bottom:6px; }
    .task-ref     { font-size:11px; background:var(--primary-pale); color:var(--primary); border-radius:5px; padding:1px 7px; font-weight:600; }
    .task-actions { display:flex; gap:0.4rem; margin-top:8px; }
    .task-btn     { font-size:11px; padding:3px 10px; border-radius:6px; border:none; cursor:pointer; font-weight:600; font-family:inherit; }
    .task-btn-done { background:#d1fae5; color:#065f46; }
    .task-btn-edit { background:var(--gray-100); color:var(--gray-700); }
    .task-btn-del  { background:#fee2e2; color:#991b1b; }
    .pri-badge { font-size:10px; font-weight:700; padding:1px 7px; border-radius:5px; text-transform:uppercase; letter-spacing:0.5px; }
    .pri-alta-b  { background:#fee2e2; color:#b91c1c; }
    .pri-media-b { background:#fef3c7; color:#92400e; }
    .pri-baixa-b { background:#d1fae5; color:#065f46; }
    .prazo-badge { font-size:10px; font-weight:600; }
    .prazo-vencido { color:var(--danger-text); }
    .prazo-hoje    { color:#d97706; }
    .prazo-ok      { color:var(--gray-400); }
    .task-empty { text-align:center; padding:2rem 1rem; color:var(--gray-400); font-size:13px; }
    /* badge no nav */
    .nav-badge { display:inline-flex; align-items:center; justify-content:center; background:#ef4444; color:white; border-radius:10px; font-size:9px; font-weight:800; min-width:16px; height:16px; padding:0 4px; margin-left:auto; }


    /* ══════════════════ DARK MODE ══════════════════ */
    body.dark {
      --primary:        #3b82f6;
      --primary-dark:   #93c5fd;
      --primary-light:  #1e3a5f;
      --primary-pale:   #1e2a3a;
      --primary-solid:  #2563eb;
      --white:          #1e2130;
      --success:        #34d399;
      --warning:        #fbbf24;
      --danger:         #f87171;
      --gray-50:        #131620;
      --gray-100:       #1e2130;
      --gray-200:       #2a2f45;
      --gray-300:       #3a4060;
      --gray-400:       #8892b0;
      --gray-500:       #8892b0;
      --danger-text:    #f87171;
      --success-text:   #34d399;
      --warning-text:   #fbbf24;
      --gray-600:       #a8b2d8;
      --gray-700:       #ccd6f6;
      --gray-800:       #e6f0ff;
      --gray-900:       #e6f0ff;
      --error:          #f87171;
      --surface:        #1e2130;
      background:       #131620;
      color:            #e6f0ff;
    }
    body.dark .sidebar        { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .sidebar-brand  { border-color:#2a2f45; }
    body.dark .sidebar-footer { border-color:#2a2f45; }
    body.dark .nav-item:hover { background:#2a2f45; color:var(--primary-dark); }
    body.dark .nav-item.active{ background:rgba(59,130,246,0.18); color:var(--primary-dark); }
    body.dark .main-content   { background:#131620; }
    body.dark .global-topbar  { background:rgba(19,22,32,0.97); border-color:#2a2f45; }
    body.dark .card           { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .stat-card      { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .modal          { background:#1a1d2e; }
    body.dark .modal-overlay  { background:rgba(0,0,0,0.65); }
    body.dark .finput, body.dark .form-input, body.dark .search-input, body.dark .filter-select, body.dark .global-search-input
                              { background:#131620; border-color:#2a2f45; color:#e6f0ff; }
    body.dark .btn-ghost      { background:#2a2f45; color:#a8b2d8; border-color:#3a4060; }
    body.dark .btn-ghost:hover{ background:#3a4060; }
    body.dark .table-wrap table thead tr { background:#1a1d2e; }
    body.dark .table-wrap table tr:hover { background:#1e2540; }
    body.dark .table-wrap table td, body.dark .table-wrap table th { border-color:#2a2f45; color:#ccd6f6; }
    body.dark .garantia-card  { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .kanban-col     { background:#1a1d2e; }
    body.dark .kanban-card    { background:#23273a; border-color:#2a2f45; }
    body.dark .task-card      { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .prosp-stage    { background:#1a1d2e; }
    body.dark .fin-card       { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .contrato-card  { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .global-results { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .gr-item:hover, body.dark .gr-item.focused { background:#1e2540; }
    body.dark .cand-view-tabs { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .cand-view-tab:not(.active):hover { background:#2a2f45; }
    body.dark .modal-tabs { background:transparent; border-color:#2a2f45; }
    body.dark .modal-tab { color:#8892b0; }
    body.dark .modal-tab:hover:not(.active) { background:rgba(255,255,255,0.04); color:#ccd6f6; border-bottom-color:#3a4060; }
    body.dark .modal-tab.active { color:#60a5fa; border-bottom-color:#3b82f6; background:linear-gradient(to bottom,transparent 60%,rgba(59,130,246,0.08)); }
    body.dark .det-tabs { background:transparent; border-color:#2a2f45; }
    body.dark .det-tab { color:#8892b0; }
    body.dark .det-tab:hover:not(.active) { background:rgba(255,255,255,0.04); color:#ccd6f6; border-bottom-color:#3a4060; }
    body.dark .det-tab.active { color:#60a5fa; border-bottom-color:#3b82f6; background:linear-gradient(to bottom,transparent 60%,rgba(59,130,246,0.08)); }
    body.dark .finput { background:#131620; border-color:#2a2f45; color:#e6f0ff; }
    body.dark .finput:focus { background:#1a1d2e; border-color:var(--primary); }
    body.dark .finput::placeholder { color:#3a4060; }
    body.dark .login-card     { background:#1a1d2e; border-color:#2a2f45; }
    body.dark #login-screen   { background:linear-gradient(135deg,#0d0f18 0%,#131a2b 50%,#0d0f18 100%); }
    /* Toggle button */
    .dark-toggle { display:flex; align-items:center; justify-content:space-between; padding:6px 8px; background:var(--gray-100); border-radius:8px; margin-bottom:6px; cursor:pointer; user-select:none; }
    .dark-toggle-label { font-size:11px; font-weight:600; color:var(--gray-600); }
    .dark-toggle-switch { width:32px; height:18px; background:var(--gray-300); border-radius:9px; position:relative; transition:background 0.2s; flex-shrink:0; }
    .dark-toggle-switch::after { content:''; position:absolute; width:14px; height:14px; background:white; border-radius:50%; top:2px; left:2px; transition:transform 0.2s; box-shadow:0 1px 3px rgba(0,0,0,0.2); }
    body.dark .dark-toggle-switch { background:var(--primary); }
    body.dark .dark-toggle-switch::after { transform:translateX(14px); }

    /* ══════════════════ DUPLICATA WARNING ══════════════════ */
    .dup-warning { display:none; background:#fff8e1; border:1.5px solid #fcd34d; border-radius:10px; padding:0.75rem 1rem; margin-top:0.5rem; font-size:12px; color:#78350f; }
    .dup-warning.visible { display:block; }
    body.dark .dup-warning { background:#2a2010; border-color:#78350f; color:#fcd34d; }

    /* ══════════════════ CONFIG PAGE ══════════════════ */
    /* Estilos detalhados definidos na seção de scripts de config */

    /* ── ATALHOS ── */

    /* ── DASHBOARD GRID ── */
    .dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
    @media(max-width:900px) { .dash-grid { grid-template-columns: 1fr; } }

    /* ── TOAST ──
       Fundo/texto fixos (não usam var(--gray-900)/var(--white)) de propósito: essas
       duas variáveis TROCAM de sentido no modo escuro (é assim que o resto do app
       consegue reusar os mesmos nomes nos dois temas), então um elemento que deveria
       parecer sempre igual — uma "pílula" escura com texto claro — inverte sozinho
       quando o modo escuro está ativo: fundo claro, texto escuro, sem nenhum aviso.
       Cores fixas garantem a mesma aparência (escura) nos dois temas. */
    #toast { position: fixed; bottom: 1.5rem; right: 1.5rem; background: #111827; color: #ffffff; padding: 11px 18px; border-radius: 10px; font-size: 13px; font-weight: 600; z-index: 999; opacity: 0; transform: translateY(8px); transition: all 0.3s; pointer-events: none; }
    #toast.show { opacity: 1; transform: translateY(0); }

    /* ── Indicador de triagem em segundo plano (ver mtrAnalisar) ── */
    #mtr-bg-indicator { position: fixed; bottom: 1.5rem; left: 1.5rem; background: #111827; color: #ffffff; padding: 10px 16px; border-radius: 12px; font-size: 12.5px; z-index: 998; display: none; align-items: center; gap: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.25); cursor: pointer; max-width: 260px; }
    #mtr-bg-indicator.show { display: flex; }
    #mtr-bg-indicator:hover { opacity: 0.92; }

    /* ── ACTIONS ── */
    .row-actions { display: flex; gap: 4px; }

    /* ── BANCO DE VAGAS PICKER ── */
    .vn-row { display: flex; gap: 0.5rem; align-items: flex-start; }
    .vn-row .finput { flex: 1; }
    #vn-select-modal { margin-top: 0.5rem; width: 100%; display: none; }

    /* ── CONTRATOS FIELDS ── */
    #contrato-fields { display: none; margin-top: 0; }
    #contrato-fields .form-grid { margin-top: 0; }

    /* ── SETUP BANNER ── */
    .setup-banner { background: linear-gradient(135deg,#fef3c7,#fde68a); border: 1px solid #f59e0b; border-radius: 12px; padding: 1rem 1.3rem; margin-bottom: 1.5rem; font-size: 13px; color: #92400e; display: none; }
    .setup-banner.show { display: block; }
    .setup-banner strong { display: block; margin-bottom: 0.3rem; font-size: 14px; }

    /* ── MODAL XL ── */
    .modal-xl { max-width: 720px; }

    /* ── MODAL TABS ── */
    /* ── MODAL TABS — underline style ── */
    .modal-tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-100); margin-bottom:1.5rem; flex-wrap:wrap; }
    .modal-tab { padding:10px 18px; font-size:13px; font-weight:600; color:var(--gray-400); border:none; background:transparent; border-bottom:3px solid transparent; margin-bottom:-2px; cursor:pointer; transition:all 0.18s ease; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; font-family:'Poppins',sans-serif; }
    .modal-tab:hover:not(.active) { color:var(--gray-700); background:var(--gray-50); border-bottom-color:var(--gray-300); }
    .modal-tab.active { color:var(--primary); border-bottom-color:var(--primary); font-weight:800; background:linear-gradient(to bottom,transparent 60%,rgba(37,99,235,0.05)); }
    .tab-panel { display:none; }
    .tab-panel.active { display:block; }

    /* ── CONTRATO CARDS ── */
    .contrato-card { background:var(--white); border:1px solid var(--gray-200); border-left:4px solid var(--gray-300); border-radius:12px; padding:1rem 1.1rem; margin-bottom:0.7rem; box-shadow:0 1px 4px rgba(0,0,0,0.04); transition:box-shadow 0.15s; }
    .contrato-card:hover { box-shadow:0 4px 14px rgba(0,0,0,0.08); }
    .contrato-card.tipo-rs { border-left-color:#2563eb; }
    .contrato-card.tipo-consultoria { border-left-color:#7c3aed; }
    .cont-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:0.8rem; }
    .cont-info { flex:1; min-width:0; }
    .cont-tipo { font-size:10px; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:3px; display:flex; align-items:center; gap:5px; }
    .cont-nome { font-size:14px; font-weight:800; color:var(--gray-900); }
    .cont-meta { font-size:11px; color:var(--gray-600); margin-top:5px; display:flex; gap:0.5rem 0.9rem; flex-wrap:wrap; align-items:center; }
    .cont-detalhes { font-size:11.5px; color:var(--gray-500); margin-top:5px; display:flex; gap:0.5rem 1rem; flex-wrap:wrap; }
    .cont-progress-wrap { margin-top:8px; max-width:260px; }
    .cont-progress-track { height:6px; border-radius:99px; background:var(--gray-100); overflow:hidden; }
    .cont-progress-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,#f59e0b,#10b981); transition:width 0.3s; }
    .cont-actions { display:flex; gap:4px; flex-shrink:0; align-items:flex-start; padding-top:2px; flex-wrap:wrap; }
    .badge-st { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:12px; font-size:10px; font-weight:700; }
    .bs-ativo     { background:#d1fae5; color:#065f46; }
    .bs-concluido { background:#dbeafe; color:#1e40af; }
    .bs-cancelado { background:#fee2e2; color:#991b1b; }
    .bs-pausado   { background:#fef3c7; color:#92400e; }
    .bs-pago      { background:#d1fae5; color:#065f46; }
    .bs-parcial   { background:#fef3c7; color:#92400e; }
    .bs-pendente  { background:#fee2e2; color:#991b1b; }
    .bs-alerta    { background:#fee2e2; color:#991b1b; }
    body.dark .cont-progress-track { background:#2a2f45; }
    .add-cont-btn { width:100%; padding:10px; border:2px dashed var(--gray-200); border-radius:9px; font-size:13px; font-weight:600; color:var(--gray-400); background:none; cursor:pointer; transition:all 0.15s; margin-top:0.5rem; }
    .add-cont-btn:hover { border-color:var(--primary); color:var(--primary); background:var(--primary-pale); }
    /* ── Vagas ── */
    .vaga-card {
      background: var(--white);
      border: 1.5px solid var(--gray-200);
      border-radius: 16px;
      padding: 1.2rem 1.3rem;
      margin-bottom: 1rem;
      box-shadow: 0 2px 12px rgba(0,0,0,0.05);
      transition: box-shadow 0.2s;
      border-left: 4px solid #10b981;
    }
    .vaga-card:hover { box-shadow: 0 4px 24px rgba(59,91,219,0.10); }
    .vaga-card.pausada { border-left-color: #f59e0b; }
    .vaga-card.fechada { border-left-color: #6b7280; }
    .vaga-card.cancelada { border-left-color: #dc2626; }
    .vaga-card.urgente { border-left-color: #dc2626; }
    .vaga-card-hd { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
    .vaga-titulo { font-size:15px; font-weight:800; color:var(--gray-900); flex:1; }
    .vaga-pipeline { display:flex; gap:6px; flex-wrap:wrap; margin-top:0.55rem; }
    .vaga-etapa { display:flex; align-items:center; gap:3px; font-size:11px; font-weight:600; padding:2px 8px; border-radius:10px; }
    .prio-alta   { background:#fee2e2; color:#991b1b; }
    .prio-media  { background:#fef3c7; color:#92400e; }
    .prio-baixa  { background:#d1fae5; color:#065f46; }
    .prio-none   { background:var(--gray-100); color:var(--gray-600); }
    .vaga-aberta    { background:#d1fae5; color:#065f46; }
    .vaga-fechada   { background:#f3f4f6; color:#374151; }

    /* ═══════════ BANCO DE CURRÍCULOS ═══════════ */
    .talent-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1rem; }
    .talent-card {
      background: var(--white); border: 1.5px solid var(--gray-200); border-radius: 16px;
      padding: 1.1rem 1.2rem; box-shadow: 0 2px 12px rgba(0,0,0,0.05);
      transition: box-shadow 0.2s, transform 0.2s; display:flex; flex-direction:column; gap:0.6rem;
    }
    .talent-card:hover { box-shadow: 0 6px 24px rgba(37,99,235,0.12); transform: translateY(-2px); }
    .talent-hd { display:flex; align-items:center; gap:0.7rem; }
    .talent-avatar {
      width:42px; height:42px; border-radius:50%; background:var(--primary-pale); color:var(--primary);
      display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; flex-shrink:0;
    }
    .talent-nome { font-size:14px; font-weight:800; color:var(--gray-900); cursor:pointer; }
    .talent-nome:hover { color:var(--primary); text-decoration:underline; }
    .talent-cargo { font-size:12px; color:var(--gray-600); font-weight:600; margin-top:1px; }
    .talent-meta { font-size:11px; color:var(--gray-400); display:flex; flex-wrap:wrap; gap:3px 10px; }
    .talent-badges { display:flex; flex-wrap:wrap; gap:5px; }
    .talent-chip { display:inline-block; font-size:10px; font-weight:700; padding:2px 8px; border-radius:20px; background:var(--gray-100); color:var(--gray-600); white-space:nowrap; }
    .talent-chip-disc { background:#ede9fe; color:#6d28d9; }
    .talent-chip-tag  { background:var(--primary-pale); color:var(--primary-dark); }
    .talent-motivo { font-size:11px; color:#991b1b; background:#fef2f2; border:1px solid #fecaca; border-radius:8px; padding:5px 9px; line-height:1.4; }
    .talent-actions { display:flex; gap:6px; margin-top:auto; padding-top:0.5rem; border-top:1px solid var(--gray-100); }
    .talent-actions .btn { flex:1; justify-content:center; padding:6px 8px; font-size:11px; }
    body.dark .talent-card { background:#1e2130; border-color:#2a2f45; }
    body.dark .talent-chip { background:#2a2f45; color:#a8b2d8; }
    body.dark .talent-chip-disc { background:#2e1f4d; color:#c4b5fd; }
    body.dark .talent-chip-tag { background:#1e2a3a; color:#93c5fd; }
    body.dark .talent-motivo { background:#3a1a1a; border-color:#5c2626; color:#fca5a5; }
    body.dark .talent-actions { border-color:#2a2f45; }
    .vaga-cancelada { background:#fee2e2; color:#991b1b; }

    /* ═══════════ CLIENTES — cards ═══════════ */
    .cli-avatar { border-radius: 12px; } /* "squircle" — diferencia empresa de pessoa (avatar redondo, usado nos candidatos) */
    .cli-tag-chip { background:#fef3c7; color:#92400e; }
    .talent-chip-ok    { background:#d1fae5; color:#065f46; }
    .talent-chip-atencao { background:#fef3c7; color:#92400e; }
    .talent-chip-critico { background:#fee2e2; color:#991b1b; }
    body.dark .cli-tag-chip { background:#3a2f1a; color:#fbbf24; }
    body.dark .talent-chip-ok { background:#0f2e22; color:#6ee7b7; }
    body.dark .talent-chip-atencao { background:#3a2f1a; color:#fbbf24; }
    body.dark .talent-chip-critico { background:#3a1a1a; color:#fca5a5; }

    /* Pipeline inline */
    .pipe-col {
      flex: 1;
      min-width: 110px;
      background: var(--gray-50);
      border-radius: 12px;
      padding: 10px;
    }
    .pipe-col-hd {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.8px;
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .pipe-count {
      font-size: 12px;
      font-weight: 800;
      padding: 2px 8px;
      border-radius: 20px;
    }
    .pipe-cand-card {
      background: var(--white);
      border-radius: 8px;
      padding: 7px 10px;
      margin-bottom: 5px;
      cursor: pointer;
      font-size: 12px;
      font-weight: 600;
      color: var(--gray-800);
      border: 1px solid var(--gray-200);
      transition: transform 0.1s, box-shadow 0.1s;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .pipe-cand-card:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(0,0,0,0.08); }
    .pipe-empty { font-size: 11px; color: var(--gray-400); text-align: center; padding: 10px 0; }

    /* Kanban de vaga (modal) */
    .vk-wrap { display:flex; gap:14px; overflow-x:auto; padding-bottom:0.5rem; min-height:300px; }
    .vk-col  { flex:0 0 190px; background:var(--gray-50); border-radius:12px; padding:0.8rem; }
    .vk-col-hd { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.7px; margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; }
    .vk-card { background:var(--white); border:1px solid var(--gray-200); border-radius:10px; padding:0.6rem 0.75rem; margin-bottom:7px; cursor:grab; font-size:12px; box-shadow:0 1px 4px rgba(0,0,0,0.05); transition: transform 0.1s; }
    .vk-card:hover { transform: translateY(-1px); }

    /* ── PACKAGE INFO ── */
    .pkg-info { background:var(--primary-pale); border:1px solid var(--primary-light); border-radius:8px; padding:0.6rem 0.9rem; font-size:12px; color:var(--primary-dark); display:none; }
    .pkg-info.show { display:block; }

    /* ── SECTION DIVIDER ── */
    .sdiv { font-size:10px; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.8px; padding:0.3rem 0 0.2rem; border-bottom:1px solid var(--gray-100); margin-bottom:0.2rem; grid-column:1/-1; }

    /* ── CLIENTE STATUS / REVENUE ── */
    .cl-ativo   { color:#059669; font-size:12px; font-weight:700; }
    .cl-inativo { color:#9ca3af; font-size:12px; font-weight:700; }

    /* ── DET-TABS (modal candidato detalhe) ── */
    /* ── DET TABS — underline style ── */
    .det-tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-100); margin-bottom:1rem; flex-shrink:0; flex-wrap:wrap; overflow-x:auto; }
    .det-tab { padding:9px 15px; font-size:12.5px; font-weight:600; color:var(--gray-400); border:none; background:transparent; border-bottom:3px solid transparent; margin-bottom:-2px; cursor:pointer; transition:all 0.18s ease; white-space:nowrap; display:inline-flex; align-items:center; gap:5px; font-family:'Poppins',sans-serif; flex-shrink:0; }
    .det-tab:hover:not(.active) { color:var(--gray-700); background:var(--gray-50); border-bottom-color:var(--gray-300); }
    .det-tab.active { color:var(--primary); border-bottom-color:var(--primary); font-weight:800; background:linear-gradient(to bottom,transparent 60%,rgba(37,99,235,0.05)); }
    .det-panel { display:none; }
    .det-panel.active { display:block; }

    /* ── BULK ACTION BAR ── */
    .bulk-bar { display:none; position:sticky; top:0; z-index:50; background:var(--primary-solid); color:#fff; border-radius:10px; padding:0.6rem 1rem; margin-bottom:0.7rem; align-items:center; gap:0.7rem; flex-wrap:wrap; box-shadow:0 4px 16px rgba(59,130,246,0.3); }
    .bulk-bar.visible { display:flex; }
    .bulk-bar .bulk-count { font-size:13px; font-weight:700; flex:1; }
    .bulk-bar .btn-bulk { background:rgba(0,0,0,0.18); color:#fff; border:none; border-radius:7px; padding:5px 12px; font-size:12px; font-weight:700; cursor:pointer; transition:background 0.15s; }
    .bulk-bar .btn-bulk:hover { background:rgba(0,0,0,0.32); }
    .bulk-bar .btn-bulk-danger { background:rgba(239,68,68,0.35); }
    .bulk-bar .btn-bulk-danger:hover { background:rgba(239,68,68,0.55); }
    /* checkbox column */
    .cb-col { width:36px; text-align:center !important; }
    input[type="checkbox"].row-cb { width:15px; height:15px; cursor:pointer; accent-color:var(--primary); }
    /* Live indicator */
    .live-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#10b981; animation:livepulse 1.8s infinite; margin-right:4px; }
    @keyframes livepulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:0.5;transform:scale(1.4);} }
    /* Notes panel */
    .nota-item { border-bottom:1px solid var(--gray-100); padding:0.6rem 0; }
    .nota-item:last-child { border-bottom:none; }
    .nota-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
    .nota-user { font-size:11px; font-weight:700; color:var(--primary); }
    .nota-date { font-size:10px; color:var(--gray-400); }
    .nota-text { font-size:13px; color:var(--gray-700); line-height:1.5; }
    /* Import CSV modal preview */
    .csv-preview { max-height:220px; overflow-y:auto; font-size:11px; border-radius:8px; border:1px solid var(--gray-100); }
    .csv-preview table { width:100%; border-collapse:collapse; }
    .csv-preview th { background:var(--gray-50); font-weight:700; padding:5px 8px; text-align:left; font-size:10px; color:var(--gray-600); border-bottom:1px solid var(--gray-100); position:sticky;top:0; }
    .csv-preview td { padding:4px 8px; border-bottom:1px solid var(--gray-50); color:var(--gray-700); white-space:nowrap; }

    /* ── CROSS-SYSTEM CARDS ── */
    .cross-card { background:var(--white); border:1px solid var(--gray-100); border-radius:12px; padding:1rem 1.1rem; margin-bottom:0.8rem; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
    .cross-card:last-child { margin-bottom:0; }
    .cross-sec { font-size:10px; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.8px; margin:0.6rem 0 0.3rem; }
    .det-loading { text-align:center; padding:2rem; color:var(--gray-400); font-size:13px; }
    .det-empty { text-align:center; padding:2.5rem 1rem; color:var(--gray-400); font-size:13px; }
    .det-empty-icon { font-size:32px; margin-bottom:0.5rem; }
    .score-bubble { min-width:60px; height:60px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:20px; font-weight:800; color:white; flex-shrink:0; line-height:1; }
    .score-bubble.high { background:linear-gradient(135deg,#047857,#065f46); }
    .score-bubble.medium { background:linear-gradient(135deg,#b45309,#92400e); }
    .score-bubble.low { background:linear-gradient(135deg,#dc2626,#b91c1c); }

    /* ── CANDIDATO DETALHE GRID ── */
    .det-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem 1.5rem; margin-bottom:1rem; }
    .det-info-grid .s2 { grid-column:1/-1; }
    .di-label { font-size:10px; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:2px; }
    .di-value { font-size:14px; color:var(--gray-900); font-weight:500; }
    .det-acoes { display:flex; gap:0.5rem; flex-wrap:wrap; padding-top:1rem; border-top:1px solid var(--gray-100); margin-top:0.5rem; }

    /* ── STATUS PIPELINE ── */
    .pipeline-badge { display:inline-flex; padding:3px 10px; border-radius:12px; font-size:11px; font-weight:700; }
    .pb-cadastrado        { background:#e0e7ff; color:#3730a3; }
    .pb-agendado_1        { background:#fef3c7; color:#92400e; }
    .pb-aprovado_1        { background:#d1fae5; color:#065f46; }
    .pb-agendado_gestor   { background:#fde68a; color:#92400e; }
    .pb-entrevistado_gestor{ background:#dbeafe; color:#1e40af; }
    .pb-aprovado          { background:#d1fae5; color:#065f46; }
    .pb-reprovado         { background:#fee2e2; color:#991b1b; }

    /* ── KANBAN ── */
    /* ── VIEW TABS (Lista / Kanban) ── */
    .cand-view-tabs { display:flex; gap:0; margin-bottom:1rem; background:var(--white); border:1.5px solid var(--gray-200); border-radius:12px; padding:4px; width:fit-content; box-shadow:0 1px 4px rgba(0,0,0,0.05); }
    .cand-view-tab { padding:7px 20px; border:none; background:transparent; border-radius:9px; font-size:13px; font-weight:600; color:var(--gray-600); cursor:pointer; transition:all 0.18s; display:flex; align-items:center; gap:6px; font-family:'Poppins',sans-serif; }
    .cand-view-tab.active { background:var(--primary-solid); color:#fff; box-shadow:0 2px 8px rgba(37,99,235,0.25); }
    .cand-view-tab:not(.active):hover { background:var(--gray-100); color:var(--gray-900); }

    .kanban-board {
      display:flex; gap:1rem; overflow-x:auto; padding-bottom:1rem; min-height:55vh;
      align-items:flex-start; scroll-behavior:smooth;
      scrollbar-width:thin; scrollbar-color:var(--primary-light) var(--gray-100);
    }
    .kanban-board::-webkit-scrollbar { height:8px; }
    .kanban-board::-webkit-scrollbar-track { background:var(--gray-100); border-radius:10px; }
    .kanban-board::-webkit-scrollbar-thumb { background:var(--primary-light); border-radius:10px; }
    .kanban-board::-webkit-scrollbar-thumb:hover { background:var(--primary); }
    .kanban-col { min-width:236px; max-width:236px; flex-shrink:0; background:var(--gray-50); border-radius:14px; padding:0; border:1.5px solid var(--gray-200); transition:all 0.15s; display:flex; flex-direction:column; overflow:hidden; }
    .kanban-col.drag-over { background:var(--primary-pale); border-color:var(--primary); box-shadow:0 0 0 2px #2563eb33; }
    .kanban-col-header { display:flex; align-items:center; justify-content:space-between; padding:10px 12px 9px; background:var(--white); border-bottom:1px solid var(--gray-100); position:sticky; top:0; z-index:1; }
    .kanban-col-title { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.6px; display:flex; align-items:center; gap:6px; }
    .kanban-col-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
    .kanban-col-count { font-size:11px; font-weight:700; background:rgba(0,0,0,0.07); color:var(--gray-600); padding:2px 8px; border-radius:10px; }
    .kanban-col-body { padding:10px; display:flex; flex-direction:column; gap:7px; flex:1; min-height:80px; }
    .kanban-card { position:relative; background:var(--white); border-radius:10px; padding:11px 12px; box-shadow:0 1px 3px rgba(0,0,0,0.06); border:1px solid var(--gray-100); border-left-width:3px; cursor:grab; transition:box-shadow 0.2s, transform 0.15s; user-select:none; }
    .kanban-card:hover { box-shadow:0 5px 16px rgba(37,99,235,0.13); transform:translateY(-2px); border-left-width:3px; }
    .kanban-card.dragging { opacity:0.45; cursor:grabbing; transform:rotate(2deg) scale(1.03); }
    .kc-nome { font-size:13px; font-weight:700; color:var(--gray-900); margin-bottom:2px; padding-right:32px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    /* ── Badge de nota da triagem (0–10) — reaproveitada no card do Kanban e na lista de Candidatos ── */
    .kc-nota-badge { display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:22px; padding:0 6px; border-radius:7px; font-size:11px; font-weight:800; line-height:1; border:1.5px solid transparent; }
    .kc-nota-alta  { background:#f0fdf4; color:#15803d; border-color:#bbf7d0; }
    .kc-nota-media { background:#fefce8; color:#a16207; border-color:#fde68a; }
    .kc-nota-baixa { background:#fef2f2; color:#b91c1c; border-color:#fecdd3; }
    .kc-nota-sem   { background:var(--gray-100); color:var(--gray-600); border-color:var(--gray-200); }
    body.dark .kc-nota-alta  { background:rgba(16,185,129,0.12); color:#34d399; border-color:rgba(16,185,129,0.3); }
    body.dark .kc-nota-media { background:rgba(245,158,11,0.12); color:#fbbf24; border-color:rgba(245,158,11,0.3); }
    body.dark .kc-nota-baixa { background:rgba(239,68,68,0.12);  color:#f87171; border-color:rgba(239,68,68,0.3); }
    body.dark .kc-nota-sem   { background:#2a2f45; color:#a8b2d8; border-color:#2a2f45; }
    .kanban-card .kc-nota-badge { position:absolute; top:9px; right:10px; height:26px; min-width:26px; border-radius:8px; font-size:12px; }
    .kc-cargo { font-size:11px; color:var(--gray-400); margin-bottom:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .kc-footer { display:flex; align-items:center; justify-content:space-between; padding-top:7px; border-top:1px solid var(--gray-100); }
    .kc-empresa { font-size:11px; color:var(--primary); font-weight:600; max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .kc-sla-badge { display:inline-flex; align-items:center; gap:3px; font-size:10px; font-weight:700; padding:2px 7px; border-radius:20px; white-space:nowrap; }
    .kc-sla-ok      { background:#f0fdf4; color:#15803d; }
    .kc-sla-warn    { background:#fefce8; color:#a16207; }
    .kc-sla-danger  { background:#fef2f2; color:#b91c1c; }
    body.dark .kc-sla-ok    { background:rgba(16,185,129,0.12); color:#34d399; }
    body.dark .kc-sla-warn  { background:rgba(245,158,11,0.12); color:#fbbf24; }
    body.dark .kc-sla-danger{ background:rgba(239,68,68,0.12);  color:#f87171; }
    /* Quick Search */
    .qs-item { display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;transition:background 0.1s; }
    .qs-item:hover,.qs-item.qs-sel { background:var(--primary-pale); }
    .qs-item-icon { width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0; }
    .qs-item-name { font-size:13px;font-weight:600;color:var(--gray-900); }
    .qs-item-sub  { font-size:11px;color:var(--gray-400); }
    .qs-group     { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.7px;color:var(--gray-400);padding:8px 16px 3px; }
    .qs-empty     { text-align:center;padding:2rem;color:var(--gray-400);font-size:13px; }
    body.dark #quick-search-overlay > div { background:#1a1d2e; }
    body.dark .qs-item-name { color:#e2e8f0; }
    body.dark .qs-item:hover,body.dark .qs-item.qs-sel { background:#2a3050; }
    body.dark #qs-input { color:#e2e8f0; }
    .kanban-empty { text-align:center; padding:1.8rem 0.5rem; color:var(--gray-400); font-size:12px; }
    body.dark .kanban-col { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .kanban-col-header { background:#12152a; border-color:#2a2f45; }
    body.dark .kanban-card { background:#23273a; border-color:#2a2f45; }
    body.dark .kc-nome { color:#e2e8f0; }

    /* ── FINANCEIRO ── */
    .fin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(195px,1fr)); gap:0.85rem; margin-bottom:1.5rem; }
    .fin-card { background:var(--white); border-radius:13px; padding:1.1rem 1.3rem; border:1px solid var(--gray-100); box-shadow:0 1px 4px rgba(0,0,0,0.04); border-left-width:4px; }
    .fin-icon { font-size:20px; margin-bottom:0.35rem; }
    .fin-val { font-size:20px; font-weight:800; color:var(--gray-900); line-height:1.1; margin-bottom:3px; word-break:break-all; }
    .fin-label { font-size:11px; color:var(--gray-400); font-weight:500; }
    .nf-row { display:flex; align-items:center; justify-content:space-between; padding:0.65rem 1.2rem; border-bottom:1px solid var(--gray-50); font-size:13px; }
    .nf-row:last-child { border-bottom:none; }
    .bar-chart { display:flex; flex-direction:column; gap:0.55rem; padding:0.8rem 1.2rem 1.2rem; }
    .bar-row { display:flex; align-items:center; gap:0.8rem; }
    .bar-label { font-size:12px; color:var(--gray-600); min-width:120px; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:right; }
    .bar-track { flex:1; height:9px; background:var(--gray-100); border-radius:5px; overflow:hidden; }
    .bar-fill { height:100%; border-radius:5px; background:linear-gradient(90deg,var(--primary),#1d4ed8); }
    .bar-value { font-size:11px; color:var(--gray-600); font-weight:700; min-width:100px; }

    /* ── PROSPECÇÃO ── */
    .prosp-pipe { display:flex; gap:0.8rem; overflow-x:auto; padding-bottom:0.8rem; margin-bottom:1.5rem; align-items:flex-start; }
    .prosp-stage { min-width:185px; max-width:200px; flex-shrink:0; }
    .prosp-hd { padding:0.55rem 0.8rem; border-radius:9px 9px 0 0; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.5px; color:#fff; display:flex; align-items:center; justify-content:space-between; }
    .prosp-bd { background:var(--gray-50); border-radius:0 0 9px 9px; padding:0.55rem; min-height:70px; }
    .prosp-empty { font-size:11px; color:var(--gray-400); text-align:center; padding:0.8rem 0; }
.prosp-total { font-size:11px; font-weight:700; color:#fff; background:rgba(0,0,0,0.55); padding:1px 7px; border-radius:8px; white-space:nowrap; }
    /* Lead Kanban full */
    .lk-col { background:var(--gray-50); border-radius:14px; min-width:200px; flex:1; display:flex; flex-direction:column; border:2px solid transparent; transition:all 0.2s; }
    .lk-col.drag-over { border-color:var(--primary); background:rgba(59,130,246,0.04); box-shadow:0 0 0 4px rgba(37,99,235,0.08); }
    .lk-col-hd { padding:0.75rem 1rem; border-radius:12px 12px 0 0; display:flex; align-items:center; justify-content:space-between; color:#fff; }
    .lk-col-hd .lk-title { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.7px; display:flex; align-items:center; gap:5px; }
    .lk-col-hd .lk-count { background:rgba(255,255,255,0.25); padding:2px 9px; border-radius:12px; font-size:11px; font-weight:800; }
    .lk-col-bd { flex:1; padding:0.6rem; min-height:140px; display:flex; flex-direction:column; gap:0; }
    .lk-col-footer { padding:0.5rem 0.6rem; border-top:1px solid rgba(0,0,0,0.06); font-size:11px; font-weight:700; color:var(--gray-500); display:flex; justify-content:space-between; align-items:center; }
    .lk-card { background:var(--white); border-radius:10px; padding:0.8rem 0.9rem; margin-bottom:0.5rem; border:1px solid var(--gray-100); border-left:3px solid transparent; box-shadow:0 1px 4px rgba(0,0,0,0.06); cursor:grab; transition:all 0.15s; user-select:none; }
    .lk-card:hover { transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,0.1); border-color:var(--gray-200); }
    .lk-card.dragging { opacity:0.35; transform:scale(0.95) rotate(1deg); }
    .lk-card-nome { font-size:13px; font-weight:700; color:var(--gray-900); margin-bottom:2px; }
    .lk-card-meta { font-size:11px; color:var(--gray-500); line-height:1.4; }
    .lk-card-val { font-size:13px; font-weight:800; color:#059669; margin-top:6px; }
    .lk-card-alerta { font-size:10px; font-weight:700; padding:2px 7px; border-radius:8px; display:inline-block; margin-top:5px; }
    .lk-card-alerta.quente { background:#fef3c7; color:#92400e; }
    .lk-card-alerta.atrasado { background:#fee2e2; color:#991b1b; }
    .lk-card-alerta.ok { background:#dcfce7; color:#166534; }
    .lk-pipeline-bar { display:flex; gap:0; margin-bottom:1.2rem; border-radius:10px; overflow:hidden; height:8px; background:var(--gray-100); }
    .lk-pipeline-seg { height:100%; transition:width 0.6s; }
    .lk-empty { text-align:center; padding:1.2rem 0.5rem; color:var(--gray-400); font-size:12px; border:2px dashed var(--gray-100); border-radius:8px; margin:4px 0; }
    .lk-empty { font-size:11px; color:var(--gray-400); text-align:center; padding:1.5rem 0.5rem; border:2px dashed var(--gray-100); border-radius:8px; margin-top:4px; }

    /* ── CLIENTE DETALHE MODAL ── */
    .modal-fs { max-width:860px; }
    .cli-stats-row { display:flex; gap:2rem; flex-wrap:wrap; margin-top:0.8rem; }
    .cli-stat { text-align:center; padding:0 0.5rem; }
    .cli-stat-v { font-size:22px; font-weight:800; color:var(--primary); line-height:1; }
    .cli-stat-l { font-size:9px; color:var(--gray-400); text-transform:uppercase; font-weight:700; letter-spacing:0.8px; margin-top:2px; }

    /* ── NOTIFICATION BELL ── */
    .notif-btn { position:relative; background:none; border:none; cursor:pointer; font-size:20px; padding:4px 8px; border-radius:8px; transition:background 0.15s; }
    .notif-btn:hover { background:var(--gray-100); }
    .notif-badge { position:absolute; top:2px; right:2px; background:#dc2626; color:#fff; border-radius:10px; font-size:9px; font-weight:800; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; padding:0 4px; }
    .notif-dropdown { position:absolute; right:0; top:calc(100% + 8px); width:340px; background:var(--white); border:1.5px solid var(--gray-200); border-radius:14px; box-shadow:0 8px 24px rgba(0,0,0,0.12); z-index:300; display:none; max-height:420px; overflow-y:auto; }
    .notif-dropdown.open { display:block; }
    .notif-header { padding:0.8rem 1rem; font-size:13px; font-weight:800; border-bottom:1px solid var(--gray-100); display:flex; align-items:center; justify-content:space-between; }
    .notif-empty { padding:1.5rem; text-align:center; color:var(--gray-400); font-size:13px; }
    .notif-wrap { position:relative; }
    body.dark .notif-dropdown { background:#1a1d2e; border-color:#2a2f45; }
    /* ── SLA badge ── */
    .sla-badge { display:inline-flex; align-items:center; gap:3px; font-size:10px; font-weight:700; padding:2px 8px; border-radius:10px; }
    .sla-ok   { background:#d1fae5; color:#065f46; }
    .sla-warn { background:#fef3c7; color:#92400e; }
    /* ── CALENDAR ── */
    .cal-nav { display:flex; align-items:center; gap:0.8rem; }
    .cal-nav-btn { background:var(--gray-100); border:none; border-radius:7px; padding:5px 12px; cursor:pointer; font-size:13px; font-weight:700; font-family:inherit; }
    .cal-nav-btn:hover { background:var(--gray-200); }
    /* ── ANALYTICS charts ── */
    .chart-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-bottom:1.5rem; }
    @media(max-width:900px){ .chart-grid { grid-template-columns:1fr; } }
    .chart-card { background:var(--white); border-radius:14px; border:1px solid var(--gray-100); box-shadow:0 2px 8px rgba(0,0,0,0.05); padding:1.2rem; }
    .chart-title { font-size:13px; font-weight:800; color:var(--gray-900); margin-bottom:1rem; }
    .chart-canvas-wrap { position:relative; height:220px; }
    /* ── COMPARATIVO ── */
    /* ── WA TEMPLATES ── */
    body.dark .chart-card { background:#1a1d2e; border-color:#2a2f45; }

    /* ── KANBAN LEMBRETES (.kb-*) ── */
    .kb-col { background:var(--gray-50); border-radius:14px; padding:0; overflow:hidden; min-height:200px; border:1px solid var(--gray-200); display:flex; flex-direction:column; }
    .kb-col-header { padding:11px 14px 10px; display:flex; align-items:center; justify-content:space-between; background:var(--white); border-bottom:1px solid var(--gray-100); }
    .kb-col-header-left { display:flex; align-items:center; gap:7px; }
    .kb-col-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
    .kb-col-label { font-size:12px; font-weight:700; color:var(--gray-700); }
    .kb-col-count { font-size:11px; padding:2px 8px; border-radius:10px; font-weight:700; }
    .kb-cards { padding:10px; display:flex; flex-direction:column; gap:8px; flex:1; }
    .kb-card { background:#fff; border-radius:11px; padding:12px; box-shadow:0 1px 4px rgba(0,0,0,0.06); border:1px solid var(--gray-100); border-left-width:3px; transition:box-shadow 0.2s,transform 0.15s; cursor:grab; }
    .kb-card:hover { box-shadow:0 5px 18px rgba(0,0,0,0.10); transform:translateY(-1px); }
    .kb-card-nome { font-size:13px; font-weight:700; color:var(--gray-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .kb-card-vaga { font-size:11px; color:var(--gray-400); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .kb-card-actions { margin-top:9px; display:flex; gap:5px; flex-wrap:wrap; }
    .kb-btn { font-size:10px; padding:4px 9px; border-radius:6px; border:1.5px solid var(--gray-200); background:#fff; cursor:pointer; font-family:'Poppins',sans-serif; font-weight:600; transition:all 0.15s; }
    .kb-btn:hover { background:var(--primary-solid); color:#fff; border-color:var(--primary-solid); }
    .kb-btn.kb-btn-wa { border-color:#25d366; color:#16a34a; }
    .kb-btn.kb-btn-wa:hover { background:#0f8340; color:#fff; }
    .kb-btn.kb-btn-ok { border-color:#10b981; color:#10b981; }
    .kb-btn.kb-btn-ok:hover { background:#098052; color:#fff; }
    .kb-empty { padding:2.2rem 1rem; text-align:center; }
    .kb-empty-icon { font-size:28px; opacity:0.35; margin-bottom:0.4rem; }
    .kb-empty-txt { font-size:12px; color:var(--gray-400); font-weight:500; }
    .kb-col.drag-over { background:var(--primary-pale); outline:2px dashed var(--primary); outline-offset:-4px; }
    .kb-card.dragging { opacity:0.4; cursor:grabbing; transform:rotate(1.5deg) scale(1.03); }
    .kb-hist-wrap { margin-top:6px; max-height:220px; overflow-y:auto; padding-right:2px; }
    .kb-hist-row { display:flex; gap:8px; align-items:flex-start; padding:5px 0; }
    .kb-hist-toggle { width:100%; display:flex; justify-content:space-between; align-items:center; font-size:10px; color:var(--gray-400); background:none; border:none; cursor:pointer; font-family:inherit; padding:3px 0; }
    .kb-hist-toggle:hover { color:var(--primary); }
    body.dark .kb-col { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .kb-col-header { background:#12152a; border-color:#2a2f45; }
    body.dark .kb-card { background:#12152a; border-color:#2a2f45; }
    body.dark .kb-card-nome { color:#e2e8f0; }
    body.dark .kb-btn { background:#1a1d2e; border-color:#2a2f45; color:#a8b2d8; }
    body.dark .kb-col.drag-over { background:rgba(59,130,246,0.1); }
    body.dark .kb-hist-toggle { color:#8892b0; }

    /* ── PESQUISA DE MERCADO — resultado ── */
    .mkt-result-body { color: var(--gray-800); }
    .mkt-result-body * { color: inherit; }
    body.dark .mkt-result-body { color: #e2e8f0; }
    body.dark .mkt-result-body [style*="background:#f"] { background: #1e293b !important; }
    body.dark .mkt-result-body [style*="background: #f"] { background: #1e293b !important; }
    body.dark .mkt-result-body [style*="background:white"] { background: #1e293b !important; }
    body.dark .mkt-result-body [style*="background: white"] { background: #1e293b !important; }
    body.dark .mkt-result-body [style*="color:#1"] { color: #e2e8f0 !important; }
    body.dark .mkt-result-body [style*="color:#2"] { color: #e2e8f0 !important; }
    body.dark .mkt-result-body [style*="color:#3"] { color: #e2e8f0 !important; }
    body.dark .mkt-result-body [style*="color:#4"] { color: #94a3b8 !important; }
    body.dark .mkt-result-body [style*="color:#5"] { color: #94a3b8 !important; }
    body.dark .mkt-result-body [style*="color:#6"] { color: #94a3b8 !important; }
    body.dark .mkt-result-body [style*="color:black"] { color: #e2e8f0 !important; }
    body.dark .mkt-result-body [style*="color: black"] { color: #e2e8f0 !important; }
    /* histórico inline expand */
    body.dark #mkt-historico [style*="background:#f8fafc"] { background: #0f172a !important; }
    body.dark #mkt-historico [style*="background:#fff"],
    body.dark #mkt-historico [style*="background: #fff"],
    body.dark #mkt-historico [style*="background:white"] { background: #1e293b !important; }

    /* ── PESQUISA DE MERCADO — redesign geral (formulário + histórico) ── */
    .mkt-grid { display: grid; grid-template-columns: 380px 1fr; gap: 1.4rem; align-items: flex-start; }
    @media (max-width: 980px) { .mkt-grid { grid-template-columns: 1fr; } }
    .mkt-form-card { position: sticky; top: 1rem; }
    @media (max-width: 980px) { .mkt-form-card { position: static; } }
    .mkt-form-body { padding: 1.3rem; }
    .mkt-form-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
    .mkt-field-icon-wrap { position: relative; }
    .mkt-field-icon-wrap .finput { padding-left: 38px; }
    .mkt-field-icon { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); font-size: 14px; opacity: 0.55; pointer-events: none; }
    .mkt-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 0.55rem; }
    .mkt-chip {
      font-size: 11px; font-weight: 600; padding: 5px 11px; border-radius: 20px;
      background: var(--primary-pale, rgba(37,99,235,0.08)); color: var(--primary);
      border: 1px solid transparent; cursor: pointer; transition: all 0.15s; font-family: 'Poppins', sans-serif;
    }
    .mkt-chip:hover { background: var(--primary); color: #fff; transform: translateY(-1px); }
    body.dark .mkt-chip { background: rgba(96,165,250,0.12); color: #93c5fd; }
    body.dark .mkt-chip:hover { background: #2563eb; color: #fff; }
    .mkt-helper { font-size: 11px; color: var(--gray-400); margin-top: 0.6rem; text-align: center; display: flex; align-items: center; justify-content: center; gap: 5px; }
    .mkt-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.4rem; }
    @media (max-width: 700px) { .mkt-stats { grid-template-columns: 1fr; } }
    .mkt-loading-card { padding: 2.8rem 1.5rem; text-align: center; }
    .mkt-loading-spin { font-size: 34px; margin-bottom: 0.9rem; display: inline-block; animation: mktSpin 1.1s linear infinite; }
    @keyframes mktSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
    .mkt-hist-toolbar { display: flex; align-items: center; gap: 0.6rem; flex: 1; }
    .mkt-hist-count { font-size: 11px; font-weight: 700; color: var(--gray-600); background: var(--gray-100); padding: 3px 10px; border-radius: 20px; flex-shrink: 0; }
    body.dark .mkt-hist-count { background: #232842; color: #8892b0; }
    .mkt-hist-list { padding: 0.9rem; display: flex; flex-direction: column; gap: 0.6rem; }
    .mkt-hist-card { border-radius: 12px; border: 1px solid var(--gray-100); overflow: hidden; transition: box-shadow 0.15s, transform 0.15s; }
    .mkt-hist-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.07); }
    body.dark .mkt-hist-card { border-color: #2a2f45; }
    .mkt-hist-row { padding: 0.85rem 1.1rem; display: flex; align-items: center; gap: 0.85rem; background: var(--white); cursor: pointer; }
    body.dark .mkt-hist-row { background: #1a1d2e; }
    .mkt-hist-icon { width: 38px; height: 38px; border-radius: 50%; background: #dbeafe; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
    body.dark .mkt-hist-icon { background: rgba(96,165,250,0.15); }
    .mkt-hist-info { flex: 1; min-width: 0; }
    .mkt-hist-title { font-weight: 700; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--gray-900); }
    .mkt-hist-meta { font-size: 11px; color: var(--gray-400); margin-top: 2px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
    .mkt-hist-salary { font-size: 11px; font-weight: 700; color: #15803d; background: #f0fdf4; padding: 2px 9px; border-radius: 20px; flex-shrink: 0; white-space: nowrap; }
    body.dark .mkt-hist-salary { color: #4ade80; background: rgba(74,222,128,0.12); }
    .mkt-hist-actions { display: flex; gap: 0.4rem; align-items: center; flex-shrink: 0; }
    .mkt-hist-actions .btn:hover { transform: translateY(-1px); }
    .mkt-hist-del { padding: 6px 9px !important; font-size: 12px !important; background: #fee2e2 !important; color: #b91c1c !important; border: none !important; }
    body.dark .mkt-hist-del { background: rgba(248,113,113,0.14) !important; color: #f87171 !important; }
    .mkt-hist-empty { text-align: center; padding: 3rem 1.5rem; color: var(--gray-400); }
    .mkt-hist-empty .empty-icon { font-size: 42px; margin-bottom: 0.9rem; opacity: 0.5; }
    .mkt-hist-empty-cta { font-size: 12px; margin-top: 0.5rem; color: var(--gray-400); }

    /* ── DASH LEMBRETES PENDENTES ── */
    .dlp-card { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; margin:4px 0; background:var(--gray-50); border:1px solid var(--gray-100); transition:all 0.15s; }
    .dlp-card:hover { background:var(--primary-pale); border-color:#c0deff; }
    .dlp-card.urgente { background:#fffbeb; border-color:#fcd34d; }
    .dlp-avatar { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; flex-shrink:0; }
    .dlp-info { flex:1; min-width:0; }
    .dlp-nome { font-size:13px; font-weight:700; color:var(--gray-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .dlp-sub { display:flex; align-items:center; gap:5px; margin-top:2px; }
    .dlp-badge { font-size:10px; font-weight:700; padding:1px 7px; border-radius:8px; }
    .dlp-vaga { font-size:11px; color:var(--gray-400); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100px; }
    .dlp-right { display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex-shrink:0; }
    .dlp-dias { font-size:11px; font-weight:700; color:var(--gray-400); }
    .dlp-dias.urgente { color:#d97706; }
    body.dark .dlp-card { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .dlp-card.urgente { background:#2d2210; border-color:#92400e44; }
    body.dark .dlp-nome { color:#e2e8f0; }

    /* ═══════════════════════════════════════════════
       UX IMPROVEMENTS v2 — Design System Polish
    ═══════════════════════════════════════════════ */

    /* Global scrollbar */
    ::-webkit-scrollbar { width:6px; height:6px; }
    ::-webkit-scrollbar-track { background:transparent; }
    ::-webkit-scrollbar-thumb { background:var(--gray-300); border-radius:10px; }
    ::-webkit-scrollbar-thumb:hover { background:var(--primary-light); }
    * { scrollbar-width:thin; scrollbar-color:var(--gray-300) transparent; }

    /* Sidebar refinements */
    .sidebar {
      background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
      border-right: 1px solid var(--gray-100);
    }
    .sidebar-brand { padding: 1.5rem 1.2rem 1.1rem; }
    .nav-item {
      font-size: 12.5px;
      padding: 8px 11px;
      border-radius: 10px;
      position: relative;
    }
    .nav-item.active {
      background: var(--primary-pale);
      color: var(--primary);
      font-weight: 700;
    }
    .nav-item.active::before {
      content: '';
      position: absolute;
      left: 0; top: 20%; bottom: 20%;
      width: 3px;
      background: var(--primary);
      border-radius: 0 3px 3px 0;
    }
    .nav-item:hover {
      background: var(--gray-50);
      color: var(--primary);
      transform: translateX(2px);
      transition: all 0.15s ease;
    }
    .nav-section {
      font-size: 9px;
      font-weight: 800;
      color: var(--gray-400);
      letter-spacing: 1.5px;
      padding: 1rem 0.5rem 0.2rem;
    }

    /* Stat cards — enhanced */
    .stat-card {
      background: var(--white);
      border-radius: 16px;
      padding: 1.25rem 1.4rem;
      box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04);
      border: 1px solid var(--gray-100);
      border-left-width: 4px;
      transition: transform 0.2s, box-shadow 0.2s;
      position: relative;
      overflow: hidden;
    }
    .stat-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,0.09);
    }
    .stat-card::after {
      content: '';
      position: absolute;
      top: -20px; right: -20px;
      width: 70px; height: 70px;
      border-radius: 50%;
      background: currentColor;
      opacity: 0.04;
    }
    .stat-icon { font-size: 24px; margin-bottom: 0.5rem; }
    .stat-value { font-size: 30px; font-weight: 900; line-height: 1; letter-spacing: -1px; }
    .stat-label { font-size: 11px; color: var(--gray-400); font-weight: 600; margin-top: 5px; text-transform: uppercase; letter-spacing: 0.5px; }

    /* Page header refinements */
    .page-header { margin-bottom: 1.8rem; }
    .page-title {
      font-size: 24px;
      font-weight: 900;
      color: var(--gray-900);
      letter-spacing: -0.5px;
    }
    .page-subtitle { font-size: 13px; color: var(--gray-400); margin-top: 3px; font-weight: 500; }

    /* Cards */
    .card {
      border-radius: 16px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04);
      border: 1px solid var(--gray-100);
    }
    .card-header {
      padding: 1.1rem 1.4rem;
      border-bottom: 1px solid var(--gray-50);
    }
    .card-title { font-size: 13px; font-weight: 700; color: var(--gray-900); }

    /* Tables */
    th {
      font-size: 10px;
      font-weight: 800;
      color: var(--gray-400);
      letter-spacing: 1px;
      text-transform: uppercase;
      background: var(--gray-50);
      padding: 10px 14px;
    }
    td { padding: 13px 14px; font-size: 13px; }
    tbody tr { transition: background 0.1s; }
    tbody tr:hover td { background: var(--primary-pale); }

    /* Buttons — extra polish */
    .btn {
      border-radius: 10px;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.1px;
      transition: all 0.18s cubic-bezier(0.4,0,0.2,1);
    }
    .btn-primary {
      background: linear-gradient(135deg, var(--primary-solid) 0%, #1d4ed8 100%);
      box-shadow: 0 3px 10px rgba(37,99,235,0.28);
    }
    .btn-primary:hover:not(:disabled) {
      transform: translateY(-1px);
      box-shadow: 0 6px 18px rgba(37,99,235,0.38);
    }
    .btn-ghost {
      background: var(--gray-100);
      color: var(--gray-700);
      border: 1.5px solid var(--gray-200);
    }
    .btn-ghost:hover { background: var(--gray-200); border-color: var(--gray-300); }

    /* Inputs */
    .form-input, .search-input, .filter-select, .global-search-input {
      border-radius: 10px;
      font-family: 'Poppins', sans-serif;
      transition: all 0.2s;
    }
    .search-input:focus, .filter-select:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
    }

    /* Modal polish */
    .modal {
      border-radius: 18px;
      box-shadow: 0 24px 60px rgba(0,0,0,0.18);
    }
    .modal-header {
      padding: 1.3rem 1.5rem;
      border-bottom: 1px solid var(--gray-100);
    }
    .modal-body { padding: 1.5rem; }
    .modal-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--gray-100); background: var(--gray-50); border-radius: 0 0 18px 18px; }

    /* Badge improvements */
    .badge {
      font-size: 11px;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 20px;
      letter-spacing: 0.1px;
    }

    /* Toast */
    .toast {
      border-radius: 12px;
      box-shadow: 0 8px 24px rgba(0,0,0,0.14);
      font-size: 13px;
      font-weight: 600;
      backdrop-filter: blur(8px);
    }

    /* Page transitions */
    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(12px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .page.active { animation: fadeInUp 0.22s ease; }

    /* Global topbar polish */
    .global-topbar {
      border-radius: 14px;
      margin: -2rem -2.2rem 1.8rem;
      padding: 0.75rem 2.2rem;
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--gray-100);
      box-shadow: 0 1px 0 var(--gray-100);
    }
    .global-search-input {
      padding: 9px 14px 9px 38px;
      border-radius: 12px;
      background: var(--gray-50);
      border-color: var(--gray-200);
    }
    .global-search-input:focus {
      background: var(--white);
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(37,99,235,0.08);
    }

    /* Nav badge */
    .nav-badge {
      margin-left: auto;
      background: #dc2626;
      color: #fff;
      font-size: 9px;
      font-weight: 800;
      padding: 1px 5px;
      border-radius: 8px;
      min-width: 16px;
      text-align: center;
    }


    /* Topbar notif button */
    .notif-btn {
      position: relative;
      background: var(--gray-100);
      border: 1.5px solid var(--gray-200);
      border-radius: 10px;
      padding: 7px 12px;
      font-size: 15px;
      cursor: pointer;
      transition: all 0.15s;
    }
    .notif-btn:hover { background: var(--primary-pale); border-color: var(--primary-light); }

    /* Setup banner */
    .setup-banner {
      background: linear-gradient(135deg, #fffbeb, #fef3c7);
      border: 1.5px solid #fde68a;
      border-radius: 12px;
      padding: 0.9rem 1.2rem;
      margin-bottom: 1.4rem;
      font-size: 13px;
      color: #92400e;
    }
    .setup-banner code {
      background: rgba(0,0,0,0.08);
      padding: 1px 6px;
      border-radius: 4px;
      font-size: 11px;
    }

    /* Dash grid panels */
    .dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
    @media (max-width: 900px) { .dash-grid { grid-template-columns: 1fr; } }
    .dash-grid > .card { margin-bottom: 0; }

    /* Section divider — rótulo em maiúsculas + linha, usado para separar
       blocos de conteúdo em páginas longas (Dashboard, Relatórios) e dar
       hierarquia visual/ritmo de leitura consistente entre elas. */
    .section-divider { display: flex; align-items: center; gap: 10px; margin: 0 0 1rem; }
    .section-divider span { font-size: 13px; font-weight: 800; letter-spacing: 0.04em; color: var(--gray-400); text-transform: uppercase; white-space: nowrap; }
    .section-divider::after { content: ''; flex: 1; height: 1px; background: var(--gray-100); }

    /* Navegação rápida por seções — usada na página de Relatórios, que é
       longa; permite pular direto pro bloco desejado em vez de rolar tudo. */
    .rel-quicknav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.7rem; }
    .rel-quicknav-pill {
      font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 700; color: var(--gray-600);
      background: var(--gray-50); border: 1.5px solid var(--gray-200); border-radius: 20px;
      padding: 7px 14px; cursor: pointer; transition: all 0.15s;
    }
    .rel-quicknav-pill:hover { background: var(--primary-pale); border-color: var(--primary-light); color: var(--primary); }
    /* Compensa a altura da .global-topbar (sticky) ao rolar até uma seção,
       pra ela não ficar escondida atrás da barra fixa. */
    .rel-sec-anchor { scroll-margin-top: 76px; }

    /* Stat card compacto — usado para métricas secundárias/complementares,
       para não competir visualmente com os KPIs principais do dashboard. */
    .stat-card.compact { padding: 0.85rem 1.05rem; border-radius: 14px; }
    .stat-card.compact .stat-icon { font-size: 17px; margin-bottom: 0.25rem; }
    .stat-card.compact .stat-value { font-size: 19px; letter-spacing: -0.5px; }
    .stat-card.compact .stat-label { font-size: 10px; }

    /* Toolbar spacing */
    .toolbar { gap: 0.6rem; padding: 0.15rem 0; }

    /* Empty states */
    .empty-state { padding: 3rem 2rem; color: var(--gray-400); }
    .empty-icon { font-size: 40px; margin-bottom: 0.8rem; opacity: 0.6; }

    /* Kandidat card (kanban) hover */
    .kanban-card:hover {
      box-shadow: 0 6px 20px rgba(0,0,0,0.10);
      transform: translateY(-2px);
      transition: all 0.2s;
    }

    /* Details section dividers */
    .s2 {
      padding: 0.6rem 0;
      border-bottom: 1px solid var(--gray-50);
    }
    .s2:last-child { border-bottom: none; }

    /* Detail info labels */
    .di-label {
      font-size: 10px;
      font-weight: 800;
      color: var(--gray-400);
      text-transform: uppercase;
      letter-spacing: 0.8px;
    }
    .di-value {
      font-size: 14px;
      color: var(--gray-900);
      font-weight: 600;
    }

    /* Actions row */
    .det-acoes {
      display: flex;
      gap: 0.5rem;
      flex-wrap: wrap;
      padding-top: 1rem;
      border-top: 1px solid var(--gray-100);
      margin-top: 0.5rem;
    }
    .det-acoes .btn-sm, .det-acoes a.btn-sm {
      border-radius: 8px;
      font-size: 11px;
      padding: 6px 11px;
      font-weight: 700;
      transition: all 0.15s;
    }
    .det-acoes .btn-sm:hover, .det-acoes a.btn-sm:hover {
      transform: translateY(-1px);
      box-shadow: 0 3px 8px rgba(0,0,0,0.10);
    }

    /* Form inputs — cross-site consistency */
    .finput {
      border-radius: 10px;
      border: 1.5px solid var(--gray-200);
      background: var(--white);
      padding: 12px 14px;
      font-size: 13.5px;
      color: var(--gray-900);
      transition: all 0.2s;
      width: 100%;
      font-family: 'Poppins', sans-serif;
      box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    }
    .finput:hover:not(:focus) {
      border-color: var(--gray-300);
    }
    .finput:focus {
      border-color: var(--primary);
      background: var(--white);
      box-shadow: 0 0 0 3px rgba(37,99,235,0.09), 0 1px 2px rgba(0,0,0,0.04);
      outline: none;
    }
    .finput::placeholder { color: var(--gray-400); }
    select.finput { cursor: pointer; }
    textarea.finput { resize: vertical; min-height: 90px; line-height: 1.55; }

    /* Modal tabs — override clean */
    .modal-tab {
      font-size: 13px;
      font-weight: 600;
      padding: 10px 18px;
      transition: all 0.18s ease;
    }
    .modal-tab.active {
      color: var(--primary);
      background: linear-gradient(to bottom, transparent 60%, rgba(37,99,235,0.05));
      border-bottom-color: var(--primary);
      font-weight: 800;
    }

    /* Modal title */
    .modal-title {
      font-size: 17px;
      font-weight: 800;
      letter-spacing: -0.3px;
    }

    /* Sidebar footer */
    .btn-logout {
      border-radius: 9px;
      font-size: 12px;
      font-weight: 700;
      color: var(--gray-600);
      transition: all 0.15s;
    }
    .btn-logout:hover {
      background: var(--gray-200);
      color: var(--gray-900);
    }

    /* Score bubble */
    .score-bubble {
      border-radius: 14px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }

    /* Page tab indicators — clean underline */
    .modal-tabs {
      gap: 0;
      border-bottom: 2px solid var(--gray-100);
      padding: 0;
    }

    /* Better link buttons */
    a.btn {
      text-decoration: none;
    }

  
    /* ===== MODAL TRIAGEM INTEGRADA ===== */
    #modal-nova-triagem .modal, #modal-nova-entrevista .modal { max-width: 860px; max-height: 92vh; overflow-y: auto; }
    .mtr-drop-zone { border: 2px dashed var(--gray-300); border-radius: 12px; padding: 1.5rem; text-align: center; cursor: pointer; transition: all .2s; background: var(--gray-50); }
    .mtr-drop-zone:hover, .mtr-drop-zone.dragging { border-color: var(--primary); background: var(--primary-pale); }
    .mtr-drop-zone.has-file { border-color: var(--primary); border-style: solid; }
    .mtr-dz-icon { font-size: 32px; margin-bottom: .5rem; }
    .mtr-dz-title { font-size: 14px; font-weight: 700; color: var(--primary); }
    .mtr-file-list { margin-top: .8rem; }
    .mtr-file-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: var(--white); border: 1px solid var(--gray-200); border-radius: 8px; margin-bottom: 4px; font-size: 12px; }
    .mtr-btn-remove { background: none; border: none; color: var(--danger-text); cursor: pointer; font-size: 14px; padding: 2px 6px; border-radius: 4px; }
    .mtr-btn-remove:hover { background: #fee2e2; }
    .mtr-batch-bar { background: var(--gray-100); border-radius: 999px; height: 8px; overflow: hidden; margin-top: .5rem; }
    .mtr-batch-fill { height: 100%; background: var(--primary); border-radius: 999px; transition: width .3s; width: 0; }
    .mtr-score-circle { width: 80px; height: 80px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 28px; font-weight: 900; color: white; flex-shrink: 0; }
    .mtr-score-circle.high { background: linear-gradient(135deg,#065f46,#047857); }
    .mtr-score-circle.medium { background: linear-gradient(135deg,#92400e,#b45309); }
    .mtr-score-circle.low { background: linear-gradient(135deg,#b91c1c,#dc2626); }
    .mtr-result-hero { display: flex; align-items: center; gap: 1rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; padding: 1.2rem; margin-bottom: 1rem; }
    .mtr-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
    .mtr-result-list { list-style: none; padding: 0; margin: 0; }
    .mtr-result-list li { display: flex; gap: .5rem; margin-bottom: .4rem; font-size: 13px; color: var(--gray-700); }
    .mtr-rec { border-radius: 12px; padding: 1rem 1.2rem; margin-bottom: 1rem; }
    /* Fundo claro fixo (igual nos dois temas) — texto precisa de cor fixa
       escura também, senão herda a cor clara do modo escuro e some. */
    .mtr-rec.high { background: #d1fae5; border-left: 4px solid #10b981; color: #065f46; }
    .mtr-rec.medium { background: #fef3c7; border-left: 4px solid #f59e0b; color: #92400e; }
    .mtr-rec.low { background: #fee2e2; border-left: 4px solid #ef4444; color: #991b1b; }
    .mtr-vaganova { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
    .mtr-batch-table { width: 100%; border-collapse: collapse; font-size: 13px; }
    .mtr-batch-table th { text-align: left; padding: 8px 12px; background: var(--gray-50); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--gray-400); }
    .mtr-batch-table td { padding: 10px 12px; border-bottom: 1px solid var(--gray-100); }
    .mtr-br-score { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; font-size: 13px; font-weight: 800; color: white; }
    .mtr-br-score.high { background: #10b981; } .mtr-br-score.medium { background: #f59e0b; } .mtr-br-score.low { background: #ef4444; }
    .mtr-br-status.high { color: #065f46; } .mtr-br-status.medium { color: #92400e; } .mtr-br-status.low { color: #991b1b; }
    /* ===== MODAL ENTREVISTAS INTEGRADA ===== */
    #modal-nova-entrevista .modal { max-width: 820px; }
    .ment-steps { display: flex; align-items: center; margin-bottom: 1.5rem; background: var(--white); border-radius: 12px; padding: .8rem 1.2rem; border: 1px solid var(--gray-200); }
    .ment-step { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; position: relative; }
    .ment-step:not(:last-child)::after { content:''; position: absolute; left: 50%; top: 14px; width: 100%; height: 2px; background: var(--gray-200); z-index: 0; }
    .ment-step.done-line::after { background: var(--primary); }
    .ment-step-dot { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; z-index: 1; transition: all .3s; }
    .ment-step-dot.done { background: var(--primary-solid); color: #fff; }
    .ment-step-dot.active { background: linear-gradient(135deg,var(--primary-solid),#1e3a8a); color: #fff; box-shadow: 0 0 0 4px rgba(37,99,235,.18); }
    .ment-step-dot.pending { background: var(--gray-200); color: var(--gray-600); }
    .ment-step-label { font-size: 9px; font-weight: 600; color: var(--gray-400); white-space: nowrap; }
    .ment-step-label.active { color: var(--primary); font-weight: 700; }
    .ment-step-label.done { color: var(--primary); }
    .ment-page-view { display: none; }
    .ment-page-view.active { display: block; }
    .ment-vaga-item { border: 1.5px solid var(--gray-200); border-radius: 10px; padding: 10px 14px; cursor: pointer; transition: all .2s; margin-bottom: .4rem; display: flex; justify-content: space-between; align-items: center; }
    .ment-vaga-item:hover { border-color: var(--primary-light); background: var(--primary-pale); }
    .ment-vaga-item.selected { border-color: var(--primary); background: var(--primary-pale); }
    .ment-cand-item { border: 1.5px solid var(--gray-200); border-radius: 10px; padding: 10px 14px; cursor: pointer; transition: all .2s; margin-bottom: .4rem; display: flex; align-items: center; gap: 10px; }
    .ment-cand-item:hover { border-color: var(--primary-light); background: var(--primary-pale); }
    .ment-cand-item.selected { border-color: var(--primary); background: var(--primary-pale); }
    #ment-lista-vagas, #ment-lista-cands { max-height: 320px; overflow-y: auto; padding-right: 4px; }
    #ment-lista-vagas::-webkit-scrollbar, #ment-lista-cands::-webkit-scrollbar { width: 7px; }
    #ment-lista-vagas::-webkit-scrollbar-thumb, #ment-lista-cands::-webkit-scrollbar-thumb { background: var(--gray-200); border-radius: 10px; }
    .ment-disc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .5rem; }
    .ment-disc-opt { border: 1.5px solid var(--gray-200); border-radius: 9px; padding: 10px 12px; cursor: pointer; transition: all .2s; }
    .ment-disc-opt:hover { border-color: var(--primary-light); }
    .ment-disc-opt.selected { border-color: var(--primary); background: var(--primary-pale); }
    .ment-score-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--gray-100); }
    .ment-score-row:last-child { border-bottom: none; }
    .ment-score-btn { width: 32px; height: 32px; border-radius: 8px; border: none; font-size: 12px; font-weight: 700; cursor: pointer; transition: all .15s; background: var(--gray-100); color: var(--gray-600); font-family: 'Poppins', sans-serif; }
    .ment-score-btn.active { background: var(--primary-solid); color: #fff; }
    .ment-resultado-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .7rem; margin: .5rem 0 1rem; }
    .ment-resultado-opt { border: 1.5px solid var(--gray-200); border-radius: 10px; padding: 12px 8px; cursor: pointer; transition: all .2s; text-align: center; font-size: 13px; font-weight: 700; color: var(--gray-600); background: var(--gray-50); }
    .ment-resultado-opt.sel-aprovado { border-color: #10b981; background: #d1fae5; color: #065f46; }
    .ment-resultado-opt.sel-reserva { border-color: #f59e0b; background: #fef3c7; color: #92400e; }
    .ment-resultado-opt.sel-reprovado { border-color: #ef4444; background: #fee2e2; color: #991b1b; }
    .ment-report-header { background: linear-gradient(135deg,#1e3a8a,var(--primary-solid)); border-radius: 14px; padding: 1.2rem 1.5rem; color: #fff; margin-bottom: 1rem; }
    .ment-toggle-tabs { display: flex; background: var(--gray-100); border-radius: 9px; padding: 3px; margin-bottom: 1rem; }
    .ment-toggle-tab { flex: 1; padding: 7px; text-align: center; font-size: 12px; font-weight: 600; border-radius: 7px; cursor: pointer; border: none; background: transparent; color: var(--gray-600); font-family: 'Poppins', sans-serif; }
    .ment-toggle-tab.active { background: var(--white); color: var(--primary); box-shadow: 0 1px 4px rgba(0,0,0,.1); }
    .ment-cand-avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg,var(--primary-light),var(--primary-pale)); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: var(--primary-dark); flex-shrink: 0; }
    .ment-search-wrap { position: relative; margin-bottom: .8rem; }
    .ment-search-input { width: 100%; padding: 9px 14px 9px 34px; border: 1.5px solid var(--gray-200); border-radius: 9px; font-size: 13px; font-family: 'Poppins', sans-serif; background: var(--gray-50); }
    .ment-search-input:focus { outline: none; border-color: var(--primary); background: var(--white); }
    .ment-search-icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: 14px; }
    body.dark .mtr-drop-zone { background: #1a1d2e; border-color: #2a2f45; }
    body.dark .mtr-file-item { background: #1a1d2e; border-color: #2a2f45; }
    body.dark .ment-vaga-item, body.dark .ment-cand-item, body.dark .ment-disc-opt { background: #1a1d2e; border-color: #2a2f45; }
    body.dark .ment-toggle-tabs { background: #1a1d2e; }

    /* ══════════════════ ASSINATURAS (assinatura eletrônica) ══════════════════ */
    .asn-hidden { display: none !important; }

    .asn-badge { display:inline-flex; align-items:center; gap:3px; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
    .asn-badge-pendente { background:#fef3c7; color:#92400e; }
    .asn-badge-completo { background:#d1fae5; color:#065f46; }

    .asn-card { background:var(--white); border:1px solid var(--gray-200); border-left:4px solid var(--gray-300); border-radius:12px; padding:1rem 1.1rem; margin-bottom:0.7rem; box-shadow:0 1px 4px rgba(0,0,0,0.04); transition:box-shadow 0.15s; }
    .asn-card:hover { box-shadow:0 4px 14px rgba(0,0,0,0.08); }
    .asn-card.asn-status-completo { border-left-color:#10b981; }
    .asn-card.asn-status-pendente { border-left-color:#f59e0b; }
    .asn-card-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
    .asn-card-title { font-size:14px; font-weight:800; color:var(--gray-900); }
    .asn-card-sub { color:var(--gray-400); font-size:11.5px; margin-top:3px; }
    .asn-card-actions { display:flex; gap:6px; flex-wrap:wrap; }

    .asn-dropzone { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; border:2px dashed var(--gray-300); border-radius:12px; padding:36px 20px; text-align:center; color:var(--gray-600); cursor:pointer; transition:.15s; background:var(--gray-50); }
    .asn-dropzone:hover, .asn-dropzone.asn-dragover { border-color:var(--primary); background:var(--primary-pale); }
    .asn-dropzone input { display:none; }
    .asn-dropzone.asn-dropzone-busy { cursor:wait; opacity:.6; pointer-events:none; }
    .asn-upload-status-line { display:flex; align-items:center; gap:8px; margin-top:10px; color:var(--gray-600); font-size:13px; min-height:18px; }
    .asn-upload-status-line.asn-status-error { color:#dc2626; font-weight:600; }
    .asn-spinner { width:14px; height:14px; border-radius:50%; border:2px solid var(--gray-300); border-top-color:var(--primary); animation:asnSpin .7s linear infinite; flex:none; }
    @keyframes asnSpin { to { transform:rotate(360deg); } }

    .asn-builder { display:flex; gap:20px; align-items:flex-start; }
    .asn-builder-sidebar { width:290px; flex-shrink:0; position:sticky; top:12px; display:flex; flex-direction:column; gap:1rem; }
    .asn-builder-pages { flex:1; min-width:0; }

    .asn-sig-chip { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:10px; border:2px solid transparent; cursor:pointer; margin-bottom:6px; background:var(--gray-50); transition:border-color .15s, background .15s; }
    .asn-sig-chip.asn-ativo { border-color: var(--asn-cor, var(--primary-solid)); background:var(--white); }
    .asn-sig-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }
    .asn-sig-chip .asn-sig-info { flex:1; min-width:0; }
    .asn-sig-chip .asn-sig-nome { font-size:13px; font-weight:700; color:var(--gray-900); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .asn-sig-chip .asn-sig-papel { font-size:11px; color:var(--gray-400); }
    .asn-sig-chip .asn-sig-remove { color:var(--danger-text); font-size:16px; padding:2px 6px; border-radius:6px; line-height:1; }
    .asn-sig-chip .asn-sig-remove:hover { background:#fee2e2; }

    .asn-add-sig-form input.finput { margin-bottom:6px; }

    .asn-tool-btns { display:flex; gap:8px; margin:10px 0 4px; }
    .asn-tool-btns button { flex:1; font-size:12px; padding:8px 6px; justify-content:center; }
    .asn-tool-btns button.asn-colocando { outline:2px solid var(--primary-solid); outline-offset:1px; background:var(--primary-pale); color:var(--primary); }

    .asn-page-wrap { position:relative; margin:0 auto 22px; border:1px solid var(--gray-200); border-radius:6px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.08); background:var(--white); cursor:crosshair; }
    .asn-page-wrap.asn-modo-normal { cursor:default; }
    .asn-page-wrap canvas { display:block; width:100%; height:auto; }
    .asn-page-num { position:absolute; top:-20px; left:0; font-size:11px; color:var(--gray-400); font-weight:600; }

    .asn-campo { position:absolute; border:2px solid; border-radius:4px; background:rgba(255,255,255,.55); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; cursor:move; user-select:none; box-sizing:border-box; overflow:hidden; white-space:nowrap; transition:box-shadow .12s; }
    .asn-campo:hover { box-shadow:0 0 0 2px rgba(37,99,235,.25); z-index:3; }
    .asn-campo .asn-campo-del,
    .asn-campo .asn-campo-copiar { position:absolute; width:24px; height:24px; border-radius:50%; color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; cursor:pointer; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.3); opacity:.88; transition:opacity .12s, transform .12s; z-index:6; }
    .asn-campo .asn-campo-del:hover,
    .asn-campo .asn-campo-copiar:hover { opacity:1; transform:scale(1.18); }
    .asn-campo .asn-campo-del { top:-12px; right:-12px; background:var(--danger-text); }
    .asn-campo .asn-campo-copiar { top:-12px; left:-12px; background:var(--primary-solid,#2563eb); font-size:11px; }
    .asn-campo .asn-campo-resize { position:absolute; right:-4px; bottom:-4px; width:14px; height:14px; border-radius:50%; background:inherit; border:2px solid #fff; cursor:nwse-resize; box-shadow:0 1px 4px rgba(0,0,0,.3); }

    .asn-links-list { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
    .asn-link-row { display:flex; align-items:center; gap:8px; background:var(--gray-50); border-radius:8px; padding:8px 10px; font-size:13px; }
    .asn-link-row .asn-link-url { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--gray-600); }

    /* Cartão de link por signatário, no modal "🔗 Ver links" — usa var(--gray-*)
       (em vez de cor fixa) porque esse modal agora é um .modal-overlay comum,
       que já acompanha claro/escuro sozinho — nada de cor "grudada" aqui. */
    .asn-link-item { border:1px solid var(--gray-100); border-radius:12px; padding:12px 14px; margin-bottom:10px; }
    .asn-link-item:last-child { margin-bottom:0; }
    .asn-link-item-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
    .asn-link-item-nome { font-weight:700; font-size:13.5px; color:var(--gray-900); }
    .asn-link-item-url { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; color:var(--gray-400); background:var(--gray-50); border-radius:6px; padding:6px 8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-bottom:8px; }
    .asn-link-item-actions { display:flex; gap:6px; flex-wrap:wrap; }

    /* Modo escuro */
    body.dark .asn-card              { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .asn-dropzone          { background:#131620; border-color:#2a2f45; color:#a8b2d8; }
    body.dark .asn-dropzone:hover,
    body.dark .asn-dropzone.asn-dragover { background:rgba(59,130,246,0.1); border-color:var(--primary); }
    body.dark .asn-sig-chip          { background:#131620; }
    body.dark .asn-sig-chip.asn-ativo{ background:#1a1d2e; }
    body.dark .asn-sig-chip .asn-sig-nome { color:#e6f0ff; }
    body.dark .asn-sig-chip .asn-sig-papel { color:#8892b0; }
    body.dark .asn-page-wrap         { background:#1a1d2e; border-color:#2a2f45; }
    body.dark .asn-link-row          { background:#1a1d2e; }
    body.dark .asn-link-row .asn-link-url { color:#a8b2d8; }
    body.dark .asn-badge-pendente    { background:#3a2c10; color:#fbbf24; }
    body.dark .asn-badge-completo    { background:#0f2e1f; color:#34d399; }
    body.dark .asn-card-sub          { color:#8892b0; }
  
