  :root {
    --bg: #F5F6FA;
    --bg-dark: #EFF1F6;
    --white: #FFFFFF;
    --text: #2A2D3F;
    --text-muted: #7A7E93;
    --text-light: #A3A6BA;
    --border: #E4E7F0;
    --border-light: #EEF0F7;
    --primary: #5B4EDC;
    --primary-light: #EEECFB;
    --sidebar-bg: #FFFFFF;
    --sidebar-hover: #F5F6FA;
    --sidebar-active: #EEECFB;
    --k-yellow: #F6B93B;
    --k-yellow-bg: #FCE8B4;
    --k-purple: #5B4EDC;
    --k-purple-bg: #D4CFF8;
    --k-white: #FFFFFF;
    --k-green: #20A96E;
    --k-green-bg: #D4F0DF;
    --k-red: #E74C3C;
    --k-red-bg: #FADBD6;
    --k-blue: #3498DB;
    --k-blue-bg: #D6EAF8;
    --k-violet: #8E44AD;
    --k-violet-bg: #E8DAEF;
    --v-inovatech: #6B5FC7;
    --v-turnbim: #0E8E60;
    --v-asbuilt: #D4831A;
    --v-coord: #3498DB;
    --v-learning: #C92867;
    --v-gestartech: #C0392B;
    --shadow: 0 1px 3px rgba(42,45,63,0.04), 0 2px 6px rgba(42,45,63,0.03);
    --shadow-md: 0 4px 12px rgba(42,45,63,0.06);
  }

  /* ===== TEMA ESCURO ===== */
  body.dark {
    --bg: #15171F;
    --bg-dark: #1E2029;
    --white: #1E2029;
    --text: #E4E6EE;
    --text-muted: #9094A8;
    --text-light: #6A6E80;
    --border: #2D3140;
    --border-light: #25283A;
    --primary: #7B70E6;
    --primary-light: #2A2548;
    --sidebar-bg: #1A1C25;
    --sidebar-hover: #25283A;
    --sidebar-active: #2A2548;
    --k-yellow: #F6B93B;
    --k-yellow-bg: #3D2F0B;
    --k-purple: #7B70E6;
    --k-purple-bg: #2A2548;
    --k-white: #1E2029;
    --k-green: #2DBB7A;
    --k-green-bg: #143828;
    --k-red: #F26B5C;
    --k-red-bg: #3D1B16;
    --k-blue: #4FB0F0;
    --k-blue-bg: #102B3D;
    --k-violet: #B57AD0;
    --k-violet-bg: #2C1A38;
    --v-inovatech: #8B7FE0;
    --v-turnbim: #20B57E;
    --v-asbuilt: #E89A35;
    --v-coord: #4FB0F0;
    --v-learning: #E04088;
    --v-gestartech: #E05547;
    --shadow: 0 1px 3px rgba(0,0,0,0.3), 0 2px 6px rgba(0,0,0,0.2);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
  }

  /* Ajustes específicos do tema escuro que não dão pra fazer só com variables */
  body.dark .alert {
    background: linear-gradient(135deg, #3D1B16 0%, #2A1310 100%);
  }
  body.dark .alert-title { color: #F26B5C; }
  body.dark .alert-desc { color: #E89A8A; }

  body.dark .alert-info {
    background: linear-gradient(135deg, #2A2548 0%, #1F1B36 100%);
  }
  body.dark .alert-info-title { color: #B5ACFF; }
  body.dark .alert-info-desc { color: #9C92F0; }

  body.dark .market-banner {
    background: linear-gradient(135deg, #0F1019 0%, #060810 100%);
  }

  body.dark .wa-card {
    background: linear-gradient(135deg, #0E8E60 0%, #0A6645 100%);
  }

  body.dark .meta-box.highlight {
    background: var(--primary);
  }
  body.dark .kpi-purple {
    background: var(--primary);
    color: white;
  }
  body.dark .kpi-yellow {
    background: var(--k-yellow);
    color: #2A2D3F;
  }
  body.dark .kpi-yellow .kpi-big-icon { color: #2A2D3F; }
  body.dark .kpi-white {
    background: var(--white);
    color: var(--text);
  }

  body.dark .plan-total-card.premium {
    background: linear-gradient(135deg, var(--primary) 0%, #5A4FC7 100%);
  }

  body.dark .setup-side[style*="gradient"] {
    background: linear-gradient(135deg, var(--primary) 0%, #5A4FC7 100%) !important;
  }

  body.dark .callout {
    background: #2D2818;
    color: #DCC585;
  }
  body.dark .callout strong { color: #F0D9A0; }
  body.dark .callout.info {
    background: #102B3D;
    color: #9CC8F5;
  }
  body.dark .callout.info strong { color: #C5E0FA; }

  body.dark .col-count {
    background: var(--bg-dark);
    color: var(--text);
  }

  /* Card states no tema escuro */
  body.dark .card-lead.hot {
    background: linear-gradient(90deg, #3D2517 0%, var(--white) 25%);
  }
  body.dark .card-lead.warm {
    background: linear-gradient(90deg, #3D2F0B 0%, var(--white) 25%);
  }
  body.dark .card-lead.cold {
    background: linear-gradient(90deg, #102B3D 0%, var(--white) 25%);
  }

  body.dark .card-lead-temp.hot {
    box-shadow: 0 0 0 2px var(--white), 0 2px 6px rgba(255, 107, 53, 0.45);
  }
  body.dark .card-lead-temp.cold {
    box-shadow: 0 0 0 2px var(--white), 0 2px 4px rgba(93, 173, 226, 0.35);
  }
  body.dark .card-lead-temp.warm {
    box-shadow: 0 0 0 2px var(--white);
  }
  @keyframes hot-pulse-dark {
    0%, 100% { box-shadow: 0 0 0 2px var(--white), 0 2px 6px rgba(255, 107, 53, 0.45); }
    50% { box-shadow: 0 0 0 2px var(--white), 0 2px 14px rgba(255, 107, 53, 0.85); }
  }
  body.dark .card-lead-temp.hot { animation-name: hot-pulse-dark; }

  body.dark .card-lead-sister {
    background: var(--k-violet-bg);
    color: var(--k-violet);
  }

  body.dark input,
  body.dark textarea,
  body.dark select,
  body.dark .form-input,
  body.dark .form-select {
    background: var(--bg-dark);
    color: var(--text);
    border-color: var(--border);
  }

  body.dark .checklist-row > div,
  body.dark .checklist-tiered-head {
    background: transparent;
  }
  body.dark .checklist-tiered-head { background: var(--bg-dark); }

  body.dark .turnbim-feature-row.cortesia {
    background: linear-gradient(90deg, transparent, var(--k-yellow-bg) 100%);
  }
  body.dark .recurrence-row.passthrough {
    background: linear-gradient(90deg, transparent, #2D2818 100%);
  }

  body.dark .toast {
    box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
  }

  /* Transição suave entre temas */
  body, .panel, .card-lead, .sidebar, .topbar, .meta-box, .kpi-big, .kpi-soft,
  .service-card, .model-card, .turnbim-feature, .recurrence-grid,
  .inventory-card, .plan-total-card, .setup-side, .checklist-family,
  .clause-item, .notes-card, .team-base, .milestone-item, .payment-pattern,
  .filter-chip, .col-header, .column, .table, .table th, .table td,
  .opp-item, .client-header, .form-input, .form-select, .toast,
  .temp-legend, .alert-info, .alert {
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  }

  /* Ícone do toggle de tema */
  .theme-toggle-icon { display: inline-block; transition: transform 0.4s ease; }
  body.dark .theme-toggle-icon { transform: rotate(180deg); }

  /* ===== CLIENTES · BUSCA + STATS ===== */
  .client-search-bar {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 16px 20px;
    margin-bottom: 18px;
    display: flex;
    gap: 18px;
    align-items: center;
  }
  .client-search-input {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
  }
  .client-search-icon {
    position: absolute;
    left: 14px;
    color: var(--text-light);
    font-size: 16px;
    pointer-events: none;
  }
  .client-search-input input {
    width: 100%;
    padding: 12px 38px;
    border: 1px solid var(--border);
    border-radius: 10px;
    font-size: 14px;
    color: var(--text);
    background: var(--bg);
    font-family: inherit;
  }
  .client-search-input input:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--white);
  }
  .client-search-clear {
    position: absolute;
    right: 12px;
    background: var(--text-light);
    color: white;
    border: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .client-search-clear:hover { background: var(--text-muted); }

  .client-stats-mini {
    display: flex;
    gap: 24px;
    padding-left: 20px;
    border-left: 1px solid var(--border);
  }
  .client-stat-mini {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .stat-mini-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
  }
  .stat-mini-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    font-weight: 700;
  }

  /* Linha de cliente na tabela */
  .client-row-name {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .client-row-avatar {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--primary-light);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 11px;
    flex-shrink: 0;
  }
  .client-row-name-main {
    font-weight: 700;
    color: var(--text);
    font-size: 13px;
  }
  .client-row-name-sub {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .client-row-contact {
    font-weight: 600;
  }
  .client-row-cnpj {
    font-family: 'Courier New', monospace;
    font-size: 12px;
    color: var(--text-muted);
  }
  .client-row-whatsapp {
    color: var(--v-turnbim);
    font-weight: 600;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .client-row-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
  }
  .icon-action-btn {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: var(--bg-dark);
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--text-muted);
    transition: all 0.15s;
  }
  .icon-action-btn:hover {
    background: var(--primary-light);
    color: var(--primary);
  }
  .icon-action-btn.danger:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }

  /* ===== MODAL ===== */
  .modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: modalFadeIn 0.2s ease;
  }
  @keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  body.dark .modal-overlay { background: rgba(0, 0, 0, 0.75); }

  .modal {
    background: var(--white);
    border-radius: 16px;
    width: 100%;
    max-width: 720px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    animation: modalSlideIn 0.25s ease;
  }
  @keyframes modalSlideIn {
    from { opacity: 0; transform: translateY(-20px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  .modal-header {
    padding: 22px 28px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
  }
  .modal-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
  }
  .modal-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 4px;
  }
  .modal-close {
    background: var(--bg-dark);
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 20px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
  }
  .modal-close:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }
  .modal-body {
    padding: 24px 28px;
    overflow-y: auto;
    flex: 1;
  }
  .modal-body .form-row {
    margin-bottom: 14px;
  }
  .modal-body .form-row:last-child {
    margin-bottom: 0;
  }
  .modal-footer {
    padding: 18px 28px;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    background: var(--bg);
  }

  @media (max-width: 768px) {
    .client-search-bar { flex-direction: column; align-items: stretch; }
    .client-stats-mini { padding-left: 0; border-left: none; padding-top: 14px; border-top: 1px solid var(--border); }
    .modal { max-height: 95vh; }
  }

  /* ============================================== */
  /* ============= NOVO NA V3.6 =================== */
  /* ============================================== */

  /* ===== MODAL DE DETALHE DA OPORTUNIDADE ===== */
  .modal.modal-xl {
    max-width: 1100px;
  }
  .opp-detail-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    padding: 22px 28px;
    background: linear-gradient(135deg, var(--white) 0%, #FAFBFE 100%);
    border-bottom: 1px solid var(--border);
  }
  body.dark .opp-detail-header {
    background: linear-gradient(135deg, var(--bg-dark) 0%, var(--white) 100%);
  }
  .opp-detail-title {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--text);
    margin-bottom: 6px;
    line-height: 1.2;
  }
  .opp-detail-subtitle {
    font-size: 13px;
    color: var(--text-muted);
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
  }
  .opp-detail-stage-badge {
    background: var(--primary);
    color: white;
    font-size: 11px;
    font-weight: 800;
    padding: 4px 12px;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .opp-detail-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .opp-detail-temp-badge.hot {
    background: linear-gradient(135deg, #FFF4EC 0%, #FFE5D3 100%);
    color: #C04A1A;
    border: 1px solid #FF8A65;
  }
  .opp-detail-temp-badge.warm {
    background: linear-gradient(135deg, #FFF9E8 0%, #FCEFC1 100%);
    color: #7A5A0E;
    border: 1px solid #F6B93B;
  }
  .opp-detail-temp-badge.cold {
    background: linear-gradient(135deg, #EBF5FB 0%, #D0E6F5 100%);
    color: #1F5F94;
    border: 1px solid #5DADE2;
  }
  body.dark .opp-detail-temp-badge.hot { background: linear-gradient(135deg, #3D2517 0%, #5A3320 100%); color: #FFB088; border-color: #FF8A65; }
  body.dark .opp-detail-temp-badge.warm { background: linear-gradient(135deg, #3D2F0B 0%, #5A4515 100%); color: #FCD879; border-color: #F6B93B; }
  body.dark .opp-detail-temp-badge.cold { background: linear-gradient(135deg, #102B3D 0%, #1A4055 100%); color: #9CC8F5; border-color: #5DADE2; }
  .opp-detail-actions {
    display: flex;
    gap: 8px;
    align-items: flex-start;
  }

  .opp-detail-body {
    padding: 0;
    overflow-y: auto;
    flex: 1;
    background: var(--bg);
  }
  .opp-detail-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 16px;
    padding: 20px 28px;
  }
  @media (max-width: 900px) {
    .opp-detail-grid { grid-template-columns: 1fr; }
  }

  .opp-detail-section {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 14px;
  }
  .opp-detail-section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .opp-detail-section-title-icon {
    font-size: 14px;
  }

  .opp-detail-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 22px;
  }
  .opp-detail-field-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    font-weight: 700;
    margin-bottom: 4px;
  }
  .opp-detail-field-value {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
  }
  .opp-detail-field-value.highlight {
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: -0.01em;
  }
  .opp-detail-field-value.success {
    color: var(--k-green);
    font-weight: 700;
  }

  /* ===== HISTÓRICO DE TENTATIVAS ===== */
  .contact-actions {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
    margin-bottom: 14px;
  }
  @media (max-width: 600px) {
    .contact-actions { grid-template-columns: repeat(2, 1fr); }
  }
  .contact-action-btn {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 6px;
    cursor: pointer;
    font-family: inherit;
    text-align: center;
    transition: all 0.15s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }
  .contact-action-btn:hover {
    border-color: var(--primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
  }
  .contact-action-btn:hover .contact-action-icon {
    transform: scale(1.1);
  }
  .contact-action-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 14px;
    transition: transform 0.15s;
  }
  .contact-action-icon.ligacao { background: var(--v-asbuilt); }
  .contact-action-icon.email { background: var(--v-coord); }
  .contact-action-icon.whatsapp { background: var(--v-turnbim); }
  .contact-action-icon.reuniao { background: var(--v-inovatech); }
  .contact-action-icon.semresposta { background: var(--text-light); }
  .contact-action-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .contact-history-list {
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
  }
  .contact-history-item {
    display: grid;
    grid-template-columns: 32px 1fr auto;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
    align-items: start;
  }
  .contact-history-item:last-child { border-bottom: none; }
  .contact-history-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 12px;
    flex-shrink: 0;
  }
  .contact-history-content {
    min-width: 0;
  }
  .contact-history-action {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
  }
  .contact-history-meta {
    font-size: 11px;
    color: var(--text-muted);
  }
  .contact-history-time {
    font-size: 10px;
    color: var(--text-light);
    font-weight: 600;
    white-space: nowrap;
    align-self: start;
    text-align: right;
  }
  .contact-history-empty {
    padding: 20px;
    text-align: center;
    color: var(--text-light);
    font-size: 12px;
  }

  .contact-counter-bar {
    background: var(--bg-dark);
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
  }
  .contact-counter-label {
    color: var(--text-muted);
    font-weight: 600;
  }
  .contact-counter-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
  }

  /* Sidebar do modal: timeline visual + ações */
  .opp-detail-sidebar-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 14px;
  }
  .opp-stage-progress {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
  }
  .opp-stage-item {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    align-items: center;
    padding: 6px 4px;
    font-size: 12px;
    border-radius: 6px;
    transition: background 0.12s;
  }
  .opp-stage-item:hover {
    background: var(--primary-light);
  }
  .opp-stage-item:hover .opp-stage-marker {
    transform: scale(1.1);
  }
  .opp-stage-marker {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--bg-dark);
    color: var(--text-light);
    border: 2px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 800;
    transition: transform 0.12s;
  }
  .opp-stage-item.passed .opp-stage-marker {
    background: var(--k-green);
    color: white;
    border-color: var(--k-green);
  }
  .opp-stage-item.current .opp-stage-marker {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-light);
  }
  .opp-stage-item.passed .opp-stage-name { color: var(--text-muted); text-decoration: line-through; }
  .opp-stage-item.current .opp-stage-name { color: var(--primary); font-weight: 800; }
  .opp-stage-item.future .opp-stage-name { color: var(--text-light); }
  .opp-stage-name {
    font-weight: 600;
    font-size: 12px;
  }

  /* ============================================== */
  /* ============== TELA DE LOGIN ================ */
  /* ============================================== */
  .login-screen {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 9999;
    background: linear-gradient(135deg, #5B4EDC 0%, #7B70E6 50%, #9B91F0 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    overflow: hidden;
  }
  .login-screen::before {
    content: '';
    position: absolute;
    top: -50%; right: -20%;
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(255,255,255,0.15), transparent 70%);
    pointer-events: none;
  }
  .login-screen::after {
    content: '';
    position: absolute;
    bottom: -30%; left: -15%;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(255,255,255,0.10), transparent 70%);
    pointer-events: none;
  }
  body.dark .login-screen {
    background: linear-gradient(135deg, #2A2548 0%, #1F1B36 50%, #15172B 100%);
  }
  .login-card {
    background: var(--white);
    border-radius: 20px;
    padding: 40px 48px;
    width: 100%;
    max-width: 440px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.25);
    position: relative;
    z-index: 1;
    animation: loginCardIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  @keyframes loginCardIn {
    from { opacity: 0; transform: translateY(40px) scale(0.92); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  .login-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    margin-bottom: 32px;
  }
  .login-brand-logo {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--primary), #7B70E6);
    color: white;
    font-weight: 800;
    font-size: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(91,78,220,0.3);
  }
  .login-brand-text {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text);
  }
  .login-brand-text span { color: var(--primary); }
  .login-title {
    font-size: 22px;
    font-weight: 800;
    text-align: center;
    color: var(--text);
    margin-bottom: 6px;
    letter-spacing: -0.01em;
  }
  .login-subtitle {
    font-size: 13px;
    text-align: center;
    color: var(--text-muted);
    margin-bottom: 28px;
  }
  .login-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .login-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .login-field label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
  }
  .login-field input {
    padding: 12px 16px;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    color: var(--text);
    background: var(--bg);
    transition: border 0.15s;
  }
  .login-field input:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--white);
  }
  .login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    margin: 4px 0;
  }
  .login-remember {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    cursor: pointer;
  }
  .login-remember input { width: 14px; height: 14px; cursor: pointer; }
  .login-forgot {
    color: var(--primary);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
  }
  .login-forgot:hover { text-decoration: underline; }
  .login-submit {
    background: var(--primary);
    color: white;
    border: none;
    padding: 13px 24px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    margin-top: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .login-submit:hover {
    background: #4A3FC2;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(91,78,220,0.35);
  }
  .login-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 22px 0 16px 0;
    color: var(--text-light);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .login-divider::before, .login-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border);
  }
  .login-quick-users {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .login-quick-user {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    background: var(--bg);
    transition: all 0.12s;
    font-family: inherit;
  }
  .login-quick-user:hover {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .login-quick-user-avatar {
    width: 26px; height: 26px;
    border-radius: 50%;
    color: white;
    font-weight: 700;
    font-size: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .login-quick-user-info {
    text-align: left;
    line-height: 1.2;
    overflow: hidden;
  }
  .login-quick-user-name {
    font-size: 11px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .login-quick-user-role {
    font-size: 9px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .login-footer {
    text-align: center;
    margin-top: 24px;
    font-size: 11px;
    color: var(--text-light);
    line-height: 1.6;
  }
  .logout-btn {
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 18px;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    transition: all 0.15s;
  }
  .logout-btn:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }

  /* ============================================== */
  /* ============= NOVO NA V3.7 =================== */
  /* ============================================== */

  /* ===== FILTRO DE MÊS NA COLUNA FOLLOW-UP ===== */
  .followup-month-filter {
    display: flex;
    gap: 3px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 3px;
    margin-bottom: 8px;
  }
  .followup-month-chip {
    flex: 1;
    background: transparent;
    border: none;
    padding: 4px 6px;
    border-radius: 5px;
    cursor: pointer;
    font-family: inherit;
    font-size: 9px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: all 0.12s;
    white-space: nowrap;
  }
  .followup-month-chip:hover {
    background: var(--bg);
    color: var(--text);
  }
  .followup-month-chip.active {
    background: var(--k-yellow);
    color: #7A5A0E;
    box-shadow: var(--shadow);
  }

  .card-lead-followup-tag {
    background: linear-gradient(90deg, var(--k-yellow-bg), transparent);
    border-left: 3px solid var(--k-yellow);
    padding: 4px 8px;
    margin-top: 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    color: #7A5A0E;
    letter-spacing: 0.02em;
  }
  body.dark .card-lead-followup-tag {
    background: linear-gradient(90deg, #3D2F0B, transparent);
    color: #FCD879;
  }

  .card-lead.followup-hidden {
    display: none !important;
  }

  /* ===== MODAL DE MOTIVO (Ganho/Perdido) ===== */
  .reason-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
  }
  .reason-option {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.15s;
    text-align: left;
    font-family: inherit;
  }
  .reason-option:hover {
    border-color: var(--primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
  }
  .reason-option.selected {
    background: var(--primary-light);
    border-color: var(--primary);
    box-shadow: 0 4px 12px rgba(91,78,220,0.18);
  }
  .reason-option.selected.ganho {
    background: var(--k-green-bg);
    border-color: var(--k-green);
  }
  .reason-option.selected.perdido {
    background: #FAEAEA;
    border-color: var(--k-red);
  }
  body.dark .reason-option.selected.ganho {
    background: #143828;
    border-color: var(--k-green);
  }
  body.dark .reason-option.selected.perdido {
    background: #3D1B16;
    border-color: var(--k-red);
  }
  .reason-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.15s;
  }
  .reason-option.selected .reason-icon {
    background: var(--primary);
    color: white;
  }
  .reason-option.selected.ganho .reason-icon {
    background: var(--k-green);
    color: white;
  }
  .reason-option.selected.perdido .reason-icon {
    background: var(--k-red);
    color: white;
  }
  .reason-content {
    flex: 1;
  }
  .reason-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
  }
  .reason-desc {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.3;
  }
  .reason-option.selected .reason-name { color: var(--text); }

  .modal-success-banner {
    background: linear-gradient(135deg, var(--k-green-bg), #D4F0DF);
    border: 1px solid var(--k-green);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .modal-success-banner.perdido {
    background: linear-gradient(135deg, #FAEAEA, #F5DCDC);
    border-color: var(--k-red);
  }
  body.dark .modal-success-banner {
    background: linear-gradient(135deg, #143828, #0E2B1D);
  }
  body.dark .modal-success-banner.perdido {
    background: linear-gradient(135deg, #3D1B16, #2F1410);
  }
  .modal-success-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--k-green);
    color: white;
    font-size: 22px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .modal-success-banner.perdido .modal-success-icon { background: var(--k-red); }
  .modal-success-title {
    font-size: 14px;
    font-weight: 800;
    color: #0E5A39;
    margin-bottom: 2px;
  }
  .modal-success-banner.perdido .modal-success-title { color: #8B2418; }
  body.dark .modal-success-title { color: #4FCC8E; }
  body.dark .modal-success-banner.perdido .modal-success-title { color: #F26B5C; }
  .modal-success-desc {
    font-size: 12px;
    color: var(--text-muted);
  }

  /* ===== AGENDAMENTO DE PRÓXIMA TAREFA (período do dia) ===== */
  .period-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
  }
  .period-option {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 12px 8px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s;
    font-family: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }
  .period-option:hover {
    border-color: var(--primary);
    transform: translateY(-1px);
  }
  .period-option.selected {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .period-icon {
    font-size: 22px;
    line-height: 1;
  }
  .period-name {
    font-size: 11px;
    font-weight: 800;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .period-time {
    font-size: 9px;
    color: var(--text-muted);
    font-weight: 600;
  }

  .schedule-required-banner {
    background: linear-gradient(135deg, #FFFAEB, #FCEFC1);
    border-left: 4px solid var(--k-yellow);
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 18px;
    font-size: 12px;
    color: #7A5A0E;
    line-height: 1.5;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  body.dark .schedule-required-banner {
    background: linear-gradient(135deg, #3D2F0B, #2F2208);
    color: #FCD879;
  }
  .schedule-required-icon {
    font-size: 20px;
    flex-shrink: 0;
  }

  /* Estilo para textarea no modal de contato */
  .contact-note-textarea {
    width: 100%;
    min-height: 90px;
    padding: 12px 14px;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    font-family: inherit;
    font-size: 13px;
    color: var(--text);
    background: var(--white);
    resize: vertical;
  }
  .contact-note-textarea:focus {
    outline: none;
    border-color: var(--primary);
  }

  .contact-type-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--bg);
    border-radius: 8px;
    margin-bottom: 14px;
  }
  .contact-type-summary-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
  }
  .contact-type-summary-text {
    font-size: 12px;
  }
  .contact-type-summary-text strong {
    font-size: 13px;
    color: var(--text);
    display: block;
  }
  .contact-type-summary-text span {
    color: var(--text-muted);
  }

  /* Modal médio (intermediário entre normal e XL) */
  .modal.modal-md {
    max-width: 600px;
  }

  /* ============================================== */
  /* ============= NOVO NA V3.8 =================== */
  /* ============================================== */

  /* ===== FILTRO DE MÊS GLOBAL DO KANBAN ===== */
  .month-filter-bar {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 6px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
  }
  .month-filter-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    padding: 0 8px;
  }
  .month-filter-chip {
    background: transparent;
    border: 1px solid transparent;
    padding: 6px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.15s;
    white-space: nowrap;
  }
  .month-filter-chip:hover {
    background: var(--bg);
    color: var(--text);
  }
  .month-filter-chip.active {
    background: var(--primary);
    color: white;
    box-shadow: 0 2px 6px rgba(91,78,220,0.3);
  }

  /* ===== GOOGLE CALENDAR INTEGRATION ===== */
  .gcal-status {
    background: linear-gradient(135deg, #E6F4EA, #D4EBDD);
    border: 1px solid #34A853;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  body.dark .gcal-status {
    background: linear-gradient(135deg, #143828, #0E2B1D);
    color: #4FCC8E;
  }
  .gcal-status-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #34A853;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
  }
  .gcal-status-info {
    flex: 1;
    min-width: 0;
  }
  .gcal-status-title {
    font-size: 12px;
    font-weight: 800;
    color: #0E5A39;
  }
  body.dark .gcal-status-title { color: #4FCC8E; }
  .gcal-status-desc {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 1px;
  }
  .gcal-add-btn {
    background: white;
    border: 1px solid #34A853;
    color: #1F7A3D;
    padding: 6px 12px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s;
  }
  .gcal-add-btn:hover {
    background: #34A853;
    color: white;
    transform: translateY(-1px);
  }
  body.dark .gcal-add-btn {
    background: var(--bg-dark);
    color: #4FCC8E;
  }

  /* ===== PROPOSTAS DESTE CLIENTE (no modal de detalhe) ===== */
  .proposal-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .proposal-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 14px;
    background: var(--bg);
    border-radius: 8px;
    border-left: 3px solid var(--primary);
    transition: all 0.15s;
    cursor: pointer;
  }
  .proposal-item:hover {
    background: var(--primary-light);
    transform: translateX(2px);
  }
  .proposal-item-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 800;
  }
  .proposal-item-icon.ganho { background: var(--k-green); }
  .proposal-item-icon.perdido { background: var(--text-light); }
  .proposal-item-icon.aberto { background: var(--k-yellow); color: #7A5A0E; }
  .proposal-item-info {
    min-width: 0;
  }
  .proposal-item-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
  }
  .proposal-item-meta {
    font-size: 10px;
    color: var(--text-muted);
  }
  .proposal-item-value {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    white-space: nowrap;
  }
  .proposal-item-value.ganho { color: var(--k-green); }
  .proposal-item-value.perdido { color: var(--text-light); text-decoration: line-through; }

  /* ===== FILTROS NA PÁGINA DE OPORTUNIDADES ===== */
  .opp-filter-stack {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    align-items: center;
  }

  /* ===== RECURSOS / CARGOS ===== */
  .resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
  }
  .resource-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 18px;
    transition: all 0.15s;
  }
  .resource-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--primary);
  }
  .resource-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-light);
  }
  .resource-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
    flex-shrink: 0;
  }
  .resource-info {
    flex: 1;
    min-width: 0;
  }
  .resource-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
  }
  .resource-role {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 2px;
  }
  .resource-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 12px;
  }
  .resource-stat {
    background: var(--bg);
    border-radius: 8px;
    padding: 8px 10px;
    text-align: center;
  }
  .resource-stat-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
  }
  .resource-stat-label {
    font-size: 9px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 2px;
  }
  .resource-allocation {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .resource-alloc-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    padding: 4px 0;
  }
  .resource-alloc-name {
    color: var(--text);
    font-weight: 600;
    flex: 1;
  }
  .resource-alloc-pct {
    background: var(--primary-light);
    color: var(--primary);
    padding: 2px 8px;
    border-radius: 8px;
    font-weight: 800;
    font-size: 10px;
  }
  .resource-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 4px;
  }

  .resource-tabs {
    display: flex;
    gap: 4px;
    background: var(--bg-dark);
    padding: 4px;
    border-radius: 10px;
    margin-bottom: 18px;
    width: fit-content;
  }
  .resource-tab {
    padding: 8px 16px;
    background: transparent;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.15s;
  }
  .resource-tab.active {
    background: var(--white);
    color: var(--primary);
    box-shadow: var(--shadow);
  }

  .role-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 20px;
  }
  .role-card-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 4px;
  }
  .role-card-desc {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 12px;
  }
  .role-rate-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 14px;
    padding: 8px 0;
    border-top: 1px solid var(--border-light);
    font-size: 12px;
  }
  .role-rate-row:first-of-type { border-top: none; padding-top: 14px; margin-top: 8px; border-top: 1px solid var(--border); }
  .role-rate-name { font-weight: 600; color: var(--text); }
  .role-rate-cost { color: var(--text-muted); font-weight: 600; }
  .role-rate-fee { color: var(--primary); font-weight: 800; text-align: right; }

  /* ============================================== */
  /* ============= NOVO NA V4.0 =================== */
  /* ============================================== */

  /* ===== COLUNAS COLAPSÁVEIS ===== */
  .kanban {
    align-items: start;
  }
  .column.collapsed {
    min-height: 60px !important;
    width: 44px;
    grid-column: span 1;
    padding: 8px 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    overflow: hidden;
    position: relative;
    background: var(--bg-dark);
    border: 1px dashed var(--border);
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
  .column.collapsed:hover {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .column.collapsed .col-header {
    flex-direction: column;
    gap: 8px;
    padding: 8px 0;
    margin: 0;
    width: 100%;
    align-items: center;
    border-bottom: none;
  }
  .column.collapsed .col-title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 800;
    margin-top: 8px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .column.collapsed .col-title .col-dot {
    margin-bottom: 4px;
  }
  .column.collapsed .col-count {
    background: var(--primary);
    color: white;
    border-radius: 50%;
    min-width: 22px;
    height: 22px;
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
  }
  .column.collapsed .col-collapse-btn {
    display: none;
  }
  .column.collapsed .col-expand-hint {
    display: block;
    font-size: 10px;
    color: var(--primary);
    font-weight: 800;
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
  }
  .column.collapsed .card-lead,
  .column.collapsed .followup-month-filter {
    display: none !important;
  }
  /* Botão de colapsar dentro do header */
  .col-collapse-btn {
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 14px;
    width: 24px;
    height: 24px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s;
    margin-left: 6px;
    line-height: 1;
    padding: 0;
  }
  .col-collapse-btn:hover {
    background: var(--bg);
    color: var(--primary);
  }
  .col-expand-hint {
    display: none;
  }

  /* ===== TAG OUTBOUND NO CARD ===== */
  .card-lead-origin-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: linear-gradient(135deg, #E6F4EA, #C5E8D2);
    border: 1px solid #34A853;
    color: #1F7A3D;
    font-size: 9px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 8px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
  }
  body.dark .card-lead-origin-tag {
    background: linear-gradient(135deg, #143828, #0E2B1D);
    color: #4FCC8E;
  }

  /* ===== KANBAN PROSPECÇÃO (4 colunas) ===== */
  .prospect-kanban {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    align-items: start;
  }
  @media (max-width: 1100px) {
    .prospect-kanban { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 600px) {
    .prospect-kanban { grid-template-columns: 1fr; }
  }
  /* Cor da coluna Qualificado (verde) e Desqualificado (vermelho/cinza) */
  .prospect-kanban .column[data-pstage="qualified"] .col-dot {
    background: var(--k-green);
  }
  .prospect-kanban .column[data-pstage="disqualified"] .col-dot {
    background: var(--text-light);
  }
  .prospect-kanban .column[data-pstage="qualified"] {
    border-top: 3px solid var(--k-green);
  }
  .prospect-kanban .column[data-pstage="disqualified"] {
    border-top: 3px solid var(--text-light);
  }

  /* ===== CARD DE PROSPECÇÃO (mais simples que CRM) ===== */
  .card-prospect {
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--v-coord);
    border-radius: 10px;
    padding: 12px;
    margin-bottom: 10px;
    cursor: grab;
    transition: all 0.15s;
    position: relative;
  }
  .card-prospect:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--primary);
  }
  .card-prospect.dragging { opacity: 0.4; cursor: grabbing; }
  .card-prospect-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 4px;
    line-height: 1.25;
  }
  .card-prospect-segment {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 8px;
  }
  .card-prospect-source {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--bg);
    border-radius: 6px;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 8px;
  }
  .card-prospect-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 10px;
    color: var(--text-light);
    padding-top: 6px;
    border-top: 1px solid var(--border-light);
  }
  .card-prospect.qualified-anim {
    animation: cardQualified 0.5s ease-out;
  }
  @keyframes cardQualified {
    0% { transform: scale(1); }
    40% { transform: scale(1.05); background: var(--k-green-bg); }
    100% { transform: scale(1); }
  }
  .card-prospect.disqualified {
    opacity: 0.55;
    filter: grayscale(70%);
    border-left-color: var(--text-light);
  }

  /* ===== STATS DE PROSPECÇÃO ===== */
  .prospect-stats-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 18px;
  }
  .prospect-stat {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .prospect-stat-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
  }
  .prospect-stat-icon.green { background: var(--k-green); }
  .prospect-stat-icon.red { background: var(--k-red); }
  .prospect-stat-icon.blue { background: var(--v-coord); }
  .prospect-stat-info {
    flex: 1;
    min-width: 0;
  }
  .prospect-stat-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .prospect-stat-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
  }

  /* Estilo para grupos do sidebar com sub-niveis */
  .nav-item.nav-sub {
    padding-left: 32px;
    font-size: 12px;
    position: relative;
  }
  .nav-item.nav-sub::before {
    content: '';
    position: absolute;
    left: 18px;
    top: 50%;
    width: 8px;
    height: 1px;
    background: var(--text-light);
  }

  /* ============================================== */
  /* ============= NOVO NA V4.1 =================== */
  /* ============================================== */

  /* ===== SUBGRUPO COLAPSÁVEL NO SIDEBAR ===== */
  .nav-subgroup {
    margin: 4px 0;
  }
  .nav-subgroup-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 14px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 800;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    transition: all 0.12s;
    border-radius: 8px;
    text-align: left;
  }
  .nav-subgroup-toggle:hover {
    background: var(--bg-dark);
    color: var(--text);
  }
  .nav-subgroup-arrow {
    font-size: 10px;
    transition: transform 0.2s ease;
    width: 12px;
    display: inline-block;
    color: var(--text-light);
  }
  .nav-subgroup.collapsed .nav-subgroup-arrow {
    transform: rotate(-90deg);
  }
  .nav-subgroup-icon {
    font-size: 13px;
    color: var(--primary);
  }
  .nav-subgroup-content {
    overflow: hidden;
    max-height: 500px;
    transition: max-height 0.25s ease;
  }
  .nav-subgroup.collapsed .nav-subgroup-content {
    max-height: 0;
  }
  .nav-subgroup-content .nav-item {
    padding-left: 36px;
    font-size: 12px;
    position: relative;
  }
  .nav-subgroup-content .nav-item::before {
    content: '';
    position: absolute;
    left: 22px;
    top: 50%;
    width: 8px;
    height: 1px;
    background: var(--border);
  }
  .nav-subgroup-content .nav-item .nav-icon {
    font-size: 12px;
    width: 14px;
  }
  .nav-subgroup-count {
    margin-left: auto;
    background: var(--bg-dark);
    color: var(--text-muted);
    font-size: 9px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 8px;
  }

  /* ===== TELA DE 2FA ===== */
  .twofa-screen {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: linear-gradient(135deg, #5B4EDC 0%, #7B70E6 50%, #9B91F0 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    overflow: hidden;
  }
  body.dark .twofa-screen {
    background: linear-gradient(135deg, #2A2548 0%, #1F1B36 50%, #15172B 100%);
  }
  .twofa-card {
    background: var(--white);
    border-radius: 20px;
    padding: 36px 40px;
    width: 100%;
    max-width: 440px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.25);
    position: relative;
    z-index: 1;
    animation: loginCardIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .twofa-icon {
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--primary), #7B70E6);
    color: white;
    font-size: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
    box-shadow: 0 6px 20px rgba(91,78,220,0.35);
  }
  .twofa-title {
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--text);
    margin-bottom: 6px;
  }
  .twofa-subtitle {
    text-align: center;
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 4px;
    line-height: 1.5;
  }
  .twofa-email {
    font-weight: 700;
    color: var(--primary);
  }
  .twofa-demo-banner {
    background: linear-gradient(135deg, #FFFAEB, #FCEFC1);
    border: 1px dashed var(--k-yellow);
    border-radius: 10px;
    padding: 10px 14px;
    margin: 18px 0;
    text-align: center;
    font-size: 11px;
    color: #7A5A0E;
  }
  .twofa-demo-banner strong {
    font-size: 16px;
    letter-spacing: 0.15em;
    font-family: monospace;
    color: #4A3A0A;
    display: block;
    margin-top: 4px;
  }
  body.dark .twofa-demo-banner {
    background: linear-gradient(135deg, #3D2F0B, #2F2208);
    color: #FCD879;
  }
  body.dark .twofa-demo-banner strong { color: #FFE799; }
  .twofa-code-input {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 24px 0 16px;
  }
  .twofa-digit {
    width: 48px;
    height: 56px;
    text-align: center;
    border: 2px solid var(--border);
    border-radius: 10px;
    font-family: monospace;
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    background: var(--bg);
    transition: all 0.12s;
  }
  .twofa-digit:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--white);
    box-shadow: 0 0 0 3px rgba(91,78,220,0.18);
  }
  .twofa-digit.filled {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .twofa-digit.error {
    border-color: var(--k-red);
    background: var(--k-red-bg);
    animation: shake 0.4s;
  }
  @keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
  }
  .twofa-resend {
    text-align: center;
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 16px;
  }
  .twofa-resend-btn {
    background: transparent;
    border: none;
    color: var(--primary);
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
    font-family: inherit;
    font-size: 12px;
  }
  .twofa-resend-btn:disabled {
    color: var(--text-light);
    cursor: not-allowed;
    text-decoration: none;
  }
  .twofa-back {
    display: block;
    margin: 18px auto 0;
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
  }
  .twofa-back:hover { color: var(--primary); }
  .twofa-submit {
    width: 100%;
    margin-top: 6px;
  }

  /* ===== CARD DE PROSPECÇÃO ENRIQUECIDO ===== */
  .card-prospect {
    position: relative;
  }
  .card-prospect-temp {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    background: var(--bg);
    border: 1px solid var(--border);
  }
  .card-prospect-temp.hot {
    background: linear-gradient(135deg, #FFF4EC, #FFE5D3);
    border-color: #FF8A65;
    animation: heatPulse 2s ease-in-out infinite;
  }
  .card-prospect-temp.warm {
    background: linear-gradient(135deg, #FFF9E8, #FCEFC1);
    border-color: #F6B93B;
  }
  .card-prospect-temp.cold {
    background: linear-gradient(135deg, #EBF5FB, #D0E6F5);
    border-color: #5DADE2;
  }
  .card-prospect-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
    padding-right: 28px;
  }
  .card-prospect-model {
    font-size: 10px;
    color: var(--primary);
    background: var(--primary-light);
    padding: 2px 8px;
    border-radius: 6px;
    margin-bottom: 6px;
    font-weight: 700;
    display: inline-block;
  }
  .card-prospect-value {
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
  }
  .card-prospect-owner {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--border-light);
  }
  .card-prospect-owner .owner-avatar {
    width: 22px;
    height: 22px;
    font-size: 9px;
  }
  .card-prospect-owner-name {
    font-size: 11px;
    font-weight: 600;
    color: var(--text);
    flex: 1;
  }
  .card-prospect-attempts {
    font-size: 10px;
    color: var(--text-light);
    font-weight: 700;
  }

  /* ============================================== */
  /* ============= NOVO NA V4.2 =================== */
  /* ============================================== */

  /* Motion equivalente ao card do CRM (drag/ghost) */
  .card-prospect.card-being-dragged {
    transform: rotate(2.5deg) scale(1.02);
    box-shadow: 0 14px 30px rgba(91, 78, 220, 0.35);
    cursor: grabbing;
    border-color: var(--primary);
    z-index: 1000;
  }
  .card-prospect.card-dragging,
  .card-prospect.sortable-ghost {
    opacity: 0.35;
    background: var(--primary-light);
    border: 2px dashed var(--primary) !important;
  }
  .card-prospect.sortable-chosen {
    cursor: grabbing;
  }
  .prospect-kanban .column.drag-over-target {
    background: var(--primary-light);
    border: 2px dashed var(--primary);
  }

  /* ===== SORT DROPDOWN POR COLUNA DE PROSPECÇÃO ===== */
  .col-sort-dropdown {
    position: relative;
    margin-left: 4px;
  }
  .col-sort-btn {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
    width: 26px;
    height: 26px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    padding: 0;
    transition: all 0.12s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .col-sort-btn:hover {
    background: var(--primary-light);
    color: var(--primary);
    border-color: var(--primary);
  }
  .col-sort-menu {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    z-index: 50;
    min-width: 180px;
    display: none;
    overflow: hidden;
  }
  body.dark .col-sort-menu { box-shadow: 0 6px 20px rgba(0,0,0,0.5); }
  .col-sort-dropdown.open .col-sort-menu { display: block; }
  .col-sort-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    border: none;
    background: transparent;
    width: 100%;
    text-align: left;
    font-family: inherit;
  }
  .col-sort-option:hover { background: var(--bg); }
  .col-sort-option.active {
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 800;
  }
  .col-sort-option-icon {
    font-size: 14px;
    width: 16px;
  }

  /* ===== MODAL DE DETALHE DO PROSPECT ===== */
  .prospect-detail-section {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 12px;
  }
  .prospect-detail-actions-row {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
  }
  .btn-qualify {
    background: var(--k-green);
    color: white;
    border: none;
    padding: 12px 20px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    flex: 1;
    transition: all 0.15s;
  }
  .btn-qualify:hover {
    background: #1B7B47;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(46, 159, 95, 0.35);
  }
  .btn-disqualify {
    background: var(--bg);
    color: var(--text-muted);
    border: 1px solid var(--border);
    padding: 12px 20px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
  }
  .btn-disqualify:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
    border-color: var(--k-red);
  }

  /* ===== MODAL DE CONFIRMAÇÃO DE QUALIFICAÇÃO ===== */
  .confirm-qualify-banner {
    background: linear-gradient(135deg, #E6F4EA, #C5E8D2);
    border: 1px solid var(--k-green);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 18px;
    display: flex;
    gap: 14px;
    align-items: center;
  }
  body.dark .confirm-qualify-banner {
    background: linear-gradient(135deg, #143828, #0E2B1D);
  }
  .confirm-qualify-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--k-green);
    color: white;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .confirm-qualify-info strong {
    font-size: 14px;
    color: #0E5A39;
    display: block;
    margin-bottom: 4px;
  }
  body.dark .confirm-qualify-info strong { color: #4FCC8E; }
  .confirm-qualify-info span {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
  }
  .confirm-warning {
    background: #FFF9E8;
    border-left: 3px solid var(--k-yellow);
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 11px;
    color: #7A5A0E;
    line-height: 1.5;
    margin-top: 12px;
  }
  body.dark .confirm-warning {
    background: #3D2F0B;
    color: #FCD879;
  }

  /* ===== MODAL DE IMPORTAÇÃO ===== */
  .import-tabs {
    display: flex;
    gap: 4px;
    background: var(--bg);
    padding: 4px;
    border-radius: 8px;
    margin-bottom: 14px;
  }
  .import-tab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
  }
  .import-tab.active {
    background: var(--white);
    color: var(--primary);
    box-shadow: var(--shadow);
  }
  .import-dropzone {
    border: 2px dashed var(--border);
    border-radius: 12px;
    padding: 32px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s;
    background: var(--bg);
  }
  .import-dropzone:hover, .import-dropzone.drag-active {
    border-color: var(--primary);
    background: var(--primary-light);
  }
  .import-dropzone-icon {
    font-size: 36px;
    color: var(--text-light);
    margin-bottom: 10px;
  }
  .import-dropzone:hover .import-dropzone-icon, .import-dropzone.drag-active .import-dropzone-icon {
    color: var(--primary);
  }
  .import-dropzone-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 4px;
  }
  .import-dropzone-desc {
    font-size: 11px;
    color: var(--text-muted);
  }
  .import-paste-area {
    width: 100%;
    min-height: 140px;
    padding: 12px 14px;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    font-family: monospace;
    font-size: 11px;
    color: var(--text);
    background: var(--bg);
    resize: vertical;
  }
  .import-paste-area:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--white);
  }
  .import-template-card {
    background: linear-gradient(135deg, var(--primary-light), #ECEAFB);
    border: 1px solid var(--primary);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  body.dark .import-template-card {
    background: linear-gradient(135deg, rgba(91,78,220,0.15), rgba(91,78,220,0.05));
  }
  .import-template-card-info {
    flex: 1;
  }
  .import-template-card-info strong {
    font-size: 13px;
    color: var(--text);
    display: block;
  }
  .import-template-card-info span {
    font-size: 11px;
    color: var(--text-muted);
  }
  .import-preview {
    margin-top: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    max-height: 240px;
    overflow-y: auto;
  }
  .import-preview-header {
    background: var(--bg-dark);
    padding: 10px 14px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text);
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
  }
  .import-preview-row {
    display: grid;
    grid-template-columns: 2fr 1.5fr 1.5fr 1.5fr;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--border-light);
    font-size: 11px;
    color: var(--text);
  }
  .import-preview-row:nth-child(even) { background: var(--bg); }
  .import-preview-row.error {
    background: var(--k-red-bg);
    color: var(--k-red);
  }
  .import-preview-cell-empty {
    color: var(--text-light);
    font-style: italic;
  }

  /* ============================================== */
  /* ============= NOVO NA V4.3 =================== */
  /* ============================================== */

  /* Bug fix: impede seleção de texto durante drag */
  .card-prospect, .card-prospect * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
  }
  .card-lead, .card-lead * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
  }

  /* ===== TABELA DE CONTRATOS ===== */
  .contracts-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 18px;
  }
  .contract-stat-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .contract-stat-icon-big {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--k-green);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
  }
  .contract-stat-icon-big.purple { background: var(--primary); }
  .contract-stat-icon-big.blue { background: var(--v-coord); }
  .contract-stat-icon-big.orange { background: var(--v-asbuilt); }
  .contract-stat-info {
    flex: 1;
    min-width: 0;
  }
  .contract-stat-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1;
  }
  .contract-stat-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 6px;
    font-weight: 700;
  }
  .contract-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .contract-status-pill.ativo {
    background: var(--k-green-bg);
    color: #1F7A3D;
  }
  body.dark .contract-status-pill.ativo {
    background: rgba(46, 159, 95, 0.15);
    color: #4FCC8E;
  }
  .contract-status-pill.execucao {
    background: var(--primary-light);
    color: var(--primary);
  }
  .contract-status-pill.concluido {
    background: var(--bg-dark);
    color: var(--text-muted);
  }
  .contract-status-pill.assinatura {
    background: #FFFAEB;
    color: #7A5A0E;
  }
  body.dark .contract-status-pill.assinatura {
    background: #3D2F0B;
    color: #FCD879;
  }
  .contract-status-pill.desenvolvimento {
    background: var(--primary-light);
    color: var(--primary);
  }
  body.dark .contract-status-pill.desenvolvimento {
    background: rgba(91, 78, 220, 0.18);
    color: #ABA0FF;
  }
  .contract-card:hover {
    border-color: var(--primary) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.06);
  }

  .contract-empty-state {
    background: var(--white);
    border: 2px dashed var(--border);
    border-radius: 14px;
    padding: 60px 20px;
    text-align: center;
    color: var(--text-muted);
  }
  .contract-empty-icon {
    font-size: 48px;
    color: var(--text-light);
    margin-bottom: 14px;
  }
  .contract-empty-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 6px;
  }
  .contract-empty-desc {
    font-size: 13px;
    line-height: 1.6;
  }

  /* ===== SEÇÃO DE DADOS DO CONTRATO NO MODAL DE GANHO ===== */
  .contract-fields-section {
    background: linear-gradient(135deg, #E6F4EA, #C5E8D2);
    border: 1px solid var(--k-green);
    border-radius: 12px;
    padding: 16px 18px;
    margin: 16px 0;
  }
  body.dark .contract-fields-section {
    background: linear-gradient(135deg, #143828, #0E2B1D);
  }
  .contract-fields-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0E5A39;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  body.dark .contract-fields-title { color: #4FCC8E; }
  .contract-fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  /* ============================================== */
  /* ============= NOVO NA V4.4 =================== */
  /* ============================================== */

  /* ===== DROPDOWN DE USUÁRIO NO TOPBAR ===== */
  .user-menu {
    position: relative;
  }
  .user-menu-trigger:hover {
    background: var(--bg);
  }
  .user-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.14);
    min-width: 280px;
    padding: 8px;
    display: none;
    z-index: 100;
  }
  body.dark .user-dropdown { box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
  .user-menu.open .user-dropdown { display: block; }
  .user-dropdown-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 12px 14px;
  }
  .user-dropdown-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 16px;
    flex-shrink: 0;
  }
  .user-dropdown-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
  }
  .user-dropdown-email {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
  }
  .user-dropdown-divider {
    height: 1px;
    background: var(--border);
    margin: 4px 0;
  }
  .user-dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: none;
    background: transparent;
    cursor: pointer;
    width: 100%;
    text-align: left;
    border-radius: 8px;
    font-family: inherit;
    transition: background 0.12s;
  }
  .user-dropdown-item:hover {
    background: var(--bg);
  }
  .user-dropdown-item.danger:hover {
    background: var(--k-red-bg);
  }
  .user-dropdown-item.danger .user-dropdown-item-title {
    color: var(--k-red);
  }
  .user-dropdown-item-icon {
    font-size: 18px;
    width: 20px;
    flex-shrink: 0;
  }
  .user-dropdown-item-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
  }
  .user-dropdown-item-desc {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }

  /* ===== EDIÇÃO INLINE DO VENDEDOR ===== */
  .seller-edit-trigger {
    cursor: pointer;
    transition: all 0.12s;
    border-radius: 8px;
    padding: 8px;
    margin: -8px;
    position: relative;
  }
  .seller-edit-trigger:hover {
    background: var(--bg);
  }
  .seller-edit-trigger:hover::after {
    content: '✎';
    position: absolute;
    top: 6px;
    right: 6px;
    font-size: 10px;
    color: var(--primary);
    font-weight: 800;
  }
  .seller-picker {
    display: none;
    margin-top: 10px;
    padding: 10px;
    background: var(--bg);
    border-radius: 10px;
    border: 1px solid var(--border);
  }
  .seller-picker.open { display: block; }
  .seller-picker-title {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 8px;
  }
  .seller-picker-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
  .seller-picker-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.12s;
  }
  .seller-picker-opt:hover {
    border-color: var(--primary);
    background: var(--primary-light);
  }
  .seller-picker-opt.active {
    border-color: var(--primary);
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 800;
  }
  .seller-picker-opt .owner-avatar {
    width: 24px;
    height: 24px;
    font-size: 9px;
  }
  .seller-picker-opt-name {
    font-size: 11px;
    font-weight: 700;
    text-align: left;
    color: var(--text);
  }

  /* ===== FILTRO POR SEMANA NOS AGENDAMENTOS ===== */
  .week-filter-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: linear-gradient(90deg, #ECEAFB, transparent 70%);
    border-radius: 8px;
    margin-bottom: 6px;
    flex-wrap: wrap;
  }
  body.dark .week-filter-row {
    background: linear-gradient(90deg, rgba(91,78,220,0.12), transparent 70%);
  }
  .week-filter-label {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .week-filter-chip {
    padding: 5px 10px;
    border: 1px solid transparent;
    background: transparent;
    border-radius: 16px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.12s;
  }
  .week-filter-chip:hover {
    background: var(--white);
    color: var(--primary);
  }
  .week-filter-chip.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
  }

  /* ===== FILTRO DE DATA NA DASHBOARD ===== */
  .dashboard-date-filter {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    padding: 12px 16px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
  }
  .date-filter-chips {
    display: inline-flex;
    background: var(--bg);
    padding: 4px;
    border-radius: 10px;
    gap: 2px;
    flex-wrap: wrap;
  }
  .date-filter-chip {
    background: transparent;
    border: none;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.12s;
  }
  .date-filter-chip:hover {
    background: var(--white);
    color: var(--primary);
  }
  .date-filter-chip.active {
    background: var(--white);
    color: var(--primary);
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  }
  .date-filter-custom {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-left: auto;
  }
  .date-filter-custom input {
    padding: 5px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 11px;
    color: var(--text);
    background: var(--white);
  }

  /* ============================================== */
  /* ============= NOVO NA V4.5 =================== */
  /* ============================================== */

  /* ===== CALENDÁRIO ===== */
  .calendar-wrap {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 18px;
  }
  .calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 12px;
  }
  .calendar-month-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    text-transform: capitalize;
    min-width: 180px;
  }
  .calendar-nav-btn {
    background: var(--bg);
    border: 1px solid var(--border);
    color: var(--text);
    width: 36px;
    height: 36px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    transition: all 0.15s;
  }
  .calendar-nav-btn:hover {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary);
  }
  .calendar-today-btn {
    padding: 6px 14px;
    border: 1px solid var(--primary);
    background: var(--primary);
    color: white;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
  }
  .calendar-today-btn:hover {
    background: #4A3FB6;
  }
  .calendar-legend {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 11px;
    color: var(--text-muted);
  }
  /* ===== Modal "Eventos do dia" ===== */
  .cal-day-evt-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .cal-day-evt-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: all 0.12s;
    width: 100%;
  }
  .cal-day-evt-row:hover {
    background: var(--white);
    border-color: var(--primary);
    transform: translateX(2px);
    box-shadow: 0 4px 12px rgba(120,80,255,0.1);
  }
  .cal-day-evt-icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
  }
  .cal-day-evt-text { flex: 1; min-width: 0; }
  .cal-day-evt-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .cal-day-evt-meta {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .cal-day-evt-arrow {
    font-size: 18px;
    color: var(--text-light);
    flex-shrink: 0;
  }

  .calendar-event-more {
    cursor: pointer;
    transition: color 0.12s;
  }
  .calendar-event-more:hover { color: var(--primary); text-decoration: underline; }

  .calendar-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 4px 12px 4px 4px;
    font-family: inherit;
    font-size: 11px;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.12s;
    opacity: 0.45;
    filter: grayscale(0.6);
  }
  .calendar-legend-item:hover {
    background: var(--bg);
    border-color: var(--border);
  }
  .calendar-legend-item.is-active {
    opacity: 1;
    filter: none;
    background: var(--bg);
    border-color: var(--border);
    color: var(--text);
    font-weight: 600;
  }
  .calendar-legend-clear {
    background: transparent;
    border: 1px dashed var(--border-strong);
    border-radius: 999px;
    padding: 4px 12px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    transition: all 0.12s;
  }
  .calendar-legend-clear:hover {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .calendar-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
  }
  /* Legenda no estilo "ícone circular colorido" — segue o padrão dos botões de
     "Registrar Nova Tentativa" (LIGUEI/EMAIL/WHATSAPP/REUNIÃO/SEM RESP) */
  .calendar-legend-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    line-height: 1;
    color: white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  }
  .calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
  }
  .calendar-day-header {
    background: var(--bg);
    padding: 10px 8px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    text-align: center;
  }
  /* Modo semana: header com nome + número grande, hoje destacado em círculo */
  .calendar-grid-week .calendar-day-header {
    padding: 10px 6px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
  }
  .calendar-day-num {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }
  .calendar-day-num.is-today {
    background: var(--primary);
    color: white;
  }
  .calendar-day-header.is-today { background: var(--primary-light); }
  /* Coluna de label de período (esquerda) */
  .calendar-period-label {
    background: var(--bg);
    padding: 16px 10px;
    text-align: center;
    color: var(--text-muted);
    border-right: 2px solid var(--border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  /* Célula de período × dia */
  .calendar-cell-period {
    min-height: 110px;
  }
  .calendar-cell {
    background: var(--white);
    min-height: 100px;
    padding: 6px;
    position: relative;
    cursor: pointer;
    transition: background 0.12s;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .calendar-cell:hover {
    background: var(--bg);
  }
  .calendar-cell.outside-month {
    background: var(--bg);
    opacity: 0.55;
  }
  .calendar-cell.is-today {
    background: linear-gradient(180deg, var(--primary-light), var(--white));
  }
  .calendar-cell.is-today .calendar-cell-day {
    background: var(--primary);
    color: white;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
  }
  .calendar-cell.is-weekend {
    background: #FAFAFC;
  }
  body.dark .calendar-cell.is-weekend { background: #1A1F2E; }
  .calendar-cell-day {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
  }
  .calendar-event {
    background: var(--primary);
    color: white;
    padding: 3px 6px;
    border-radius: 4px;
    font-size: 10px;
    margin-bottom: 2px;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: all 0.1s;
    font-weight: 600;
  }
  .calendar-event:hover {
    transform: translateX(2px);
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  }
  .calendar-event.evt-followup {
    background: linear-gradient(90deg, #F6B93B, #E8A82B);
    color: #5A4400;
  }
  .calendar-event.evt-prospect {
    background: linear-gradient(90deg, #5DADE2, #4A9BD0);
  }
  .calendar-event.evt-meeting {
    background: linear-gradient(90deg, #A78BFA, #8B6FE8);
  }
  .calendar-event.evt-proposal {
    background: linear-gradient(90deg, var(--k-green), #218A4A);
  }
  .calendar-event.evt-google {
    background: linear-gradient(90deg, #4285F4, #1A73E8);
    color: #fff;
  }
  .calendar-event-icon {
    margin-right: 4px;
    font-size: 11px;
    line-height: 1;
  }
  .calendar-event-more {
    font-size: 9px;
    color: var(--primary);
    font-weight: 700;
    padding: 2px 4px;
  }

  .calendar-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 18px;
  }
  .calendar-stat {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .calendar-stat-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
  }
  .calendar-stat-icon.yellow { background: var(--k-yellow); color: #5A4400; }
  .calendar-stat-icon.blue { background: var(--v-coord); }
  .calendar-stat-icon.green { background: var(--k-green); }
  .calendar-stat-value {
    font-size: 20px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .calendar-stat-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
    font-weight: 700;
  }

  /* ===== LISTA DE LEADS NO DETALHE ===== */
  .lead-detail-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--primary);
    border-radius: 10px;
    padding: 12px 14px;
    cursor: pointer;
    transition: all 0.15s;
  }
  .lead-detail-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--primary);
  }
  .lead-detail-card-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 6px;
  }
  .lead-detail-card-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 8px;
  }
  .lead-detail-card-info {
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    justify-content: space-between;
    padding-top: 8px;
    border-top: 1px solid var(--border-light);
  }







  /* ===== SINO DE NOTIFICAÇÕES ===== */
  .notification-bell {
    position: relative;
  }
  .notification-bell-btn {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
    font-size: 18px;
    color: var(--text-muted);
    position: relative;
  }
  .notification-bell-btn:hover {
    background: var(--sidebar-hover);
    color: var(--text);
  }
  .notification-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    background: var(--k-red);
    color: white;
    font-size: 9px;
    font-weight: 800;
    min-width: 16px;
    height: 16px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    box-shadow: 0 0 0 2px var(--white);
    animation: badgePulse 2s ease-in-out infinite;
  }
  @keyframes badgePulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.12); }
  }

  .notifications-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 380px;
    max-height: 480px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    z-index: 100;
    display: none;
    flex-direction: column;
    overflow: hidden;
    animation: notifDropdownIn 0.18s ease;
  }
  @keyframes notifDropdownIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .notification-bell.open .notifications-dropdown {
    display: flex;
  }
  body.dark .notifications-dropdown {
    box-shadow: 0 10px 40px rgba(0,0,0,0.6);
  }
  .notif-header {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .notif-header-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
  }
  .notif-header-clear {
    background: transparent;
    border: none;
    color: var(--primary);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: inherit;
  }
  .notif-header-clear:hover { text-decoration: underline; }
  .notif-tabs {
    display: flex;
    background: var(--bg-dark);
    padding: 4px;
    gap: 4px;
  }
  .notif-tab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 8px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
    transition: all 0.15s;
  }
  .notif-tab.active {
    background: var(--white);
    color: var(--primary);
    box-shadow: var(--shadow);
  }
  .notif-tab:hover:not(.active) { color: var(--text); }
  .notif-list {
    overflow-y: auto;
    flex: 1;
    max-height: 360px;
  }
  .notif-item {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    display: grid;
    grid-template-columns: 32px 1fr auto;
    gap: 12px;
    cursor: pointer;
    transition: background 0.12s;
  }
  .notif-item:hover {
    background: var(--bg);
  }
  .notif-item.unread {
    background: var(--primary-light);
  }
  body.dark .notif-item.unread {
    background: rgba(91, 78, 220, 0.08);
  }
  .notif-item.unread:hover {
    background: var(--primary-light);
    filter: brightness(0.97);
  }
  .notif-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: white;
    flex-shrink: 0;
  }
  .notif-icon.cold { background: #5DADE2; }
  .notif-icon.task { background: var(--k-yellow); color: #7A5A0E; }
  .notif-icon.proposal { background: var(--primary); }
  .notif-icon.alert { background: var(--k-red); }
  .notif-icon.success { background: var(--k-green); }
  .notif-content {
    min-width: 0;
  }
  .notif-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
    line-height: 1.3;
  }
  .notif-desc {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
  }
  .notif-time {
    font-size: 10px;
    color: var(--text-light);
    font-weight: 600;
    white-space: nowrap;
    align-self: start;
  }
  .notif-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-light);
    font-size: 12px;
  }
  .notif-footer {
    padding: 10px 18px;
    border-top: 1px solid var(--border);
    text-align: center;
  }
  .notif-footer a {
    color: var(--primary);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
  }
  .notif-footer a:hover { text-decoration: underline; }

  /* ===== FILTRO POR VENDEDOR ===== */
  .seller-filters {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 6px;
    display: flex;
    gap: 4px;
    align-items: center;
  }
  .seller-filter-chip {
    background: transparent;
    border: 1px solid transparent;
    padding: 5px 10px 5px 6px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
  }
  .seller-filter-chip:hover {
    background: var(--bg);
    color: var(--text);
  }
  .seller-filter-chip.active {
    background: var(--bg-dark);
    color: var(--text);
    border-color: var(--border);
    box-shadow: var(--shadow);
  }
  .seller-filter-avatar {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 9px;
    letter-spacing: 0.02em;
    flex-shrink: 0;
  }
  .seller-filter-avatar.all-sellers {
    background: var(--bg-dark);
    color: var(--text-muted);
    border: 1px dashed var(--border);
    font-size: 11px;
  }
  body.dark .seller-filter-avatar.all-sellers {
    background: var(--bg-dark);
    color: var(--text);
  }

  /* ===== ORDENAÇÃO DE PROPOSTAS ===== */
  .proposal-sort-group {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 6px;
    display: inline-flex;
    gap: 4px;
    align-items: center;
  }
  .proposal-sort-chip {
    background: transparent;
    border: 1px solid transparent;
    padding: 5px 10px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    transition: all 0.15s;
  }
  .proposal-sort-chip:hover {
    background: var(--bg);
    color: var(--text);
  }
  .proposal-sort-chip.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
    box-shadow: var(--shadow);
  }

  /* Modal extra-large variant */
  .modal.modal-lg {
    max-width: 900px;
  }
  .modal-section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin: 18px 0 10px 0;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-light);
  }
  .modal-section-title:first-child { margin-top: 0; }

  /* Cliente Picker (em modal de oportunidade) */
  .client-picker {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px;
  }
  .client-picker-toggle {
    display: flex;
    gap: 6px;
    background: var(--white);
    border-radius: 8px;
    padding: 4px;
    margin-bottom: 12px;
    border: 1px solid var(--border);
  }
  .client-picker-toggle button {
    flex: 1;
    padding: 8px 12px;
    background: transparent;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
  }
  .client-picker-toggle button.active {
    background: var(--primary);
    color: white;
  }
  .client-picker-search {
    position: relative;
  }
  .client-picker-search input {
    width: 100%;
    padding: 10px 14px 10px 36px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 13px;
    color: var(--text);
    background: var(--white);
    font-family: inherit;
  }
  .client-picker-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-light);
    font-size: 14px;
    pointer-events: none;
  }
  .client-picker-results {
    max-height: 200px;
    overflow-y: auto;
    margin-top: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
    display: none;
  }
  .client-picker-results.open { display: block; }
  .client-picker-result {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-light);
    cursor: pointer;
    font-size: 12px;
    transition: background 0.12s;
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    align-items: center;
  }
  .client-picker-result:hover {
    background: var(--primary-light);
  }
  .client-picker-result:last-child { border-bottom: none; }
  .client-picker-result-avatar {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 10px;
  }
  .client-picker-result-name {
    font-weight: 700;
    color: var(--text);
  }
  .client-picker-result-sub {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 1px;
  }
  .client-picker-selected {
    background: var(--primary-light);
    border: 1px solid var(--primary);
    border-radius: 8px;
    padding: 12px 14px;
    margin-top: 8px;
    display: none;
    align-items: center;
    gap: 12px;
  }
  .client-picker-selected.shown { display: flex; }
  .client-picker-selected-avatar {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 800;
    font-size: 13px;
    flex-shrink: 0;
  }
  .client-picker-selected-info {
    flex: 1;
  }
  .client-picker-selected-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
  }
  .client-picker-selected-sub {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .client-picker-clear {
    background: transparent;
    border: 1px solid var(--primary);
    color: var(--primary);
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
  }
  .client-picker-clear:hover {
    background: var(--primary);
    color: white;
  }


  * { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--bg);
    color: var(--text);
    font-size: 14px;
    line-height: 1.5;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
  }

  :root {
    --sidebar-width: 240px;
  }
  .app {
    display: grid;
    grid-template-columns: var(--sidebar-width) 1fr;
    min-height: 100vh;
  }

  /* ===== SIDEBAR ===== */
  .sidebar {
    background: var(--sidebar-bg);
    border-right: 1px solid var(--border);
    padding: 20px 12px;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
  }
  .brand {
    padding: 6px 12px 20px;
    border-bottom: 1px solid var(--border-light);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .brand-logo {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--primary), #7B70E6);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
  }
  .brand-text {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--text);
  }
  .brand-text span { color: var(--primary); }
  .brand-sub {
    display: block;
    font-size: 10px;
    font-weight: 500;
    color: var(--text-muted);
    letter-spacing: 0.03em;
    margin-top: 2px;
  }
  .sidebar-resizer {
    position: absolute;
    top: 0;
    right: -2px;
    bottom: 0;
    width: 5px;
    cursor: col-resize;
    background: transparent;
    z-index: 50;
    transition: background 0.15s;
  }
  .sidebar-resizer:hover,
  .sidebar-resizer.dragging {
    background: var(--primary);
  }
  body.sidebar-collapsed .sidebar-resizer {
    display: none;
  }
  body.sidebar-resizing {
    cursor: col-resize !important;
    user-select: none;
  }
  body.sidebar-resizing * {
    cursor: col-resize !important;
    pointer-events: none;
  }
  body.sidebar-resizing .sidebar-resizer {
    pointer-events: auto;
  }

  .sidebar-collapse-btn {
    margin-left: auto;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--text-muted);
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
    flex-shrink: 0;
    line-height: 1;
  }
  .sidebar-collapse-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--sidebar-active);
  }

  /* ===== SIDEBAR COLAPSADA ===== */
  body.sidebar-collapsed {
    --sidebar-width: 64px;
  }
  body.sidebar-collapsed .sidebar {
    padding: 20px 6px;
  }
  body.sidebar-collapsed .brand {
    flex-direction: column;
    gap: 8px;
    padding: 6px 0 16px;
    align-items: center;
  }
  body.sidebar-collapsed .brand .brand-name {
    display: none;
  }
  body.sidebar-collapsed .sidebar-collapse-btn {
    margin-left: 0;
  }
  body.sidebar-collapsed .sidebar-group-title {
    display: none;
  }
  body.sidebar-collapsed .nav-item {
    justify-content: center;
    padding: 9px 4px;
    font-size: 0;
    letter-spacing: 0;
    gap: 0;
  }
  body.sidebar-collapsed .nav-item .nav-icon {
    font-size: 16px;
  }
  body.sidebar-collapsed .nav-subgroup-toggle {
    justify-content: center;
    padding: 8px 4px;
    font-size: 0;
    gap: 0;
  }
  body.sidebar-collapsed .nav-subgroup-toggle .nav-subgroup-icon {
    font-size: 16px;
  }
  body.sidebar-collapsed .nav-subgroup-toggle .nav-subgroup-arrow,
  body.sidebar-collapsed .nav-subgroup-toggle .nav-subgroup-count,
  body.sidebar-collapsed .nav-subgroup-toggle > span:not(.nav-subgroup-icon):not(.nav-subgroup-arrow):not(.nav-subgroup-count) {
    display: none;
  }
  body.sidebar-collapsed .nav-subgroup-content {
    max-height: 500px;
  }
  body.sidebar-collapsed .nav-subgroup-content .nav-item {
    padding-left: 4px;
  }
  body.sidebar-collapsed .nav-subgroup-content .nav-item::before {
    display: none;
  }

  .sidebar-group { margin-bottom: 16px; }
  .sidebar-group-title {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-light);
    padding: 10px 12px 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
    border-radius: 6px;
    transition: background 0.12s;
  }
  .sidebar-group-title:hover { background: var(--sidebar-hover); color: var(--text); }
  .sidebar-group-title::after {
    content: '▲';
    font-size: 8px;
    color: var(--text-light);
    transition: transform 0.2s ease;
  }
  .sidebar-group.collapsed .sidebar-group-title::after { transform: rotate(180deg); }
  .sidebar-group.collapsed > :not(.sidebar-group-title) {
    display: none;
  }

  .nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    transition: all 0.15s;
    text-decoration: none;
    margin-bottom: 2px;
  }
  .nav-item:hover {
    background: var(--sidebar-hover);
    color: var(--text);
  }
  .nav-item.active {
    background: var(--sidebar-active);
    color: var(--primary);
  }
  .nav-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* ===== TOPBAR ===== */
  .topbar {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    padding: 14px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  }
  .topbar-left {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .hamburger {
    width: 36px;
    height: 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    background: transparent;
    border: none;
    border-radius: 8px;
    transition: background 0.15s;
  }
  .hamburger:hover { background: var(--sidebar-hover); }
  .hamburger span {
    width: 18px;
    height: 2px;
    background: var(--text);
    border-radius: 2px;
  }
  .topbar-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
  }
  .topbar-title span {
    font-weight: 400;
    color: var(--text-muted);
  }

  .topbar-right {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
    font-size: 18px;
    color: var(--text-muted);
  }
  .icon-btn:hover { background: var(--sidebar-hover); }

  .portal-btn {
    background: var(--primary-light);
    color: var(--primary);
    padding: 8px 16px;
    border-radius: 20px;
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .user-menu {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-left: 16px;
    border-left: 1px solid var(--border);
  }
  .user-info { text-align: right; }
  .user-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  .user-role {
    background: var(--primary-light);
    color: var(--primary);
    font-size: 9px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
  }
  .user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
  }

  /* ===== MAIN ===== */
  /* overflow-x: clip evita scroll horizontal sem criar containing block que quebra
     position: sticky de elementos filhos (caso da topbar). Fallback hidden pra browsers antigos. */
  .main { overflow-x: hidden; overflow-x: clip; }
  .page { display: none; padding: 24px 28px 48px; }
  .page.active { display: block; animation: pageIn 0.3s ease; }
  @keyframes pageIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* ===== KPI CARDS (topo estilo LearningBIM) ===== */
  .kpi-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 18px;
  }
  .kpi-big {
    padding: 20px 24px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    min-height: 120px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .kpi-big-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.85;
  }
  .kpi-big-value {
    font-size: 44px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
  }
  .kpi-big-icon {
    position: absolute;
    bottom: 16px;
    right: 20px;
    font-size: 28px;
    opacity: 0.6;
  }

  .kpi-yellow { background: var(--k-yellow); color: #7A5A0E; }
  .kpi-yellow .kpi-big-icon { color: #7A5A0E; }
  .kpi-purple { background: var(--k-purple); color: white; }
  .kpi-white { background: var(--white); color: var(--text); border: 1px solid var(--border); }
  .kpi-white .kpi-big-label { color: var(--text-muted); }

  /* Segunda linha de KPIs menores e com cor suave */
  .kpi-row-2 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 24px;
  }
  .kpi-soft {
    padding: 18px 22px;
    border-radius: 16px;
    position: relative;
    min-height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .kpi-soft-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }
  .kpi-soft-value {
    font-size: 40px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
  }
  .kpi-soft-icon {
    position: absolute;
    bottom: 14px;
    right: 18px;
    font-size: 20px;
    opacity: 0.8;
  }
  .kpi-green { background: var(--k-green-bg); color: var(--k-green); }
  .kpi-red { background: var(--k-red-bg); color: var(--k-red); }
  .kpi-blue { background: var(--k-blue-bg); color: var(--k-blue); }
  .kpi-violet { background: var(--k-violet-bg); color: var(--k-violet); }

  /* ===== PAINÉIS ===== */
  .panels-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
  }
  .panel {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 22px 24px;
  }
  .panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border-light);
  }
  .panel-title {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .panel-title-icon { font-size: 16px; }
  .panel-sub {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
  }

  /* Lista usuários / leads */
  .list-row {
    display: grid;
    grid-template-columns: 28px 40px 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-light);
  }
  .list-row:last-child { border-bottom: none; }
  .list-num {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 600;
  }
  .list-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 13px;
    color: white;
  }
  .list-main-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
  }
  .list-main-sub {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .list-value {
    text-align: right;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
  }
  .list-value-sub {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 2px;
  }

  .empty-state {
    padding: 40px 20px;
    text-align: center;
    color: var(--text-light);
    font-size: 13px;
  }

  /* ===== VERTICAIS BARRAS ===== */
  .v-bars { display: flex; flex-direction: column; gap: 10px; }
  .v-row {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    align-items: center;
    gap: 12px;
    font-size: 12px;
  }
  .v-name {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text);
    font-weight: 600;
  }
  .v-dot { width: 10px; height: 10px; border-radius: 3px; }
  .v-bar-bg {
    background: var(--bg-dark);
    height: 20px;
    border-radius: 4px;
    overflow: hidden;
  }
  .v-bar { height: 100%; border-radius: 4px; transition: width 0.8s ease; }
  .v-value {
    font-weight: 700;
    font-size: 13px;
    color: var(--text);
    min-width: 80px;
    text-align: right;
  }

  /* ===== FUNIL ===== */
  .funnel { display: flex; flex-direction: column; gap: 10px; }
  .funnel-row {
    display: grid;
    grid-template-columns: 110px 1fr 60px;
    align-items: center;
    gap: 12px;
    font-size: 12px;
  }
  .funnel-label { color: var(--text); font-weight: 600; font-size: 12px; }
  .funnel-bar-bg {
    background: var(--bg-dark);
    height: 26px;
    border-radius: 4px;
    overflow: hidden;
  }
  .funnel-bar {
    height: 100%;
    display: flex;
    align-items: center;
    padding-left: 12px;
    color: white;
    font-weight: 700;
    font-size: 11px;
    transition: width 0.8s ease;
  }
  .funnel-pct {
    font-weight: 700;
    text-align: right;
    color: var(--text-muted);
    font-size: 12px;
  }

  /* ===== BANNER ALERT ===== */
  .alert {
    background: linear-gradient(135deg, #FEEAE7 0%, #FADBD6 100%);
    border-radius: 14px;
    padding: 16px 22px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .alert-icon-big {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: var(--k-red);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 20px;
    flex-shrink: 0;
  }
  .alert-body { flex: 1; }
  .alert-title {
    font-weight: 700;
    color: #9B2418;
    font-size: 14px;
    margin-bottom: 2px;
  }
  .alert-desc {
    font-size: 12px;
    color: #B85446;
    font-weight: 500;
  }
  .alert-cta {
    background: var(--k-red);
    color: white;
    padding: 8px 16px;
    border-radius: 8px;
    border: none;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
  }

  /* ===== BOTÕES ===== */
  .btn {
    padding: 8px 16px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--text);
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  .btn:hover { background: var(--bg); }
  .btn-primary {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
  }
  .btn-primary:hover { background: #4A3FC2; }
  .btn-small { padding: 5px 12px; font-size: 11px; }

  /* ===== PIPELINE ===== */
  .pipeline-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
    padding: 14px 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
  }
  .filter-chip {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: pointer;
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--text-muted);
    transition: all 0.15s;
  }
  .filter-chip:hover { background: var(--bg); }
  .filter-chip.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
  }

  .kanban {
    display: grid;
    grid-template-columns: repeat(6, minmax(150px, 1fr));
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
  }
  .kanban::-webkit-scrollbar { height: 10px; }
  .kanban::-webkit-scrollbar-track { background: var(--bg); border-radius: 6px; }
  .kanban::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 6px; }
  .kanban::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
  .column {
    background: var(--bg-dark);
    border-radius: 12px;
    padding: 10px;
    min-height: 500px;
    min-width: 0;
  }
  .col-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 4px 12px;
  }
  .col-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .col-dot { width: 8px; height: 8px; border-radius: 50%; }
  .col-count {
    background: var(--white);
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
  }

  .card-lead {
    background: var(--white);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 8px;
    border: 1px solid var(--border);
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
  }
  .card-lead:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
  }
  .card-lead-client {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--primary);
    padding-bottom: 6px;
    margin-bottom: 8px;
    border-bottom: 1px dashed var(--border);
    padding-right: 28px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .card-lead-name {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text);
  }
  .card-lead-tags {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-bottom: 8px;
  }
  .tag {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 2px 7px;
    border-radius: 4px;
    text-transform: uppercase;
    color: white;
  }
  .tag-inovatech { background: var(--v-inovatech); }
  .tag-turnbim { background: var(--v-turnbim); }
  .tag-asbuilt { background: var(--v-asbuilt); }
  .tag-coord { background: var(--v-coord); }
  .tag-learning { background: var(--v-learning); }
  .tag-gestartech { background: var(--v-gestartech); }
  /* Tipos de oferta transversais às verticais */
  .tag-consultoria { background: #8B5CF6; }
  .tag-treinamentos { background: #F59E0B; }
  .tag-entregaveis { background: #06B6D4; }

  .card-lead-meta {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
  }
  .card-lead-value { font-weight: 700; color: var(--text); }
  .card-lead.multi::before {
    content: '';
    position: absolute;
    top: 0;
    left: 12px;
    right: 12px;
    height: 3px;
    background: linear-gradient(90deg, var(--v-asbuilt), var(--v-coord), var(--v-turnbim));
    border-radius: 0 0 3px 3px;
  }

  /* ===== TEMPERATURA DO LEAD ===== */
  .card-lead.hot {
    border-left: 4px solid #FF6B35;
    background: linear-gradient(90deg, #FFF4EC 0%, var(--white) 18%);
  }
  .card-lead.warm {
    border-left: 4px solid #F6B93B;
    background: linear-gradient(90deg, #FFF9E8 0%, var(--white) 18%);
  }
  .card-lead.cold {
    border-left: 4px solid #5DADE2;
    background: linear-gradient(90deg, #EBF5FB 0%, var(--white) 18%);
  }
  .card-lead.ganho {
    border-left: 3px solid var(--k-green);
  }

  .card-lead-temp {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    z-index: 1;
  }
  .card-lead-temp.hot {
    background: linear-gradient(135deg, #FF8A65 0%, #FF6B35 100%);
    color: white;
    box-shadow: 0 0 0 2px white, 0 2px 6px rgba(255, 107, 53, 0.35);
    animation: hot-pulse 2.2s ease-in-out infinite;
  }
  .card-lead-temp.warm {
    background: linear-gradient(135deg, #FCD34D 0%, #F6B93B 100%);
    color: #7A5A0E;
    box-shadow: 0 0 0 2px white;
  }
  .card-lead-temp.cold {
    background: linear-gradient(135deg, #AED6F1 0%, #5DADE2 100%);
    color: white;
    box-shadow: 0 0 0 2px white, 0 2px 4px rgba(93, 173, 226, 0.25);
  }

  @keyframes hot-pulse {
    0%, 100% { box-shadow: 0 0 0 2px white, 0 2px 6px rgba(255, 107, 53, 0.35); }
    50% { box-shadow: 0 0 0 2px white, 0 2px 12px rgba(255, 107, 53, 0.65); }
  }

  /* Quando o card tem temperatura E sister tag, sister vai mais à esquerda */
  .card-lead.hot .card-lead-sister,
  .card-lead.warm .card-lead-sister,
  .card-lead.cold .card-lead-sister {
    right: 38px;
  }

  /* Indicador textual de "X dias sem contato" continua disponível */

  /* ===== LEGENDA DE TEMPERATURA ===== */
  .temp-legend {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 8px 14px;
    display: flex;
    gap: 14px;
    align-items: center;
  }
  .temp-legend-item {
    display: flex;
    gap: 8px;
    align-items: center;
  }
  .temp-legend-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
  }
  .temp-legend-text strong {
    font-size: 11px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: 0.02em;
  }
  .temp-legend-text span {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 500;
  }

  /* ===== FILTROS DE TEMPERATURA (clicáveis) ===== */
  .temp-filters {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 6px;
    display: flex;
    gap: 4px;
    align-items: center;
  }
  .temp-filter-chip {
    background: transparent;
    border: 1px solid transparent;
    padding: 6px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
  }
  .temp-filter-chip:hover {
    background: var(--bg);
    color: var(--text);
  }
  .temp-filter-chip.active {
    background: var(--bg-dark);
    color: var(--text);
    border-color: var(--border);
    box-shadow: var(--shadow);
  }
  .temp-filter-chip.active[data-temp="hot"] {
    background: linear-gradient(135deg, #FFF4EC 0%, #FFE5D3 100%);
    color: #C04A1A;
    border-color: #FF8A65;
  }
  .temp-filter-chip.active[data-temp="warm"] {
    background: linear-gradient(135deg, #FFF9E8 0%, #FCEFC1 100%);
    color: #7A5A0E;
    border-color: #F6B93B;
  }
  .temp-filter-chip.active[data-temp="cold"] {
    background: linear-gradient(135deg, #EBF5FB 0%, #D0E6F5 100%);
    color: #1F5F94;
    border-color: #5DADE2;
  }
  .temp-filter-chip.active[data-temp="all"] {
    background: var(--primary-light);
    color: var(--primary);
    border-color: var(--primary);
  }
  body.dark .temp-filter-chip.active[data-temp="hot"] {
    background: linear-gradient(135deg, #3D2517 0%, #5A3320 100%);
    color: #FFB088;
    border-color: #FF8A65;
  }
  body.dark .temp-filter-chip.active[data-temp="warm"] {
    background: linear-gradient(135deg, #3D2F0B 0%, #5A4515 100%);
    color: #FCD879;
    border-color: #F6B93B;
  }
  body.dark .temp-filter-chip.active[data-temp="cold"] {
    background: linear-gradient(135deg, #102B3D 0%, #1A4055 100%);
    color: #9CC8F5;
    border-color: #5DADE2;
  }
  .temp-filter-icon {
    font-size: 13px;
    line-height: 1;
  }
  .temp-filter-icon.all {
    color: var(--text-muted);
    font-size: 10px;
  }
  .temp-filter-text {
    font-size: 11px;
  }
  .temp-filter-count {
    background: var(--white);
    color: var(--text);
    font-size: 10px;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 10px;
    min-width: 18px;
    text-align: center;
    border: 1px solid var(--border);
  }
  body.dark .temp-filter-count {
    background: var(--bg-dark);
    border-color: var(--border);
  }
  .temp-filter-chip.active .temp-filter-count {
    background: rgba(255, 255, 255, 0.6);
    border-color: transparent;
  }
  body.dark .temp-filter-chip.active .temp-filter-count {
    background: rgba(0, 0, 0, 0.3);
  }

  /* ===== BARRA DE FILTROS ATIVOS ===== */
  .active-filters-bar {
    background: var(--primary-light);
    border: 1px solid var(--primary);
    border-radius: 10px;
    padding: 10px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    animation: slideDownFade 0.25s ease;
  }
  @keyframes slideDownFade {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
  body.dark .active-filters-bar {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .active-filters-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--primary);
  }
  .active-filters-list {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
  }
  .active-filter-pill {
    background: var(--primary);
    color: white;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .active-filters-clear {
    background: transparent;
    border: 1px solid var(--primary);
    color: var(--primary);
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: inherit;
  }
  .active-filters-clear:hover {
    background: var(--primary);
    color: white;
  }

  .card-lead-alert {
    font-size: 10px;
    font-weight: 700;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 4px;
    display: inline-block;
  }
  .card-lead-alert.cold { background: #EBF5FB; color: #1F5F94; }
  .card-lead-alert.warm { background: var(--k-yellow-bg); color: #8B6914; }
  /* Manter classes antigas funcionando (compatibilidade) */
  .card-lead-alert.risk { background: #EBF5FB; color: #1F5F94; }
  .card-lead-alert.warn { background: var(--k-yellow-bg); color: #8B6914; }

  /* ===== BREADCRUMB ===== */
  .breadcrumb {
    display: flex;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 12px;
    align-items: center;
  }
  .breadcrumb a { color: var(--text-muted); text-decoration: none; cursor: pointer; }
  .breadcrumb a:hover { color: var(--primary); }
  .breadcrumb span { color: var(--text); font-weight: 600; }

  .page-title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
    gap: 12px;
    flex-wrap: wrap;
  }
  .page-title-main {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--text);
  }
  .page-subtitle {
    font-size: 13px;
    color: var(--text-muted);
    margin-top: 4px;
  }

  /* ===== LEAD DETAIL ===== */
  .detail-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 18px;
  }
  .badge {
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

  .timeline {
    padding-left: 22px;
    border-left: 2px solid var(--border);
    margin-left: 8px;
  }
  .timeline-item {
    position: relative;
    padding-bottom: 20px;
  }
  .timeline-item::before {
    content: '';
    position: absolute;
    left: -30px;
    top: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--primary);
  }
  .timeline-item.wa::before { border-color: var(--v-turnbim); }
  .timeline-item.email::before { border-color: var(--v-coord); }
  .timeline-item.call::before { border-color: var(--v-asbuilt); }

  .timeline-time {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
  }
  .timeline-content { font-size: 13px; line-height: 1.5; }
  .ch-badge {
    font-size: 9px;
    padding: 2px 7px;
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-right: 6px;
    color: white;
  }
  .ch-wa { background: var(--v-turnbim); }
  .ch-email { background: var(--v-coord); }
  .ch-call { background: var(--v-asbuilt); }
  .ch-stage { background: var(--v-inovatech); }

  .info-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
  }
  .info-row:last-child { border-bottom: none; }
  .info-label { color: var(--text-muted); font-size: 12px; }
  .info-value { font-weight: 600; text-align: right; }

  .wa-card {
    background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
    color: white;
    border-radius: 14px;
    padding: 18px 22px;
    margin-bottom: 14px;
  }
  .wa-card-label {
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 700;
    opacity: 0.9;
    margin-bottom: 6px;
  }
  .wa-card-name {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
  }
  .wa-card-sub {
    font-size: 11px;
    opacity: 0.9;
    margin-bottom: 12px;
  }
  .wa-card-status {
    background: rgba(255,255,255,0.2);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
  }

  /* ===== PROPOSTA ===== */
  .proposal-meta {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
  }
  .meta-box {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
  }
  .meta-label {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 8px;
    font-weight: 700;
  }
  .meta-value {
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text);
  }
  .meta-value.positive { color: var(--k-green); }
  .meta-value.warn { color: var(--k-yellow); }
  .meta-box.highlight { background: var(--primary); border: none; }
  .meta-box.highlight .meta-label { color: rgba(255,255,255,0.7); }
  .meta-box.highlight .meta-value { color: white; }

  .eap-group {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    margin-bottom: 12px;
    overflow: hidden;
  }
  .eap-group-header {
    padding: 14px 18px;
    background: var(--bg-dark);
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .eap-group-name {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
  }
  .eap-group-total {
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
  }
  .eap-service {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 16px;
    align-items: center;
  }
  .eap-service:last-child { border-bottom: none; }
  .eap-service.is-courtesy {
    background: linear-gradient(180deg, var(--k-yellow-bg) 0%, var(--white) 100%);
  }
  .eap-service.is-courtesy .eap-service-name {
    color: var(--text);
  }
  .eap-service-name { font-size: 13px; font-weight: 600; }
  .eap-service-meta {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
  }
  .eap-service-hours {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 600;
  }
  .eap-service-value {
    font-size: 13px;
    font-weight: 700;
    min-width: 90px;
    text-align: right;
  }

  /* ===== CATÁLOGO ===== */
  .service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .service-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 20px;
    transition: all 0.15s;
    cursor: pointer;
  }
  .service-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
  }
  .service-card-tag {
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 12px;
    padding: 3px 10px;
    border-radius: 4px;
    display: inline-block;
    color: white;
  }
  .service-card-name {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 8px;
    line-height: 1.3;
  }
  .service-card-desc {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 16px;
  }
  .service-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
  }
  .service-card-price {
    font-weight: 700;
    color: var(--text);
    font-size: 13px;
  }

  /* ===== TABLE ===== */
  .table-wrap {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
  }
  .table {
    width: 100%;
    border-collapse: collapse;
  }
  .table thead {
    background: var(--bg-dark);
    border-bottom: 1px solid var(--border);
  }
  .table th {
    padding: 12px 18px;
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .table th.sortable-col {
    cursor: pointer;
    user-select: none;
    transition: background 0.15s, color 0.15s;
  }
  .table th.sortable-col:hover {
    background: var(--bg-dark);
    color: var(--primary);
  }
  .clients-sort-ind,
  .opp-sort-ind {
    margin-left: 4px;
    font-size: 11px;
    opacity: 0.4;
    transition: opacity 0.15s;
  }
  .table th.sortable-col:hover .clients-sort-ind,
  .table th.sortable-col:hover .opp-sort-ind {
    opacity: 0.9;
  }

  /* ===== Modo privacidade — oculta valores R$ ===== */
  /* Borra tudo que represente valor monetário. Mantém hours/percent/nomes visíveis. */
  body.hide-values .card-lead-value,
  body.hide-values .card-prospect-value,
  body.hide-values .proposal-cost-value,
  body.hide-values .proposal-card-value,
  body.hide-values .proposal-card-cortesia,
  body.hide-values .list-value,
  body.hide-values .kpi-big-value,
  body.hide-values .kpi-soft-value,
  body.hide-values .v-value,
  body.hide-values .stat-mini-value,
  body.hide-values .resource-stat-value,
  body.hide-values .eap-service-value,
  body.hide-values .role-rate-cost,
  body.hide-values .role-rate-fee,
  body.hide-values #prop-payment-total,
  body.hide-values #prop-payment-total-row,
  body.hide-values #opp-detail-value,
  body.hide-values #dash-kpi-pipeline,
  body.hide-values #dash-kpi-margin,
  body.hide-values #dash-kpi-forecast,
  body.hide-values #clients-ltv-total,
  body.hide-values #clients-ticket-medio {
    filter: blur(7px);
    user-select: none;
    transition: filter 0.2s;
  }
  /* Hover revela temporariamente (gerente pode espiar sem desligar o modo) */
  body.hide-values .card-lead-value:hover,
  body.hide-values .card-prospect-value:hover,
  body.hide-values .proposal-cost-value:hover,
  body.hide-values .proposal-card-value:hover,
  body.hide-values .list-value:hover,
  body.hide-values .kpi-big-value:hover,
  body.hide-values .kpi-soft-value:hover,
  body.hide-values .v-value:hover,
  body.hide-values .stat-mini-value:hover,
  body.hide-values .eap-service-value:hover {
    filter: blur(0);
  }
  /* Tabela de pagamento (cronograma de pagamento mensal) — borra coluna de valor */
  body.hide-values .proposal-payment-table td:nth-child(2),
  body.hide-values .proposal-payment-table tfoot td:nth-child(2) {
    filter: blur(7px);
    user-select: none;
  }
  /* Cronograma físico em modo "$ Valores" — borra todas as células */
  body.hide-values .cronograma-table .crono-cell {
    filter: blur(7px);
    user-select: none;
  }
  /* Em modo "Horas" ou "Percentual", células do cronograma NÃO são monetárias —
     desblurra elas. Detectamos via atributo data-cronograma-mode no body. */
  body.hide-values[data-cronograma-mode="hours"] .cronograma-table .crono-cell,
  body.hide-values[data-cronograma-mode="percent"] .cronograma-table .crono-cell {
    filter: none;
  }
  /* Linhas de tabelas (clientes LTV, opportunities VALOR, proposals lista) */
  body.hide-values #opp-table tbody td:nth-child(4),
  body.hide-values #clients-tbody tr td:last-child strong {
    filter: blur(7px);
    user-select: none;
  }

  /* ===== Cliente órfão (cliente excluído mas opp/card ainda referencia) ===== */
  .card-lead.orphan-client {
    border: 2px solid var(--k-red) !important;
    background: linear-gradient(180deg, #FFF1F1 0%, var(--white) 35%) !important;
    box-shadow: 0 0 0 1px rgba(220, 53, 69, 0.08), 0 4px 12px rgba(220, 53, 69, 0.10);
    position: relative;
  }
  .card-lead-orphan-tag {
    background: var(--k-red);
    color: white;
    font-size: 9px;
    font-weight: 800;
    padding: 4px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: inline-block;
    line-height: 1.2;
  }
  #opp-table tbody tr.orphan-row {
    background: #FDF3F3 !important;
    box-shadow: inset 4px 0 0 var(--k-red);
  }
  #opp-table tbody tr.orphan-row:hover {
    background: #FBE7E7 !important;
  }
  .opp-orphan-icon {
    color: var(--k-red);
    font-weight: 800;
    margin-right: 4px;
  }
  .opp-orphan-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #FDF3F3;
    border: 1px solid var(--k-red);
    border-left: 4px solid var(--k-red);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 16px;
    color: var(--k-red);
  }
  .opp-orphan-banner-icon {
    font-size: 20px;
    flex-shrink: 0;
  }

  /* ===== Trash icon nos contract cards ===== */
  .contract-card:hover .contract-card-delete,
  .contract-card.contract-orphan .contract-card-delete {
    opacity: 1 !important;
  }
  .contract-card-delete:hover {
    background: var(--k-red) !important;
    color: white !important;
  }

  /* ===== Multi-seleção no Pipeline e Prospecção ===== */
  .card-lead-checkbox,
  .card-prospect-checkbox {
    position: absolute;
    top: 10px;
    left: 10px;                  /* canto superior ESQUERDO — não conflita com temperatura na direita */
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--primary);
    z-index: 5;
    opacity: 0.55;               /* sempre visível pra usuário saber que pode selecionar */
    transition: opacity 0.15s, transform 0.12s;
  }
  .card-lead:hover .card-lead-checkbox,
  .card-lead.selected .card-lead-checkbox,
  .card-prospect:hover .card-prospect-checkbox,
  .card-prospect.selected .card-prospect-checkbox {
    opacity: 1;
    transform: scale(1.15);
  }
  /* Lixeirinha rápida no card (canto superior direito, ao lado da temperatura) */
  .card-prospect-quick-delete,
  .card-lead-quick-delete {
    position: absolute;
    top: 10px;
    right: 42px;                 /* à esquerda do badge de temperatura */
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--white);
    border: 1px solid var(--border);
    color: var(--k-red);
    cursor: pointer;
    z-index: 5;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all 0.15s;
    padding: 0;
    font-family: inherit;
  }
  .card-prospect:hover .card-prospect-quick-delete,
  .card-lead:hover .card-lead-quick-delete {
    opacity: 1;
  }
  .card-prospect-quick-delete:hover,
  .card-lead-quick-delete:hover {
    background: var(--k-red);
    color: white;
    border-color: var(--k-red);
    transform: scale(1.1);
  }
  /* Reservar espaço pro nome do prospect/lead não sobrepor o checkbox no left */
  .card-prospect .card-prospect-name,
  .card-lead .card-lead-name {
    padding-left: 26px;
  }
  .card-lead.selected,
  .card-prospect.selected {
    border: 2px solid var(--primary) !important;
    background: var(--primary-light) !important;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.18);
  }
  .card-lead.selected .card-lead-name,
  .card-prospect.selected .card-prospect-name {
    color: var(--primary);
  }
  .table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
  }
  .table tr:last-child td { border-bottom: none; }
  .table tr:hover { background: var(--bg); cursor: pointer; }
  .table .emph { font-weight: 700; }

  /* ===== CLIENT 360 ===== */
  .client-header {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px 28px;
    margin-bottom: 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .client-stats { display: flex; gap: 32px; }
  .client-stat-label {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 4px;
    font-weight: 700;
  }
  .client-stat-value {
    font-size: 20px;
    font-weight: 800;
  }

  .opp-item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 8px;
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    align-items: center;
    gap: 16px;
  }
  .opp-item.suggestion { background: var(--k-yellow-bg); border-color: #E6C574; }

  /* ===== FORMS ===== */
  textarea, input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--text);
    background: var(--white);
    transition: border 0.15s;
  }
  textarea:focus, input:focus {
    outline: none;
    border-color: var(--primary);
  }
  textarea { min-height: 70px; resize: vertical; }

  /* ===== Drag de colunas em /Oportunidades (handle ⋮⋮ dedicado) ===== */
  .draggable-col {
    user-select: none;
  }
  .opp-col-drag-handle {
    display: inline-block;
    margin-right: 8px;
    color: var(--border-strong);
    cursor: grab;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: -2px;
    padding: 0 4px;
    border-radius: 4px;
    transition: all 0.12s;
    user-select: none;
  }
  .opp-col-drag-handle:hover {
    color: var(--primary);
    background: var(--primary-light);
  }
  .opp-col-drag-handle:active {
    cursor: grabbing;
  }
  .opp-th-ghost {
    opacity: 0.4;
    background: var(--primary-light) !important;
  }
  .opp-th-chosen {
    background: var(--primary-light) !important;
    box-shadow: 0 4px 12px rgba(91, 78, 220, 0.3);
  }
  .opp-th-drag {
    opacity: 0.9 !important;
    background: var(--white) !important;
    border-radius: 6px !important;
  }

  /* ===== TABELA DE OPORTUNIDADES V2 (visual polido, estilo ClickUp) ===== */
  .opp-table-v2 {
    border-collapse: separate;
    border-spacing: 0 4px;
  }
  .opp-table-v2 thead th {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-light);
    background: transparent;
    border-bottom: 1px solid var(--border);
    padding: 12px 14px;
  }
  .opp-table-v2 tbody tr {
    background: var(--white);
    transition: all 0.15s;
    border-radius: 8px;
  }
  .opp-table-v2 tbody tr:hover {
    box-shadow: 0 2px 10px rgba(91, 78, 220, 0.08);
    transform: translateY(-1px);
  }
  .opp-table-v2 tbody td {
    padding: 14px 14px;
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
  }
  .opp-table-v2 tbody td:first-child {
    border-left: 1px solid var(--border-light);
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
  }
  .opp-table-v2 tbody td:last-child {
    border-right: 1px solid var(--border-light);
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
  }
  .opp-table-v2 tbody td.emph {
    font-weight: 700;
    color: var(--text);
  }

  /* ===== TOGGLE SWITCH (sliders iOS-style — usado em Permissões) ===== */
  .perm-action-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 14px 6px 8px;
    transition: all 0.15s;
  }
  .perm-action-row.is-allowed {
    background: var(--k-green-bg);
    border-color: var(--k-green);
  }
  .perm-toggle {
    position: relative;
    display: inline-block;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
  }
  .perm-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
  }
  .perm-toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background: var(--border-strong);
    border-radius: 999px;
    transition: 0.2s;
  }
  .perm-toggle-slider::before {
    content: '';
    position: absolute;
    height: 16px;
    width: 16px;
    left: 2px;
    top: 2px;
    background: white;
    border-radius: 50%;
    transition: 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  }
  .perm-toggle input:checked + .perm-toggle-slider {
    background: var(--k-green);
  }
  .perm-toggle input:checked + .perm-toggle-slider::before {
    transform: translateX(16px);
  }
  .perm-action-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    user-select: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .perm-action-row.is-allowed .perm-action-label { color: var(--k-green); }
  .perm-action-row.is-locked {
    opacity: 0.55;
    pointer-events: none;
    background: var(--bg);
    border-color: var(--border);
  }
  .perm-action-row.is-locked.is-allowed {
    background: var(--bg);
    border-color: var(--border);
  }

  /* ===== APRESENTAÇÕES + FORMS (página de Materiais) ===== */
  .materials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
  }
  .materials-empty {
    grid-column: 1 / -1;
    padding: 32px;
    background: var(--white);
    border: 1px dashed var(--border);
    border-radius: 12px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13px;
  }
  .material-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: all 0.15s;
    position: relative;
  }
  .material-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
    border-color: var(--primary-light);
  }
  .material-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: var(--primary-light);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 800;
    flex-shrink: 0;
  }
  .material-card-icon.pdf { background: #FEE6E6; color: #C53030; }
  .material-card-icon.link { background: #E0F2FE; color: #0369A1; }
  .material-card-icon.both { background: linear-gradient(135deg, #FEE6E6 50%, #E0F2FE 50%); color: var(--text); }
  .material-card-icon.form { background: var(--primary-light); color: var(--primary); }
  .material-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
  }
  .material-card-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    margin-bottom: 4px;
  }
  .material-card-desc {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .material-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }
  .material-card-meta {
    font-size: 10px;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid var(--border-light);
    display: flex;
    justify-content: space-between;
    gap: 8px;
  }
  .material-card-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
  }
  .material-card-actions .btn {
    flex: 1;
    min-width: 0;
    padding: 7px 10px;
    font-size: 11px;
  }
  .material-card-icon-btn {
    width: 30px;
    height: 30px;
    padding: 0;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: var(--bg);
    border: 1px solid var(--border);
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
  }
  .material-card-icon-btn:hover { color: var(--text); border-color: var(--text-light); }
  .material-card-icon-btn.danger:hover { color: var(--k-red); border-color: var(--k-red); background: var(--k-red-bg); }

  .supplier-stars {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 10px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
  }
  .supplier-star {
    font-size: 22px;
    color: var(--border-strong);
    cursor: pointer;
    transition: color 0.12s, transform 0.12s;
    user-select: none;
    line-height: 1;
  }
  .supplier-star:hover {
    transform: scale(1.15);
  }
  .supplier-stars[data-current="1"] .supplier-star[data-val="1"],
  .supplier-stars[data-current="2"] .supplier-star[data-val="1"],
  .supplier-stars[data-current="2"] .supplier-star[data-val="2"],
  .supplier-stars[data-current="3"] .supplier-star[data-val="1"],
  .supplier-stars[data-current="3"] .supplier-star[data-val="2"],
  .supplier-stars[data-current="3"] .supplier-star[data-val="3"],
  .supplier-stars[data-current="4"] .supplier-star[data-val="1"],
  .supplier-stars[data-current="4"] .supplier-star[data-val="2"],
  .supplier-stars[data-current="4"] .supplier-star[data-val="3"],
  .supplier-stars[data-current="4"] .supplier-star[data-val="4"],
  .supplier-stars[data-current="5"] .supplier-star[data-val="1"],
  .supplier-stars[data-current="5"] .supplier-star[data-val="2"],
  .supplier-stars[data-current="5"] .supplier-star[data-val="3"],
  .supplier-stars[data-current="5"] .supplier-star[data-val="4"],
  .supplier-stars[data-current="5"] .supplier-star[data-val="5"] {
    color: #F6B93B;
  }
  .supplier-star-clear {
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 16px;
    padding: 0 4px;
    margin-left: 4px;
    line-height: 1;
    border-radius: 4px;
  }
  .supplier-star-clear:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }

  .supplier-tier {
    display: inline-flex;
    align-items: center;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.5px;
    padding: 3px 8px;
    border-radius: 6px;
    cursor: help;
  }
  .supplier-tier-1 { color: var(--k-green); background: var(--k-green-bg); }
  .supplier-tier-2 { color: #B5A20A; background: #FFF8E5; }
  .supplier-tier-3 { color: #C77A1F; background: #FEF1E0; }
  .supplier-tier-4 { color: var(--k-red); background: var(--k-red-bg); }

  .supplier-photo-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 110px;
    flex-shrink: 0;
  }
  .supplier-photo-preview {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--bg-dark);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    border: 2px solid var(--border);
    overflow: hidden;
    background-size: cover;
    background-position: center;
  }
  .supplier-card-photo {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--bg-dark);
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--text);
  }

  .vertical-chip-group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .vertical-chip {
    padding: 6px 12px;
    border-radius: 14px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--bg);
    border: 1px solid var(--border);
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.12s;
    user-select: none;
  }
  .vertical-chip:hover { color: var(--text); border-color: var(--text-light); }
  .vertical-chip.active {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
  }

  .form-fields-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .form-field-block {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .form-field-block.is-section {
    background: var(--primary-light);
    border-color: var(--primary);
  }
  .form-field-row {
    display: grid;
    grid-template-columns: 2fr 1fr auto auto;
    gap: 8px;
    align-items: center;
  }
  .form-field-row .form-input {
    padding: 7px 10px;
    font-size: 12px;
  }
  .form-field-row .form-required-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--text-muted);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
  }
  .form-field-row .form-field-remove {
    background: var(--bg-dark);
    border: none;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .form-field-row .form-field-remove:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }
  .form-field-options {
    margin-left: 0;
  }
  .form-field-options textarea {
    width: 100%;
    padding: 7px 10px;
    font-size: 12px;
    resize: vertical;
  }
  .form-field-options-hint {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
  }

  /* ===== Preview do form em tela cheia ===== */
  .form-preview-overlay {
    padding: 0 !important;
  }
  .form-preview-fullscreen {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
  }
  .form-preview-fullscreen .modal-body {
    padding: 32px 64px;
    max-width: 900px;
    margin: 0 auto;
    width: 100%;
  }
  @media (max-width: 768px) {
    .form-preview-fullscreen .modal-body {
      padding: 18px 20px;
    }
  }

  /* ===== Matriz (item × nível) no form preview ===== */
  .form-matrix-wrap {
    overflow-x: auto;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 6px;
  }
  .form-matrix {
    width: 100%;
    border-collapse: collapse;
  }
  .form-matrix thead th {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    text-align: center;
    background: var(--white);
  }
  .form-matrix thead th:first-child { text-align: left; }
  .form-matrix tbody td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-light);
    text-align: center;
  }
  .form-matrix tbody tr:last-child td { border-bottom: none; }
  .form-matrix tbody tr:hover { background: var(--white); }
  .form-matrix-rowlabel {
    text-align: left !important;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
  }
  .form-matrix input[type="radio"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
  }

  /* ===== Repeater (lista dinâmica) ===== */
  .form-repeater {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px;
  }
  .form-repeater-rows {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
  }
  .form-repeater-row {
    display: grid;
    grid-template-columns: 2fr 1fr auto;
    gap: 8px;
    align-items: center;
  }
  .form-repeater-row .form-input {
    padding: 8px 10px;
    font-size: 13px;
  }
  .form-repeater-remove {
    background: var(--bg-dark);
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .form-repeater-remove:hover {
    background: var(--k-red-bg);
    color: var(--k-red);
  }

  /* ===== Analytics (/Forms > Analytics) ===== */
  .analytics-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin-bottom: 18px;
  }
  @media (max-width: 1100px) {
    .analytics-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  }
  .analytics-kpi {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .analytics-kpi-icon {
    font-size: 28px;
    line-height: 1;
  }
  .analytics-kpi-num {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .analytics-kpi-lbl {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    font-weight: 700;
    margin-top: 4px;
  }

  .analytics-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 16px;
  }
  .analytics-card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-light);
  }
  .analytics-row-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  @media (max-width: 1100px) {
    .analytics-row-grid { grid-template-columns: 1fr; }
  }

  /* ===== Funil ===== */
  .analytics-funnel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
  }
  .analytics-funnel-stage {
    color: white;
    padding: 14px 22px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 14px;
    justify-content: space-between;
    min-width: 200px;
    transition: width 0.4s ease;
  }
  .analytics-funnel-stage strong {
    font-size: 18px;
    font-weight: 800;
  }
  .analytics-funnel-dropoff {
    font-size: 11px;
    color: var(--k-red);
    font-weight: 700;
    margin: 2px 0;
  }

  /* ===== Timeline (volume por mês) ===== */
  .analytics-timeline {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 200px;
    padding: 10px 0;
  }
  .analytics-timeline-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
  }
  .analytics-timeline-bar {
    width: 100%;
    background: linear-gradient(180deg, var(--primary), #7B70E6);
    border-radius: 6px 6px 0 0;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 6px;
    transition: height 0.4s ease;
    min-height: 4px;
  }
  .analytics-timeline-num {
    color: white;
    font-size: 10px;
    font-weight: 800;
  }
  .analytics-timeline-lbl {
    font-size: 9px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    margin-top: 6px;
  }

  /* ===== Horizontal bars ===== */
  .analytics-hbars {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .analytics-hbar-row {
    display: grid;
    grid-template-columns: 1fr 2fr auto;
    gap: 12px;
    align-items: center;
  }
  .analytics-hbar-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .analytics-hbar-track {
    height: 14px;
    background: var(--bg);
    border-radius: 7px;
    overflow: hidden;
  }
  .analytics-hbar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--primary), #7B70E6);
    border-radius: 7px;
    transition: width 0.4s ease;
  }
  .analytics-hbar-num {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    text-align: right;
  }

  /* ===== Sino piscando quando nova submissão chega ===== */
  @keyframes bell-pulse {
    0%, 100% { transform: rotate(0deg); }
    15% { transform: rotate(-15deg); }
    30% { transform: rotate(12deg); }
    45% { transform: rotate(-10deg); }
    60% { transform: rotate(8deg); }
    75% { transform: rotate(-6deg); }
    90% { transform: rotate(3deg); }
  }
  .notification-bell-btn.bell-pulse {
    animation: bell-pulse 0.8s ease-in-out 2;
    color: var(--primary);
  }

  /* ===== Toggle Templates / Submissões ===== */
  .forms-mode-toggle {
    display: inline-flex;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 4px;
    gap: 4px;
  }
  .forms-mode-btn {
    background: transparent;
    border: none;
    padding: 8px 18px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.12s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .forms-mode-btn.active {
    background: var(--white);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  }
  .forms-mode-btn:hover:not(.active) {
    color: var(--text);
  }
  .forms-mode-badge {
    background: var(--primary);
    color: white;
    border-radius: 10px;
    padding: 1px 8px;
    font-size: 10px;
    font-weight: 800;
  }

  /* ===== KPIs de Submissões ===== */
  .submissions-kpi {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    text-align: center;
  }
  .submissions-kpi-num {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .submissions-kpi-lbl {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    font-weight: 700;
    margin-top: 6px;
  }

  /* ===== Lista de submissões ===== */
  .submissions-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .submission-row {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 18px;
    display: grid;
    grid-template-columns: auto 1fr auto auto auto;
    gap: 16px;
    align-items: center;
    cursor: pointer;
    transition: all 0.15s;
  }
  .submission-row:hover {
    box-shadow: 0 2px 10px rgba(91, 78, 220, 0.08);
    transform: translateY(-1px);
    border-color: var(--primary-light);
  }
  .submission-row.is-new {
    border-left: 3px solid var(--primary);
    background: linear-gradient(90deg, var(--primary-light) 0%, var(--white) 8%);
  }
  .submission-status-chip {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 4px 10px;
    border-radius: 20px;
    white-space: nowrap;
  }
  .submission-status-new      { background: var(--primary-light); color: var(--primary); }
  .submission-status-reviewed { background: #FFF8E5; color: #7A5A0E; }
  .submission-status-contacted { background: #E0F2FE; color: #0369A1; }
  .submission-status-qualified { background: var(--k-green-bg); color: var(--k-green); }
  .submission-status-discarded { background: var(--bg-dark); color: var(--text-light); }

  .submission-form-tag {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 8px;
    background: var(--bg-dark);
    color: var(--text-muted);
    border-radius: 6px;
    white-space: nowrap;
  }

  /* ===== Detalhes da submissão (respostas formatadas) ===== */
  .sub-answer-section {
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 12px;
  }
  .sub-answer-section-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-light);
  }
  .sub-answer-row {
    margin-bottom: 14px;
  }
  .sub-answer-row:last-child { margin-bottom: 0; }
  .sub-answer-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
  }
  .sub-answer-value {
    font-size: 13px;
    color: var(--text);
    line-height: 1.5;
    background: var(--bg);
    padding: 8px 12px;
    border-radius: 6px;
    white-space: pre-wrap;
  }
  .sub-answer-value.empty {
    color: var(--text-light);
    font-style: italic;
  }
  .sub-answer-multiselect {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }
  .sub-answer-chip {
    background: var(--primary-light);
    color: var(--primary);
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 12px;
  }
  .sub-answer-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--bg);
    border-radius: 6px;
    overflow: hidden;
  }
  .sub-answer-table th {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    padding: 8px 12px;
    text-align: left;
    background: var(--bg-dark);
  }
  .sub-answer-table td {
    padding: 8px 12px;
    font-size: 12px;
    color: var(--text);
    border-top: 1px solid var(--border-light);
  }

  /* ===== Modo público (form externo via URL) ===== */
  #public-form-screen {
    min-height: 100vh;
    background: linear-gradient(180deg, #F4F2FB 0%, #FAFAFC 50%, #F4F2FB 100%);
    display: flex;
    flex-direction: column;
  }
  .public-form-topbar {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    padding: 14px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
    position: sticky;
    top: 0;
    z-index: 10;
  }
  .public-form-brand {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .public-form-brand-logo {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--primary), #7B70E6);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
  }
  .public-form-brand-text {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--text);
  }
  .public-form-brand-text span { color: var(--primary); }
  .public-form-brand-sub {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
  }
  .public-form-status {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
  }
  .public-form-stage {
    flex: 1;
    width: 100%;
    max-width: 920px;
    margin: 0 auto;
    padding: 32px 24px 60px;
  }
  @media (max-width: 768px) {
    .public-form-stage { padding: 18px 14px 40px; }
  }
  .public-form-footer {
    padding: 16px;
    text-align: center;
    font-size: 11px;
    color: var(--text-muted);
    border-top: 1px solid var(--border-light);
  }
  /* Multi-step navegation (tabs por seção) */
  .public-form-step-tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 4px 2px;
    margin-bottom: 6px;
    scrollbar-width: thin;
  }
  .public-form-step-tab {
    flex: 0 0 auto;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 14px 6px 6px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
    white-space: nowrap;
  }
  .public-form-step-tab:hover { background: var(--bg-dark); }
  .public-form-step-tab .step-num {
    background: var(--bg-dark);
    color: var(--text-muted);
    width: 22px; height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
  }
  .public-form-step-tab.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
  }
  .public-form-step-tab.is-active .step-num {
    background: rgba(255,255,255,0.25);
    color: white;
  }
  .public-form-step-tab.is-done {
    background: var(--k-green-bg);
    border-color: var(--k-green);
    color: var(--k-green);
  }
  .public-form-step-tab.is-done .step-num {
    background: var(--k-green);
    color: white;
  }
  .public-form-progress {
    height: 4px;
    background: var(--border-light);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 4px;
  }
  .public-form-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--primary), var(--k-green));
    transition: width 0.4s ease;
  }
  .public-form-nav {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding: 16px 18px;
    background: var(--white);
    border-radius: 12px;
    box-shadow: var(--shadow-sm);
    position: sticky;
    bottom: 12px;
    z-index: 10;
  }
  /* Grid de campos: full-width por default, half-width quando .fp-half */
  .public-form-fields-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 14px;
  }
  .public-form-fields-grid > .fp-wrap { flex: 1 1 100%; max-width: 100%; }
  .public-form-fields-grid > .fp-wrap.fp-half { flex: 1 1 calc(50% - 7px); max-width: calc(50% - 7px); min-width: 200px; }
  .public-form-fields-grid > .fp-wrap.fp-third { flex: 1 1 calc(33.333% - 10px); max-width: calc(33.333% - 10px); min-width: 160px; }
  .public-form-fields-grid > .form-preview-section { flex: 1 1 100% !important; max-width: 100% !important; }
  /* Override .form-row global (display:grid 3-col) — no contexto público, cada .form-row é um wrapper de 1 campo só */
  .public-form-fields-grid > .form-row.fp-wrap {
    display: block !important;
    margin-bottom: 0 !important;
  }
  .public-form-fields-grid > .form-row.fp-wrap > .form-field {
    width: 100%;
  }
  @media (max-width: 600px) {
    .public-form-fields-grid > .fp-wrap.fp-half,
    .public-form-fields-grid > .fp-wrap.fp-third { flex: 1 1 100%; max-width: 100%; }
  }

  /* ===== AVATAR UPLOAD (modal de usuário/perfil) ===== */
  .avatar-upload-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    padding: 12px 14px;
    background: var(--bg);
    border-radius: 10px;
  }
  .avatar-upload-circle {
    position: relative;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--primary), #ff6a3d);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 24px;
    cursor: pointer;
    overflow: hidden;
    transition: transform 0.12s, box-shadow 0.12s;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .avatar-upload-circle:hover { transform: scale(1.04); box-shadow: 0 6px 18px rgba(120,80,255,0.35); }
  .avatar-upload-circle img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }
  .avatar-upload-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.5);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    opacity: 0;
    transition: opacity 0.12s;
  }
  .avatar-upload-circle:hover .avatar-upload-overlay { opacity: 1; }
  .avatar-upload-info { flex: 1; min-width: 0; }
  .avatar-upload-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .avatar-upload-help {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
    line-height: 1.45;
  }

  /* Quando avatar tem foto, esconde iniciais. Aplicar via JS adicionando .has-photo */
  .avatar-upload-circle.has-photo .avatar-upload-initials { display: none; }

  /* Avatar com foto pronto pra reuso em qualquer lugar (sidebar, cards, etc.) */
  .owner-avatar.has-photo,
  .user-row-avatar.has-photo {
    background: var(--bg-dark);
    color: transparent;
    overflow: hidden;
  }
  .owner-avatar.has-photo img,
  .user-row-avatar.has-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Badge de origem do prospect (mostra utm_campaign/source) */
  .card-prospect-origem {
    display: inline-block;
    margin: 4px 0 6px;
    padding: 3px 10px;
    background: var(--bg-dark);
    color: var(--text-muted);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .card-prospect-origem.from-ad {
    background: linear-gradient(135deg, var(--primary-light), #fff0e6);
    color: var(--primary);
    border: 1px solid var(--primary-light);
  }
  /* Serviços escolhidos pelo lead no formulário público */
  .card-prospect-services {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 6px 0 8px;
  }
  .card-prospect-services .service-chip {
    display: inline-block;
    padding: 3px 8px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 9px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    line-height: 1.4;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .card-prospect-services .service-chip.more {
    background: var(--primary-light);
    color: var(--primary);
    border-color: var(--primary-light);
  }

  /* Barra de contato rápido no card do prospect (WhatsApp + E-mail) */
  .card-prospect-contact-bar {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 6px 0 4px;
    padding: 6px 0;
    border-top: 1px dashed var(--border-light);
  }
  .card-prospect-contact-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text);
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    transition: all 0.12s;
    overflow: hidden;
  }
  .card-prospect-contact-btn:hover {
    transform: translateX(2px);
  }
  .card-prospect-contact-btn.whatsapp {
    color: #128C7E;
    background: #E7F8F4;
    border-color: #C6EBE2;
  }
  .card-prospect-contact-btn.whatsapp:hover { background: #25D366; color: white; border-color: #25D366; }
  .card-prospect-contact-btn.email:hover { background: var(--primary-light); border-color: var(--primary); color: var(--primary); }
  .card-prospect-contact-btn .contact-btn-icon {
    font-size: 13px;
    flex-shrink: 0;
  }
  .card-prospect-contact-btn .contact-btn-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
  }

  /* Botões de contato rápido no header do modal de prospect */
  .pd-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    border: 1px solid;
    transition: all 0.12s;
    white-space: nowrap;
  }
  .pd-quick-btn.whatsapp { background: #E7F8F4; color: #128C7E; border-color: #C6EBE2; }
  .pd-quick-btn.whatsapp:hover { background: #25D366; color: white; border-color: #25D366; }
  .pd-quick-btn.email { background: var(--white); color: var(--primary); border-color: var(--primary-light); }
  .pd-quick-btn.email:hover { background: var(--primary); color: white; border-color: var(--primary); }
  .pd-quick-btn.copy { background: var(--white); color: var(--text-muted); border-color: var(--border); }
  .pd-quick-btn.copy:hover { background: var(--bg-dark); color: var(--text); }

  /* ===== LEAD FORM (captura via campanhas/ads) ===== */
  #lead-form-screen {
    position: fixed;
    inset: 0;
    overflow-y: auto;
    z-index: 9000;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  }
  .lead-form-bg {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 20% 30%, rgba(120, 80, 255, 0.18) 0%, transparent 50%),
      radial-gradient(circle at 80% 70%, rgba(255, 120, 60, 0.14) 0%, transparent 50%);
    pointer-events: none;
  }
  .lead-form-container {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px 30px;
  }
  .lead-form-card {
    width: 100%;
    max-width: 480px;
    background: white;
    border-radius: 18px;
    padding: 36px 36px 28px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.4);
  }
  .lead-form-card.lead-form-card-wide {
    max-width: 720px;
  }
  @media (max-width: 600px) {
    .lead-form-card { padding: 26px 22px 22px; border-radius: 14px; }
  }
  .lead-form-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
  }
  .lead-form-brand-logo {
    width: 36px; height: 36px;
    background: linear-gradient(135deg, var(--primary), #ff6a3d);
    color: white;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 14px;
  }
  .lead-form-brand-text {
    font-weight: 800;
    font-size: 18px;
    color: var(--text);
  }
  .lead-form-brand-text span { color: var(--primary); }
  .lead-form-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 8px;
    line-height: 1.25;
  }
  .lead-form-subtitle {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0 0 24px;
    line-height: 1.5;
  }
  .lead-form-section-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 18px 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-light);
  }
  .lead-form-section-title:first-child { margin-top: 0; }
  .lead-form-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
  }
  .lead-form-row > .lead-form-field {
    flex: 1 1 calc(50% - 5px);
    min-width: 140px;
  }
  .lead-form-row > .lead-form-field.grow-2 {
    flex: 2 1 calc(60% - 5px);
  }
  @media (max-width: 540px) {
    .lead-form-row > .lead-form-field { flex: 1 1 100%; }
  }
  .lead-form-segments {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 12px;
  }
  .lead-segment-chip {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 14px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    cursor: pointer;
    transition: all 0.12s;
  }
  .lead-segment-chip:hover {
    background: var(--bg-dark);
    border-color: var(--text-muted);
  }
  .lead-segment-chip.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
  }
  /* Agrupamento de campanhas por utm_source no modal "Gerar Link" */
  .lead-campaign-group {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--white);
    overflow: hidden;
  }
  .lead-campaign-group + .lead-campaign-group { margin-top: 6px; }
  .lead-campaign-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: linear-gradient(90deg, var(--bg), transparent);
    cursor: pointer;
    font-family: inherit;
    list-style: none;
    user-select: none;
  }
  .lead-campaign-group-header::-webkit-details-marker { display: none; }
  .lead-campaign-group-header::before {
    content: '▸';
    margin-right: 8px;
    font-size: 12px;
    color: var(--text-muted);
    transition: transform 0.15s;
  }
  details[open] > .lead-campaign-group-header::before {
    transform: rotate(90deg);
  }
  .lead-campaign-group-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex: 1;
    min-width: 0;
  }
  .lead-campaign-group-stats {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .lead-campaign-group-items {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    border-top: 1px solid var(--border-light);
  }

  /* Linha de campanha (botão reusar + lixeira lado a lado) */
  .lead-saved-campaign-row {
    display: flex;
    gap: 6px;
    align-items: stretch;
  }
  .lead-saved-campaign-delete {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 42px;
    min-height: 100%;
    padding: 0;
    color: var(--k-red);
    cursor: pointer;
    font-size: 16px;
    flex-shrink: 0;
    transition: all 0.12s;
  }
  .lead-saved-campaign-delete:hover {
    background: var(--k-red);
    color: white;
    border-color: var(--k-red);
    transform: scale(1.05);
  }
  .lead-saved-campaign-delete:active {
    transform: scale(0.96);
  }

  /* Lista de campanhas salvas no modal "Gerar Link" */
  .lead-saved-campaign {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    flex: 1;
    min-width: 0;
    transition: all 0.12s;
  }
  .lead-saved-campaign:hover {
    background: var(--white);
    border-color: var(--primary);
    transform: translateX(2px);
  }
  .lead-saved-campaign-info { flex: 1; min-width: 0; }
  .lead-saved-campaign-name {
    font-size: 12px;
    font-weight: 800;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .lead-saved-campaign-meta {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .lead-saved-campaign-arrow {
    font-size: 16px;
    color: var(--primary);
    flex-shrink: 0;
  }
  .lead-saved-campaign:hover .lead-saved-campaign-arrow { transform: scale(1.2); }

  /* Slots de upload de documento (form de fornecedor) */
  .supplier-doc-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 14px;
  }
  .supplier-doc-slot {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
  }
  .supplier-doc-icon {
    width: 36px; height: 36px;
    background: var(--white);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
  }
  .supplier-doc-info { flex: 1; min-width: 0; }
  .supplier-doc-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .supplier-doc-status {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  /* Chips dos docs no card de fornecedor */
  .supplier-card-docs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed var(--border-light);
  }
  .supplier-doc-chip {
    background: var(--primary-light);
    color: var(--primary);
    border: 1px solid var(--primary-light);
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.12s;
  }
  .supplier-doc-chip:hover {
    background: var(--primary);
    color: white;
  }
  .lead-form-field {
    margin-bottom: 14px;
  }
  .lead-form-field label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .lead-form-req { color: var(--k-red); }
  .lead-form-field input,
  .lead-form-field textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    color: var(--text);
    background: white;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
  }
  .lead-form-field input:focus,
  .lead-form-field textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(120, 80, 255, 0.12);
  }
  .lead-form-services {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px 12px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 12px;
    max-height: 240px;
    overflow-y: auto;
  }
  @media (max-width: 540px) {
    .lead-form-services { grid-template-columns: 1fr; }
  }
  .lead-form-services > label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text);
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    text-transform: none;
    font-weight: 500;
    letter-spacing: 0;
    margin: 0;
  }
  .lead-form-services > label:hover { background: var(--bg-dark); }
  .lead-form-services > label > input[type="checkbox"] {
    flex: 0 0 auto;
    width: 16px; height: 16px;
    margin: 0;
    accent-color: var(--primary);
  }
  .lead-form-submit {
    width: 100%;
    padding: 14px;
    background: linear-gradient(135deg, var(--primary), #ff6a3d);
    color: white;
    border: none;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    margin-top: 8px;
    transition: transform 0.1s, box-shadow 0.15s;
  }
  .lead-form-submit:hover { box-shadow: 0 8px 20px rgba(120, 80, 255, 0.35); }
  .lead-form-submit:active { transform: scale(0.98); }
  .lead-form-submit:disabled { opacity: 0.6; cursor: not-allowed; }
  .lead-form-privacy {
    text-align: center;
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 12px;
  }
  .lead-form-footer {
    position: relative;
    text-align: center;
    padding: 20px;
    color: rgba(255,255,255,0.5);
    font-size: 11px;
  }
  .lead-form-thank-you {
    text-align: center;
    padding: 20px 0;
  }
  .lead-form-thank-you-icon {
    font-size: 56px;
    margin-bottom: 16px;
  }
  .lead-form-thank-you h2 {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 10px;
  }
  .lead-form-thank-you p {
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.55;
    margin: 0 0 24px;
  }
  .lead-form-wa-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #25D366;
    color: white;
    padding: 14px 24px;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    font-size: 14px;
    transition: transform 0.1s, box-shadow 0.15s;
  }
  .lead-form-wa-btn:hover { box-shadow: 0 8px 20px rgba(37, 211, 102, 0.4); }
  .lead-form-wa-btn:active { transform: scale(0.97); }

  .public-form-thank-you {
    background: var(--white);
    border-radius: 16px;
    padding: 64px 40px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    max-width: 600px;
    margin: 60px auto;
  }
  .public-form-thank-you-icon {
    font-size: 64px;
    margin-bottom: 18px;
  }
  .public-form-thank-you h2 {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 10px;
  }
  .public-form-thank-you p {
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.6;
  }

  /* ===== Banner do topo do form preview ===== */
  .form-preview-header-banner {
    background: linear-gradient(135deg, var(--primary-light), transparent);
    border-left: 4px solid var(--primary);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 24px;
  }
  .form-preview-banner-row {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
  }
  .form-preview-banner-cell {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .form-preview-banner-icon {
    font-size: 24px;
    line-height: 1;
  }
  .form-preview-banner-num {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .form-preview-banner-lbl {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    font-weight: 700;
    margin-top: 2px;
  }
  .form-preview-banner-desc {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border-light);
    font-size: 12px;
    color: var(--text);
    line-height: 1.5;
  }
  .form-q-num {
    display: inline-block;
    background: var(--primary);
    color: white;
    font-weight: 800;
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 10px;
    margin-right: 6px;
    min-width: 22px;
    text-align: center;
  }
  .form-q-help {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 4px;
    font-style: italic;
  }

  /* ===== Preview do form (modal) ===== */
  .form-preview-section {
    text-align: center;
    margin: 24px 0 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
  }
  .form-preview-section:first-child { margin-top: 0; }
  .form-preview-section-title {
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text);
  }
  .form-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
  }
  /* Estrela: empty = cinza visível, filled = amarelo/primário, hover = preview */
  .form-rating-circle {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: #d1d5db;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    transition: transform 0.12s, color 0.12s;
    -webkit-text-stroke: 1px #9ca3af;
  }
  .form-rating-circle:hover { transform: scale(1.15); color: #fbbf24; -webkit-text-stroke: 1px #f59e0b; }
  .form-rating-circle.filled {
    color: #f59e0b;
    -webkit-text-stroke: 1px #d97706;
  }
  .form-multiselect {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    column-gap: 14px;
    row-gap: 4px;
    max-height: 320px;
    overflow-y: auto;
    padding: 10px 12px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    text-align: left;
  }
  @media (max-width: 600px) {
    .form-multiselect { grid-template-columns: 1fr; }
  }
  .form-multiselect > label {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    font-size: 13px;
    line-height: 1.3;
    cursor: pointer;
    padding: 5px 6px;
    border-radius: 4px;
    text-align: left;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
  }
  .form-multiselect > label:hover { background: var(--bg-dark); }
  .form-multiselect > label > input[type="checkbox"] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--primary);
  }

  /* ===== COMEMORAÇÃO DE VITÓRIA ===== */
  .win-celebration-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    pointer-events: none;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.5s ease;
  }
  .win-celebration-overlay.fade-out { opacity: 0; }
  .win-confetti {
    position: absolute;
    top: -24px;
    border-radius: 2px;
    animation: win-confetti-fall linear forwards;
    --rot: 360deg;
  }
  @keyframes win-confetti-fall {
    0%   { transform: translateY(0) rotate(0deg); opacity: 1; }
    100% { transform: translateY(110vh) rotate(var(--rot)); opacity: 0.85; }
  }
  .win-celebration-card {
    background: var(--white);
    border-radius: 22px;
    padding: 36px 56px;
    text-align: center;
    box-shadow: 0 24px 70px rgba(91, 78, 220, 0.45), 0 4px 12px rgba(0,0,0,0.18);
    animation: win-card-pop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    border: 1px solid var(--border-light);
  }
  @keyframes win-card-pop {
    0%   { transform: scale(0.4); opacity: 0; }
    60%  { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
  }
  .win-celebration-emoji {
    font-size: 76px;
    line-height: 1;
    margin-bottom: 12px;
    animation: win-emoji-bounce 0.55s ease-in-out infinite alternate;
  }
  @keyframes win-emoji-bounce {
    from { transform: translateY(0) scale(1); }
    to   { transform: translateY(-10px) scale(1.04); }
  }
  .win-celebration-title {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--primary);
    margin-bottom: 6px;
  }
  .win-celebration-sub {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 500;
  }

  /* ===== UTILITIES ===== */
  .flex { display: flex; }
  .flex-between { display: flex; justify-content: space-between; align-items: center; }
  .gap-2 { gap: 8px; }
  .gap-3 { gap: 12px; }
  .mb-3 { margin-bottom: 12px; }
  .text-muted { color: var(--text-muted); }

  /* ===== RESPONSIVE ===== */
  @media (max-width: 1500px) {
    .page { padding: 20px 18px 40px; }
    .panel { padding: 18px 18px; }
    .kanban { grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 6px; }
  }
  @media (max-width: 1300px) {
    .kpi-row, .kpi-row-2, .proposal-meta { grid-template-columns: repeat(2, 1fr); }
    .panels-grid, .detail-layout { grid-template-columns: 1fr; }
    .service-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 1200px) {
    .kanban { grid-template-columns: repeat(3, 1fr); }
  }
  @media (max-width: 1200px) {
    .model-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .checklist-tiered { grid-template-columns: 1fr !important; }
    .checklist-parallel { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 768px) {
    .app { grid-template-columns: 1fr; }
    .sidebar { position: relative; height: auto; }
    .kpi-row, .kpi-row-2 { grid-template-columns: 1fr; }
    .page { padding: 16px; }
    .kanban { grid-template-columns: 1fr; }
    .service-grid { grid-template-columns: 1fr; }
    .model-grid { grid-template-columns: 1fr !important; }
  }

  /* ============================================== */
  /* ============= NOVO NA V3 ===================== */
  /* ============================================== */

  /* ===== SELETOR DE MODELOS COMERCIAIS ===== */
  .wizard-header {
    background: linear-gradient(135deg, var(--white) 0%, #FAFBFE 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 18px;
  }
  .wizard-steps {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
  }
  .wizard-step {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .wizard-step.active {
    background: var(--primary-light);
    color: var(--primary);
  }
  .wizard-step.done {
    color: var(--k-green);
  }
  .wizard-step-num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 11px;
  }
  .wizard-step.active .wizard-step-num { background: var(--primary); color: white; }
  .wizard-step.done .wizard-step-num { background: var(--k-green); color: white; }
  .wizard-step-arrow {
    color: var(--text-light);
    font-size: 12px;
    align-self: center;
  }

  .model-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 18px;
  }
  .model-card {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 14px;
    padding: 18px 20px;
    cursor: pointer;
    transition: all 0.18s;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 180px;
  }
  .model-card:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
  }
  .model-card.selected {
    border-color: var(--primary);
    background: var(--primary-light);
    box-shadow: 0 4px 16px rgba(91,78,220,0.15);
  }
  .model-card-letter {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
    margin-bottom: 12px;
  }
  .model-card.selected .model-card-letter { background: var(--primary); }
  .model-card-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 6px;
    line-height: 1.25;
    color: var(--text);
  }
  .model-card-desc {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.45;
    margin-bottom: 12px;
    flex: 1;
  }
  .model-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--border-light);
  }
  .model-card-tag {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 2px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    background: var(--bg-dark);
    color: var(--text-muted);
  }
  .model-card-tag.highlight {
    background: var(--k-yellow-bg);
    color: #8B6914;
  }
  .model-card-validated {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--k-green-bg);
    color: var(--k-green);
    font-size: 9px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 10px;
    letter-spacing: 0.04em;
  }
  .model-card-new {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--primary);
    color: white;
    font-size: 9px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 10px;
    letter-spacing: 0.04em;
  }

  /* Footer com botão de excluir — sempre visível, posicionado abaixo */
  .model-card-footer {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .model-card-footer::before {
    content: '✎ clique no card pra editar';
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    opacity: 0.6;
  }
  .model-card-delete-btn {
    background: transparent;
    border: 1px solid var(--k-red);
    color: var(--k-red);
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s;
  }
  .model-card-delete-btn:hover {
    background: var(--k-red);
    color: white;
  }

  /* ===== SUB-VARIANTE SWITCH (Asbuilt) ===== */
  .subvariant-switch {
    display: flex;
    gap: 10px;
    background: var(--bg-dark);
    padding: 6px;
    border-radius: 12px;
    margin-bottom: 18px;
  }
  .subvariant-option {
    flex: 1;
    padding: 14px 16px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s;
    background: transparent;
  }
  .subvariant-option:hover { background: rgba(255,255,255,0.6); }
  .subvariant-option.active {
    background: var(--white);
    box-shadow: var(--shadow);
  }
  .subvariant-name {
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 3px;
  }
  .subvariant-desc {
    font-size: 11px;
    color: var(--text-muted);
  }

  /* ===== CHECKLIST ASBUILT ===== */
  .checklist-family {
    margin-bottom: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--white);
  }
  .checklist-family-header {
    padding: 12px 18px;
    background: var(--bg-dark);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    border-bottom: 1px solid var(--border);
  }
  .checklist-family-name {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .checklist-family-icon {
    font-size: 16px;
  }
  .checklist-family-count {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
  }
  .checklist-tiered {
    display: grid;
    grid-template-columns: 2fr repeat(3, 100px);
    gap: 0;
    font-size: 12px;
  }
  .checklist-tiered-head {
    padding: 10px 14px;
    background: var(--bg);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
  }
  .checklist-tiered-head.label {
    text-align: left;
    color: var(--text-muted);
  }
  .checklist-tiered-head.start { color: var(--text-muted); }
  .checklist-tiered-head.standard { color: var(--v-coord); }
  .checklist-tiered-head.premium { color: var(--primary); font-weight: 800; }
  .checklist-row {
    padding: 8px 14px;
    border-bottom: 1px solid var(--border-light);
    display: contents;
  }
  .checklist-row > div {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-light);
  }
  .checklist-item-name {
    font-size: 12px;
    color: var(--text);
  }
  .checklist-cell {
    text-align: center;
    font-size: 14px;
  }
  .checklist-cell.checked { color: var(--k-green); font-weight: 700; }
  .checklist-cell.unchecked { color: var(--border); }

  .checklist-single {
    padding: 6px 18px;
  }
  .checklist-single-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
  }
  .checklist-single-row:last-child { border-bottom: none; }
  .checklist-single-checkbox {
    width: 18px;
    height: 18px;
    border: 2px solid var(--primary);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 800;
    font-size: 12px;
    background: var(--primary);
    margin-right: 12px;
  }
  .checklist-single-checkbox.empty { background: white; color: white; }

  .checklist-parallel {
    display: grid;
    grid-template-columns: 2fr 100px 100px;
    gap: 0;
    font-size: 12px;
  }
  .checklist-parallel-head {
    padding: 10px 14px;
    background: var(--bg);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
  }
  .checklist-parallel-head.label {
    text-align: left;
    color: var(--text-muted);
  }
  .checklist-parallel-head.tubulacoes { color: var(--v-coord); font-weight: 800; }
  .checklist-parallel-head.civil { color: var(--v-asbuilt); font-weight: 800; }
  .parallel-row > div {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-light);
  }
  .parallel-row {
    display: contents;
  }

  /* Tabela de planos Asbuilt (totais finais) */
  .plans-totals {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 18px;
  }
  .plan-total-card {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 14px;
    padding: 22px 20px;
    text-align: center;
  }
  .plan-total-card.standard { border-color: var(--v-coord); }
  .plan-total-card.premium {
    background: linear-gradient(135deg, var(--primary) 0%, #7B70E6 100%);
    color: white;
    border-color: var(--primary);
  }
  .plan-total-name {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 8px;
  }
  .plan-total-card.premium .plan-total-name { color: rgba(255,255,255,0.85); }
  .plan-total-value {
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 4px;
  }
  .plan-total-pay {
    font-size: 11px;
    color: var(--text-muted);
  }
  .plan-total-card.premium .plan-total-pay { color: rgba(255,255,255,0.85); }

  /* ===== TURNBIM (Modelo E) ===== */
  .turnbim-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 14px;
  }
  .turnbim-tab {
    padding: 12px 18px;
    border-radius: 10px 10px 0 0;
    border: 1px solid var(--border);
    border-bottom: none;
    cursor: pointer;
    background: var(--bg-dark);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .turnbim-tab.active {
    background: var(--white);
    color: var(--primary);
    position: relative;
  }
  .turnbim-tab.active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0; right: 0;
    height: 1px;
    background: var(--white);
  }
  .turnbim-feature {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 0 12px 12px 12px;
    padding: 0;
    overflow: hidden;
  }
  .turnbim-feature-row {
    display: grid;
    grid-template-columns: 2fr 110px 90px 1fr 110px;
    align-items: center;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
    gap: 10px;
  }
  .turnbim-feature-row:last-child { border-bottom: none; }
  .turnbim-feature-row.cortesia { background: linear-gradient(90deg, transparent, var(--k-yellow-bg) 100%); }
  .turnbim-feature-name {
    font-size: 12px;
    font-weight: 600;
  }
  .turnbim-feature-fmt {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    font-weight: 700;
    text-align: center;
  }
  .turnbim-feature-qty {
    text-align: center;
    color: var(--text);
    font-weight: 700;
  }
  .turnbim-feature-cortesia-tag {
    background: var(--k-yellow);
    color: #7A5A0E;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.05em;
    padding: 3px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    display: inline-block;
  }
  .turnbim-feature-value {
    text-align: right;
    font-weight: 700;
    color: var(--primary);
  }

  /* ===== INVENTÁRIO (Modelo G) ===== */
  .inventory-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
    margin-bottom: 12px;
  }
  .inventory-header {
    padding: 14px 18px;
    background: var(--bg-dark);
    display: grid;
    grid-template-columns: 1fr 80px 90px;
    gap: 14px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .inventory-row {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    display: grid;
    grid-template-columns: 1fr 80px 90px;
    gap: 14px;
    align-items: center;
    font-size: 13px;
  }
  .inventory-row:last-child { border-bottom: none; }
  .inventory-family-name { font-weight: 600; }
  .inventory-family-sub {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .inventory-count {
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
  }
  .inventory-value {
    text-align: right;
    font-size: 14px;
    font-weight: 700;
  }

  /* ===== RECORRÊNCIA (Modelo F) ===== */
  .recurrence-grid {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
  }
  .recurrence-row {
    display: grid;
    grid-template-columns: 1fr 130px 110px 130px;
    align-items: center;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
    gap: 10px;
  }
  .recurrence-row.head {
    background: var(--bg-dark);
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .recurrence-row.passthrough { background: linear-gradient(90deg, transparent, #FCFAEF 100%); }
  .recurrence-billable-tag {
    font-size: 9px;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: inline-block;
  }
  .recurrence-billable-tag.service { background: var(--k-green-bg); color: var(--k-green); }
  .recurrence-billable-tag.passthrough { background: var(--k-yellow-bg); color: #8B6914; }

  /* ===== SUBSCRIÇÃO (Modelo B) ===== */
  .subs-formula {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
    text-align: center;
    margin-bottom: 18px;
  }
  .subs-formula-line {
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 12px;
    letter-spacing: -0.01em;
  }
  .subs-formula-var {
    background: var(--primary-light);
    color: var(--primary);
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    margin: 0 4px;
  }
  .subs-formula-result {
    font-size: 14px;
    color: var(--text-muted);
  }

  /* ===== SETUP+RECORRENTE (Modelo D) ===== */
  .setup-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
  }
  .setup-side {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 22px 24px;
  }
  .setup-side-label {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 700;
    margin-bottom: 6px;
  }
  .setup-side-value {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
  }
  .setup-side-desc {
    font-size: 12px;
    color: var(--text-muted);
  }

  /* ===== ENTITY/ISSUER SELECTOR ===== */
  .form-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 14px;
  }
  .form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .form-label {
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 700;
  }
  .form-input, .form-select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--text);
    background: var(--white);
  }
  .form-help {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
  }

  /* ===== CLAUSE LIBRARY ===== */
  .clause-cat {
    margin-bottom: 18px;
  }
  .clause-cat-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .clause-cat-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: white;
  }
  .cat-equipamento { background: var(--v-asbuilt); }
  .cat-seguranca { background: var(--k-red); }
  .cat-operacional { background: var(--v-coord); }
  .cat-escopo { background: var(--v-inovatech); }
  .cat-tecnica { background: var(--v-turnbim); }

  .clause-item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 6px;
    display: grid;
    grid-template-columns: 18px 22px 1fr auto auto;
    gap: 10px;
    align-items: center;
    font-size: 12px;
    transition: box-shadow 0.15s, border-color 0.15s;
  }
  .clause-item:hover {
    border-color: var(--primary-light);
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  }
  .clause-drag-handle {
    color: var(--text-muted);
    cursor: grab;
    user-select: none;
    font-size: 14px;
    line-height: 1;
    text-align: center;
    opacity: 0.4;
    transition: opacity 0.15s;
  }
  .clause-item:hover .clause-drag-handle {
    opacity: 1;
  }
  .clause-actions-inline {
    display: flex;
    gap: 4px;
  }
  .clause-actions-inline button {
    width: 26px;
    height: 26px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 11px;
    background: var(--white);
    transition: all 0.15s;
    padding: 0;
    line-height: 1;
  }
  .clause-actions-inline .ca-edit {
    border: 1px solid var(--border);
    color: var(--text);
  }
  .clause-actions-inline .ca-edit:hover {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary);
  }
  .clause-actions-inline .ca-delete {
    border: 1px solid var(--k-red);
    color: var(--k-red);
  }
  .clause-actions-inline .ca-delete:hover {
    background: var(--k-red);
    color: white;
  }
  .clause-item.sortable-ghost {
    opacity: 0.4;
    background: var(--primary-light);
  }
  .clause-item.sortable-chosen {
    cursor: grabbing;
  }
  .clause-cat-collapsible .clause-cat-title {
    cursor: pointer;
    user-select: none;
  }
  .clause-cat-collapsible .clause-cat-title::after {
    content: '▾';
    margin-left: auto;
    font-size: 11px;
    color: var(--text-muted);
    transition: transform 0.15s;
  }
  .clause-cat-collapsible.collapsed .clause-cat-title::after {
    transform: rotate(-90deg);
  }
  .clause-cat-collapsible.collapsed .clause-cat-items {
    display: none;
  }

  /* ===== Notas no formato item (igual cláusulas) ===== */
  .clause-item.is-note {
    grid-template-columns: 18px auto 1fr auto auto;
    align-items: flex-start;
    padding: 12px 14px;
  }
  .notes-item-num {
    color: white;
    font-size: 9px;
    font-weight: 800;
    padding: 4px 9px;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    line-height: 1.4;
    margin-top: 2px;
  }
  .notes-item-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .notes-item-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
  }
  .notes-item-body {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
  }
  .clause-checkbox {
    width: 18px;
    height: 18px;
    border: 2px solid var(--primary);
    background: var(--primary);
    color: white;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 800;
  }
  .clause-text {
    color: var(--text);
    line-height: 1.4;
  }
  .clause-meta {
    font-size: 10px;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
  }

  /* ===== NOTAS LIBRARY ===== */
  .notes-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 22px;
    margin-bottom: 12px;
  }
  .notes-card-num {
    display: inline-block;
    background: var(--primary);
    color: white;
    font-size: 10px;
    font-weight: 800;
    padding: 3px 9px;
    border-radius: 6px;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
  }
  .notes-card-title {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
  }
  .notes-card-body {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.5;
  }

  /* ===== CARD MODELO COMERCIAL (no Pipeline) ===== */
  .card-lead-model {
    font-size: 9px;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: inline-block;
    margin-top: 4px;
    background: var(--bg-dark);
    color: var(--text-muted);
    border-left: 3px solid var(--primary);
  }
  .card-lead-sister {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--k-violet-bg);
    color: var(--k-violet);
    font-size: 9px;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 4px;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    gap: 3px;
    z-index: 1;
  }

  /* ===== CATÁLOGO TABS ===== */
  .catalog-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--border);
  }
  .catalog-tab {
    padding: 10px 18px;
    cursor: pointer;
    background: transparent;
    border: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-family: inherit;
  }
  .catalog-tab:hover { color: var(--text); }
  .catalog-tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
  }
  .catalog-tab-content { display: none; }
  .catalog-tab-content.active { display: block; }

  /* ===== ALERT ERROS NA DASHBOARD ===== */
  .alert-info {
    background: linear-gradient(135deg, #EEECFB 0%, #D4CFF8 100%);
    border-radius: 14px;
    padding: 16px 22px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .alert-info-icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 20px;
    flex-shrink: 0;
  }
  .alert-info-title {
    font-weight: 700;
    color: var(--primary);
    font-size: 14px;
    margin-bottom: 2px;
  }
  .alert-info-desc {
    font-size: 12px;
    color: #5B4EDC;
    opacity: 0.85;
    font-weight: 500;
  }
  .alert-info-cta {
    background: var(--primary);
    color: white;
    padding: 8px 16px;
    border-radius: 8px;
    border: none;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
  }

  /* ===== CROSS-SELL DASHBOARD KPI ===== */
  .crosssell-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .crosssell-item {
    display: grid;
    grid-template-columns: 32px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
  }
  .crosssell-item:last-child { border-bottom: none; }
  .crosssell-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--k-violet);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 12px;
  }
  .crosssell-name {
    font-weight: 700;
    color: var(--text);
  }
  .crosssell-sub {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .crosssell-pills {
    display: flex;
    gap: 4px;
  }

  /* ===== MARKET COMPARISON BANNER ===== */
  .market-banner {
    background: linear-gradient(135deg, #2A2D3F 0%, #1A1D2E 100%);
    color: white;
    border-radius: 14px;
    padding: 18px 22px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }
  .market-banner-text {
    flex: 1;
  }
  .market-banner-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
  }
  .market-banner-sub {
    font-size: 12px;
    opacity: 0.7;
  }
  .market-banner-toggle {
    background: rgba(255,255,255,0.15);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.25);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  /* ===== EQUIPE BASE COORD BIM ===== */
  .team-base {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
  }
  .team-row {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-light);
    display: grid;
    grid-template-columns: 36px 1fr 110px 100px 110px;
    gap: 14px;
    align-items: center;
    font-size: 13px;
  }
  .team-row:last-child { border-bottom: none; }
  .team-row.head {
    background: var(--bg-dark);
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .team-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--v-coord);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 11px;
  }
  .team-allocation-bar {
    background: var(--bg-dark);
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    width: 100%;
  }
  .team-allocation-fill {
    height: 100%;
    background: var(--v-coord);
    border-radius: 4px;
  }

  /* ===== MILESTONE SCHEDULE ===== */
  .milestone-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .milestone-item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 18px;
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 14px;
    align-items: center;
  }
  .milestone-marker {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 13px;
  }
  .milestone-info-name {
    font-size: 13px;
    font-weight: 600;
  }
  .milestone-info-pct {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .milestone-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--primary);
  }

  /* ===== PAYMENT PATTERN SELECTOR ===== */
  .payment-patterns {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin-bottom: 14px;
  }
  .payment-pattern {
    padding: 10px 8px;
    border: 1px solid var(--border);
    background: var(--white);
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s;
  }
  .payment-pattern:hover { border-color: var(--primary); }
  .payment-pattern.active {
    background: var(--primary-light);
    border-color: var(--primary);
    box-shadow: 0 2px 6px rgba(91,78,220,0.12);
  }
  .payment-pattern-name {
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 2px;
  }
  .payment-pattern-desc {
    font-size: 9px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  /* ===== TEMPLATE VARIANT TAG (PDF) ===== */
  .template-variant {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .template-variant.premium { background: #2A2D3F; color: white; }
  .template-variant.diagnostic { background: var(--v-asbuilt); color: white; }
  .template-variant.coordbim { background: var(--v-coord); color: white; }
  .template-variant-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.8;
  }

  /* ===== INFO CALLOUT ===== */
  .callout {
    background: #FFFAEB;
    border-left: 4px solid var(--k-yellow);
    padding: 12px 16px;
    border-radius: 8px;
    margin: 14px 0;
    font-size: 12px;
    color: #7A5A0E;
    line-height: 1.5;
  }
  .callout strong { color: #5C4309; }
  /* ===== KANBAN v3.1: AVATAR DO RESPONSÁVEL ===== */
  .card-lead-owner {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--border-light);
    font-size: 11px;
    color: var(--text-muted);
  }
  .owner-avatar {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 9px;
    letter-spacing: 0.02em;
    flex-shrink: 0;
  }
  .owner-name {
    font-weight: 600;
    color: var(--text);
    font-size: 11px;
  }
  /* Cores por vendedor (matching com Top Vendedores na Dashboard) */
  .owner-gf { background: var(--v-turnbim); }
  .owner-jc { background: var(--v-coord); }
  .owner-lc { background: var(--v-asbuilt); }
  .owner-ms { background: var(--v-learning); }
  .owner-unassigned {
    background: var(--bg-dark) !important;
    color: var(--text-muted) !important;
    border: 2px dashed var(--border-strong);
  }

  /* ===== DRAG & DROP STATES (Sortable.js) ===== */
  .card-lead {
    user-select: none;
  }
  .card-lead.sortable-ghost {
    opacity: 0.35;
    background: var(--primary-light) !important;
    border: 2px dashed var(--primary) !important;
  }
  .card-lead.sortable-chosen {
    cursor: grabbing;
    box-shadow: 0 8px 24px rgba(91,78,220,0.18);
  }
  .card-lead.sortable-drag {
    cursor: grabbing;
    transform: rotate(2deg);
    opacity: 0.95;
  }
  .column.drag-over {
    background: var(--primary-light);
    box-shadow: inset 0 0 0 2px var(--primary);
  }
  .card-lead {
    cursor: grab;
  }
  .card-lead:active {
    cursor: grabbing;
  }

  /* ===== FILTRO POR VERTICAL ===== */
  .card-lead.filtered-out {
    display: none;
  }

  /* ===== TOAST DE NOTIFICAÇÃO ===== */
  .toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1000;
    pointer-events: none;
  }
  .toast {
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 4px solid var(--primary);
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 8px 24px rgba(42,45,63,0.12), 0 2px 6px rgba(42,45,63,0.06);
    min-width: 320px;
    max-width: 420px;
    display: flex;
    align-items: center;
    gap: 14px;
    pointer-events: auto;
    animation: toastIn 0.3s ease;
  }
  @keyframes toastIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
  }
  @keyframes toastOut {
    from { opacity: 1; transform: translateX(0); }
    to { opacity: 0; transform: translateX(20px); }
  }
  .toast.removing {
    animation: toastOut 0.25s ease forwards;
  }
  .toast-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
    flex-shrink: 0;
  }
  .toast-icon.success { background: var(--k-green); }
  .toast-icon.warn { background: var(--k-yellow); color: #7A5A0E; }
  .toast-body { flex: 1; }
  .toast-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
  }
  .toast-desc {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.4;
  }
  .toast-cta {
    background: var(--primary);
    color: white;
    border: none;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
  }
  .toast-cta:hover { background: #4A3FC2; }
  .toast-close {
    background: transparent;
    border: none;
    color: var(--text-light);
    cursor: pointer;
    font-size: 16px;
    padding: 4px;
    flex-shrink: 0;
  }
  .toast-close:hover { color: var(--text); }

  /* ============================================== */
  /* ============= NOVO NA V4.8 (PROPOSTAS) ====== */
  /* ============================================== */

  @keyframes pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(31,122,61,0.25); }
    50% { box-shadow: 0 0 0 6px rgba(31,122,61,0.45); }
  }

  /* Cards filtrados pela busca */
  .card-lead.search-hidden,
  .card-prospect.search-hidden {
    display: none !important;
  }

  /* Linha selecionada na tabela de Oportunidades */
  #opp-table tbody tr.selected-row {
    background: var(--primary-light) !important;
    box-shadow: inset 4px 0 0 var(--primary);
  }
  #opp-table tbody tr.selected-row td {
    font-weight: 700;
  }
  body.dark #opp-table tbody tr.selected-row {
    background: rgba(91, 78, 220, 0.18) !important;
  }
  .oid-proposal-row:hover {
    border-color: var(--primary) !important;
    transform: translateX(2px);
  }

  /* ===== Badges e seletor de versões nos cards de proposta ===== */
  .proposal-card-versions-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--primary-light);
    color: var(--primary);
    padding: 3px 8px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .proposal-card { position: relative; }
  .proposal-card-versions-list {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    padding: 6px;
    background: var(--bg);
    border-radius: 6px;
    margin-top: 4px;
  }
  .proposal-card-version-chip {
    background: var(--white);
    border: 1px solid var(--border);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text);
    cursor: pointer;
    font-family: inherit;
    transition: all 0.12s;
  }
  .proposal-card-version-chip:hover {
    border-color: var(--primary);
    color: var(--primary);
  }
  .proposal-card-version-chip.active {
    background: var(--text);
    color: var(--white);
    border-color: var(--text);
  }
  .proposal-card-version-chip.chosen {
    background: var(--k-green);
    color: var(--white);
    border-color: var(--k-green);
  }

  /* Cards de custo editáveis (Impostos e Margem) */
  .editable-cost-card {
    cursor: pointer;
    transition: all 0.15s;
  }
  .editable-cost-card:hover {
    border-color: var(--primary);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(91, 78, 220, 0.12);
  }
  .editable-cost-card .proposal-cost-icon {
    transition: opacity 0.15s;
    opacity: 0.5;
  }
  .editable-cost-card:hover .proposal-cost-icon {
    opacity: 1;
  }

  /* Total editável */
  .editable-total {
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
  }
  .editable-total::after {
    content: ' ✎';
    font-size: 11px;
    opacity: 0.4;
    margin-left: 4px;
  }
  .editable-total:hover {
    background: var(--primary-light) !important;
    color: var(--primary);
  }
  .editable-total:hover::after {
    opacity: 1;
  }

  /* ===== TOOLBAR DE BUSCA + FILTROS ===== */
  .proposal-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 8px 12px;
    flex-wrap: wrap;
  }
  .proposal-view-toggle {
    display: inline-flex;
    background: var(--bg);
    padding: 3px;
    border-radius: 8px;
    gap: 2px;
  }
  .proposal-view-btn {
    background: transparent;
    border: none;
    padding: 6px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-muted);
    transition: all 0.15s;
  }
  .proposal-view-btn:hover { color: var(--primary); }
  .proposal-view-btn.active {
    background: var(--white);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  }
  .proposal-search {
    flex: 1;
    min-width: 250px;
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--text);
    background: var(--white);
    transition: border 0.12s;
  }
  .proposal-search:focus {
    outline: none;
    border-color: var(--primary);
  }
  .proposal-filter-select {
    min-width: 160px;
    padding: 8px 10px;
    font-size: 12px;
  }

  /* ===== CARDS DA LISTA DE PROPOSTAS (GRID) ===== */
  .proposals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
  }
  .proposal-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
    transition: all 0.15s;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .proposal-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--primary-light);
  }
  .proposal-card-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  .proposal-card-client {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: -6px;
    line-height: 1.3;
  }
  .proposal-card-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin-top: 4px;
  }
  .proposal-card-status {
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
  }
  .proposal-card-status.approved { color: var(--k-green); }
  .proposal-card-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 4px;
  }
  .proposal-card-tag {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 4px;
    background: var(--bg-dark);
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .proposal-card-tag.tag-vert {
    background: var(--primary-light);
    color: var(--primary);
  }
  .proposal-card-action {
    margin-top: auto;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all 0.12s;
    font-family: inherit;
  }
  .proposal-card-action:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--primary-light);
  }

  /* ===== LISTA DE PROPOSTAS (LIST VIEW) ===== */
  .proposals-list-table {
    width: 100%;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
  }
  .proposals-list-table th {
    background: var(--bg);
    padding: 10px 14px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
  }
  .proposals-list-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
  }
  .proposals-list-table tr:last-child td { border-bottom: none; }
  .proposals-list-table tr:hover td { background: var(--bg); cursor: pointer; }

  /* ===== ESTADO 2: CABEÇALHO DA PROPOSTA ===== */
  .proposal-detail-header {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 20px;
    margin-bottom: 16px;
  }
  .proposal-detail-breadcrumb {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 8px;
  }
  .proposal-detail-breadcrumb a {
    color: var(--primary);
    cursor: pointer;
    text-decoration: none;
  }
  .proposal-detail-breadcrumb a:hover { text-decoration: underline; }
  .proposal-detail-title-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 12px;
  }
  .proposal-detail-name {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    text-transform: uppercase;
    line-height: 1.2;
  }
  .proposal-detail-sub {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 4px;
  }
  .proposal-detail-status {
    background: var(--k-yellow-bg);
    color: #8B6914;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  .proposal-detail-status.approved {
    background: var(--k-green-bg);
    color: #1F7A3D;
  }
  .proposal-detail-status.chosen {
    background: var(--primary);
    color: white;
  }
  .proposal-detail-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
  }

  /* ===== VERSÕES (DROPDOWN) ===== */
  .proposal-version-wrap {
    position: relative;
    margin-left: auto;
  }
  .proposal-version-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--k-yellow-bg);
    color: #8B6914;
    border: 1px solid var(--k-yellow);
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
  }
  .proposal-version-trigger:hover {
    background: #F8E59E;
  }
  .proposal-version-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 280px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: var(--shadow-md);
    padding: 6px;
    z-index: 50;
  }
  .proposal-version-wrap.open .proposal-version-menu { display: block; }
  .proposal-version-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    transition: background 0.12s;
  }
  .proposal-version-item:hover { background: var(--bg); }
  .proposal-version-item.active { background: var(--primary-light); color: var(--primary); font-weight: 700; }
  .proposal-version-item.chosen-version {
    background: linear-gradient(90deg, var(--k-green-bg), transparent);
    border-left: 3px solid var(--k-green);
  }
  .proposal-version-item-name { flex: 1; }
  .proposal-version-item-meta {
    font-size: 10px;
    color: var(--text-muted);
  }
  .proposal-version-divider {
    height: 1px;
    background: var(--border);
    margin: 4px 0;
  }
  .proposal-version-action {
    display: block;
    width: 100%;
    text-align: left;
    padding: 8px 10px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    border-radius: 6px;
    color: var(--text);
  }
  .proposal-version-action:hover { background: var(--bg); }
  .proposal-version-action.danger { color: var(--k-red); }

  /* ===== ESTADO 2: GRID PRINCIPAL (CARDS DE CUSTO + PAGAMENTO) ===== */
  .proposal-detail-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 16px;
    margin-bottom: 18px;
  }
  @media (max-width: 1100px) {
    .proposal-detail-grid { grid-template-columns: 1fr; }
  }

  .proposal-cost-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .proposal-cost-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
  }
  .proposal-cost-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    margin-bottom: 4px;
  }
  .proposal-cost-icon {
    font-size: 14px;
    opacity: 0.6;
  }
  .proposal-cost-value {
    font-size: 17px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
  }
  .proposal-cost-value.warn { color: #E08A00; }
  .proposal-cost-value.success { color: var(--k-green); }
  .proposal-cost-sub {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 4px;
  }
  .proposal-hours-card {
    grid-column: 1 / -1;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
  }
  .proposal-hours-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-top: 4px;
  }
  .proposal-hours-value {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    line-height: 1;
  }
  .proposal-hours-breakdown {
    text-align: right;
    font-size: 11px;
    color: var(--text-muted);
  }
  .proposal-hours-breakdown-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 3px;
  }

  /* ===== BLOCO DE PAGAMENTO ===== */
  .proposal-payment-block {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 20px;
  }
  .proposal-payment-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
  }
  .proposal-payment-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
  }
  .proposal-payment-desc {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
  }
  .proposal-payment-total {
    background: var(--bg);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
  }
  .proposal-pay-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--bg);
    border-radius: 8px;
    padding: 3px;
    margin-bottom: 12px;
    gap: 2px;
  }
  .proposal-pay-tab {
    background: transparent;
    border: none;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.12s;
  }
  .proposal-pay-tab.active {
    background: var(--white);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  }
  .proposal-pay-submode {
    display: flex;
    gap: 18px;
    padding: 8px 4px 12px;
    border-bottom: 1px solid var(--border-light);
    margin-bottom: 12px;
    flex-wrap: wrap;
  }
  .proposal-radio {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 12px;
    color: var(--text);
    font-weight: 600;
  }
  .proposal-radio input[type="radio"] { cursor: pointer; }
  .proposal-parcelas-input {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    background: var(--bg);
    border-radius: 8px;
    margin-bottom: 12px;
  }
  .proposal-parcelas-input input {
    width: 70px;
    padding: 5px 8px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 12px;
    color: var(--text);
    background: var(--white);
    text-align: center;
  }

  .proposal-payment-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 4px;
  }
  .proposal-payment-table th {
    background: var(--bg);
    padding: 8px 10px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .proposal-payment-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
    color: var(--text);
  }
  .proposal-payment-table tfoot td {
    border-bottom: none;
    border-top: 2px solid var(--text);
    padding-top: 10px;
    font-size: 13px;
  }
  .proposal-payment-table input[type="number"] {
    width: 70px;
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 12px;
    text-align: right;
    background: var(--white);
    color: var(--text);
  }

  /* ===== TABS EAP / OUTROS CUSTOS ===== */
  .proposal-eap-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 2px solid var(--border);
    margin-bottom: 14px;
  }
  .proposal-eap-tab {
    background: transparent;
    border: none;
    padding: 10px 18px;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: -2px;
    transition: all 0.15s;
  }
  .proposal-eap-tab:hover { color: var(--text); }
  .proposal-eap-tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
  }
  .proposal-eap-content {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
  }
  .proposal-eap-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 10px;
  }
  .proposal-eap-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--text);
  }
  .proposal-eap-sub {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
  }

  /* ===== EAP GRUPOS ===== */
  .eap-group {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    margin-bottom: 12px;
    overflow: hidden;
  }
  .eap-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--white);
    cursor: pointer;
  }
  .eap-group-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
  }
  .eap-group-title-icon { color: var(--text-muted); }
  .eap-group-actions {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .eap-icon-btn {
    background: transparent;
    border: none;
    padding: 4px 6px;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 13px;
    border-radius: 4px;
    transition: all 0.12s;
  }
  .eap-icon-btn:hover { background: var(--bg); color: var(--primary); }
  .eap-icon-btn.danger:hover { color: var(--k-red); background: var(--k-red-bg); }
  .eap-group-services {
    padding: 0;
  }
  .eap-service {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-top: 1px solid var(--border-light);
    background: var(--white);
    cursor: pointer;
    transition: background 0.12s;
  }
  .eap-service:hover { background: var(--bg); }
  .eap-service-handle {
    color: var(--text-muted);
    cursor: grab;
    font-size: 14px;
    margin-right: 6px;
  }
  .eap-service-name {
    flex: 1;
    font-size: 13px;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .eap-service-check {
    color: var(--k-green);
    font-weight: 800;
  }
  .eap-service-meta {
    text-align: right;
    font-size: 12px;
  }
  .eap-service-value {
    font-weight: 800;
    color: var(--text);
  }
  .eap-service-hours {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
  }

  /* ===== CRONOGRAMA ===== */
  .cronograma-wrap {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
  }
  .cronograma-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 10px;
  }
  .cronograma-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
  }
  .cronograma-toggle {
    display: inline-flex;
    background: var(--bg);
    padding: 3px;
    border-radius: 8px;
    gap: 2px;
  }
  .cronograma-toggle-btn {
    background: transparent;
    border: none;
    padding: 5px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    transition: all 0.12s;
  }
  .cronograma-toggle-btn.active {
    background: var(--white);
    color: var(--text);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  }
  .cronograma-table-wrap {
    overflow-x: auto;
  }
  .cronograma-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 700px;
  }
  .cronograma-table th, .cronograma-table td {
    padding: 8px 10px;
    border: 1px solid var(--border-light);
    font-size: 11px;
  }
  .cronograma-table th {
    background: var(--bg);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .cronograma-table .crono-activity {
    text-align: left;
    font-weight: 600;
    background: var(--white);
    color: var(--text);
  }
  .cronograma-table .crono-cell {
    text-align: center;
    color: var(--text);
  }
  .cronograma-table .crono-cell.has-value {
    background: #E0F0FE;
    color: var(--v-coord);
    font-weight: 700;
  }
  body.dark .cronograma-table .crono-cell.has-value { background: rgba(82,140,229,0.18); }

  /* Linha de grupo (header de cada pasta da EAP no cronograma) */
  .cronograma-table tr.crono-row-group td {
    border-top: 2px solid var(--border);
    border-bottom: 1px solid var(--border-light);
    background: var(--bg) !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 11.5px;
  }
  .cronograma-table tr.crono-row-group .crono-cell.has-value {
    background: #C9E2F8 !important;
    color: var(--primary);
  }
  body.dark .cronograma-table tr.crono-row-group .crono-cell.has-value {
    background: rgba(82,140,229,0.30) !important;
  }
  /* Atividade indentada (após o header do grupo) */
  .cronograma-table tr.crono-row-main td.crono-activity {
    font-weight: 500;
  }
  .cronograma-table tfoot td {
    background: var(--bg);
    font-weight: 800;
    color: var(--text);
  }

  /* ===== OUTROS CUSTOS TABLE ===== */
  .other-costs-table {
    width: 100%;
    border-collapse: collapse;
  }
  .other-costs-table th {
    background: var(--bg);
    padding: 10px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .other-costs-table td {
    padding: 10px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
  }
  .other-costs-table input, .other-costs-table select {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 12px;
    color: var(--text);
    background: var(--white);
    font-family: inherit;
  }
  .other-costs-table input:hover, .other-costs-table select:hover {
    border-color: var(--text-muted);
  }
  .other-costs-table input:focus, .other-costs-table select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
  }
  .other-costs-table tfoot td {
    border-bottom: none;
    border-top: 2px solid var(--text);
    padding-top: 12px;
    font-size: 14px;
  }

  /* ===== MODAL DE CARGOS (Configurações) ===== */
  .cargos-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 12px;
  }
  .cargos-table th {
    background: var(--bg);
    padding: 8px 10px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .cargos-table td {
    padding: 10px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px;
    color: var(--text);
  }
  .cargos-table tr:hover td { background: var(--bg); }

  /* ===== MODAL EDITAR ATIVIDADE (3 PASSOS) ===== */
  .activity-step-bar {
    display: flex;
    align-items: center;
    background: var(--bg);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 18px;
  }
  .activity-step-bar-fill {
    background: var(--text);
    height: 4px;
    width: 33%;
    transition: width 0.3s;
  }

  .activity-calc-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 10px;
  }
  .activity-calc-option {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    font-family: inherit;
  }
  .activity-calc-option:hover { border-color: var(--primary-light); }
  .activity-calc-option.selected {
    border-color: var(--text);
    background: var(--bg);
  }
  .activity-calc-option-icon {
    font-size: 20px;
    margin-bottom: 8px;
  }
  .activity-calc-option-name {
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 4px;
  }
  .activity-calc-option-desc {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
  }

  .activity-dim-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
  }
  .activity-dim-table th {
    background: var(--bg);
    padding: 8px 10px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .activity-dim-table td {
    padding: 10px;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
  }
  .activity-dim-table input {
    width: 80px;
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: 4px;
    text-align: right;
    font-size: 12px;
    background: var(--white);
    color: var(--text);
  }
  .activity-dim-table select {
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 12px;
    background: var(--white);
    color: var(--text);
    font-family: inherit;
  }
  .activity-dim-cargo-meta {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 3px;
  }
  .activity-dim-cell-hours {
    font-size: 10px;
    color: var(--primary);
    font-weight: 700;
    margin-top: 3px;
  }

  /* ===== MODAL GERAR DOCX ===== */
  /* ===== MODAL GERAR DOCX ===== */
  .docx-template-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  @media (max-width: 700px) {
    .docx-template-grid { grid-template-columns: repeat(2, 1fr); }
  }
  .docx-template-card {
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 14px 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.15s;
    font-family: inherit;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .docx-template-card:hover {
    border-color: var(--primary-light);
    transform: translateY(-2px);
  }
  .docx-template-card.selected {
    border-color: var(--text);
    background: var(--bg);
    box-shadow: var(--shadow-sm);
  }
  .docx-template-icon {
    font-size: 22px;
    margin-bottom: 4px;
  }
  .docx-template-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
  }
  .docx-template-desc {
    font-size: 10px;
    color: var(--text-muted);
    line-height: 1.3;
  }
  .docx-upload-area {
    border: 2px dashed var(--border);
    border-radius: 10px;
    padding: 24px;
    text-align: center;
    background: var(--bg);
    cursor: pointer;
    transition: all 0.12s;
  }
  .docx-upload-area:hover {
    border-color: var(--primary);
    background: var(--primary-light);
  }
  .docx-upload-area.has-file {
    border-color: var(--k-green);
    background: var(--k-green-bg);
    border-style: solid;
  }
  .docx-tag {
    display: inline-block;
    padding: 3px 8px;
    background: var(--bg-dark);
    border-radius: 4px;
    font-family: monospace;
    font-size: 11px;
    color: var(--text);
    margin: 2px;
  }

/* ============================================================
   PRINT / PDF EXPORT — Submissão de form
   Acionado por exportSubmissionToPDF() que adiciona a classe
   `printing-submission` no body e injeta #print-pdf-header.
   ============================================================ */
#print-pdf-header { display: none; }

@media print {
  @page { size: A4; margin: 15mm 12mm; }

  body.printing-submission { background: white !important; color: #000 !important; margin: 0 !important; padding: 0 !important; }

  /* exportSubmissionToPDF() move o #submission-detail-modal pra filho direto
     do <body> antes do print (e restaura no afterprint). Aqui basta esconder
     todos os SIBLINGS do modal com display:none — assim eles saem totalmente
     do flow e não geram páginas em branco. */
  body.printing-submission > *:not(#submission-detail-modal) { display: none !important; }

  /* Modal flui naturalmente no topo, sem position:absolute (que causava
     overflow/sobreposição quando o conteúdo era maior que uma página A4). */
  body.printing-submission #submission-detail-modal {
    position: static !important;
    display: block !important;
    background: white !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
  }
  body.printing-submission #submission-detail-modal .modal {
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    max-height: none !important;
    background: white !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  body.printing-submission #submission-detail-modal .modal-body {
    padding: 0 !important;
    overflow: visible !important;
    max-height: none !important;
  }

  /* Esconde controles internos (status, notas, ações, fechar) */
  body.printing-submission #submission-detail-modal .modal-header,
  body.printing-submission #submission-detail-modal .modal-footer,
  body.printing-submission #submission-detail-modal .modal-close,
  body.printing-submission #submission-internal-controls {
    display: none !important;
  }

  /* Cabeçalho PDF injetado */
  body.printing-submission #print-pdf-header {
    display: block !important;
    margin-bottom: 18px;
    color: #000;
  }
  #print-pdf-header .print-pdf-brand {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
  }
  #print-pdf-header .print-pdf-logo {
    font-size: 28px;
    font-weight: 900;
    letter-spacing: 0.12em;
    color: #000;
    line-height: 1;
  }
  #print-pdf-header .print-pdf-tagline {
    font-size: 10px;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
  }
  #print-pdf-header .print-pdf-printed {
    font-size: 9px;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  #print-pdf-header .print-pdf-hr {
    border: none;
    border-top: 2px solid #000;
    margin: 10px 0 14px;
  }
  #print-pdf-header .print-pdf-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #555;
    margin-bottom: 4px;
  }
  #print-pdf-header .print-pdf-form-name {
    font-size: 20px;
    font-weight: 800;
    color: #000;
    margin-bottom: 8px;
    line-height: 1.2;
  }
  #print-pdf-header .print-pdf-badges {
    margin-bottom: 14px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
  }
  #print-pdf-header .print-pdf-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border: 1px solid #000;
    color: #000;
    background: white;
  }
  #print-pdf-header .print-pdf-complexity.level-complexo { border-color: #C81E1E; color: #C81E1E; }
  #print-pdf-header .print-pdf-complexity.level-medio    { border-color: #B45309; color: #B45309; }
  #print-pdf-header .print-pdf-complexity.level-simples  { border-color: #15803D; color: #15803D; }
  #print-pdf-header .print-pdf-contact {
    background: #F5F5F5;
    border-left: 3px solid #000;
    padding: 10px 14px;
    font-size: 11px;
    line-height: 1.6;
    color: #000;
  }
  #print-pdf-header .print-pdf-contact strong {
    display: inline-block;
    min-width: 80px;
    color: #555;
    font-weight: 700;
  }

  /* Respostas: a seção pode quebrar entre páginas (page-break-inside:avoid
     numa seção maior que A4 força página em branco antes). Só as linhas
     individuais não devem cortar no meio. */
  body.printing-submission .sub-answer-section {
    page-break-inside: auto;
    break-inside: auto;
    margin-bottom: 14px;
    background: white !important;
    border: 1px solid #DDD !important;
    padding: 10px 12px !important;
  }
  body.printing-submission .sub-answer-section-title {
    page-break-after: avoid;
    break-after: avoid;
    color: #000 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid #DDD;
    padding-bottom: 6px;
    margin-bottom: 10px !important;
  }
  body.printing-submission .sub-answer-row {
    page-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: 8px !important;
  }
  body.printing-submission .sub-answer-label {
    color: #555 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  body.printing-submission .sub-answer-value {
    color: #000 !important;
    font-size: 12px !important;
  }
  body.printing-submission .sub-answer-value.empty {
    color: #999 !important;
    font-style: italic;
  }

  /* Toasts e notificações fora */
  body.printing-submission .toast,
  body.printing-submission .toast-container,
  body.printing-submission .notif-panel {
    display: none !important;
  }
}

