:root{--bg: #0b1220;--bg-elev: #111a2e;--surface: #18223a;--border: rgba(255, 255, 255, .08);--text: #e7ecf3;--text-muted: #9aa6b8;--accent: #7aa2ff;--accent-strong: #5b87ff;--user-bg: #1f6feb;--user-text: #ffffff;--assistant-bg: #18223a;--assistant-text: #e7ecf3;--error-bg: #3a1d22;--error-text: #ffb4b4;--radius: 14px;--radius-lg: 22px;--shadow: 0 6px 30px rgba(0, 0, 0, .35);--max-width: 760px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f5f7fb;--bg-elev: #ffffff;--surface: #ffffff;--border: rgba(15, 23, 42, .08);--text: #0f172a;--text-muted: #64748b;--accent: #2f6fff;--accent-strong: #1f5bdf;--user-bg: #2f6fff;--user-text: #ffffff;--assistant-bg: #ffffff;--assistant-text: #0f172a;--error-bg: #fde8ea;--error-text: #a01225;--shadow: 0 6px 24px rgba(15, 23, 42, .08);color-scheme:light}}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}body{overscroll-behavior-y:contain}.app-shell{display:grid;grid-template-rows:auto 1fr auto;height:100dvh;width:100%;max-width:var(--max-width);margin:0 auto;background:var(--bg)}@media (min-width: 720px){.app-shell{border-inline:1px solid var(--border)}}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-elev);border-bottom:1px solid var(--border);padding-top:max(14px,env(safe-area-inset-top))}.app-header__brand{display:flex;align-items:center;gap:12px;min-width:0}.app-header__logo{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;font-weight:700;display:grid;place-items:center;font-size:18px;letter-spacing:.5px;box-shadow:var(--shadow)}.app-header__titles h1{margin:0;font-size:17px;line-height:1.2}.app-header__titles p{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.app-header__actions{display:flex;align-items:center;gap:8px}.app-header__action{background:transparent;border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:999px;font-size:13px;cursor:pointer;transition:background .15s ease,transform .05s ease}.app-header__action--icon{padding:8px;display:grid;place-items:center;width:36px;height:36px}.app-header__action--icon.active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent);color:var(--accent)}.app-header__action:hover:not(:disabled){background:var(--surface)}.app-header__action:active:not(:disabled){transform:scale(.97)}.app-header__action:disabled{opacity:.4;cursor:not-allowed}.app-main{overflow-y:auto;padding:16px;scroll-behavior:smooth}.message-list{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 12px;color:var(--text-muted)}.empty-state h2{margin:0 0 6px;font-size:22px;color:var(--text)}.empty-state p{margin:0 0 18px;font-size:14px}.empty-state__suggestions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;max-width:420px;width:100%}.empty-state__suggestions li{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-size:13px;text-align:left}.bubble{max-width:88%;padding:10px 14px;border-radius:var(--radius);font-size:15px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;box-shadow:var(--shadow);position:relative}.bubble--user{align-self:flex-end;background:var(--user-bg);color:var(--user-text);border-bottom-right-radius:4px}.bubble--assistant{align-self:flex-start;background:var(--assistant-bg);color:var(--assistant-text);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble--error{background:var(--error-bg);color:var(--error-text);border-color:transparent}.bubble__text{font-size:15px}.bubble__meta{margin-top:4px;font-size:10.5px;opacity:.65;text-align:right}.bubble--typing{display:inline-flex;gap:4px;align-items:center;padding:12px 14px}.bubble--typing .dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:bounce 1.2s infinite ease-in-out}.bubble--typing .dot:nth-child(2){animation-delay:.15s}.bubble--typing .dot:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}.app-footer{background:var(--bg-elev);border-top:1px solid var(--border);padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.composer-wrap{display:flex;flex-direction:column;gap:6px}.composer-notice{font-size:12.5px;padding:6px 10px;border-radius:10px;line-height:1.4}.composer-notice--hint{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.composer-notice--hint em{font-style:normal;font-weight:500}.composer-notice--pending{background:color-mix(in srgb,var(--accent) 6%,transparent);color:color-mix(in srgb,var(--accent) 80%,var(--text-primary));border:1px dashed color-mix(in srgb,var(--accent) 35%,transparent)}.composer-notice--pending em{font-style:normal;font-weight:600}.composer-notice--error{background:var(--error-bg);color:var(--error-text);border:1px solid color-mix(in srgb,var(--error-text) 20%,transparent)}.composer-notice--voice-mode{background:color-mix(in srgb,#4caf50 8%,transparent);color:#4caf50;border:1px dashed color-mix(in srgb,#4caf50 35%,transparent);text-align:center;font-weight:500}.composer{display:flex;gap:8px;align-items:flex-end}.composer__input{flex:1;resize:none;max-height:200px;min-height:44px;padding:11px 14px;border-radius:18px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:15px;line-height:1.4;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.composer__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7aa2ff26}.composer__input:disabled{opacity:.7}.composer__btn{border:none;background:var(--accent-strong);color:#fff;padding:0 18px;height:44px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,transform .05s ease,opacity .15s ease}.composer__btn:hover:not(:disabled){background:var(--accent)}.composer__btn:active:not(:disabled){transform:scale(.97)}.composer__btn:disabled{opacity:.5;cursor:not-allowed}.composer__btn--cancel{background:#b3261e}.composer__btn--cancel:hover{background:#d3302a}.composer__btn--mic{background:transparent;border:1px solid var(--border);color:var(--text-muted);width:44px;padding:0;flex-shrink:0;display:grid;place-items:center;border-radius:999px;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .05s ease}.composer__btn--mic:hover:not(:disabled){background:var(--surface);color:var(--text)}.composer__btn--mic.voice-mode-active{background:color-mix(in srgb,#4caf50 12%,transparent);border-color:#4caf50;color:#4caf50}.composer__btn--mic.recording{background:color-mix(in srgb,#b3261e 15%,transparent);border-color:#b3261e;color:#b3261e;animation:mic-pulse 1.2s infinite ease-in-out}@keyframes mic-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,#b3261e 40%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,#b3261e 0%,transparent)}}.app-main::-webkit-scrollbar{width:8px}.app-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}
