:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: rgba(79, 70, 229, .08);--color-primary-glow: rgba(79, 70, 229, .15);--color-accent: #06b6d4;--color-accent-2: #22d3ee;--gradient-sonic: linear-gradient(135deg, #4f46e5 0%, #7c6cf0 45%, #06b6d4 100%);--gradient-wave: linear-gradient(180deg, var(--color-primary) 0%, var(--color-accent) 100%);--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-hover: #f1f5f9;--color-surface-active: #eef2ff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-text: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .06);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .08);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.6, .32, 1.6);--ease-out-back: cubic-bezier(.18, .89, .32, 1.28);--ease-soft: cubic-bezier(.45, 0, .55, 1);--ease-resonance: cubic-bezier(.16, 1, .3, 1);--ease-expo: cubic-bezier(.22, 1, .36, 1);--field-bg: #f4f6fe;--field-spot-indigo: rgba(99, 102, 241, .38);--field-spot-cyan: rgba(6, 182, 212, .34);--field-spot-violet: rgba(167, 139, 250, .34);--field-spot-sky: rgba(56, 189, 248, .3);--field-veil: rgba(247, 248, 255, .34);--gradient-sonic: linear-gradient(120deg, #4f46e5 0%, #6366f1 30%, #22d3ee 70%, #06b6d4 100%);--gradient-sonic-flow: linear-gradient(120deg, #4f46e5 0%, #6366f1 22%, #22d3ee 50%, #06b6d4 74%, #4f46e5 100%);--gradient-btn: linear-gradient(135deg, #4f46e5 0%, #5b54e8 45%, #7c3aed 100%);--glass-surface: rgba(255, 255, 255, .66);--glass-blur: 22px;--glass-edge: rgba(255, 255, 255, .7);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .9);--glass-hairline: rgba(99, 102, 241, .12);--shadow-soft: 0 24px 60px -20px rgba(48, 52, 120, .18);--shadow-float: 0 12px 32px -12px rgba(48, 52, 120, .22);--shadow-user-bubble: 0 10px 28px -8px rgba(79, 70, 229, .42);--ripple-color-user: #6366f1;--ripple-color-ai: #22d3ee;--ripple-color-ok: #34d399;--wave-stop-0: #4f46e5;--wave-stop-1: #6366f1;--wave-stop-2: #22d3ee;--wave-stop-3: #67e8f9;--dur-ripple: .72s;--dur-aurora: 24s}@property --angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--field-bg);color:var(--color-text);overflow:hidden}#root{height:100vh;overflow:hidden}.app-shell{height:100vh;overflow:hidden;background:transparent;position:relative;z-index:1}.app-header{height:56px;display:flex;align-items:center;padding:0 24px;background:var(--glass-surface);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.5);backdrop-filter:blur(var(--glass-blur)) saturate(1.5);color:var(--color-text);border-bottom:1px solid var(--glass-hairline);box-shadow:var(--glass-highlight);font-size:16px;font-weight:700;letter-spacing:-.01em;gap:10px;position:relative;z-index:5}.app-logo{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;transition:transform var(--transition-base) var(--ease-spring)}.app-logo:hover{transform:scale(1.1)}.app-brand{font-weight:800;margin-right:16px;background:var(--gradient-sonic-flow);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--color-primary);letter-spacing:-.01em;animation:brandFlow var(--dur-flow-brand, 8s) linear infinite}@keyframes brandFlow{to{background-position:220% center}}:root{--dur-flow-brand: 8s}.app-nav{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500}.app-nav a{position:relative;display:inline-flex;align-items:center;height:34px;color:var(--color-text-secondary);text-decoration:none;padding:0 14px;border-radius:var(--radius-full);line-height:1;transition:color var(--transition-base),background var(--transition-base),transform var(--transition-base) var(--ease-spring)}.app-nav a:hover{color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-1px)}.app-nav a.active{color:var(--color-primary);background:var(--color-primary-light)}.app-nav a.active:after{content:"";position:absolute;left:50%;bottom:4px;width:16px;height:2px;border-radius:var(--radius-full);background:var(--gradient-wave);transform:translate(-50%) scaleX(1);animation:navUnderline .36s var(--ease-out-back) both}@keyframes navUnderline{0%{transform:translate(-50%) scaleX(0)}to{transform:translate(-50%) scaleX(1)}}.app-sider{background:var(--glass-surface)!important;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-right:1px solid var(--glass-hairline);overflow:hidden;height:calc(100vh - 56px)}.app-main{height:calc(100vh - 56px);min-height:0;overflow:hidden;background:transparent!important}.app-content{padding:0;background:transparent!important;min-width:0;height:calc(100vh - 56px);overflow:hidden}.app-shell.ant-layout,.app-shell .ant-layout{background:transparent!important}.chat-page{background:transparent}.session-list{height:100%;display:flex;flex-direction:column;overflow:hidden}.session-list-header{padding:14px 16px 10px;flex-shrink:0}.session-create-btn{height:40px;border-radius:var(--radius-md)!important;font-weight:600;font-size:14px;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.session-create-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.session-list-items{flex:1;overflow-y:auto;padding:0 12px 12px;overscroll-behavior:contain}.session-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:8px;text-align:center}.session-list-empty .empty-icon{font-size:36px;color:var(--color-text-muted);margin-bottom:4px}.session-list-empty .empty-hint{font-size:12px}.session-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);margin-bottom:2px;-webkit-user-select:none;user-select:none}.session-item:hover{background:var(--color-surface-hover)}.session-item.active{background:var(--color-surface-active);box-shadow:inset 3px 0 0 var(--color-primary)}.session-item-content{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.session-item-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-muted);font-size:14px;transition:all var(--transition-fast)}.session-item.active .session-item-icon{background:var(--color-primary-light);color:var(--color-primary)}.session-item-text{min-width:0;display:flex;flex-direction:column;gap:2px}.session-item-title{font-size:13px;font-weight:500;color:var(--color-text);line-height:1.4}.session-item-date{font-size:11px}.classroom-history-item .session-item-content{align-items:flex-start}.classroom-history-meta{display:flex;align-items:center;gap:6px;margin-top:3px}.classroom-history-meta .ant-tag{margin-inline-end:0;font-size:11px;line-height:18px}.session-delete-btn{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.session-item:hover .session-delete-btn,.session-item.active .session-delete-btn{opacity:1}.chat-page{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.device-page{height:100%;overflow-y:auto;padding:24px;background:var(--color-bg)}.device-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.device-page-header h3{margin-bottom:4px!important}.device-alert{margin-bottom:16px}.device-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.device-row-active td{background:var(--color-surface-active)!important}.device-capability-panel{padding:12px 16px;border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border-light)}.device-capability-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.device-test-form,.device-test-form .ant-select,.device-test-form .ant-input{width:100%}.device-result-json{min-height:260px;max-height:420px;overflow:auto;padding:16px;border-radius:var(--radius-md);background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.6;white-space:pre-wrap}.chat-alert{margin:12px auto 0;width:min(800px,calc(100% - 32px));border-radius:var(--radius-md)!important}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px;overscroll-behavior:contain}.chat-messages{max-width:800px;margin:0 auto}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:60px 24px}.welcome-logo{width:72px;height:72px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-primary) 0%,#818cf8 100%);display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;margin-bottom:20px;box-shadow:0 8px 32px var(--color-primary-glow)}.welcome-title{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:8px;letter-spacing:-.02em}.welcome-subtitle{font-size:15px;color:var(--color-text-secondary);margin-bottom:28px}.welcome-suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.welcome-tag{cursor:pointer;padding:6px 16px;border-radius:var(--radius-full)!important;font-size:13px;border:1px solid var(--color-border);background:var(--color-surface)!important;transition:all var(--transition-fast)}.welcome-tag:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)!important}.empty-chat{min-height:48vh;display:grid;place-items:center}.message-row{display:flex;gap:12px;margin-bottom:20px;align-items:flex-start;animation:messageIn .46s var(--ease-out-back) both}@keyframes messageIn{0%{opacity:0;transform:translateY(14px) scale(.97)}60%{opacity:1}to{opacity:1;transform:translateY(0) scale(1)}}.message-row-user{flex-direction:row-reverse}.message-avatar{animation:avatarPop .52s var(--ease-bounce) both}@keyframes avatarPop{0%{transform:scale(0)}60%{transform:scale(1.12)}to{transform:scale(1)}}.message-avatar{flex:0 0 auto;box-shadow:var(--shadow-sm)}.message-avatar-user{background:linear-gradient(135deg,var(--color-primary) 0%,#818cf8 100%)!important}.message-avatar-assistant{background:linear-gradient(135deg,#1e293b,#475569)!important}.message-bubble{max-width:72%;padding:14px 18px;border-radius:var(--radius-lg);position:relative;overflow:hidden}.message-bubble-user{background:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.message-bubble-user .markdown-body code{background:#ffffff26;color:#fff}.message-bubble-user .markdown-body pre{background:#0003}.message-bubble-assistant{background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.markdown-body{font-size:14px;line-height:1.7;word-break:break-word}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{margin:0 0 8px;padding-inline-start:20px}.markdown-body li{margin-bottom:4px}.markdown-body code{padding:2px 6px;border-radius:4px;background:#0f172a0f;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px}.markdown-body pre{margin:8px 0;padding:14px 16px;border-radius:var(--radius-md);background:#1e293b;overflow-x:auto}.markdown-body pre code{background:none;padding:0;color:#e2e8f0;font-size:13px}.markdown-body blockquote{margin:8px 0;padding:8px 14px;border-left:3px solid var(--color-primary);background:var(--color-primary-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-secondary)}.markdown-body table{width:100%;border-collapse:collapse;margin:8px 0}.markdown-body th,.markdown-body td{padding:8px 12px;border:1px solid var(--color-border);text-align:left;font-size:13px}.markdown-body th{background:var(--color-bg);font-weight:600}.markdown-body a{color:var(--color-primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.image-ref-link{display:block;width:fit-content;max-width:min(100%,520px);margin:12px 0;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:all var(--transition-base);text-decoration:none!important}.image-ref-link:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.image-ref-img-root{display:block;width:100%;cursor:zoom-in}.image-ref-img{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:var(--radius-md);background:#f8fafc}.image-ref-caption{display:block;margin-top:6px;color:var(--color-text-muted);font-size:12px;text-align:center;word-break:break-all}.thinking-collapse{margin-bottom:10px;border-radius:var(--radius-sm)!important;background:var(--color-bg)!important;overflow:hidden}.thinking-collapse .ant-collapse-header{padding:8px 12px!important}.thinking-title{font-size:12px!important}.thinking-content{font-size:13px!important;line-height:1.6;white-space:pre-wrap;margin:0!important}.message-toolcalls{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}.message-timings{margin-top:10px;font-size:12px}.streaming-cursor{display:inline}.cursor-blink{animation:blink 1s step-end infinite;color:var(--color-text-muted)}@keyframes blink{50%{opacity:0}}.message-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px}.chat-composer{flex-shrink:0;padding:0 24px 20px}.composer-inner{max-width:800px;margin:0 auto;display:flex;gap:10px;align-items:flex-end;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:8px 12px;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.composer-inner:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.composer-input{flex:1;border:none!important;box-shadow:none!important;background:transparent!important;font-size:14px;line-height:1.6;resize:none;padding:4px 0!important}.composer-input:focus{box-shadow:none!important}.composer-send-btn{height:38px;border-radius:var(--radius-md)!important;font-weight:600;flex-shrink:0;transition:all var(--transition-base)}.composer-hint{max-width:800px;margin:8px auto 0;display:block;text-align:center;font-size:11px}.composer-asr-alert{max-width:800px;margin:0 auto 8px}.composer-mic-btn{height:38px;width:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-md)!important;color:var(--color-text-secondary);transition:all var(--transition-base)}.composer-mic-btn:not(:disabled):hover{color:var(--color-primary);background:var(--color-primary-glow)!important}.composer-mic-btn.is-recording{color:#ff4d4f!important;background:#ff4d4f1a!important;animation:micPulse 1.4s var(--ease-soft) infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #ff4d4f59}50%{box-shadow:0 0 0 6px #ff4d4f00}}.confirmation-modal .ant-modal-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0!important}.confirmation-body{padding:4px 0}.confirmation-message{margin-bottom:16px}.confirmation-details{background:var(--color-bg);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.confirmation-row{display:flex;justify-content:space-between;align-items:center}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ant-btn-primary{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-btn-primary:hover{background:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important}.ant-tag{border-radius:var(--radius-sm)}.ant-alert{border-radius:var(--radius-md)}.ant-popconfirm .ant-popconfirm-buttons .ant-btn-primary{box-shadow:none}.classroom-page{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.classroom-toolbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.classroom-title-group{display:flex;align-items:center;gap:12px;min-width:0}.classroom-title-group h4{margin:0 0 2px!important}.classroom-title-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-md);color:#fff;background:#2563eb;font-size:18px;flex-shrink:0}.classroom-title-input{width:180px}.classroom-alert{flex-shrink:0;margin:10px 20px 0}.classroom-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.2fr) minmax(300px,.9fr);gap:14px;padding:14px 20px 20px;overflow:hidden}.classroom-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.classroom-panel-header{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid var(--color-border-light)}.classroom-asr-inputs{flex-shrink:0;padding:14px;display:grid;grid-template-columns:1fr;gap:12px;border-bottom:1px solid var(--color-border-light)}.classroom-asr-input{display:grid;gap:8px}.classroom-asr-input-header{display:flex;align-items:center;gap:8px}.classroom-asr-input .ant-btn{justify-self:end}.classroom-replay-panel{display:grid;gap:10px;padding:12px;border:1px dashed #cbd5e1;border-radius:var(--radius-md);background:#f8fafc}.classroom-replay-header{display:grid;gap:6px}.classroom-replay-speed{width:96px}.classroom-replay-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.classroom-replay-alert{margin-top:0}.classroom-transcript-list,.classroom-live-summary-body,.classroom-cumulative-body{flex:1;min-height:0;overflow-y:auto;padding:14px}.classroom-transcript-row{padding:12px;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg);margin-bottom:10px}.classroom-transcript-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.classroom-transcript-row .ant-typography{margin:0;line-height:1.65}.classroom-timeline-item{padding:4px 0 12px}.classroom-timeline-item-enter{animation:classroomSummaryIn .26s ease-out}@keyframes classroomSummaryIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.classroom-timeline-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px}.classroom-summary-block{padding:12px;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg)}.classroom-narrative-block{padding:12px 14px;border-left:3px solid #2563eb;border-radius:var(--radius-sm);background:#f8fafc}.classroom-narrative-text{margin:8px 0 0!important;line-height:1.75;color:var(--color-text)}.classroom-narrative-items{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border-light)}.classroom-narrative-item{display:grid;grid-template-columns:48px 1fr;gap:8px;line-height:1.6;font-size:13px}.classroom-draft-summary{padding:12px 14px;border:1px dashed #cbd5e1;border-radius:var(--radius-sm);background:#fff}.classroom-draft-summary-pending{min-height:86px}.classroom-draft-placeholder{margin:8px 0 0!important;line-height:1.75;color:var(--color-text-secondary)}.classroom-compact-item{padding:12px 14px;border-radius:var(--radius-sm);background:#f0fdf4;border:1px solid #bbf7d0}.classroom-compact-item .ant-typography{margin:0!important;line-height:1.7}.classroom-topic-card-list{display:grid;gap:12px}.classroom-topic-card-wrap{display:grid;gap:6px}.classroom-topic-card-wrap-new{padding-top:4px;border-top:2px solid #bfdbfe}.classroom-topic-card-wrap-updating .classroom-topic-card{opacity:.58;filter:grayscale(.35);transition:opacity var(--transition-base),filter var(--transition-base)}.classroom-topic-card-meta{display:flex;align-items:center;gap:8px;padding:0 2px}.classroom-topic-card{padding:14px 16px 10px;border-left:3px solid #2563eb;border-radius:var(--radius-sm);background:#f8fafc}.classroom-topic-card h5{margin:0 0 8px!important;font-size:15px}.classroom-topic-brief{margin:0 0 8px!important;line-height:1.65;color:var(--color-text)}.classroom-raw-collapse{margin-top:4px;border-top:1px solid var(--color-border-light)}.classroom-raw-collapse .ant-collapse-header{padding:7px 0 3px!important;color:var(--color-text-secondary)!important;font-size:12px}.classroom-raw-collapse .ant-collapse-content-box{padding:6px 0 0!important}.classroom-raw-items{display:grid;gap:8px}.classroom-raw-item{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;column-gap:8px;padding:8px 10px;border:1px solid #e8eef7;border-radius:var(--radius-sm);background:#ffffffb8;font-size:13px;line-height:1.6}.classroom-raw-meta{display:flex;flex-direction:column;align-items:center;gap:1px;width:42px}.classroom-raw-time{font-variant-numeric:tabular-nums;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:11px;line-height:14px;white-space:nowrap}.classroom-raw-source{width:40px;margin-inline-end:0!important;text-align:center;line-height:19px}.classroom-raw-text{min-width:0;color:var(--color-text);word-break:break-word}.classroom-summary-brief{margin:8px 0 10px!important;line-height:1.7}.classroom-summary-section{margin-top:10px}.classroom-summary-section ul{margin:6px 0 0;padding-left:18px}.classroom-summary-section li{margin-bottom:4px;line-height:1.55}.classroom-qa-list{display:grid;gap:8px;margin-top:8px}.classroom-qa-item{padding:10px 12px;border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border)}.classroom-qa-question,.classroom-qa-answer{margin-bottom:4px!important;line-height:1.6}.classroom-qa-answer{margin-bottom:0!important}.classroom-current-topic{padding:14px;border-radius:var(--radius-md);background:#eff6ff;border:1px solid #bfdbfe;margin-bottom:14px}.classroom-current-topic h5{margin:4px 0 0!important}.classroom-final-summary{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.classroom-final-minutes{margin-top:10px;padding:12px;border-radius:var(--radius-md);background:var(--color-bg);white-space:pre-wrap;line-height:1.7}@media (max-width: 1180px){.classroom-page{overflow-y:auto}.classroom-toolbar{align-items:flex-start;flex-direction:column}.classroom-workspace{overflow:visible;grid-template-columns:1fr}.classroom-panel{min-height:420px}}.app-loading{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.app-user{margin-left:auto;display:flex;align-items:center;gap:4px}.app-sound-btn{position:relative}.app-user-btn{font-weight:600;color:var(--color-text-secondary)}.app-user-btn:hover{color:var(--color-primary)!important;background:var(--color-primary-light)!important}.auth-page{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#f8fafc 60%);padding:24px}.auth-card{width:100%;max-width:400px;box-shadow:var(--shadow-xl);border-radius:var(--radius-lg);padding:8px 12px 4px}.auth-brand{font-size:18px;font-weight:700;color:var(--color-primary);margin-bottom:18px}.auth-title{margin-bottom:2px!important}.auth-subtitle{display:block;margin-bottom:20px}.auth-alert{margin-bottom:16px}.auth-form{margin-top:8px}.auth-hint{display:block;text-align:center;margin-top:4px}.admin-page{height:calc(100vh - 56px);overflow:auto;padding:24px}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.sound-wave{display:inline-flex;align-items:center;justify-content:center}.sound-wave-bar{display:block;height:100%;border-radius:var(--radius-full);background:var(--gradient-wave);transform:scaleY(.45);transform-origin:center;will-change:transform}.sound-wave.is-active .sound-wave-bar{animation-name:swPulse;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:var(--ease-soft)}.sound-wave.is-idle .sound-wave-bar{transform:scaleY(calc(var(--peak, 1) * .5));transition:transform var(--transition-slow) var(--ease-spring)}.sound-wave.is-idle:hover .sound-wave-bar{transform:scaleY(var(--peak, 1))}@keyframes swPulse{0%{transform:scaleY(calc(var(--peak, 1) * .22))}to{transform:scaleY(var(--peak, 1))}}.app-sound-btn{color:var(--color-text-secondary);transition:color var(--transition-base),transform var(--transition-base) var(--ease-spring)}.app-sound-btn:hover{color:var(--color-primary)!important;transform:scale(1.12)}.app-sound-btn.is-on{color:var(--color-primary)}.app-sound-btn.is-on:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-full);border:1.5px solid var(--color-primary);opacity:0;animation:soundRipple 2.4s var(--ease-soft) infinite;pointer-events:none}@keyframes soundRipple{0%{transform:scale(.6);opacity:.5}to{transform:scale(1.8);opacity:0}}.chat-scroll{position:relative;background:radial-gradient(60% 50% at 12% 0%,rgba(79,70,229,.05) 0%,transparent 60%),radial-gradient(50% 45% at 95% 12%,rgba(6,182,212,.05) 0%,transparent 60%)}.chat-scroll:before{content:"";position:fixed;z-index:0;top:18%;right:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(6,182,212,.12),transparent 70%);filter:blur(20px);pointer-events:none;animation:auroraFloat 16s var(--ease-soft) infinite alternate}@keyframes auroraFloat{0%{transform:translate(0) scale(1)}50%{transform:translate(-40px,30px) scale(1.15)}to{transform:translate(20px,-20px) scale(.95)}}.chat-messages,.welcome-screen{position:relative;z-index:1}.welcome-logo{position:relative;overflow:visible;background:var(--gradient-sonic);animation:welcomeLogoIn .7s var(--ease-bounce) both}@keyframes welcomeLogoIn{0%{transform:scale(0) rotate(-25deg);opacity:0}60%{transform:scale(1.15) rotate(6deg);opacity:1}to{transform:scale(1) rotate(0)}}.welcome-logo .sound-wave-bar{background:#fffffff5}.welcome-logo:before,.welcome-logo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:2px solid var(--color-primary);opacity:0;animation:welcomeRipple 3s var(--ease-soft) infinite;pointer-events:none}.welcome-logo:after{animation-delay:1.5s;border-color:var(--color-accent)}@keyframes welcomeRipple{0%{transform:scale(1);opacity:.55}to{transform:scale(2.2);opacity:0}}.welcome-title{animation:fadeUp .6s var(--ease-out-back) .12s both}.welcome-subtitle{animation:fadeUp .6s var(--ease-out-back) .22s both}.welcome-suggestions{animation:fadeUp .6s var(--ease-out-back) .32s both}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.welcome-tag{animation:tagPop .5s var(--ease-out-back) both;animation-delay:calc(.38s + var(--i, 0) * 80ms)}@keyframes tagPop{0%{opacity:0;transform:scale(.8) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.welcome-tag:hover{transform:translateY(-2px) scale(1.04);border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)!important;box-shadow:0 6px 16px var(--color-primary-glow)}.streaming-wave{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:13px}.streaming-wave .sound-wave-bar{background:var(--gradient-wave)}.thinking-wave{display:inline-flex;vertical-align:middle}.thinking-wave .sound-wave-bar{background:var(--gradient-wave)}.composer-send-btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 18px var(--color-primary-glow)}.composer-send-btn:not(:disabled):active{transform:translateY(0) scale(.96)}.composer-inner:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);animation:composerPulse 2.6s var(--ease-soft) infinite}@keyframes composerPulse{0%,to{box-shadow:0 0 0 3px var(--color-primary-glow)}50%{box-shadow:0 0 0 5px #06b6d41f}}.session-item{transition:background var(--transition-fast),transform var(--transition-base) var(--ease-spring),box-shadow var(--transition-base)}.session-item:hover{transform:translate(3px)}.session-create-btn:hover{transform:translateY(-1px) scale(1.01)}.auth-page{position:relative;overflow:hidden;background:linear-gradient(135deg,#eef2ff,#f8fafc 55%,#ecfeff)}.auth-page:before,.auth-page:after{content:"";position:absolute;border-radius:50%;filter:blur(40px);pointer-events:none;z-index:0}.auth-page:before{width:480px;height:480px;top:-160px;left:-120px;background:radial-gradient(circle,rgba(79,70,229,.18),transparent 70%);animation:auroraFloat 18s var(--ease-soft) infinite alternate}.auth-page:after{width:420px;height:420px;bottom:-160px;right:-120px;background:radial-gradient(circle,rgba(6,182,212,.18),transparent 70%);animation:auroraFloat 22s var(--ease-soft) infinite alternate-reverse}.auth-card{position:relative;z-index:1;animation:authCardIn .7s var(--ease-out-back) both;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes authCardIn{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-logo{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--gradient-sonic);display:grid;place-items:center;margin:0 auto 16px;box-shadow:0 8px 24px var(--color-primary-glow);position:relative;overflow:hidden}.auth-logo .sound-wave-bar{background:#fffffff5}.auth-brand{text-align:center;background:var(--gradient-sonic);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-title,.auth-subtitle{text-align:center}.ant-btn-primary{background:var(--gradient-btn)!important;border:none!important;color:#fff!important;transition:transform var(--transition-base) var(--ease-spring),box-shadow var(--transition-base),filter var(--transition-base)!important}.ant-btn-primary:hover{filter:brightness(1.05);box-shadow:0 6px 16px #4f46e547!important}.ant-btn-primary:active{transform:scale(.97)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.sound-wave.is-active .sound-wave-bar{transform:scaleY(calc(var(--peak, 1) * .6))}}.aurora-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--field-bg)}.aurora-spot{position:absolute;border-radius:50%;filter:blur(72px);will-change:transform}.aurora-spot-1{width:48vw;height:48vw;top:-14vw;left:-8vw;background:radial-gradient(circle,var(--field-spot-indigo),transparent 68%);animation:auroraDrift1 24s var(--ease-soft) infinite alternate}.aurora-spot-2{width:42vw;height:42vw;top:-8vw;right:-10vw;background:radial-gradient(circle,var(--field-spot-cyan),transparent 68%);animation:auroraDrift2 28s var(--ease-soft) infinite alternate}.aurora-spot-3{width:52vw;height:52vw;bottom:-18vw;right:-8vw;background:radial-gradient(circle,var(--field-spot-violet),transparent 68%);animation:auroraDrift3 22s var(--ease-soft) infinite alternate}.aurora-spot-4{width:40vw;height:40vw;bottom:-12vw;left:-10vw;background:radial-gradient(circle,var(--field-spot-sky),transparent 68%);animation:auroraDrift4 26s var(--ease-soft) infinite alternate}@keyframes auroraDrift1{0%{transform:translate(0) scale(1)}to{transform:translate(7vw,5vw) scale(1.18)}}@keyframes auroraDrift2{0%{transform:translate(0) scale(1.1)}to{transform:translate(-6vw,7vw) scale(.92)}}@keyframes auroraDrift3{0%{transform:translate(0) scale(1)}to{transform:translate(-7vw,-5vw) scale(1.2)}}@keyframes auroraDrift4{0%{transform:translate(0) scale(1.05)}to{transform:translate(6vw,-6vw) scale(.95)}}.aurora-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--field-veil)}.aurora-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ripple-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none}.resonance-ripple{position:absolute;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:conic-gradient(from 0deg,var(--ripple-color-user),var(--ripple-color-ai),#a855f7,var(--ripple-color-user));-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(closest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));animation:rippleOut var(--dur-ripple) var(--ease-resonance) forwards;will-change:transform,opacity}.resonance-ripple-ai{background:conic-gradient(from 0deg,var(--ripple-color-ai),#67e8f9,var(--ripple-color-user),var(--ripple-color-ai))}.resonance-ripple-ok{background:conic-gradient(from 0deg,var(--ripple-color-ok),#6ee7b7,var(--ripple-color-ai),var(--ripple-color-ok))}@keyframes rippleOut{0%{transform:scale(.32);opacity:.5}to{transform:scale(3.6);opacity:0}}.resonant-core{display:block;overflow:visible}.resonant-core .rc-ring,.resonant-core .rc-sonar,.resonant-core .rc-core{transform-box:fill-box;transform-origin:center}.resonant-core .rc-ring-outer{opacity:.5;animation:rcBreath 4.6s var(--ease-soft) infinite}.resonant-core .rc-ring-inner{opacity:.78;animation:rcBreath 4.6s var(--ease-soft) infinite reverse}@keyframes rcBreath{0%,to{transform:scale(.95)}50%{transform:scale(1.06)}}.resonant-core .rc-sonar{opacity:0;vector-effect:non-scaling-stroke;animation:rcSonar 3.6s var(--ease-resonance) infinite}.resonant-core .rc-sonar-2{animation-delay:1.8s}@keyframes rcSonar{0%{transform:scale(.5);opacity:.7}70%{opacity:0}to{transform:scale(2);opacity:0}}.resonant-core .rc-core{animation:rcCorePulse 2.6s var(--ease-soft) infinite}.resonant-core .rc-core-glow{opacity:.55}@keyframes rcCorePulse{0%,to{transform:scale(1)}50%{transform:scale(1.13)}}.resonant-core.is-intense .rc-sonar{animation-duration:3s}.resonant-core.is-intense .rc-core{animation-duration:2s}.app-logo:hover .rc-ring-outer{animation-play-state:paused}.sonic-orb{display:block;filter:drop-shadow(0 0 26px rgba(99,102,241,.28))}.sonic-wave-indicator{display:inline-flex;align-items:center;gap:11px}.sonic-wave-label{font-size:13px;color:var(--color-text-muted);letter-spacing:.02em}.wave-signature{display:block}.wave-signature-mini{opacity:.5;transition:opacity var(--transition-base)}.session-item.active .wave-signature-mini,.session-item:hover .wave-signature-mini{opacity:.9}.chat-scroll{background-color:transparent;background-image:repeating-linear-gradient(0deg,rgba(99,102,241,.03) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,rgba(99,102,241,.03) 0 1px,transparent 1px 28px)}.chat-scroll:before{display:none!important}.message-bubble-user{background:var(--gradient-btn)!important;border-bottom-right-radius:var(--radius-sm);box-shadow:var(--shadow-user-bubble)}.message-bubble-user .markdown-body{color:#fff}.message-bubble-assistant{position:relative;background:#fffffff5;border:1px solid rgba(99,102,241,.1);border-bottom-left-radius:var(--radius-sm);box-shadow:var(--shadow-float);padding-left:20px}.message-bubble-assistant:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2.5px;border-radius:var(--radius-full);background:var(--gradient-btn);opacity:.8}@keyframes messageIn{0%{opacity:0;transform:translateY(12px) scale(.98);filter:blur(6px)}60%{opacity:1}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.ai-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(120deg,#4f46e5,#6366f1 28%,#7c3aed 58%,#5b54e8 82%,#4f46e5);background-size:220% auto;animation:brandFlow 7s linear infinite;box-shadow:0 3px 10px #4f46e540;position:relative}.ai-avatar .sound-wave-bar{background:#fffffff2}.ai-avatar .sound-wave.is-idle .sound-wave-bar{transform:scaleY(calc(var(--peak, 1) * .85))}.ai-avatar.is-speaking:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:1.5px solid rgba(99,102,241,.55);opacity:0;animation:beadPulse 1.8s var(--ease-soft) infinite}@keyframes beadPulse{0%{transform:scale(.9);opacity:.5}to{transform:scale(1.45);opacity:0}}.composer-inner{background:var(--glass-surface);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-edge);border-radius:22px;box-shadow:var(--shadow-float),var(--glass-highlight);padding:10px 12px 10px 18px}.composer-inner:focus-within{border-color:transparent;box-shadow:0 0 0 1.5px #6366f180,0 0 0 6px #6366f11a,var(--shadow-float);animation:none}.composer-send-btn{border-radius:var(--radius-full)!important;padding-inline:20px}.composer-hint{color:var(--color-text-muted)}.welcome-screen{min-height:58vh;gap:2px}.welcome-orb{margin-bottom:8px;animation:orbIn .9s var(--ease-expo) both}@keyframes orbIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.welcome-title{font-size:clamp(32px,4.5vw,48px);line-height:1.14;font-weight:800;background:var(--gradient-sonic-flow);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--color-primary);animation:welcomeTitleIn .7s var(--ease-expo) both,brandFlow 9s linear infinite}@keyframes welcomeTitleIn{0%{opacity:0;transform:translateY(12px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.welcome-subtitle{font-size:16px;margin-top:4px}.welcome-tag{background:var(--glass-surface)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-edge);padding:8px 18px;font-size:13.5px;box-shadow:var(--shadow-sm)}.welcome-tag:hover{transform:translateY(-3px) scale(1.05);border-color:var(--color-primary);box-shadow:0 10px 24px var(--color-primary-glow)}.session-item{position:relative}.session-item:before{content:"";position:absolute;left:4px;top:50%;width:3px;height:0;border-radius:var(--radius-full);background:var(--gradient-wave);transform:translateY(-50%);transition:height var(--transition-base) var(--ease-expo)}.session-item:hover:before{height:40%}.session-item.active:before{height:64%}.session-item.active{background:var(--color-surface-active);box-shadow:none}.session-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:3px}.session-item-date{flex-shrink:0}.session-item-signature{margin:0;flex-shrink:0;pointer-events:none}.session-create-btn{background:var(--gradient-btn)!important;border:none!important}.sonic-bars{display:block;filter:drop-shadow(0 6px 16px rgba(79,70,229,.18))}.auth-page{background:transparent!important}.auth-page:before,.auth-page:after{display:none!important}.auth-card{background:var(--glass-surface)!important;-webkit-backdrop-filter:blur(26px) saturate(1.5);backdrop-filter:blur(26px) saturate(1.5);border:1px solid var(--glass-edge)!important;box-shadow:var(--shadow-soft),var(--glass-highlight)}.auth-logo{width:auto;height:auto;background:none;box-shadow:none;display:grid;place-items:center;overflow:visible}@media (prefers-reduced-motion: reduce){.aurora-spot,.resonant-core .rc-ring,.resonant-core .rc-sonar,.resonant-core .rc-core,.app-brand,.welcome-title,.welcome-title .ch{animation:none!important}.resonance-ripple{animation:rippleFade .2s linear forwards}@keyframes rippleFade{0%{opacity:.4}to{opacity:0}}}
