:root{--bg: #f5f6f2;--panel: #0e1116;--panel-text: #e6e8e3;--surface: #ffffff;--ink: #111418;--muted: #6c7268;--line: #d9dbd2;--accent: #b8f230;--on-accent: #0b0d10;--link: #3f5f00;--user-bubble: #b8f230;--user-text: #0b0d10;--radius: 6px;--font: "Space Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}:root[data-theme=dark]{--bg: #0b0d10;--panel: #07080a;--surface: #14181d;--ink: #e6e8e3;--muted: #8b9187;--line: #262b32;--link: #b8f230}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font)}.app{display:flex;height:100%}.sidebar{width:240px;background:var(--panel);color:var(--panel-text);padding:20px;display:flex;flex-direction:column;gap:20px}.brand{font-size:1.5rem;font-weight:700}.new-chat{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);padding:10px;font:inherit;cursor:pointer}.new-chat:hover{background:#ffffff14}.chat{flex:1;display:flex;flex-direction:column;min-width:0}.thread{flex:1;overflow-y:auto;padding:32px 20px;max-width:760px;width:100%;margin:0 auto}.empty{text-align:center;margin-top:18vh}.empty h2{font-size:1.8rem;margin-bottom:8px}.empty p{color:var(--muted)}.msg{display:flex;margin-bottom:14px}.msg.user{justify-content:flex-end}.bubble{max-width:80%;padding:12px 16px;border-radius:var(--radius);line-height:1.55;white-space:pre-wrap;background:var(--surface)}.msg.user .bubble{background:var(--user-bubble);color:var(--user-text)}.typing{display:flex;gap:5px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{display:flex;gap:10px;max-width:760px;width:100%;margin:0 auto;padding:0 20px 24px}.composer textarea{flex:1;resize:none;padding:14px 16px;border:1px solid transparent;border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit}.composer textarea:focus-visible,.composer button:focus-visible,.new-chat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.composer button{background:var(--accent);color:#fff;border:0;border-radius:var(--radius);padding:0 22px;font:inherit;font-weight:600;cursor:pointer}.composer button:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 700px){.sidebar{display:none}}@media (prefers-reduced-motion: reduce){.typing span{animation:none}}.history{list-style:none;padding:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.history li{display:flex;border-radius:10px}.history li.on,.history li:hover{background:#ffffff1a}.history .title{flex:1;min-width:0;text-align:left;background:none;border:0;color:inherit;font:inherit;padding:8px 10px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history .del{background:none;border:0;color:inherit;opacity:.6;cursor:pointer;padding:0 10px;font-size:1.1rem}.account{display:flex;flex-direction:column;gap:8px;font-size:.9rem}.sources{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sources a{font-size:.85rem;color:var(--accent)}.auth{min-height:100%;display:grid;place-items:center;padding:20px}.auth-card{width:100%;max-width:360px;background:var(--surface);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:12px}.auth-card input{padding:12px 14px;border-radius:10px;border:1px solid var(--muted);background:transparent;color:var(--ink);font:inherit}.auth-card input:focus-visible,.auth-card button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth .primary{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:12px;font:inherit;font-weight:600;cursor:pointer}.auth .link{background:none;border:0;color:var(--accent);font:inherit;cursor:pointer}.muted{color:var(--muted)}.error{color:#d6453d;font-size:.9rem}.auth .brand{color:var(--ink)}.theme-float{position:fixed;top:16px;right:16px;background:var(--surface);color:var(--ink);border:1px solid var(--muted);border-radius:var(--radius);padding:8px 14px;font:inherit;cursor:pointer}.banner{max-width:760px;width:calc(100% - 40px);margin:0 auto 10px;padding:10px 14px;border-radius:10px;background:var(--surface);color:var(--muted);font-size:.9rem}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md pre{margin:0 0 10px}.md ul,.md ol{padding-left:22px}.md code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;background:#7f7f7f2e;padding:2px 5px;border-radius:5px}.md pre{background:#0c0e14;color:#e8ecf7;padding:12px;border-radius:10px;overflow-x:auto}.md pre code{background:none;padding:0}.bubble{white-space:normal}.msg.user .bubble{white-space:pre-wrap}body{font-size:13px;letter-spacing:.005em}button,input,textarea{font-size:13px}.brand{font-family:var(--mono);font-size:1.05rem;font-weight:600;letter-spacing:-.02em}.brand:before{content:"> ";color:var(--accent)}.auth .brand:before{color:var(--link)}.new-chat,.composer button,.auth .primary,.theme-float,.history .title,.account{font-family:var(--mono);font-size:12px}.sidebar{width:220px;border-right:1px solid #1c2128}.new-chat{border-radius:var(--radius);border-color:#2a313a}.empty h2{font-size:1.25rem;font-weight:500;letter-spacing:-.02em}.empty p,.muted{font-size:12px}.bubble{font-size:13px;line-height:1.6;border:1px solid var(--line);box-shadow:none;padding:10px 14px}.msg.user .bubble{border-color:transparent;font-weight:500}.msg.assistant .bubble{border-left:3px solid var(--accent)}.composer textarea{border:1px solid var(--line)}.composer textarea:focus{border-color:var(--link)}.composer button,.auth .primary{color:var(--on-accent)}.composer button:hover:not(:disabled),.auth .primary:hover{filter:brightness(.95)}.auth-card{border:1px solid var(--line)}.auth-card input{border-color:var(--line)}.sources a,.auth .link{color:var(--link);font-family:var(--mono);font-size:11px}.theme-float{border-color:var(--line)}.banner{font-family:var(--mono);font-size:11px;border:1px solid var(--line)}.md code,.md pre{font-family:var(--mono);font-size:12px}.actions{display:flex;gap:2px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.actions button{background:none;border:0;color:var(--muted);padding:6px;border-radius:5px;cursor:pointer;display:grid;place-items:center}.actions button:hover{color:var(--ink);background:#7f7f7f26}.actions button.on{color:var(--link)}.actions button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line)}.title-input{flex:1;min-width:0;max-width:420px;background:transparent;border:1px solid transparent;border-radius:var(--radius);padding:7px 10px;color:var(--ink);font-family:var(--mono);font-size:13px;font-weight:600}.title-input:hover{border-color:var(--line)}.title-input:focus{outline:none;border-color:var(--link)}.top-actions{display:flex;align-items:center;gap:2px}.icon-btn{background:none;border:0;color:var(--muted);padding:8px;border-radius:var(--radius);cursor:pointer;display:grid;place-items:center}.icon-btn:hover{color:var(--ink);background:#7f7f7f26}.icon-btn:focus-visible,.menu button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.user-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);width:230px;z-index:10;display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #0000002e}.menu-name{font-family:var(--mono);font-size:11px;color:var(--muted);padding:4px 8px}.menu button{text-align:left;background:none;border:0;color:var(--ink);padding:8px 10px;border-radius:5px;cursor:pointer;font-family:var(--mono);font-size:12px}.menu button:hover{background:#7f7f7f26}.menu .danger{color:#d6453d}.menu .save{background:var(--accent);color:var(--on-accent);text-align:center}.menu .save:hover{background:var(--accent);filter:brightness(.95)}.menu input{padding:8px 10px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--ink);font:inherit;font-size:12px}.menu input:focus{outline:none;border-color:var(--link)}@media (max-width: 700px){.topbar{padding:8px 12px}}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}.chips button{font-family:var(--mono);font-size:12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:7px 12px;cursor:pointer}.chips button:hover{border-color:var(--link)}.chips button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.md h3{font-size:14px;font-weight:700;margin:0 0 8px}.voice{display:flex;align-items:stretch;gap:6px}.voice select{font-family:var(--mono);font-size:11px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:0 8px;cursor:pointer;max-width:120px}.composer button.mic{display:grid;place-items:center;padding:0 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}.composer button.mic:hover{border-color:var(--link);filter:none}.composer button.mic.rec{background:#d6453d;border-color:#d6453d;color:#fff;animation:pulse 1.4s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #d6453d80}50%{box-shadow:0 0 0 6px #d6453d00}}.voice select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (max-width: 700px){.voice select{display:none}}@media (prefers-reduced-motion: reduce){.composer button.mic.rec{animation:none}}:root{--link: color-mix(in srgb, var(--accent) 55%, #000)}:root[data-theme=dark]{--link: var(--accent)}body,.bubble,.composer textarea,.title-input{font-size:var(--fs, 13px)}.search{background:transparent;border:1px solid #2a313a;border-radius:var(--radius);padding:8px 10px;color:inherit;font-family:var(--mono);font-size:12px}.search:focus{outline:none;border-color:var(--accent)}.search::placeholder{color:#e6e8e373}.history .pin{background:none;border:0;color:inherit;opacity:.4;cursor:pointer;padding:0 4px;display:grid;place-items:center}.history li:hover .pin,.history .pin.on{opacity:1}.history .pin.on{color:var(--accent)}.persona{font-family:var(--mono);font-size:11px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:6px 8px;margin-right:6px;cursor:pointer;max-width:150px}.persona:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filetag{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;opacity:.8;margin-bottom:6px}.edit textarea{width:100%;background:#ffffff8c;border:1px solid rgba(0,0,0,.25);border-radius:6px;padding:8px;font:inherit;color:#111;resize:vertical}.edit-actions{display:flex;gap:6px;margin-top:6px}.edit-actions button{font-family:var(--mono);font-size:12px;border:1px solid rgba(0,0,0,.25);background:transparent;color:inherit;border-radius:5px;padding:5px 10px;cursor:pointer}.edit-actions .save{background:var(--user-text);color:var(--user-bubble)}.msg.user .actions{border-top-color:#7f7f7f59}.msg.user .actions button{color:var(--user-text);opacity:.7}.msg.user .actions button:hover{opacity:1}.composer button.attach{display:grid;place-items:center;padding:0 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}.composer button.attach:hover{border-color:var(--link);filter:none}.composer button.stop{background:#d6453d;color:#fff}.banner .linkbtn{background:none;border:0;color:var(--link);cursor:pointer;font:inherit;text-decoration:underline;margin-left:8px}.menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:12px;padding:4px 8px}.menu input[type=color]{padding:0;height:26px;width:40px;border:0;background:none;cursor:pointer}.menu input[type=range]{padding:0;border:0;width:90px;accent-color:var(--accent)}.menu button:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 700px){.persona{max-width:100px}}.app{height:100vh;height:100dvh}body{overflow-x:hidden}.bubble{overflow-wrap:anywhere}.menu-btn,.backdrop{display:none}@media (max-width: 760px){.menu-btn{display:grid}.backdrop{display:block;position:fixed;inset:0;background:#00000080;z-index:20}.sidebar{display:flex;position:fixed;inset:0 auto 0 0;width:min(84vw,320px);z-index:30;transform:translate(-100%);transition:transform .2s ease;padding:calc(20px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom))}.sidebar.open{transform:none;box-shadow:8px 0 32px #00000059}.history .title{padding:12px 10px}.history .pin,.history .del{padding:0 10px}.new-chat{padding:12px}.topbar{gap:4px;padding:calc(6px + env(safe-area-inset-top)) 8px 6px}.title-input{max-width:none}.icon-btn{padding:10px}.persona{max-width:92px;margin-right:2px}.menu{width:min(240px,calc(100vw - 24px))}.thread{padding:16px 12px}.bubble{max-width:94%}.empty{margin-top:6vh}.empty h2{font-size:1.1rem}.actions button{padding:10px}.composer{flex-wrap:wrap;gap:8px;padding:0 12px calc(12px + env(safe-area-inset-bottom))}.composer textarea{order:-1;flex:1 1 100%;min-height:44px;max-height:160px}.composer button{min-height:44px}.composer>button:last-child{margin-left:auto;padding:0 26px}.voice select{display:block;min-height:44px}.banner{width:calc(100% - 24px)}.composer textarea,.search,.title-input,.auth-card input,.menu input,.edit textarea,.persona,.voice select{font-size:16px}.theme-float{top:calc(12px + env(safe-area-inset-top))}}@media (hover: none){.history .pin{opacity:.7}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:99px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#00000059;background-clip:content-box}::-webkit-scrollbar-button{display:none;height:0;width:0}
