:root{--bg:#faf9f5;--bg-alt:#f0eee6;--bg-raised:#fff;--fg:#30302e;--fg-muted:#87857f;--border:#e5e2d9;--accent:#c2632e;--accent-fg:#fefaf6;--user-bubble:#ece9de;--error:#b3492f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#262624;--bg-alt:#30302e;--bg-raised:#3a3934;--fg:#ece9e2;--fg-muted:#93918a;--border:#43423d;--accent:#d97757;--user-bubble:#3a3934}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior-y:none}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--bg-alt);flex-direction:column;flex-shrink:0;gap:4px;width:272px;padding:14px 10px;display:flex;overflow-y:auto}.sidebar-scrim{display:none}.new-chat-btn{color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;margin-bottom:8px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.new-chat-btn:hover{background:var(--border)}.session-list{flex-direction:column;flex:1;gap:1px;min-height:0;display:flex;overflow-y:auto}.session-item{cursor:pointer;color:var(--fg);border-radius:10px;justify-content:space-between;align-items:center;gap:6px;padding:9px 12px;display:flex;position:relative}.session-item:hover{background:var(--border)}.session-item.active{background:var(--bg-raised)}.session-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.sidebar-empty{color:var(--fg-muted);padding:10px 12px;font-size:13px}.session-meta{flex-shrink:0;align-items:center;gap:4px;display:flex}.session-time{color:var(--fg-muted);font-size:11.5px}.session-group-label{letter-spacing:.03em;text-transform:uppercase;color:var(--fg-muted);padding:12px 12px 4px;font-size:11px;font-weight:600}.session-group-label:first-child{padding-top:4px}.session-title-input{min-width:0;font:inherit;color:var(--fg);background:var(--bg-raised);border:1px solid var(--accent);border-radius:6px;flex:1;padding:1px 6px;font-size:13.5px}.menu-trigger{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px 6px;display:flex}.menu-trigger:hover{color:var(--fg);background:var(--border)}.session-menu{z-index:31;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1px;min-width:150px;padding:4px;display:flex;position:absolute;top:calc(100% + 2px);right:0;box-shadow:0 4px 16px #00000026}.session-menu button{width:100%;color:var(--fg);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.session-menu button:hover{background:var(--bg-alt)}.session-menu-divider{background:var(--border);height:1px;margin:4px 2px}.session-menu button.danger{color:var(--error);background:color-mix(in srgb, var(--error) 12%, transparent)}.session-menu button.danger:hover{background:var(--error);color:var(--accent-fg)}.chat-window{background:var(--bg);flex-direction:column;flex:1;min-width:0;height:100dvh;display:flex}.chat-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.chat-header{padding:calc(10px + env(safe-area-inset-top)) 16px 10px;color:var(--fg-muted);flex-shrink:0;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.icon-btn{cursor:pointer;width:34px;height:34px;color:var(--fg);touch-action:manipulation;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:flex}.icon-btn:hover{background:var(--bg-alt)}.menu-btn{display:none}.header-spacer{flex:1}.message-list{flex-direction:column;flex:1;gap:22px;padding:24px 16px 8px;display:flex;overflow-y:auto}.empty-state{color:var(--fg);text-align:center;flex-direction:column;align-items:center;gap:16px;margin:auto;font-size:24px;font-weight:500;display:flex}.empty-state-logo{object-fit:contain;width:120px;height:120px}.bubble-row{width:min(720px,100%);margin:0 auto;display:flex}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{word-wrap:break-word;font-size:16px;line-height:1.6}.bubble.user{background:var(--user-bubble);max-width:min(560px,80%);color:var(--fg);border-radius:20px;padding:10px 16px}.bubble.assistant{width:min(720px,100%);padding:0}.bubble.error{border:1px solid var(--error);border-radius:12px;padding:10px 16px}.bubble-content>:first-child{margin-top:0}.bubble-content>:last-child{margin-bottom:0}.bubble-content p{margin:.6em 0}.bubble-content ul,.bubble-content ol{margin:.5em 0;padding-left:1.4em}.bubble-content li{margin:.2em 0}.bubble-content a{color:var(--accent);text-decoration:underline}.bubble-content h1,.bubble-content h2,.bubble-content h3{margin:.8em 0 .4em;font-weight:600;line-height:1.3}.bubble-content table{border-collapse:collapse;width:max-content;max-width:100%;margin:.6em 0;font-size:.92em;display:block;overflow-x:auto}.bubble-content th,.bubble-content td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.bubble-content th{background:var(--bg-alt);white-space:nowrap;font-weight:600}.bubble-content tbody tr:nth-child(2n){background:#7f7f7f0d}.bubble-content code{background:var(--bg-alt);border-radius:5px;padding:.15em .4em;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em}.bubble-content pre{background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;margin:.7em 0;padding:12px 14px;overflow-x:auto}.bubble-content pre code{background:0 0;padding:0}.bubble-content blockquote{border-left:3px solid var(--border);color:var(--fg-muted);margin:.5em 0;padding-left:.9em}.streaming-cursor{vertical-align:middle;align-items:center;gap:3px;margin-left:4px;display:inline-flex}.streaming-cursor span{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite pulse;display:block}.streaming-cursor span:first-child{animation-delay:0s}.streaming-cursor span:nth-child(2){animation-delay:.15s}.streaming-cursor span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.composer-wrap{padding-top:8px;padding-left:16px;padding-right:16px;padding-bottom:calc(var(--keyboard-offset,0px) + var(--composer-bottom-gap,max(18px, env(safe-area-inset-bottom))));flex-shrink:0;transition:padding-bottom .1s ease-out}.composer{border:1px solid var(--border);background:var(--bg-raised);border-radius:26px;align-items:flex-end;gap:6px;width:min(720px,100%);margin:0 auto;padding:10px 10px 10px 18px;display:flex;box-shadow:0 1px 3px #0000000a}.composer textarea{resize:none;max-height:160px;color:var(--fg);background:0 0;border:none;flex:1;padding:6px 0;font-family:inherit;font-size:16px;line-height:1.4;overflow-y:auto}.composer textarea:focus{outline:none}.composer button{background:var(--accent);width:36px;height:36px;color:var(--accent-fg);cursor:pointer;touch-action:manipulation;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:opacity .15s;display:flex}.composer button:disabled{opacity:.35;cursor:default}.composer .attach-btn{color:var(--fg-muted);background:0 0}.composer .attach-btn:hover:not(:disabled){color:var(--fg)}.composer .mic-btn{color:var(--fg-muted);background:0 0}.composer .mic-btn:hover:not(:disabled){color:var(--fg)}.composer .mic-btn.recording{color:var(--error);animation:1.2s ease-in-out infinite mic-pulse}.composer .mic-btn.muted{color:var(--error)}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.4}}.voice-mode-overlay{z-index:50;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.voice-orb{background:var(--accent);opacity:.5;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .3s;display:flex}.voice-orb.muted{background:var(--fg-muted);opacity:.4}.voice-orb.speaking{opacity:1}.voice-mode-orb{width:120px;height:120px}.voice-mode-orb .wave-bars{gap:6px;height:48px}.voice-mode-orb .wave-bars span{width:6px;animation-name:wave-bar-lg}@keyframes wave-bar-lg{0%,to{height:14px}50%{height:44px}}.voice-mode-mini{z-index:50;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.voice-mode-mini-orb{opacity:.85;width:56px;height:56px;box-shadow:0 2px 10px #00000040}.voice-mode-mini-orb.speaking{opacity:.85}.wave-bars{justify-content:center;align-items:center;gap:3px;height:20px;display:flex}.wave-bars span{background:var(--accent-fg);border-radius:2px;width:3px;height:6px;animation:1s ease-in-out infinite wave-bar;display:block}.wave-bars span:first-child{animation-delay:0s}.wave-bars span:nth-child(2){animation-delay:.15s}.wave-bars span:nth-child(3){animation-delay:.3s}.wave-bars span:nth-child(4){animation-delay:.45s}@keyframes wave-bar{0%,to{height:6px}50%{height:18px}}.voice-orb.sending .wave-bars span{animation-duration:.5s}.voice-orb.speaking .wave-bars span{animation-duration:.7s}.voice-orb.muted .wave-bars span{opacity:.5;height:4px;animation:none}.voice-mode-status{color:var(--fg);font-size:18px}.attachment-preview{flex-wrap:wrap;gap:8px;width:min(720px,100%);margin:0 auto 8px;display:flex}.attachment-chip{background:var(--bg-alt);border:1px solid var(--border);color:var(--fg);border-radius:12px;align-items:center;gap:6px;max-width:220px;padding:6px 10px;font-size:13px;display:inline-flex}.attachment-chip.error{border-color:var(--error);color:var(--error)}.attachment-chip img{object-fit:cover;border-radius:5px;flex-shrink:0;width:22px;height:22px}.attachment-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-icon{flex-shrink:0;display:inline-flex}.attachment-chip button{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0 0 0 2px;display:inline-flex}.attachment-chip button:hover{color:var(--error)}.message-attachment{margin-bottom:8px;display:block}.message-attachment img{border-radius:12px;max-width:min(280px,100%);display:block}.message-attachment .file-chip{background:var(--bg-alt);border:1px solid var(--border);color:var(--fg);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-size:13.5px;text-decoration:none;display:inline-flex}.lock-btn{color:var(--fg-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:9px 12px;font-size:13px;display:flex}.lock-btn:hover{color:var(--fg);background:var(--border)}.sidebar-footer{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.user-chip{color:var(--fg-muted);align-items:center;gap:8px;min-width:0;padding:6px 12px;font-size:13px;display:flex}.user-chip img{border-radius:50%;flex-shrink:0;width:22px;height:22px}.user-chip-fallback{background:var(--bg-alt);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.google-signin{justify-content:center;min-height:44px;display:flex}.login-hint{color:var(--fg-muted);margin:0;font-size:13px}.login-screen{background:#fff;justify-content:center;align-items:center;height:100dvh;display:flex}.login-form{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(320px,85vw);display:flex}.login-logo{object-fit:contain;width:96px;height:96px}.login-form h1{color:var(--accent);margin:0 0 8px;font-size:22px;font-weight:600}.login-error{color:var(--error);margin:0;font-size:13px}@media (width<=768px){.menu-btn{display:flex}.sidebar{z-index:20;width:auto;transition:transform .2s;position:fixed;inset:0 25% 0 0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:10;background:#00000059;display:block;position:fixed;inset:0}.empty-state{padding:0 24px;font-size:20px}}
