:root{--bg: #f7f8fb;--surface: #ffffff;--surface-2: #f1f3f8;--border: #e6e9f0;--border-strong: #d5dae4;--text: #1a2236;--text-2: #4a5578;--text-3: #6c7592;--text-muted: #8a92a8;--sidebar-bg: #1e2a4a;--sidebar-bg-2: #18213a;--sidebar-text: #b8c0d9;--sidebar-text-active: #ffffff;--sidebar-hover: #28345a;--accent: #14b8a6;--accent-soft: #ccfbf1;--accent-text: #0f766e;--accent-2: #3b82f6;--success: #10b981;--success-soft: #d1fae5;--success-text: #065f46;--warning: #f59e0b;--danger: #ef4444;--danger-soft: #fee2e2;--danger-text: #b91c1c;--shadow-sm: 0 1px 2px rgba(26, 34, 54, .04);--shadow-md: 0 2px 8px rgba(26, 34, 54, .06), 0 1px 2px rgba(26, 34, 54, .04);--shadow-lg: 0 10px 30px rgba(26, 34, 54, .08), 0 4px 8px rgba(26, 34, 54, .04);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--sidebar-w: 284px;--topbar-h: 64px;--ease: cubic-bezier(.4, .2, .2, 1);--t-fast: .12s ease;--t-base: .22s var(--ease)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.45;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,textarea,select{font:inherit}button{border:0}a{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.sidebar{min-height:100vh;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.sidebar-brand{padding:20px 22px 18px;display:flex;gap:10px;align-items:center;border-bottom:1px solid rgba(255,255,255,.06)}.brand-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:var(--surface);font-weight:800;box-shadow:0 4px 10px #14b8a640;flex:0 0 auto}.brand-mark.large{width:48px;height:48px;border-radius:var(--radius-lg);font-size:20px}.brand-name{color:var(--sidebar-text-active);font-weight:700;letter-spacing:0}.brand-sub,.foot-meta-role{color:var(--sidebar-text);opacity:.68;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.sidebar-nav{padding:14px 12px 8px;display:grid;gap:6px}.nav-item,.new-chat,.chat-list-item{width:100%;color:var(--sidebar-text);background:transparent;display:flex;align-items:center;gap:10px;border-radius:var(--radius);min-height:38px;padding:9px 10px;cursor:pointer;transition:background var(--t-fast),color var(--t-fast);text-align:left}.nav-item:hover,.new-chat:hover,.chat-list-item:hover,.nav-item.active,.chat-list-item.active{color:var(--sidebar-text-active);background:var(--sidebar-hover)}.sidebar-section-label{padding:16px 22px 8px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.55}.new-chat{margin:0 12px 8px;width:calc(100% - 24px);background:#14b8a61f;color:var(--sidebar-text-active)}.chat-list{overflow:auto;padding:0 12px 14px;display:grid;gap:6px}.chat-list-item{display:grid;gap:2px;min-height:58px}.chat-list-item span,.chat-list-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item span{color:var(--sidebar-text-active);font-weight:600}.chat-list-item small{color:var(--sidebar-text);opacity:.72}.sidebar-foot{margin-top:auto;padding:14px 14px 16px;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:10px;align-items:center;border-top:1px solid rgba(255,255,255,.06)}.user-avatar,.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);font-weight:700;flex:0 0 auto}.foot-meta{min-width:0}.foot-meta-name{color:var(--sidebar-text-active);font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.icon-button{width:34px;height:34px;border-radius:var(--radius);display:grid;place-items:center;background:var(--sidebar-hover);color:var(--sidebar-text);cursor:pointer}.main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{height:var(--topbar-h);background:#ffffffeb;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar-title{font-size:16px;font-weight:700}.topbar-subtitle{color:var(--text-3);font-size:12.5px}.topbar-spacer{flex:1}.topbar-chip,.badge{display:inline-flex;align-items:center;gap:6px;min-height:28px;border-radius:var(--radius-sm);padding:0 10px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:700}.mobile-only,.mobile-nav{display:none}.chat-workspace{min-height:calc(100vh - var(--topbar-h));display:grid;grid-template-columns:minmax(0,1fr) 336px}.conversation-panel{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;border-right:1px solid var(--border)}.messages{padding:24px;overflow:auto;display:flex;flex-direction:column;gap:18px}.message-row{display:flex;gap:12px;align-items:flex-start;max-width:920px}.message-row.user{margin-left:auto;flex-direction:row-reverse}.message-row.user .avatar{background:var(--surface-2);color:var(--text-2)}.message-content{min-width:0;display:grid;gap:10px}.message-bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:13px 15px;white-space:pre-wrap;box-shadow:var(--shadow-sm);overflow-wrap:anywhere}.message-row.user .message-bubble{background:var(--accent-text);border-color:var(--accent-text);color:var(--surface)}.muted-bubble{color:var(--text-2);display:inline-flex;align-items:center;gap:8px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.composer{margin:0 24px 24px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.composer textarea{width:100%;min-height:96px;max-height:240px;resize:vertical;border:0;outline:0;padding:15px 16px;color:var(--text)}.composer-actions{border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;padding:10px}.btn{min-height:36px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:650;transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),border-color var(--t-fast)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.btn-danger{background:var(--danger-soft);border-color:var(--danger-soft);color:var(--danger-text)}.btn-ghost{background:transparent}.btn-lg{min-height:42px;padding:0 16px}.btn-sm{min-height:30px;padding:0 10px;font-size:12.5px}.btn-icon{width:36px;padding:0}.btn-icon.recording{background:var(--danger-soft);border-color:var(--danger);color:var(--danger-text)}.btn-full{width:100%}.context-panel{min-width:0;padding:20px;display:flex;flex-direction:column;gap:16px;background:var(--surface-2)}.side-section,.admin-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.section-head{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:12px}.memory-stack{display:grid;gap:10px}.memory-note{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 11px;color:var(--text-2);font-size:12.5px}.memory-note span,.type-tag{display:inline-flex;margin:0 7px 3px 0;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-text);padding:2px 7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.empty-note{color:var(--text-3);background:var(--surface-2);border-radius:var(--radius);padding:14px}.empty-chat{margin:auto;text-align:center;max-width:430px;color:var(--text-2);padding:42px 20px}.empty-chat svg{color:var(--accent)}.empty-chat h2{color:var(--text);margin:12px 0 8px;font-size:24px}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.image-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.generated-image{position:relative;display:block;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--surface-2);min-height:120px}.generated-image img{display:block;width:100%;height:100%;aspect-ratio:1 / 1;object-fit:cover}.generated-image span{position:absolute;left:8px;bottom:8px;border-radius:var(--radius-sm);background:#1a2236b8;color:var(--surface);font-size:11px;padding:3px 7px}.admin-layout{padding:22px;display:grid;gap:16px}.admin-tabs{display:flex;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:6px;width:max-content}.admin-tabs button{min-height:34px;display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius);background:transparent;color:var(--text-2);padding:0 12px;cursor:pointer;font-weight:700}.admin-tabs button.active{background:var(--accent-soft);color:var(--accent-text)}.admin-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.admin-title h2{margin:0;font-size:19px}.prompt-editor{width:100%;min-height:230px;resize:vertical;border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px;color:var(--text);outline-color:var(--accent)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.field{display:grid;gap:7px;color:var(--text-2);font-weight:650}.field select,.field input{min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 10px;color:var(--text);background:var(--surface)}.memory-table{display:grid;gap:10px}.memory-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.memory-row.disabled{opacity:.56}.memory-row p{margin:4px 0}.memory-row small{color:var(--text-3)}.row-actions{display:flex;gap:8px}.toast{position:fixed;top:76px;right:18px;z-index:20;background:var(--danger-soft);color:var(--danger-text);border:1px solid rgba(239,68,68,.18);border-radius:var(--radius);padding:11px 13px;box-shadow:var(--shadow-lg);font-weight:650}.toast.success{background:var(--success-soft);color:var(--success-text);border-color:#10b9812e}.center-screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--bg)}.center-screen{gap:10px;color:var(--text-2)}.login-panel{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:28px;display:grid;justify-items:start;gap:14px}.login-panel h1{margin:2px 0 0;font-size:28px}.login-panel p{margin:0 0 8px;color:var(--text-2)}@media(max-width:1060px){.app-shell{grid-template-columns:78px minmax(0,1fr)}.sidebar{width:78px}.sidebar-brand>div:not(.brand-mark),.nav-item span,.new-chat,.chat-list,.sidebar-section-label,.foot-meta{display:none}.sidebar-foot{grid-template-columns:34px;justify-content:center}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-only{display:block}.topbar{height:auto;min-height:var(--topbar-h);align-items:flex-start;padding-top:12px;padding-bottom:12px}.topbar-subtitle{max-width:240px}.mobile-nav{position:sticky;top:var(--topbar-h);z-index:4;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;background:var(--surface);border-bottom:1px solid var(--border)}.mobile-nav button{min-height:36px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.mobile-nav button.active{background:var(--accent-soft);color:var(--accent-text)}.chat-workspace{grid-template-columns:1fr}.context-panel{border-top:1px solid var(--border)}.settings-grid,.memory-row{grid-template-columns:1fr}.admin-tabs{width:100%;overflow:auto}}
