/* ============================================================
   PRIMUS AI — Chat-Specific Styles
   Message bubbles, typing indicators, chat area, send animations
   ============================================================ */

/* --- Chat Message Area --- */
.cm{min-height:100px;max-height:380px;overflow-y:auto;padding:22px;scroll-behavior:smooth}
.cm::-webkit-scrollbar{width:3px}
.cm::-webkit-scrollbar-track{background:transparent}
.cm::-webkit-scrollbar-thumb{background:rgba(212,149,42,.3);border-radius:4px}

/* --- Premium Chat Bubbles (tool panels) --- */
.cb{max-width:85%;padding:16px 18px;border-radius:18px;margin-bottom:14px;font-size:.9rem;font-family:var(--fs);line-height:1.6}
.cb .lb{font-size:.65rem;font-family:var(--fd);letter-spacing:.12em;background:var(--gold-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;display:block}

/* AI bubble — dark glass with gold accents */
.cb.a{
  background:
    radial-gradient(ellipse 90% 90% at 20% 30%,rgba(230,183,112,0.10),transparent 50%),
    radial-gradient(ellipse 80% 80% at 80% 70%,rgba(212,149,42,0.07),transparent 50%),
    radial-gradient(ellipse 100% 60% at 60% 0%,rgba(245,216,122,0.06),transparent 60%),
    linear-gradient(165deg,rgba(18,18,22,0.95) 0%,rgba(8,8,12,0.98) 100%);
  background-size:250% 250%,250% 250%,200% 200%,100% 100%;
  backdrop-filter:blur(20px) saturate(1.5);
  border:1px solid rgba(230,183,112,0.18);
  border-radius:18px 18px 18px 6px;
  color:var(--t1);
  box-shadow:0 10px 30px rgba(0,0,0,0.35),0 0 20px rgba(230,183,112,0.04);
  animation:aiReveal .8s cubic-bezier(0.16,1,0.3,1) both,aiWave 6s ease-in-out 1s infinite;
  transform-origin:0% 100%;
  position:relative;
  overflow:hidden;
}
.cb.a::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(240,201,106,0.25) 20%,rgba(253,232,160,0.4) 50%,rgba(240,201,106,0.25) 80%,transparent);
  background-size:200% 100%;animation:aiBorderTravel 3s linear infinite;
}

/* User bubble — premium gold with 3D pop, auto-sized to content */
.cb.u{
  width:fit-content;
  background:linear-gradient(135deg,rgba(192,122,24,1) 0%,rgba(230,183,112,1) 35%,rgba(253,232,160,1) 65%,rgba(240,201,106,1) 100%);
  background-size:200% 200%;
  color:#06070b;
  margin-left:auto;
  border-radius:18px 18px 6px 18px;
  font-weight:500;
  border:1px solid rgba(253,232,160,0.5);
  box-shadow:0 10px 28px rgba(0,0,0,0.4),0 0 18px rgba(230,183,112,0.12),inset 0 1px 0 rgba(255,255,255,0.2);
  animation:primusPopUser .6s cubic-bezier(0.16,1,0.3,1) both;
  transform-origin:100% 100%;
  position:relative;
  overflow:hidden;
}
.cb.u::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent);
  pointer-events:none;animation:sheen 1.2s .4s ease forwards;
}
.cb.u .lb{-webkit-text-fill-color:rgba(6,7,11,.45);background:none}

/* --- Bubble Keyframes --- */
@keyframes bubIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}

/* --- Typing Indicator --- */
@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
.ti{display:flex;gap:4px;padding:14px 18px}
.ti span{width:6px;height:6px;background:var(--g2);border-radius:50%;animation:typing 1.4s infinite;opacity:.4}
.ti span:nth-child(2){animation-delay:.2s}
.ti span:nth-child(3){animation-delay:.4s}

