*{box-sizing:border-box}:root{color-scheme:dark;--bg:#07080d;--panel:rgba(255,255,255,0.05);--panel-strong:rgba(18,20,30,0.72);--border:rgba(255,255,255,0.1);--border-strong:rgba(255,255,255,0.18);--text:#eceef5;--muted:#8f95a8;--accent-1:#7c5cff;--accent-2:#22d3ee;--accent-3:#f472b6;--grad:linear-gradient(135deg,var(--accent-1),var(--accent-2));--bubble:rgba(255,255,255,0.07);--danger:#ff6b81;--ok:#34d399;--radius:18px}@media (prefers-color-scheme:light){:root{color-scheme:light;--bg:#f5f6fb;--panel:rgba(255,255,255,0.7);--panel-strong:rgba(255,255,255,0.82);--border:rgba(20,24,50,0.1);--border-strong:rgba(20,24,50,0.2);--text:#14162a;--muted:#666c85;--bubble:rgba(20,24,50,0.06);--danger:#d6304a;--ok:#0f9d6b}}body,html{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.aurora span{position:absolute;width:55vmax;height:55vmax;border-radius:50%;filter:blur(90px);opacity:.32;animation:drift 26s ease-in-out infinite alternate}.aurora span:first-child{background:var(--accent-1);top:-25vmax;left:-15vmax}.aurora span:nth-child(2){background:var(--accent-2);bottom:-30vmax;right:-15vmax;animation-duration:32s;animation-direction:alternate-reverse}.aurora span:nth-child(3){background:var(--accent-3);top:35%;left:45%;width:32vmax;height:32vmax;opacity:.16;animation-duration:38s}@media (prefers-color-scheme:light){.aurora span{opacity:.22}.aurora span:nth-child(3){opacity:.12}}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(8vmax,5vmax,0) scale(1.15)}}.shell{position:relative;z-index:1;height:100vh;height:100dvh}.orb{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:14px;background:var(--grad);color:#fff;box-shadow:0 6px 24px -6px var(--accent-1)}.orb.big{width:60px;height:60px;border-radius:20px;animation:float 5s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}.gradient-text{background:linear-gradient(100deg,var(--accent-1),var(--accent-2),var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 16px;border-radius:14px;background:var(--grad);background-size:160% 160%;color:#fff;font-weight:600;transition:transform .15s,box-shadow .2s,background-position .4s,opacity .2s;box-shadow:0 10px 30px -12px var(--accent-1)}.btn-primary:hover:not(:disabled){background-position:100% 50%;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.99)}.btn-primary:disabled{opacity:.55}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:13px;white-space:nowrap;transition:border-color .2s,background .2s}.btn-ghost:hover{border-color:var(--border-strong)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error{color:var(--danger);font-size:14px;margin:10px 0 0}.center{height:100%;overflow-y:auto;display:grid;place-items:center;padding:20px}.card{width:min(440px,100%);padding:32px 28px 28px;border-radius:26px;border:1px solid var(--border);background:var(--panel-strong);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);box-shadow:0 30px 80px -30px rgba(0,0,0,.55);animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.card.shake{animation:shake .4s}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.98)}}@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}.card h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;margin:18px 0 8px}.card .lead{color:var(--muted);font-size:15px;line-height:1.5;margin:0 0 8px}.field{margin-top:16px}.field label{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);margin-bottom:6px}.field .link{color:var(--accent-2);font-size:13px;padding:0}.field .link:hover{text-decoration:underline}.input-wrap{position:relative}.input{width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--border);background:var(--panel);transition:border-color .2s,box-shadow .2s}.input::placeholder{color:var(--muted);opacity:.7}.input:focus{outline:none;border-color:var(--accent-1);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-1) 22%,transparent)}.input.pin{font-size:22px;letter-spacing:.4em;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:44px;padding-left:44px}.input-wrap .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--muted)}.input-wrap .eye:hover{color:var(--text)}.card .btn-primary{margin-top:22px}.hints{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding:0;list-style:none}.hints li{font-size:12px;color:var(--muted);padding:5px 10px;border-radius:999px;border:1px solid var(--border)}.chat{display:flex;flex-direction:column;height:100%;max-width:860px;margin:0 auto}.chat-header{display:flex;align-items:center;gap:12px;margin:12px 12px 0;padding:10px 12px;border-radius:20px;border:1px solid var(--border);background:var(--panel-strong);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}.chat-title{flex:1 1;min-width:0}.chat-title h1{font-size:16px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:2px}.status .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 var(--ok);animation:pulse 2s infinite}.status.off .dot{background:var(--danger);animation:none}@keyframes pulse{70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.messages-wrap{position:relative;flex:1 1;min-height:0;margin:12px 12px 0;border-radius:20px;border:1px solid var(--border);overflow:hidden}.messages{height:100%;overflow-y:auto;padding:20px 16px 12px;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;mask-image:linear-gradient(180deg,transparent 0,#000 18px,#000 calc(100% - 14px),transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18px,#000 calc(100% - 14px),transparent)}.day{align-self:center;margin:14px 0 8px;padding:4px 12px;font-size:12px;color:var(--muted);border-radius:999px;border:1px solid var(--border);background:var(--panel)}.row{display:flex;align-items:flex-end;gap:10px;margin-top:3px;animation:pop .28s cubic-bezier(.2,.8,.2,1) both}.row.head{margin-top:14px}.row.mine{flex-direction:row-reverse}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.avatar{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:10px;font-size:12px;font-weight:700;color:#fff;align-self:flex-start;margin-top:20px}.avatar.ghost{visibility:hidden;height:0;margin:0}.stack{display:flex;flex-direction:column;align-items:flex-start;max-width:min(78%,560px);min-width:0}.row.mine .stack{align-items:flex-end}.meta{font-size:12px;color:var(--muted);margin:0 4px 4px}.meta b{color:var(--text);font-weight:600}.bubble{padding:10px 14px;border-radius:18px;border:1px solid var(--border);background:var(--bubble);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.row.head:not(.mine) .bubble{border-top-left-radius:6px}.row.mine .bubble{border:0;color:#fff;background:linear-gradient(135deg,var(--accent-1),color-mix(in srgb,var(--accent-1) 45%,var(--accent-2)));box-shadow:0 8px 24px -14px var(--accent-1)}.row.mine.head .bubble{border-top-right-radius:6px}.row.pending .bubble{opacity:.6}.bubble a{color:inherit;text-decoration:underline;text-underline-offset:2px}.row:not(.mine) .bubble a{color:var(--accent-2)}.empty{margin:auto;text-align:center;padding:20px;animation:rise .5s both}.empty .orb{margin:0 auto 16px}.empty h2{font-size:24px;letter-spacing:-.02em;margin:0 0 6px}.empty p{color:var(--muted);margin:0 0 18px;font-size:14px}.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:13px;transition:transform .15s,border-color .2s}.chip:hover{transform:translateY(-2px);border-color:var(--accent-1)}.dots{margin:auto;display:flex;gap:6px}.dots i{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:bounce 1.2s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.jump{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--grad);color:#fff;font-size:13px;font-weight:600;box-shadow:0 10px 30px -10px var(--accent-1);animation:pop .25s both}.composer-wrap{padding:4px 12px calc(12px + env(safe-area-inset-bottom))}.composer{position:relative;border-radius:24px;padding:1px;background:var(--border);transition:background .3s,box-shadow .3s}.composer:focus-within{background:linear-gradient(120deg,var(--accent-1),var(--accent-2),var(--accent-3));box-shadow:0 0 40px -12px var(--accent-1)}.composer-inner{border-radius:23px;background:var(--panel-strong);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);padding:10px 10px 10px 16px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.card,.chat-header,.composer-inner{background:var(--bg)}}.composer textarea{display:block;width:100%;max-height:160px;padding:6px 0;border:0;outline:none;resize:none;background:transparent;line-height:1.45}.composer textarea::placeholder{color:var(--muted)}.composer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}.who{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:13px;color:var(--muted)}.who button,.who input{max-width:170px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:13px;color:var(--text)}.who button{display:inline-flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who input{outline:none;border-color:var(--accent-1)}.composer-actions{display:flex;align-items:center;gap:10px}.hint{font-size:12px;color:var(--muted)}.send{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--grad);color:#fff;transition:transform .15s,opacity .2s,filter .2s}.send:hover:not(:disabled){transform:scale(1.07)}.send:disabled{opacity:.35;filter:grayscale(1)}.composer-error{margin:0 6px 8px}@media (max-width:560px){.hint{display:none}.stack{max-width:84%}.card{padding:26px 20px 22px}.btn-ghost span{display:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.attach{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--muted);transition:color .15s,background .15s}.attach:hover{color:var(--text);background:var(--panel)}.composer.drag .composer-inner{outline:2px dashed var(--accent-2);outline-offset:2px}.staged{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:6px 10px;width:-moz-fit-content;width:fit-content;max-width:100%;font-size:13px;border:1px solid var(--border-strong);border-radius:12px;background:var(--panel)}.staged span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staged small{color:var(--muted)}.staged button{display:grid;place-items:center;color:var(--muted)}.att-img{display:block;margin:-4px -8px 4px}.att-img img{display:block;max-width:min(320px,100%);max-height:320px;border-radius:12px}.bubble .att-file{display:flex;align-items:center;gap:8px;margin-bottom:4px;text-decoration:none}.att-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;text-decoration:underline}.bubble .code{padding:10px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;border-radius:10px;border:1px solid var(--border)}.bubble .code,.mermaid-box{margin:6px 0;overflow-x:auto;color:var(--text);background:var(--bg)}.mermaid-box{padding:12px;border-radius:12px;border:1px solid var(--border);white-space:normal}.mermaid-box svg{display:block;max-width:100%;height:auto;margin:0 auto}.mermaid-box.loading,.mermaid-err small{color:var(--muted);font-size:13px}.mermaid-err{color:var(--danger)}.gif-btn{width:auto;padding:0 10px;border-radius:10px;font-size:12px;font-weight:700;letter-spacing:.04em}.bubble.media{padding:4px;border-radius:16px}.bubble .gif{display:block;max-width:100%;height:auto;border-radius:12px;background:var(--panel)}.composer-wrap{position:relative}.gifs{position:absolute;left:0;right:0;bottom:100%;padding:10px;border:1px solid var(--border-strong);border-radius:16px;background:var(--panel-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}.gifs,.gifs-top{margin-bottom:8px}.gifs-top{display:flex;gap:8px}.gifs-top input{flex:1 1;min-width:0;padding:8px 12px;color:var(--text);font:inherit;border:1px solid var(--border);border-radius:10px;background:var(--panel);outline:none}.gifs-top input:focus{border-color:var(--accent-1)}.gifs-top button{color:var(--muted);padding:0 6px}.gifs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:6px;gap:6px;max-height:240px;overflow-y:auto}.gifs-grid button{padding:0;overflow:hidden;border-radius:8px;background:var(--panel);aspect-ratio:1}.gifs-grid img{width:100%;height:100%;object-fit:cover;display:block}.gifs-note{margin:8px 0;color:var(--muted);font-size:13px}.gifs-grid .error,.gifs-note{grid-column:1/-1}.gifs-credit{display:block;margin-top:6px;color:var(--muted);font-size:11px}.row.note .bubble{border:1px dashed var(--accent-2);background:color-mix(in srgb,var(--accent-2) 8%,transparent)}.row.note .avatar{background:var(--grad)!important}.emoji-tabs{display:flex;gap:2px;margin-bottom:8px;overflow-x:auto}.emoji-tabs button{padding:4px 8px;font-size:18px;border-radius:8px;opacity:.55}.emoji-tabs button.on{opacity:1;background:var(--panel);box-shadow:inset 0 -2px 0 var(--accent-1)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));grid-gap:2px;gap:2px;max-height:220px;overflow-y:auto}.emoji-grid button{padding:4px 0;font-size:22px;line-height:1.2;border-radius:8px}.emoji-grid button:hover{background:var(--panel)}.cmds{position:absolute;left:12px;right:12px;bottom:100%;margin:0 0 8px;padding:4px;list-style:none;border:1px solid var(--border-strong);border-radius:14px;background:var(--panel-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.cmds button{display:flex;gap:10px;width:100%;padding:8px 10px;text-align:left;border-radius:10px}.cmds button.on,.cmds button:hover{background:var(--panel)}.cmds span{color:var(--muted);font-size:13px}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.btn-danger{padding:10px 16px;color:#fff;font-weight:600;border-radius:12px;background:var(--danger)}.btn-danger:disabled{opacity:.4}.chat-icon{flex:none;width:36px;height:36px;border-radius:10px}.bubble.has-copy{position:relative;padding-right:40px;white-space:normal}.copy-btn{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--muted);transition:color .15s,background .15s}.copy-btn:hover{color:var(--text);background:var(--panel)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 8px}.md .md-h{font-weight:700}.md ol,.md ul{margin:0 0 10px;padding-left:20px}.md li{margin:2px 0}.md code{padding:1px 5px;font:.9em ui-monospace,Menlo,monospace;border-radius:6px;background:var(--bg)}