/* =====================================================
   VY.IA.BR — Premium Design System v22
   Editorial Tech + Glass + Motion
   ===================================================== */

/* ---------- Google Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ---------- Design Tokens ---------- */
:root{
  /* Surfaces — off-black warm */
  --vy-bg:        #0B0B0F;
  --vy-bg-2:      #101015;
  --vy-card:      #15151C;
  --vy-surface-2: #1C1C24;
  --vy-surface-3: #232330;
  --vy-border:    #26262F;
  --vy-border-2:  #3A3A48;
  --vy-divider:   rgba(255,255,255,.06);

  /* Glass */
  --vy-glass:     rgba(20,20,28,.62);
  --vy-glass-hi:  rgba(28,28,36,.78);

  /* Text */
  --vy-text:      #F4F4F7;
  --vy-text-2:    #9A9AA8;
  --vy-text-3:    #5C5C68;
  --vy-muted:     #9A9AA8;

  /* Accent — Indigo electric (único) */
  --vy-primary:   #7C5CFF;
  --vy-primary-2: #5B3FE8;
  --vy-accent:    #7C5CFF;
  --vy-accent-soft: rgba(124,92,255,.14);
  --vy-accent-glow: rgba(124,92,255,.32);

  /* Semantic */
  --vy-success:   #4ADE80;
  --vy-success-soft: rgba(74,222,128,.14);
  --vy-danger:    #F87171;
  --vy-danger-soft:  rgba(248,113,113,.14);
  --vy-warn:      #FBBF24;
  --vy-warn-soft: rgba(251,191,36,.14);

  /* Type scale */
  --vy-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --vy-font-display: 'Instrument Serif', Georgia, serif;
  --vy-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Radius */
  --vy-r-xs: 6px;
  --vy-r-sm: 8px;
  --vy-r-md: 12px;
  --vy-r-lg: 16px;
  --vy-r-xl: 22px;
  --vy-r-2xl: 28px;
  --vy-r-pill: 999px;

  /* Shadows */
  --vy-shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --vy-shadow-md: 0 8px 24px rgba(0,0,0,.35);
  --vy-shadow-lg: 0 24px 60px rgba(0,0,0,.5);
  --vy-shadow-glow: 0 0 0 1px rgba(124,92,255,.32), 0 8px 36px rgba(124,92,255,.28);
  --vy-shadow-inner: inset 0 1px 0 rgba(255,255,255,.06);

  /* Motion */
  --vy-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --vy-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --vy-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --vy-dur-fast: 150ms;
  --vy-dur-base: 220ms;
  --vy-dur-slow: 360ms;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color-scheme:dark}
body{
  font-family:var(--vy-font-sans);
  background:var(--vy-bg);
  color:var(--vy-text);
  line-height:1.55;
  font-size:16px;
  letter-spacing:-0.005em;
  min-height:100vh;
  min-height:100dvh;
  background-image:
    radial-gradient(1200px 700px at 10% -10%, rgba(124,92,255,.10), transparent 60%),
    radial-gradient(900px 600px at 110% 10%, rgba(74,222,128,.04), transparent 55%),
    radial-gradient(circle at 50% 120%, rgba(124,92,255,.06), transparent 60%);
  background-attachment:fixed;
}
/* sutil grão tipo papel */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.035 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.55;mix-blend-mode:overlay;
}
body > *{position:relative;z-index:1}

a{color:var(--vy-text);text-decoration:none;transition:color var(--vy-dur-fast) var(--vy-ease-out)}
a:hover{color:var(--vy-primary)}

/* Numbers monoespaçados em métricas */
.vy-num, .vy-mono, .vy-kpi-value, .vy-plan-price, .vy-pix-amount strong, .vy-pairing{
  font-family:var(--vy-font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-0.01em;
}

/* Selection */
::selection{background:var(--vy-accent-glow);color:#fff}

/* Focus visible global */
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--vy-accent-soft), 0 0 0 1px var(--vy-primary);border-radius:var(--vy-r-sm)}

/* Scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2a2a36;border-radius:10px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#3a3a48;background-clip:content-box;border:2px solid transparent}

/* ---------- Layout helpers ---------- */
.vy-container{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.vy-flex{display:flex;align-items:center;gap:.75rem}
.vy-space-between{display:flex;align-items:center;justify-content:space-between}
.vy-grid{display:grid;gap:1rem}

/* ---------- Navbar (glass) ---------- */
.vy-navbar{
  background:var(--vy-glass);
  backdrop-filter:saturate(160%) blur(18px);
  -webkit-backdrop-filter:saturate(160%) blur(18px);
  border-bottom:1px solid var(--vy-divider);
  padding:.85rem 0;
  position:sticky;top:0;z-index:50;
  transition:padding var(--vy-dur-base) var(--vy-ease-out), background var(--vy-dur-base) var(--vy-ease-out);
}
.vy-navbar.scrolled{padding:.6rem 0;background:var(--vy-glass-hi)}
.vy-navbar .vy-brand{
  font-weight:700;font-size:1.05rem;color:var(--vy-text);
  display:flex;align-items:center;gap:.6rem;letter-spacing:-0.01em;
}
.vy-navbar .vy-brand .vy-logo{
  width:30px;height:30px;
  background:linear-gradient(135deg,#9b85ff 0%,var(--vy-primary) 50%,var(--vy-primary-2) 100%);
  border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:800;color:#fff;font-size:.92rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 6px 16px rgba(124,92,255,.45);
}
.vy-nav-links{display:flex;gap:.25rem;align-items:center}
.vy-nav-links a{
  color:var(--vy-text-2);font-size:.92rem;font-weight:500;
  padding:.45rem .8rem;border-radius:var(--vy-r-sm);
  transition:color var(--vy-dur-fast) var(--vy-ease-out), background var(--vy-dur-fast) var(--vy-ease-out);
}
.vy-nav-links a:hover{color:var(--vy-text);background:rgba(255,255,255,.04)}

/* ---------- Buttons ---------- */
.vy-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.7rem 1.2rem;
  border-radius:var(--vy-r-md);
  font-size:.92rem;font-weight:600;letter-spacing:-0.005em;
  cursor:pointer;border:1px solid transparent;
  font-family:inherit;
  transition:transform var(--vy-dur-fast) var(--vy-ease-out),
             background var(--vy-dur-fast) var(--vy-ease-out),
             border-color var(--vy-dur-fast) var(--vy-ease-out),
             box-shadow var(--vy-dur-base) var(--vy-ease-out),
             color var(--vy-dur-fast) var(--vy-ease-out),
             opacity var(--vy-dur-fast);
  text-decoration:none;line-height:1;
  position:relative;
}
.vy-btn:active{transform:scale(.97)}
.vy-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}