/* --- Premium Message Bubbles (main chat) --- */
@keyframes primusPopUser{
  0%{opacity:0;transform:perspective(800px) translateY(20px) translateX(30px) rotateX(8deg) scale(0.85);filter:blur(3px)}
  30%{opacity:0.7;filter:blur(1px)}
  100%{opacity:1;transform:perspective(800px) translateY(0) translateX(0) rotateX(0) scale(1);filter:blur(0)}
}
@keyframes aiReveal{
  0%{opacity:0;transform:perspective(1200px) translateZ(-80px) translateY(30px) rotateX(12deg);filter:blur(6px);border-color:rgba(230,183,112,0);box-shadow:0 0 0 rgba(230,183,112,0)}
  15%{opacity:0.3;transform:perspective(1200px) translateZ(-40px) translateY(15px) rotateX(6deg);filter:blur(3px)}
  50%{opacity:0.85;border-color:rgba(230,183,112,0.25);filter:blur(0.5px)}
  80%{transform:perspective(1200px) translateZ(5px) translateY(-2px) rotateX(-0.5deg);box-shadow:0 15px 40px rgba(0,0,0,0.4),0 0 30px rgba(230,183,112,0.08)}
  100%{opacity:1;transform:perspective(1200px) translateZ(0) translateY(0) rotateX(0);filter:blur(0);border-color:rgba(230,183,112,0.22);box-shadow:0 12px 35px rgba(0,0,0,0.35),0 0 25px rgba(230,183,112,0.06),0 0 60px rgba(230,183,112,0.03)}
}
@keyframes aiGlowPulse{
  0%,100%{box-shadow:0 12px 35px rgba(0,0,0,0.35),0 0 25px rgba(230,183,112,0.06),0 0 60px rgba(230,183,112,0.03)}
  50%{box-shadow:0 12px 35px rgba(0,0,0,0.35),0 0 30px rgba(230,183,112,0.1),0 0 80px rgba(230,183,112,0.05)}
}
@keyframes aiBorderTravel{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes aiWave{
  0%{background-position:0% 50%,100% 50%,50% 0%,0% 30%}
  20%{background-position:30% 80%,70% 20%,80% 60%,50% 0%}
  40%{background-position:70% 30%,30% 80%,20% 90%,100% 50%}
  60%{background-position:100% 70%,0% 40%,60% 20%,30% 80%}
  80%{background-position:40% 20%,60% 70%,90% 80%,70% 10%}
  100%{background-position:0% 50%,100% 50%,50% 0%,0% 30%}
}
@keyframes aiTextReveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* --- Message Wrappers --- */
.msg-wrap{opacity:1}
.msg-wrap.usr{display:flex;flex-direction:column;align-items:flex-end}
.msg-wrap.ai{display:flex;flex-direction:column;align-items:flex-start}

/* --- User Bubble --- */
.msg-bubble-user{
  font-size:16px;
  color:#fff;
  background:linear-gradient(135deg,rgb(185,150,90) 0%,rgb(230,183,112) 40%,rgb(245,216,156) 100%);
  border-radius:18px;
  border-top-right-radius:10px;
  padding:12px 14px;
  border:1px solid rgba(230,183,112,0.35);
  max-width:720px;
  line-height:1.35;
  box-shadow:0 10px 22px rgba(0,0,0,0.38),0 0 15px rgba(230,183,112,0.1);
  animation:primusPopUser 0.6s cubic-bezier(0.16,1,0.3,1) both;
  transform-origin:100% 100%;
  position:relative;
}

/* --- AI Bubble --- */
.msg-bubble-ai{
  font-size:16px;
  color:rgba(255,255,255,0.94);
  background:
    radial-gradient(ellipse 90% 90% at 20% 30%,rgba(230,183,112,0.12),transparent 50%),
    radial-gradient(ellipse 80% 80% at 80% 70%,rgba(212,149,42,0.09),transparent 50%),
    radial-gradient(ellipse 70% 70% at 50% 50%,rgba(240,201,106,0.07),transparent 50%),
    radial-gradient(ellipse 100% 60% at 60% 0%,rgba(245,216,122,0.08),transparent 60%),
    linear-gradient(165deg,rgba(18,18,22,0.95) 0%,rgba(8,8,12,0.98) 100%);
  background-size:250% 250%,250% 250%,200% 200%,200% 200%,100% 100%;
  animation:aiReveal 1s cubic-bezier(0.16,1,0.3,1) both,aiGlowPulse 4s ease-in-out 1.2s infinite,aiWave 6s ease-in-out 1s infinite;
  backdrop-filter:blur(20px) saturate(1.5);
  border-radius:18px;
  border-top-left-radius:10px;
  padding:16px 18px;
  border:1px solid rgba(230,183,112,0.22);
  max-width:720px;
  line-height:1.5;
  transform-origin:0% 100%;
  position:relative;
  overflow:hidden;
}
.msg-bubble-ai::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(240,201,106,0.3) 20%,rgba(253,232,160,0.5) 50%,rgba(240,201,106,0.3) 80%,transparent);
  background-size:200% 100%;
  animation:aiBorderTravel 3s linear infinite;
}
.msg-bubble-ai::after{
  content:'';
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  border-radius:inherit;
  background:
    radial-gradient(ellipse 60% 40% at 15% 0%,rgba(230,183,112,0.07),transparent 60%),
    radial-gradient(ellipse 40% 60% at 90% 100%,rgba(230,183,112,0.03),transparent 50%);
  pointer-events:none;
}
.msg-bubble-ai .ai-text{position:relative;z-index:1;animation:aiTextReveal 0.6s ease 0.3s both}

/* --- Streaming cursor for progressive token rendering --- */
.msg-bubble-ai .ai-text .streaming-cursor{
  display:inline-block;
  width:2px;
  height:1em;
  background:var(--g2);
  margin-left:2px;
  vertical-align:text-bottom;
  animation:cursorBlink 1s step-end infinite;
}
@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}

