:root{--bg: #131625;--bg-raised: #191d32;--surface: #20253f;--indigo: #4E598C;--gold-pale: #F9C784;--gold: #FCAF58;--orange: #FF8C42;--white: #FFFFFF;--text: #FFFFFF;--text-secondary:#F9C784;--text-muted: rgba(255, 255, 255, .42);--border: rgba(249, 199, 132, .1);--border-hover: rgba(252, 175, 88, .22);--border-focus: rgba(252, 175, 88, .38);--glow: rgba(255, 140, 66, .12);--glow-strong: rgba(255, 140, 66, .3);--user-bg: rgba(252, 175, 88, .07);--user-border: rgba(252, 175, 88, .16);--gradient-btn: linear-gradient(135deg, #FCAF58, #FF8C42);--gradient-text: linear-gradient(135deg, #F9C784, #FF8C42);--radius: 14px;--font-display: "Cinzel", serif;--font-body: "Karla", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#fcaf584d;color:var(--white)}.stars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden;background-image:radial-gradient(1px 1px at 8% 12%,rgba(249,199,132,.3) 0%,transparent 100%),radial-gradient(1px 1px at 22% 6%,rgba(252,175,88,.22) 0%,transparent 100%),radial-gradient(1px 1px at 43% 18%,rgba(255,140,66,.16) 0%,transparent 100%),radial-gradient(1px 1px at 65% 10%,rgba(249,199,132,.28) 0%,transparent 100%),radial-gradient(1px 1px at 80% 32%,rgba(252,175,88,.2) 0%,transparent 100%),radial-gradient(1px 1px at 4% 48%,rgba(249,199,132,.22) 0%,transparent 100%),radial-gradient(1px 1px at 36% 62%,rgba(255,140,66,.14) 0%,transparent 100%),radial-gradient(1px 1px at 90% 52%,rgba(249,199,132,.24) 0%,transparent 100%),radial-gradient(1px 1px at 52% 78%,rgba(252,175,88,.18) 0%,transparent 100%),radial-gradient(1px 1px at 16% 88%,rgba(249,199,132,.22) 0%,transparent 100%),radial-gradient(1px 1px at 72% 74%,rgba(255,140,66,.15) 0%,transparent 100%),radial-gradient(1px 1px at 58% 42%,rgba(249,199,132,.2) 0%,transparent 100%),radial-gradient(1px 1px at 2% 30%,rgba(252,175,88,.18) 0%,transparent 100%),radial-gradient(1px 1px at 96% 86%,rgba(249,199,132,.2) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 28% 28%,rgba(252,175,88,.4) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 68% 18%,rgba(249,199,132,.45) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 12% 60%,rgba(255,140,66,.35) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 84% 66%,rgba(252,175,88,.38) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 48% 48%,rgba(249,199,132,.32) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 35% 92%,rgba(252,175,88,.3) 0%,transparent 100%),radial-gradient(2px 2px at 18% 38%,rgba(252,175,88,.55) 0%,transparent 100%),radial-gradient(2px 2px at 76% 44%,rgba(249,199,132,.5) 0%,transparent 100%),radial-gradient(2px 2px at 40% 82%,rgba(255,140,66,.45) 0%,transparent 100%)}.stars:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 600px 400px at 25% 15%,rgba(78,89,140,.12) 0%,transparent 100%),radial-gradient(ellipse 500px 350px at 75% 80%,rgba(252,175,88,.03) 0%,transparent 100%),radial-gradient(ellipse 400px 300px at 50% 50%,rgba(78,89,140,.06) 0%,transparent 100%)}.stars:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1.5px 1.5px at 33% 25%,rgba(249,199,132,.6) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 62% 55%,rgba(252,175,88,.5) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 88% 30%,rgba(255,140,66,.45) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 10% 75%,rgba(249,199,132,.5) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 55% 15%,rgba(252,175,88,.55) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 44% 68%,rgba(249,199,132,.4) 0%,transparent 100%);animation:twinkle 4s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.4}50%{opacity:1}to{opacity:.6}}.app{height:100%;position:relative}.onboarding{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;position:relative;z-index:1;padding:20px}.step-card{background:#20253fd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(249,199,132,.1);border-radius:22px;padding:44px 40px 36px;text-align:center;width:380px;max-width:100%;box-shadow:0 8px 40px #0000004d,0 0 80px #fcaf5808;animation:step-in .4s ease-out both}@keyframes step-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.mandala{position:relative;display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;font-size:28px;margin-bottom:20px;border:1px dashed rgba(249,199,132,.22);border-radius:50%;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mandala:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%;border:1px dotted rgba(252,175,88,.18);animation:mandala-spin 30s linear infinite}.mandala:after{content:"";position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;border-radius:50%;border:1px dashed rgba(255,140,66,.1);animation:mandala-spin 45s linear infinite reverse}.mandala.sm{width:56px;height:56px;font-size:22px;margin-bottom:18px}.mandala.sm:before{top:-10px;right:-10px;bottom:-10px;left:-10px}.mandala.sm:after{top:-20px;right:-20px;bottom:-20px;left:-20px}@keyframes mandala-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-card h1{font-family:var(--font-display);font-size:22px;font-weight:500;margin-bottom:6px;letter-spacing:.04em;color:var(--white)}.step-card h2{font-family:var(--font-display);font-size:18px;font-weight:500;margin-bottom:6px;letter-spacing:.03em;color:var(--white)}.step-card>p{font-size:13px;color:var(--text-muted);margin-bottom:24px;line-height:1.55}.step-card input{width:100%;background:#4e598c26;border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font-body);font-size:15px;padding:13px 16px;outline:none;text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.step-card input::placeholder{color:var(--text-muted)}.step-card input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #fcaf580f}.step-card input[type=password]{letter-spacing:.1em}.step-card input[type=date],.step-card input[type=time]{color-scheme:dark}.step-btn{width:100%;background:var(--gradient-btn);color:#fff;border:none;border-radius:10px;padding:13px;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;letter-spacing:.02em;margin-top:14px;transition:box-shadow .25s ease,transform .15s ease,opacity .2s ease;box-shadow:0 2px 12px #ff8c422e}.step-btn:hover:not(:disabled){box-shadow:0 4px 24px #ff8c4259;transform:translateY(-1px)}.step-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.step-btn:disabled{opacity:.3;cursor:default;box-shadow:none}.step-actions{display:flex;align-items:center;gap:12px;margin-top:16px}.step-actions .step-btn{flex:1;margin-top:0}.step-back{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:13px;cursor:pointer;padding:10px 6px;transition:color .2s ease;white-space:nowrap}.step-back:hover{color:var(--gold-pale)}.step-error{color:#f87171;font-size:13px;margin-top:14px}.step-dots{display:flex;gap:10px;margin-top:32px}.step-dot{width:8px;height:8px;border-radius:50%;background:#ffffff1a;transition:all .35s ease}.step-dot.active{background:var(--orange);box-shadow:0 0 10px #ff8c4273;transform:scale(1.15)}.step-dot.done{background:var(--gold-pale);opacity:.7}.step-card.generating{border-color:transparent;background:#20253f80;box-shadow:none;padding:52px 40px 44px}.gen-mandala{position:relative;display:inline-flex;align-items:center;justify-content:center;width:110px;height:110px;font-size:36px;margin-bottom:28px;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;border:1px dashed rgba(249,199,132,.28);border-radius:50%;animation:gen-pulse 2.5s ease-in-out infinite}.gen-mandala:before{content:"";position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;border-radius:50%;border:1px dotted rgba(252,175,88,.22);animation:mandala-spin 6s linear infinite}.gen-mandala:after{content:"";position:absolute;top:-36px;right:-36px;bottom:-36px;left:-36px;border-radius:50%;border:1px dashed rgba(255,140,66,.12);animation:mandala-spin 10s linear infinite reverse}@keyframes gen-pulse{0%,to{box-shadow:0 0 24px #fcaf5814}50%{box-shadow:0 0 48px #fcaf582e,0 0 96px #ff8c420f}}.gen-text{color:var(--text-muted);font-size:14px;line-height:1.7;animation:gen-breathe 2.5s ease-in-out infinite alternate}@keyframes gen-breathe{0%{opacity:.45}to{opacity:1}}.layout{position:relative;z-index:1;display:flex;flex-direction:column;height:100vh;max-width:760px;margin:0 auto}.layout:before{content:"";position:fixed;top:-80px;left:50%;transform:translate(-50%);width:700px;height:320px;background:radial-gradient(ellipse at top center,rgba(252,175,88,.05) 0%,transparent 70%);pointer-events:none;z-index:-1}header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border);flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#13162599}.logo{display:flex;align-items:center;gap:10px}.logo-icon{font-size:20px;line-height:1;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo h1{font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:.04em;color:var(--white)}.logo span{display:block;font-size:11px;color:var(--text-muted);font-weight:400;letter-spacing:.06em;text-transform:uppercase;margin-top:1px}.chart-btn{display:flex;align-items:center;gap:7px;background:transparent;border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-body);font-size:13px;padding:7px 14px;border-radius:9px;cursor:pointer;transition:all .2s ease}.chart-btn:hover{border-color:var(--border-hover);color:var(--gold-pale)}.chart-btn.active{border-color:var(--border-focus);color:var(--gold);background:#fcaf580d}.chart-btn .dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);transition:all .2s ease}.chart-btn.loaded .dot{background:#4ade80;box-shadow:0 0 6px #4ade8066}.chart-btn.active .dot{background:var(--gold);box-shadow:0 0 6px var(--glow)}.kundli-panel{background:var(--bg-raised);border-bottom:1px solid var(--border);padding:18px 20px;flex-shrink:0;animation:panel-in .25s ease-out}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.kundli-panel>label{display:block;font-family:var(--font-body);font-size:11px;color:var(--text-muted);margin-bottom:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.birth-form{display:flex;flex-direction:column;gap:10px}.form-row{display:flex;gap:12px}.form-row.two-col>.form-field{flex:1}.form-field{display:flex;flex-direction:column;gap:5px;flex:1}.form-field label{font-size:10px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.form-field input{width:100%;background:#4e598c1f;border:1px solid var(--border);border-radius:9px;color:var(--text);font-family:var(--font-body);font-size:14px;padding:9px 13px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.form-field input::placeholder{color:var(--text-muted)}.form-field input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #fcaf580f;background:#4e598c2e}.form-field input[type=date],.form-field input[type=time]{color-scheme:dark}.panel-row{display:flex;align-items:center;gap:12px;margin-top:14px}.load-btn{background:var(--gradient-btn);color:#fff;border:none;border-radius:9px;padding:9px 22px;font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;letter-spacing:.01em;transition:box-shadow .25s ease,transform .15s ease,opacity .2s ease;box-shadow:0 2px 10px #ff8c4226}.load-btn:hover:not(:disabled){box-shadow:0 4px 20px #ff8c424d;transform:translateY(-1px)}.load-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.load-btn:disabled{opacity:.4;cursor:default}.kundli-status{font-size:12px;color:#4ade80}.gen-error{font-size:12px;color:#f87171;margin-top:4px}.messages{flex:1;overflow-y:auto;padding:28px 20px;display:flex;flex-direction:column;gap:22px;scroll-behavior:smooth}.messages::-webkit-scrollbar{width:4px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:#4e598c4d;border-radius:2px}.messages::-webkit-scrollbar-thumb:hover{background:#4e598c80}.msg{display:flex;gap:12px;max-width:100%;animation:msg-in .3s ease-out both}.msg.user{flex-direction:row-reverse}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;margin-top:2px}.msg.user .avatar{background:#fcaf581a;border:1px solid rgba(252,175,88,.2);color:var(--gold)}.msg.assistant .avatar{background:var(--bg-raised);border:1px solid var(--border);color:var(--gold-pale)}.bubble{max-width:calc(100% - 52px);padding:11px 15px;border-radius:var(--radius);font-size:14.5px;line-height:1.72}.msg.user .bubble{background:var(--user-bg);border:1px solid var(--user-border);border-top-right-radius:4px}.msg.assistant .bubble{background:transparent;border-top-left-radius:4px;padding-left:0;color:#ffffffe0}.bubble h1,.bubble h2,.bubble h3{font-family:var(--font-display);font-size:1em;font-weight:600;margin:1.1em 0 .35em;color:var(--gold-pale);letter-spacing:.02em}.bubble h1:first-child,.bubble h2:first-child,.bubble h3:first-child{margin-top:0}.bubble p{margin:.5em 0}.bubble p:first-child{margin-top:0}.bubble p:last-child{margin-bottom:0}.bubble ul,.bubble ol{padding-left:1.4em;margin:.4em 0}.bubble li{margin:.25em 0}.bubble strong{color:var(--gold);font-weight:600}.bubble em{color:var(--gold-pale);font-style:italic}.bubble a{color:var(--gold);text-decoration:underline;text-decoration-color:#fcaf584d;text-underline-offset:2px;transition:text-decoration-color .2s}.bubble a:hover{text-decoration-color:var(--gold)}.bubble code{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.84em;background:#4e598c33;border:1px solid var(--border);padding:1px 6px;border-radius:5px;color:var(--gold-pale)}.bubble pre{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:14px;overflow-x:auto;margin:.7em 0}.bubble pre code{background:none;border:none;padding:0;color:#fffc}.bubble table{width:100%;border-collapse:collapse;font-size:.88em;margin:.7em 0}.bubble th,.bubble td{border:1px solid var(--border);padding:7px 11px;text-align:left}.bubble th{background:#4e598c26;color:var(--gold);font-weight:600;letter-spacing:.02em}.bubble tr:nth-child(2n) td{background:#4e598c0f}.bubble hr{border:none;border-top:1px solid var(--border);margin:1em 0}.bubble blockquote{border-left:3px solid var(--gold);padding-left:14px;margin:.7em 0;color:#ffffffa6;font-style:italic}.tool-steps{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;padding:10px 14px;background:#4e598c1a;border:1px solid var(--border);border-radius:10px;font-size:12px}.tool-step{display:flex;align-items:center;gap:7px;color:var(--text-muted);line-height:1.5}.tool-step.done .step-icon{color:#4ade80;font-size:11px;font-weight:700}.tool-step.active{color:var(--gold);font-weight:500}.tool-step.active .step-icon{color:var(--orange)}.star-spin{display:inline-block;font-size:11px;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cursor{display:inline-block;width:2px;height:1em;background:var(--gold);margin-left:1px;vertical-align:middle;border-radius:1px;animation:blink .9s step-end infinite;box-shadow:0 0 6px #fcaf5866}@keyframes blink{50%{opacity:0}}.welcome{text-align:center;padding:48px 20px;color:var(--text-muted);animation:welcome-in .6s ease-out both}@keyframes welcome-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.welcome .big{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100px;height:100px;font-size:32px;margin-bottom:20px;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;border:1px dashed rgba(249,199,132,.2);border-radius:50%}.welcome .big:before{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1px dotted rgba(252,175,88,.18);animation:mandala-spin 35s linear infinite}.welcome .big:after{content:"";position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;border-radius:50%;border:1px dashed rgba(255,140,66,.1);animation:mandala-spin 50s linear infinite reverse}.welcome h2{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--white);margin-bottom:8px;letter-spacing:.03em}.welcome p{font-size:14px;max-width:380px;margin:0 auto;color:var(--text-muted)}.input-area{padding:14px 20px 18px;border-top:1px solid var(--border);flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#13162580}.input-row{display:flex;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease}.input-row:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px #fcaf580d}.input-row textarea{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font-body);font-size:14.5px;line-height:1.55;resize:none;max-height:140px;overflow-y:auto;padding:6px 0}.input-row textarea::placeholder{color:var(--text-muted)}.send-btn{width:34px;height:34px;border-radius:9px;border:none;background:var(--gradient-btn);color:#fff;cursor:pointer;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:box-shadow .25s ease,transform .15s ease,opacity .2s ease;box-shadow:0 2px 8px #ff8c4226}.send-btn:hover:not(:disabled){box-shadow:0 4px 16px #ff8c4259;transform:translateY(-1px)}.send-btn:active:not(:disabled){transform:translateY(0) scale(.93)}.send-btn:disabled{opacity:.25;cursor:default;box-shadow:none}.hint{text-align:center;font-size:11px;color:var(--text-muted);margin-top:8px;letter-spacing:.02em}@media (max-width: 480px){.layout{max-width:100%}header{padding:14px 16px 12px}.logo h1{font-size:14px}.logo span{font-size:10px}.messages{padding:20px 16px}.input-area{padding:12px 16px 14px}.step-card{width:100%;padding:36px 24px 28px}.step-card h1{font-size:19px}.step-card h2{font-size:16px}.form-row.two-col{flex-direction:column;gap:10px}}
