@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-tertiary:#1a1a2e;--bg-card:#1a1a2eb3;--bg-card-hover:#1a1a2ee6;--bg-glass:#ffffff0a;--bg-glass-border:#ffffff14;--text-primary:#f0f0f5;--text-secondary:#a0a0b8;--text-muted:#6b6b80;--accent-primary:#6c63ff;--accent-primary-glow:#6c63ff4d;--accent-secondary:#00d4aa;--badge-local-bg:#00d4aa26;--badge-local-text:#00d4aa;--badge-local-border:#00d4aa4d;--badge-web-bg:#ffb74d26;--badge-web-text:#ffb74d;--badge-web-border:#ffb74d4d;--status-thinking:#6c63ff;--status-searching:#ffb74d;--status-streaming:#00d4aa;--status-done:#4caf50;--status-error:#ff5252;--red-recording:#f44;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--accent-primary-glow);--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(60% 40% at 50% 0,#6c63ff14 0%,#0000 60%),radial-gradient(40% 30% at 80% 80%,#00d4aa0d 0%,#0000 50%);position:fixed;inset:0}.session-container{z-index:1;flex-direction:column;max-width:100%;min-height:100dvh;margin:0 auto;padding:0 16px;display:flex;position:relative}.session-header{border-bottom:1px solid var(--bg-glass-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 0;display:flex}.header-left{align-items:baseline;gap:12px;display:flex}.speaker-name{color:var(--text-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.event-name{color:var(--text-muted);background:var(--bg-glass);border:1px solid var(--bg-glass-border);border-radius:100px;padding:2px 10px;font-size:.85rem;font-weight:400}.header-right{align-items:center;display:flex}.status-bar{background:var(--bg-glass);border:1px solid var(--bg-glass-border);transition:all var(--transition-normal);border-radius:100px;justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;font-size:.78rem;display:flex}.status-bar.status-thinking{background:#6c63ff14;border-color:#6c63ff4d}.status-bar.status-searching{background:#ffb74d14;border-color:#ffb74d4d}.status-bar.status-streaming{background:#00d4aa14;border-color:#00d4aa4d}.status-bar.status-done{background:#4caf5014;border-color:#4caf504d}.status-bar.status-error{background:#ff525214;border-color:#ff52524d}.status-left{align-items:center;gap:8px;display:flex}.status-right{align-items:center;display:flex}.connection-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.connection-dot.connected{background:var(--status-done);box-shadow:0 0 6px #4caf5080}.connection-dot.disconnected{background:var(--status-error);animation:1.5s infinite pulse-dot;box-shadow:0 0 6px #ff525280}.status-text{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;display:flex}.status-spinner{border:2px solid var(--bg-glass-border);border-top-color:var(--accent-primary);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.status-searching .status-spinner{border-top-color:var(--status-searching)}.fallback-notice{color:var(--text-muted);font-size:.7rem}.recording-indicator{color:var(--red-recording);letter-spacing:.05em;align-items:center;gap:4px;font-size:.7rem;font-weight:600;display:flex}.recording-dot{background:var(--red-recording);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse-dot}.input-section{flex-shrink:0;padding:16px 0}.question-input-wrapper{flex-direction:column;gap:8px;display:flex}.question-input-container{background:var(--bg-card);border:1px solid var(--bg-glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:8px;padding:6px 6px 6px 16px;display:flex}.question-input-container:focus-within{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.question-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:inherit;font-size:1rem}.question-input::placeholder{color:var(--text-muted)}.submit-btn,.mic-btn{border-radius:var(--radius-md);cursor:pointer;width:40px;height:40px;transition:all var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.submit-btn{background:var(--accent-primary);color:#fff}.submit-btn:hover:not(:disabled){background:#7b73ff;transform:scale(1.05)}.submit-btn:disabled{opacity:.3;cursor:not-allowed}.mic-btn{background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--bg-glass-border)}.mic-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-muted)}.mic-btn.recording{color:var(--red-recording);background:#ff444426;border-color:#f446;animation:1.5s ease-in-out infinite pulse-recording}.mic-recording-indicator{justify-content:center;align-items:center;display:flex;position:relative}.pulse-ring{border:2px solid var(--red-recording);border-radius:50%;width:30px;height:30px;animation:1.5s ease-out infinite pulse-ring-anim;position:absolute}.transcript-preview{background:var(--bg-glass);border-radius:var(--radius-md);color:var(--text-secondary);border:1px solid var(--bg-glass-border);align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-style:italic;display:flex}.transcript-dot{background:var(--red-recording);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1s infinite pulse-dot}.response-area{flex-direction:column;flex:1;gap:12px;padding-bottom:32px;display:flex}.bullets-card{background:var(--bg-card);border:1px solid var(--bg-glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-md);animation:slide-up .3s var(--transition-slow);min-height:45vh;padding:24px}.bullets-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.bullets-title{color:var(--accent-secondary);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;font-weight:700}.streaming-dot{background:var(--accent-secondary);border-radius:50%;width:8px;height:8px;animation:.8s infinite pulse-dot;display:inline-block}.bullets-content{flex-direction:column;gap:12px;display:flex}.bullet-line{color:var(--text-primary);padding:4px 0;font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:16px;font-weight:500;line-height:1.7;animation:.2s fade-in}.card-idle-text{color:var(--text-muted);font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:14px;font-style:italic}.bullets-skeleton,.answer-skeleton{flex-direction:column;gap:12px;display:flex}.skeleton-line{background:linear-gradient(90deg, var(--bg-glass) 0%, var(--bg-glass-border) 50%, var(--bg-glass) 100%);border-radius:var(--radius-sm);background-size:200% 100%;width:100%;height:20px;animation:1.5s infinite shimmer}.skeleton-line.short{width:60%}.source-badges-container{flex-wrap:wrap;gap:8px;padding:0 4px;animation:.4s fade-in;display:flex}.source-badge{transition:transform var(--transition-fast);border:1px solid;border-radius:100px;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;font-weight:500;display:inline-flex}.source-badge:hover{transform:scale(1.03)}.badge-local{background:var(--badge-local-bg);color:var(--badge-local-text);border-color:var(--badge-local-border)}.badge-web{background:var(--badge-web-bg);color:var(--badge-web-text);border-color:var(--badge-web-border)}.badge-icon{font-size:.85rem;line-height:1}.badge-name{white-space:nowrap}.full-answer-card{background:var(--bg-card);border:1px solid var(--bg-glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sm);animation:slide-up .3s var(--transition-slow);min-height:45vh;overflow:hidden}.full-answer-header{width:100%;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;padding:16px 24px;font-family:inherit;display:flex}.full-answer-header:hover{background:var(--bg-glass)}.full-answer-title{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;font-weight:700}.full-answer-toggle-icon{align-items:center;gap:8px;display:flex}.chevron{transition:transform var(--transition-normal);color:var(--text-muted)}.chevron.open{transform:rotate(180deg)}.full-answer-content{color:var(--text-secondary);padding:0 24px 24px;font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:16px;line-height:1.8}.full-answer-content p{margin-bottom:14px}.full-answer-header-static{align-items:center;gap:10px;width:100%;margin-bottom:12px;padding:16px 24px 0;display:flex}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:80px 20px;display:flex}.empty-icon{margin-bottom:16px;font-size:3.5rem;animation:3s ease-in-out infinite float}.empty-text{color:var(--text-muted);max-width:300px;font-size:1rem;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}@keyframes pulse-recording{0%,to{box-shadow:0 0 #ff44444d}50%{box-shadow:0 0 0 8px #f440}}@keyframes pulse-ring-anim{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-glass-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (min-width:768px){.session-container{padding:0 24px}.session-header{padding:20px 0}.bullets-card{padding:32px}.full-answer-content{font-size:1.05rem}}@media (min-width:1024px){.session-container{max-width:100%;padding:0 40px}.speaker-name{font-size:1.4rem}}@media (max-width:480px){.session-header{flex-direction:column;align-items:flex-start;gap:8px}.header-right,.status-bar{width:100%}.bullets-card{border-radius:var(--radius-lg);padding:16px}.full-answer-header-static{padding:12px 16px 0}.full-answer-content{padding:0 16px 16px}}.admin-layout-wrapper{background-color:var(--bg-primary);color:var(--text-primary);min-height:100dvh;font-family:inherit;display:flex;overflow:hidden}.sidebar-container{border-right:1px solid var(--bg-glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;background-color:#0a0a0df2;flex-direction:column;height:100vh;transition:width .3s;display:flex}.sidebar-wide{width:256px}.sidebar-collapsed{width:80px}.sidebar-header{border-bottom:1px solid var(--bg-glass-border);justify-content:space-between;align-items:center;padding:24px;display:flex}.sidebar-title{background:linear-gradient(90deg,#60a5fa,#818cf8);color:#0000;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.sidebar-toggle-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;transition:all .2s}.sidebar-toggle-btn:hover{color:#fff;background:#ffffff0f}.sidebar-collapsed .sidebar-toggle-btn{margin:0 auto}.sidebar-nav{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex}.nav-link{color:#9ca3af;border:1px solid #0000;border-radius:12px;align-items:center;gap:16px;padding:12px 16px;text-decoration:none;transition:all .2s;display:flex}.nav-link:hover{color:#e5e7eb;background:#ffffff0a}.nav-link.active{color:#60a5fa;background:#3b82f61a;border-color:#3b82f633}.sidebar-collapsed .nav-link{justify-content:center}.nav-text{white-space:nowrap;font-weight:500}.sidebar-footer{text-align:center;color:#6b7280;border-top:1px solid var(--bg-glass-border);padding:16px;font-size:.75rem}.admin-main-content{flex:1;height:100vh;position:relative;overflow-y:auto}.admin-page-container{flex-direction:column;gap:24px;max-width:100%;margin:0 auto;padding:32px;display:flex}.admin-page-header{justify-content:space-between;align-items:center;display:flex}.admin-page-title{color:#fff;align-items:center;gap:12px;margin-bottom:8px;font-size:1.875rem;font-weight:700;display:flex}.admin-page-subtitle{color:#9ca3af}.admin-btn-primary{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 24px;font-weight:500;transition:all .2s;display:flex}.admin-btn-primary:hover:not(:disabled){background-color:#3b82f6}.admin-btn-primary:disabled{opacity:.5;cursor:not-allowed}.admin-btn-secondary{color:#d1d5db;cursor:pointer;background-color:#ffffff0f;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;transition:background .2s;display:flex}.admin-btn-secondary:hover{background-color:#ffffff1a}.admin-card{border:1px solid var(--bg-glass-border);background-color:#1a1a24;border-radius:16px;flex-direction:column;gap:24px;padding:24px;display:flex}.admin-card-header{color:#fff;font-size:1.25rem;font-weight:600}.admin-form-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.admin-form-group{flex-direction:column;gap:8px;display:flex}.admin-label{color:#d1d5db;justify-content:space-between;align-items:center;font-size:.875rem;font-weight:500;display:flex}.admin-input{color:#fff;background-color:#0a0a0d;border:1px solid #ffffff1a;border-radius:8px;outline:none;padding:12px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s}.admin-input:focus{border-color:#3b82f6}.admin-textarea{color:#e5e7eb;resize:vertical;background-color:#0a0a0d;border:1px solid #ffffff1a;border-radius:12px;outline:none;min-height:300px;padding:16px 20px;font-family:monospace;font-size:.875rem;transition:border-color .2s}.admin-textarea:focus{border-color:#3b82f6}.admin-toggle-group{border:1px solid var(--bg-glass-border);background-color:#0a0a0d;border-radius:8px;padding:4px;display:flex}.admin-toggle-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:.75rem;font-weight:500;transition:all .2s}.admin-toggle-btn.active{color:#fff;background-color:#2563eb}.markdown-preview{color:#e5e7eb;background-color:#0a0a0d;border:1px solid #ffffff1a;border-radius:12px;min-height:300px;max-height:400px;padding:20px;overflow-y:auto}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{color:#fff;margin-top:24px;margin-bottom:12px}.markdown-preview h1{font-size:1.5rem}.markdown-preview h2{font-size:1.25rem}.markdown-preview ul,.markdown-preview ol{margin-bottom:16px;padding-left:24px}.markdown-preview p{margin-bottom:16px}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.admin-grid-item{border:1px solid var(--bg-glass-border);background-color:#0a0a0d;border-radius:12px;flex-direction:column;gap:4px;padding:16px;transition:border-color .2s;display:flex}.admin-grid-item:hover{border-color:#ffffff26}.item-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.item-title{color:#e5e7eb;font-weight:500;line-height:1.2}.badge{text-transform:uppercase;border-radius:9999px;padding:2px 8px;font-size:.625rem;font-weight:700}.badge-active{color:#4ade80;background-color:#22c55e33}.badge-danger{color:#f87171;background-color:#ef444433}.item-desc{color:#9ca3af;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:8px;font-size:.875rem;display:-webkit-box;overflow:hidden}.item-footer{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-top:1px solid #ffffff0d;margin-top:8px;padding-top:8px;font-size:.625rem;font-weight:700}.item-action-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s}.item-action-btn:hover{color:#f87171}.admin-empty-state{border:1px solid var(--bg-glass-border);text-align:center;color:#6b7280;background-color:#1a1a24;border-radius:16px;padding:48px 32px}.admin-empty-icon{opacity:.2;margin:0 auto 16px;display:block}