/* --- Message Timestamp --- */
.msg-time{font-size:11px;color:rgba(230,183,112,0.7);margin-top:4px;font-family:var(--fs)}
.msg-wrap.ai .msg-time{animation:aiTextReveal 0.4s ease 0.8s both}

/* ============================================================
   BUYER WIZARD — Guided Qualification Flow
   4-step wizard → program match → payment calculator → chat
   ============================================================ */

/* --- Container --- */
.wz-container{padding:4px 20px 20px}

/* --- Progress Bar --- */
.wz-progress{margin-bottom:26px}
.wz-bar{height:2px;background:rgba(255,255,255,.06);border-radius:999px;margin-bottom:8px;overflow:hidden}
.wz-fill{height:100%;background:linear-gradient(90deg,#f0c96a,#d4952a);border-radius:999px;transition:width 500ms cubic-bezier(.16,1,.3,1);box-shadow:0 0 10px rgba(240,201,106,.4)}
.wz-step-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(212,149,42,.45);font-family:var(--fs)}

/* --- Question --- */
.wz-question{
  font-family:var(--fd);font-size:24px;font-weight:600;margin-bottom:26px;line-height:1.35;
  background:linear-gradient(110deg,#f0c96a,#fde8a0 50%,#d4952a);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

/* --- Option Buttons --- */
.wz-options{display:flex;flex-direction:column;gap:10px}
.wz-opt{
  display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.07);
  color:rgba(245,240,232,.85);font-family:var(--fs);cursor:pointer;text-align:left;
  transition:all 250ms cubic-bezier(.16,1,.3,1);
  position:relative;overflow:hidden;
}
.wz-opt::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(ellipse 120% 80% at 10% 50%,rgba(230,183,112,.08),transparent 60%);
  opacity:0;transition:opacity 250ms;
}
.wz-opt:hover{
  background:rgba(212,149,42,.08);border-color:rgba(212,149,42,.35);
  transform:translateX(6px);
  box-shadow:0 4px 20px rgba(0,0,0,.2),0 0 12px rgba(230,183,112,.06);
}
.wz-opt:hover::before{opacity:1}
.wz-opt:active{transform:translateX(6px) scale(.98)}
.wz-opt svg{opacity:.25;flex:0 0 auto;transition:all 250ms;color:rgba(245,240,232,.5)}
.wz-opt:hover svg{opacity:.7;color:#f0c96a;transform:translateX(3px)}
.wz-opt-text{flex:1;position:relative;z-index:1}
.wz-opt-label{font-weight:700;font-size:14px}
.wz-opt-sub{font-size:12px;opacity:.5;margin-top:3px}

/* --- Recommendation Result --- */
.wz-result{text-align:center;padding:28px 0 12px;animation:wzFadeUp .6s cubic-bezier(.16,1,.3,1) both}
.wz-result-badge{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(212,149,42,.55);margin-bottom:12px;font-family:var(--fs);
}
.wz-result-name{
  font-family:var(--fd);font-size:34px;font-weight:700;
  background:linear-gradient(110deg,#f0c96a,#fde8a0 40%,#d4952a);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:10px;
}
.wz-result-tag{
  display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 14px;border-radius:999px;
  background:rgba(212,149,42,.1);color:rgba(240,201,106,.85);
  border:1px solid rgba(212,149,42,.2);margin-bottom:14px;font-family:var(--fs);
}
.wz-result-sub{font-size:14px;opacity:.65;line-height:1.55;margin-bottom:20px;font-family:var(--fs)}
.wz-chips{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.wz-chip{
  font-size:11px;padding:5px 12px;border-radius:999px;
  background:rgba(240,201,106,.06);border:1px solid rgba(240,201,106,.15);
  color:rgba(240,201,106,.8);font-family:var(--fs);letter-spacing:.02em;
}

/* --- Calculator Card --- */
.wz-calc{
  margin-top:28px;padding:26px;border-radius:18px;
  background:
    radial-gradient(ellipse 80% 60% at 20% 20%,rgba(230,183,112,.06),transparent 50%),
    linear-gradient(165deg,rgba(18,18,22,.95) 0%,rgba(8,8,12,.98) 100%);
  border:1px solid rgba(230,183,112,.14);
  box-shadow:0 12px 35px rgba(0,0,0,.35),0 0 25px rgba(230,183,112,.04);
  animation:wzFadeUp .6s .15s cubic-bezier(.16,1,.3,1) both;
  position:relative;overflow:hidden;
}
.wz-calc::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(240,201,106,.2) 20%,rgba(253,232,160,.35) 50%,rgba(240,201,106,.2) 80%,transparent);
  background-size:200% 100%;animation:aiBorderTravel 3s linear infinite;
}
.wz-calc-title{
  font-family:var(--fd);font-size:18px;font-weight:600;margin-bottom:20px;
  background:linear-gradient(110deg,#f0c96a,#fde8a0);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.wz-calc-fields{display:flex;flex-direction:column;gap:14px}
.wz-field label{
  display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(240,201,106,.45);margin-bottom:6px;font-family:var(--fs);
}
.wz-field-row{display:flex;gap:14px}
.wz-field-row .wz-field{flex:1}
.wz-input-wrap{position:relative;display:flex;align-items:center}
.wz-prefix,.wz-suffix{
  position:absolute;color:rgba(240,201,106,.45);font-size:14px;font-family:var(--fs);
  pointer-events:none;z-index:1;
}
.wz-prefix{left:14px}
.wz-suffix{right:14px}
.wz-input{
  width:100%;padding:13px 14px;border-radius:10px;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);
  color:var(--t1);font-size:16px;font-family:var(--fs);
  transition:all 200ms;
}
.wz-input:focus{outline:none;border-color:rgba(212,149,42,.45);box-shadow:0 0 12px rgba(212,149,42,.08)}
.wz-has-prefix{padding-left:30px}
.wz-has-suffix{padding-right:30px}
.wz-calc-btn{
  width:100%;margin-top:20px;padding:15px;border-radius:12px;
  background:linear-gradient(135deg,rgba(192,122,24,1) 0%,rgba(230,183,112,1) 35%,rgba(253,232,160,1) 65%,rgba(240,201,106,1) 100%);
  background-size:200% 200%;
  color:#06070b;font-weight:700;font-size:14px;font-family:var(--fs);
  border:1px solid rgba(253,232,160,.5);cursor:pointer;letter-spacing:.03em;
  box-shadow:0 8px 24px rgba(0,0,0,.35),0 0 14px rgba(230,183,112,.1),inset 0 1px 0 rgba(255,255,255,.2);
  transition:all 250ms cubic-bezier(.16,1,.3,1);
  position:relative;overflow:hidden;
}
.wz-calc-btn::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  pointer-events:none;
}
.wz-calc-btn:hover{
  background-position:100% 100%;
  box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 20px rgba(230,183,112,.15),inset 0 1px 0 rgba(255,255,255,.25);
  transform:translateY(-1px);
}
.wz-calc-btn:hover::after{animation:sheen 1s ease forwards}
.wz-calc-btn:active{transform:translateY(0) scale(.98)}

/* --- Payment Results --- */
.wz-payment-result{margin-top:22px;animation:wzFadeUp .5s cubic-bezier(.16,1,.3,1) both}
.wz-pay-total{
  text-align:center;margin-bottom:20px;padding-bottom:18px;
  border-bottom:1px solid rgba(230,183,112,.1);
}
.wz-pay-lbl{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(240,201,106,.45);margin-bottom:8px;font-family:var(--fs);
}
.wz-pay-amount{
  font-family:var(--fd);font-size:40px;font-weight:700;
  background:linear-gradient(110deg,#f0c96a,#fde8a0 50%,#d4952a);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.wz-pay-amount span{font-size:16px;opacity:.6}
.wz-pay-rows{display:flex;flex-direction:column;gap:10px}
.wz-pay-row{
  display:flex;justify-content:space-between;font-size:13px;
  color:rgba(245,240,232,.65);font-family:var(--fs);
}
.wz-pay-row span:last-child{font-weight:600;color:var(--t1)}
.wz-pay-footer{
  margin-top:14px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,.05);
  display:flex;flex-direction:column;gap:8px;
}
.wz-pay-dim{opacity:.45;font-size:12px}
.wz-error{color:#ef4444;font-size:13px;text-align:center;padding:10px;font-family:var(--fs)}

/* --- Actions --- */
.wz-actions{text-align:center;margin-top:20px}
.wz-restart{
  background:transparent;border:1px solid rgba(255,255,255,.08);
  color:rgba(245,240,232,.4);padding:10px 28px;border-radius:999px;
  cursor:pointer;font-size:12px;font-family:var(--fs);transition:all 200ms;
}
.wz-restart:hover{border-color:rgba(212,149,42,.25);color:rgba(240,201,106,.55)}

/* --- Wizard Animations --- */
@keyframes wzFadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

/* --- Responsive Chat + Wizard --- */
@media(max-width:600px){
  .cb{max-width:92%}
  .msg-bubble-user,.msg-bubble-ai{max-width:95%}
  .wz-container{padding:4px 14px 14px}
  .wz-question{font-size:20px}
  .wz-result-name{font-size:28px}
  .wz-pay-amount{font-size:32px}
  .wz-field-row{flex-direction:column;gap:12px}
  .wz-calc{padding:20px}
}
