:root{--color-bg-primary:#0f1923;--color-bg-secondary:#1a2633;--color-bg-tertiary:#243447;--color-accent:#f5a623;--color-accent-hover:#e6961a;--color-accent-glow:#f5a62340;--color-accent-soft:#f5a6231a;--color-text-primary:#e8edf2;--color-text-secondary:#8a9bb0;--color-text-muted:#5a6e82;--color-danger:#e74c3c;--color-danger-glow:#e74c3c4d;--color-success:#2ecc71;--color-border:#ffffff0f;--color-glass:#1a2633d9;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.7rem;--font-size-sm:.8rem;--font-size-base:.95rem;--font-size-md:1.05rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:24px;--radius-full:50%;--shadow-sm:0 2px 8px #0003;--shadow-md:0 4px 16px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-accent:0 4px 20px #f5a6234d;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--header-height:60px;--input-bar-height:80px;--max-chat-width:720px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100dvh;line-height:1.5;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea{color:inherit;background:0 0;border:none;outline:none;font-family:inherit}.app{height:100dvh;max-width:var(--max-chat-width);flex-direction:column;width:100%;margin:0 auto;display:flex;position:relative}.header{height:var(--header-height);padding:0 var(--space-md);background:var(--color-glass);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.header__logo{align-items:center;gap:var(--space-xs);display:flex}.header__icon{font-size:var(--font-size-xl);line-height:1}.header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);background:linear-gradient(135deg, var(--color-accent), #ffd080);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text}.header__subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:var(--space-xxs);font-weight:var(--font-weight-medium);letter-spacing:.05em;text-transform:uppercase}.header__clear-btn{right:var(--space-md);padding:var(--space-xxs) var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;position:absolute}.header__clear-btn:hover{color:var(--color-danger);background:#e74c3c1a}.chat-history{padding:var(--space-md);padding-bottom:var(--space-lg);scroll-behavior:smooth;gap:var(--space-sm);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-history::-webkit-scrollbar{width:4px}.chat-history::-webkit-scrollbar-track{background:0 0}.chat-history::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-full)}.welcome{text-align:center;padding:var(--space-xl);justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;flex:1;animation:.6s fadeIn;display:flex}.welcome__icon{filter:drop-shadow(0 4px 12px #f5a6234d);font-size:4rem;line-height:1}.welcome__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.welcome__subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);max-width:300px;line-height:1.6}.welcome__hints{gap:var(--space-xs);margin-top:var(--space-sm);flex-direction:column;display:flex}.welcome__hint{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-xs) var(--space-md);background:var(--color-accent-soft);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);border:1px solid #f5a62326}.welcome__hint:hover{color:var(--color-accent);background:#f5a62326;transform:translateY(-1px)}.chat-bubble{flex-direction:column;max-width:85%;animation:.3s bubbleIn;display:flex}.chat-bubble--user{align-self:flex-end}.chat-bubble--assistant{align-self:flex-start}.chat-bubble__content{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);word-wrap:break-word;line-height:1.55;position:relative}.chat-bubble--user .chat-bubble__content{background:linear-gradient(135deg, var(--color-accent), #e6961a);color:#1a1a1a;border-bottom-right-radius:var(--space-xxs);font-weight:var(--font-weight-medium)}.chat-bubble--assistant .chat-bubble__content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-bottom-left-radius:var(--space-xxs);color:var(--color-text-primary)}.chat-bubble__audio-badge{align-items:center;gap:var(--space-xxs);margin-top:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);padding:2px var(--space-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0a;display:inline-flex}.chat-bubble__audio-badge:hover{color:var(--color-text-secondary);background:#ffffff14}.chat-bubble__audio-badge.playing{color:var(--color-accent);background:var(--color-accent-soft)}.chat-bubble__timestamp{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xxs);padding:0 var(--space-xxs)}.chat-bubble--user .chat-bubble__timestamp{text-align:right}.word{display:inline}.word--new{animation:.18s ease-out forwards wordFadeIn}@keyframes wordFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.input-bar{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-glass);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:10;flex-shrink:0;display:flex;position:relative}.input-bar__field{height:44px;padding:0 var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-primary);font-size:var(--font-size-base);transition:border-color var(--transition-fast);flex:1}.input-bar__field--textarea{height:auto;min-height:44px;max-height:140px;padding:11px var(--space-md);resize:none;scrollbar-width:none;line-height:1.5;display:block;overflow-y:auto}.input-bar__field--textarea::-webkit-scrollbar{display:none}.input-bar__field::placeholder{color:var(--color-text-muted)}.input-bar__field:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.input-bar__field.has-transcript{border-color:var(--color-accent);color:var(--color-accent)}.input-bar__send-btn{background:var(--color-accent);border-radius:var(--radius-full);color:#1a1a1a;width:44px;height:44px;font-size:var(--font-size-md);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.input-bar__send-btn:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-accent);transform:scale(1.05)}.input-bar__send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.input-bar__send-btn:active:not(:disabled){transform:scale(.95)}.mic-btn{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-accent), #e6961a);color:#1a1a1a;width:52px;height:52px;transition:all var(--transition-normal);box-shadow:var(--shadow-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:relative}.mic-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:0 6px 28px #f5a62373}.mic-btn:active:not(:disabled){transform:scale(.95)}.mic-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.mic-btn--recording{background:linear-gradient(135deg, var(--color-danger), #c0392b);box-shadow:0 4px 20px var(--color-danger-glow);animation:1.5s ease-in-out infinite micPulse}.mic-btn--recording:hover:not(:disabled){box-shadow:0 6px 28px #e74c3c80}.mic-btn__ring{border-radius:var(--radius-full);border:2px solid var(--color-danger);opacity:0;animation:1.5s ease-in-out infinite ringPulse;position:absolute;inset:-6px}.mic-btn__tooltip{bottom:calc(100% + var(--space-xs));padding:var(--space-xxs) var(--space-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);position:absolute;left:50%;transform:translate(-50%)}.mic-btn:disabled:hover .mic-btn__tooltip{opacity:1}.status-indicator{justify-content:center;align-items:center;gap:var(--space-xxs);padding:var(--space-xxs) 0;min-height:24px;font-size:var(--font-size-xs);color:var(--color-text-muted);transition:all var(--transition-fast);display:flex}.status-indicator--listening{color:var(--color-danger)}.status-indicator--thinking{color:var(--color-accent)}.status-indicator--speaking{color:var(--color-success)}.status-indicator__dot{border-radius:var(--radius-full);background:currentColor;width:6px;height:6px;animation:1.2s ease-in-out infinite dotPulse}.status-indicator__dot:nth-child(2){animation-delay:.2s}.status-indicator__dot:nth-child(3){animation-delay:.4s}.thinking-indicator{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);border-bottom-left-radius:var(--space-xxs);align-self:flex-start;animation:.3s bubbleIn;display:flex}.thinking-indicator__dots{gap:4px;display:flex}.thinking-indicator__dot{border-radius:var(--radius-full);background:var(--color-accent);width:8px;height:8px;animation:1.4s ease-in-out infinite thinkBounce}.thinking-indicator__dot:nth-child(2){animation-delay:.2s}.thinking-indicator__dot:nth-child(3){animation-delay:.4s}.browser-warning{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);color:var(--color-accent);background:#f5a62314;border-bottom:1px solid #f5a62326;display:flex}.browser-warning__icon{flex-shrink:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes micPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes ringPulse{0%{opacity:.6;transform:scale(.9)}to{opacity:0;transform:scale(1.4)}}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes thinkBounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}@keyframes soundWave{0%,to{height:4px}50%{height:16px}}.sound-wave{align-items:center;gap:2px;height:20px;display:flex}.sound-wave__bar{background:currentColor;border-radius:2px;width:3px;animation:.8s ease-in-out infinite soundWave}.sound-wave__bar:first-child{animation-delay:0s}.sound-wave__bar:nth-child(2){animation-delay:.15s}.sound-wave__bar:nth-child(3){animation-delay:.3s}.sound-wave__bar:nth-child(4){animation-delay:.45s}.app:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#f5a62305 1px,#0000 1px),linear-gradient(90deg,#f5a62305 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0}.app>*{z-index:1;position:relative}@media (width>=768px){:root{--font-size-base:1rem;--font-size-lg:1.35rem}.chat-history{padding:var(--space-lg) var(--space-xl)}.chat-bubble{max-width:75%}.input-bar{padding:var(--space-md) var(--space-lg)}}@media (width>=1024px){.app{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}.chat-bubble{max-width:65%}.mic-btn{width:56px;height:56px;font-size:1.4rem}}@supports (padding-bottom:env(safe-area-inset-bottom)){.input-bar{padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom))}}@keyframes spinnerOrbit{0%{opacity:1;transform:rotate(0)translate(22px)scale(1)}50%{opacity:.4;transform:rotate(180deg)translate(22px)scale(.5)}to{opacity:1;transform:rotate(360deg)translate(22px)scale(1)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.server-loading-overlay{z-index:9999;-webkit-backdrop-filter:blur(14px)saturate(.8);background:#0f1923b8;justify-content:center;align-items:center;animation:.3s overlayFadeIn;display:flex;position:fixed;inset:0}.server-loading-card{align-items:center;gap:var(--space-lg);padding:var(--space-xxl) var(--space-xl);border-radius:var(--radius-xl);text-align:center;background:#1a2633e6;border:1px solid #f5a6232e;flex-direction:column;min-width:260px;display:flex;box-shadow:0 24px 64px #00000080,inset 0 0 0 1px #ffffff0a}.server-loading-spinner{width:64px;height:64px;position:relative}.server-loading-spinner span{background:var(--color-accent);width:10px;height:10px;box-shadow:0 0 8px var(--color-accent-glow);border-radius:50%;margin:-5px 0 0 -5px;animation:1.4s cubic-bezier(.45,.05,.55,.95) infinite spinnerOrbit;position:absolute;top:50%;left:50%}.server-loading-spinner span:nth-child(2){background:#ffd080;animation-delay:-.47s;box-shadow:0 0 8px #ffd08059}.server-loading-spinner span:nth-child(3){background:var(--color-text-secondary);box-shadow:none;animation-delay:-.93s}.server-loading-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);background:linear-gradient(135deg, var(--color-accent), #ffd080);-webkit-text-fill-color:transparent;letter-spacing:-.01em;-webkit-background-clip:text;background-clip:text}.server-loading-sub{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}
