:root{--bg: #0b0d14;--panel: #141827;--panel-2: #1b2033;--text: #e8eaf2;--muted: #8b91a7;--accent: #4f6bff;--accent-soft: #2a3670;--good: #3ecf8e;--warn: #ffb454;--radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.view{flex:1;overflow-y:auto;padding:16px 16px calc(76px + env(safe-area-inset-bottom))}h1{font-size:1.35rem;margin:8px 0 4px}h2{font-size:1.05rem;margin:18px 0 8px}p.sub{color:var(--muted);margin:0 0 16px;font-size:.92rem}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:720px;display:flex;background:#141827f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #232840;padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;background:none;border:none;color:var(--muted);padding:10px 0 8px;font-size:.72rem;cursor:pointer}.tabbar button.active{color:var(--accent)}.tabbar .glyph{display:block;font-size:1.25rem;margin-bottom:2px}.card{background:var(--panel);border:1px solid #232840;border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.card.accent{border-color:var(--accent-soft);background:linear-gradient(160deg,#17203c,#141827)}button.primary{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:12px 18px;font-size:1rem;font-weight:600;cursor:pointer;width:100%}button.primary:disabled{opacity:.5}button.ghost{background:none;border:1px solid #2a3049;color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer}button.small{padding:6px 10px;font-size:.85rem}input,textarea,select{width:100%;background:var(--panel-2);color:var(--text);border:1px solid #2a3049;border-radius:10px;padding:12px;font-size:1rem}textarea{resize:vertical;min-height:72px}label{display:block;font-size:.85rem;color:var(--muted);margin:12px 0 6px}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.error{color:#ff7a7a;font-size:.9rem;margin:8px 0}.ok{color:var(--good);font-size:.9rem;margin:8px 0}.orb{width:96px;height:96px;border-radius:50%;margin:24px auto 12px;background:radial-gradient(circle at 42% 38%,#8ea8ff,#4f6bff 55%,#2230a8);box-shadow:0 0 42px #4f6bff73;animation:breathe 4.4s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 34px #4f6bff59}50%{transform:scale(1.06);box-shadow:0 0 56px #4f6bff8c}}.score-wrap{margin:14px 0}.score-bar{height:10px;background:var(--panel-2);border-radius:6px;overflow:hidden}.score-fill{height:100%;background:linear-gradient(90deg,#4f6bff,#8ea8ff);transition:width .6s ease}.score-label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:4px}.bubble{max-width:85%;padding:10px 14px;border-radius:16px;margin-bottom:10px;white-space:pre-wrap;word-break:break-word}.bubble.user{background:var(--accent-soft);margin-left:auto;border-bottom-right-radius:4px}.bubble.assistant{background:var(--panel);border:1px solid #232840;border-bottom-left-radius:4px}.stars{margin-top:4px}.stars button{background:none;border:none;color:#3a415e;cursor:pointer;font-size:1rem;padding:0 2px}.stars button.lit{color:var(--warn)}.composer{position:fixed;bottom:calc(52px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:100%;max-width:720px;padding:8px 12px;display:flex;gap:8px;background:linear-gradient(transparent,var(--bg) 40%)}.composer input{flex:1}.composer button{flex:0 0 auto;width:48px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:1.2rem;cursor:pointer}.restate{background:var(--accent-soft);border-radius:12px;padding:12px 14px;margin:12px 0;font-style:italic;animation:fadein .5s ease}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}.tier{display:flex;justify-content:space-between;align-items:baseline}.tier .price{font-size:1.2rem;font-weight:700}.pill{display:inline-block;background:var(--panel-2);border-radius:999px;padding:2px 10px;font-size:.75rem;color:var(--muted);margin-right:6px}.memory-item{display:flex;justify-content:space-between;gap:8px;align-items:start}
