:root{--paper-opacity:0;--paper-contrast:1;--paper-global-opacity:0;--paper-global-contrast:1;--bg:#0a0c14;--surface:#181c2e;--surface-elevated:#1f2437;--border:#ffffff1a;--accent:#f16334;--accent-secondary:#fb923c;--text:#eef1ff;--text-secondary:#cdcdcd;--text-muted:#9ba3c7;--text-heading:#ffd9bf;--text-emphasis:#e9c87f;--bubble-user:var(--accent);--bubble-user-text:#ececec;--bubble-ai:var(--surface);--logo-grad:linear-gradient(135deg, var(--accent), var(--accent-secondary));--title-grad:linear-gradient(90deg, var(--text), var(--accent));--send-grad:linear-gradient(135deg, var(--accent), var(--accent-secondary));--accent-text:#000;--avatar-text:#000;--primary-text:#000;--badge-bg:var(--accent);--badge-border:color-mix(in srgb, var(--accent), var(--border) 45%);--badge-text:var(--accent-text);--bg-overlay:color-mix(in srgb, var(--bg), transparent 8%);--panel-bg:color-mix(in srgb, var(--bg), transparent 2%);--glow-1:color-mix(in srgb, var(--accent), transparent 86%);--glow-2:color-mix(in srgb, var(--accent-secondary), transparent 90%);--focus-ring:color-mix(in srgb, var(--accent), transparent 82%);--code-bg:color-mix(in srgb, var(--accent), transparent 86%);--code-text:var(--accent-secondary);--logo-shadow:color-mix(in srgb, var(--accent), transparent 65%);--bubble-shadow:#0003;--send-shadow:color-mix(in srgb, var(--accent), transparent 60%);--send-shadow-hover:color-mix(in srgb, var(--accent), transparent 45%);--shadow-soft:0 10px 30px #00000059;--scroll-thumb:var(--border);--link-color:var(--accent);--link-hover:var(--accent-secondary);--danger-bg:#ef444424;--danger-bg-hover:#ef44443d;--danger-border:#f8717173;--danger-text:#fecaca;--danger-text-hover:#fff;--error-bg:#ef444429;--error-border:#f871716b;--error-text:#fecaca;--warning-bg:#f59e0b;--warning-text:#111827;--log-error-bg:#f8717124;--log-error-border:#f8717173;--log-error-text:#fca5a5;--log-warn-bg:#fbbf2424;--log-warn-border:#fbbf2473;--log-warn-text:#fbbf24;--log-info-bg:#93c5fd24;--log-info-border:#93c5fd73;--log-info-text:#93c5fd;--log-debug-bg:#cbd5e11f;--log-debug-border:#cbd5e152;--log-debug-text:#cbd5e1;--font-body:"SNE", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"SNE", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-code:"JetBrains Mono", "Menlo", "Monaco", "Consolas", monospace;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100dvh}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--font-body);font-weight:400;line-height:1.5;overflow:hidden}body:before{content:"";z-index:0;background:radial-gradient(ellipse 60% 50% at 20% 10%, var(--glow-1) 0%, transparent 70%), radial-gradient(ellipse 50% 40% at 80% 90%, var(--glow-2) 0%, transparent 70%);pointer-events:none;position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;opacity:var(--paper-opacity);mix-blend-mode:soft-light;filter:contrast(var(--paper-contrast)) saturate(.92);background:radial-gradient(circle at 20% 30%,#ffffff57 0 .6px,#0000 .7px) 0 0/3px 3px,radial-gradient(circle at 70% 60%,#0000003d 0 .55px,#0000 .7px) 1px 1px/3px 3px,repeating-linear-gradient(0deg,#785f3c08 0 2px,#ffffff04 2px 4px);position:fixed;inset:0}#root:before{content:"";z-index:9999;pointer-events:none;opacity:var(--paper-global-opacity);mix-blend-mode:soft-light;filter:contrast(var(--paper-global-contrast)) saturate(.92);background:radial-gradient(circle at 25% 20%,#ffffff57 0 .6px,#0000 .7px) 0 0/3px 3px,radial-gradient(circle at 75% 68%,#00000042 0 .55px,#0000 .7px) 1px 1px/3px 3px,repeating-linear-gradient(0deg,#785f3c08 0 2px,#ffffff04 2px 4px);position:fixed;inset:0}a{color:var(--link-color);text-decoration:none;transition:color .2s}a:hover{color:var(--link-hover)}button{appearance:none;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6,p{margin:0}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:99px}::-webkit-scrollbar-track{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-7px)}}.eyebrow{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:600}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.primary-btn{background:var(--send-grad);color:var(--primary-text);cursor:pointer;white-space:nowrap;box-shadow:0 4px 16px var(--send-shadow);border:none;border-radius:10px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:transform .15s,box-shadow .15s}.primary-btn:hover:not(:disabled){box-shadow:0 6px 22px var(--send-shadow-hover);transform:scale(1.05)}.primary-btn:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-code:"Roboto Mono", monospace;--chat-max-width:48rem;--chat-max-width-xl:55rem;--sidebar-width:260px}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);margin:0;overflow:hidden}.app-shell{width:100vw;height:100dvh;display:block;position:relative;overflow:hidden}.main-panel{background:var(--bg);flex-direction:column;width:100%;min-width:0;height:100%;display:flex;position:relative}.chat-layout{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;flex-shrink:0;height:100dvh;transition:transform .3s cubic-bezier(.2,0,0,1),box-shadow .3s;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:18px 0 45px #0000002e}.app-shell--sidebar-closed .sidebar{box-shadow:none;transform:translate(-100%)}.sidebar__header{flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.sidebar__header h1{color:var(--text);margin:0;padding:0 .25rem;font-size:1.15rem;font-weight:700}.eyebrow{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;padding:0 .25rem;font-size:.65rem;font-weight:700}.sidebar .primary-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.75rem;padding:.6rem .8rem;font-size:.875rem;font-weight:500;transition:background .2s;display:flex}.sidebar .primary-btn:hover{background:var(--surface-elevated)}.sidebar__search{padding:0 .75rem .75rem}.sidebar__search-field{position:relative}.sidebar__search input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;padding:.5rem 2.25rem .5rem .75rem;font-size:.85rem}.sidebar__search-clear{width:1.6rem;height:1.6rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;place-items:center;padding:0;font-size:.82rem;line-height:1;display:grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.sidebar__search-clear:hover{background:var(--surface-elevated);color:var(--text)}.conversation-list{flex:1;padding:0 .5rem;overflow-y:auto}.sidebar__conversations{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.conversation-group__label{color:var(--text-muted);text-transform:uppercase;padding:1.25rem .5rem .5rem;font-size:.7rem;font-weight:700}.conversation-item{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;font-size:.85rem;transition:background .2s;display:flex}.conversation-item:hover,.conversation-item--active{background:var(--surface-elevated);color:var(--text)}.conversation-item__actions{opacity:0;gap:.25rem;margin-left:auto;transition:opacity .2s;display:flex}.conversation-item:hover .conversation-item__actions{opacity:1}.action-btn{width:1.6rem;height:1.6rem;color:var(--text-muted);cursor:pointer;border-radius:6px;place-items:center;font-size:.75rem;display:grid}.action-btn:hover{background:var(--surface-elevated);color:var(--text)}.delete-btn{color:var(--danger-text)}.sidebar__account{border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface), var(--bg) 12%);flex-shrink:0;gap:.55rem;padding:.75rem;display:grid}.account-card{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.55rem;display:grid}.account-card:hover{border-color:color-mix(in srgb, var(--accent), var(--border) 45%);background:var(--surface-elevated)}.account-card__avatar{background:var(--logo-grad);width:2rem;height:2rem;color:var(--avatar-text);border-radius:999px;place-items:center;font-size:.85rem;font-weight:800;display:grid}.account-card__identity{gap:.1rem;min-width:0;display:grid}.account-card__identity strong,.account-card__identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-card__identity strong{font-size:.82rem}.account-card__identity small{color:var(--text-muted);font-size:.68rem}.account-card__settings{opacity:.8}.account-signout{border:1px solid var(--danger-border);background:var(--danger-bg);width:100%;color:var(--danger-text);cursor:pointer;border-radius:10px;padding:.55rem .75rem;font-weight:700}.account-signout:hover{background:var(--danger-bg-hover);color:var(--danger-text-hover)}.topbar{background:var(--bg-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:40;justify-content:center;align-items:center;gap:.5rem;height:56px;padding:0 1rem;display:flex;position:sticky;top:0}.topbar__history-slot{display:flex;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.topbar__center-controls{align-items:center;gap:.5rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.topbar__actions{align-items:center;display:flex;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.sidebar__brand-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sidebar__brand-row .eyebrow{margin:0}.sidebar-toggle-btn{width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.sidebar-toggle-btn:hover{background:var(--surface-elevated);color:var(--text)}.sidebar-toggle-btn svg{stroke-width:1.5px}.model-selector-btn{cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.875rem;font-weight:600;transition:background .2s;display:flex}.model-selector-btn:hover{background:var(--surface-elevated)}.topbar-action-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .2s;display:flex}.topbar-action-btn:hover{background:var(--surface-elevated)}.chat-thread{flex-direction:column;flex:1;display:flex;overflow-y:auto}.message-row{justify-content:center;width:100%;padding:.4rem 0;display:flex}.message-row__container{width:100%;max-width:var(--chat-max-width);gap:1rem;padding:0 1.5rem;display:flex}@media (width>=1280px){.message-row__container{max-width:var(--chat-max-width-xl)}}.avatar-icon{background:var(--logo-grad);width:24px;height:24px;color:var(--avatar-text);border-radius:4px;flex-shrink:0;place-items:center;margin-top:.25rem;font-size:.6rem;font-weight:700;display:grid}.avatar-icon--user{border:1px solid var(--border);background:var(--bubble-user);color:var(--bubble-user-text)}.message-row__body{flex-direction:column;flex:1;min-width:0;display:flex}.message-row__author{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;padding-left:.25rem;font-size:.75rem;font-weight:700}.message-row__content-wrapper{background:var(--surface-elevated);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:.5rem;width:100%;padding:.75rem 1.15rem;display:flex;box-shadow:0 1px 2px #0000000d}.message-row--assistant .message-row__content-wrapper{background:var(--surface);border-top-left-radius:4px}.message-row--user .message-row__content-wrapper{background:var(--bubble-user);color:var(--bubble-user-text);border-top-right-radius:4px;align-self:flex-start;width:auto;max-width:85%}.message-row--user .message-row__content{color:inherit}.message-row__content{color:var(--text);word-wrap:break-word;font-size:1rem;line-height:1.6}.message-row__content p{margin-bottom:.75rem}.message-row__content p:last-child{margin-bottom:0}.message-typing{width:fit-content;min-height:2.15rem;color:var(--text-secondary);align-items:center;gap:.75rem;padding:.15rem .1rem;display:inline-flex}.message-typing__label{color:var(--text-secondary);font-size:.92rem;font-weight:650}.message-typing__dots{align-items:center;gap:.32rem;display:inline-flex}.message-typing__dots span{background:var(--accent);width:.42rem;height:.42rem;box-shadow:0 0 .8rem color-mix(in srgb, var(--accent), transparent 62%);border-radius:999px;animation:.85s ease-in-out infinite typingBounce}.message-typing__dots span:nth-child(2){animation-delay:.12s}.message-typing__dots span:nth-child(3){animation-delay:.24s}.message-row__content ul,.message-row__content ol{margin-top:.5rem;margin-bottom:1rem;padding-left:1.5rem}.message-row__content li{margin-bottom:.25rem}.message-row__content li:last-child{margin-bottom:0}.message-row__content blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin-left:0;padding-left:1rem}.message-row__actions-container{justify-content:flex-start;min-height:28px;margin-top:.4rem;display:flex}.message-row__actions{opacity:0;align-items:center;gap:.75rem;transition:opacity .2s;display:flex}.message-row:hover .message-row__actions{opacity:1}.sibling-switch{color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.75rem;display:flex}.sibling-switch__btn{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:.2rem;transition:all .2s;display:flex}.sibling-switch__btn:hover:not(:disabled){background:var(--surface-elevated);color:var(--text)}.sibling-switch__btn:disabled{opacity:.3;cursor:default}.sibling-switch__status{font-family:var(--font-body);text-align:center;font-variant-numeric:tabular-nums;min-width:3ch;font-weight:500}.divider{background:var(--border);align-self:stretch;width:1px}.welcome-container{flex:1;justify-content:center;align-items:center;min-height:100%;padding:1rem;display:flex;overflow-y:auto}.vocab-practice{border:1px solid color-mix(in srgb, var(--accent), transparent 48%);background:radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--accent), transparent 86%), transparent 34%), linear-gradient(135deg, color-mix(in srgb, var(--surface-elevated), #fff 6%), color-mix(in srgb, var(--surface), transparent 4%));width:100%;max-width:46rem;box-shadow:0 24px 70px color-mix(in srgb, var(--accent), transparent 88%), inset 0 1px 0 #ffffff52;border-radius:24px;padding:clamp(1rem,2vw,1.35rem);position:relative;overflow:hidden}.vocab-practice:before{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent), transparent 90%), transparent);pointer-events:none;height:12rem;position:absolute;inset:30% -12% auto;transform:rotate(-2deg)}.vocab-practice__header{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:1rem;display:flex;position:relative}.vocab-practice__header h1{color:var(--link-color);margin:.2rem 0 .45rem;font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.05}.vocab-practice__header p{max-width:38rem;color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.45}.vocab-practice__level{border:1px solid var(--border);background:color-mix(in srgb, var(--surface), transparent 10%);border-radius:18px;grid-template-columns:auto 1fr;align-items:center;gap:.1rem .65rem;min-width:7.5rem;padding:.55rem .7rem;display:grid;box-shadow:0 14px 38px #00000014}.vocab-practice__level span{background:color-mix(in srgb, var(--accent), transparent 82%);border-radius:14px;grid-row:span 2;place-items:center;width:2.2rem;height:2.2rem;display:grid}.vocab-practice__level strong{color:var(--link-color);font-size:1rem;line-height:1}.vocab-practice__level small{color:var(--text-muted);font-size:.68rem}.vocab-practice__words{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid;position:relative}.vocab-word-card{border:1px solid color-mix(in srgb, var(--border), #fff 18%);background:linear-gradient(145deg, color-mix(in srgb, var(--surface), #fff 8%), color-mix(in srgb, var(--surface-elevated), transparent 4%));min-height:4.5rem;color:var(--text);cursor:pointer;border-radius:18px;padding:.75rem;transition:transform .18s,border-color .18s,box-shadow .18s;box-shadow:0 18px 40px #00000012}.vocab-word-card:hover{border-color:color-mix(in srgb, var(--accent), transparent 30%);box-shadow:0 22px 46px color-mix(in srgb, var(--accent), transparent 86%);transform:translateY(-3px)}.vocab-word-card strong{font-size:clamp(.96rem,1.6vw,1.15rem);line-height:1.1;display:block}.vocab-word-card span{color:var(--text-muted);margin-top:.32rem;font-size:.72rem;display:block}.vocab-practice__footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:.85rem;display:flex;position:relative}.vocab-practice__footer p{color:var(--text-muted);margin:0;font-size:.76rem}.vocab-shuffle-btn{border:1px solid color-mix(in srgb, var(--danger-border), var(--accent) 22%);background:color-mix(in srgb, var(--danger-bg), var(--surface) 60%);min-height:2.45rem;color:var(--link-color);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.85rem;font-weight:800;display:inline-flex;box-shadow:0 14px 32px #0000000f}.vocab-shuffle-btn:hover{transform:translateY(-1px)}.vocabulary-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:.9rem;display:grid}.vocabulary-level-card{border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;border-radius:16px;gap:.2rem;padding:.7rem;display:grid}.vocabulary-level-card.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent), transparent 86%);color:var(--accent-text)}.vocabulary-level-card small{color:var(--text-muted)}.settings-drawer__hint{color:var(--text-muted);margin:.85rem 0 0;font-size:.78rem;line-height:1.4}.composer{justify-content:center;width:100%;padding:0 1rem 1.5rem;display:flex}.google-auth{place-items:center;gap:.65rem;display:grid}.google-auth-btn{border:1px solid color-mix(in srgb, var(--border), #fff 16%);width:2.5rem;height:2.5rem;box-shadow:0 .65rem 1.4rem #00000038, 0 0 0 .28rem color-mix(in srgb, var(--surface-elevated), transparent 48%);cursor:pointer;background:#fff;border-radius:999px;place-items:center;transition:transform .18s,box-shadow .18s,opacity .18s;display:grid;position:relative}.google-auth-btn:hover:not(:disabled){box-shadow:0 .8rem 1.8rem #0000004d, 0 0 0 .3rem color-mix(in srgb, var(--accent), transparent 84%);transform:translateY(-2px)scale(1.04)}.google-auth-btn:focus-visible{outline:3px solid color-mix(in srgb, var(--accent), #fff 20%);outline-offset:4px}.google-auth-btn:disabled{cursor:progress;opacity:.78}.google-icon{width:1.25rem;height:1.25rem}.google-auth-btn__spinner{border-radius:inherit;border:2px solid #0000;border-top-color:#4285f4;animation:.85s linear infinite spin;position:absolute;inset:-.22rem}.google-auth__error{max-width:18rem;color:var(--error-text);text-align:center;margin:0;font-size:.85rem}.composer__edit-badge{background:var(--surface-elevated);border:1px solid var(--border);color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;width:100%;margin-bottom:.5rem;padding:.5rem 1rem;font-size:.85rem;animation:.2s fadeIn;display:flex}.composer__edit-badge span{align-items:center;gap:.5rem;display:flex}.composer__edit-badge button{border:1px solid var(--text-muted);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;transition:all .2s}.composer__edit-badge button:hover{border-color:var(--text);color:var(--text);background:var(--surface)}.composer__input-wrapper{width:100%;max-width:var(--chat-max-width);flex-direction:column;align-items:center;gap:.75rem;display:flex}.composer__input-container{background:var(--surface);border:1px solid var(--border);border-radius:30px;align-items:center;gap:.5rem;width:100%;padding:.35rem .45rem .35rem 1.1rem;display:flex;box-shadow:0 0 20px #0000000d}.composer textarea{max-height:200px;color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;padding:.75rem 0;font-size:1rem;line-height:1.5}.composer__actions-row{align-items:center;padding-bottom:0;display:flex}.composer__footer-text{color:var(--text-muted);text-align:center;opacity:.7;width:100%;margin-top:.5rem;font-size:.75rem}.send-btn,.stop-btn{background:var(--text-muted);width:44px;height:44px;color:var(--bg);cursor:pointer;border:none;border-radius:18px;flex-shrink:0;place-items:center;transition:all .2s;display:grid}.send-btn.can-submit{background:var(--send-grad);color:var(--primary-text);box-shadow:0 12px 28px color-mix(in srgb, var(--accent), transparent 72%)}.send-btn:hover.can-submit{transform:scale(1.05)}.stop-btn{background:var(--text);color:var(--bg);animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes typingBounce{0%,80%,to{opacity:.35;transform:translateY(0)scale(.86)}40%{opacity:1;transform:translateY(-.38rem)scale(1.08)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.topbar{height:54px;padding:0 .75rem}.topbar__history-slot{left:.75rem}.topbar__center-controls{gap:.35rem;max-width:calc(100vw - 7.75rem)}.topbar__actions{right:.75rem}.topbar__actions .topbar-action-btn:nth-child(-n+2){display:none}.sidebar-toggle-btn,.topbar-action-btn,.new-chat-mobile-btn{flex-shrink:0;width:34px;height:34px}.model-selector-btn{text-overflow:ellipsis;white-space:nowrap;max-width:min(54vw,16rem);padding:.35rem .55rem;font-size:.82rem;display:block;overflow:hidden}.new-chat-mobile-btn{color:var(--link-color);cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;font-size:1rem;display:grid}.new-chat-mobile-btn:hover{background:var(--surface-elevated)}.sidebar{width:75vw;position:fixed;top:0;bottom:0;left:0;box-shadow:10px 0 30px #00000047}.conversation-item{touch-action:manipulation}.sidebar__header{gap:.65rem;padding:.8rem}.sidebar__search{padding:0 .8rem .65rem}.sidebar__account{padding:.7rem}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;background:#0000008c;position:fixed;inset:0}.chat-layout{min-height:0}.message-row{padding:.35rem 0}.message-row__container{gap:.6rem;max-width:100%;padding:0 .85rem}.avatar-icon{width:22px;height:22px;font-size:.55rem}.message-row__content-wrapper{border-radius:16px;padding:.7rem .9rem}.message-row--user .message-row__content-wrapper{max-width:92%}.message-row__content{font-size:.95rem;line-height:1.55}.welcome-container{justify-content:center;align-items:center;padding:.45rem .75rem}.vocab-practice{border-radius:20px;padding:.8rem}.vocab-practice:before{inset:34% -30% auto}.vocab-practice__header{flex-direction:row;gap:.65rem;margin-bottom:.65rem}.vocab-practice__header .eyebrow{display:none}.vocab-practice__header h1{margin-bottom:.25rem;font-size:1.18rem;line-height:1.08}.vocab-practice__header p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.28;display:-webkit-box;overflow:hidden}.vocab-practice__level{border-radius:16px;flex-shrink:0;gap:.1rem .45rem;width:auto;min-width:0;padding:.45rem .55rem}.vocab-practice__level span{border-radius:12px;width:1.9rem;height:1.9rem}.vocab-practice__level strong{font-size:.92rem}.vocab-practice__level small{font-size:.62rem}.vocab-practice__words{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.vocab-word-card:nth-child(n+7){display:none}.vocab-word-card{border-radius:15px;min-height:3.85rem;padding:.62rem}.vocab-word-card strong{font-size:.92rem}.vocab-word-card span{margin-top:.2rem;font-size:.68rem}.vocab-practice__footer{flex-direction:column;align-items:stretch;margin-top:.55rem}.vocab-practice__footer p{display:none}.vocab-shuffle-btn{width:100%;min-height:2.35rem;font-size:.8rem}.vocabulary-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.composer{padding:0 .85rem max(.85rem, env(safe-area-inset-bottom))}.composer__input-wrapper{gap:.4rem;max-width:100%}.composer__input-container{border-radius:999px;align-items:center;padding:.2rem .4rem .2rem .9rem}.composer textarea{padding:.7rem 0;font-size:.95rem;line-height:1.35}.composer__actions-row{padding-bottom:0}.char-count,.composer__footer-text{display:none}.send-btn,.stop-btn{border-radius:16px;width:42px;height:42px}.google-auth-btn{width:2.25rem;height:2.25rem;box-shadow:0 .55rem 1.1rem #00000038, 0 0 0 .22rem color-mix(in srgb, var(--surface-elevated), transparent 50%)}.google-icon{width:1.15rem;height:1.15rem}}.scroll-bottom-btn{background:var(--surface-elevated);border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;z-index:10;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:1.5rem;right:2rem;box-shadow:0 2px 10px #0003}.settings-drawer__overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0006;animation:.2s fadeIn;position:fixed;inset:0}.settings-drawer{background:var(--bg);border-left:1px solid var(--border);z-index:1000;flex-direction:column;width:min(450px,90vw);animation:.3s cubic-bezier(.4,0,.2,1) slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 40px #0000004d}.settings-drawer__header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.settings-drawer__header h2{color:var(--text);margin:0;font-size:1rem;font-weight:600}.settings-drawer__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1;transition:color .2s}.settings-drawer__content{flex-direction:column;flex:1;gap:2rem;padding:1.5rem;display:flex;overflow-y:auto}.settings-section{flex-direction:column;gap:1.25rem;display:flex}.settings-drawer__theme-grid{gap:.75rem;display:grid}.settings-drawer__control-row,.settings-drawer__slider-labels,.settings-drawer__slider-group{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.settings-drawer__slider-group{margin-top:.75rem}.settings-drawer__slider,.settings-drawer__slider-group input[type=range]{width:100%;accent-color:var(--accent)}.settings-drawer__slider-labels{color:var(--text-muted);margin-top:.5rem;font-size:.75rem}.settings-drawer__mode-toggle{background:var(--surface-elevated);border:1px solid var(--border);border-radius:12px;gap:.5rem;padding:.35rem;display:flex}.settings-drawer__mode-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.6rem;font-size:.85rem;font-weight:600;transition:all .2s}.settings-drawer__mode-toggle button.active{background:var(--accent);color:var(--accent-text)}.theme-card{background:var(--surface);border:2px solid var(--border);color:var(--text);text-align:left;cursor:pointer;border-radius:12px;padding:1rem;transition:all .2s}.theme-card p{color:var(--text-muted);margin-top:.35rem;font-size:.82rem;line-height:1.4}.theme-card.active{border-color:var(--accent);background:var(--surface-elevated);box-shadow:0 0 0 1px var(--accent)}.settings-drawer__control-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:12px;padding:1rem}.panel-card__head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel-card__head h3{color:var(--text);font-size:1rem}.panel-card__head>button{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);border-radius:8px;padding:.35rem .65rem}.panel-card__head>button:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent), var(--border) 45%)}.preset-item{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.preset-item--active{border-color:color-mix(in srgb, var(--accent), var(--border) 35%);background:var(--surface-elevated)}.model-id,.model-status,.results-footer{color:var(--text-muted);font-size:.75rem}.model-id{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-status{color:var(--link-color);font-weight:600}.settings-danger-zone{opacity:.82;margin-top:1.5rem}.settings-danger-zone details{border:1px solid var(--danger-border);background:var(--danger-bg);border-radius:12px}.settings-danger-zone summary{color:var(--text-muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;padding:.85rem 1rem;font-size:.78rem;font-weight:800}.settings-danger-zone__content{gap:.55rem;padding:0 1rem 1rem;display:grid}.settings-danger-zone__content strong{color:var(--danger-text);font-size:.9rem}.settings-danger-zone__content p{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.45}.settings-danger-zone__button{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);cursor:pointer;border-radius:10px;margin-top:.25rem;padding:.7rem .85rem;font-weight:800}.settings-danger-zone__button:hover{background:var(--danger-bg-hover);color:var(--danger-text-hover)}.model-grid{grid-template-columns:1fr;gap:.65rem;max-height:400px;margin-top:1rem;display:grid;overflow-y:auto}.provider-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:.25rem;padding:1rem;transition:all .2s;display:flex}.provider-card--active{border-color:var(--accent);background:var(--surface-elevated)}.featured-badge{border:1px solid var(--badge-border);background:var(--badge-bg);color:var(--badge-text);border-radius:4px;padding:2px 6px;font-size:.6rem;font-weight:800}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes statusPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent), transparent 30%)}70%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent), transparent 100%)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent), transparent 100%)}}.status-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s infinite statusPulse}.loading-tag{color:var(--link-color);font-size:.7rem;font-weight:600}.error-text{color:var(--error-text);margin:.75rem 0 0;font-size:.85rem}
