*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:#fafafa;min-height:100vh;overflow:hidden}.particle-visualizer-container{align-items:center;display:flex;justify-content:center;margin:40px 0}.particle-canvas{height:auto;max-width:100%}.config-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.config-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:700px;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.config-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:24px 30px}.config-header,.config-title{align-items:center;display:flex}.config-title{gap:12px}.config-icon{font-size:1.8em}.config-title h2{color:#1f2937;font-size:1.5em;font-weight:600;margin:0}.close-btn{align-items:center;background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:1.3em;height:36px;justify-content:center;transition:all .3s;width:36px}.close-btn:hover{background:#e5e7eb;color:#1f2937}.config-body{flex:1 1;overflow-y:auto;padding:24px 30px}.config-section{margin-bottom:30px}.config-section h3{color:#1f2937;font-size:1.1em;font-weight:600;margin-bottom:8px}.section-description{color:#6b7280;font-size:.9em;line-height:1.5;margin-bottom:16px}.form-field{margin-bottom:20px}.form-field label{color:#374151;display:block;font-size:.95em;font-weight:500;margin-bottom:8px}.form-field input,.form-field select,.form-field textarea{background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;color:#1f2937;font-family:inherit;font-size:.95em;padding:12px 16px;transition:all .3s;width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.form-field textarea{font-family:SF Mono,Monaco,Courier New,monospace;font-size:.9em;line-height:1.6;resize:vertical}.field-hint{color:#9ca3af;display:block;font-size:.85em;font-style:italic;margin-top:6px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.example-row{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:12px 16px}.example-label{color:#6b7280;font-size:.85em;font-weight:600;margin-bottom:6px}.example-text{color:#1f2937;font-style:italic;line-height:1.5}.preset-buttons{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.preset-btn{background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;color:#374151;cursor:pointer;font-size:.9em;font-weight:500;padding:12px 16px;text-align:left;transition:all .3s}.preset-btn:hover{background:#fff;border-color:#6366f1;box-shadow:0 4px 12px #6366f126;color:#6366f1;transform:translateY(-2px)}.config-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 30px}.primary-btn,.secondary-btn{border:none;border-radius:10px;cursor:pointer;font-size:1em;font-weight:600;padding:12px 24px;transition:all .3s}.primary-btn{background:#6366f1;color:#fff}.primary-btn:hover{background:#4f46e5;box-shadow:0 6px 20px #6366f14d;transform:translateY(-2px)}.model-selector-buttons{display:flex;gap:12px;margin-top:8px}.model-btn{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;color:#4b5563;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:center;padding:16px;transition:all .2s ease}.model-btn:hover{background:#f5f3ff;border-color:#6366f1}.model-btn.active{background:#6366f1;border-color:#4f46e5;color:#fff}.btn-icon{font-size:1.4em}.btn-text{font-size:.9em;font-weight:600}.checkbox-field{margin-top:24px}.checkbox-label{align-items:center!important;cursor:pointer;display:flex!important;gap:10px;margin-bottom:4px!important}.checkbox-label input{cursor:pointer;height:18px!important;width:18px!important}.checkbox-text{color:#1f2937;font-weight:600}.secondary-btn:hover{background:#e5e7eb}.config-body::-webkit-scrollbar{width:8px}.config-body::-webkit-scrollbar-track{background:#f9fafb;border-radius:4px}.config-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.config-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width:768px){.config-modal{max-height:90vh;width:95%}.config-body,.config-footer,.config-header{padding:20px}.form-row,.preset-buttons{grid-template-columns:1fr}}.knowledge-panel{background-color:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:16px}.knowledge-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.knowledge-header h4{color:#343a40;font-size:1.1rem;margin:0}.upload-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:16px;padding:16px}.file-input-wrapper{display:flex;flex-direction:column;gap:8px;position:relative}.file-input-wrapper input[type=file]{display:none}.upload-btn{align-items:center;background-color:#4dabf7;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:8px;justify-content:center;padding:10px;text-align:center;transition:background-color .2s}.upload-btn:hover{background-color:#339af0}.upload-btn.disabled{background-color:#adb5bd;cursor:not-allowed}.documents-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;flex:1 1;overflow-y:auto;padding:8px}.empty-state{color:#adb5bd;padding:24px;text-align:center}.empty-icon{font-size:2rem}.document-item{align-items:center;border-bottom:1px solid #f1f3f5;display:flex;justify-content:space-between;padding:12px;transition:background-color .2s}.document-item:last-child{border-bottom:none}.document-item:hover{background-color:#f8f9fa}.doc-icon{font-size:1.2rem;margin-right:12px}.doc-info{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.doc-name{color:#495057;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta{color:#868e96;font-size:.75rem;margin-top:2px}.doc-delete-btn{background:none;border:none;border-radius:4px;color:#fa5252;cursor:pointer;opacity:.6;padding:6px;transition:all .2s}.doc-delete-btn:hover{background-color:#fff5f5;opacity:1}.kb-status{color:#868e96;display:flex;font-size:.75rem;justify-content:space-between;margin-top:8px}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.enhanced-container{background:#fafafa;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;height:100vh}.top-nav{background:#fff;border-bottom:1px solid #f0f0f0;box-shadow:0 1px 3px #0000000f;justify-content:space-between;padding:16px 24px}.nav-left,.top-nav{align-items:center;display:flex}.nav-left{gap:20px}.app-logo{align-items:center;color:#6366f1;display:flex;font-weight:600;gap:8px}.logo-icon{font-size:1.4em}.app-name{font-size:1.1em}.conversation-title{border-left:1px solid #e5e7eb;color:#6b7280;font-size:.95em;padding-left:20px}.nav-right{align-items:center;display:flex;gap:12px}.service-status-inline{background:#f9fafb;border-radius:20px;display:flex;gap:6px;padding:6px 12px}.status-dot-small{background:#d1d5db;border-radius:50%;height:8px;transition:all .3s;width:8px}.status-dot-small.active{background:#10b981;box-shadow:0 0 6px #10b98180}.nav-btn{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;font-size:.9em;padding:8px 16px;transition:all .2s}.nav-btn:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.nav-btn:disabled{cursor:not-allowed;opacity:.5}.nav-btn-primary{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:8px 20px;transition:all .2s}.nav-btn-primary:hover{background:#4f46e5;box-shadow:0 4px 12px #6366f14d;transform:translateY(-1px)}.main-layout{overflow:hidden}.left-panel,.main-layout{display:flex;flex:1 1;position:relative}.left-panel{align-items:center;background:linear-gradient(135deg,#fafafa,#fff);flex-direction:column;justify-content:center;padding:40px}.timer-display{font-feature-settings:"tnum";color:#9ca3af;font-size:1.1em;font-variant-numeric:tabular-nums;font-weight:500;left:50%;position:absolute;top:24px;transform:translateX(-50%)}.visualizer-section{margin-bottom:30px}.speech-indicator-wrapper,.visualizer-section{align-items:center;display:flex;flex-direction:column}.speech-indicator-wrapper{gap:6px;margin-top:16px}.speech-indicator{align-items:center;background:radial-gradient(circle at 30% 30%,#eef2ff,#fff);border:3px solid #d1d5db;border-radius:50%;display:flex;height:64px;justify-content:center;position:relative;transition:all .25s ease-out;width:64px}.speech-indicator-dot{background:#9ca3af;border-radius:999px;box-shadow:0 0 0 0 #6366f100;height:20px;transition:all .25s ease-out;width:20px}.speech-indicator.listening .speech-indicator-dot{background:#22c55e}.speech-indicator.speaking{border-color:#6366f1}.speech-indicator.speaking .speech-indicator-dot{animation:speechBounce .9s ease-in-out infinite;background:#4f46e5;box-shadow:0 0 0 8px #6366f12e}.speech-indicator.processing{animation:speechSpin 1s linear infinite;border-color:#0000 #f59e0b #f59e0b}.speech-indicator.processing .speech-indicator-dot{background:#facc15;box-shadow:0 0 0 6px #facc1533}.speech-indicator.playing{border-color:#22c55e;box-shadow:0 0 0 6px #22c55e40}.speech-indicator.playing .speech-indicator-dot{animation:speechBounce .8s ease-in-out infinite;background:#22c55e;box-shadow:0 0 0 10px #22c55e38}.speech-indicator-label{color:#9ca3af;font-size:.8em}@keyframes speechBounce{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes speechSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.status-text-large{color:#6b7280;font-size:1.8em;font-weight:300;margin-top:24px;transition:all .3s}.live-transcript-box{background:#fff;border:2px solid #f0f0f0;border-radius:16px;box-shadow:0 2px 12px #0000000a;margin-bottom:24px;max-width:500px;padding:16px 24px}.transcript-indicator{color:#ef4444;display:inline-block;font-size:.75em;font-weight:600;letter-spacing:.5px;margin-bottom:8px}.transcript-text{color:#1f2937;font-size:1.05em;line-height:1.6}.voice-controls{display:flex;gap:12px}.control-button{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:1em;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s}.control-button.large{font-size:1.1em;padding:16px 32px}.control-button.primary{background:#6366f1;box-shadow:0 4px 16px #6366f14d;color:#fff}.control-button.primary:hover{background:#4f46e5;box-shadow:0 6px 20px #6366f166;transform:translateY(-2px)}.control-button.secondary{background:#f3f4f6;border:1px solid #e5e7eb;color:#374151}.control-button.secondary:hover{background:#e5e7eb}.control-button.danger{background:#fef2f2;border:1px solid #fee2e2;color:#dc2626}.control-button.danger:hover{background:#fee2e2;border-color:#fecaca}.button-icon{font-size:1.2em}.right-panel{animation:slideInRight .3s ease-out;background:#fff;border-left:1px solid #f0f0f0;display:flex;flex-direction:column;position:relative;width:420px}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.tab-nav{-ms-overflow-style:auto;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;gap:4px;min-height:48px;overflow-x:auto;padding:0 10px;scrollbar-width:thin;white-space:nowrap;width:100%}.tab-nav::-webkit-scrollbar{display:none}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;flex-shrink:0;font-size:.9em;font-weight:500;padding:12px 14px;transition:all .2s}.tab-button:hover{background:#6366f10d;color:#374151}.tab-button.active{border-bottom-color:#6366f1;color:#6366f1}.tab-button{position:relative}.streaming-indicator-tab{align-items:center;display:flex;position:absolute;right:8px;top:8px}.streaming-dot{animation:streamingPulse 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;box-shadow:0 0 0 0 #10b981b3;height:6px;width:6px}@keyframes streamingPulse{0%{box-shadow:0 0 0 0 #10b981b3}70%{box-shadow:0 0 0 4px #10b98100}to{box-shadow:0 0 0 0 #10b98100}}.tab-content{flex:1 1;overflow-y:auto;padding:20px}.chat-panel{height:100%}.empty-state{align-items:center;color:#9ca3af;display:flex;flex-direction:column;height:100%;justify-content:center}.empty-icon{font-size:3em;margin-bottom:12px;opacity:.5}.empty-state p{font-size:.95em}.messages-list{display:flex;flex-direction:column;gap:16px}.chat-message{animation:messageIn .3s ease-out}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-header{align-items:center;display:flex;gap:8px;margin-bottom:6px;position:relative}.message-avatar{font-size:1.2em}.message-sender{color:#374151;font-size:.85em;font-weight:600}.message-text{border-radius:12px;color:#1f2937;line-height:1.6;padding:12px 16px}.message-text.typing-animation{animation:messageTypeIn .3s ease-out}@keyframes messageTypeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-message.typing{opacity:.9}.typing-indicator-inline{align-items:center;display:inline-flex;gap:4px;margin-left:8px}.typing-dot{animation:typingBounce 1.4s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:6px;width:6px}.typing-dot:first-child{animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.typing-text{display:inline-block;position:relative}.typing-cursor{animation:cursorBlink 1s step-end infinite;background:#6366f1;display:inline-block;height:1.2em;margin-left:2px;vertical-align:text-bottom;width:2px}@keyframes cursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}.chat-message.user .message-text{background:#eff6ff;border:1px solid #dbeafe}.chat-message.assistant .message-text{background:#f0fdf4;border:1px solid #dcfce7}.chat-message.system .message-text{background:#fef3c7;border:1px solid #fde68a;color:#92400e;font-size:.9em}.transcript-panel{height:100%}.transcript-header{align-items:center;border-bottom:1px solid #f0f0f0;color:#374151;display:flex;font-weight:600;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.transcript-action{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:.85em;padding:6px 12px;transition:all .2s}.transcript-action:hover{background:#f3f4f6}.transcript-list{display:flex;flex-direction:column;gap:12px}.transcript-entry{background:#fafafa;border-left:3px solid #e5e7eb;border-radius:10px;padding:12px;transition:all .2s}.transcript-entry:hover{background:#f9fafb;border-left-color:#6366f1}.entry-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.entry-speaker{color:#374151;font-size:.85em;font-weight:600}.entry-time{font-feature-settings:"tnum";color:#9ca3af;font-size:.75em;font-variant-numeric:tabular-nums}.entry-text{color:#1f2937;font-size:.95em;line-height:1.5}.outline-panel{height:100%}.outline-header h4{color:#374151;font-size:1.05em;font-weight:600;margin:0 0 16px}.outline-list{display:flex;flex-direction:column;gap:8px}.outline-item{background:#fafafa;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:all .2s}.outline-item:hover{background:#f3f4f6;transform:translateX(4px)}.outline-bullet{color:#6366f1;font-size:1.2em;font-weight:700}.outline-content{flex:1 1}.outline-title{color:#1f2937;font-size:.9em;line-height:1.4;margin-bottom:2px}.outline-time{color:#9ca3af;font-size:.75em}.comments-panel{height:100%}.add-note-btn{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;margin-top:16px;padding:10px 20px;transition:all .2s}.add-note-btn:hover{background:#4f46e5;box-shadow:0 4px 12px #6366f14d;transform:translateY(-2px)}.panel-toggle{align-items:center;background:#fff;border:1px solid #f0f0f0;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #0000000d;color:#9ca3af;cursor:pointer;display:flex;font-size:.9em;height:64px;justify-content:center;left:-16px;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s;width:32px}.panel-toggle:hover{background:#f9fafb;color:#6366f1}.show-panel-btn{background:#fff;border:1px solid #f0f0f0;border-radius:8px 0 0 8px;border-right:none;box-shadow:-2px 0 8px #0000000d;color:#6b7280;cursor:pointer;font-size:.85em;letter-spacing:2px;padding:12px 8px;position:fixed;right:0;top:50%;transform:translateY(-50%);transition:all .2s;writing-mode:vertical-rl}.show-panel-btn:hover{background:#f9fafb;color:#6366f1;padding-right:12px}.bottom-status-bar{align-items:center;background:#fff;border-top:1px solid #f0f0f0;display:flex;font-size:.85em;justify-content:space-between;padding:12px 24px}.status-left{display:flex;gap:20px}.status-item{color:#6b7280;font-weight:500}.status-item-subtle{color:#9ca3af;font-size:.9em}.tab-content::-webkit-scrollbar{width:6px}.tab-content::-webkit-scrollbar-track{background:#0000}.tab-content::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:3px}.tab-content::-webkit-scrollbar-thumb:hover{background:#d1d5db}@media (max-width:1024px){.right-panel{bottom:0;box-shadow:-4px 0 20px #0000001a;position:fixed;right:0;top:0;z-index:50}.left-panel{padding:20px}}@media (max-width:768px){.right-panel{width:100%}.top-nav{padding:12px 16px}.nav-left{gap:12px}.app-name{display:none}.status-text-large{font-size:1.4em}}.control-button,.nav-btn,.tab-button{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif}.control-button:active{transform:scale(.98)}.nav-btn:active{transform:scale(.97)}.chat-message .message-text,.live-transcript-box,.outline-item,.transcript-entry{box-shadow:0 1px 3px #0000000d}
/*# sourceMappingURL=main.2b58dc44.css.map*/