:root{--bg:#fff;--panel:#f7f7f8;--panel2:#ececf1;--text:#202123;--muted:#6b6c70;--border:#d9d9e3;--accent:#10a37f;--accent2:#0d8c6d;--user:#f4f4f4;--shadow:0 12px 34px rgba(0,0,0,.14);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}
html[data-theme="dark"]{--bg:#212121;--panel:#171717;--panel2:#2f2f2f;--text:#ececec;--muted:#a9a9a9;--border:#414141;--accent:#19c37d;--accent2:#12a66a;--user:#2f2f2f;--shadow:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}
*{box-sizing:border-box}html,body,#app{height:var(--app-height,100dvh);max-height:var(--app-height,100dvh);margin:0}body{background:var(--bg);color:var(--text);overflow:hidden;overscroll-behavior:none}button,input,textarea{font:inherit;color:inherit}.app-shell{display:grid;grid-template-columns:270px 1fr;height:var(--app-height,100dvh);max-height:var(--app-height,100dvh);overflow:hidden}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0;z-index:20}.sidebar-header{display:flex;gap:8px;padding:12px}.new-chat{flex:1;display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:transparent;border-radius:10px;padding:12px 14px;cursor:pointer;text-align:left}.new-chat:hover,.secondary-button:hover,.conversation-item:hover{background:var(--panel2)}.conversation-list{flex:1;overflow-y:auto;padding:0 8px 16px}.conversation-group-label{color:var(--muted);font-size:12px;font-weight:600;padding:14px 10px 7px}.conversation-item{display:flex;align-items:center;border-radius:8px;margin:2px 0}.conversation-item.active{background:var(--panel2)}.conversation-select{border:0;background:transparent;cursor:pointer;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:10px}.delete-chat{opacity:0;border:0;background:transparent;cursor:pointer;padding:8px;color:var(--muted)}.conversation-item:hover .delete-chat,.conversation-item:focus-within .delete-chat{opacity:1}.sidebar-footer{border-top:1px solid var(--border);padding:10px;display:grid;gap:6px}.secondary-button,.primary-button{border:0;border-radius:8px;padding:10px 13px;cursor:pointer}.secondary-button{background:transparent;text-align:left}.primary-button{background:var(--accent);color:#fff;font-weight:600}.primary-button:hover,.send-button:hover{background:var(--accent2)}.main-panel{position:relative;display:flex;flex-direction:column;min-width:0;height:100%}.topbar{height:58px;display:flex;align-items:center;gap:12px;border-bottom:1px solid transparent;padding:0 18px;flex:none}.title-group{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px}.title-group h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.model-label,.connection-status{color:var(--muted);font-size:12px}.connection-status.streaming{color:var(--accent)}.icon-button{border:0;background:transparent;font-size:22px;cursor:pointer;border-radius:8px;padding:6px 9px}.icon-button:hover{background:var(--panel2)}.empty-state{margin:auto;text-align:center;max-width:720px;padding:24px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 18px;border-radius:14px;background:var(--text);color:var(--bg);font-size:22px;font-weight:800}.empty-state h2{font-size:30px;margin:0 0 10px}.empty-state p{color:var(--muted)}.suggestions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}.suggestions button{border:1px solid var(--border);background:transparent;border-radius:14px;padding:16px;text-align:left;cursor:pointer}.suggestions button:hover{background:var(--panel)}.message-log{flex:1;overflow-y:auto;scroll-behavior:smooth;padding-bottom:170px}.message{max-width:820px;margin:0 auto;padding:24px 24px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px}.message.user .message-content{background:var(--user);border-radius:18px;padding:12px 16px;justify-self:end;max-width:85%}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--panel2);font-size:12px;font-weight:700}.message.user .avatar{background:var(--accent);color:#fff}.message-body{min-width:0}.message-content{line-height:1.65;overflow-wrap:anywhere}.message-content p{margin:.2em 0 .9em}.message-content h1,.message-content h2,.message-content h3{margin:1em 0 .5em}.message-content pre{position:relative;background:#0d0d0d;color:#e6e6e6;border-radius:10px;padding:38px 14px 14px;overflow-x:auto}.message-content code{font-family:"SFMono-Regular",Consolas,monospace;font-size:.9em}.message-content :not(pre)>code{background:var(--panel2);padding:2px 5px;border-radius:5px}.copy-code{position:absolute;right:8px;top:7px;border:0;background:#2b2b2b;color:#ddd;border-radius:6px;padding:5px 8px;cursor:pointer;font-size:12px}.message-actions{display:flex;gap:4px;min-height:30px;margin-top:7px}.message-actions button{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:5px 8px;cursor:pointer;font-size:12px}.message-actions button:hover{background:var(--panel2);color:var(--text)}.cursor{display:inline-block;width:8px;height:18px;background:var(--text);vertical-align:middle;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.composer-wrap{position:absolute;left:0;right:0;bottom:var(--tg-content-safe-area-inset-bottom,0px);z-index:10;padding:22px max(20px,calc((100% - 820px)/2));background:linear-gradient(transparent,var(--bg) 28%)}.composer{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--border);background:var(--panel2);border-radius:24px;padding:10px 10px 10px 18px;box-shadow:0 2px 10px rgba(0,0,0,.08)}.composer:focus-within{border-color:var(--muted)}.composer textarea{flex:1;resize:none;max-height:180px;background:transparent;border:0;outline:0;line-height:1.5;padding:5px 0}.send-button{width:34px;height:34px;border:0;border-radius:50%;background:var(--accent);color:#fff;font-size:20px;cursor:pointer}.send-button:disabled{opacity:.35;cursor:not-allowed}.disclaimer{text-align:center;color:var(--muted);font-size:11px;margin:8px 0 0}.stream-actions{text-align:center;margin-bottom:7px}.stop-button{border:1px solid var(--border);background:var(--bg);border-radius:9px;padding:8px 12px;cursor:pointer}.sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:15}.mobile-only{display:none}dialog{width:min(560px,calc(100% - 28px));border:1px solid var(--border);border-radius:14px;background:var(--bg);color:var(--text);padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(0,0,0,.55)}dialog form{padding:20px;display:grid;gap:17px}.dialog-header{display:flex;align-items:center}.dialog-header h2{flex:1;margin:0}dialog label{display:grid;gap:7px;font-size:14px;font-weight:600}dialog input,dialog textarea{width:100%;border:1px solid var(--border);background:var(--panel2);border-radius:8px;padding:10px;outline:0}dialog input:focus,dialog textarea:focus{border-color:var(--accent)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.error-text{color:#ef4444;min-height:18px}.toast{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:9px 14px;border-radius:8px;z-index:50;box-shadow:var(--shadow)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(88vw,320px);transform:translateX(-105%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.mobile-only{display:inline-flex}.topbar{padding:0 10px}.model-label{display:none}.connection-status{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message{padding:18px 13px;grid-template-columns:29px minmax(0,1fr);gap:9px}.message.user .message-content{max-width:95%}.composer-wrap{padding:18px 10px calc(10px + var(--tg-content-safe-area-inset-bottom,0px))}.suggestions{grid-template-columns:1fr}.suggestions button:nth-child(n+3){display:none}.empty-state h2{font-size:25px}.message-log{padding-bottom:calc(145px + var(--tg-content-safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
