:root{color-scheme:dark;--bg-0: #07090c;--bg-1: #0a0d12;--glass: rgba(255, 255, 255, .035);--glass-2: rgba(255, 255, 255, .055);--glass-ai: rgba(57, 255, 20, .05);--edge: rgba(255, 255, 255, .09);--edge-hi: rgba(255, 255, 255, .14);--edge-ai: rgba(57, 255, 20, .22);--text: #e9f1ec;--text-2: #b7c2ba;--muted: #7c8a80;--faint: #4b5750;--accent: #39ff14;--accent-2: #7dff63;--accent-dim: rgba(57, 255, 20, .6);--glow: rgba(57, 255, 20, .45);--glow-soft: rgba(57, 255, 20, .16);--amber: #ffc24b;--danger: #ff6b7a;--r-lg: 18px;--r-md: 14px;--r-sm: 10px;--r-tuck: 5px;--shadow: 0 10px 34px rgba(0, 0, 0, .5);--inset-hi: inset 0 1px 0 rgba(255, 255, 255, .07);--ease: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--font: "Manrope", ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}.app{position:relative;height:100%;max-inline-size:48rem;margin-inline:auto;display:flex;flex-direction:column;isolation:isolate;overflow:hidden}.ambient{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(65% 45% at 50% 30%,rgba(57,255,20,.09),transparent 68%),radial-gradient(70% 55% at 78% 88%,rgba(45,130,255,.055),transparent 70%),radial-gradient(60% 45% at 18% 78%,rgba(57,255,20,.05),transparent 70%);filter:blur(44px);animation:drift 32s ease-in-out infinite alternate}@keyframes drift{0%{transform:translate3d(-2%,-1%,0) scale(1.02)}50%{transform:translate3d(2%,1.5%,0) scale(1.06)}to{transform:translate3d(-1%,2%,0) scale(1.03)}}.topbar{flex:none;block-size:68px;display:flex;align-items:center;gap:.9rem;padding-inline:clamp(16px,4vw,28px);background:linear-gradient(180deg,#07090cb8 30%,#07090c00);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.brand{block-size:30px;inline-size:auto;filter:drop-shadow(0 0 3px rgba(57,255,20,.55)) drop-shadow(0 0 16px rgba(57,255,20,.35));animation:breathe 6s ease-in-out infinite}@keyframes breathe{0%,to{filter:drop-shadow(0 0 3px rgba(57,255,20,.5)) drop-shadow(0 0 13px rgba(57,255,20,.28))}50%{filter:drop-shadow(0 0 4px rgba(57,255,20,.7)) drop-shadow(0 0 24px rgba(57,255,20,.5))}}.brand-sub{margin-inline-start:auto;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--muted)}.chat{flex:1;min-height:0;display:flex;flex-direction:column}.slots{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.85rem clamp(16px,4vw,28px);border-block-end:1px solid var(--edge)}.chip{position:relative;display:inline-flex;flex-direction:column;gap:2px;padding:.42rem .8rem;border-radius:var(--r-sm);background:var(--glass);border:1px solid var(--edge);box-shadow:var(--inset-hi);transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}.chip b{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.chip>span{font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--faint);transition:color .3s var(--ease)}.chip.filled{border-color:var(--accent-dim);background:var(--glass-user);box-shadow:var(--inset-hi),0 0 18px var(--glow-soft);animation:chip-pop .42s var(--ease)}.chip.filled>span{color:var(--accent-2);text-shadow:0 0 10px var(--glow-soft)}@keyframes chip-pop{0%{transform:scale(.96)}60%{transform:scale(1.02)}to{transform:scale(1)}}.status{margin-inline-start:auto;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.status-confirming{color:var(--amber);text-shadow:0 0 12px rgba(255,194,75,.35)}.status-ready{color:var(--accent);text-shadow:0 0 12px var(--glow)}.messages{flex:1;min-height:0;overflow-y:auto;padding:1.4rem clamp(16px,4vw,28px);display:flex;flex-direction:column;gap:.7rem;scrollbar-width:thin;scrollbar-color:var(--edge) transparent}.bubble{max-inline-size:82%;padding:.72rem .95rem;border-radius:var(--r-lg);line-height:1.55;white-space:pre-wrap;word-break:break-word;border:1px solid var(--edge);background:var(--glass);box-shadow:var(--inset-hi),var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:msg-in .42s var(--ease) both}@keyframes msg-in{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.bubble.assistant{align-self:flex-start;border-end-start-radius:var(--r-tuck);background:var(--glass-ai);border-color:var(--edge-ai);box-shadow:var(--inset-hi),var(--shadow),0 0 20px #39ff1417;color:#eefff4;text-shadow:0 0 16px rgba(57,255,20,.12);font-size:1.02rem;letter-spacing:-.003em}.bubble.user{align-self:flex-end;max-inline-size:76%;border-start-end-radius:var(--r-tuck);background:var(--glass-2);border-color:var(--edge-hi);color:var(--text);font-size:.95rem;font-weight:500}.bubble.error{align-self:center;max-inline-size:90%;border-color:#ff6b7a66;background:#ff6b7a14;color:var(--danger);box-shadow:none;font-size:.9rem}.bubble.typing{display:inline-flex;gap:6px;align-self:flex-start;padding:.85rem 1rem}.bubble.typing span{inline-size:7px;block-size:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--glow);animation:glow-dot 1.3s var(--ease-soft) infinite}.bubble.typing span:nth-child(2){animation-delay:.16s}.bubble.typing span:nth-child(3){animation-delay:.32s}@keyframes glow-dot{0%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chart{align-self:stretch;margin-block:.25rem;padding:.95rem 1.05rem 1.05rem;border-radius:var(--r-lg);border:1px solid var(--edge-ai);background:var(--glass-ai);box-shadow:var(--inset-hi),var(--shadow),0 0 26px #39ff141a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:msg-in .45s var(--ease) both}.chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding-block-end:.6rem;margin-block-end:.65rem;border-block-end:1px solid var(--edge)}.chart-title{font-size:.98rem;font-weight:700;color:var(--text)}.chart-sub{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);text-shadow:0 0 10px var(--glow-soft)}.chart-angles{display:flex;gap:1.2rem;flex-wrap:wrap;padding-block-end:.6rem;margin-block-end:.55rem;border-block-end:1px solid var(--edge);font-size:.84rem;color:var(--text-2)}.chart-angles b{margin-inline-end:.4rem;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.chart-grid{display:flex;flex-direction:column}.chart-row{display:grid;grid-template-columns:1.9rem 1fr;align-items:baseline;padding-block:.34rem}.chart-row+.chart-row{border-block-start:1px solid rgba(255,255,255,.045)}.glyph{color:var(--accent-2);text-shadow:0 0 10px var(--glow-soft);line-height:1}.chart-row .pl{font-size:1.12rem}.chart-row .pos{display:inline-flex;align-items:baseline;gap:.45rem;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--text-2)}.chart-row .pos .glyph{font-size:1.02rem}.chart-row .rx{color:var(--amber);font-size:.8rem}.chart-angles .glyph{margin-inline-start:.15rem;font-size:.98rem}.chart-note{margin:.75rem 0 0;font-size:.74rem;line-height:1.45;color:var(--muted)}.chart-box{display:flex;flex-wrap:wrap;align-content:center;gap:.34rem .62rem;max-inline-size:13rem;padding:.42rem .75rem;border-radius:var(--r-sm);border:1px solid var(--accent-dim);background:var(--glass);box-shadow:var(--inset-hi),0 0 16px var(--glow-soft);color:var(--text-2)}.chart-box .cp{display:inline-flex;align-items:baseline;gap:.04rem;white-space:nowrap}.chart-box .glyph{font-size:.92rem}.chart-box .rx{color:var(--amber);font-size:.72rem;margin-inline-start:.05rem}.analyze-btn{align-self:flex-start;padding:.6rem 1.15rem;border-radius:var(--r-md);border:1px solid var(--edge-ai);background:var(--glass-ai);color:var(--accent-2);font:700 .86rem/1 var(--font);letter-spacing:.02em;cursor:pointer;box-shadow:var(--inset-hi),0 0 18px var(--glow-soft);transition:transform .12s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);animation:msg-in .42s var(--ease) both}.analyze-btn:hover{transform:translateY(-1px);border-color:var(--accent-dim);box-shadow:var(--inset-hi),0 0 28px var(--glow-soft)}.analyze-btn:active{transform:scale(.97)}.reading .reading-section+.reading-section{margin-block-start:.75rem}.reading-label{margin-block-end:.35rem;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);text-shadow:0 0 10px var(--glow-soft)}.reading-list{margin:0;padding-inline-start:1.1rem;display:flex;flex-direction:column;gap:.28rem}.reading-list li{font-size:.9rem;line-height:1.5;color:var(--text-2)}.reading-list li::marker{color:var(--accent-dim)}.composer{flex:none;display:flex;gap:.6rem;align-items:flex-end;padding:.9rem clamp(16px,4vw,28px) calc(.9rem + env(safe-area-inset-bottom));background:linear-gradient(0deg,#07090cd1 40%,#07090c00);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.composer textarea{flex:1;resize:none;max-block-size:8rem;padding:.7rem .95rem;border-radius:var(--r-md);border:1px solid var(--edge);background:var(--glass);box-shadow:var(--inset-hi);color:var(--text);caret-color:var(--accent);font:500 .95rem/1.45 var(--font);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.composer textarea::placeholder{color:var(--muted)}.composer textarea:focus{outline:none;border-color:var(--accent-dim);box-shadow:var(--inset-hi),0 0 0 3px var(--glow-soft),0 0 22px var(--glow-soft)}.composer button{flex:none;inline-size:46px;block-size:46px;border-radius:50%;border:1px solid var(--edge-hi);background:var(--glass-2);color:var(--text-2);font-size:1.2rem;line-height:1;cursor:pointer;transition:transform .12s var(--ease),box-shadow .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease)}.composer button:not(:disabled){color:#06210a;background:linear-gradient(160deg,var(--accent-2),var(--accent));border-color:transparent;box-shadow:0 0 22px var(--glow),var(--inset-hi)}.composer button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 0 30px var(--glow),var(--inset-hi)}.composer button:not(:disabled):active{transform:scale(.94)}.composer button:disabled{opacity:.6;cursor:default}@media(prefers-reduced-motion:reduce){.ambient,.brand,.bubble,.chip.filled,.bubble.typing span{animation:none}.composer button,.composer textarea,.chip{transition:none}}