.vy-btn-primary{
  background:linear-gradient(180deg, #8a6dff 0%, var(--vy-primary) 60%, var(--vy-primary-2) 100%);
  color:#fff;width:100%;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 18px rgba(124,92,255,.35);
}
.vy-btn-primary:hover:not(:disabled){
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 10px 28px rgba(124,92,255,.5);
  transform:translateY(-1px);
}

.vy-btn-ghost{background:transparent;color:var(--vy-text);border-color:var(--vy-border)}
.vy-btn-ghost:hover{background:rgba(255,255,255,.04);border-color:var(--vy-border-2)}

.vy-btn-block{width:100%}
.vy-btn-sm{padding:.5rem .9rem;font-size:.84rem;border-radius:var(--vy-r-sm)}
.vy-btn-danger{background:linear-gradient(180deg,#fa8e8e,var(--vy-danger));color:#fff;border:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 4px 14px rgba(248,113,113,.35)}
.vy-btn-danger:hover:not(:disabled){filter:brightness(1.08)}

/* ---------- Forms ---------- */
.vy-field{margin-bottom:1.15rem}
.vy-label{
  display:block;font-size:.82rem;color:var(--vy-text-2);
  margin-bottom:.4rem;font-weight:500;letter-spacing:0;
}
.vy-input{
  width:100%;
  padding:.78rem 1rem;
  background:var(--vy-bg-2);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-md);
  color:var(--vy-text);
  font-size:.95rem;font-family:inherit;
  transition:border-color var(--vy-dur-fast) var(--vy-ease-out),
             box-shadow var(--vy-dur-base) var(--vy-ease-out),
             background var(--vy-dur-fast);
}
.vy-input:hover{border-color:var(--vy-border-2)}
.vy-input:focus{
  outline:none;
  border-color:var(--vy-primary);
  box-shadow:0 0 0 4px var(--vy-accent-soft);
  background:var(--vy-bg);
}
.vy-input::placeholder{color:var(--vy-text-3)}
.vy-input.error{border-color:var(--vy-danger);box-shadow:0 0 0 4px var(--vy-danger-soft)}
textarea.vy-input{resize:vertical;min-height:110px;line-height:1.5}
select.vy-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239A9AA8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}

/* ---------- Alerts ---------- */
.vy-alert{
  padding:.85rem 1rem;border-radius:var(--vy-r-md);
  font-size:.9rem;margin-bottom:1rem;display:none;
  border:1px solid transparent;
  animation:vy-fade-in var(--vy-dur-base) var(--vy-ease-out);
}
.vy-alert.show{display:block}
.vy-alert-error{background:var(--vy-danger-soft);color:#fecaca;border-color:rgba(248,113,113,.32)}
.vy-alert-success{background:var(--vy-success-soft);color:#bbf7d0;border-color:rgba(74,222,128,.32)}
.vy-alert-info{background:var(--vy-accent-soft);color:#d2c7ff;border-color:rgba(124,92,255,.32)}
@keyframes vy-fade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---------- Auth Pages ---------- */
.vy-auth-wrap{
  min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);
  display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem;
}

/* Split-screen auth layout */
.vy-auth-split{
  min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);
  display:grid;grid-template-columns:1.05fr 1fr;
  align-items:stretch;
}
.vy-auth-aside{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg, #15151C 0%, #1a1530 50%, #0F0C1F 100%);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:3rem;color:var(--vy-text);
}
.vy-auth-aside::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(700px 400px at 80% 10%, rgba(124,92,255,.45), transparent 60%),
    radial-gradient(500px 400px at 10% 90%, rgba(91,63,232,.35), transparent 60%);
  opacity:.85;
}
.vy-auth-aside::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.6;mix-blend-mode:overlay;
}
.vy-auth-aside-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;gap:2rem}
.vy-auth-aside-brand{display:flex;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:-0.01em}
.vy-auth-aside-brand .vy-logo{width:34px;height:34px;background:linear-gradient(135deg,#fff 0%, #b8a4ff 100%);color:var(--vy-primary-2);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.vy-auth-aside-quote{margin-top:auto;font-family:var(--vy-font-display);font-style:italic;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:400;line-height:1.25;letter-spacing:-0.01em;color:rgba(255,255,255,.95)}
.vy-auth-aside-quote::before{content:"\201C";font-size:3rem;line-height:.5;display:block;color:rgba(184,164,255,.6);margin-bottom:.5rem}
.vy-auth-aside-author{margin-top:1.25rem;display:flex;align-items:center;gap:.85rem;color:rgba(255,255,255,.75)}
.vy-auth-aside-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#9b85ff,#5B3FE8);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.vy-auth-aside-author-name{font-weight:600;font-size:.95rem;color:#fff}
.vy-auth-aside-author-role{font-size:.82rem;color:rgba(255,255,255,.65)}
.vy-auth-main{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;background:var(--vy-bg)}
.vy-auth-main .vy-auth-card{box-shadow:none;border:none;background:transparent;padding:0;max-width:420px}
.vy-auth-main .vy-auth-card::before{display:none}
@media (max-width:900px){
  .vy-auth-split{grid-template-columns:1fr}
  .vy-auth-aside{display:none}
  .vy-auth-main{padding:2rem 1.25rem}
  .vy-auth-main .vy-auth-card{background:var(--vy-card);border:1px solid var(--vy-border);padding:2rem 1.75rem;box-shadow:var(--vy-shadow-lg)}
}
.vy-auth-card{
  background:var(--vy-card);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-xl);
  padding:2.5rem 2.25rem;
  width:100%;max-width:440px;
  box-shadow:var(--vy-shadow-lg), var(--vy-shadow-inner);
  position:relative;
}
.vy-auth-card::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg, rgba(124,92,255,.35), transparent 35%);
  mask:linear-gradient(#000,#000) content-box, linear-gradient(#000,#000);
  -webkit-mask:linear-gradient(#000,#000) content-box, linear-gradient(#000,#000);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px;
}
.vy-auth-card h1{
  font-family:var(--vy-font-display);font-size:2.1rem;
  margin:0 0 .35rem;font-weight:400;letter-spacing:-0.015em;line-height:1.1;
}
.vy-auth-card .vy-sub{color:var(--vy-text-2);margin-bottom:1.8rem;font-size:.94rem}
.vy-auth-footer{text-align:center;margin-top:1.5rem;color:var(--vy-text-2);font-size:.88rem}
.vy-auth-footer a{color:var(--vy-primary);font-weight:500}
.vy-auth-footer a:hover{text-decoration:underline}

/* ---------- Hero / Landing ---------- */
.vy-hero{
  padding:6rem 0 5rem;text-align:center;position:relative;overflow:hidden;
}
.vy-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(124,92,255,.28), transparent 70%),
    radial-gradient(40% 40% at 80% 30%, rgba(91,63,232,.18), transparent 70%);
}
.vy-hero .vy-eyebrow{
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:.78rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:var(--vy-text-2);background:rgba(255,255,255,.04);
  border:1px solid var(--vy-border);
  padding:.4rem .85rem;border-radius:var(--vy-r-pill);
  margin-bottom:1.5rem;
}
.vy-hero .vy-eyebrow .vy-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--vy-success);box-shadow:0 0 0 4px rgba(74,222,128,.18)}
.vy-hero h1{
  font-family:var(--vy-font-display);
  font-size:clamp(2.6rem, 7vw, 5.2rem);
  font-weight:400;
  margin:0 0 1.2rem;
  letter-spacing:-0.025em;
  line-height:1.02;
  color:var(--vy-text);
}
.vy-hero h1 em{
  font-style:italic;
  background:linear-gradient(180deg,#b8a4ff,var(--vy-primary) 70%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.vy-hero p{
  font-size:clamp(1.05rem, 1.6vw, 1.2rem);
  color:var(--vy-text-2);max-width:640px;margin:0 auto 2.2rem;line-height:1.55;
}
.vy-hero .vy-cta{display:inline-flex;gap:.75rem;flex-wrap:wrap;justify-content:center}

/* Hero visual (mockup placeholder gradient card) */
.vy-hero-visual{
  max-width:1080px;margin:3.5rem auto 0;padding:0 1rem;
  perspective:1800px;
}
.vy-hero-visual .vy-hero-frame{
  border-radius:var(--vy-r-2xl);
  background:linear-gradient(180deg, var(--vy-surface-2), var(--vy-bg-2));
  border:1px solid var(--vy-border);
  padding:.65rem;
  box-shadow:0 50px 100px -20px rgba(0,0,0,.6), 0 30px 60px -30px rgba(124,92,255,.4);
  transform:rotateX(2deg);
  position:relative;
}
.vy-hero-visual .vy-hero-frame::before{
  content:"";position:absolute;left:50%;top:0;width:60%;height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg, transparent, rgba(124,92,255,.6), transparent);
}
.vy-hero-visual .vy-hero-inner{
  background:var(--vy-bg);
  border-radius:calc(var(--vy-r-2xl) - 6px);
  overflow:hidden;
  display:grid;grid-template-columns:200px 1fr;min-height:380px;
}
.vy-hero-side{padding:1.2rem;border-right:1px solid var(--vy-border);background:var(--vy-bg-2)}
.vy-hero-side-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:var(--vy-r-sm);color:var(--vy-text-2);font-size:.85rem;font-weight:500}
.vy-hero-side-item.active{background:var(--vy-accent-soft);color:var(--vy-text)}
.vy-hero-main{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}
.vy-hero-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem}
.vy-hero-mini{background:var(--vy-card);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.85rem}
.vy-hero-mini .vy-lbl{color:var(--vy-text-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.vy-hero-mini .vy-val{font-family:var(--vy-font-mono);font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums}
.vy-hero-mini .vy-spark{margin-top:.5rem;height:28px;display:block}

/* Logos strip / social proof */
.vy-proof{padding:2rem 0 3rem;text-align:center;border-top:1px solid var(--vy-divider);border-bottom:1px solid var(--vy-divider);margin-top:4rem}
.vy-proof p{color:var(--vy-text-3);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 1.25rem}
.vy-proof-row{display:flex;justify-content:center;align-items:center;gap:2.5rem;flex-wrap:wrap;opacity:.6;filter:grayscale(1);transition:opacity var(--vy-dur-base)}
.vy-proof-row:hover{opacity:.85}
.vy-proof-logo{font-family:var(--vy-font-display);font-style:italic;font-size:1.2rem;color:var(--vy-text-2)}

/* ---------- Features (bento) ---------- */
.vy-features{padding:6rem 0;position:relative}
.vy-features-head{text-align:center;max-width:680px;margin:0 auto 3.5rem}
.vy-features-head .vy-eyebrow{display:inline-block;font-size:.78rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--vy-primary);margin-bottom:1rem}
.vy-features h2{
  font-family:var(--vy-font-display);font-weight:400;
  font-size:clamp(2rem, 4vw, 3.2rem);
  margin:0 0 1rem;letter-spacing:-0.02em;line-height:1.08;
}
.vy-features-head p{color:var(--vy-text-2);font-size:1.05rem;margin:0}

.vy-feat-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:1rem;
}
.vy-feat{
  grid-column:span 2;
  background:var(--vy-card);
  border:1px solid var(--vy-border);
  padding:1.6rem;
  border-radius:var(--vy-r-lg);
  transition:transform var(--vy-dur-base) var(--vy-ease-out),
             border-color var(--vy-dur-base) var(--vy-ease-out),
             box-shadow var(--vy-dur-base) var(--vy-ease-out);
  position:relative;overflow:hidden;
}
.vy-feat::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(400px 200px at var(--mx,50%) var(--my,0%), rgba(124,92,255,.10), transparent 60%);
  opacity:0;transition:opacity var(--vy-dur-base);
}
.vy-feat:hover{transform:translateY(-3px);border-color:var(--vy-border-2);box-shadow:var(--vy-shadow-md)}
.vy-feat:hover::after{opacity:1}
/* bento: primeiro card grande, terceiro grande */
.vy-feat:nth-child(1){grid-column:span 4}
.vy-feat:nth-child(4){grid-column:span 4}
.vy-feat .vy-feat-icon{
  width:42px;height:42px;border-radius:var(--vy-r-md);
  background:linear-gradient(180deg, rgba(124,92,255,.22), rgba(124,92,255,.06));
  border:1px solid rgba(124,92,255,.32);
  display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:1.1rem;color:var(--vy-primary);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.vy-feat h3{margin:0 0 .4rem;font-size:1.08rem;font-weight:600;letter-spacing:-0.01em}
.vy-feat p{color:var(--vy-text-2);margin:0;font-size:.92rem;line-height:1.55}

/* ---------- Dashboard ---------- */
.vy-dash-wrap{padding:2.5rem 1.25rem 3.5rem;min-height:calc(100vh - 64px)}
.vy-dash-header{margin-bottom:2.25rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.vy-dash-header .vy-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--vy-text-2);margin-bottom:.85rem}
.vy-dash-header .vy-eyebrow .vy-dot{width:.4rem;height:.4rem;border-radius:50%;background:var(--vy-success);box-shadow:0 0 0 4px rgba(74,222,128,.18)}
.vy-dash-title{
  margin:0 0 .35rem;font-size:2.4rem;font-weight:500;letter-spacing:-0.02em;line-height:1.05;
  font-family:var(--vy-font-display);color:var(--vy-text);
}
.vy-dash-title em{font-style:italic;background:linear-gradient(135deg,var(--vy-primary) 0%,#A78BFA 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}
.vy-dash-header h1{margin:0 0 .3rem;font-size:2rem;font-weight:700;letter-spacing:-0.02em;font-family:var(--vy-font-sans)}
.vy-dash-header p, .vy-dash-sub{color:var(--vy-text-2);margin:0;font-size:.98rem;max-width:60ch}
.vy-dash-header-actions{display:flex;gap:.6rem;flex-wrap:wrap}

.vy-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;margin-bottom:1.75rem}
.vy-kpi{
  background:var(--vy-card);
  border:1px solid var(--vy-border);
  padding:1.15rem 1.25rem;
  border-radius:var(--vy-r-lg);
  transition:transform var(--vy-dur-fast), border-color var(--vy-dur-fast), background var(--vy-dur-fast), box-shadow var(--vy-dur-fast);
  box-shadow:var(--vy-shadow-inner);
  position:relative;overflow:hidden;
}
.vy-kpi::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);
  opacity:0;transition:opacity var(--vy-dur-base);
}
.vy-kpi:hover::before{opacity:1}
.vy-kpi .vy-kpi-label{color:var(--vy-text-2);font-size:.74rem;margin-bottom:.6rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.vy-kpi .vy-kpi-value{font-size:2rem;font-weight:600;letter-spacing:-0.025em;line-height:1;font-variant-numeric:tabular-nums;font-family:var(--vy-font-mono)}
.vy-kpi .vy-kpi-delta{font-size:.8rem;color:var(--vy-success);margin-top:.4rem;font-weight:500;font-variant-numeric:tabular-nums;font-family:var(--vy-font-mono)}
.vy-kpi-sub{color:var(--vy-text-3);font-size:.74rem;margin-top:.35rem;font-family:var(--vy-font-mono);font-variant-numeric:tabular-nums}
.vy-kpi .vy-spark{display:block;width:100%;height:32px;margin-top:.7rem;color:var(--vy-text-3);opacity:.55;transition:color var(--vy-dur-base),opacity var(--vy-dur-base)}
.vy-kpi:hover .vy-spark{color:var(--vy-primary);opacity:.9}
.vy-kpi-accent{
  background:linear-gradient(160deg, rgba(124,92,255,.10), var(--vy-card) 55%);
  border-color:rgba(124,92,255,.25);
}
.vy-kpi-accent .vy-kpi-value{color:#fff}
.vy-kpi-accent .vy-spark{color:var(--vy-primary);opacity:.85}
a.vy-kpi{text-decoration:none;color:var(--vy-text);display:block}
a.vy-kpi:hover{border-color:var(--vy-border-2);transform:translateY(-2px);background:var(--vy-surface-2);box-shadow:0 8px 24px -12px rgba(0,0,0,.5)}

.vy-dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}
@media (max-width:900px){ .vy-dash-grid{grid-template-columns:1fr} }
.vy-dash-actions{display:grid;gap:.5rem}
.vy-dash-action{
  display:flex;align-items:center;gap:.85rem;
  padding:.85rem 1rem;
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-md);
  text-decoration:none;color:var(--vy-text);
  background:var(--vy-bg-2);
  transition:border-color var(--vy-dur-fast), transform var(--vy-dur-fast), background var(--vy-dur-fast);
}
.vy-dash-action:hover{border-color:var(--vy-primary);background:var(--vy-surface-2);text-decoration:none;transform:translateX(2px)}
.vy-dash-action > span:first-child, .vy-dash-action-ico{
  font-size:1.5rem;line-height:1;color:var(--vy-primary);
  width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--vy-r-sm);
  background:linear-gradient(135deg, rgba(124,92,255,.16), rgba(124,92,255,.06));
  border:1px solid rgba(124,92,255,.22);
  flex-shrink:0;
}
.vy-dash-action div{display:flex;flex-direction:column;gap:.15rem}
.vy-dash-action strong{font-weight:600;font-size:.95rem}
.vy-dash-action span{color:var(--vy-text-2);font-size:.8rem}

