*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6,p{margin:0}button,[role=button],a,input,select,textarea{touch-action:manipulation}:root{color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;--font-mono: "Consolas", "Monaco", "Fira Code", monospace;--text-xs: .625rem;--text-sm: .75rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-snug: 1.4;--leading-normal: 1.5;--bg-base: #09090b;--bg-primary: #0f0f12;--bg-secondary: #18181b;--bg-tertiary: #212124;--bg-elevated: #2a2a2e;--bg-overlay: rgba(0, 0, 0, .7);--bg-glass: rgba(15, 15, 18, .95);--text-primary: #fafafa;--text-secondary: rgba(250, 250, 250, .85);--text-tertiary: rgba(250, 250, 250, .7);--text-muted: rgba(250, 250, 250, .5);--text-placeholder: rgba(250, 250, 250, .35);--text-disabled: rgba(250, 250, 250, .3);--text-on-accent: #ffffff;--text-on-accent-secondary: #18181b;--text-on-filled: #0f172a;--accent-primary: #a78bfa;--accent-primary-hover: #c4b5fd;--accent-primary-glow: rgba(167, 139, 250, .35);--accent-secondary: #2dd4bf;--accent-secondary-hover: #5eead4;--accent-secondary-glow: rgba(45, 212, 191, .35);--accent-primary-bg: rgba(167, 139, 250, .1);--accent-primary-bg-hover: rgba(167, 139, 250, .15);--accent-secondary-bg: rgba(45, 212, 191, .1);--status-success: #10b981;--status-success-bg: rgba(16, 185, 129, .15);--status-success-border: rgba(16, 185, 129, .3);--status-error: #f87171;--status-error-bg: rgba(248, 113, 113, .15);--status-error-border: rgba(248, 113, 113, .3);--status-warning: #fbbf24;--status-warning-bg: rgba(251, 191, 36, .15);--status-warning-border: rgba(251, 191, 36, .3);--status-info: #60a5fa;--status-info-bg: rgba(96, 165, 250, .15);--status-info-border: rgba(96, 165, 250, .3);--border-default: rgba(250, 250, 250, .1);--border-hover: rgba(250, 250, 250, .15);--border-focus: rgba(167, 139, 250, .5);--border-active: rgba(167, 139, 250, .6);--ui-fill: rgba(250, 250, 250, .06);--ui-fill-hover: rgba(250, 250, 250, .1);--ui-fill-pressed: rgba(250, 250, 250, .14);--ui-fill-selected: rgba(167, 139, 250, .15);--ui-fill-active: rgba(45, 212, 191, .15);--ui-glass: rgba(15, 15, 18, .75);--ui-glass-hover: rgba(15, 15, 18, .85);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-xl: 0 25px 50px rgba(0, 0, 0, .5);--shadow-glow: 0 4px 15px var(--accent-primary-glow);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--blur-sm: blur(4px);--blur-md: blur(8px);--blur-lg: blur(12px);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--animation-slide-up: slideUpBottomSheet .3s ease;--z-base: 1;--z-dropdown: 100;--z-overlay: 500;--z-panel-controls: 600;--z-sidesheet: 900;--z-modal: 1000;--z-popover: 1100;--z-tooltip: 1200;--scrollbar-width: 6px;--scrollbar-track: transparent;--scrollbar-thumb: rgba(250, 250, 250, .15);--scrollbar-thumb-hover: rgba(250, 250, 250, .25);--select-chevron-lg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-chevron-sm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--panel-width: clamp(300px, 28vw, 600px);--text-logo: 1.75rem}[data-theme=light]{color-scheme:light;--bg-base: #fafafa;--bg-primary: #ffffff;--bg-secondary: #f4f4f5;--bg-tertiary: #e4e4e7;--bg-elevated: #d4d4d8;--bg-overlay: rgba(0, 0, 0, .5);--bg-glass: rgba(255, 255, 255, .95);--text-primary: #18181b;--text-secondary: #3f3f46;--text-tertiary: #52525b;--text-muted: #71717a;--text-placeholder: #a1a1aa;--text-disabled: #d4d4d8;--text-on-accent: #ffffff;--text-on-accent-secondary: #18181b;--text-on-filled: #ffffff;--accent-primary: #8b5cf6;--accent-primary-hover: #a78bfa;--accent-primary-glow: rgba(139, 92, 246, .2);--accent-secondary: #14b8a6;--accent-secondary-hover: #2dd4bf;--accent-secondary-glow: rgba(20, 184, 166, .2);--accent-primary-bg: rgba(139, 92, 246, .08);--accent-primary-bg-hover: rgba(139, 92, 246, .12);--accent-secondary-bg: rgba(20, 184, 166, .08);--status-success: #059669;--status-success-bg: rgba(5, 150, 105, .1);--status-success-border: rgba(5, 150, 105, .25);--status-error: #dc2626;--status-error-bg: rgba(220, 38, 38, .1);--status-error-border: rgba(220, 38, 38, .25);--status-warning: #d97706;--status-warning-bg: rgba(217, 119, 6, .1);--status-warning-border: rgba(217, 119, 6, .25);--status-info: #2563eb;--status-info-bg: rgba(37, 99, 235, .1);--status-info-border: rgba(37, 99, 235, .25);--border-default: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .12);--border-focus: rgba(139, 92, 246, .4);--border-active: rgba(139, 92, 246, .5);--ui-fill: rgba(0, 0, 0, .04);--ui-fill-hover: rgba(0, 0, 0, .06);--ui-fill-pressed: rgba(0, 0, 0, .08);--ui-fill-selected: rgba(139, 92, 246, .1);--ui-fill-active: rgba(20, 184, 166, .1);--ui-glass: rgba(255, 255, 255, .75);--ui-glass-hover: rgba(255, 255, 255, .9);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .15);--shadow-glow: 0 4px 15px var(--accent-primary-glow);--scrollbar-thumb: rgba(0, 0, 0, .15);--scrollbar-thumb-hover: rgba(0, 0, 0, .25);--select-chevron-lg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-chevron-sm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}*::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:calc(var(--scrollbar-width) / 2)}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}html,textarea,.speech-display,.sidesheet-content,.session-messages-content,.modal-container,.conversation-history,.calendar-agenda,.hire-panel-content,.model-gallery-list,.model-settings-content,.model-setup-content,.detail-view-content,.vn-text,.react-datepicker__time-list{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}@keyframes slideUpBottomSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-loading-fallback{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal-loading-spinner{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@media(prefers-reduced-motion:reduce){:root{--transition-fast: 0s;--transition-normal: 0s;--transition-slow: 0s;--animation-slide-up: none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.avatar-controls-dropdown{position:relative}.avatar-controls-trigger{height:32px;padding:0 .625rem 0 .375rem;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--ui-glass);backdrop-filter:var(--blur-md);cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-family:var(--font-sans);transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}.avatar-controls-trigger:hover{background:var(--ui-glass-hover);border-color:var(--border-hover)}.avatar-controls-trigger:active{transform:scale(.97)}.avatar-controls-trigger:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-secondary-glow)}.avatar-controls-icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-fill);border:1px solid var(--border-default);color:var(--text-primary)}.avatar-controls-label{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.avatar-controls-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:120px;padding:6px;border-radius:var(--radius-lg);border:1px solid var(--border-default);background:var(--ui-glass);backdrop-filter:var(--blur-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:flex;flex-direction:column;gap:.25rem}.avatar-controls-item{width:100%;height:36px;padding:0 .5rem;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:.625rem;font-size:var(--text-base);font-weight:var(--font-medium);transition:background var(--transition-normal),color var(--transition-normal),transform var(--transition-normal)}.avatar-controls-item:hover{background:var(--ui-fill-hover);color:var(--text-primary)}.avatar-controls-item:active{transform:translateY(1px)}.avatar-controls-item:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-secondary-glow)}@media(max-width:768px){.avatar-controls-label{font-size:var(--text-sm)}}.source-citation{margin-top:.5rem;font-size:var(--text-sm)}.source-citation-header{display:flex;align-items:center;gap:.25rem;padding:4px 8px;background:var(--ui-fill);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.source-citation-header:hover{background:var(--ui-fill-hover);color:var(--text-secondary)}.source-count{font-size:var(--text-sm)}.source-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.source-item{margin:0;padding:0}.source-link{display:flex;align-items:center;gap:.25rem;padding:4px 8px;background:var(--ui-fill);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--accent-primary);text-decoration:none;font-size:var(--text-sm);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.source-link:hover{background:var(--ui-fill-hover);color:var(--accent-primary-hover);border-color:var(--border-focus)}.source-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.source-icon{flex-shrink:0;opacity:.6}.source-link:hover .source-icon{opacity:1}.chat-interface{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--bg-glass);border:1px solid var(--border-default);overflow:hidden}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem .75rem 1rem 1.25rem;min-height:60px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.chat-header-left{display:flex;align-items:center;gap:.5rem;min-width:0;flex-shrink:1}.chat-model-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.chat-header-dot{color:var(--text-muted);font-size:var(--text-base)}.chat-status{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--accent-primary);animation:statusPulse 2s ease-in-out infinite}.chat-status.ready{color:var(--status-success);animation:none}.chat-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.chat-close-button{display:none;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);transition:color var(--transition-normal)}.chat-close-button:hover{color:var(--text-primary)}.speech-display{flex:1;overflow-y:auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}.welcome-message{text-align:center;width:100%;padding:2rem 1rem;color:var(--text-muted)}.welcome-message p{margin:.5rem 0}.welcome-message p:first-child{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--text-secondary)}.welcome-back-message{text-align:center;width:100%;padding:2rem 1rem;color:var(--text-muted)}.welcome-back-message p{margin:.5rem}.welcome-back-message p:first-child{font-size:var(--text-xl);font-weight:var(--font-medium);color:var(--text-secondary)}.welcome-back-message .session-info{font-size:var(--text-md);color:var(--text-muted);margin:0}.load-history-button{width:140px;padding:.25rem .5rem;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:var(--text-on-accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-medium);cursor:pointer;word-break:keep-all;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.load-history-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.load-history-button:disabled{opacity:.6;cursor:not-allowed}.load-history-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.session-actions{display:flex;gap:1.25rem;margin-top:1rem;justify-content:center}.start-new-button{width:140px;padding:.25rem .5rem;background:var(--accent-secondary);border:none;border-radius:var(--radius-md);color:var(--text-on-accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-normal),transform var(--transition-normal)}.start-new-button:hover{background:var(--accent-secondary-hover);transform:translateY(-1px)}.start-new-button:disabled{cursor:wait;opacity:.7}.start-new-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-secondary-glow)}.chat-new-session-button{height:32px;padding:0 .625rem 0 .375rem;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--ui-glass);backdrop-filter:var(--blur-md);cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-family:var(--font-sans);transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}.chat-new-session-button:hover:not(:disabled){background:var(--ui-glass-hover);border-color:var(--border-hover)}.chat-new-session-button:active:not(:disabled){transform:scale(.97)}.chat-new-session-icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-fill);border:1px solid var(--border-default);color:var(--text-primary)}.chat-new-session-label{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.chat-new-session-label-mobile{display:none;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.chat-new-session-button:disabled{cursor:not-allowed;opacity:.5}.chat-new-session-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.creating-session{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:200px}.creating-session .spin{animation:spin 1s linear infinite;color:var(--accent-primary)}.chat-message{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-radius:var(--radius-lg);max-width:85%;word-wrap:break-word;animation:fadeInSlideUp .3s ease}.chat-message.user{align-self:flex-end;background:var(--status-info-bg);border:1px solid var(--status-info-border)}.chat-message.assistant{align-self:flex-start;background:var(--bg-tertiary);border:1px solid var(--border-default)}.chat-message.assistant.typing{border-left:3px solid var(--accent-primary)}.chat-message .message-role{font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:.02em;color:var(--text-muted)}.chat-message.user .message-role{color:var(--accent-secondary)}.chat-message .message-content{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text-secondary);white-space:pre-wrap}.load-more-button{align-self:center;padding:.5rem 1rem;background:var(--ui-fill-hover);border:1px solid var(--border-hover);border-radius:var(--radius-full);color:var(--text-tertiary);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal);margin-bottom:1rem}.load-more-button:hover{background:var(--ui-fill-pressed);color:var(--text-primary)}.load-more-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.loading-more-indicator{align-self:center;padding:.5rem 1rem;font-size:var(--text-base);color:var(--text-muted);margin-bottom:1rem}.checking-session{display:flex;justify-content:center;gap:.5rem;padding:2rem;width:100%}.checking-session .dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out;opacity:.6}.checking-session .dot:nth-child(1){animation-delay:-.32s}.checking-session .dot:nth-child(2){animation-delay:-.16s}.loading-indicator{display:flex;align-self:flex-start;gap:.5rem;padding:1rem}.loading-indicator .dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out;opacity:.6}.loading-indicator .dot:nth-child(1){animation-delay:-.32s}.loading-indicator .dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.chat-error{padding:.75rem 1rem;margin:0 1.5rem;background:var(--status-error-bg);border:1px solid var(--status-error-border);border-radius:var(--radius-md);color:var(--status-error);font-size:var(--text-base)}.input-area{padding:.5rem;background:var(--bg-tertiary);border-top:1px solid var(--border-default)}.input-container{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-normal)}.input-container:focus-within{border-color:var(--border-focus)}.textarea-wrapper{padding:.5rem .75rem}.message-textarea{width:100%;min-height:2.7rem;max-height:6.75rem;padding:0;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);resize:none;outline:none}.message-textarea::placeholder{color:var(--text-placeholder)}.message-textarea:disabled{opacity:.5;cursor:not-allowed}@media(forced-colors:active){.message-textarea:focus-visible{outline:2px solid ButtonText}}.input-actions{display:flex;justify-content:space-between;align-items:center;padding:0 .75rem .5rem;background:transparent}.input-actions-left,.input-actions-right{display:flex;align-items:center;gap:.5rem}.send-button{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:var(--text-on-accent);cursor:pointer;font-family:var(--font-sans);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.send-button:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-glow)}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{opacity:.4;cursor:not-allowed}.send-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}@media(max-width:768px){.chat-header{padding:.75rem 1rem}.chat-header h3{font-size:var(--text-md)}.chat-new-session-label{display:none}.chat-new-session-label-mobile{display:inline}.speech-display{padding:1.5rem 1rem;gap:.75rem}.input-area{padding:.5rem .75rem}.textarea-wrapper{padding:.6rem .85rem}.message-textarea{font-size:var(--text-md)}.input-actions{padding:.4rem .5rem}.send-button{width:36px;height:36px}}@media(orientation:portrait){.chat-interface{width:100%;height:100%;max-width:100%;border:none}.chat-header{padding:.75rem 1rem}.chat-close-button{display:flex}.chat-header-right .avatar-controls-dropdown{display:none}.speech-display{padding:1.5rem 1rem}.input-area{padding:.5rem .75rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}.send-button{width:36px;height:36px}}.chat-panel-toggle{position:absolute;left:0;top:50%;transform:translate(-100%,-50%);z-index:var(--z-base);width:24px;height:60px;padding:0;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-hover);border-right:none;backdrop-filter:var(--blur-md);cursor:pointer;font-family:var(--font-sans);transition:background var(--transition-normal),border-color var(--transition-normal),width var(--transition-normal)}.chat-panel-toggle:hover{background:var(--ui-fill-selected);border-color:var(--border-focus);width:28px}.chat-panel-toggle:active{background:var(--ui-fill-pressed)}.chat-panel-toggle:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.toggle-arrow{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:var(--text-xl);font-weight:var(--font-normal);color:var(--text-secondary);line-height:var(--leading-none)}.chat-panel-toggle:hover .toggle-arrow{color:var(--text-primary)}@media(orientation:portrait){.chat-panel-toggle{display:none}.main-content-split.chat-panel-closed .chat-panel-toggle{display:flex;position:fixed;right:0;left:auto;top:50%;transform:translateY(-50%);z-index:var(--z-panel-controls);border-radius:var(--radius-md) 0 0 var(--radius-md)}}.vn-dialogue-box{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:var(--z-overlay);width:90%;max-width:700px;background:var(--bg-glass);border:1px solid var(--border-hover);border-radius:var(--radius-xl);backdrop-filter:var(--blur-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:vnSlideUp .3s ease}@keyframes vnSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.vn-header-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.25rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.vn-header-left{display:flex;align-items:center;gap:.5rem;min-width:0;flex-shrink:1}.vn-model-name{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-primary)}.vn-header-dot{color:var(--text-muted);font-size:var(--text-base)}.vn-header-status{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--accent-primary);animation:statusPulse 2s ease-in-out infinite}.vn-header-status.ready{color:var(--status-success);animation:none}.vn-header-right{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.vn-new-session-button{height:32px;padding:0 .625rem 0 .375rem;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--ui-glass);backdrop-filter:var(--blur-md);cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-family:var(--font-sans);transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}.vn-new-session-button:hover:not(:disabled){background:var(--ui-glass-hover);border-color:var(--border-hover)}.vn-new-session-button:active:not(:disabled){transform:scale(.97)}.vn-new-session-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.vn-new-session-icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-fill);border:1px solid var(--border-default);color:var(--text-primary)}.vn-new-session-label{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.vn-new-session-label-mobile{display:none;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.vn-new-session-button:disabled{cursor:not-allowed;opacity:.5}.vn-dialogue-area{padding:0}.vn-dialogue-area.empty{display:flex;align-items:center;justify-content:center;padding:.5rem;height:3.75rem}.vn-dialogue-content{width:100%;padding:.5rem .5rem .5rem 1.25rem}.vn-text{display:block;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;min-height:2.85rem;max-height:7.125rem;overflow-y:auto;overscroll-behavior:contain}.vn-placeholder{color:var(--text-muted);font-size:var(--text-md)}.vn-creating-session{display:flex;align-items:center;justify-content:center;padding:1.5rem}.vn-creating-session .spin{animation:spin 1s linear infinite;color:var(--accent-primary)}.vn-checking-session{display:flex;align-items:center;justify-content:center;padding:1rem}.vn-greeting{padding:1rem;text-align:center}.vn-greeting p{margin:0;color:var(--text-secondary);font-size:var(--text-md)}.vn-greeting p:first-child{font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:.25rem}.vn-loading-indicator{display:flex;align-items:center;padding:.5rem 1.25rem}.vn-error{padding:.75rem 1.25rem;background:var(--status-error-bg);color:var(--status-error);font-size:var(--text-sm);border-radius:var(--radius-sm);margin:.5rem 1rem}.vn-welcome-back{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.25rem;text-align:center}.vn-welcome-back-title{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.vn-welcome-back-info{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.vn-welcome-back-actions{display:flex;justify-content:space-between;margin-top:0;gap:1rem}.vn-load-history-button,.vn-start-new-button{width:120px;height:32px;padding:0 12px;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);word-break:keep-all;transition:transform var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}.vn-load-history-button{background:var(--accent-primary);border:none;color:var(--text-on-accent)}.vn-load-history-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow)}.vn-start-new-button{background:var(--accent-secondary);border:none;color:var(--text-on-accent)}.vn-start-new-button:hover:not(:disabled){background:var(--accent-secondary-hover);transform:translateY(-1px)}.vn-load-history-button:disabled,.vn-start-new-button:disabled{cursor:not-allowed;opacity:.5}.vn-load-history-button:focus-visible,.vn-start-new-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.vn-typing-indicator{display:flex;align-items:center;min-height:2.85rem}.typing-dots{display:flex;gap:.25rem}.typing-dots .dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out;opacity:.6}.typing-dots .dot:nth-child(1){animation-delay:-.32s}.typing-dots .dot:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.vn-input-row{padding:.5rem;background:var(--bg-tertiary);border-top:1px solid var(--border-default)}.vn-input-container{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-normal)}.vn-input-container:focus-within{border-color:var(--border-focus)}.vn-textarea-wrapper{padding:.5rem .5rem .5rem .75rem}.vn-textarea{width:100%;min-height:1.35rem;max-height:6.75rem;padding:0;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);resize:none;outline:none}.vn-textarea::placeholder{color:var(--text-placeholder)}.vn-textarea:disabled{opacity:.5;cursor:not-allowed}@media(forced-colors:active){.vn-textarea:focus-visible{outline:2px solid ButtonText}}.vn-input-actions{display:flex;justify-content:space-between;align-items:center;padding:0 .5rem .5rem .75rem;background:transparent}.vn-input-actions-left,.vn-input-actions-right{display:flex;align-items:center;gap:.5rem}.vn-send-button{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:var(--text-on-accent);cursor:pointer;font-family:var(--font-sans);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.vn-send-button:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-glow)}.vn-send-button:active:not(:disabled){transform:scale(.95)}.vn-send-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.vn-send-button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.vn-dialogue-box{bottom:.75rem;width:95%;border-radius:var(--radius-lg)}.vn-header-bar{padding:.25rem .375rem .25rem .625rem}.vn-model-name{font-size:var(--text-md)}.vn-header-status{font-size:var(--text-sm);white-space:nowrap}.vn-new-session-label{display:none}.vn-new-session-label-mobile{display:inline}.vn-dialogue-content{padding:.5rem .75rem .5rem 1rem}.vn-text{font-size:var(--text-md);min-height:2.85rem;max-height:7.125rem}.vn-input-row,.vn-textarea-wrapper{padding:.3rem .5rem}.vn-textarea{font-size:var(--text-md)}.vn-input-actions{padding:0 .5rem .3rem}.vn-send-button{width:36px;height:36px}}.menu-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-sans);transition:background var(--transition-normal),transform var(--transition-normal)}.menu-button:hover{background:var(--ui-fill-hover)}.menu-button:active{transform:scale(.95)}.menu-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.menu-icon{display:flex;flex-direction:column;justify-content:space-between;width:20px;height:14px}.menu-icon .bar{display:block;width:100%;height:2px;background:var(--text-primary);border-radius:1px;transition:transform var(--transition-slow),opacity var(--transition-slow)}.menu-button.open .menu-icon .bar:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-button.open .menu-icon .bar:nth-child(2){opacity:0;transform:scaleX(0)}.menu-button.open .menu-icon .bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.main-spinner-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:mainSpinnerFadeIn .2s ease .3s both}.main-spinner{width:40px;height:40px;border:3px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes mainSpinnerFadeIn{0%{opacity:0}to{opacity:1}}.chunk-error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1rem;text-align:center}.chunk-error-message{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.chunk-error-button{font-family:var(--font-sans);font-size:var(--text-sm);padding:.5rem 1.25rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.chunk-error-button:hover{background:var(--ui-fill-hover);color:var(--text-primary)}.chunk-error-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.sidesheet-backdrop{position:fixed;inset:0;background:var(--bg-overlay);backdrop-filter:var(--blur-sm);opacity:0;visibility:hidden;transition:opacity var(--transition-slow),visibility var(--transition-slow);z-index:var(--z-sidesheet)}.sidesheet-backdrop.open{opacity:1;visibility:visible}.sidesheet{position:fixed;top:0;left:0;bottom:0;width:320px;max-width:90vw;background:var(--bg-secondary);border-right:1px solid var(--border-default);box-shadow:var(--shadow-lg);transform:translate(-100%);transition:transform var(--transition-slow);z-index:calc(var(--z-sidesheet) + 1);overflow:hidden;overscroll-behavior:contain}.sidesheet.open{transform:translate(0)}.sidesheet-top-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;height:60px;flex-shrink:0}.sidesheet-back-button,.sidesheet-close-button{width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);transition:color var(--transition-normal);display:flex;align-items:center;justify-content:center}.sidesheet-back-button:hover,.sidesheet-close-button:hover{color:var(--text-primary)}.sidesheet-back-button:focus-visible,.sidesheet-close-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.sidesheet-back-placeholder{width:32px;height:32px}.sidesheet-views-container{position:relative;width:100%;height:calc(100% - 60px)}.sidesheet-view{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform var(--transition-slow),opacity var(--transition-slow)}.sidesheet-view.active{transform:translate(0);opacity:1;pointer-events:auto}.sidesheet-view.slide-left{transform:translate(-100%);opacity:0;pointer-events:none}.sidesheet-view.slide-right{transform:translate(100%);opacity:0;pointer-events:none}.sidesheet-content{display:flex;flex-direction:column;height:100%;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem}.sidesheet-header{margin-bottom:1.5rem}.sidesheet-header h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:.5rem;text-wrap:balance}.sidesheet-header p{font-size:var(--text-md);color:var(--text-muted)}.sidesheet-header .user-avatar{width:50px;height:50px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-on-accent);margin-bottom:.75rem}.sidesheet-header .user-info{display:flex;flex-direction:column;gap:.2rem}.sidesheet-header .user-name{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-primary)}.sidesheet-header .user-email{font-size:var(--text-base);color:var(--text-muted)}.sidesheet-divider{height:1px;background:var(--border-default)}.sidesheet-nav{flex:1;display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.sidesheet-nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem .75rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-md);text-align:left;cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal)}.sidesheet-nav-item:hover:not(:disabled){background:var(--ui-fill);color:var(--text-primary)}.sidesheet-nav-item:active:not(:disabled){background:var(--ui-fill-hover)}.sidesheet-nav-item:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.sidesheet-nav-item:disabled{cursor:not-allowed;opacity:.5}.sidesheet-nav-item .nav-icon{font-size:var(--text-md);width:1.5rem;text-align:center;display:flex;align-items:center;justify-content:center;color:var(--text-primary)}.sidesheet-nav-item .nav-text{flex:1}.sidesheet-nav-item .nav-count{font-size:var(--text-sm);padding:.15rem .5rem;background:var(--ui-fill-hover);border-radius:var(--radius-full);color:var(--text-tertiary)}.sidesheet-nav-item .nav-toggle{width:36px;height:20px;background:var(--border-default);border-radius:var(--radius-full);position:relative;transition:background var(--transition-normal);flex-shrink:0}.sidesheet-nav-item .nav-toggle.on{background:var(--accent-primary)}.sidesheet-nav-item .nav-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-on-accent);border-radius:50%;transition:transform var(--transition-normal)}.sidesheet-nav-item .nav-toggle.on .nav-toggle-knob{transform:translate(16px)}.sidesheet-nav-item .nav-arrow{font-size:var(--text-lg);color:var(--text-muted);margin-left:.25rem;display:flex;align-items:center;justify-content:center}.sidesheet-nav-item .coming-soon{font-size:var(--text-sm);padding:.15rem .4rem;background:var(--status-error-bg);color:var(--accent-primary);border-radius:var(--radius-sm)}.sidesheet-nav-item .nav-language-badge{font-size:var(--text-sm);font-weight:var(--font-semibold);padding:.2rem .5rem;background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-sm);letter-spacing:.05em}.detail-view-header{margin-bottom:1.5rem}.detail-view-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:.5rem}.detail-view-header p{font-size:var(--text-base);color:var(--text-muted)}.detail-view-header--with-action{display:flex;justify-content:space-between;align-items:flex-start}.detail-view-header-text{flex:1}.detail-view-header-action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--ui-fill);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal);flex-shrink:0}.detail-view-header-action:hover{background:var(--ui-fill-hover);border-color:var(--border-hover);color:var(--text-primary)}.detail-view-content{flex:1;min-height:0}.detail-view-content.scrollable{overflow-y:auto;overscroll-behavior:contain}.sidesheet-actions{display:flex;flex-direction:column;gap:.75rem}.sidesheet-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-default)}.sidesheet-button{width:100%;padding:.75rem 1.25rem;font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-medium);border:none;border-radius:var(--radius-md);cursor:pointer;word-break:keep-all;transition:background var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),transform var(--transition-normal),box-shadow var(--transition-normal)}.sidesheet-button.primary{background:var(--accent-primary);color:var(--text-on-accent)}.sidesheet-button.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.sidesheet-button.secondary{background:var(--ui-fill-hover);color:var(--text-primary);border:1px solid var(--border-hover)}.sidesheet-button.secondary:hover{background:var(--ui-fill-pressed);border-color:var(--border-hover)}.sidesheet-button.logout{background:transparent;color:var(--text-muted);border:1px solid var(--border-default)}.sidesheet-button.logout:hover{background:var(--status-error-bg);border-color:var(--status-error-border);color:var(--status-error)}.sidesheet-button.danger{background:transparent;color:var(--status-error);border:1px solid var(--status-error-border)}.sidesheet-button.danger:hover{background:var(--status-error);color:var(--text-on-accent)}.sidesheet-button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.background-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.background-option{position:relative;aspect-ratio:16 / 9;border:2px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;background:var(--bg-secondary);transition:border-color var(--transition-normal),transform var(--transition-normal);padding:0}.background-option:hover{border-color:var(--border-hover);transform:translateY(-2px)}.background-option.selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-glow)}.background-thumbnail{width:100%;height:100%;object-fit:cover}.background-none{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-muted);font-size:var(--text-md)}.background-name{position:absolute;bottom:0;left:0;right:0;padding:.5rem;background:var(--bg-overlay);color:var(--text-primary);font-size:var(--text-sm);text-align:center}.background-check{position:absolute;top:.5rem;right:.5rem;width:1.5rem;height:1.5rem;background:var(--accent-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-on-accent);font-size:var(--text-sm);font-weight:var(--font-bold)}.sidesheet-loading-fallback{display:flex;align-items:center;justify-content:center;min-height:120px}@media(max-width:480px){.sidesheet{width:100%;max-width:100%}}.guest-landing--panel{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--bg-glass);border:1px solid var(--border-default);overflow:hidden}.guest-landing--panel .guest-landing-header{display:flex;justify-content:space-between;align-items:center;padding:1rem .75rem 1rem 1.25rem;min-height:60px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.guest-landing--panel .guest-landing-model-name{font-size:var(--text-lg);font-weight:var(--font-semibold)}.guest-landing--panel .guest-landing-speech-area{flex:1;display:flex;align-items:flex-start;padding:1.5rem;min-height:0;overflow-y:auto}.guest-landing--panel .guest-landing-buttons{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border-default);background:var(--bg-tertiary)}.guest-landing--overlay{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:var(--z-overlay);width:90%;max-width:700px;background:var(--bg-glass);border:1px solid var(--border-hover);border-radius:var(--radius-xl);backdrop-filter:var(--blur-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:guestLandingSlideUp var(--transition-slow)}@keyframes guestLandingSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.guest-landing--overlay .guest-landing-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.25rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.guest-landing--overlay .guest-landing-model-name{font-size:var(--text-md);font-weight:var(--font-semibold)}.guest-landing--overlay .guest-landing-speech-area{padding:1.25rem;min-height:4rem}.guest-landing--overlay .guest-landing-buttons{padding:.75rem 1rem 1rem;border-top:1px solid var(--border-default);background:var(--bg-tertiary)}.guest-landing-header-left{display:flex;align-items:center;gap:.5rem;min-width:0;flex-shrink:1}.guest-landing-model-name{color:var(--text-primary)}.guest-landing-header-dot{color:var(--text-muted);font-size:var(--text-base)}.guest-landing-status{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--accent-primary);animation:statusPulse 2s ease-in-out infinite}.guest-landing-status.ready{color:var(--status-success);animation:none}.guest-landing-speech{max-width:100%}.guest-landing-speech-text{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--text-secondary);word-break:keep-all;white-space:pre-wrap}.guest-landing-cursor{color:var(--accent-primary);animation:guestCursorBlink .6s step-end infinite}@keyframes guestCursorBlink{50%{opacity:0}}.guest-landing-back{display:block;margin-top:.75rem;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;padding:.25rem;background:none;border:none;font-family:var(--font-sans);word-break:keep-all;transition:color var(--transition-normal)}.guest-landing-back:hover{color:var(--accent-primary)}.guest-landing-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.guest-landing-btn{padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer;word-break:keep-all;transition:background-color var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}.guest-landing-btn:hover:not(:disabled){background:var(--ui-glass-hover);border-color:var(--border-hover)}.guest-landing-btn:active:not(:disabled){transform:scale(.97)}.guest-landing-btn:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.guest-landing-btn:disabled{opacity:.5;cursor:not-allowed}.guest-landing-btn--cta{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.guest-landing-btn--cta:hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.guest-landing-btn--praise{border-color:var(--accent-secondary);color:var(--accent-secondary)}.guest-landing-btn--praise:hover:not(:disabled){background:var(--accent-secondary-glow)}.guest-landing-btn--scold{border-color:var(--status-error);color:var(--status-error)}.guest-landing-btn--scold:hover:not(:disabled){background:var(--status-error-bg)}@media(max-width:768px){.guest-landing--overlay{bottom:.75rem;width:95%;border-radius:var(--radius-lg)}.guest-landing--overlay .guest-landing-speech-area{padding:1rem .75rem}.guest-landing--overlay .guest-landing-buttons{padding:.5rem .75rem .75rem;gap:.5rem}.guest-landing--panel .guest-landing-header{min-height:48px;padding:.75rem 1rem}.guest-landing-btn{padding:.625rem .75rem;font-size:var(--text-sm)}}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);backdrop-filter:var(--blur-sm);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease}.modal-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 40px -10px var(--accent-primary-glow);width:100%;max-width:480px;max-height:90vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;animation:modalEnter .25s cubic-bezier(.16,1,.3,1)}.modal-container--sm{max-width:360px}.modal-container--lg{max-width:600px}.modal-container--xl{max-width:720px}@media(max-width:640px){.modal-container--xl{max-width:100%;max-height:100dvh;height:100dvh;margin:0;border-radius:0;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes modalEnter{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.5rem 1.5rem 0rem}.modal-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;letter-spacing:-.01em;text-wrap:balance}.modal-header-spacer{flex:1}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-lg);line-height:var(--leading-none);cursor:pointer;transition:color var(--transition-normal)}.modal-close:hover{color:var(--text-primary)}.modal-close:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.modal-content{padding:1.5rem}.modal-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label,.form-group .form-label{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-secondary)}.form-group input{padding:1rem 1.25rem;min-height:52px;background:var(--ui-fill);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-md);transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal)}.form-group input:focus{outline:none;border-color:var(--accent-primary);background:var(--ui-fill-hover);box-shadow:0 0 0 3px var(--accent-primary-glow),0 0 20px -5px var(--accent-primary-glow);transition:border-color var(--transition-fast),box-shadow var(--transition-normal)}.form-group input::placeholder{color:var(--text-placeholder)}.form-hint{font-size:var(--text-base);color:var(--text-muted);margin-bottom:1.25rem}.form-error{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;background:var(--status-error-bg);border:1px solid var(--status-error-border);border-radius:var(--radius-md);color:var(--status-error);font-size:var(--text-base);line-height:var(--leading-snug)}.form-error:before{content:"";flex-shrink:0;width:18px;height:18px;margin-top:.0625rem;background:currentColor;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E");mask-size:contain;mask-repeat:no-repeat}.form-success{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--status-success-bg);border:1px solid var(--status-success-border);border-radius:var(--radius-md);color:var(--status-success);font-size:var(--text-base)}.form-submit{width:100%;padding:.875rem 1.5rem;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:var(--text-on-accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-semibold);cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.form-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.form-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-submit:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.form-submit-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--text-on-accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:.5rem}.form-link{text-align:center}.form-link button{background:none;border:none;color:var(--accent-primary);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;text-decoration:underline}.form-link button:hover{color:var(--accent-primary-hover)}.form-link button:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.modal-container--centered{position:relative}.modal-content--centered{padding:0 1.5rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center}.modal-btn{padding:.75rem 1rem;min-height:48px;min-width:120px;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-bold);word-break:keep-all;cursor:pointer;transition:background var(--transition-normal),color var(--transition-normal),transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal);border:none}.modal-btn--sm{padding:.625rem 1rem;min-height:40px;min-width:100px}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.modal-btn:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.modal-btn-primary{background:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary)}.modal-btn-primary:hover:not(:disabled){background:var(--accent-primary-bg);border-color:var(--accent-primary-hover)}.modal-btn-primary-filled{background:var(--accent-primary);color:var(--text-on-filled)}.modal-btn-primary-filled:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.modal-btn-secondary{background:transparent;color:var(--accent-secondary);border:1px solid var(--accent-secondary)}.modal-btn-secondary:hover:not(:disabled){background:var(--accent-secondary-bg);border-color:var(--accent-secondary-hover)}.modal-btn-secondary-filled{background:var(--accent-secondary);color:var(--text-on-filled)}.modal-btn-secondary-filled:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px var(--accent-secondary-glow)}.modal-btn-tertiary{background:var(--ui-fill);color:var(--text-secondary);border:1px solid var(--border-hover)}.modal-btn-tertiary:hover:not(:disabled){background:var(--ui-fill-hover)}.modal-btn-danger{background:transparent;color:var(--status-error);border:1px solid var(--status-error-border)}.modal-btn-danger:hover:not(:disabled){background:var(--status-error-bg);border-color:var(--status-error)}.modal-btn-danger-filled{background:var(--status-error);color:var(--text-on-accent)}.modal-btn-danger-filled:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.modal-btn-danger-filled:disabled{transform:none;box-shadow:none}.modal-icon{display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.modal-icon svg{width:48px;height:48px}.modal-icon--warning{color:var(--status-warning)}.modal-icon--info{color:var(--accent-primary)}.modal-icon--error{color:var(--status-error)}.modal-icon--success{color:var(--status-success)}.modal-icon--neutral{color:var(--text-secondary)}.modal-alert{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.modal-alert-message{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:.75rem;letter-spacing:-.01em;word-break:break-word}.modal-alert-message strong{color:var(--accent-primary)}.modal-alert-description{font-size:var(--text-md);color:var(--text-secondary);margin-bottom:1.25rem;line-height:var(--leading-normal);max-width:320px;white-space:pre-line}.modal-alert-description strong{color:var(--accent-primary)}.modal-alert-buttons{display:flex;gap:.75rem;width:100%;max-width:320px;margin-inline:auto}.modal-alert-buttons>button{flex:1}.modal-alert-note{font-size:var(--text-base);color:var(--text-muted);margin:1rem 0 0}.modal-alert-link{margin-top:1rem}.modal-alert-link button{background:none;border:none;color:var(--accent-primary);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;text-decoration:underline}.modal-alert-link button:hover{color:var(--accent-primary-hover)}.modal-alert-error{background:var(--status-error-bg);border:1px solid var(--status-error-border);color:var(--status-error);padding:.625rem .875rem;border-radius:var(--radius-sm);font-size:var(--text-base);margin-bottom:1rem;width:100%;max-width:320px}.modal-alert-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;text-align:left;width:100%;max-width:320px}.modal-alert-countdown{display:flex;flex-direction:column;align-items:center;margin-bottom:1.5rem}.modal-alert-countdown-number{font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--text-secondary);line-height:var(--leading-none);font-variant-numeric:tabular-nums}.modal-alert-logout:hover{background:var(--status-error-bg);border-color:var(--status-error-border);color:var(--status-error)}.modal-form-intro{font-size:var(--text-md);color:var(--text-secondary);text-align:left;margin-bottom:1rem;line-height:var(--leading-normal)}.modal-form-intro strong{color:var(--accent-primary)}.modal-options{display:flex;flex-direction:column;gap:.75rem;width:100%}.modal-option-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:var(--ui-fill);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal);text-align:left;width:100%}.modal-option-card:hover{background:var(--ui-fill-hover);border-color:var(--border-hover)}.modal-option-card:focus-visible{outline:2px solid transparent;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.modal-option-card--recommended{border-color:var(--accent-primary);background:var(--accent-primary-bg)}.modal-option-card--recommended:hover{background:var(--accent-primary-bg-hover);border-color:var(--accent-primary)}.modal-option-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);overflow:hidden}.modal-option-icon img{width:100%;height:100%;object-fit:cover}.modal-option-icon svg{width:24px;height:24px;color:var(--text-secondary)}.modal-option-content{flex:1;min-width:0}.modal-option-title{display:block;font-size:var(--text-md);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:.25rem}.modal-option-desc{display:block;font-size:var(--text-base);color:var(--text-secondary);margin:0;line-height:var(--leading-snug)}@media(max-width:480px){.modal-container{margin:.75rem;max-width:calc(100% - 1.5rem)}.modal-header{padding:1.5rem 1.5rem 0}.modal-header h2{font-size:var(--text-md)}.modal-content{padding:1rem}.modal-content--centered{padding:0 1rem 1rem}.modal-icon svg{width:40px;height:40px}.modal-alert-message{font-size:var(--text-lg)}.modal-btn{padding:.5rem .75rem;min-height:44px;min-width:100px}.modal-btn--sm{padding:.5rem .75rem;min-height:36px;min-width:80px}.form-group input{padding:.875rem 1rem;min-height:48px}}.toast-container{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px;z-index:var(--z-tooltip);display:flex;flex-direction:column;gap:.625rem;max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:14px 16px;border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-slide-in .3s ease-out}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon-wrapper{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full)}.toast-icon{width:16px;height:16px}.toast-success .toast-icon-wrapper{background:var(--status-success-bg);color:var(--status-success)}.toast-error .toast-icon-wrapper{background:var(--status-error-bg);color:var(--status-error)}.toast-info .toast-icon-wrapper{background:var(--status-info-bg);color:var(--status-info)}.toast-content{flex:1;min-width:0}.toast-title{font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--text-primary);line-height:var(--leading-snug)}.toast-message{font-size:var(--text-base);color:var(--text-tertiary);margin-top:.125rem;line-height:var(--leading-snug);word-break:break-word}.toast-action{margin-top:.5rem;padding:.375rem .75rem;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--accent-primary);background:transparent;border:1px solid var(--accent-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);word-break:keep-all}.toast-action:hover{background:var(--accent-primary);color:var(--text-on-accent)}.toast-action:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.toast-dismiss{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:transparent;font-family:var(--font-sans);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.toast-dismiss:hover{background:var(--ui-fill-hover);color:var(--text-secondary)}.toast-dismiss:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent-primary-glow)}.toast-dismiss svg{width:14px;height:14px}@media(max-width:768px){.toast-container{bottom:auto;top:calc(70px + env(safe-area-inset-top,0px));right:10px;left:10px;max-width:none}.toast{padding:12px 14px}}html,body,#root{width:100%;height:100%}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);overflow:hidden}.app-container{display:flex;flex-direction:column;width:100%;height:100svh}.app-main{flex:1;padding:0;overflow:hidden;width:100%}.app-header{background:var(--ui-glass);backdrop-filter:var(--blur-md);border-bottom:1px solid var(--border-default);padding:1rem 2rem}.header-inner{display:flex;justify-content:space-between;align-items:center;width:100%}.header-left{display:flex;align-items:center;gap:.5rem}.header-center{flex:1}.header-right{display:flex;align-items:center;gap:.5rem;min-width:44px;padding-right:2rem}.app-logo{font-size:var(--text-logo);font-weight:var(--font-bold);letter-spacing:-.02em;color:var(--text-primary);margin:0;line-height:var(--leading-none);white-space:nowrap}.header-controls{display:flex;gap:1rem;align-items:center}.header-auth-button{padding:.5rem 1rem;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-medium);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal);white-space:nowrap}.header-signin{background:transparent;border:1px solid var(--border-default);color:var(--text-primary)}.header-signin:hover{background:var(--ui-fill-hover);border-color:var(--border-hover)}.header-signup{background:var(--accent-primary);border:1px solid var(--accent-primary);color:var(--text-on-accent)}.header-signup:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.header-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-on-accent)}.header-language-toggle{display:flex;align-items:center;gap:.35rem;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-medium);letter-spacing:.05em;padding:.5rem .75rem;background:transparent;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;margin-right:1rem;transition:background var(--transition-normal),border-color var(--transition-normal)}.header-language-toggle:hover{background:var(--ui-fill-hover);border-color:var(--border-hover)}.main-content-split{flex:1;display:flex;gap:0;padding:0;overflow:hidden;height:100%;background:transparent}.live2d-section{flex:2;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;padding:0;background:transparent}.live2d-stage{position:relative;width:100%;height:100%;border:none;outline:none;overflow:hidden;background:transparent}.chat-panel-wrapper{position:relative;flex:0 0 auto;width:var(--panel-width);display:flex;overflow:visible;transition:width var(--transition-slow)}.main-content-split.chat-panel-closed .chat-panel-wrapper{flex:0;width:0}.chat-section{width:100%;height:100%;display:flex;opacity:1;transition:opacity var(--transition-slow)}.main-content-split.chat-panel-closed .chat-section{opacity:0;pointer-events:none}.main-content-split.chat-panel-closed .live2d-section{flex:1}@media not (orientation:portrait){.main-content-split.panel-open .chat-section{opacity:1;pointer-events:auto}.main-content-split.panel-open .chat-panel-wrapper{flex:0 0 auto;width:var(--panel-width)}}.live2d-container{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;position:relative}.live2d-canvas{width:100%;height:100%;display:block;border:none;outline:none;background:transparent}.app-footer{padding:1rem 2rem;text-align:center;background:var(--ui-glass);backdrop-filter:var(--blur-md);border-top:1px solid var(--border-default)}.app-footer p{font-size:var(--text-base);color:var(--text-muted)}@media(orientation:portrait){.app-main{padding:0}.live2d-section{flex:1;padding:0}.chat-panel-wrapper{position:static;flex:unset;min-width:unset;max-width:unset;overflow:visible}.main-content-split.chat-panel-closed .chat-panel-wrapper{flex:unset;min-width:unset;max-width:unset}.chat-section{position:fixed;top:0;left:0;width:100%;height:100%;max-width:none;min-width:0;z-index:var(--z-overlay);transform:translate(0);transition:transform var(--transition-slow),opacity var(--transition-slow);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.main-content-split.chat-panel-closed .chat-section{transform:translate(100%);opacity:0;pointer-events:none;flex:unset;max-width:none;overflow:visible}.main-content-split.settings-open .chat-section{pointer-events:none}.main-content-split.settings-open .chat-section .secretary-settings-panel{pointer-events:auto}}@media(max-width:768px){.app-header{padding:.5rem 1rem}.header-inner{position:relative}.app-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:var(--text-lg)}.app-header .subtitle{font-size:var(--text-base)}.header-signup,.header-language-toggle{display:none}.header-signin{padding:.375rem .75rem;font-size:var(--text-sm)}.header-user-avatar{width:32px;height:32px;font-size:var(--text-base)}.header-right{padding-right:0}.live2d-container{padding:.5rem}.live2d-stage{border-radius:var(--radius-md)}.app-main{padding:0}.main-content-split{flex-direction:column}.live2d-section{flex:1;min-height:300px;padding:0}.chat-section{flex:1;min-width:0;max-width:none;min-height:300px}}