/* ============================================
   Pipeline · Visualização em LISTA (alternativa ao Kanban)
   Renderizada por renderPipelineList() em app.js.
   ============================================ */
.pl-summary {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  padding: 4px 4px 12px;
}
.pl-section {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 14px;
  overflow: hidden;
}
.pl-section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.pl-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.pl-section-label {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text);
}
.pl-section-count {
  margin-left: auto;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  background: var(--white);
  border: 1px solid var(--border);
  padding: 2px 8px;
  border-radius: 10px;
}
.pl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.pl-table thead th {
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  padding: 8px 14px;
  background: var(--white);
  border-bottom: 1px solid var(--border-light);
  white-space: nowrap;
}
.pl-table tbody tr.pl-row {
  cursor: pointer;
  transition: background 0.08s ease;
  border-bottom: 1px solid var(--border-light);
}
.pl-table tbody tr.pl-row:last-child {
  border-bottom: none;
}
.pl-table tbody tr.pl-row:hover {
  background: var(--bg);
}
.pl-table td {
  padding: 10px 14px;
  vertical-align: middle;
  color: var(--text);
}
.pl-client {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.pl-client strong {
  font-weight: 600;
}
.pl-temp {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-block;
}
.pl-temp-hot     { background: #E84545; }
.pl-temp-warm    { background: var(--k-yellow); }
.pl-temp-cold    { background: #5B8DEE; }
.pl-temp-ganho   { background: var(--k-green); }
.pl-temp-perdido { background: var(--text-light); }
.pl-vert-chip {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 6px;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  margin-right: 4px;
}
.pl-followup {
  font-size: 11px;
  font-weight: 600;
  color: var(--text);
  background: var(--k-yellow-bg, #FFF7E0);
  border: 1px solid var(--k-yellow);
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
}
.pl-value {
  font-weight: 700;
  color: var(--text);
  text-align: right;
  white-space: nowrap;
}
.pl-muted {
  color: var(--text-light);
  font-style: italic;
}

