:root{
    --bg:#F7F7FB;
    --surface:#FFFFFF;
    --surface-alt:#F2F0FA;
    --ink:#1F1F2E;
    --ink-soft:#6B6B80;
    --ink-faint:#9997AC;
    --line:#E5E3EF;
    --brand:#4F2D9B;
    --brand-dark:#24104A;
    --brand-light:#6E46C5;
    --brand-soft:#EFE9FC;
    --accent:#A78BFA;
    --accent-dark:#6B46C1;
    --accent-soft:#F1EBFE;
    --success:#7ACB5A;
    --success-hover:#66B84B;
    --success-dark:#5FA843;
    --success-text:#3F7A31;
    --success-soft:#E9F7E3;
    --danger:#E5484D;
    --danger-text:#C93A3F;
    --danger-soft:#FCEAEA;
    --teal:#4B3A82;
    --teal-soft:#EDE9F7;
    --radius:14px;
    --radius-lg:20px;
    --shadow-sm:0 1px 2px rgba(36,16,74,0.05), 0 1px 1px rgba(36,16,74,0.03);
    --shadow-md:0 8px 24px rgba(36,16,74,0.08);
    --shadow-lift:0 6px 16px rgba(79,45,155,0.16);
    --font-display:'Inter',sans-serif;
    --font-body:'Inter',sans-serif;
    --font-mono:'Inter',sans-serif;
    --font-login:'Inter',sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    font-family:var(--font-body);
    font-weight:400;
    background:var(--bg);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  button{font-family:inherit;cursor:pointer;}
  ::selection{background:var(--accent-soft);}

  .app{display:flex;min-height:100vh;}

  /* Sidebar */
  .sidebar{
    width:224px;flex-shrink:0;
    background:linear-gradient(180deg, #24104A 0%, #3F237E 100%);
    color:#fff;
    display:flex;flex-direction:column;padding:24px 16px;
    position:sticky;top:0;height:100vh;
  }
  .logo{display:flex;align-items:center;gap:10px;padding:0 8px 26px 8px;}
  .logo svg{width:30px;height:30px;flex-shrink:0;}
  .logo-text{font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:0.01em;}
  .logo-sub{font-size:0.6rem;color:#C4B5F5;letter-spacing:0.01em;line-height:1.25;margin-top:2px;max-width:130px;}

  .nav{display:flex;flex-direction:column;gap:4px;margin-top:6px;}
  .nav-item{
    display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:10px;
    color:#D6CCEF;text-decoration:none;font-size:0.88rem;font-weight:500;border:none;background:none;
    text-align:left;width:100%;transition:background .15s ease,color .15s ease;
  }
  .nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:0.85;}
  .nav-item:hover{background:rgba(255,255,255,0.08);color:#fff;}
  .nav-item.active{background:rgba(167,139,250,0.28);color:#fff;}
  .nav-item.active svg{opacity:1;}

  .sidebar-foot{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,0.12);}
  .user-box{display:flex;flex-direction:column;gap:6px;}
  .user-box label{font-size:0.62rem;color:#B7A9DE;letter-spacing:0.1em;text-transform:uppercase;}
  .user-select{
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.16);color:#fff;
    border-radius:9px;padding:7px 8px;font-size:0.82rem;font-family:inherit;
  }
  .user-select option{color:#16212B;}
  .reset-link{font-size:0.68rem;color:#B7A9DE;background:none;border:none;padding:6px 0 0 0;text-align:left;text-decoration:underline;}

  /* Main */
  .main{flex:1;padding:32px 40px 60px 40px;max-width:1220px;}
  .topline{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:10px;}
  h1{font-family:var(--font-display);font-weight:700;font-size:1.7rem;margin:0;letter-spacing:-0.01em;}
  .subtitle{color:var(--ink-soft);font-size:0.88rem;margin-top:4px;font-weight:400;}
  .btn{
    display:inline-flex;align-items:center;gap:7px;background:var(--brand);color:#fff;border:none;
    padding:10px 17px;border-radius:10px;font-size:0.86rem;font-weight:600;white-space:nowrap;
    transition:background .15s ease, box-shadow .15s ease, transform .15s ease;
  }
  .btn:hover{background:var(--brand-light);box-shadow:var(--shadow-lift);transform:translateY(-1px);}
  .btn.gold{background:var(--success);color:var(--brand-dark);}
  .btn.gold:hover{background:var(--success-hover);color:var(--brand-dark);box-shadow:0 6px 16px rgba(122,203,90,0.35);}
  .btn.ghost{background:var(--surface);color:var(--brand);border:1px solid var(--line);}
  .btn.ghost:hover{background:var(--surface-alt);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
  .btn.small{padding:7px 12px;font-size:0.78rem;}
  .btn.danger-o{background:var(--surface);color:var(--danger-text);border:1px solid var(--danger-soft);}
  .btn.danger-o:hover{background:var(--danger-soft);}
  .btn:disabled{opacity:0.55;cursor:not-allowed;transform:none;box-shadow:none;}

  /* Flow line signature */
  .flowline{height:3px;border-radius:3px;margin-bottom:26px;background:linear-gradient(90deg,var(--brand) 0%,var(--accent) 50%,var(--success) 100%);background-size:200% 100%;animation:flow 7s linear infinite;}
  @keyframes flow{0%{background-position:0% 0%;}100%{background-position:200% 0%;}}
  @media (prefers-reduced-motion: reduce){.flowline{animation:none;}}

  /* Stat cards */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;}
  .stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease, transform .15s ease;}
  .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
  .stat-label{font-size:0.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;font-weight:600;}
  .stat-value{font-family:var(--font-mono);font-weight:700;font-size:1.9rem;color:var(--brand);letter-spacing:-0.01em;}
  .stat-value.gold{color:var(--accent-dark);}
  .stat-value.green{color:var(--success-text);}

  /* Funnel viz */
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:22px;box-shadow:var(--shadow-sm);}
  .card h2{font-family:var(--font-display);font-weight:600;font-size:1.12rem;margin:0 0 18px 0;letter-spacing:-0.005em;}
  .funnel-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
  .funnel-label{width:150px;font-size:0.82rem;color:var(--ink-soft);flex-shrink:0;}
  .funnel-bar-track{flex:1;background:var(--surface-alt);border-radius:8px;height:26px;overflow:hidden;}
  .funnel-bar{height:100%;border-radius:8px;display:flex;align-items:center;padding-left:10px;font-family:var(--font-mono);font-size:0.72rem;color:#fff;white-space:nowrap;transition:width 0.5s ease;}
  .funnel-value{width:110px;text-align:right;font-family:var(--font-mono);font-size:0.8rem;color:var(--ink-soft);flex-shrink:0;}

  /* Table */
  table{width:100%;border-collapse:collapse;}
  th{text-align:left;font-size:0.68rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-faint);padding:0 14px 12px 14px;border-bottom:1px solid var(--line);font-weight:600;}
  td{padding:16px 14px;border-bottom:1px solid var(--line);font-size:0.86rem;vertical-align:middle;}
  tr:last-child td{border-bottom:none;}
  tr.row-hover{transition:background .12s ease;}
  tr.row-hover:hover{background:var(--surface-alt);cursor:pointer;}
  .cell-main{font-weight:600;}
  .cell-sub{color:var(--ink-soft);font-size:0.78rem;}
  .cell-money{font-family:var(--font-mono);font-weight:700;}

  .badge{display:inline-block;padding:4px 11px;border-radius:20px;font-size:0.72rem;font-weight:600;white-space:nowrap;}
  .badge.novo{background:var(--brand-soft);color:var(--brand);}
  .badge.contato{background:var(--teal-soft);color:var(--teal);}
  .badge.diagnostico{background:#E3EAF2;color:#213D63;}
  .badge.proposta{background:var(--accent-soft);color:var(--accent-dark);}
  .badge.negociacao{background:var(--teal-soft);color:var(--teal);}
  .badge.ganho{background:var(--success-soft);color:var(--success-text);}
  .badge.perdido{background:var(--danger-soft);color:var(--danger-text);}
  .badge.rascunho{background:var(--surface-alt);color:var(--ink-soft);}
  .badge.enviada{background:var(--accent-soft);color:var(--accent-dark);}
  .badge.aceita{background:var(--success-soft);color:var(--success-text);}
  .badge.recusada{background:var(--danger-soft);color:var(--danger-text);}
  .badge.score-quente{background:var(--success-soft);color:var(--success-text);}
  .badge.score-morno{background:#FCF0D2;color:#9A7B1E;}
  .badge.score-frio{background:var(--danger-soft);color:var(--danger-text);}

  /* Meta / Pipeline ponderado */
  .goal-bar-track{background:var(--surface-alt);border-radius:9px;height:24px;overflow:hidden;margin:4px 0 16px;}
  .goal-bar{height:100%;background:var(--accent);display:flex;align-items:center;padding-left:10px;color:#fff;font-family:var(--font-mono);font-size:0.74rem;font-weight:600;white-space:nowrap;transition:width 0.5s ease;}
  .goal-stats{display:flex;gap:28px;flex-wrap:wrap;}
  .goal-stat{display:flex;flex-direction:column;gap:4px;}
  .goal-stat .label{font-size:0.7rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.05em;font-weight:600;}
  .goal-stat .value{font-family:var(--font-mono);font-weight:700;font-size:1.15rem;color:var(--ink);}
  .goal-stat .value.green{color:var(--success-text);}
  .goal-stat .value.gold{color:var(--accent-dark);}

  /* Lead score box */
  .score-box{background:var(--surface-alt);border-radius:12px;padding:14px 16px;margin-top:8px;}
  .score-box-title{font-size:0.78rem;font-weight:700;color:var(--brand);margin-bottom:8px;}
  .score-preview{font-size:0.82rem;font-weight:600;margin-top:4px;color:var(--ink);}

  /* Executive dashboard charts */
  .chart-block{margin-bottom:22px;}
  .chart-block:last-child{margin-bottom:0;}
  .chart-title{font-size:0.78rem;color:var(--ink-soft);font-weight:600;margin-bottom:8px;}

  .toolbar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:center;}
  .toolbar input[type=text], .toolbar select, select.field, input.field, textarea.field{
    border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:0.84rem;font-family:inherit;background:var(--surface);color:var(--ink);
    transition:border-color .15s ease;
  }
  .toolbar input[type=text]:focus, .toolbar select:focus, select.field:focus, input.field:focus, textarea.field:focus{
    outline:none;border-color:var(--brand-light);
  }
  .toolbar input[type=text]{flex:1;min-width:180px;}
  .spacer{flex:1;}

  /* Kanban */
  .board{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px;}
  .column{background:var(--surface-alt);border-radius:var(--radius);min-width:250px;max-width:250px;flex-shrink:0;padding:14px;display:flex;flex-direction:column;max-height:calc(100vh - 230px);}
  .column-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 2px;}
  .column-title{font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-soft);}
  .column-count{font-family:var(--font-mono);font-size:0.72rem;background:var(--surface);border-radius:12px;padding:2px 9px;color:var(--ink-soft);box-shadow:var(--shadow-sm);}
  .column-sum{font-family:var(--font-mono);font-size:0.7rem;color:var(--ink-faint);margin-bottom:8px;padding:0 2px;}
  .column-cards{overflow-y:auto;display:flex;flex-direction:column;gap:9px;flex:1;min-height:40px;}
  .column-cards.drag-over{background:rgba(79,45,155,0.06);border-radius:10px;}
  .kcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 13px;cursor:grab;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease, transform .15s ease;}
  .kcard:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
  .kcard:active{cursor:grabbing;}
  .kcard-name{font-weight:600;font-size:0.83rem;margin-bottom:2px;}
  .kcard-company{font-size:0.74rem;color:var(--ink-soft);margin-bottom:6px;}
  .kcard-foot{display:flex;justify-content:space-between;align-items:center;}
  .kcard-value{font-family:var(--font-mono);font-size:0.78rem;font-weight:700;color:var(--brand);}
  .kcard-owner{font-size:0.68rem;color:var(--ink-faint);}

  /* Modal */
  .overlay{position:fixed;inset:0;background:rgba(36,16,74,0.38);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50;}
  .modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:28px 30px;box-shadow:0 24px 60px rgba(36,16,74,0.28);}
  .modal h3{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin:0 0 18px 0;letter-spacing:-0.01em;}
  .form-row{margin-bottom:14px;display:flex;flex-direction:column;gap:5px;}
  .form-row label{font-size:0.74rem;color:var(--ink-soft);font-weight:600;}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}
  .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;}
  .empty{text-align:center;padding:40px 20px;color:var(--ink-soft);}
  .empty-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--ink);margin-bottom:6px;}
  .loading{padding:60px;text-align:center;color:var(--ink-soft);}
  .toast{position:fixed;bottom:22px;right:22px;background:var(--brand-dark);color:#fff;padding:12px 20px;border-radius:12px;font-size:0.84rem;z-index:100;box-shadow:0 12px 30px rgba(36,16,74,0.3);}
  .notice{font-size:0.72rem;color:var(--ink-faint);margin-bottom:16px;}

  .pricing-box{background:var(--surface-alt);border-radius:12px;padding:16px 18px;margin:6px 0 16px 0;}
  .pricing-box h4{margin:0 0 10px 0;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-soft);font-weight:700;}
  .pricing-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px;}
  .pricing-preview{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
  .pricing-line{display:flex;justify-content:space-between;font-size:0.8rem;color:var(--ink-soft);margin-bottom:5px;}
  .pricing-line.total{font-size:1rem;font-weight:800;color:var(--brand);border-top:1px solid var(--line);padding-top:8px;margin-top:6px;}
  .pricing-line span:last-child{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

  .stage-section{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden;}
  .stage-section summary{list-style:none;cursor:pointer;padding:11px 15px;background:var(--surface-alt);font-weight:700;font-size:0.82rem;display:flex;align-items:center;justify-content:space-between;}
  .stage-section summary::-webkit-details-marker{display:none;}
  .stage-section summary::after{content:'▾';color:var(--ink-faint);font-size:0.7rem;transition:transform 0.15s;}
  .stage-section[open] summary::after{transform:rotate(180deg);}
  .stage-section.current summary{background:var(--brand-soft);color:var(--brand);}
  .stage-section .section-body{padding:13px 15px 4px 15px;}
  .stage-locked{padding:13px 15px;color:var(--ink-faint);font-size:0.78rem;font-style:italic;}
  .badge.atrasado{background:var(--danger-soft);color:var(--danger-text);font-size:0.66rem;margin-left:6px;}

  .crono-table{width:100%;border-collapse:collapse;margin-bottom:8px;}
  .crono-table th{font-size:0.65rem;text-transform:uppercase;color:var(--ink-faint);text-align:left;padding:0 6px 4px 0;}
  .crono-table td{padding:3px 6px 3px 0;vertical-align:top;}
  .crono-table textarea, .crono-table input{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:0.78rem;font-family:inherit;}
  .crono-table .rm-row{background:none;border:none;color:var(--danger);cursor:pointer;font-size:0.9rem;padding:4px;}

  @media (max-width:820px){
    .app{flex-direction:column;}
    .sidebar{width:100%;height:auto;position:relative;flex-direction:row;align-items:center;padding:12px 14px;overflow-x:auto;}
    .logo{padding:0 12px 0 0;}
    .nav{flex-direction:row;margin-top:0;}
    .sidebar-foot{margin-top:0;padding-top:0;border-top:none;margin-left:auto;padding-left:12px;}
    .main{padding:20px 16px 60px 16px;}
    .stats{grid-template-columns:1fr 1fr;}
    .form-grid{grid-template-columns:1fr;}
  }

  /* ---------- LOGIN / AUTENTICAÇÃO ---------- */
  .auth-wrap{
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(180deg, #24104A 0%, #3F237E 100%);
    font-family:var(--font-login);
    padding:20px;
  }
  .auth-card{
    background:var(--surface); border-radius:var(--radius-lg); padding:44px 40px; width:100%; max-width:380px;
    box-shadow:0 24px 60px rgba(36,16,74,0.35);
  }
  .auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px;}
  .auth-logo img{width:28px;height:auto;}
  .auth-logo span{font-family:var(--font-login);font-weight:700;font-size:1.3rem;color:var(--brand);}
  .auth-card h1{font-family:var(--font-login);font-size:1.25rem;font-weight:700;margin:0 0 6px;color:var(--ink);}
  .auth-subtitle{font-family:var(--font-login);font-size:0.85rem;color:var(--ink-soft);margin-bottom:26px;}
  .auth-field{margin-bottom:16px;}
  .auth-field label{display:block;font-family:var(--font-login);font-size:0.78rem;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
  .auth-field input{
    width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;
    font-family:var(--font-login);font-size:0.92rem;color:var(--ink);outline:none;
    transition:border-color .15s ease;
  }
  .auth-field input:focus{border-color:var(--brand-light);}
  .auth-btn{
    width:100%;padding:12px;border:none;border-radius:10px;background:var(--brand);color:#fff;
    font-family:var(--font-login);font-size:0.95rem;font-weight:700;cursor:pointer;margin-top:4px;
    transition:background .15s ease, box-shadow .15s ease, transform .15s ease;
  }
  .auth-btn:hover{background:var(--brand-light);box-shadow:var(--shadow-lift);transform:translateY(-1px);}
  .auth-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;box-shadow:none;}
  .auth-link{
    display:block;text-align:center;margin-top:16px;font-family:var(--font-login);font-size:0.82rem;
    color:var(--brand);font-weight:600;cursor:pointer;background:none;border:none;
  }
  .auth-link:hover{text-decoration:underline;}
  .auth-back{display:block;text-align:center;margin-top:14px;font-family:var(--font-login);font-size:0.8rem;color:var(--ink-soft);cursor:pointer;background:none;border:none;}
  .auth-msg{font-family:var(--font-login);font-size:0.82rem;padding:10px 12px;border-radius:10px;margin-bottom:16px;display:none;}
  .auth-msg.error{background:var(--danger-soft);color:var(--danger-text);display:block;}
  .auth-msg.success{background:var(--success-soft);color:var(--success-text);display:block;}
  .user-chip{display:flex;flex-direction:column;gap:2px;}
  .user-chip .name{font-weight:700;font-size:0.85rem;color:#fff;}
  .user-chip .role{font-size:0.7rem;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:.04em;}