.vy-panel{
  background:var(--vy-card);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-lg);
  padding:1.5rem;margin-bottom:1.25rem;
  box-shadow:var(--vy-shadow-inner);
}
.vy-panel h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600;letter-spacing:-0.01em}
.vy-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.vy-panel-head h2{margin:0}
.vy-link-arrow{font-size:.85rem;color:var(--vy-text-2);text-decoration:none;font-weight:500;transition:color var(--vy-dur-fast)}
.vy-link-arrow:hover{color:var(--vy-primary)}
.vy-empty{text-align:center;padding:2.5rem 1rem;color:var(--vy-text-2)}
.vy-empty i{font-size:2.5rem;opacity:.4;margin-bottom:.75rem;display:block}
.vy-empty-state{text-align:center;padding:2rem 1rem;color:var(--vy-text-2);display:flex;flex-direction:column;align-items:center;gap:.6rem}
.vy-empty-state svg{color:var(--vy-text-3);opacity:.6;margin-bottom:.25rem}
.vy-empty-state p{margin:0;font-size:.9rem}
.vy-skel-list{display:flex;flex-direction:column;gap:.55rem;padding:.25rem 0}
.vy-skel-row{height:42px;border-radius:var(--vy-r-sm);background:linear-gradient(90deg,var(--vy-bg-2) 0%,var(--vy-surface-2) 50%,var(--vy-bg-2) 100%);background-size:200% 100%;animation:vy-shimmer 1.4s infinite ease-in-out}
@keyframes vy-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- User menu ---------- */
.vy-user-menu{position:relative}
.vy-user-trigger{
  background:transparent;
  border:1px solid var(--vy-border);
  color:var(--vy-text);
  padding:.45rem .85rem;
  border-radius:var(--vy-r-pill);
  cursor:pointer;font-size:.88rem;font-weight:500;font-family:inherit;
  display:flex;align-items:center;gap:.5rem;
  transition:background var(--vy-dur-fast),border-color var(--vy-dur-fast);
}
.vy-user-trigger:hover{background:rgba(255,255,255,.04);border-color:var(--vy-border-2)}
.vy-user-pop{
  position:absolute;right:0;top:calc(100% + .5rem);
  background:var(--vy-glass-hi);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-md);padding:.4rem;min-width:200px;
  display:none;
  box-shadow:var(--vy-shadow-lg);
  animation:vy-pop-in var(--vy-dur-base) var(--vy-ease-spring);
}
.vy-user-pop.show{display:block}
.vy-user-pop a,.vy-user-pop button{
  display:flex;align-items:center;gap:.55rem;
  width:100%;text-align:left;
  padding:.55rem .75rem;
  background:transparent;border:none;
  color:var(--vy-text);cursor:pointer;
  border-radius:var(--vy-r-sm);
  text-decoration:none;font-size:.88rem;font-family:inherit;
  transition:background var(--vy-dur-fast);
}
.vy-user-pop a:hover,.vy-user-pop button:hover{background:rgba(255,255,255,.06);text-decoration:none}
@keyframes vy-pop-in{from{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:none}}

