  :root {
    --navy: #0A1628;
    --navy2: #112240;
    --blue: #1A56DB;
    --blue-light: #3B82F6;
    --blue-pale: #EFF6FF;
    --gold: #F59E0B;
    --gold-pale: #FFFBEB;
    --orange: #EA580C;
    --orange-pale: #FFF7ED;
    --green: #059669;
    --green-pale: #ECFDF5;
    --teal: #0891B2;
    --purple: #7C3AED;
    --purple-pale: #F5F3FF;
    --red: #DC2626;
    --red-pale: #FEF2F2;
    --gray-50: #F8FAFC;
    --gray-100: #F1F5F9;
    --gray-200: #E2E8F0;
    --gray-300: #CBD5E1;
    --gray-400: #94A3B8;
    --gray-500: #64748B;
    --gray-700: #334155;
    --gray-900: #0F172A;
    --white: #FFFFFF;
    --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
    --shadow: 0 4px 16px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
    --shadow-lg: 0 20px 40px rgba(0,0,0,.12), 0 8px 16px rgba(0,0,0,.06);
    --radius: 12px;
    --radius-sm: 8px;
    --radius-lg: 16px;
  }

  * { margin:0; padding:0; box-sizing:border-box; }
  
  body {
    font-family: 'DM Sans', sans-serif;
    background: var(--gray-50);
    color: var(--gray-900);
    min-height: 100vh;
  }

  /* ── ENTRANCE ANIMATIONS ── */
  @keyframes slideInLeft {
    from { opacity:0; transform:translateX(-18px); }
    to   { opacity:1; transform:translateX(0); }
  }
  @keyframes fadeInUp {
    from { opacity:0; transform:translateY(12px); }
    to   { opacity:1; transform:translateY(0); }
  }
  @keyframes slideDown {
    from { opacity:0; transform:translateY(-10px); }
    to   { opacity:1; transform:translateY(0); }
  }
  .panel-left .card {
    animation: slideInLeft .35s ease both;
  }
  .panel-left .card:nth-child(1)  { animation-delay:.05s }
  .panel-left .card:nth-child(2)  { animation-delay:.10s }
  .panel-left .card:nth-child(3)  { animation-delay:.15s }
  .panel-left .card:nth-child(4)  { animation-delay:.20s }
  .panel-left .card:nth-child(5)  { animation-delay:.25s }
  .panel-left .card:nth-child(6)  { animation-delay:.30s }
  .panel-left .card:nth-child(7)  { animation-delay:.35s }
  .balance-bar { animation: slideDown .4s ease both; }
  #flow-body tr { animation: fadeInUp .2s ease both; }

  /* Input glow on focus */
  input:focus, select:focus {
    transform: scale(1.01);
  }
  /* Total pills bounce on change */
  .total-pill {
    transition: all .3s cubic-bezier(.34,1.56,.64,1);
  }

  /* Row hover lift */
  tbody tr:hover { transform: scale(1.002); }
  tbody tr { transition: all .15s; }

  /* ── STICKY TOP WRAPPER (header + balance-bar sempre visíveis) ── */
  .sticky-top-wrap {
    position: sticky;
    top: 0;
    z-index: 100;
  }

  /* ── HEADER ── */
  header {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy2) 50%, #1e3a5f 100%);
    padding: 20px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 4px 24px rgba(0,0,0,.3);
  }
  .logo { display:flex; align-items:center; gap:12px; }
  .logo-icon {
    width:60px; height:60px; background:transparent;
    display:flex; align-items:center; justify-content:center;
  }
  .logo h1 { color:var(--white); font-size:18px; font-weight:700; letter-spacing:-.3px; }
  .logo p  { color: rgba(255,255,255,.5); font-size:12px; }

  .dev-credit {
    font-size:10px; color:rgba(255,255,255,.3); letter-spacing:.3px;
    display:flex; align-items:center; gap:5px; margin-top:3px;
  }
  .dev-credit strong { color:rgba(255,255,255,.55); font-weight:600; }
  /* ── BALANCE BAR ── */
  .balance-bar {
    background: linear-gradient(135deg, var(--navy) 0%, #0d2045 100%);
    padding: 0 32px;
    display: flex; align-items: center; gap: 0;
    border-bottom: 1px solid rgba(255,255,255,.06);
    overflow: hidden; position: relative;
  }
  .balance-bar::before {
    content:''; position:absolute; inset:0;
    background: repeating-linear-gradient(90deg, transparent, transparent 120px, rgba(255,255,255,.015) 120px, rgba(255,255,255,.015) 121px);
    pointer-events:none;
  }
  .bal-item {
    display:flex; align-items:center; gap:14px;
    padding:14px 24px 14px 0; border-right:1px solid rgba(255,255,255,.07);
    margin-right:24px; flex-shrink:0;
  }
  .bal-item:last-child { border-right:none; margin-right:0; margin-left:auto; }
  .bal-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:rgba(255,255,255,.45); white-space:nowrap; }
  .bal-value { font-size:15px; font-weight:700; font-family:'DM Mono',monospace; color:rgba(255,255,255,.9); white-space:nowrap; transition: color .3s; }
  .bal-value.ok   { color:#4ADE80; }
  .bal-value.warn { color:#FCD34D; }
  .bal-value.err  { color:#F87171; }

  /* ── SALDO FALTANTE — animated pill ── */
  .saldo-pill {
    display:flex; align-items:center; gap:10px;
    padding:10px 20px; border-radius:50px;
    border:1.5px solid rgba(255,255,255,.1);
    background:rgba(255,255,255,.05);
    transition: all .4s cubic-bezier(.34,1.56,.64,1);
  }
  .saldo-pill.ok   { background:rgba(74,222,128,.12); border-color:rgba(74,222,128,.3); }
  .saldo-pill.warn { background:rgba(252,211,77,.10); border-color:rgba(252,211,77,.3); }
  .saldo-pill.err  { background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.3); }
  .saldo-icon { font-size:18px; transition: transform .5s, color .3s; color: rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; }
  .saldo-pill.ok   .saldo-icon { transform: rotate(360deg); color: #4ADE80; animation: saldo-icon-pulse 2s ease-in-out infinite; }
  .saldo-pill.warn .saldo-icon { color: #FCD34D; }
  .saldo-pill.err  .saldo-icon { color: #F87171; }
  @keyframes saldo-icon-pulse { 0%,100%{ filter: drop-shadow(0 0 0px #4ADE80); } 50%{ filter: drop-shadow(0 0 6px #4ADE80); } }
  .saldo-pill-label { font-size:10px; color:rgba(255,255,255,.5); font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
  .saldo-pill-value { font-size:16px; font-weight:800; font-family:'DM Mono',monospace; transition: all .3s; }
  .saldo-pill.ok   .saldo-pill-value { color:#4ADE80; }
  .saldo-pill.warn .saldo-pill-value { color:#FCD34D; }
  .saldo-pill.err  .saldo-pill-value { color:#F87171; }
  .saldo-progress { width:100%; height:4px; background:rgba(255,255,255,.1); border-radius:50px; margin-top:3px; overflow:hidden; }
  .saldo-progress-fill { height:100%; border-radius:50px; transition: width .6s cubic-bezier(.34,1.56,.64,1), background .3s; }

  /* ── PULSE animation on value change ── */
  @keyframes valuePop { 0%{transform:scale(1)} 40%{transform:scale(1.12)} 100%{transform:scale(1)} }
  .pop { animation: valuePop .35s ease; }

  /* ── DESCONTO FIELD ── */
  .desconto-card {
    margin: 0 16px 16px;
    border: 1.5px dashed var(--gray-300);
    border-radius: var(--radius);
    padding: 14px 16px;
    background: var(--gray-50);
    transition: all .3s;
  }
  .desconto-card:focus-within { border-color:var(--blue-light); background:var(--white); box-shadow:var(--shadow); }
  .desconto-card .desc-header { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:12px; font-weight:700; color:var(--gray-500); }
  /* ── MODAL ── */
  @keyframes modalIn {
    from { opacity:0; transform:scale(.92) translateY(12px); }
    to   { opacity:1; transform:scale(1)   translateY(0); }
  }
  #modal-gerar { display:none; }
  #modal-gerar.open { display:flex !important; }

  .gerar-card {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    border: 2px solid var(--gray-200); border-radius: 14px; padding: 16px 12px;
    cursor: pointer; transition: all .2s; background: var(--white); gap: 6px;
  }
  .gerar-card:hover   { border-color: #059669; background: #F0FDF4; transform: translateY(-2px); }
  .gerar-card.active  { border-color: #059669; background: #F0FDF4; box-shadow: 0 0 0 3px rgba(5,150,105,.15); }
  .gerar-card-icon    { width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:2px; }
  .gerar-card-title   { font-size:13px;font-weight:800;color:var(--gray-900); }
  .gerar-card-sub     { font-size:11px;color:var(--gray-500);line-height:1.4; }
  .gerar-card-badge   { font-size:10px;font-weight:700;padding:2px 10px;border-radius:20px;margin-top:4px; }

  /* WhatsApp print mode */
  .print-whatsapp table { font-size:10pt !important; }
  .print-whatsapp tbody td { padding:5pt 7pt !important; font-size:10pt !important; }
  .print-whatsapp thead th { font-size:9pt !important; padding:6pt 7pt !important; }
  .print-whatsapp .pp1-kpi-value { font-size:13pt !important; }
  .print-whatsapp .pp1-kpi-label { font-size:8pt !important; }
  .print-whatsapp .pp1-parc-row  { font-size:10pt !important; padding:6pt 8pt !important; }
  .print-whatsapp .pp1-parc-row .label { font-size:10pt !important; }
  .print-whatsapp .pp1-parc-row .val   { font-size:10pt !important; }
  .print-whatsapp .pp1-bar-label { font-size:9pt !important; }
  .print-whatsapp .pp1-tl-text h4 { font-size:9.5pt !important; }
  .print-whatsapp .pp1-tl-text p  { font-size:8.5pt !important; }
  .print-whatsapp .pp1-footer { font-size:7.5pt !important; }
  .print-whatsapp .pp1-logo-name { font-size:18pt !important; }
  .print-whatsapp .pp1-client-name { font-size:16pt !important; }
  .print-whatsapp .corretor-block { font-size:9pt !important; }


  /* ── OVERLAY DE CARREGAMENTO ─────────────────────────────── */
  #loading-overlay {
    display: none;
    position: fixed; inset: 0; z-index: 9000;
    background: rgba(10, 22, 40, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    align-items: center; justify-content: center;
    flex-direction: column; gap: 18px;
    animation: overlayIn .2s ease;
  }
  #loading-overlay.active { display: flex; }
  @keyframes overlayIn {
    from { opacity:0; }
    to   { opacity:1; }
  }
  .ov-card {
    background: linear-gradient(135deg, #0d1f3c, #112240);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    padding: 36px 48px;
    text-align: center;
    box-shadow: 0 32px 80px rgba(0,0,0,.5);
    animation: ovCardIn .3s cubic-bezier(.34,1.56,.64,1);
    min-width: 260px;
  }
  @keyframes ovCardIn {
    from { opacity:0; transform: scale(.88) translateY(16px); }
    to   { opacity:1; transform: scale(1)   translateY(0); }
  }
  .ov-spinner {
    width: 48px; height: 48px;
    border: 3.5px solid rgba(255,255,255,.12);
    border-top-color: #1A56DB;
    border-right-color: #F59E0B;
    border-radius: 50%;
    animation: ovSpin .85s linear infinite;
    margin: 0 auto 16px;
  }
  @keyframes ovSpin { to { transform: rotate(360deg); } }
  .ov-title {
    font-size: 15px; font-weight: 800; color: #fff;
    letter-spacing: -.2px; margin-bottom: 6px;
  }
  .ov-sub {
    font-size: 12px; color: rgba(255,255,255,.45);
    font-family: 'DM Mono', monospace;
  }
  .ov-bar {
    width: 100%; height: 3px; background: rgba(255,255,255,.1);
    border-radius: 99px; overflow: hidden; margin-top: 18px;
  }
  .ov-bar-fill {
    height: 100%; width: 0%;
    background: linear-gradient(90deg, #1A56DB, #F59E0B);
    border-radius: 99px;
    animation: ovBarFill 1.6s ease-in-out infinite alternate;
  }
  @keyframes ovBarFill {
    from { width: 15%; margin-left: 0%; }
    to   { width: 55%; margin-left: 40%; }
  }
  .print-only { display:none; }

  /* ════════════════════════════════════════
     PRINT STYLES — auto-scale to one page
  ════════════════════════════════════════ */
  @page {
    size: A4 portrait;
    margin: 0;
  }
  @page :first {
    margin: 0;
  }
  /* ── WhatsApp print mode — layout fixes ───────────────────────── */
  body.print-whatsapp #print-page1 {
    padding: 10mm 12mm !important;
  }
  body.print-whatsapp #print-cols-wrap {
    padding: 8mm 12mm 10mm 12mm !important;
  }
  /* KPIs: 5 colunas → 3 colunas para caber na fonte maior */
  body.print-whatsapp .pp1-kpis {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  body.print-whatsapp .pp1-kpi-value {
    font-size: 11pt !important;
  }
  body.print-whatsapp .pp1-kpi-label {
    font-size: 7pt !important;
  }
  /* Body: 2 colunas → 1 coluna para evitar overflow */
  body.print-whatsapp .pp1-body {
    grid-template-columns: 1fr !important;
  }
  /* Tabela condicionais: reduz para 2 colunas legíveis */
  body.print-whatsapp .pp1-cond-table td:nth-child(3) {
    display: none !important;
  }
  body.print-whatsapp .pp1-cond-table td:nth-child(4) {
    display: none !important;
  }
  @media print {
    /* ── Hide all UI chrome ── */
    .no-print,
    .balance-bar,
    .tabs,
    .export-bar,
    .panel-left,
    #ai-section,
    header,
    .summary-bar,
    #tab-client,
    #tab-summary,
    .flow-title,
    #toast-notif,
    #propostas-modal,
    #login-overlay,
    #modal-gerar,
    #btn-nova-proposta,
    #btn-propostas,
    #btn-salvar-proposta,
    #bal-comissao,
    #user-bar,
    #banner-proposta-aceita { display:none !important; }

    /* ── Page 1: client + summary (injected by JS) ── */
    #print-page1 {
      display: block !important;
      width: 100%;
      padding: 8mm 10mm;
      box-sizing: border-box;
      page-break-after: always;
      break-after: page;
    }
    .pp1-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      border-bottom: 2pt solid #0A1628;
      padding-bottom: 6pt;
      margin-bottom: 10pt;
    }
    .pp1-logo-name  { font-size:16pt; font-weight:900; color:#0A1628; letter-spacing:-.3px; }
    .pp1-logo-sub   { font-size:8pt;  color:#64748B; margin-top:1pt; }
    .pp1-logo-dev   { font-size:7.5pt;color:#94A3B8; margin-top:1pt; }
    .pp1-client-name{ font-size:15pt; font-weight:800; color:#0A1628; text-align:right; }
    .pp1-client-sub { font-size:9pt;  color:#334155; text-align:right; margin-top:2pt; }
    .pp1-client-date{ font-size:8pt;  color:#94A3B8; text-align:right; margin-top:1pt; }
    .pp1-client-renda{ font-size:8pt; color:#059669; text-align:right; margin-top:1pt; font-weight:600; }

    .pp1-kpis {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 4pt;
      margin-bottom: 10pt;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .pp1-kpi {
      background: #F8FAFC;
      border-radius: 5pt;
      padding: 6pt 8pt;
      border-top: 2pt solid #1A56DB;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .pp1-kpi.green { border-top-color:#059669; }
    .pp1-kpi.orange{ border-top-color:#EA580C; }
    .pp1-kpi.navy  { border-top-color:#0A1628; }
    .pp1-kpi.gold  { border-top-color:#D97706; }
    .pp1-kpi-label { font-size:7.5pt; font-weight:700; text-transform:uppercase; letter-spacing:0; color:#94A3B8; line-height:1.25; }
    .pp1-kpi-value { font-size:13pt; font-weight:800; font-family:monospace; color:#0A1628; margin-top:1pt; }

    .pp1-body {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8pt;
    }
    .pp1-section-title {
      font-size:9.5pt; font-weight:800; text-transform:uppercase; letter-spacing:.4px;
      color:#0A1628; border-bottom:1pt solid #E2E8F0; padding-bottom:3pt; margin-bottom:6pt;
    }
    /* .pp1-parcelas { } */
    .pp1-parc-row {
      display: flex; justify-content: space-between; align-items: center;
      padding: 4pt 6pt; border-radius: 3pt; margin-bottom: 2pt;
      font-size: 9.5pt;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }
    .pp1-parc-row .label { font-weight:700; color:#334155; }
    .pp1-parc-row .val   { font-family:monospace; font-weight:700; color:#0A1628; }
    .pp1-parc-row .sub   { font-size:8pt; color:#94A3B8; }

    /* .pp1-bars { } */
    .pp1-bar-row { margin-bottom:5pt; }
    .pp1-bar-label { display:flex; justify-content:space-between; font-size:9pt; margin-bottom:2pt; }
    .pp1-bar-label span:first-child { font-weight:700; color:#334155; }
    .pp1-bar-label span:last-child  { font-family:monospace; color:#64748B; }
    .pp1-bar-track { height:6pt; background:#E2E8F0; border-radius:10pt; overflow:hidden; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .pp1-bar-fill  { height:100%; border-radius:10pt; -webkit-print-color-adjust:exact; print-color-adjust:exact; }

    /* .pp1-tl { } */
    .pp1-tl-item { display:flex; gap:6pt; margin-bottom:5pt; align-items:flex-start; }
    .pp1-tl-dot  { width:16pt; height:16pt; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:10pt; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .pp1-tl-text h4 { font-size:9.5pt; font-weight:700; color:#0A1628; }
    .pp1-tl-text p  { font-size:8.5pt; color:#64748B; }

    .pp1-incc {
      margin-top:8pt; padding:5pt 8pt; border-radius:4pt;
      background:#FEF2F2; border-left:3pt solid #DC2626;
      font-size:8.5pt; color:#DC2626; font-style:italic;
      -webkit-print-color-adjust:exact; print-color-adjust:exact;
    }
    .pp1-desconto {
      margin-top:5pt; padding:5pt 8pt; border-radius:4pt;
      background:#ECFDF5; border-left:3pt solid #059669;
      font-size:9pt; color:#059669; font-weight:700;
      -webkit-print-color-adjust:exact; print-color-adjust:exact;
      display:none;
    }
    .pp1-footer {
      margin-top:8pt; padding-top:5pt; border-top:1pt solid #E2E8F0;
      font-size:8pt; color:#94A3B8; text-align:center;
    }

    /* ── Reset everything ── */
    * { animation:none !important; transition:none !important; box-shadow:none !important; }
    html, body { margin:0 !important; padding:0 !important; background:#fff !important; width:100% !important; }

    /* ── Full-page layout ── */
    .app           { display:block !important; width:100% !important; height:auto !important; overflow:visible !important; }
    .panel-right   { display:block !important; width:100% !important; height:auto !important; overflow:visible !important; background:#fff !important; }
    #tab-flow      { display:block !important; height:auto !important; overflow:visible !important; }

    /* ── Print wrapper: sem padding próprio — cada seção (#print-page1 / #print-cols-wrap) já tem o seu ── */
    .flow-container {
      padding: 0 !important;
      width: 100% !important;
      height: auto !important;
      overflow: visible !important;
      box-sizing: border-box !important;
    }

    /* ── Show print header (page1 has its own, suppress old one) ── */
    .print-only { display:block !important; }
    #print-header { display:none !important; }

    /* ── Table: compressed, fixed layout ── */
    table {
      width: 100% !important;
      border-collapse: collapse !important;
      table-layout: fixed !important;
    }
    thead { display: table-header-group; }
    thead th {
      background: #0A1628 !important;
      color: #fff !important;
      padding: 4pt 5pt !important;
      font-size: 8.5pt !important;
      font-weight: 700 !important;
      letter-spacing: .3px !important;
      -webkit-print-color-adjust: exact !important;
      print-color-adjust: exact !important;
    }
    tbody td {
      padding: 3pt 5pt !important;
      border-bottom: 0.4pt solid #E2E8F0 !important;
      font-size: 8.5pt !important;
      line-height: 1.3 !important;
    }
    tbody tr { break-inside: avoid !important; page-break-inside: avoid !important; }

    /* ── Row colors preserved ── */
    .row-ato td         { background: #FFFBEB !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-sinal td       { background: #EFF6FF !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-anual td       { background: #FFF7ED !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-unica td       { background: #ECFDF5 !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-anual-unica td { background: #F5F3FF !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-poschave td    { background: #EFF6FF !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-chave td       { background: #0A1628 !important; color: #fff !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
    .row-chave td *     { color: #fff !important; }
    .row-mensal td      { background: #fff !important; }

    /* ── Elements compressed ── */
    .tag      { font-size: 8pt !important; padding: 1pt 4pt !important; border-radius: 20pt !important; border: none !important; }
    .n-badge  { width: 13pt !important; height: 13pt !important; font-size: 6pt !important; }
    .value-cell { font-size: 8.5pt !important; }
    .mono     { font-size: 8pt !important; }

    /* ── Print header tighter ── */
    #print-header { margin-bottom: 6pt !important; padding-bottom: 6pt !important; }

    /* ── Desconto block ── */
    #client-desconto-block { display:block !important; }
  }

  .ai-badge {
    display:flex; align-items:center; gap:8px;
    background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
    border-radius:50px; padding:8px 16px; cursor:pointer;
    color:var(--white); font-size:13px; font-weight:500;
    transition: all .2s;
  }
  .ai-badge:hover { background:rgba(255,255,255,.15); }
  .ai-dot { width:8px; height:8px; border-radius:50%; background:#22C55E; animation: pulse 2s infinite; }
  @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }

  /* ── LAYOUT ── */
  .app { display:grid; grid-template-columns: 380px 1fr; height: calc(100vh - var(--sticky-top-h, 118px)); overflow:hidden; }

  /* ── LEFT PANEL ── */
  .panel-left {
    background:var(--white); border-right:1px solid var(--gray-200);
    overflow-y:auto; display:flex; flex-direction:column;
  }
  .panel-left::-webkit-scrollbar { width:4px; }
  .panel-left::-webkit-scrollbar-track { background:transparent; }
  .panel-left::-webkit-scrollbar-thumb { background:var(--gray-200); border-radius:4px; }

  .section-title {
    font-size:11px; font-weight:700; letter-spacing:.8px;
    text-transform:uppercase; color:var(--gray-400);
    padding:20px 20px 8px;
  }

  /* ── CARDS ── */
  .card {
    margin:0 16px 10px;
    background:var(--white); border:1.5px solid var(--gray-200);
    border-radius:var(--radius); padding:16px;
    transition: border-color .2s, box-shadow .2s;
  }
  .card:hover { border-color:var(--blue-light); box-shadow:var(--shadow); }
  .card-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  .card-icon {
    width:34px; height:34px; border-radius:8px;
    display:flex; align-items:center; justify-content:center; font-size:16px;
    flex-shrink:0;
  }
  .card-title { font-size:13px; font-weight:700; color:var(--gray-900); }
  .card-sub   { font-size:11px; color:var(--gray-400); margin-top:1px; }

  /* ── GRID INPUTS ── */
  .input-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .input-grid.cols3 { grid-template-columns:1fr 1fr 1fr; }
  .input-group { display:flex; flex-direction:column; gap:4px; }
  .input-group.full { grid-column:1/-1; }
  label { font-size:11px; font-weight:600; color:var(--gray-500); letter-spacing:.2px; }
  
  input[type=text], input[type=number], input[type=date] {
    width:100%; padding:9px 11px; border:1.5px solid var(--gray-200);
    border-radius:var(--radius-sm); font-family:'DM Sans',sans-serif;
    font-size:13px; color:var(--gray-900); background:var(--white);
    transition: border-color .2s, box-shadow .2s;
    outline:none;
  }
  input:focus { border-color:var(--blue-light); box-shadow:0 0 0 3px rgba(59,130,246,.12); }
  input[type=number] { font-family:'DM Mono',monospace; font-size:13px; }
  
  .input-prefix {
    position:relative;
  }
  .input-prefix span {
    position:absolute; left:10px; top:50%; transform:translateY(-50%);
    font-size:12px; color:var(--gray-400); font-family:'DM Mono',monospace; pointer-events:none;
  }
  .input-prefix input { padding-left:32px; }

  /* computed total */
  .total-pill {
    background:var(--blue-pale); color:var(--blue);
    font-size:12px; font-family:'DM Mono',monospace; font-weight:600;
    padding:4px 10px; border-radius:50px; margin-top:6px; display:inline-block;
  }

  /* ── DATE INPUTS with color ── */
  .date-field { position:relative; }
  .date-field.anual input:not(:placeholder-shown) { border-color:var(--orange); background:var(--orange-pale); }
  .date-field.unica input:not(:placeholder-shown) { border-color:var(--green); background:var(--green-pale); }

  /* ── CEF section ── */
  .cef-card .card-icon { background:#EFF6FF; }

  /* ── INCC NOTICE ── */
  .incc-bar {
    margin:0 16px 12px;
    background:linear-gradient(135deg,#FEF2F2,#FFF7ED);
    border:1.5px solid #FECACA; border-radius:var(--radius-sm);
    padding:10px 14px; display:flex; align-items:center; gap:10px;
  }
  .incc-bar span { font-size:12px; color:var(--red); font-weight:600; }

  /* ── AI PANEL ── */
  .ai-panel {
    margin: 0 16px 16px;
    border: 1.5px solid transparent;
    background: linear-gradient(var(--white), var(--white)) padding-box,
                linear-gradient(135deg, var(--blue-light), var(--purple)) border-box;
    border-radius: var(--radius);
    overflow: hidden;
  }
  .ai-panel-header {
    padding: 12px 16px;
    background: linear-gradient(135deg, rgba(26,86,219,.06), rgba(124,58,237,.06));
    display:flex; align-items:center; justify-content:space-between;
  }
  .ai-panel-title { font-size:13px; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:8px; }
  .ai-key-input {
    width:100%; padding:8px 12px; border:1.5px solid var(--gray-200);
    border-radius:var(--radius-sm); font-size:12px; font-family:'DM Mono',monospace;
    margin: 10px 16px 0; width:calc(100% - 32px);
    background:var(--gray-50);
  }
  .ai-key-input:focus { outline:none; border-color:var(--blue-light); }
  .ai-chat { padding:12px 16px; max-height:200px; overflow-y:auto; }
  .ai-msg {
    margin-bottom:8px; padding:10px 12px; border-radius:10px;
    font-size:12px; line-height:1.6;
  }
  .ai-msg.user { background:var(--blue-pale); color:var(--blue); text-align:right; }
  .ai-msg.ai   { background:var(--gray-50); color:var(--gray-700); border:1px solid var(--gray-200); }
  .ai-msg.loading { color:var(--gray-400); font-style:italic; }
  .ai-input-row {
    display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--gray-100);
  }
  .ai-input-row input {
    flex:1; padding:8px 12px; border:1.5px solid var(--gray-200);
    border-radius:var(--radius-sm); font-size:12px;
  }
  .btn-send {
    background:linear-gradient(135deg, var(--blue), var(--purple));
    color:var(--white); border:none; border-radius:var(--radius-sm);
    padding:8px 14px; font-size:12px; font-weight:600; cursor:pointer;
    transition:opacity .2s;
  }
  .btn-send:hover { opacity:.85; }
  .btn-send:disabled { opacity:.4; cursor:not-allowed; }

  /* ── RIGHT PANEL ── */
  .panel-right {
    overflow-y:auto; background:var(--gray-50);
    display:flex; flex-direction:column;
  }
  .panel-right::-webkit-scrollbar { width:4px; }
  .panel-right::-webkit-scrollbar-thumb { background:var(--gray-300); border-radius:4px; }

  /* ── SUMMARY BAR ── */
  .summary-bar {
    background:var(--white); border-bottom:1px solid var(--gray-200);
    padding:16px 24px; display:flex; gap:24px; flex-wrap:wrap;
    position:sticky; top:0; z-index:10;
  }
  .sum-item { display:flex; flex-direction:column; gap:2px; }
  .sum-label { font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--gray-400); }
  .sum-value { font-size:18px; font-weight:700; font-family:'DM Mono',monospace; color:var(--gray-900); }
  .sum-value.blue   { color:var(--blue); }
  .sum-value.green  { color:var(--green); }
  .sum-value.orange { color:var(--orange); }
  .sum-value.navy   { color:var(--navy); }
  .sum-divider { width:1px; background:var(--gray-200); align-self:stretch; }

  /* ── FLOW TABLE ── */
  .flow-container { padding:20px 24px; flex:1; }
  /* Subtle row entrance */
  @keyframes rowIn { from{opacity:0;transform:translateX(6px)} to{opacity:1;transform:none} }
  .flow-title {
    font-size:14px; font-weight:700; color:var(--gray-900);
    margin-bottom:16px; display:flex; align-items:center; gap:8px;
  }
  
  table { width:100%; border-collapse:collapse; }
  thead th {
    background:var(--navy); color:var(--white);
    padding:11px 14px; font-size:11px; font-weight:700;
    letter-spacing:.5px; text-transform:uppercase; text-align:left;
  }
  thead th:first-child { border-radius:var(--radius-sm) 0 0 0; }
  thead th:last-child  { border-radius:0 var(--radius-sm) 0 0; }
  
  tbody tr { transition: background .15s; }
  tbody tr:hover td { background:rgba(26,86,219,.03); }
  
  tbody td {
    padding:10px 14px; font-size:13px; border-bottom:1px solid var(--gray-100);
    vertical-align:middle;
  }

  /* Row types */
  .row-ato td        { background:linear-gradient(90deg,#FFFBEB,var(--white)); }
  .row-sinal td      { background:linear-gradient(90deg,#EFF6FF,var(--white)); }
  .row-mensal td     { background:var(--white); }
  .row-anual td      { background:linear-gradient(90deg,var(--orange-pale),var(--white)) !important; }
  .row-unica td      { background:linear-gradient(90deg,var(--green-pale),var(--white)) !important; }
  .row-anual-unica td { background:linear-gradient(90deg,#FDF4FF,var(--white)) !important; }
  .row-poschave td   { background:linear-gradient(90deg,#EFF6FF,var(--white)); }
  .row-chave td      {
    background:linear-gradient(90deg,var(--navy),var(--navy2)) !important;
    color:var(--white) !important;
  }
  .row-chave td *    { color:var(--white) !important; }
  .row-empty td      { background:transparent; border:none; padding:2px; }

  /* Tags */
  .tag {
    display:inline-flex; align-items:center; gap:5px;
    padding:3px 10px; border-radius:50px; font-size:11px; font-weight:700;
    white-space:nowrap;
  }
  .tag-ato       { background:#FEF3C7; color:#92400E; }
  .tag-sinal     { background:var(--blue-pale); color:var(--blue); }
  .tag-mensal    { background:var(--gray-100); color:var(--gray-500); }
  .tag-anual     { background:var(--orange-pale); color:var(--orange); }
  .tag-unica     { background:var(--green-pale); color:var(--green); }
  .tag-combo     { background:var(--purple-pale); color:var(--purple); }
  .tag-poschave  { background:var(--blue-pale); color:var(--teal); }
  .tag-chave     { background:rgba(255,255,255,.15); color:var(--white); }
  
  .mono { font-family:'DM Mono',monospace; }
  .fw7  { font-weight:700; }
  .text-gray { color:var(--gray-400); }
  
  .value-cell { font-family:'DM Mono',monospace; font-weight:600; font-size:13px; }
  .value-cell.highlight { color:var(--orange); }
  .value-cell.green     { color:var(--green); }
  .value-cell.purple    { color:var(--purple); }

  /* Number badge */
  .n-badge {
    width:22px; height:22px; border-radius:50%; background:var(--gray-100);
    display:inline-flex; align-items:center; justify-content:center;
    font-size:10px; font-weight:700; color:var(--gray-500); flex-shrink:0;
    font-family:'DM Mono',monospace;
  }

  /* ── TABS ── */
  .tabs {
    display:flex; gap:0; border-bottom:2px solid var(--gray-200);
    padding:0 24px; background:var(--white);
    position:sticky; top:0; z-index:9;
  }
  .tab {
    padding:14px 20px; font-size:13px; font-weight:600; color:var(--gray-500);
    cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px;
    transition:all .2s; white-space:nowrap;
  }
  .tab.active { color:var(--blue); border-bottom-color:var(--blue); }
  .tab:hover:not(.active) { color:var(--gray-700); }

  /* ── CLIENT VIEW ── */
  .client-view { padding:24px; }
  .client-hero {
    background:linear-gradient(135deg,var(--navy),var(--navy2));
    border-radius:var(--radius-lg); padding:32px; margin-bottom:24px; color:var(--white);
  }
  .client-hero h2 { font-size:24px; font-weight:700; margin-bottom:8px; }
  .client-hero p  { color:rgba(255,255,255,.6); font-size:14px; line-height:1.7; }
  .client-hero .incc-note {
    margin-top:16px; background:rgba(239,68,68,.15); border:1px solid rgba(239,68,68,.3);
    border-radius:var(--radius-sm); padding:10px 14px;
    font-size:12px; color:#FCA5A5;
  }
  
  .client-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px; }
  .client-card {
    background:var(--white); border-radius:var(--radius); padding:20px;
    border:1.5px solid var(--gray-200); box-shadow:var(--shadow-sm);
  }
  .client-card-header { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
  .client-icon { font-size:24px; }
  .client-card h3 { font-size:14px; font-weight:700; color:var(--gray-900); }
  .client-card .badge { font-size:10px; font-weight:700; padding:2px 8px; border-radius:50px; }
  .client-card p  { font-size:12px; color:var(--gray-500); line-height:1.7; }
  .client-card .amount {
    margin-top:12px; font-family:'DM Mono',monospace; font-size:18px; font-weight:700;
  }
  .client-card .timing { font-size:11px; color:var(--gray-400); margin-top:4px; }
  
  .timeline {
    background:var(--white); border-radius:var(--radius); padding:24px;
    border:1.5px solid var(--gray-200);
  }
  .timeline h3 { font-size:14px; font-weight:700; margin-bottom:20px; color:var(--gray-900); }
  .tl-item { display:flex; gap:16px; margin-bottom:16px; position:relative; }
  .tl-item:not(:last-child)::before {
    content:''; position:absolute; left:16px; top:32px;
    width:2px; height:calc(100% + 4px); background:var(--gray-200);
  }
  .tl-dot {
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:14px; position:relative; z-index:1;
  }
  .tl-content h4 { font-size:13px; font-weight:700; color:var(--gray-900); margin-bottom:2px; }
  .tl-content p  { font-size:12px; color:var(--gray-500); line-height:1.6; }

  /* ── PRINT / EXPORT ── */
  .export-bar {
    padding:12px 24px; background:var(--white); border-top:1px solid var(--gray-200);
    display:flex; gap:10px; align-items:center; justify-content:flex-end;
  }
  .btn {
    padding:9px 18px; border-radius:var(--radius-sm); font-size:13px; font-weight:600;
    cursor:pointer; border:none; transition:all .2s;
  }
  .btn-outline {
    background:var(--white); border:1.5px solid var(--gray-300); color:var(--gray-700);
  }
  .btn-outline:hover { border-color:var(--blue); color:var(--blue); }
  .btn-primary {
    background:var(--blue); color:var(--white);
  }
  .btn-primary:hover { background:#1747c4; }

  /* loading spinner */
  .spinner { display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,.3); border-top-color:var(--white); border-radius:50%; animation:spin .6s linear infinite; }
  @keyframes spin { to { transform:rotate(360deg); } }

  /* ── FLOATING PRINT BUTTON ── */
  #fab-print {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 999;
    display: flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, #065F46, #059669);
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: 13px 20px;
    cursor: pointer;
    box-shadow: 0 6px 24px rgba(5,150,105,.45), 0 2px 8px rgba(0,0,0,.2);
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .2px;
    transition: all .25s cubic-bezier(.34,1.56,.64,1);
    user-select: none;
  }
  #fab-print:hover {
    transform: translateY(-3px) scale(1.04);
    box-shadow: 0 12px 32px rgba(5,150,105,.55), 0 4px 12px rgba(0,0,0,.2);
  }
  #fab-print:active {
    transform: scale(.97);
  }
  .fab-icon  { font-size: 18px; line-height:1; }
  .fab-label { font-size: 13px; }

  /* entrance animation for FAB */
  @keyframes fabIn {
    from { opacity:0; transform: translateY(20px) scale(.8); }
    to   { opacity:1; transform: translateY(0) scale(1); }
  }
  #fab-print { animation: fabIn .5s .6s cubic-bezier(.34,1.56,.64,1) both; }

  /* ── PRINT COLUMNS wrapper (injected by JS) ── */
  #print-cols-wrap {
    display: none; /* only shown @print via JS injection */
  }
  @media print {
    /* [FIX-PRINT] Restaurado da v5 — sem :not(:empty), sem float, sem table */
    #print-cols-wrap {
      display: block !important;
      width: 100%;
      padding: 6mm 10mm 8mm 10mm;
      box-sizing: border-box;
      overflow: visible;
      /* break-before removed — break-after on #print-page1 is sufficient;
         having both siblings break creates a blank page in Chrome/Edge */
    }
    .print-cols {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0 7mm;
      width: 100%;
      align-items: start;
      overflow: visible;
    }
    .print-col {
      overflow: visible;
      page-break-inside: avoid-column;
    }
    .print-col table {
      width: 100%;
      border-collapse: collapse;
      font-size: 9pt;
      table-layout: fixed;
      overflow: visible;
    }
    .print-col thead { display: table-header-group; }
    .print-col tbody tr { break-inside: avoid; page-break-inside: avoid; }
    .print-col-header {
      font-size: 8pt;
      font-weight: 700;
      color: #94A3B8;
      text-transform: uppercase;
      letter-spacing: .4px;
      padding: 0 0 3pt 0;
      border-bottom: 1pt solid #E2E8F0;
      margin-bottom: 2pt;
      display: flex;
      justify-content: space-between;
    }
    /* hide the original single-column table on print */
    #flow-table { display: none !important; }
    /* Ensure page 2 wrapper doesn't clip */
    .flow-container { overflow: visible !important; }
    #tab-flow { overflow: visible !important; height: auto !important; }
    .panel-right { display: block !important; overflow: visible !important; position: static !important; height: auto !important; }
  }

  /* ── EXTRAS CARD ── */
  .extra-group {
    background: var(--gray-50);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    margin-bottom: 10px;
    transition: border-color .2s, box-shadow .2s;
  }
  .extra-group:focus-within { border-color: #7C3AED; box-shadow: 0 0 0 3px rgba(124,58,237,.1); }
  .extra-group-header {
    display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
  }
  .extra-color-dot {
    width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  }
  .extra-group-label { font-size: 12px; font-weight: 700; color: var(--gray-700); }

  /* validation alert */
  .val-alert {
    display: none;
    margin-top: 6px; padding: 6px 10px;
    border-radius: 6px; font-size: 11px; font-weight: 600;
    border-left: 3px solid;
  }
  .val-alert.warn { background: #FFF7ED; border-color: #EA580C; color: #C55A11; }
  .val-alert.err  { background: #FEF2F2; border-color: #DC2626; color: #B91C1C; }
  .val-alert.show { display: block; }

  /* Condicional row — não soma */
  .row-cond td { background: linear-gradient(90deg, #FFFBEB, var(--white)) !important; }
  .tag-cond    { background: #FFFBEB; color: #B45309; border: 1px solid #FDE68A; }
  @media print {
    .row-cond td { background:#FFFBEB!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
    /* [FIX-PRINT] WhatsApp single-column flow — restaurado da v5 */
    body.print-whatsapp .print-cols {
      display: block !important;
    }
    body.print-whatsapp .print-col {
      width: 100% !important;
    }
    body.print-whatsapp .print-col:first-child {
      page-break-after: always;
    }
    body.print-whatsapp .print-col:last-child {
      page-break-after: auto;
    }
    body.print-whatsapp .print-col table {
      font-size: 10pt !important;
    }
    body.print-whatsapp .print-col table td,
    body.print-whatsapp .print-col table th {
      padding: 5pt 7pt !important;
      font-size: 10pt !important;
    }
    body.print-whatsapp .print-col-header {
      font-size: 9pt !important;
      padding: 6pt 7pt !important;
    }
  }

  /* ITBI row */
  .row-itbi td { background: linear-gradient(90deg, #FFF1F2, var(--white)) !important; }
  .tag-itbi    { background: #FFF1F2; color: #BE123C; border: 1px solid #FECDD3; }
  @media print {
    .row-itbi td { background:#FFF1F2!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
  }

  /* extra row type colors */
  .row-extra1 td { background: linear-gradient(90deg, #F5F3FF, var(--white)) !important; }
  .row-extra2 td { background: linear-gradient(90deg, #FFF0F9, var(--white)) !important; }
  .row-extra3 td { background: linear-gradient(90deg, #F0FDFA, var(--white)) !important; }
  .tag-extra1 { background: #F5F3FF; color: #7C3AED; }
  .tag-extra2 { background: #FFF0F9; color: #BE185D; }
  .tag-extra3 { background: #F0FDFA; color: #0F766E; }
  @media print {
    .row-extra1 td { background:#F5F3FF!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
    .row-extra2 td { background:#FFF0F9!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
    .row-extra3 td { background:#F0FDFA!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
  }

  /* obs field */
  .obs-card textarea {
    width: 100%; min-height: 70px; padding: 10px 12px;
    border: 1.5px solid var(--gray-200); border-radius: var(--radius-sm);
    font-family: 'DM Sans', sans-serif; font-size: 13px; color: var(--gray-900);
    resize: vertical; outline: none; transition: border-color .2s;
    line-height: 1.6;
  }
  .obs-card textarea:focus { border-color: var(--blue-light); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
  .obs-hint { font-size: 10px; color: var(--gray-400); margin-top: 4px; }

  /* ── RESPONSIVE & WIZARD ── */
  @media (max-width:900px) {
    body { overflow-x: hidden; }
    header { padding: 12px 16px; }
    .logo-icon { width: 44px; height: 44px; }
    .logo h1 { font-size: 15px; }
    .logo p, .dev-credit { display: none; }
    
    .app { grid-template-columns: 1fr; height: auto; display: block; }
    .panel-left { width: 100%; border-right: none; height: auto; max-height: none; padding-bottom: 120px; }
    .panel-right { 
      position: fixed; top: 0; left: 0; width: 100%; height: 100%; 
      z-index: 8000; background: #fff; flex-direction: column;
    }
    @media not print {
      .panel-right { display: none; }
      .panel-right.mobile-active { display: flex; }
    }
    .panel-right.mobile-active { animation: slideInUp 0.3s ease; }
    .panel-right.mobile-active .btn-close-flow { display: flex !important; }
    
    .balance-bar { padding: 0 16px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .bal-item { padding: 10px 16px 10px 0; margin-right: 16px; }
    
    #btn-nova-proposta span, #btn-propostas span, #btn-crm span, #btn-salvar-proposta span { display: none; }
    #user-bar { display: none; }

    /* Wizard footer fixo na base do mobile */
    .wizard-footer {
      position: fixed !important;
      bottom: 16px !important;
      left: 50% !important;
      transform: translateX(-50%) !important;
      z-index: 200 !important;
    }
  }

  @keyframes slideInUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
  }

  /* Wizard UI */
  .wizard-progress {
    display: flex; justify-content: space-between; align-items: center;
    padding: 16px 24px; background: #fff; border-bottom: 1px solid var(--gray-100);
    position: sticky; top: 0; z-index: 50; margin-bottom: 12px;
  }
  .step-indicator { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1; position: relative; }
  .step-indicator::after { 
    content: ''; position: absolute; top: 13px; left: 50%; width: 100%; height: 2px; 
    background: var(--gray-100); z-index: 1; 
  }
  .step-indicator:last-child::after { display: none; }
  .step-number { 
    width: 26px; height: 26px; border-radius: 50%; background: var(--gray-100); 
    color: var(--gray-400); display: flex; align-items: center; justify-content: center; 
    font-size: 12px; font-weight: 800; z-index: 2; transition: all 0.3s;
    border: 2px solid transparent;
  }
  .step-indicator.active .step-number { background: var(--blue); color: #fff; box-shadow: 0 0 0 4px var(--blue-pale); }
  .step-indicator.completed .step-number { background: var(--green); color: #fff; border-color: #fff; }
  .step-label { font-size: 9px; font-weight: 800; text-transform: uppercase; color: var(--gray-400); text-align: center; }
  .step-indicator.active .step-label { color: var(--blue); }

  .wizard-step { display: none; }
  .wizard-step.active { display: block; animation: fadeInUp 0.3s ease both; }

  /* ── WIZARD FOOTER (Navegação) ── */
  .wizard-footer {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 100;
    pointer-events: none; /* Deixa cliques passarem para o fundo exceto nos botões */
  }
  .wizard-footer button {
    pointer-events: auto;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
  }
  .btn-wizard-next {
    background: var(--navy);
    color: #fff;
    border: 1.5px solid var(--glass-border);
    padding: 12px 32px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .btn-wizard-next:hover {
    transform: translateY(-2px);
    border-color: var(--primary);
    box-shadow: 0 15px 30px rgba(0,0,0,0.4);
    color: #fff !important; /* Fix for white text */
  }
  .btn-wizard-next svg { stroke: #fff !important; }
  
  .btn-wizard-prev {
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: 1.5px solid var(--glass-border);
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: all 0.3s;
  }
  .btn-wizard-prev:hover {
    background: rgba(255,255,255,0.2);
    color: #fff !important;
  }
  .btn-wizard-prev svg { stroke: #fff !important; }

  /* Floating "Ver Fluxo" — integrado no wizard-footer no mobile */
  .mobile-flow-toggle {
    display: none; /* mostrado via JS quando necessário */
    background: var(--primary); color: #fff;
    padding: 12px 24px;
    border-radius: 99px; align-items: center; justify-content: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4); border: none; cursor: pointer;
    gap: 8px; font-weight: 800; font-size: 13px;
    pointer-events: auto;
  }
  /* No mobile, esconder o FAB flutuante (evita sobreposição) */
  @media (max-width:900px) { #fab-print { display: none !important; } }

  .btn-close-flow {
    position: fixed; top: 16px; right: 16px; width: 44px; height: 44px;
    background: rgba(0,0,0,0.8); border: none; border-radius: 50%;
    display: none; align-items: center; justify-content: center; cursor: pointer;
    color: #fff; font-size: 18px; font-weight: 900; z-index: 8100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  }

  /* ── LOGIN OVERLAY ── */
  /* ── LOGIN OVERLAY ─────────────────────────────────────── */
  #login-overlay {
    display: none; position: fixed; inset: 0; z-index: 9999;
    background: linear-gradient(145deg, #07111E 0%, #0A1C32 60%, #061525 100%);
    align-items: center; justify-content: center;
  }
  #login-overlay.active { display: flex; }
  @keyframes loginIn {
    from { opacity:0; transform:translateY(28px) scale(.96); }
    to   { opacity:1; transform:none; }
  }
  .login-box {
    background: transparent;
    width: min(400px, 92vw);
    animation: loginIn .45s cubic-bezier(.34,1.56,.64,1);
    display: flex; flex-direction: column; align-items: center;
  }
  .login-logo { text-align:center; margin-bottom:38px; width:100%; }
  .login-logo .logo-icon { display:none; }
  .login-logo h2 {
    font-size:28px; font-weight:900; color:#fff;
    letter-spacing:3px; text-transform:uppercase; margin:0 0 6px;
    font-family:'DM Sans',sans-serif;
  }
  .login-logo h2 span { color:#F59E0B; }
  .login-logo p { font-size:11px; color:rgba(255,255,255,.38); letter-spacing:2px; text-transform:uppercase; margin:0; }
  .login-field { margin-bottom:20px; width:100%; position:relative; }
  .login-field label { display:none; }
  .login-pill-wrap { display:flex; align-items:center; width:100%; position:relative; }
  .login-pill-icon {
    position:absolute; width:46px; height:46px; border-radius:50%;
    background:#fff; display:flex; align-items:center; justify-content:center;
    z-index:2; flex-shrink:0; box-shadow:0 2px 10px rgba(0,0,0,.22);
    pointer-events:none;
  }
  .login-pill-icon.left  { left:-6px; }
  .login-pill-icon.right { right:-6px; pointer-events:auto; cursor:pointer; }
  .login-pill-icon svg { width:20px; height:20px; }
  .login-field input {
    width:100%; padding:14px 20px 14px 58px;
    background:rgba(255,255,255,.09);
    border:1.5px solid rgba(255,255,255,.10);
    border-radius:50px;
    font-family:'DM Sans',sans-serif; font-size:14px;
    color:#fff; outline:none; transition:background .2s,border-color .2s;
    box-sizing:border-box;
  }
  .login-field input::placeholder { color:rgba(255,255,255,.42); }
  .login-field input:focus { background:rgba(255,255,255,.14); border-color:rgba(245,158,11,.55); }
  .login-field.pw-field input { padding:14px 58px 14px 20px; }
  .login-field .pw-wrap { position:relative; display:flex; align-items:center; }
  .login-field .pw-wrap input { width:100%; box-sizing:border-box; }
  .login-field .pw-toggle { display:none; }
  .login-btn {
    width:100%; padding:15px;
    background:#fff; color:#0A1628;
    border:none; border-radius:50px;
    font-size:14px; font-weight:900; letter-spacing:3px; text-transform:uppercase;
    cursor:pointer; transition:all .2s; margin-top:8px;
    font-family:'DM Sans',sans-serif;
    box-shadow:0 6px 24px rgba(0,0,0,.3);
  }
  .login-btn:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(0,0,0,.4); background:#F0F6FF; }
  .login-btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }
  .login-err {
    display:none; margin-top:16px; padding:11px 18px;
    background:rgba(239,68,68,.15); border:1px solid rgba(239,68,68,.3);
    border-radius:50px; font-size:13px; color:#FCA5A5;
    font-weight:600; text-align:center; width:100%; box-sizing:border-box;
  }
  .login-err.show { display:block; }

  /* ── CAMPO 2FA ── */
  .login-2fa-wrap {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height .45s cubic-bezier(.4,0,.2,1), opacity .35s ease;
  }
  .login-2fa-wrap.visivel {
    max-height: 260px;
    opacity: 1;
  }
  .login-2fa-info {
    background: rgba(26,86,219,.1);
    border: 1px solid rgba(26,86,219,.25);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 12px;
    color: rgba(255,255,255,.7);
    line-height: 1.6;
    margin-bottom: 12px;
    text-align: center;
  }
  .login-2fa-info strong { color: #F59E0B; }
  #login-codigo {
    text-align: center;
    font-family: 'DM Mono', monospace;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 10px;
    color: #fff;
    background: rgba(255,255,255,.08);
    border: 2px solid rgba(255,255,255,.2);
    border-radius: 12px;
    padding: 14px 10px;
    width: 100%;
    outline: none;
    transition: border-color .2s;
  }
  #login-codigo:focus { border-color: #1A56DB; }
  .login-2fa-actions {
    display: flex; gap: 8px; margin-top: 10px;
  }
  .btn-reenviar {
    flex: 1; padding: 11px; background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15); border-radius: 10px;
    color: rgba(255,255,255,.6); font-size: 12px; font-weight: 600;
    cursor: pointer; font-family: 'DM Sans', sans-serif;
    transition: all .2s;
  }
  .btn-reenviar:hover:not(:disabled) { background: rgba(255,255,255,.14); color: #fff; }
  .btn-reenviar:disabled { opacity: .45; cursor: default; }
  .btn-voltar-login {
    padding: 11px 14px; background: transparent;
    border: 1px solid rgba(255,255,255,.15); border-radius: 10px;
    color: rgba(255,255,255,.5); font-size: 12px; font-weight: 600;
    cursor: pointer; font-family: 'DM Sans', sans-serif;
    transition: all .2s;
  }
  .btn-voltar-login:hover { border-color: rgba(255,255,255,.35); color: rgba(255,255,255,.8); }

  .show-pw-row { display:none; }

  /* ── USER BAR ── */
  .user-bar {
    display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.85);font-size:13px;
  }
  .user-bar .user-name { font-weight:600; }
  .user-bar .btn-sair {
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
    border-radius:6px;padding:5px 12px;font-size:12px;color:rgba(255,255,255,.8);
    cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif;font-weight:600;
  }
  .user-bar .btn-sair:hover { background:rgba(255,255,255,.22); }

  /* ── PROPOSTAS MODAL ── */
  #propostas-modal {
    display:none;position:fixed;inset:0;z-index:5000;
    background:rgba(10,22,40,.7);backdrop-filter:blur(4px);
    align-items:center;justify-content:center;
  }
  #propostas-modal.open { display:flex; }
  .propostas-box {
    background:#fff;border-radius:20px;width:min(640px,96vw);max-height:85vh;
    display:flex;flex-direction:column;box-shadow:0 32px 80px rgba(0,0,0,.35);
    animation:modalIn .3s cubic-bezier(.34,1.56,.64,1);
  }
  .propostas-header {
    background:linear-gradient(135deg,var(--navy),var(--navy2));
    border-radius:20px 20px 0 0;padding:20px 24px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .propostas-header h3 { color:#fff;font-size:17px;font-weight:800; }
  .propostas-close-btn {
    background:rgba(255,255,255,.15);border:none;border-radius:50%;
    width:34px;height:34px;font-size:16px;cursor:pointer;color:#fff;
    display:flex;align-items:center;justify-content:center;
  }
  .propostas-search {
    padding:16px 20px;border-bottom:1px solid var(--gray-100);
  }
  .propostas-search input {
    width:100%;padding:10px 14px;border:1.5px solid var(--gray-200);
    border-radius:var(--radius-sm);font-size:13px;outline:none;
    font-family:'DM Sans',sans-serif;
  }
  .propostas-search input:focus { border-color:var(--blue-light); }
  .propostas-list { overflow-y:auto;flex:1;padding:16px 20px; }
  .proposta-card {
    border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);
    padding:14px 16px;margin-bottom:10px;background:#fff;
    transition:border-color .2s,box-shadow .2s;
  }
  .proposta-card:hover { border-color:var(--blue-light);box-shadow:var(--shadow-sm); }
  .proposta-card-name { font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:4px; }
  .proposta-card-dates { font-size:11px;color:var(--gray-400);margin-bottom:10px; }
  .proposta-card-btns { display:flex;gap:8px; }
  .btn-load { background:var(--blue);color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif; }
  .btn-load:hover { background:#1747c4; }
  .btn-del { background:#FEF2F2;color:var(--red);border:1.5px solid #FECACA;border-radius:6px;padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif; }
  .btn-del:hover { background:#FEE2E2; }
  .propostas-footer { padding:12px 20px;border-top:1px solid var(--gray-100);font-size:12px;color:var(--gray-400);text-align:center; }
  .propostas-filterbar {
    padding:10px 20px;border-bottom:1px solid var(--gray-100);
    display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
    background:#FAFAFA;
  }
  .propostas-filtros { display:flex;gap:5px;flex-wrap:wrap; }
  .propostas-filtros button {
    padding:4px 11px;font-size:11px;font-weight:700;border-radius:20px;cursor:pointer;
    border:1.5px solid var(--gray-200);background:transparent;color:var(--gray-500);
    font-family:'DM Sans',sans-serif;transition:all .15s;
  }
  .propostas-filtros button:hover { border-color:var(--blue-light);color:var(--blue); }
  .propostas-ordem select {
    padding:4px 8px;font-size:11px;border:1.5px solid var(--gray-200);border-radius:8px;
    font-family:'DM Sans',sans-serif;color:var(--gray-600);background:#fff;cursor:pointer;
  }
  .proposta-card-btns { display:flex;gap:6px;flex-wrap:wrap; }

  /* ── SAVE BUTTON ── */
  #btn-salvar-proposta {
    background:linear-gradient(135deg,#065F46,#059669);color:#fff;border:none;
    border-radius:var(--radius-sm);padding:10px 20px;font-size:13px;font-weight:700;
    cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s;
    font-family:'DM Sans',sans-serif;
  }
  #btn-salvar-proposta:hover { transform:translateY(-1px);box-shadow:0 6px 20px rgba(5,150,105,.35); }
  #btn-salvar-proposta:disabled { opacity:.6;cursor:not-allowed;transform:none; }

  /* ── TOAST NOTIFICATION ── */
  #toast-notif {
    position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);
    background:var(--navy);color:#fff;padding:12px 24px;border-radius:50px;
    font-size:13px;font-weight:600;z-index:9998;
    transition:transform .4s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;
    pointer-events:none;
  }
  #toast-notif.show { transform:translateX(-50%) translateY(0); }
  #toast-notif.ok   { background:#059669; }
  #toast-notif.err  { background:#DC2626; }
  #toast-notif.warn { background:#D97706; }

/* ─── Lâmpada de Distribuição ───────────────────────────── */
.bulb-btn {
  background: none; border: none; cursor: pointer;
  padding: 4px; border-radius: 8px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .2s; position: relative;
}
.bulb-btn:hover { background: rgba(0,0,0,.05); transform: scale(1.1); }
.bulb-btn.bulb-balanced svg { stroke: #9CA3AF; opacity: .4; }
.bulb-btn.bulb-deficit  svg { stroke: #F59E0B; filter: drop-shadow(0 0 4px rgba(245,158,11,.4)); }
.bulb-btn.bulb-surplus  svg { stroke: #3B82F6; filter: drop-shadow(0 0 4px rgba(59,130,246,.4)); }
@keyframes bulbPulse { 0%,100%{opacity:1} 50%{opacity:.55} }
.bulb-btn.bulb-deficit svg, .bulb-btn.bulb-surplus svg { animation: bulbPulse 2s ease-in-out infinite; }
@media print { .bulb-btn { display:none !important; } }

/* ─── Popup Distribuição ────────────────────────────────── */
.dist-popup {
  position: fixed;
  z-index: 99999;
  background: #fff; border: 1.5px solid #E2E8F0;
  border-radius: 14px; padding: 0; width: 290px;
  box-shadow: 0 12px 40px rgba(10,22,40,.18);
  font-size: 12px; color: #1E293B; line-height: 1.6;
  animation: fadeIn .15s ease; overflow: hidden;
}
.dist-popup-header {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px 10px; border-bottom: 1px solid #F1F5F9;
  font-weight: 800; font-size: 13px; color: #0A1628;
}
.dist-popup-close {
  margin-left: auto; background: none; border: none;
  cursor: pointer; color: #94A3B8; padding: 2px;
  display: flex; align-items: center; border-radius: 4px;
  transition: color .15s;
}
.dist-popup-close:hover { color: #EF4444; }
.dist-status {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 14px; font-size: 12px; font-weight: 700;
}
.dist-status.deficit { background: #FFFBEB; color: #92400E; }
.dist-status.surplus { background: #EFF6FF; color: #1E40AF; }
.dist-status.balanced { background: #F0FDF4; color: #166534; }
.dist-calc { padding: 10px 14px; border-top: 1px solid #F1F5F9; border-bottom: 1px solid #F1F5F9; }
.dist-calc-row { display: flex; justify-content: space-between; font-size: 11px; color: #64748B; padding: 2px 0; }
.dist-calc-row.highlight { color: #D97706; font-weight: 700; }
.dist-calc-row.total { color: #0A1628; font-weight: 700; border-top: 1px dashed #E2E8F0; margin-top: 4px; padding-top: 6px; }
.dist-result {
  display: flex; align-items: center; gap: 6px;
  background: #EFF6FF; border-radius: 8px; padding: 8px 10px;
  margin-top: 8px; font-size: 12px; color: #1E40AF;
}
.dist-result strong { font-size: 14px; font-weight: 800; }
.dist-warn {
  display: flex; align-items: flex-start; gap: 6px;
  background: #FFF7ED; border-radius: 8px; padding: 8px 10px;
  margin-top: 8px; font-size: 11px; color: #C2410C; line-height: 1.5;
}
.dist-actions {
  display: flex; gap: 8px; padding: 10px 14px;
}
.dist-btn-accept {
  flex: 1; background: #1A56DB; color: #fff; border: none;
  border-radius: 8px; padding: 8px; font-size: 12px; font-weight: 700;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  gap: 5px; transition: background .2s;
}
.dist-btn-accept:hover { background: #1340A8; }
.dist-btn-cancel {
  background: #F1F5F9; color: #64748B; border: none;
  border-radius: 8px; padding: 8px 12px; font-size: 12px; font-weight: 700;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  gap: 5px; transition: background .2s;
}
.dist-btn-cancel:hover { background: #E2E8F0; }

/* ─── Help Tip Popover (legacy — keep for compat) ────────── */
.help-btn {
  background: none; border: none; cursor: pointer;
  font-size: 14px; padding: 0 0 0 6px; opacity: .55;
  transition: opacity .2s; line-height: 1; flex-shrink: 0;
}
.help-btn:hover { opacity: 1; }
.help-popover {
  position: absolute; right: 0; top: 36px; z-index: 999;
  background: #fff; border: 1.5px solid #1A56DB;
  border-radius: 12px; padding: 14px 16px; width: 260px;
  box-shadow: 0 8px 32px rgba(10,22,40,.18);
  font-size: 12px; color: #1E293B; line-height: 1.6;
  animation: fadeIn .15s ease;
}
.help-popover .hp-title { font-weight: 700; color: #0A1628; margin-bottom: 6px; font-size: 13px; }
.help-popover .hp-rule  { color: #64748B; margin-bottom: 8px; font-size: 11px; }
.help-popover .hp-sugg  { background: #EFF6FF; border-radius: 8px; padding: 8px 10px;
  margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; }
.help-popover .hp-sugg-val { font-weight: 700; color: #1A56DB; font-size: 14px; }
.help-popover .hp-apply {
  width: 100%; background: #1A56DB; color: #fff; border: none;
  border-radius: 8px; padding: 8px; font-size: 12px; font-weight: 700;
  cursor: pointer; transition: background .2s;
}
.help-popover .hp-apply:hover { background: #1340A8; }
.help-popover .hp-close {
  position: absolute; top: 8px; right: 10px; background: none; border: none;
  font-size: 16px; cursor: pointer; color: #94A3B8; line-height: 1;
}
.help-popover .hp-warn { color: #D97706; font-size: 11px; margin-top: 4px; }
/* ─── Fiador alert ─────────────────────────────────────── */
#fiador-alert {
  display: none; margin-top: 8px; padding: 10px 12px;
  background: #FFF1F2; border: 1.5px solid #FECACA;
  border-radius: 8px; font-size: 12px; color: #BE123C;
  line-height: 1.6; font-weight: 600;
}
#fiador-alert.show { display: block; }
.fiador-required { border-color: #EF4444 !important; box-shadow: 0 0 0 2px rgba(239,68,68,.2) !important; }

/* ─── Share button & aceite badge ────────────────────────── */
.btn-share {
  background: #EFF6FF; color: #1A56DB;
  border: 1.5px solid #BFDBFE; border-radius: 6px;
  padding: 7px 14px; font-size: 12px; font-weight: 700;
  cursor: pointer; transition: all .2s; font-family: 'DM Sans', sans-serif;
}
.btn-share:hover { background: #DBEAFE; }
.btn-share.revoke { background:#FEF2F2;color:var(--red);border-color:#FECACA; }
.btn-share.revoke:hover { background:#FEE2E2; }
.aceite-badge {
  display: inline-flex; align-items: center; gap: 4px;
  background: #ECFDF5; color: #059669; border: 1.5px solid #A7F3D0;
  border-radius: 20px; padding: 3px 10px; font-size: 11px; font-weight: 700;
  margin-top: 6px;
}
.pendente-badge {
  display: inline-flex; align-items: center; gap: 4px;
  background: #FFFBEB; color: #D97706; border: 1.5px solid #FDE68A;
  border-radius: 20px; padding: 3px 10px; font-size: 11px; font-weight: 700;
  margin-top: 6px;
}

/* ─── Share modal ────────────────────────────────────────── */
#share-modal {
  display: none; position: fixed; inset: 0; z-index: 6000;
  background: rgba(10,22,40,.75); backdrop-filter: blur(6px);
  align-items: center; justify-content: center;
}
#share-modal.open { display: flex; }
.share-box {
  background: #fff; border-radius: 20px; width: min(480px, 95vw);
  box-shadow: 0 32px 80px rgba(0,0,0,.35);
  animation: modalIn .3s cubic-bezier(.34,1.56,.64,1);
  overflow: hidden;
}
.share-header {
  background: linear-gradient(135deg,#1340A8,#1A56DB);
  padding: 22px 24px; display: flex; align-items: center;
  justify-content: space-between;
}
.share-header h3 { color:#fff; font-size:18px; font-weight:800; margin:0; }
.share-header p  { color:rgba(255,255,255,.7); font-size:12px; margin:3px 0 0; }
.share-close { background:rgba(255,255,255,.15); border:none; border-radius:50%;
  width:34px; height:34px; font-size:16px; cursor:pointer; color:#fff;
  display:flex; align-items:center; justify-content:center; }
.share-body { padding: 24px; }
.share-link-box {
  display: flex; gap: 8px; margin-bottom: 16px;
}
.share-link-box input {
  flex: 1; padding: 10px 12px; border: 1.5px solid #E2E8F0;
  border-radius: 8px; font-size: 12px; color: #1E293B;
  background: #F8FAFC; font-family: 'DM Mono', monospace;
  outline: none;
}
.share-copy-btn {
  background: #1A56DB; color: #fff; border: none; border-radius: 8px;
  padding: 10px 16px; font-size: 12px; font-weight: 700; cursor: pointer;
  white-space: nowrap; transition: background .2s;
}
.share-copy-btn:hover { background: #1340A8; }
.share-aceite-status {
  padding: 12px 16px; border-radius: 10px; font-size: 13px;
  line-height: 1.6; margin-bottom: 16px;
}
.share-aceite-status.ok  { background:#ECFDF5; color:#059669; border:1.5px solid #A7F3D0; }
.share-aceite-status.wait{ background:#FFFBEB; color:#D97706; border:1.5px solid #FDE68A; }
.share-revoke-btn {
  width:100%; background:#FEF2F2; color:var(--red); border:1.5px solid #FECACA;
  border-radius:8px; padding:10px; font-size:12px; font-weight:700;
  cursor:pointer; transition:all .2s;
}
.share-revoke-btn:hover { background:#FEE2E2; }

/* ─── Página pública de visualização ────────────────────── */
#share-view-page {
  display: none; position: fixed; inset: 0; z-index: 9000;
  background: #F1F5F9; overflow-y: auto;
}
#share-view-page.active { display: block; }
.sv-container {
  max-width: 720px; margin: 0 auto; padding: 24px 16px 60px;
}
.sv-header {
  background: linear-gradient(135deg,#0A1628,#1A56DB);
  border-radius: 16px; padding: 28px 32px; margin-bottom: 20px;
  display: flex; justify-content: space-between; align-items: flex-end;
}
.sv-logo { color:#fff; font-size:22px; font-weight:900; letter-spacing:-.5px; }
.sv-logo-sub { color:rgba(255,255,255,.6); font-size:11px; margin-top:2px; }
.sv-client-name { color:#fff; font-size:18px; font-weight:800; text-align:right; }
.sv-client-sub  { color:rgba(255,255,255,.6); font-size:12px; text-align:right; margin-top:3px; }
.sv-card {
  background:#fff; border-radius:14px; padding:22px 24px;
  box-shadow:0 2px 12px rgba(10,22,40,.07); margin-bottom:16px;
}
.sv-card h3 { font-size:14px; font-weight:700; color:#0A1628; margin:0 0 16px; }
.sv-kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sv-kpi { background:#F8FAFC; border-radius:10px; padding:14px 16px; }
.sv-kpi-label { font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:.5px; color:#94A3B8; margin-bottom:4px; }
.sv-kpi-value { font-size:20px; font-weight:800; color:#0A1628; font-family:'DM Mono',monospace; }
.sv-row { display:flex; justify-content:space-between; align-items:center;
  padding:8px 0; border-bottom:1px solid #F1F5F9; font-size:13px; }
.sv-row:last-child { border-bottom:none; }
.sv-row-label { color:#64748B; }
.sv-row-val { font-weight:700; color:#1E293B; font-family:'DM Mono',monospace; }
.sv-accept-section { text-align:center; padding:32px 24px; }
.sv-accept-btn {
  background:linear-gradient(135deg,#059669,#10B981);
  color:#fff; border:none; border-radius:14px;
  padding:18px 48px; font-size:18px; font-weight:800;
  cursor:pointer; transition:all .2s; letter-spacing:-.3px;
  box-shadow:0 8px 24px rgba(5,150,105,.35);
}
.sv-accept-btn:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(5,150,105,.45); }
.sv-accept-btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.sv-accepted-block {
  background:#ECFDF5; border:2px solid #A7F3D0; border-radius:14px;
  padding:28px; text-align:center;
}
.sv-accepted-icon { font-size:48px; margin-bottom:12px; }
.sv-accepted-title { font-size:20px; font-weight:800; color:#059669; margin-bottom:8px; }
.sv-accepted-sub   { font-size:13px; color:#64748B; line-height:1.6; }
.sv-incc-note { background:#FFF7ED; border:1.5px solid #FED7AA; border-radius:10px;
  padding:12px 16px; font-size:12px; color:#92400E; line-height:1.6; margin-bottom:16px; }

/* ═══════════════════════════════════════════════════════════════
   MOBILE DRAWER — Hamburger Menu (Bloco 1)
   ═══════════════════════════════════════════════════════════════ */

/* Hamburger button — hidden on desktop */
#mobile-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 10px;
  cursor: pointer;
  color: #fff;
  font-size: 22px;
  transition: all 0.2s;
  flex-shrink: 0;
}
#mobile-menu-btn:hover { background: rgba(255,255,255,0.2); }

/* Drawer overlay */
#drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  z-index: 9998;
  opacity: 0;
  transition: opacity 0.3s ease;
}
#drawer-overlay.active {
  display: block;
  opacity: 1;
}

/* Drawer sidebar */
#mobile-drawer {
  position: fixed;
  top: 0;
  right: -320px;
  width: 300px;
  max-width: 85vw;
  height: 100vh;
  background: linear-gradient(180deg, #0A1628 0%, #112240 100%);
  z-index: 9999;
  transition: right 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
  box-shadow: -10px 0 40px rgba(0,0,0,0.4);
}
#mobile-drawer.active {
  right: 0;
}

/* Drawer header */
.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.drawer-user-name {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.3px;
}
.drawer-close {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.1);
  border: none;
  border-radius: 8px;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.drawer-close:hover { background: rgba(255,255,255,0.2); }

/* Drawer menu items */
.drawer-menu {
  padding: 12px 0;
}
.drawer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  color: rgba(255,255,255,0.85);
  font-size: 14px;
  font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  transition: all 0.2s;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
}
.drawer-item:hover {
  background: rgba(255,255,255,0.08);
  color: #fff;
}
.drawer-item svg, .drawer-item .drawer-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  opacity: 0.7;
}
.drawer-item:hover svg, .drawer-item:hover .drawer-icon { opacity: 1; }
.drawer-divider {
  height: 1px;
  background: rgba(255,255,255,0.08);
  margin: 8px 20px;
}
.drawer-item-danger {
  color: #FCA5A5;
}
.drawer-item-danger:hover {
  background: rgba(220,38,38,0.15);
  color: #FCA5A5;
}

/* ── IA Badge: escondido (lógica JS preservada) ── */
.ai-badge { display: none !important; }

/* ═══ MOBILE MEDIA QUERY ═══ */
@media (max-width: 768px) {
  /* Show hamburger */
  #mobile-menu-btn { display: flex; }

  /* Hide elements that move to drawer */
  .user-bar { display: none !important; }
  #btn-nova-proposta { display: none !important; }
  #btn-propostas { display: none !important; }

  /* Compact header — single row, no wrapping */
  header {
    padding: 10px 12px !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
  }
  header > div:last-child {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0 !important;
  }
  header .logo {
    flex: 1;
    min-width: 0;
  }
  header .logo h1 { font-size: 16px !important; }
  header .logo p,
  header .logo .dev-credit { display: none !important; }
  .logo-icon {
    width: 32px !important;
    height: 32px !important;
  }

  /* Action buttons — icon-only on mobile, very compact */
  #btn-salvar-proposta {
    padding: 7px 10px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  #btn-salvar-proposta svg { width: 13px !important; height: 13px !important; }
  /* Hide text labels inside buttons on small screens */
  #btn-salvar-proposta {
    font-size: 0 !important;
    gap: 0 !important;
    padding: 8px !important;
    width: 36px !important;
    height: 36px !important;
    justify-content: center !important;
    border-radius: 8px !important;
  }
  #btn-salvar-proposta svg { font-size: initial; width: 16px !important; height: 16px !important; }

  #btn-crm {
    font-size: 0 !important;
    gap: 0 !important;
    padding: 8px !important;
    width: 36px !important;
    height: 36px !important;
    justify-content: center !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
  }
  #btn-crm svg { font-size: initial; width: 16px !important; height: 16px !important; }
}

/* ═══ WIZARD BUTTONS FIX — Contraste garantido ═══ */
/* Sobrescreve as regras anteriores para funcionar em qualquer fundo */
.btn-wizard-prev {
  background: rgba(10,22,40,0.85) !important;
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,0.25) !important;
}
.btn-wizard-prev:hover {
  background: rgba(10,22,40,0.95) !important;
  border-color: rgba(255,255,255,0.4) !important;
}
.btn-wizard-next {
  background: var(--navy) !important;
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,0.25) !important;
}
.btn-wizard-next:hover {
  background: #1A2744 !important;
  border-color: var(--blue) !important;
}

/* ══════════════════════════════════════════════════════════════
   UTILITÁRIOS DE MODAL — extraídos de index.html (Fase 3)
   ══════════════════════════════════════════════════════════════ */

/* Overlay genérico de modal: uso exclusivo via display:flex quando ativo */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .55);
  backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.modal-overlay.active { display: flex; }

/* Caixa interna branca padrão */
.modal-box {
  background: #fff;
  border-radius: 20px;
  padding: 36px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
}
