:root,:root[data-theme=dark]{--bg: #0d1117;--surface: #161b22;--surface-2: #212833;--border: #2a313c;--text: #eef3f9;--muted: #9aa7b6;--accent: #1DA1F2;--accent-2: #FF4D6D;--accent-ink: #ffffff;--danger: #ff6b6b;--bubble-ai: #212833;--overlay-grad: linear-gradient(to top, rgba(2,5,10,.92) 0%, rgba(2,5,10,.55) 55%, transparent 100%);--shadow-1: 0 1px 2px rgba(0,0,0,.35);--shadow-2: 0 6px 16px rgba(0,0,0,.35);--shadow-3: 0 12px 32px rgba(0,0,0,.45);--ring: color-mix(in srgb, var(--accent) 35%, transparent)}:root[data-theme=light]{--bg: #f5f8fb;--surface: #ffffff;--surface-2: #eaeff5;--border: #dce3ec;--text: #0a1a2f;--muted: #5b6776;--accent: #1DA1F2;--accent-2: #FF4D6D;--accent-ink: #ffffff;--danger: #d6455d;--bubble-ai: #eaeff5;--overlay-grad: linear-gradient(to top, rgba(8,12,22,.82) 0%, rgba(8,12,22,.45) 55%, transparent 100%);--shadow-1: 0 1px 2px rgba(16,30,54,.08);--shadow-2: 0 6px 16px rgba(16,30,54,.1);--shadow-3: 0 12px 32px rgba(16,30,54,.14);--ring: color-mix(in srgb, var(--accent) 25%, transparent)}:root{--radius: 16px;--sidebar-w: 240px;--info-w: 340px;--tab-h: 60px;--topbar-h: 68px;--accent-grad: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent-2)))}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus,textarea:focus,select:focus{outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--muted) 55%,transparent)}::-webkit-scrollbar-track{background:transparent}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.app-shell{max-width:880px;margin:0 auto;min-height:100vh}.page{padding:20px 24px 60px}@media(max-width:768px){.page{padding:16px 14px calc(var(--tab-h) + 20px)}}.sidebar{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:18px 14px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:20px;letter-spacing:-.02em;padding:6px 8px 22px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--muted);font-size:15px;font-weight:600;margin-bottom:2px;transition:background .15s ease,color .15s ease}.nav-item .ico{width:22px;display:inline-flex;align-items:center;justify-content:center}.ico svg,.mag svg,.brand svg,.msg-actions svg,.pill svg,.voice-btn svg{display:block}.pill svg{margin:0 auto}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}.sidebar .spacer{flex:1}.sidebar .badge{margin-left:auto;background:var(--accent-2);color:#fff;border-radius:999px;font-size:11px;padding:2px 7px;font-weight:700}.theme-toggle{background:none;border:1px solid var(--border);color:var(--muted);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:6px;transition:background .15s ease,color .15s ease}.theme-toggle:hover{background:var(--surface-2);color:var(--text)}.layout{display:flex;min-height:100vh}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar-web{height:var(--topbar-h);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.topbar-web .search{flex:1;max-width:640px;position:relative}.topbar-web .search input{width:100%;padding:11px 16px 11px 40px;border-radius:999px;border:1px solid transparent;background:var(--surface-2);color:var(--text);font-size:15px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.topbar-web .search input:focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px var(--ring);background:var(--surface)}.topbar-web .search .mag{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.topbar-web .store{display:flex;gap:10px;margin-left:auto}.topbar-web .store a{background:var(--surface-2);border:1px solid var(--border);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;transition:background .15s ease,border-color .15s ease}.topbar-web .store a:hover{background:var(--surface);border-color:color-mix(in srgb,var(--muted) 40%,var(--border))}.content{padding:22px 24px 60px}.content-narrow{max-width:760px;margin:0 auto}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}.card{background:var(--surface);border-radius:var(--radius);overflow:hidden;position:relative;border:1px solid var(--border);box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-3);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.card .thumb{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--surface-2);display:block;transition:transform .35s ease}.card:hover .thumb{transform:scale(1.045)}.card .overlay{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 13px;background:var(--overlay-grad);color:#fff}.card .title{font-weight:700;font-size:15px;letter-spacing:-.01em;text-shadow:0 1px 3px rgba(0,0,0,.5)}.card .sub{font-size:12px;line-height:1.45;margin-top:3px;opacity:.88;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .count{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:4px;background:#080a108c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin:4px 0 18px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:600;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{color:var(--text);border-color:color-mix(in srgb,var(--muted) 40%,var(--border))}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 2px 8px var(--ring)}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--border);margin-bottom:18px}.tabs button{background:none;border:none;color:var(--muted);font-size:16px;font-weight:700;letter-spacing:-.01em;padding:10px 2px;position:relative;transition:color .15s ease}.tabs button:hover{color:var(--text)}.tabs button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:transparent;transition:background .15s ease}.tabs button.active{color:var(--text)}.tabs button.active:after{background:var(--accent)}.btn{background:var(--accent-grad);color:var(--accent-ink);border:none;border-radius:999px;padding:12px 22px;font-weight:700;font-size:15px;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}.btn:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 4px 14px var(--ring)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-ghost{background:var(--surface-2);color:var(--text)}.btn-ghost:hover:not(:disabled){filter:none;box-shadow:none;background:color-mix(in srgb,var(--surface-2) 80%,var(--muted))}.btn-block{width:100%}.input,input.input,textarea.input,select.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:15px;margin-bottom:12px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,input.input:focus,textarea.input:focus,select.input:focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px var(--ring)}textarea.input{resize:vertical;min-height:90px}.label{font-size:13px;color:var(--muted);margin:6px 0;display:block}.topbar{display:flex;align-items:center;gap:10px;padding:14px 24px;position:sticky;top:0;background:var(--bg);z-index:5;border-bottom:1px solid var(--border)}.topbar .back{font-size:24px;color:var(--muted);background:none;border:none}.topbar .name{font-weight:700}.topbar .sub{color:var(--muted);font-size:12px}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;background:var(--surface-2)}.avatar-lg{width:104px;height:104px;border-radius:50%;object-fit:cover;background:var(--surface-2)}.chat-layout{display:flex;height:100vh;overflow:hidden}.chat-center{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh}.chat-head{display:flex;align-items:center;gap:10px;padding:16px 24px;border-bottom:1px solid var(--border)}.chat-head .back{font-size:24px;color:var(--muted);background:none;border:none;display:none}.chat-head .title{flex:1;text-align:center;font-weight:700;font-size:17px}.chat-scroll{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px;max-width:820px;margin:0 auto;width:100%}.msg{display:flex;flex-direction:column;max-width:78%}.msg.user{align-self:flex-end;align-items:flex-end}.msg.assistant{align-self:flex-start;align-items:flex-start}.msg .bubble{max-width:100%}.msg-actions{display:flex;gap:4px;margin-top:4px;opacity:0;transition:opacity .12s}.msg:hover .msg-actions{opacity:1}.msg-actions button{background:none;border:none;font-size:14px;padding:3px 5px;border-radius:6px;line-height:1;opacity:.65}.msg-actions button:hover{background:var(--surface-2);opacity:1}.msg-actions button.on{opacity:1;background:var(--surface-2)}.msg-actions span{font-size:13px}@media(max-width:768px){.msg-actions{opacity:1}}.grp-msg{display:flex;gap:10px;align-self:flex-start;max-width:85%}.grp-msg .avatar{flex-shrink:0}.grp-name{font-size:12px;color:var(--muted);margin:0 0 3px 2px;font-weight:600}.bubble{max-width:78%;padding:12px 16px;border-radius:18px;line-height:1.55;white-space:pre-wrap;font-size:15px;box-shadow:var(--shadow-1)}.bubble.user{align-self:flex-end;background:var(--accent-grad);color:var(--accent-ink);border-bottom-right-radius:5px}.bubble.assistant{align-self:flex-start;background:var(--bubble-ai);border-bottom-left-radius:5px}.composer{display:flex;gap:10px;padding:14px 22px 20px;border-top:1px solid var(--border);background:var(--bg);max-width:820px;margin:0 auto;width:100%}.composer input{flex:1;background:var(--surface-2);border:1px solid transparent;border-radius:999px;padding:13px 18px;color:var(--text);font-size:15px;transition:border-color .15s ease,box-shadow .15s ease}.composer input:focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px var(--ring)}.chat-info{width:var(--info-w);flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);height:100vh;overflow-y:auto;padding:28px 22px}.chat-info .hero{text-align:center}.chat-info .stats{display:flex;justify-content:center;gap:16px;color:var(--muted);font-size:13px;margin-top:8px}.chat-info .taglist{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.chat-info .intro{line-height:1.6;font-size:14px;white-space:pre-wrap}.persona-select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.pill{background:var(--surface-2);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--text)}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:22px 0 10px}.balance{display:flex;gap:16px;flex-wrap:wrap}.balance .b{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;flex:1;min-width:160px;box-shadow:var(--shadow-1)}.balance .b .v{font-size:24px;font-weight:800;letter-spacing:-.02em}.banner{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:var(--radius);padding:18px;font-weight:600}.err{color:var(--danger);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.voice-avatar{width:160px;height:160px;border-radius:50%;object-fit:cover;background:var(--surface-2);box-shadow:0 0 0 0 var(--accent)}.voice-avatar.pulse{animation:voicePulse 1.4s ease-out infinite}@keyframes voicePulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent)}to{box-shadow:0 0 0 28px transparent}}.voice-btn{width:76px;height:76px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-ink);font-size:30px}.voice-btn:disabled{opacity:.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;z-index:50;padding:16px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-3)}.studio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.studio-pick{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:var(--surface-2);aspect-ratio:3/4}.studio-pick:hover{border-color:var(--accent)}.studio-pick img{width:100%;height:100%;object-fit:cover;display:block}.studio-pick.failed{display:grid;place-items:center;color:var(--muted);font-size:13px}.tabbar{display:none}@media(max-width:768px){.sidebar,.topbar-web .store{display:none}.topbar-web{padding:0 14px}.content{padding:16px 14px calc(var(--tab-h) + 20px)}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.chat-info{display:none}.chat-head .back{display:block}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--tab-h);align-items:center;justify-content:space-around;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);z-index:20;padding-bottom:env(safe-area-inset-bottom)}.tabbar a{color:var(--muted);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar a.active{color:var(--accent)}.tabbar .ico{font-size:20px}.composer{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
