:root{--bg:#0e1116;--bg-soft:#141922;--bg-elev:#1a2130;--bg-hover:#222a3a;--line:#262f3f;--text:#e8edf5;--muted:#97a3b6;--accent:#5b8dff;--accent-ink:#0b1020;--danger:#ff6b6b;--radius:16px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,Yu Gothic UI,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{flex-direction:column;max-width:860px;height:100dvh;margin:0 auto;display:flex;position:relative}.app-header{padding:calc(10px + var(--safe-t)) 12px 10px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;background:#0e1116e6;align-items:center;gap:10px;display:flex;position:sticky;top:0}.header-title{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.app-name{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px}.conv-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.icon-btn{color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;padding:6px;line-height:1;display:grid}.icon-btn:hover{background:var(--bg-elev);color:var(--text)}.model-chip{background:var(--bg-elev);border:1px solid var(--line);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:42vw;padding:6px 12px;font-size:12px;overflow:hidden}.model-chip:hover{border-color:var(--accent)}.messages{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;flex:1;gap:16px;padding:18px 14px 6px;display:flex;overflow-y:auto}.tail{flex:none;height:8px}.msg.user{justify-content:flex-end;display:flex}.bubble{color:#fff;white-space:pre-wrap;word-break:break-word;background:linear-gradient(160deg,#5b8dff,#4a6ff0);border-radius:18px 18px 5px;max-width:86%;padding:10px 15px;font-size:15px;line-height:1.6;box-shadow:0 6px 18px #3c64dc2e}.msg.assistant{display:block}.assistant-body{word-break:break-word;font-size:15px;line-height:1.75;position:relative}.msg-copy{margin-top:6px}.typing{gap:5px;padding:6px 2px;display:inline-flex}.typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.3s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.16s}.typing span:nth-child(3){animation-delay:.32s}@keyframes blink{0%,70%,to{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.caret{vertical-align:-.16em;background:var(--accent);border-radius:2px;width:8px;height:1.05em;margin-left:2px;animation:.9s steps(2,start) infinite caret;display:inline-block}.reasoning{border-left:2px solid var(--line);color:var(--muted);margin:0 0 10px;padding-left:10px;font-size:13px;line-height:1.65}.reasoning summary{cursor:pointer;color:#7f8da3;-webkit-user-select:none;user-select:none;font-size:12px;list-style:none}.reasoning summary::-webkit-details-marker{display:none}.reasoning summary:before{content:"▸ "}.reasoning[open] summary:before{content:"▾ "}.reasoning[open] summary{margin-bottom:6px}.reasoning-body{white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}@keyframes caret{to{visibility:hidden}}.md>div+div,.md>div+.artifact,.md>.artifact+div{margin-top:12px}.md p{margin:0 0 10px}.md p:last-child{margin-bottom:0}.md h1,.md h2,.md h3{margin:18px 0 8px;font-weight:650;line-height:1.35}.md h1{font-size:1.3em}.md h2{font-size:1.15em}.md h3{font-size:1.02em}.md ul,.md ol{margin:0 0 10px;padding-left:1.4em}.md li{margin:3px 0}.md a{color:#8fb0ff;text-underline-offset:2px;text-decoration:underline}.md blockquote{border-left:3px solid var(--line);color:var(--muted);margin:10px 0;padding:2px 0 2px 12px}.md code{background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.88em}.md pre{border:1px solid var(--line);background:#0b0e14;border-radius:12px;margin:10px 0;padding:12px 14px;overflow-x:auto}.md pre code{background:0 0;border:0;padding:0;font-size:12.5px;line-height:1.6}.md table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);text-align:left;padding:6px 10px}.md th{background:var(--bg-soft)}.md hr{border:0;border-top:1px solid var(--line);margin:16px 0}.artifact{border:1px solid var(--line);background:var(--bg-soft);border-radius:14px;overflow:hidden}.artifact-head{border-bottom:1px solid var(--line);background:var(--bg-elev);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.tabs{background:var(--bg);border-radius:9px;gap:2px;padding:2px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px 12px;font-size:12px}.tab.active{background:var(--bg-hover);color:var(--text)}.tab:disabled{opacity:.4;cursor:default}.artifact-tools{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.artifact-lang{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);border-radius:6px;padding:2px 6px;font-size:10px}.artifact-status{color:var(--accent)}.artifact-frame{background:#fff;border:0;width:100%;min-height:120px;display:block}.artifact-code{background:#0b0e14;max-height:360px;margin:0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;overflow:auto}.empty{text-align:center;color:var(--muted);max-width:420px;margin:auto;padding:24px 8px 40px}.empty-logo{color:var(--accent);margin-bottom:14px;font-size:44px;line-height:1}.empty p{margin:0 0 20px;font-size:14px;line-height:1.7}.suggestions{flex-direction:column;gap:8px;display:flex}.suggestion{background:var(--bg-soft);border:1px solid var(--line);color:var(--text);text-align:left;border-radius:12px;padding:11px 14px;font-size:13.5px}.suggestion:hover{border-color:var(--accent);background:var(--bg-elev)}.composer{border-top:1px solid var(--line);padding:8px 12px calc(8px + var(--safe-b));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e1116f0}.composer-inner{background:var(--bg-elev);border:1px solid var(--line);border-radius:24px;align-items:flex-end;gap:8px;padding:5px 5px 5px 16px;transition:border-color .15s;display:flex}.composer-inner:focus-within{border-color:#3b4d70}.composer textarea{resize:none;background:0 0;border:0;outline:none;flex:1;min-height:24px;max-height:160px;padding:8px 0;font-size:16px;line-height:1.5}.composer textarea::placeholder{color:#6b7789}.send{background:var(--accent);color:#fff;border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;transition:transform .12s,opacity .12s;display:grid}.send:disabled{opacity:.35;cursor:default}.send:not(:disabled):active{transform:scale(.92)}.send.stop{background:var(--danger)}.error-banner{color:#ffb4b4;background:#ff6b6b1a;border:1px solid #ff6b6b66;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin:10px 12px 0;padding:10px 12px;font-size:13px;display:flex}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#04060a99;display:flex;position:fixed;inset:0}.drawer{background:var(--bg-soft);border-right:1px solid var(--line);width:min(82vw,320px);height:100%;padding:calc(12px + var(--safe-t)) 12px calc(12px + var(--safe-b));flex-direction:column;gap:12px;animation:.18s ease-out slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translate(-14px)}}.drawer-head,.sheet-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:14px;font-weight:600;display:flex}.conv-list{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.conv-item{border-radius:10px;align-items:center;display:flex}.conv-item:hover,.conv-item.active{background:var(--bg-elev)}.conv-select{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:10px;display:flex}.conv-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.conv-meta{color:var(--muted);font-size:10.5px}.conv-delete{color:#5d6a7d;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:12px}.conv-delete:hover{color:var(--danger);background:#ff6b6b1a}.sheet{background:var(--bg-soft);border-top:1px solid var(--line);width:100%;padding:16px 16px calc(18px + var(--safe-b));border-radius:20px 20px 0 0;flex-direction:column;gap:14px;margin:auto 0 0;animation:.2s ease-out sheet-up;display:flex}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted);font-size:12px}.field select,.field input{background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;outline:none;padding:11px 12px;font-size:15px}.field select:focus,.field input:focus{border-color:var(--accent)}.hint{color:var(--muted);margin:0;font-size:11.5px;line-height:1.6}.sync-status{border:1px solid var(--line);background:var(--bg-elev);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sync-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.sync-dot.on{background:#57d38c}.sync-dot.syncing{background:var(--accent);animation:1s ease-in-out infinite sync-pulse}.sync-dot.error{background:var(--danger)}.sync-dot.off{background:var(--muted)}.sync-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:12px;display:flex}.sync-email{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}@keyframes sync-pulse{50%{opacity:.35}}.primary{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600}.primary:active{transform:scale(.99)}.new-chat{width:100%}.ghost{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:8px;padding:6px 10px}.ghost:hover{color:var(--text);border-color:var(--accent)}.small{font-size:11.5px}@media (width>=720px){.messages{padding:24px 22px 8px}.composer{padding-bottom:14px}.sheet{border:1px solid var(--line);border-radius:20px;max-width:440px;margin:auto}}