/* ---------- OTP ---------- */
.vy-otp{display:flex;gap:.55rem;justify-content:center;margin:1.5rem 0}
.vy-otp input{
  width:52px;height:60px;text-align:center;
  font-size:1.6rem;font-weight:600;font-family:var(--vy-font-mono);
  background:var(--vy-bg-2);border:1px solid var(--vy-border);
  border-radius:var(--vy-r-md);color:var(--vy-text);
  transition:border-color var(--vy-dur-fast),box-shadow var(--vy-dur-base);
}
.vy-otp input:focus{outline:none;border-color:var(--vy-primary);box-shadow:0 0 0 4px var(--vy-accent-soft)}

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

/* ---------- Page header ---------- */
.vy-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}
.vy-page-header h1{margin:0;font-size:1.7rem;font-weight:700;letter-spacing:-0.02em}
.vy-page-header p{color:var(--vy-text-2);margin:.25rem 0 0}

/* ---------- Channels ---------- */
.vy-channels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.vy-channel-card{
  background:var(--vy-card);border:1px solid var(--vy-border);
  border-radius:var(--vy-r-lg);padding:1.25rem;
  display:flex;flex-direction:column;gap:.85rem;
  transition:border-color var(--vy-dur-fast),transform var(--vy-dur-fast);
}
.vy-channel-card:hover{border-color:var(--vy-border-2);transform:translateY(-2px)}
.vy-channel-card .vy-chan-top{display:flex;align-items:center;gap:.85rem}
.vy-channel-card .vy-chan-icon{
  width:44px;height:44px;border-radius:var(--vy-r-md);
  background:linear-gradient(180deg,#34D27A,#128C7E);
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 6px 16px rgba(18,140,126,.3);
}
.vy-channel-card .vy-chan-name{font-weight:600}
.vy-channel-card .vy-chan-phone{color:var(--vy-text-2);font-size:.85rem;font-family:var(--vy-font-mono)}
.vy-channel-card .vy-chan-actions{display:flex;gap:.5rem;margin-top:.25rem}

/* ---------- Badges ---------- */
.vy-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.22rem .65rem;border-radius:var(--vy-r-pill);
  font-size:.72rem;font-weight:600;letter-spacing:.02em;
}
.vy-badge-success{background:var(--vy-success-soft);color:#bbf7d0;border:1px solid rgba(74,222,128,.3)}
.vy-badge-warn{background:var(--vy-warn-soft);color:#fde68a;border:1px solid rgba(251,191,36,.3)}
.vy-badge-muted{background:rgba(154,154,168,.12);color:#cbd5e1;border:1px solid rgba(154,154,168,.25)}
.vy-badge-ok{background:var(--vy-success-soft);color:#bbf7d0;border:1px solid rgba(74,222,128,.3)}
.vy-badge-gray{background:rgba(154,154,168,.12);color:#cbd5e1;border:1px solid rgba(154,154,168,.25)}

/* ---------- Modal ---------- */
.vy-modal-bg{
  position:fixed;inset:0;
  background:rgba(8,8,12,.7);
  display:none;align-items:center;justify-content:center;padding:1rem;
  z-index:100;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:vy-fade-in var(--vy-dur-base) var(--vy-ease-out);
}
.vy-modal-bg.show{display:flex}
.vy-modal{
  background:var(--vy-card);border:1px solid var(--vy-border);
  border-radius:var(--vy-r-xl);padding:2rem;
  max-width:460px;width:100%;text-align:center;
  max-height:90vh;overflow-y:auto;
  box-shadow:var(--vy-shadow-lg);
  animation:vy-modal-in var(--vy-dur-slow) var(--vy-ease-spring);
}
@keyframes vy-modal-in{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
.vy-modal h2{margin:0 0 .5rem;font-size:1.35rem;font-weight:600;letter-spacing:-0.01em}
.vy-modal p{color:var(--vy-text-2);margin:0 0 1.5rem;font-size:.92rem}
.vy-modal .vy-qr-box{background:#fff;border-radius:var(--vy-r-md);padding:1rem;display:inline-block;margin-bottom:1rem}
.vy-modal .vy-qr-box img{display:block;width:240px;height:240px}
.vy-modal .vy-modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--vy-text-2);font-size:1.5rem;cursor:pointer;line-height:1;padding:.25rem;border-radius:var(--vy-r-sm);transition:color var(--vy-dur-fast),background var(--vy-dur-fast)}
.vy-modal .vy-modal-close:hover{color:var(--vy-text);background:rgba(255,255,255,.06)}
.vy-modal-wrap{position:relative}
.vy-pairing{
  font-family:var(--vy-font-mono);font-size:1.6rem;letter-spacing:.18em;
  background:var(--vy-bg-2);padding:.8rem 1rem;
  border-radius:var(--vy-r-md);border:1px dashed var(--vy-border-2);
  margin:.5rem 0;
}

.vy-modal-lg{max-width:680px;text-align:left}
.vy-modal-lg h2{margin:0 0 1.25rem}
.vy-modal-lg .vy-field{margin-bottom:1rem}
.vy-modal-lg .vy-actions{display:flex;gap:.75rem;margin-top:1.5rem}
.vy-modal-lg .vy-actions button{flex:1;width:auto}
.vy-agent-card .vy-chan-icon{background:linear-gradient(180deg, #9b85ff, var(--vy-primary));box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 16px rgba(124,92,255,.4)}
.vy-help{font-size:.78rem;color:var(--vy-text-2);margin-top:.35rem}
.vy-mm-row{
  display:flex;align-items:flex-start;gap:.55rem;
  padding:.6rem .75rem;
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-sm);
  cursor:pointer;font-size:.85rem;line-height:1.4;
  background:rgba(255,255,255,.02);
  transition:border-color var(--vy-dur-fast),background var(--vy-dur-fast);
}
.vy-mm-row:hover{border-color:var(--vy-primary);background:rgba(124,92,255,.06)}
.vy-mm-row input[type=checkbox]{margin-top:.2rem;accent-color:var(--vy-primary);width:1rem;height:1rem;flex-shrink:0}
.vy-mm-row strong{color:var(--vy-text)}

/* ---------- Voz · Realtime ---------- */
.vy-live-dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--vy-danger);box-shadow:0 0 0 0 rgba(248,113,113,.7);animation:vy-pulse-ring 1.6s infinite}
@keyframes vy-pulse-ring{0%{box-shadow:0 0 0 0 rgba(248,113,113,.7)}70%{box-shadow:0 0 0 10px rgba(248,113,113,0)}100%{box-shadow:0 0 0 0 rgba(248,113,113,0)}}
.vy-transcript{max-height:340px;overflow-y:auto;border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.75rem;background:var(--vy-bg-2);display:flex;flex-direction:column;gap:.45rem}
.vy-tr-line{display:flex;align-items:flex-start;gap:.5rem;font-size:.88rem;line-height:1.45}
.vy-tr-tag{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .45rem;border-radius:var(--vy-r-xs);flex-shrink:0;min-width:3rem;text-align:center}
.vy-tr-user .vy-tr-tag{background:var(--vy-accent-soft);color:#c4b5fd}
.vy-tr-agent .vy-tr-tag{background:var(--vy-success-soft);color:#86efac}
.vy-tr-partial{opacity:.65}
.vy-calls-list{display:flex;flex-direction:column;gap:.55rem}
.vy-call-item{border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.7rem .8rem;background:var(--vy-bg-2)}
.vy-call-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.vy-call-meta{margin-left:auto;font-size:.75rem;color:var(--vy-text-2);font-family:var(--vy-font-mono)}
.vy-call-tx{margin-top:.4rem;font-size:.78rem;color:var(--vy-text-2);white-space:pre-wrap}

/* ---------- CRM Kanban ---------- */
.vy-crm-toolbar{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.vy-crm-toolbar .vy-input{width:auto;min-width:220px}
.vy-kanban{display:flex;gap:.85rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start;min-height:60vh}
.vy-kanban::-webkit-scrollbar{height:8px}
.vy-kanban::-webkit-scrollbar-thumb{background:#2a2a36;border-radius:6px}
.vy-col{
  flex:0 0 300px;background:var(--vy-bg-2);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-lg);
  padding:.85rem;display:flex;flex-direction:column;gap:.6rem;
  min-height:200px;max-height:80vh;
  transition:border-color var(--vy-dur-fast),background var(--vy-dur-fast);
}
.vy-col.drag-over{border-color:var(--vy-primary);background:rgba(124,92,255,.05)}
.vy-col-head{display:flex;align-items:center;justify-content:space-between;padding:.25rem .35rem .6rem;border-bottom:1px solid var(--vy-divider)}
.vy-col-head h3{margin:0;font-size:.92rem;font-weight:600;letter-spacing:-0.01em}
.vy-col-head .vy-col-count{background:var(--vy-surface-3);color:var(--vy-text-2);font-size:.72rem;padding:.18rem .6rem;border-radius:var(--vy-r-pill);font-family:var(--vy-font-mono);font-weight:600}
.vy-col-cards{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.25rem}
.vy-col-cards::-webkit-scrollbar{width:6px}
.vy-col-cards::-webkit-scrollbar-thumb{background:#2a2a36;border-radius:6px}

/* Lead card (também usada por vy-card simples) */
.vy-card{
  background:var(--vy-card);
  border:1px solid var(--vy-border);
  border-radius:var(--vy-r-md);
  padding:.8rem;cursor:grab;
  display:flex;flex-direction:column;gap:.4rem;
  transition:border-color var(--vy-dur-fast),transform var(--vy-dur-fast),box-shadow var(--vy-dur-fast);
}
.vy-card:hover{border-color:var(--vy-border-2);transform:translateY(-1px);box-shadow:var(--vy-shadow-sm)}
.vy-card.dragging{opacity:.35;cursor:grabbing}
.vy-card .vy-card-name{font-weight:600;font-size:.92rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.vy-card .vy-card-meta{color:var(--vy-text-2);font-size:.78rem;display:flex;flex-wrap:wrap;gap:.45rem;font-family:var(--vy-font-mono)}
.vy-card .vy-card-msg{color:var(--vy-text-2);font-size:.78rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vy-card .vy-card-value{color:var(--vy-success);font-weight:600;font-size:.82rem;font-family:var(--vy-font-mono);font-variant-numeric:tabular-nums}
.vy-card .vy-card-tags{display:flex;flex-wrap:wrap;gap:.25rem}
.vy-tag{font-size:.68rem;background:var(--vy-surface-2);color:#cbd5e1;border:1px solid var(--vy-border);border-radius:var(--vy-r-pill);padding:.12rem .55rem}
.vy-card .vy-paused{background:var(--vy-warn-soft);color:#fde68a;font-size:.68rem;padding:.12rem .5rem;border-radius:var(--vy-r-pill);border:1px solid rgba(251,191,36,.28)}
.vy-lead-modal .vy-actions{flex-wrap:wrap}
.vy-lead-modal .vy-actions .vy-btn{flex:1 1 auto;min-width:120px}

/* ---------- Agenda ---------- */
.vy-cal-toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}
.vy-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-lg);padding:8px}
.vy-cal-dhead{padding:.5rem .35rem;font-size:.74rem;color:var(--vy-text-2);text-align:center;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.vy-cal-day{background:var(--vy-card);border:1px solid var(--vy-border);border-radius:var(--vy-r-sm);min-height:96px;padding:.45rem .4rem;cursor:pointer;display:flex;flex-direction:column;gap:.22rem;transition:border-color var(--vy-dur-fast),background var(--vy-dur-fast)}
.vy-cal-day:hover{border-color:var(--vy-border-2);background:var(--vy-surface-2)}
.vy-cal-day.vy-cal-empty{background:transparent;border:none;cursor:default}
.vy-cal-day.vy-cal-today{border-color:var(--vy-primary);background:var(--vy-accent-soft)}
.vy-cal-daynum{font-size:.78rem;color:var(--vy-text-2);font-weight:600;font-family:var(--vy-font-mono);font-variant-numeric:tabular-nums}
.vy-cal-today .vy-cal-daynum{color:var(--vy-text)}
.vy-cal-ev{background:var(--vy-accent-soft);color:#d2c7ff;border-left:2px solid var(--vy-primary);font-size:.7rem;padding:.18rem .4rem;border-radius:var(--vy-r-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:background var(--vy-dur-fast)}
.vy-cal-ev:hover{background:rgba(124,92,255,.28)}
.vy-cal-more{font-size:.68rem;color:var(--vy-text-2);padding-left:.35rem}
.vy-next-row{padding:.7rem .55rem;border-bottom:1px solid var(--vy-divider);display:flex;align-items:center;gap:.85rem;cursor:pointer;border-radius:var(--vy-r-sm);transition:background var(--vy-dur-fast)}
.vy-next-row:hover{background:var(--vy-bg-2)}
.vy-next-row:last-child{border-bottom:none}
.vy-next-when{color:var(--vy-primary);font-size:.82rem;font-weight:600;min-width:90px;font-family:var(--vy-font-mono);font-variant-numeric:tabular-nums}
.vy-next-title{color:var(--vy-text);flex:1;font-size:.92rem}
.vy-next-lead{color:var(--vy-text-2);font-size:.78rem}
.vy-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.vy-actions-row{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}

/* ---------- Follow-up ---------- */
.vy-fu-card{background:var(--vy-card);border:1px solid var(--vy-border);border-radius:var(--vy-r-lg);padding:1rem 1.25rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.55rem;transition:border-color var(--vy-dur-fast)}
.vy-fu-card:hover{border-color:var(--vy-border-2)}
.vy-fu-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.vy-fu-card-body{color:var(--vy-text-2);font-size:.85rem}
.vy-fu-badge{display:inline-block;margin-left:.5rem;padding:.18rem .6rem;border-radius:var(--vy-r-pill);font-size:.7rem;font-weight:600;letter-spacing:.02em}
.vy-fu-badge.on{background:var(--vy-success-soft);color:#bbf7d0;border:1px solid rgba(74,222,128,.32)}
.vy-fu-badge.off{background:rgba(154,154,168,.12);color:#cbd5e1;border:1px solid rgba(154,154,168,.25)}
.vy-fu-step-chip{display:inline-block;margin-left:.4rem;padding:.14rem .6rem;background:var(--vy-surface-2);color:#cbd5e1;border:1px solid var(--vy-border);border-radius:var(--vy-r-pill);font-size:.7rem}
.vy-fu-step{background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.85rem;margin-bottom:.65rem}
.vy-fu-run{display:flex;flex-direction:column;gap:.22rem;padding:.7rem .55rem;border-bottom:1px solid var(--vy-divider)}
.vy-fu-run:last-child{border-bottom:none}
.vy-fu-run > div:first-child{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.vy-fu-cancel{background:transparent;border:1px solid rgba(248,113,113,.35);color:var(--vy-danger);cursor:pointer;font-size:.78rem;padding:.3rem .7rem;border-radius:var(--vy-r-sm);margin-top:.25rem;align-self:flex-start;transition:background var(--vy-dur-fast)}
.vy-fu-cancel:hover{background:var(--vy-danger-soft)}

/* ---------- Toast ---------- */
.vy-toast{
  position:fixed;bottom:1.5rem;right:1.5rem;
  background:var(--vy-glass-hi);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--vy-border);color:var(--vy-text);
  padding:.85rem 1.15rem;border-radius:var(--vy-r-md);
  box-shadow:var(--vy-shadow-lg);
  opacity:0;transform:translateY(20px) scale(.96);
  transition:opacity var(--vy-dur-base) var(--vy-ease-out), transform var(--vy-dur-base) var(--vy-ease-spring);
  z-index:200;max-width:380px;font-size:.9rem;
}
.vy-toast.show{opacity:1;transform:none}
.vy-toast-ok{border-left:3px solid var(--vy-success)}
.vy-toast-err{border-left:3px solid var(--vy-danger)}
.vy-toast-info{border-left:3px solid var(--vy-primary)}

/* ---------- Billing / Planos ---------- */
.vy-cycle-toggle{display:inline-flex;background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-pill);padding:.22rem}
.vy-cycle-btn{background:transparent;color:var(--vy-text-2);border:none;padding:.5rem 1.1rem;border-radius:var(--vy-r-pill);cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit;transition:color var(--vy-dur-fast),background var(--vy-dur-fast)}
.vy-cycle-btn.active{background:var(--vy-primary);color:#fff;box-shadow:0 4px 14px rgba(124,92,255,.4)}
.vy-cycle-tag{display:inline-block;margin-left:.3rem;padding:.08rem .4rem;font-size:.65rem;background:var(--vy-success);color:#04221a;border-radius:var(--vy-r-xs);font-weight:700}
.vy-plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.25rem}
.vy-plan-card{
  background:var(--vy-card);border:1px solid var(--vy-border);
  border-radius:var(--vy-r-lg);padding:1.5rem;
  display:flex;flex-direction:column;position:relative;
  transition:border-color var(--vy-dur-base),transform var(--vy-dur-base);
}
.vy-plan-card:hover{transform:translateY(-3px);border-color:var(--vy-border-2)}
.vy-plan-card h3{margin:0;font-size:1.08rem;font-weight:600;letter-spacing:-0.01em}
.vy-plan-popular{
  border:1px solid transparent;
  background:
    linear-gradient(var(--vy-card),var(--vy-card)) padding-box,
    linear-gradient(180deg, rgba(124,92,255,.7), rgba(124,92,255,.15)) border-box;
  box-shadow:0 0 0 1px rgba(124,92,255,.18), 0 20px 50px -20px rgba(124,92,255,.35);
}
.vy-plan-tag{
  position:absolute;top:-.65rem;right:1.25rem;
  background:linear-gradient(180deg,#9b85ff,var(--vy-primary));
  color:#fff;font-size:.65rem;padding:.22rem .65rem;
  border-radius:var(--vy-r-pill);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  box-shadow:0 4px 12px rgba(124,92,255,.45);
}
.vy-plan-price{font-size:2.1rem;font-weight:700;color:var(--vy-text);margin:1rem 0;letter-spacing:-0.02em;line-height:1}
.vy-plan-period{font-size:.85rem;color:var(--vy-text-2);font-weight:500;margin-left:.2rem;font-family:var(--vy-font-sans)}
.vy-plan-feats{list-style:none;padding:0;margin:0 0 1.25rem;flex:1;display:flex;flex-direction:column;gap:.5rem}
.vy-plan-feats li{font-size:.86rem;color:var(--vy-text);line-height:1.4;display:flex;align-items:flex-start;gap:.5rem}
.vy-plan-feats li::before{content:"";flex:0 0 16px;height:16px;margin-top:2px;border-radius:50%;background:var(--vy-success-soft) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234ADE80' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 12px 12px no-repeat}
.vy-plan-card button[disabled]{background:var(--vy-bg-2);color:var(--vy-text-2);cursor:not-allowed;border:1px solid var(--vy-border);box-shadow:none}

/* ---------- Pagamento PIX ---------- */
.vy-pix-amount{display:flex;justify-content:space-between;align-items:center;background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.85rem 1rem;margin:1rem 0}
.vy-pix-amount strong{font-size:1.4rem;color:var(--vy-primary);font-family:var(--vy-font-mono);font-variant-numeric:tabular-nums}
.vy-pix-qr{display:flex;justify-content:center;margin:1rem 0}
.vy-pix-qr-placeholder{width:200px;height:200px;background:#fff;color:#0e1426;display:flex;align-items:center;justify-content:center;border-radius:var(--vy-r-md);font-weight:600;font-size:.85rem;letter-spacing:.05em}
.vy-pix-copy{display:flex;gap:.5rem}
.vy-pix-copy input{flex:1;background:var(--vy-bg-2);border:1px solid var(--vy-border);color:var(--vy-text);padding:.55rem .8rem;border-radius:var(--vy-r-sm);font-family:var(--vy-font-mono);font-size:.78rem}
.vy-pix-status{margin-top:1rem;padding:.8rem 1rem;background:var(--vy-accent-soft);border:1px solid rgba(124,92,255,.32);border-radius:var(--vy-r-sm);display:flex;align-items:center;gap:.6rem;color:#d2c7ff;font-size:.88rem}
.vy-pulse{display:inline-block;width:.5rem;height:.5rem;background:var(--vy-primary);border-radius:50%;animation:vy-pulse 1.4s infinite}
@keyframes vy-pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ---------- Icons ---------- */
.vy-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;vertical-align:middle}
.vy-icon-sm svg{width:14px;height:14px}
.vy-icon-md svg{width:18px;height:18px}
.vy-icon-lg svg{width:24px;height:24px}
.vy-icon-xl svg{width:32px;height:32px}
.vy-empty .vy-icon svg{width:42px;height:42px;opacity:.5}
.vy-feat-icon svg{stroke:var(--vy-primary)}
.vy-chan-icon svg{stroke:#fff}
.vy-dash-action > span:first-child svg{display:block}

/* ---------- Tabs (template chips) ---------- */
.vy-tpl-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}
.vy-tpl-chip{
  background:var(--vy-bg-2);border:1px solid var(--vy-border);
  color:var(--vy-text-2);padding:.45rem .9rem;
  border-radius:var(--vy-r-pill);font-size:.78rem;font-weight:500;
  cursor:pointer;font-family:inherit;
  transition:all var(--vy-dur-fast);
  display:inline-flex;align-items:center;gap:.4rem;
}
.vy-tpl-chip:hover{border-color:var(--vy-border-2);color:var(--vy-text)}
.vy-tpl-chip.active{background:var(--vy-primary);border-color:var(--vy-primary);color:#fff;box-shadow:0 4px 14px rgba(124,92,255,.4)}
.vy-tpl-help{font-size:.8rem;color:var(--vy-text-2);background:var(--vy-accent-soft);border:1px solid rgba(124,92,255,.28);border-radius:var(--vy-r-sm);padding:.6rem .75rem;display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.7rem}
.vy-tpl-help svg{flex-shrink:0;margin-top:.1rem;color:var(--vy-primary)}
.vy-tpl-vars{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.65rem}
@media (max-width:600px){ .vy-tpl-vars{grid-template-columns:1fr} }
.vy-tpl-var label{display:block;font-size:.74rem;color:var(--vy-text-2);margin-bottom:.25rem;font-weight:500}
.vy-tpl-var label span{color:var(--vy-danger);margin-left:.15rem}
.vy-tpl-var input{width:100%;padding:.6rem .75rem;background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-sm);color:var(--vy-text);font-size:.85rem;font-family:inherit}
.vy-tpl-var input:focus{outline:none;border-color:var(--vy-primary);box-shadow:0 0 0 3px var(--vy-accent-soft)}
.vy-tpl-actions{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}

/* ---------- Chat sim ---------- */
.vy-sim-section{margin-top:1.5rem;border-top:1px solid var(--vy-divider);padding-top:1.25rem}
.vy-sim-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem;flex-wrap:wrap}
.vy-sim-head h3{margin:0;font-size:.95rem;display:flex;align-items:center;gap:.4rem;font-weight:600}
.vy-sim-frame{background:var(--vy-bg);border:1px solid var(--vy-border);border-radius:var(--vy-r-lg);overflow:hidden;display:flex;flex-direction:column;height:400px}
.vy-sim-topbar{background:var(--vy-bg-2);padding:.7rem 1rem;display:flex;align-items:center;gap:.6rem;border-bottom:1px solid var(--vy-border);flex-shrink:0}
.vy-sim-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(180deg,#9b85ff,var(--vy-primary));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;font-weight:600;font-size:.85rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.vy-sim-topbar .vy-sim-name{font-weight:600;font-size:.9rem;line-height:1}
.vy-sim-topbar .vy-sim-status{font-size:.7rem;color:var(--vy-success);display:flex;align-items:center;gap:.3rem;margin-top:.18rem}
.vy-sim-status::before{content:"";width:.42rem;height:.42rem;background:var(--vy-success);border-radius:50%;display:inline-block;box-shadow:0 0 0 3px var(--vy-success-soft)}
.vy-sim-body{flex:1;overflow-y:auto;padding:.9rem;background:var(--vy-bg);display:flex;flex-direction:column;gap:.55rem}
.vy-sim-body::-webkit-scrollbar{width:6px}
.vy-sim-body::-webkit-scrollbar-thumb{background:#2a2a36;border-radius:6px}
.vy-sim-msg{max-width:78%;padding:.55rem .75rem;border-radius:var(--vy-r-md);font-size:.85rem;line-height:1.45;word-wrap:break-word;white-space:pre-wrap}
.vy-sim-msg.user{align-self:flex-end;background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 12px rgba(124,92,255,.3)}
.vy-sim-msg.agent{align-self:flex-start;background:var(--vy-surface-2);color:var(--vy-text);border-bottom-left-radius:4px;border:1px solid var(--vy-border)}
.vy-sim-msg.system{align-self:center;background:transparent;color:var(--vy-text-2);font-size:.74rem;font-style:italic;padding:.25rem .5rem}
.vy-sim-msg .vy-sim-time{display:block;font-size:.66rem;color:rgba(255,255,255,.45);margin-top:.22rem;text-align:right;font-family:var(--vy-font-mono)}
.vy-sim-typing{align-self:flex-start;background:var(--vy-surface-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);padding:.6rem .85rem;display:inline-flex;gap:.28rem}
.vy-sim-typing span{width:.4rem;height:.4rem;background:var(--vy-text-2);border-radius:50%;animation:vy-typing 1.2s infinite}
.vy-sim-typing span:nth-child(2){animation-delay:.15s}
.vy-sim-typing span:nth-child(3){animation-delay:.3s}
@keyframes vy-typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.vy-sim-form{display:flex;gap:.4rem;padding:.6rem;background:var(--vy-bg-2);border-top:1px solid var(--vy-border);flex-shrink:0}
.vy-sim-form input{flex:1;background:var(--vy-bg);border:1px solid var(--vy-border);color:var(--vy-text);padding:.6rem .9rem;border-radius:var(--vy-r-pill);font-size:.88rem;font-family:inherit}
.vy-sim-form input:focus{outline:none;border-color:var(--vy-primary);box-shadow:0 0 0 3px var(--vy-accent-soft)}
.vy-sim-form button{background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff;border:none;width:38px;height:38px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px rgba(124,92,255,.4)}
.vy-sim-form button:disabled{opacity:.5;cursor:not-allowed}
.vy-sim-hint{font-size:.74rem;color:var(--vy-text-2);text-align:center;padding:.4rem 0;background:var(--vy-bg-2)}

/* ---------- Mobile menu hamburger ---------- */
.vy-nav-toggle{
  display:none;background:transparent;border:1px solid var(--vy-border);color:var(--vy-text);
  width:40px;height:40px;border-radius:var(--vy-r-sm);
  cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;
  transition:background var(--vy-dur-fast),border-color var(--vy-dur-fast);
}
.vy-nav-toggle:hover{background:rgba(255,255,255,.04);border-color:var(--vy-border-2)}
.vy-nav-toggle svg{width:22px;height:22px}
.vy-nav-toggle.open{background:var(--vy-accent-soft);border-color:var(--vy-primary);color:var(--vy-primary)}

/* ---------- Footer ---------- */
.vy-footer{
  border-top:1px solid var(--vy-divider);
  padding:3rem 0 2rem;color:var(--vy-text-2);
  font-size:.9rem;margin-top:4rem;
}
.vy-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.vy-footer-col h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--vy-text-3);margin:0 0 1rem;font-weight:600}
.vy-footer-col a{display:block;color:var(--vy-text-2);padding:.32rem 0;font-size:.9rem}
.vy-footer-col a:hover{color:var(--vy-text)}
.vy-footer-brand{font-family:var(--vy-font-display);font-size:1.4rem;color:var(--vy-text);margin-bottom:.75rem;font-style:italic}
.vy-footer-bottom{border-top:1px solid var(--vy-divider);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.82rem;color:var(--vy-text-3)}

/* ---------- Reveal animation (uso opcional via JS) ---------- */
.vy-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--vy-ease-out), transform .7s var(--vy-ease-out)}
.vy-reveal.is-visible{opacity:1;transform:none}

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

/* =====================================================
   Responsivo
   ===================================================== */
@media (max-width:1000px){
  .vy-feat-grid{grid-template-columns:repeat(4,1fr)}
  .vy-feat,
  .vy-feat:nth-child(1),
  .vy-feat:nth-child(4){grid-column:span 2}
  .vy-footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .vy-dash-grid{grid-template-columns:1fr}
  .vy-grid-2{grid-template-columns:1fr}
  .vy-plans-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .vy-container{padding:0 1rem}
  .vy-hero-visual .vy-hero-inner{grid-template-columns:1fr}
  .vy-hero-side{display:none}
  .vy-hero-row{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .vy-nav-toggle{display:inline-flex}
  .vy-nav-links{display:none;position:absolute;top:100%;right:0;left:0;background:var(--vy-glass-hi);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--vy-border);border-bottom:1px solid var(--vy-border);flex-direction:column;gap:0;padding:.5rem 0;box-shadow:var(--vy-shadow-lg)}
  .vy-nav-links.open{display:flex}
  .vy-nav-links a{display:block;padding:.9rem 1.25rem;border-bottom:1px solid var(--vy-divider);font-size:1rem;border-radius:0}
  .vy-nav-links a:last-child{border-bottom:none}
  .vy-navbar{position:sticky}
  .vy-navbar .vy-container{position:relative;flex-wrap:wrap}
  .vy-brand{flex:1}

  .vy-auth-card{padding:1.75rem 1.5rem}
  .vy-auth-card h1{font-size:1.7rem}
  .vy-auth-wrap{padding:1.5rem .75rem}

  .vy-hero{padding:3.5rem 0 2.5rem}
  .vy-hero h1{font-size:clamp(2rem,9vw,3rem)}
  .vy-hero p{font-size:1rem;padding:0 .5rem}
  .vy-hero .vy-cta{flex-direction:column;align-items:stretch;padding:0 1rem;width:100%;max-width:340px;margin:0 auto}
  .vy-hero .vy-cta .vy-btn{width:100%}
  .vy-hero-visual{margin-top:2.5rem}
  .vy-hero-visual .vy-hero-frame{transform:none}

  .vy-features{padding:3.5rem 0}
  .vy-features h2{font-size:1.75rem}
  .vy-feat-grid{grid-template-columns:1fr;gap:.85rem}
  .vy-feat,.vy-feat:nth-child(1),.vy-feat:nth-child(4){grid-column:span 1}
  .vy-feat{padding:1.25rem}

  .vy-dash-wrap{padding:1.25rem 1rem 2rem}
  .vy-dash-header h1, .vy-dash-title{font-size:1.7rem}
  .vy-dash-header-actions{width:100%}
  .vy-dash-header-actions .vy-btn{flex:1;justify-content:center}
  .vy-kpis{grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1.25rem}
  .vy-kpi{padding:.95rem}
  .vy-kpi .vy-kpi-value{font-size:1.55rem}
  .vy-kpi .vy-kpi-label{font-size:.74rem}
  .vy-panel{padding:1.15rem;margin-bottom:1rem}
  .vy-panel h2{font-size:1.05rem}

  .vy-page-header{flex-direction:column;align-items:stretch;gap:.75rem}
  .vy-page-header h1{font-size:1.4rem}
  .vy-page-header .vy-btn{width:100%}

  .vy-channels-grid{grid-template-columns:1fr}

  .vy-col{flex:0 0 78vw;max-height:65vh}
  .vy-crm-toolbar{flex-direction:column;align-items:stretch}
  .vy-crm-toolbar .vy-input{width:100%;min-width:0}

  .vy-cal-day{min-height:54px;padding:.25rem}
  .vy-cal-daynum{font-size:.7rem}
  .vy-cal-ev{font-size:.6rem;padding:.1rem .25rem}
  .vy-cal-dhead{font-size:.65rem;padding:.3rem .2rem}
  .vy-cal-toolbar{flex-wrap:wrap}
  .vy-cal-toolbar .vy-btn{flex:1;min-width:0}

  .vy-modal{padding:1.4rem;max-height:95vh}
  .vy-modal-lg{max-width:100%}
  .vy-modal .vy-actions{flex-direction:column}
  .vy-modal .vy-actions .vy-btn{width:100%}
  .vy-modal .vy-qr-box img{width:200px;height:200px}

  .vy-field{margin-bottom:1rem}
  .vy-input{font-size:16px}
  textarea.vy-input{min-height:90px}

  table{font-size:.85rem}
  table th,table td{padding:.55rem .4rem}

  .vy-sim-frame{height:340px}

  .vy-otp input{width:44px;height:52px;font-size:1.3rem}

  .vy-plans-grid{grid-template-columns:1fr}
  .vy-plan-price{font-size:1.7rem}

  .vy-toast{bottom:.85rem;right:.85rem;left:.85rem;max-width:none;font-size:.88rem}

  .vy-fu-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}
  .vy-fu-card{padding:.95rem 1.1rem}

  .vy-user-pop{position:fixed;right:.85rem;left:auto;top:auto;bottom:.85rem;min-width:200px}

  .vy-footer-grid{grid-template-columns:1fr;gap:1.75rem}
}

@media (max-width:480px){
  .vy-kpis{grid-template-columns:1fr}
  .vy-dash-header h1, .vy-dash-title{font-size:1.5rem}
  .vy-auth-card{padding:1.4rem 1.25rem;border-radius:var(--vy-r-lg)}
  .vy-auth-card h1{font-size:1.55rem}
  .vy-otp{gap:.4rem}
  .vy-otp input{width:40px;height:48px;font-size:1.15rem}
  .vy-col{flex:0 0 82vw}
  .vy-modal{padding:1.1rem;border-radius:var(--vy-r-lg)}
  .vy-modal .vy-qr-box img{width:180px;height:180px}
  .vy-btn{padding:.78rem 1.1rem;font-size:.9rem}
  .vy-cal-day{min-height:48px}
}

/* impede scroll horizontal global mas mantém o do Kanban */
@media (max-width:768px){
  html,body{overflow-x:hidden;max-width:100vw}
  body > *:not(.vy-kanban-wrap):not(.vy-navbar){overflow-x:hidden}
  .vy-navbar{overflow:visible !important}
  .vy-navbar .vy-container{overflow:visible !important}
  .vy-nav-links{position:fixed !important;top:60px !important;left:0 !important;right:0 !important;z-index:1000 !important;max-height:calc(100vh - 60px);overflow-y:auto}
}

/* ==== Tabs e Chat no modal de Lead ==== */
.vy-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--vy-divider);margin:0 0 1rem 0}
.vy-tab{background:none;border:0;color:var(--vy-muted);padding:.65rem 1.05rem;font-size:.9rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--vy-dur-fast),border-color var(--vy-dur-fast);font-family:inherit}
.vy-tab:hover{color:var(--vy-text)}
.vy-tab.active{color:var(--vy-primary);border-bottom-color:var(--vy-primary)}
.vy-tab-panel{display:none}
.vy-tab-panel.active{display:block}

.vy-chat-box{
  background:var(--vy-bg-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);
  min-height:300px;max-height:50vh;overflow-y:auto;padding:1rem;
  display:flex;flex-direction:column;gap:.5rem;
}
.vy-chat-empty{color:var(--vy-muted);text-align:center;padding:2rem;font-size:.9rem;font-style:italic}
.vy-chat-actions{display:flex;justify-content:flex-end;margin-top:.5rem}

.vy-bubble-row{display:flex;width:100%}
.vy-bubble-row.left{justify-content:flex-start}
.vy-bubble-row.right{justify-content:flex-end}
.vy-bubble{max-width:78%;padding:.6rem .85rem;border-radius:var(--vy-r-lg);font-size:.88rem;line-height:1.45;word-wrap:break-word;position:relative}
.vy-bubble-in{background:var(--vy-surface-2);color:var(--vy-text);border:1px solid var(--vy-border);border-bottom-left-radius:4px}
.vy-bubble-out{background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 14px rgba(124,92,255,.3)}
.vy-bubble-sys{background:rgba(124,92,255,.12);color:#d2c7ff;font-size:.8rem;margin:0 auto;text-align:center;border:1px solid rgba(124,92,255,.22)}
.vy-bubble-txt{white-space:pre-wrap}
.vy-bubble-time{font-size:.66rem;opacity:.65;margin-top:.25rem;text-align:right;font-family:var(--vy-font-mono)}

@media (max-width:480px){
  .vy-bubble{max-width:88%;font-size:.85rem}
  .vy-chat-box{padding:.75rem;max-height:55vh}
}

/* =====================================================
   Assistente global — coluna lateral esquerda (Lovable-style)
   ===================================================== */
.vy-asst-dock{position:fixed;top:0;left:0;height:100vh;height:100dvh;z-index:1200;display:flex;align-items:stretch;pointer-events:none}
.vy-asst-rail{
  pointer-events:auto;width:44px;flex:0 0 44px;
  border:0;border-right:1px solid var(--vy-divider);
  cursor:pointer;background:var(--vy-bg-2);
  color:var(--vy-text-3);
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:84px;
  transition:color var(--vy-dur-base),background var(--vy-dur-base);
}
.vy-asst-rail:hover{color:var(--vy-primary);background:var(--vy-surface-2)}
.vy-asst-dock.open .vy-asst-rail{color:var(--vy-primary)}
.vy-asst-col{
  pointer-events:auto;width:0;overflow:hidden;
  background:var(--vy-bg-2);
  border-right:1px solid var(--vy-border);
  display:flex;flex-direction:column;
  transition:width var(--vy-dur-slow) cubic-bezier(.4,0,.2,1);
  box-shadow:8px 0 40px rgba(0,0,0,.5);
}
.vy-asst-dock.open .vy-asst-col{width:380px;max-width:calc(100vw - 44px)}
.vy-asst-head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--vy-divider);background:var(--vy-card);flex:0 0 auto;min-width:380px}
.vy-asst-title{display:flex;align-items:center;gap:.55rem;color:var(--vy-text);font-weight:600;font-size:.95rem;white-space:nowrap}
.vy-asst-title svg{color:var(--vy-primary)}
.vy-asst-head-actions{display:flex;align-items:center;gap:.15rem}
.vy-asst-ico{background:none;border:0;color:var(--vy-text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--vy-r-sm);font-size:1.3rem;line-height:1;transition:color var(--vy-dur-fast),background var(--vy-dur-fast);font-family:inherit}
.vy-asst-ico:hover{color:var(--vy-text);background:rgba(255,255,255,.06)}
.vy-asst-convs{flex:0 0 auto;max-height:42%;overflow-y:auto;border-bottom:1px solid var(--vy-divider);background:var(--vy-bg);min-width:380px;padding:.45rem}
.vy-asst-conv-empty{color:var(--vy-text-2);font-size:.82rem;padding:.75rem .6rem;text-align:center}
.vy-asst-conv-row{display:flex;align-items:center;gap:.3rem;border-radius:var(--vy-r-sm)}
.vy-asst-conv-row.active{background:var(--vy-accent-soft)}
.vy-asst-conv-row:hover{background:rgba(255,255,255,.05)}
.vy-asst-conv-pick{flex:1;min-width:0;text-align:left;background:none;border:0;color:var(--vy-text);cursor:pointer;padding:.55rem .65rem;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}
.vy-asst-conv-del{background:none;border:0;color:var(--vy-text-2);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .5rem;opacity:.6}
.vy-asst-conv-del:hover{color:var(--vy-danger);opacity:1}
.vy-asst-body{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;min-width:380px}
.vy-asst-msg{max-width:85%;padding:.6rem .85rem;border-radius:var(--vy-r-lg);font-size:.88rem;line-height:1.5;word-wrap:break-word;white-space:pre-wrap}
.vy-asst-msg.user{align-self:flex-end;background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 14px rgba(124,92,255,.3)}
.vy-asst-msg.agent{align-self:flex-start;background:var(--vy-surface-2);color:var(--vy-text);border:1px solid var(--vy-border);border-bottom-left-radius:4px}
.vy-asst-msg.system{align-self:center;background:var(--vy-surface-2);color:var(--vy-text-2);font-size:.8rem;text-align:center;border-radius:var(--vy-r-sm);border:1px solid var(--vy-border)}
.vy-asst-think{align-self:flex-start;display:flex;align-items:center;gap:.5rem;background:var(--vy-surface-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-lg);padding:.55rem .85rem;color:var(--vy-text-2);font-size:.82rem}
.vy-asst-dots{display:inline-flex;gap:.22rem}
.vy-asst-dots span{width:6px;height:6px;border-radius:50%;background:var(--vy-primary);animation:vyTyp 1s infinite}
.vy-asst-dots span:nth-child(2){animation-delay:.2s}
.vy-asst-dots span:nth-child(3){animation-delay:.4s}
.vy-asst-think-txt{opacity:.85}
@keyframes vyTyp{0%,60%,100%{opacity:.3}30%{opacity:1}}
.vy-asst-acts{align-self:flex-start;display:flex;flex-wrap:wrap;gap:.35rem;margin:.1rem 0}
.vy-asst-chip{font-size:.74rem;background:var(--vy-success-soft);color:#86efac;border:1px solid rgba(74,222,128,.3);border-radius:var(--vy-r-pill);padding:.22rem .6rem;white-space:nowrap}
.vy-asst-form{display:flex;gap:.5rem;padding:.8rem;border-top:1px solid var(--vy-divider);flex:0 0 auto;min-width:380px;align-items:flex-end}
.vy-asst-form input,.vy-asst-form textarea{flex:1;background:var(--vy-surface-2);border:1px solid var(--vy-border);border-radius:var(--vy-r-md);color:var(--vy-text);padding:.65rem .85rem;font-size:.88rem;min-width:0;font-family:inherit}
.vy-asst-form textarea{resize:none;line-height:1.4;max-height:160px;overflow-y:auto}
.vy-asst-form input:focus,.vy-asst-form textarea:focus{outline:none;border-color:var(--vy-primary);box-shadow:0 0 0 3px var(--vy-accent-soft)}
.vy-asst-form button{width:42px;flex:0 0 42px;height:42px;border:0;border-radius:var(--vy-r-md);background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(124,92,255,.35)}
.vy-asst-form button:disabled{opacity:.5;cursor:default;box-shadow:none}

/* Mobile: FAB + full-screen */
@media (max-width:768px){
  .vy-asst-dock{top:auto;bottom:0;left:0;right:0;height:auto;width:100vw;align-items:flex-end;justify-content:flex-end}
  .vy-asst-rail{
    position:fixed;right:14px;bottom:14px;
    width:54px;height:54px;flex:0 0 auto;
    border:1px solid rgba(124,92,255,.4);border-radius:50%;
    padding:0;align-items:center;justify-content:center;
    background:linear-gradient(180deg,#9b85ff,var(--vy-primary));
    color:#fff;
    box-shadow:0 8px 28px rgba(124,92,255,.4), 0 0 0 6px rgba(124,92,255,.14);
    z-index:1201;
  }
  .vy-asst-rail:hover,.vy-asst-dock.open .vy-asst-rail{background:linear-gradient(180deg,var(--vy-primary),var(--vy-primary-2));color:#fff}
  .vy-asst-dock.open .vy-asst-rail{display:none}
  .vy-asst-col{
    position:fixed;left:0;right:0;top:0;bottom:0;
    width:100vw !important;max-width:100vw !important;
    height:100vh;height:100dvh;
    border-right:0;
    transition:transform .25s ease,opacity .2s ease;
    transform:translateY(100%);opacity:0;
  }
  .vy-asst-dock.open .vy-asst-col{transform:translateY(0);opacity:1}
  .vy-asst-head,.vy-asst-body,.vy-asst-form,.vy-asst-convs{min-width:0}
  .vy-asst-head{padding:.9rem 1rem}
  .vy-asst-title{font-size:1rem}
  .vy-asst-ico{width:38px;height:38px;font-size:1.4rem}
  .vy-asst-form{padding:.65rem .8rem calc(.65rem + env(safe-area-inset-bottom,0px));gap:.45rem}
  .vy-asst-form input,.vy-asst-form textarea{font-size:16px;padding:.75rem .9rem}
  .vy-asst-form button{width:46px;flex-basis:46px;height:46px}
  .vy-asst-msg{max-width:88%;font-size:.92rem}
  .vy-asst-body{padding:.9rem;gap:.65rem;-webkit-overflow-scrolling:touch}
  .vy-asst-convs{max-height:50%}
  #vy-asst-close{font-size:1.6rem}
}
@media (min-width:769px){
  body:has(.vy-asst-dock) .vy-container{padding-left:calc(1rem + 44px)}
}
