:root { font-family: Poppins, Arial, sans-serif; --ink:#201c20; --pink:#ef006d; --surface:rgba(255,255,255,.72); }
* { box-sizing: border-box; }
html,body { margin:0; min-height:100%; background:#f8eef4; color:var(--ink); }
body { min-height:100svh; }
button,input { font:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.chat-page { position:relative; isolation:isolate; min-height:100svh; overflow:hidden; padding:24px 20px max(20px,env(safe-area-inset-bottom)); }
.chat-page::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(248,238,244,.48)); }
.chat-vanta { position:absolute; inset:0; z-index:-2; background:#f7eaf2; opacity:.92; filter:saturate(1.14) contrast(1.02); }
.chat-vanta canvas { width:100%!important; height:100%!important; }
.chat-header { width:min(100%,720px); margin:auto; display:flex; align-items:center; justify-content:space-between; }
.chat-header img { display:block; width:clamp(118px,30vw,158px); }
.chat-presence { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.chat-presence i { width:8px; height:8px; border-radius:50%; background:#33bd78; box-shadow:0 0 0 4px rgba(51,189,120,.13); }
.chat-shell { width:min(100%,720px); height:calc(100svh - 91px); margin:20px auto 0; display:grid; grid-template-rows:auto minmax(0,1fr) auto auto auto; }
.chat-intro { padding:15px 1px 22px; }
.chat-intro p { margin:0 0 7px; color:var(--pink); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.chat-intro h1 { margin:0; font-size:clamp(30px,7vw,50px); line-height:1; letter-spacing:-.045em; font-weight:650; }
.chat-intro span { display:block; margin-top:10px; font-size:13px; color:rgba(32,28,32,.66); }
.conversation { min-height:0; overflow-y:auto; padding:8px 2px 18px; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:rgba(239,0,109,.25) transparent; }
.message-row { display:flex; align-items:flex-end; gap:9px; margin:0 0 14px; animation:message-in .34s cubic-bezier(.2,.8,.2,1) both; }
.message-row.user { justify-content:flex-end; }
.bot-avatar { position:relative; overflow:hidden; flex:0 0 42px; width:42px; height:42px; border-radius:13px; background:rgba(255,255,255,.82); box-shadow:0 8px 24px rgba(66,20,47,.1); }
.bot-avatar cria-bot { position:absolute; top:6px; right:auto; bottom:auto; left:50%; width:43px; color:var(--pink); transform:translateX(-50%); transform-origin:50% 0; clip-path:inset(0 0 56% 0); filter:drop-shadow(0 4px 4px rgba(92,0,39,.18)); }
.bot-avatar cria-bot, .bot-avatar cria-bot * { animation:none!important; transition:none!important; }
.message { max-width:min(82%,510px); padding:13px 15px 9px; border:1px solid rgba(32,28,32,.1); border-radius:18px 18px 18px 5px; background:var(--surface); box-shadow:0 13px 35px rgba(76,26,57,.08); backdrop-filter:blur(16px); }
.user .message { border-color:transparent; border-radius:18px 18px 5px 18px; background:var(--pink); color:#fff; box-shadow:0 13px 35px rgba(239,0,109,.18); }
.message p { margin:0; font-size:14px; line-height:1.48; }
.message time { display:block; margin-top:5px; font-size:9px; opacity:.48; text-align:right; }
.typing { width:68px; height:36px; margin:0 0 10px 46px; padding:0 15px; align-items:center; gap:4px; border-radius:16px 16px 16px 5px; background:rgba(255,255,255,.74); }
.typing:not([hidden]) { display:flex; }
.typing span { width:5px; height:5px; border-radius:50%; background:var(--pink); animation:typing 1s ease-in-out infinite; }
.typing span:nth-child(2) { animation-delay:.14s; }.typing span:nth-child(3) { animation-delay:.28s; }
.composer { display:grid; grid-template-columns:1fr 54px; gap:9px; padding:8px; border:1px solid rgba(32,28,32,.14); border-radius:20px; background:rgba(255,255,255,.81); box-shadow:0 20px 52px rgba(84,26,62,.14); backdrop-filter:blur(20px); }
.composer input { min-width:0; height:48px; padding:0 10px; border:0; outline:0; background:transparent; color:var(--ink); font-size:15px; }
.composer input::placeholder { color:rgba(32,28,32,.4); }
.composer:focus-within { border-color:rgba(239,0,109,.66); box-shadow:0 20px 56px rgba(239,0,109,.16); }
.composer button { position:relative; width:54px; height:48px; border:0; border-radius:14px; background:var(--pink); color:#fff; cursor:pointer; display:grid; place-items:center; }
.composer button span { font-size:31px; line-height:1; transform:translateY(-1px); }
.composer button cria-bot { position:absolute; right:8px; bottom:calc(100% - 4px); width:34px; color:var(--pink); filter:drop-shadow(0 5px 6px rgba(92,0,39,.2)); }
.composer button:disabled,.composer input:disabled { opacity:.55; cursor:wait; }
.chat-note { margin:9px 0 0; color:rgba(32,28,32,.52); font-size:9px; text-align:center; }
.chat-note a { color:#b90055; font-weight:700; text-underline-offset:2px; }
.finish-card { display:grid; gap:13px; margin:8px 0 16px 50px; padding:18px; border:1px solid rgba(239,0,109,.25); border-radius:19px; background:rgba(255,255,255,.86); box-shadow:0 17px 42px rgba(77,22,56,.1); backdrop-filter:blur(18px); animation:message-in .4s cubic-bezier(.2,.8,.2,1) both; }
.finish-heading { display:grid; gap:4px; }
.finish-heading small { color:var(--pink); font-size:9px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.finish-heading strong { font-size:17px; line-height:1.2; }
.evolution-visual { position:relative; overflow:hidden; padding:15px; border-radius:16px; color:#fff; background:radial-gradient(circle at 83% 2%,rgba(239,0,109,.38),transparent 38%),radial-gradient(circle at 9% 82%,rgba(27,199,235,.22),transparent 42%),#211a25; box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 18px 38px rgba(44,17,35,.18); }
.evolution-visual::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(to bottom,black,transparent 74%); }
.plan-overview { position:relative; display:grid; grid-template-columns:76px 1fr; gap:14px; align-items:center; padding:3px 2px 16px; border-bottom:1px solid rgba(255,255,255,.1); }
.plan-overview > div:last-child { display:grid; gap:4px; }
.plan-overview small { color:#ff57a5; font-size:8px; font-weight:800; letter-spacing:.13em; }
.plan-overview strong { font-size:14px; line-height:1.22; letter-spacing:-.025em; }
.plan-orbit { position:relative; width:68px; height:68px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(from 210deg,#ef006d,#8b5cff,#1bc7eb,#ef006d); box-shadow:0 0 30px rgba(239,0,109,.25); animation:orbit-glow 3.4s ease-in-out infinite; }
.plan-orbit::before { content:""; position:absolute; inset:4px; border-radius:50%; background:#211a25; }
.plan-orbit i { position:absolute; inset:-4px; border:1px solid rgba(255,255,255,.18); border-radius:50%; border-right-color:#fff; animation:orbit-spin 6s linear infinite; }
.plan-orbit span { position:relative; display:grid; text-align:center; color:rgba(255,255,255,.62); font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.plan-orbit b { color:#fff; font-size:21px; line-height:1; }
.evolution-route { position:relative; display:grid; gap:0; padding-top:12px; }
.evolution-route::before { content:""; position:absolute; left:18px; top:33px; bottom:34px; width:2px; background:linear-gradient(#ef006d,#9c5cff 52%,#1bc7eb); box-shadow:0 0 13px rgba(239,0,109,.55); transform-origin:top; animation:route-grow 1.1s .2s cubic-bezier(.2,.8,.2,1) both; }
.route-stage { position:relative; display:grid; grid-template-columns:38px 1fr; gap:11px; padding:9px 0; opacity:0; animation:route-reveal .48s var(--stage-delay) cubic-bezier(.2,.8,.2,1) forwards; }
.route-marker { position:relative; z-index:1; width:38px; height:38px; display:grid; place-items:center; }
.route-marker i { position:absolute; inset:5px; border-radius:50%; background:#ef006d; box-shadow:0 0 0 5px rgba(239,0,109,.12),0 0 18px rgba(239,0,109,.42); }
.route-marker span { position:relative; font-size:8px; font-weight:800; }
.route-proximo .route-marker i { background:#9c5cff; box-shadow:0 0 0 5px rgba(156,92,255,.12),0 0 18px rgba(156,92,255,.42); }
.route-futuro .route-marker i { background:#1bc7eb; box-shadow:0 0 0 5px rgba(27,199,235,.12),0 0 18px rgba(27,199,235,.42); }
.route-content { min-width:0; display:grid; gap:3px; padding:2px 0; }
.route-content small { color:#ff5aa7; font-size:7px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.route-proximo .route-content small { color:#b893ff; }.route-futuro .route-content small { color:#55dff5; }
.route-content strong { font-size:12px; line-height:1.25; }
.route-content p { margin:0; color:rgba(255,255,255,.62); font-size:9px; line-height:1.45; }
.finish-card > p { margin:0; color:rgba(32,28,32,.62); font-size:10px; line-height:1.45; }
.finish-card a { min-height:50px; display:grid; place-items:center; padding:0 12px; border-radius:12px; background:var(--pink); color:#fff; text-decoration:none; text-align:center; font-size:11px; font-weight:800; box-shadow:0 12px 28px rgba(239,0,109,.18); }
@keyframes message-in { from { opacity:0; transform:translateY(9px) scale(.98); } }
@keyframes typing { 0%,60%,100% { transform:translateY(0); opacity:.35; } 30% { transform:translateY(-4px); opacity:1; } }
@keyframes orbit-spin { to { transform:rotate(360deg); } }
@keyframes orbit-glow { 0%,100%{filter:saturate(1)} 50%{filter:saturate(1.25) brightness(1.08)} }
@keyframes route-grow { from{transform:scaleY(0)} to{transform:scaleY(1)} }
@keyframes route-reveal { from{opacity:0;transform:translateY(9px)} to{opacity:1;transform:translateY(0)} }
@media (min-width:700px) { .chat-page { padding-top:34px; }.chat-shell { height:calc(100svh - 116px); }.message p { font-size:15px; } }
@media (min-width:1000px) { .chat-page { height:100svh; min-height:0; overflow:hidden; padding:26px clamp(48px,7vw,110px) 12px; }.chat-header,.chat-shell { width:min(100%,960px); }.chat-shell { height:calc(100svh - 100px); margin-top:10px; }.chat-intro { padding-top:18px; }.chat-intro h1 { font-size:56px; }.message { max-width:min(76%,680px); }.composer { grid-template-columns:1fr 62px; padding:10px; }.composer input { height:52px; font-size:16px; }.composer button { width:62px; height:52px; }.finish-card { margin-left:52px; }.evolution-visual{padding:22px 24px}.evolution-route{padding-top:16px}.evolution-route::before{left:22px;top:39px;bottom:40px}.route-stage{grid-template-columns:46px 1fr;gap:16px;padding:13px 0}.route-marker{width:46px;height:46px}.route-marker i{inset:6px}.route-marker span{font-size:10px}.route-content{gap:5px;padding:1px 0}.route-content small{font-size:9px}.route-content strong{font-size:16px;line-height:1.22}.route-content p{font-size:12px;line-height:1.55} }
@media (max-height:700px) { .chat-intro { padding:7px 1px 12px; }.chat-intro span { display:none; }.chat-shell { margin-top:10px; height:calc(100svh - 75px); } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
