.app{display:flex;flex-direction:column;align-items:center;max-width:1060px;margin:0 auto;min-height:100%;min-height:100dvh;padding:24px 20px;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));padding-left:calc(20px + env(safe-area-inset-left,0px));padding-right:calc(20px + env(safe-area-inset-right,0px))}.app-workspace{width:100%;display:flex;flex-direction:column;align-items:center}.listen-panel,.conversation-panel{width:100%;min-width:0}.listen-panel{display:flex;flex-direction:column;align-items:center}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:32px}.app-header__title{margin-right:auto}.app-header__title{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;color:#f3f4f6}.app-header__settings{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:12px;background:#ffffff0f;color:#9ca3af;font-size:1.375rem;cursor:pointer;transition:background .2s,color .2s}.app-header__settings:active{background:#ffffff1f;color:#e5e7eb}.lang-picker{appearance:none;-webkit-appearance:none;min-height:44px;padding:0 30px 0 14px;border-radius:10px;background-color:#ffffff0f;color:#e5e7eb;font-family:inherit;font-size:.875rem;font-weight:600;border:1px solid rgba(255,255,255,.1);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;outline:none}.lang-picker:focus{border-color:#3b82f680}.unsupported-banner{width:100%;padding:20px;background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:14px;color:#fca5a5;text-align:center;font-size:.9375rem;line-height:1.5;margin-bottom:24px}.orb{position:relative;width:140px;height:140px;margin:16px 0 28px;display:flex;align-items:center;justify-content:center}.orb__core{position:relative;z-index:2;width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1a1e2a}.orb__label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.orb__ring{position:absolute;inset:0;border-radius:50%;border:2.5px solid rgba(255,255,255,.08)}.orb__glow{position:absolute;inset:-8px;border-radius:50%;opacity:0;transition:opacity .4s,box-shadow .4s}[data-phase=idle] .orb__ring{border-color:#6b728040}[data-phase=idle] .orb__label{color:#6b7280}[data-phase=listening] .orb__ring{border-color:#3b82f680;animation:pulse-slow 2.8s ease-in-out infinite}[data-phase=listening] .orb__glow{opacity:1;box-shadow:0 0 40px 8px #3b82f633}[data-phase=listening] .orb__label{color:#93c5fd}[data-phase=listening] .orb__core{background:radial-gradient(circle,#141828,#111627)}[data-phase=capturing] .orb__ring{border-color:#10b98199;animation:pulse-fast .9s ease-in-out infinite}[data-phase=capturing] .orb__glow{opacity:1;box-shadow:0 0 50px 12px #10b98140}[data-phase=capturing] .orb__label{color:#6ee7b7}[data-phase=capturing] .orb__core{background:radial-gradient(circle,#0f1f1a,#111627)}[data-phase=thinking] .orb__ring{border-color:#a855f799;animation:spin 3s linear infinite}[data-phase=thinking] .orb__glow{opacity:1;box-shadow:0 0 50px 12px #a855f740}[data-phase=thinking] .orb__label{color:#c4b5fd}[data-phase=thinking] .orb__core{background:radial-gradient(circle,#1a1530,#111627)}[data-phase=speaking] .orb__ring{border-color:#f59e0b99;animation:pulse-slow 1.6s ease-in-out infinite}[data-phase=speaking] .orb__glow{opacity:1;box-shadow:0 0 45px 10px #f59e0b33}[data-phase=speaking] .orb__label{color:#fcd34d}[data-phase=speaking] .orb__core{background:radial-gradient(circle,#1f1a10,#111627)}[data-phase=error] .orb__ring{border-color:#ef444499}[data-phase=error] .orb__glow{opacity:1;box-shadow:0 0 40px 8px #ef444433}[data-phase=error] .orb__label{color:#fca5a5}.start-stop-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:280px;height:64px;border:none;border-radius:32px;font-size:1.125rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .15s,box-shadow .2s,background .2s;margin-bottom:20px}.start-stop-btn:active{transform:scale(.96)}.start-stop-btn--start{background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 4px 20px #10b98159}.start-stop-btn--stop{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;box-shadow:0 4px 20px #ef444459}.start-stop-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.live-transcript{width:100%;min-height:28px;margin-bottom:24px;text-align:center;font-size:.9375rem;font-style:italic;color:#6b7280;animation:fadeIn .3s ease}.manual-ask{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch;margin-bottom:24px}.manual-ask__input{width:100%;min-height:92px;resize:vertical;padding:13px 14px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0d;color:#e5e7eb;font-family:inherit;font-size:.9375rem;line-height:1.45;outline:none}.settings-textarea{min-height:120px;padding-top:12px;padding-bottom:12px;resize:vertical;line-height:1.45}.manual-ask__input:focus{border-color:#3b82f680}.manual-ask__input::placeholder{color:#4b5563}.manual-ask__button{min-width:112px;min-height:92px}.exchanges{list-style:none;width:100%;display:flex;flex-direction:column;gap:16px;padding-bottom:80px}.exchanges--empty{padding-top:32px}.exchanges__placeholder{text-align:center;color:#4b5563;font-size:.9375rem}.exchange{background:#14181f;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:16px;animation:fadeIn .3s ease}.exchange__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.exchange__ask{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-weight:600}.exchange__time{font-size:.75rem;color:#4b5563}.exchange__problem{font-size:.9375rem;color:#d1d5db;margin-bottom:12px;line-height:1.5}.exchange__answer{font-size:.9375rem;color:#e5e7eb;line-height:1.65}.exchange__paragraph{margin-bottom:10px}.exchange__paragraph:last-child{margin-bottom:0}.exchange__error{color:#fca5a5;font-size:.875rem}.exchange__actions{margin-top:10px;display:flex;gap:8px}.signin{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.signin__card{width:100%;max-width:420px;background:#11151f;border:1px solid rgba(255,255,255,.06);border-radius:20px;padding:36px 28px;text-align:center}.signin__brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:18px}.signin__logo{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#22c55e);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.25rem;letter-spacing:.05em}.signin__title{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:#f3f4f6}.signin__subtitle{color:#9ca3af;font-size:.9375rem;line-height:1.5;margin-bottom:22px}.signin__button-host{display:flex;justify-content:center;min-height:44px;margin-bottom:16px}.signin__waiting{color:#6b7280;font-size:.875rem;margin-bottom:16px}.signin__error{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px 14px;border-radius:10px;font-size:.875rem;margin-bottom:18px;text-align:left}.signin__note{color:#4b5563;font-size:.75rem;line-height:1.5}.user-badge{display:flex;align-items:center;gap:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:999px;padding:4px 10px 4px 4px;cursor:pointer;color:#d1d5db;font-size:.8125rem;font-weight:600;min-height:36px}.user-badge__avatar{width:28px;height:28px;border-radius:50%;background:#ffffff14;object-fit:cover}.user-badge__avatar--placeholder{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#93c5fd}.answer-card{background:#0f131c;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:14px 16px;min-width:0}.answer-card[data-card=code]{background:#0a0e16}.exchange__shimmer{display:flex;flex-direction:column;gap:8px}.shimmer-line{height:12px;border-radius:6px;background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.shimmer-line--short{width:60%}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:10px;font-weight:600;cursor:pointer;min-height:44px;padding:0 20px;font-size:.9375rem;transition:background .2s,transform .1s}.btn:active{transform:scale(.97)}.btn--primary{background:#3b82f6;color:#fff}.btn--primary:active{background:#2563eb}.btn--secondary{background:#ffffff14;color:#d1d5db}.btn--secondary:active{background:#ffffff24}.btn--ghost{background:transparent;color:#9ca3af;padding:0 12px}.btn--ghost:active{background:#ffffff0f}.btn--small{min-height:44px;padding:0 14px;font-size:.8125rem;border-radius:8px}.settings-backdrop{position:fixed;inset:0;z-index:100;background:#0009;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.settings-sheet{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;background:#1a1e2a;border-top-left-radius:20px;border-top-right-radius:20px;padding:28px 24px;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));animation:slideUp .3s cubic-bezier(.22,1,.36,1)}.settings-sheet__title{font-size:1.25rem;font-weight:700;margin-bottom:24px;color:#f3f4f6}.settings-field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.settings-field__label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.settings-field__row{display:flex;gap:8px;align-items:center}.settings-field__row .settings-input{flex:1}.settings-field__toggle{flex-shrink:0}.settings-field__hint{font-size:.75rem;color:#6b7280}.settings-field__error{font-size:.8125rem;color:#f87171}.settings-field--priority{padding:12px;border:1px solid rgba(59,130,246,.22);border-radius:10px;background:#3b82f60f}.settings-input,.settings-select{width:100%;min-height:44px;padding:0 14px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0d;color:#e5e7eb;font-size:.9375rem;font-family:inherit;outline:none;transition:border-color .2s}.settings-input:focus,.settings-select:focus{border-color:#3b82f680}.settings-input::placeholder{color:#4b5563}.settings-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.settings-sheet__actions{display:flex;gap:12px;margin-top:28px}.settings-sheet__actions .btn{flex:1}.settings-sheet__note{margin-top:16px;font-size:.75rem;color:#4b5563;text-align:center}.error-toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:110;max-width:420px;width:calc(100% - 40px);padding:14px 20px;background:#1f1215;border:1px solid rgba(239,68,68,.3);border-radius:14px;color:#fca5a5;font-size:.875rem;text-align:center;animation:toastIn .3s cubic-bezier(.22,1,.36,1)}@keyframes pulse-slow{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.8}}@keyframes pulse-fast{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toastIn{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(orientation:landscape)and (min-width:740px)and (max-height:920px){.app.app--tablet{align-items:stretch;height:100dvh;max-width:none;overflow:hidden;padding:14px 18px;padding-top:calc(14px + env(safe-area-inset-top,0px));padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));padding-left:calc(18px + env(safe-area-inset-left,0px));padding-right:calc(18px + env(safe-area-inset-right,0px))}.app--tablet .app-header{flex-shrink:0;margin-bottom:10px}.app--tablet .app-header__title{font-size:1.05rem}.app--tablet .user-badge span{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app--tablet .lang-picker,.app--tablet .app-header__settings{min-height:38px;height:38px}.app--tablet .app-workspace{flex:1;min-height:0;display:grid;grid-template-columns:148px minmax(0,1fr);gap:12px;align-items:stretch}.app--tablet .listen-panel{align-self:stretch;justify-content:flex-start;gap:10px;padding-top:2px}.app--tablet .orb{width:78px;height:78px;margin:0}.app--tablet .orb__core{width:58px;height:58px}.app--tablet .orb__label{font-size:.62rem;letter-spacing:.04em}.app--tablet .orb__glow{inset:-4px}.app--tablet .start-stop-btn{max-width:none;height:44px;margin-bottom:0;border-radius:10px;font-size:.95rem}.app--tablet .live-transcript{min-height:0;max-height:112px;margin-bottom:0;padding:9px 10px;overflow:auto;border-radius:8px;background:#ffffff09;text-align:left;font-size:.78rem;line-height:1.35}.app--tablet .conversation-panel{display:flex;min-height:0;flex-direction:column}.app--tablet .manual-ask{flex-shrink:0;margin-bottom:10px}.app--tablet .manual-ask__input{min-height:54px;max-height:96px;padding:10px 12px;font-size:.9rem}.app--tablet .manual-ask__button{min-width:84px;min-height:54px}.app--tablet .exchanges{flex:1;min-height:0;overflow:auto;gap:10px;padding-bottom:12px;overscroll-behavior:contain}.app--tablet .exchanges--empty{padding-top:20px}.app--tablet .exchange{padding:12px;border-radius:10px}.app--tablet .exchange__problem{margin-bottom:8px;font-size:.88rem;line-height:1.4}.app--tablet .exchange__answer{font-size:.9rem}.app--tablet .answer-card{padding:10px 12px;border-radius:8px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;min-height:100%;min-height:100dvh}html{-webkit-text-size-adjust:100%}body{background:#0a0d14;color:#e5e7eb;font-family:-apple-system,system-ui,sans-serif;line-height:1.5;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,[role=button]{-webkit-user-select:none;user-select:none}.exchange-answer,.exchange__answer,.exchange__paragraph{-webkit-user-select:text;user-select:text}
