:root{color:#25211b;font-synthesis:none;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#25211b;--muted:#766f65;--line:#ddd5c9;--paper:#fffaf2;--surface:#f0e7d9;--teal:#0f766e;--teal-dark:#0a4f4a;--coral:#c75b3b;--sage:#677f52;--shadow:0 18px 50px #25211b1f;background:#f7f3eb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;margin:0}button,textarea{font:inherit}button{cursor:pointer}.app-shell{background:linear-gradient(135deg,#fffaf2f0,#eee5d7eb),radial-gradient(circle at 88% 8%,#c75b3b42,#0000 26rem),radial-gradient(circle at 20% 90%,#0f766e2e,#0000 24rem);grid-template-columns:minmax(260px,320px) minmax(0,1fr);height:100dvh;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffaf2b8;flex-direction:column;gap:20px;min-height:100vh;padding:28px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark,.avatar{flex:none;place-items:center;display:grid}.brand-mark{color:#fffaf2;background:var(--teal);border-radius:8px;width:46px;height:46px;box-shadow:0 10px 24px #0f766e40}.brand h1{color:var(--ink);margin:0;font-size:1.25rem;line-height:1.15}.brand p,.model-panel span,.stats-grid small{color:var(--muted);margin:0;font-size:.86rem}.model-panel,.memory-panel{border:1px solid var(--line);background:#fffaf2cc;border-radius:8px;gap:8px;padding:16px;display:grid}.panel-label{text-transform:uppercase}.model-panel strong{color:var(--teal-dark);overflow-wrap:anywhere;font-size:1rem}.endpoint{overflow-wrap:anywhere}.masked-key{color:var(--muted);overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.82rem}.memory-panel{gap:10px}.memory-panel textarea{resize:vertical;width:100%;min-height:104px;color:var(--ink);background:#fffaf2d6;border:1px solid #ddd5c9eb;border-radius:8px;outline:none;padding:10px 11px;font-size:.9rem;line-height:1.45}.memory-panel textarea:focus{border-color:#0f766e94;box-shadow:0 0 0 4px #0f766e1f}.memory-toggle{display:none}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stats-grid div{border:1px solid var(--line);background:#fffaf2ad;border-radius:8px;gap:4px;padding:14px;display:grid}.stats-grid span{color:var(--coral);font-size:1.35rem;font-weight:750}.secondary-button,.icon-button,.send-button,.copy-button{border:0;border-radius:8px;justify-content:center;align-items:center;transition:transform .16s,background .16s,color .16s,opacity .16s;display:inline-flex}.secondary-button{width:100%;min-height:42px;color:var(--ink);background:#e4d8c8;gap:9px;margin-top:auto}.secondary-button:hover,.icon-button:hover,.copy-button:hover{transform:translateY(-1px)}.chat-panel{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f3ebbd;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:18px clamp(18px,4vw,42px);display:flex}.topbar>div{color:var(--muted);align-items:center;gap:9px;font-weight:650;display:flex}.status{background:var(--sage);border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 4px #677f5224}.status.active{background:var(--coral);box-shadow:0 0 0 4px #c75b3b29}.icon-button{width:38px;height:38px;color:var(--ink);background:#eadfce}.messages{overscroll-behavior:contain;scroll-behavior:smooth;flex-direction:column;gap:18px;min-height:0;padding:clamp(18px,4vw,42px);display:flex;overflow-y:auto}.message{grid-template-columns:36px minmax(0,760px);align-items:start;gap:12px;display:grid}.message.user{grid-template-columns:minmax(0,760px) 36px;justify-content:end}.message.user .avatar{color:#fffaf2;background:var(--coral);grid-column:2}.message.user .bubble{background:#fff6eb;grid-column:1;justify-self:end}.message.assistant .avatar{color:#fffaf2;background:var(--teal)}.avatar{border-radius:8px;width:36px;height:36px}.bubble{min-width:0;max-width:100%;box-shadow:var(--shadow);background:#fffaf2e0;border:1px solid #ddd5c9db;border-radius:8px;padding:15px 16px 42px;position:relative}.message-meta{color:var(--muted);align-items:center;gap:10px;margin-bottom:8px;font-size:.78rem;font-weight:650;display:flex}.message-meta time{font-weight:500}.message-content{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.98rem;line-height:1.72}.typing-dot:after{content:"...";width:1.5em;animation:1.1s steps(3,end) infinite pulse;display:inline-block}.copy-button{min-height:28px;color:var(--muted);background:#eadfcead;gap:5px;padding:0 9px;font-size:.78rem;position:absolute;bottom:10px;right:10px}.composer{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f3ebdb;grid-template-columns:minmax(0,1fr) 48px;align-items:end;gap:12px;padding:18px clamp(18px,4vw,42px) 26px;display:grid}.composer textarea{resize:none;border:1px solid var(--line);width:100%;min-height:48px;max-height:180px;color:var(--ink);background:var(--paper);border-radius:8px;outline:none;padding:13px 15px;line-height:1.5;box-shadow:inset 0 1px #ffffffa6}.composer textarea:focus{border-color:#0f766e94;box-shadow:0 0 0 4px #0f766e1f,inset 0 1px #ffffffa6}.composer textarea:disabled{color:var(--muted);background:#eee4d5}.send-button{color:#fffaf2;background:var(--teal);width:48px;height:48px;box-shadow:0 12px 24px #0f766e3d}.send-button:hover:not(:disabled){background:var(--teal-dark);transform:translateY(-1px)}.send-button:disabled{cursor:not-allowed;opacity:.45}.send-button.stop{background:var(--coral);box-shadow:0 12px 24px #c75b3b38}@media (width>=781px) and (width<=1100px){.app-shell{grid-template-columns:minmax(248px,284px) minmax(0,1fr)}.sidebar{gap:16px;padding:20px}.brand-mark{width:42px;height:42px}.brand h1{font-size:1.16rem}.model-panel,.memory-panel{padding:14px}.memory-panel textarea{min-height:88px;max-height:160px}.stats-grid div{padding:12px}.topbar{min-height:62px;padding:14px 24px}.messages{gap:16px;padding:24px}.message{grid-template-columns:34px minmax(0,1fr)}.message.user{grid-template-columns:minmax(0,1fr) 34px}.avatar{width:34px;height:34px}.bubble{max-width:44rem;padding:14px 15px 40px}.composer{padding:14px 24px calc(18px + env(safe-area-inset-bottom))}}@keyframes pulse{0%{opacity:.35}to{opacity:1}}@media (width<=780px){.app-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;overflow:hidden}.sidebar{min-height:auto;padding:calc(12px + env(safe-area-inset-top)) 12px 10px;border-right:0;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 44px;align-items:center;display:grid}.brand{grid-area:1/1;min-width:0}.brand-mark{width:38px;height:38px}.model-panel,.stats-grid{display:none}.secondary-button{grid-area:1/2;justify-self:end;width:44px;min-height:44px;margin-top:0;padding:0;font-size:0}.secondary-button svg{width:18px;height:18px}.memory-toggle{border:1px solid var(--line);min-height:40px;color:var(--ink);background:#fffaf2c2;border-radius:8px;grid-area:2/1/auto/-1;justify-content:space-between;align-items:center;padding:0 12px;font-weight:650;display:flex}.memory-toggle svg:last-child{transition:transform .16s}.memory-toggle.open svg:last-child{transform:rotate(180deg)}.memory-panel{grid-area:3/1/auto/-1;padding:12px;display:none}.memory-panel.open{display:grid}.memory-panel textarea{min-height:78px;max-height:140px}.chat-panel{height:auto;min-height:0}.topbar{min-height:48px;padding:8px 14px}.messages{gap:14px;padding:14px 12px}.message{grid-template-columns:32px minmax(0,1fr);justify-content:stretch;gap:10px}.message.user{grid-template-columns:minmax(0,1fr) 32px}.message.user .avatar{grid-column:2}.message.user .bubble{grid-column:1;justify-self:end}.avatar{width:32px;height:32px}.bubble{max-width:min(100%,34rem);padding:12px 12px 38px;box-shadow:0 12px 34px #25211b1a}.message-content{font-size:.96rem;line-height:1.62}.copy-button{min-height:26px;padding:0 8px}.composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) 46px;gap:10px}.composer textarea{min-height:46px;padding:11px 13px}.send-button{width:46px;height:46px}}@media (width<=480px){.sidebar{gap:10px}.brand h1{font-size:1.08rem}.brand p{overflow-wrap:anywhere;max-width:190px}.topbar{min-height:46px}.messages{gap:12px}}
