:root{--bg:#0d1117;--surface:#161b22;--surface-hover:#1c2128;--surface-active:#2d333b;--border:#30363d;--text:#e6edf3;--text-muted:#8b949e;--text-dim:#6e7681;--accent:#58a6ff;--accent-green:#3fb950;--accent-orange:#d29922;--accent-red:#f85149;--accent-purple:#bc8cff;--accent-pink:#f778ba;--header-h:48px;--sidebar-w:240px;--thread-w:360px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);height:100vh;font-family:-apple-system,Apple SD Gothic Neo,Segoe UI,sans-serif;overflow:hidden}#root{height:100vh}.login-screen{background:linear-gradient(135deg,#1a0f2e 0%,#0d1117 50%,#0c2233 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-box{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:360px;padding:40px}.login-logo{background:linear-gradient(135deg, var(--accent), var(--accent-purple));width:56px;height:56px;color:var(--bg);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 16px;font-size:24px;font-weight:800;display:flex}.login-box h2{margin-bottom:4px;font-size:20px}.login-box p{color:var(--text-muted);margin-bottom:24px;font-size:13px}.login-input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:12px;padding:10px 14px;font-family:inherit;font-size:14px}.login-input:focus{border-color:var(--accent)}.login-btn{background:var(--accent);width:100%;color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:10px;font-size:14px;font-weight:700}.login-btn:hover{background:#4493f8}.app{height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{height:var(--header-h);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:0 16px;display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--accent), var(--accent-purple));width:28px;height:28px;color:var(--bg);border-radius:6px;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.sidebar-title{font-size:15px;font-weight:700}.sidebar-section{margin-top:4px;padding:8px 8px 4px}.sidebar-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);padding:0 8px 4px;font-size:11px;font-weight:600}.sidebar-item{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:14px;transition:all .15s;display:flex}.sidebar-item:hover{background:var(--surface-hover);color:var(--text)}.sidebar-item.active{background:var(--surface-active);color:var(--text)}.sidebar-item .icon{text-align:center;width:20px;font-size:16px}.status-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px;margin-left:auto}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding:8px}.sidebar-version{text-align:center;color:var(--text-dim);padding:4px 0 2px;font-size:10px}.user-chip{border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar-sm{width:24px;height:24px;font-size:10px}.avatar-md{width:32px;height:32px;font-size:13px}.avatar-lg{width:40px;height:40px;font-size:15px}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.main-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:0 16px;display:flex}.main-header .breadcrumb{color:var(--text-muted);font-size:14px}.main-header .breadcrumb strong{color:var(--text)}.main-header .actions{gap:8px;margin-left:auto;display:flex}.btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn:hover{background:var(--surface-hover);border-color:var(--text-dim)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn-primary:hover{background:#4493f8}.main-content{flex:1;padding:24px 32px;overflow-y:auto}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}.dash-card .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.dash-card .value{font-size:28px;font-weight:800}.dash-card .sub{color:var(--text-muted);margin-top:4px;font-size:12px}.task-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:20px}.task-section h3{align-items:center;gap:6px;margin-bottom:12px;font-size:15px;display:flex}.task-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;font-size:14px;display:flex}.task-item:last-child{border-bottom:none}.task-status{border:1.5px solid var(--border);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex}.task-status.done{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.task-status.progress{border-color:var(--accent-orange);background:#d2992233}.task-status.pending{border-color:var(--text-dim)}.task-assignee{color:var(--text-muted);margin-left:auto;font-size:12px}.chat-area{flex-shrink:0;display:flex;overflow:hidden}.chat-main{border-left:1px solid #0000;flex-direction:column;flex-shrink:0;width:0;transition:width .3s;display:flex;overflow:hidden}.chat-main.open{border-left:1px solid var(--border);width:420px}.chat-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:0 16px;display:flex}.chat-header .room-name{font-size:15px;font-weight:700}.chat-header .room-meta{color:var(--text-dim);font-size:12px}.chat-header .conn-status{align-items:center;gap:4px;margin-left:auto;font-size:11px;display:flex}.conn-status .dot{border-radius:50%;width:8px;height:8px}.conn-status .dot.on{background:var(--accent-green)}.conn-status .dot.off{background:var(--text-dim)}.chat-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:4px;padding:4px;font-size:16px;transition:all .12s}.chat-close-btn:hover{background:var(--surface-hover);color:var(--text)}.btn-discord-sync{color:#99aab5;cursor:pointer;white-space:nowrap;background:#5865f226;border:1px solid #5865f266;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:600;transition:all .15s}.btn-discord-sync:hover{color:#fff;background:#5865f240;border-color:#5865f299}.btn-discord-sync:disabled{opacity:.5;cursor:wait}.messages{flex:1;padding:16px 0;overflow-y:auto}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:0 0}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.date-sep{color:var(--text-dim);align-items:center;gap:12px;margin:16px 24px 8px;font-size:12px;display:flex}.date-sep:before,.date-sep:after{content:"";background:var(--border);flex:1;height:1px}.msg-group{border-radius:4px;gap:10px;padding:4px 24px;transition:background .1s;display:flex;position:relative}.msg-group:hover{background:#ffffff05}.msg-group .msg-content{flex:1;min-width:0}.msg-group .msg-header{align-items:baseline;gap:6px;margin-bottom:2px;display:flex}.msg-group .msg-name{font-size:14px;font-weight:700}.msg-group .msg-time{color:var(--text-dim);font-size:11px}.msg-group .msg-body{color:var(--text);word-break:break-word;font-size:14px;line-height:1.5}.msg-group .msg-body .mention{color:var(--accent);background:#58a6ff26;border-radius:3px;padding:1px 4px;font-weight:600}.msg-group .msg-ai-badge{color:var(--accent-purple);text-transform:uppercase;background:#bc8cff33;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600}.msg-group .msg-role-badge{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600}.msg-actions{background:var(--surface);border:1px solid var(--border);opacity:.5;pointer-events:auto;z-index:5;border-radius:6px;gap:2px;padding:2px;transition:opacity .12s;display:flex;position:absolute;top:-8px;right:24px;box-shadow:0 2px 8px #0000004d}.msg-group:hover .msg-actions{opacity:1}.msg-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px 6px;font-size:14px;transition:all .12s;display:flex}.msg-action-btn:hover{background:var(--surface-hover);color:var(--text)}.reply-count{color:var(--text-dim);cursor:pointer;align-items:center;gap:4px;margin-top:2px;font-size:12px;display:inline-flex}.reply-count:hover{color:var(--accent)}.chat-input-area{flex-shrink:0;padding:8px 24px 16px}.chat-input-wrapper{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:flex-end;gap:8px;padding:8px 12px;display:flex}.chat-input-wrapper:focus-within{border-color:var(--accent)}.chat-input{color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:120px;font-family:inherit;font-size:14px;line-height:1.5}.chat-input::placeholder{color:var(--text-dim)}.chat-send-btn{background:var(--accent);width:32px;height:32px;color:var(--bg);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.chat-send-btn:hover{background:#4493f8}.chat-send-btn:disabled{opacity:.4;cursor:default}.thread-panel{background:var(--surface);border-left:1px solid #0000;flex-direction:column;flex-shrink:0;width:0;transition:width .3s;display:flex;overflow:hidden}.thread-panel.open{border-left:1px solid var(--border);width:320px}.thread-header{height:var(--header-h);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:0 16px;display:flex}.thread-header .title{font-size:14px;font-weight:700}.thread-header .close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:18px}.thread-header .close-btn:hover{color:var(--text)}.thread-messages{flex:1;padding:8px 0;overflow-y:auto}.thread-messages::-webkit-scrollbar{width:6px}.thread-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.thread-parent{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 16px 12px}.meetings-page{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.meetings-content{flex:1;position:relative;overflow:hidden}.meetings-iframe{background:var(--bg);border:none;width:100%;height:100%}.meetings-placeholder{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.meetings-icon{font-size:48px}.meetings-placeholder h3{color:var(--text);margin-top:8px;font-size:18px}.meetings-placeholder p{font-size:14px}.meetings-hint{color:var(--text-dim)!important;margin-top:4px!important;font-size:12px!important}.meetings-help{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:600px;margin-top:12px;padding:12px 16px}.meetings-help code{color:var(--accent-green);word-break:break-all;font-size:12px}.meetings-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.meeting-records{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.meeting-list-container,.meeting-detail-container{flex:1;padding:24px;overflow-y:auto}.meeting-list{flex-direction:column;gap:12px;max-width:800px;display:flex}.meeting-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:16px 20px;transition:all .15s}.meeting-card:hover{background:var(--surface-hover);border-color:var(--accent)}.meeting-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.meeting-card-date{color:var(--text);font-size:14px;font-weight:600}.meeting-card-duration{color:var(--text-muted);font-size:12px}.meeting-card-body{align-items:center;gap:12px;margin-bottom:10px;display:flex}.meeting-card-title{color:var(--text);font-size:15px;font-weight:600}.meeting-card-filename{color:var(--text-dim);font-family:monospace;font-size:12px}.meeting-card-footer{justify-content:space-between;align-items:center;display:flex}.meeting-card-badge{color:var(--accent);background:#58a6ff1a;border-radius:4px;padding:3px 8px;font-size:11px}.meeting-card-arrow{color:var(--text-muted);font-size:12px}.meeting-card:hover .meeting-card-arrow{color:var(--accent)}.meeting-card-actions{align-items:center;gap:4px;display:flex}.btn-icon{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:14px;transition:all .15s}.meeting-card:hover .btn-icon{opacity:1}.btn-icon:hover{background:var(--surface-active)}.meeting-card-confirm-delete{flex-direction:column;align-items:center;gap:12px;padding:12px 0;display:flex}.confirm-delete-text{color:var(--accent-red);font-size:14px;font-weight:600}.confirm-delete-actions{gap:8px;display:flex}.btn-danger-sm{background:var(--accent-red)!important;color:#fff!important;font-weight:600!important}.meeting-card-edit{flex-direction:column;gap:10px;padding:4px 0;display:flex}.meeting-edit-input{background:var(--bg);border:1px solid var(--accent);width:100%;color:var(--text);border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.meeting-edit-actions{gap:8px;display:flex}.btn-primary-sm{background:var(--accent)!important;color:var(--bg)!important;font-weight:600!important}.meeting-detail-content{max-width:860px}.meeting-meta-bar{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:12px 16px;font-size:13px;display:flex}.meeting-analysis{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 32px}.meeting-analysis-content{color:var(--text);font-size:14px;line-height:1.8}.meeting-analysis-content h2.md-h2{border-bottom:1px solid var(--border);color:var(--accent);margin:24px 0 12px;padding-bottom:8px;font-size:20px}.meeting-analysis-content h3.md-h3{color:var(--accent-purple);margin:20px 0 10px;font-size:17px}.meeting-analysis-content h4.md-h4{color:var(--accent-green);margin:16px 0 8px;font-size:15px}.meeting-analysis-content ul{margin:8px 0 16px;padding-left:4px;list-style:none}.meeting-analysis-content li{padding:4px 0 4px 20px;position:relative}.meeting-analysis-content li:before{content:"▸";color:var(--accent);position:absolute;left:0}.meeting-analysis-content strong{color:var(--text);font-weight:600}.meeting-analysis-content code{background:var(--bg);border-radius:4px;padding:2px 6px;font-size:13px}.meeting-analysis-content p{margin-bottom:12px}.meeting-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}.meeting-transcript{flex-direction:column;gap:0;display:flex}.transcript-chunk{border-left:3px solid var(--border);background:var(--surface);border-radius:0 8px 8px 0;margin-bottom:4px;padding:12px 16px;transition:border-color .15s}.transcript-chunk:hover{border-left-color:var(--accent)}.transcript-time{color:var(--accent);margin-bottom:6px;font-family:monospace;font-size:12px;font-weight:600}.transcript-text{color:var(--text);font-size:14px;line-height:1.7}.transcript-raw{white-space:pre-wrap;color:var(--text);background:var(--surface);border-radius:8px;padding:20px;font-family:inherit;font-size:14px;line-height:1.7}.btn-active{background:var(--accent)!important;color:var(--bg)!important}.meeting-placeholder{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.meeting-placeholder h3{margin-top:12px;font-size:16px}.recorder-section{max-width:800px;margin-bottom:24px}.recorder-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.recorder-default{flex-direction:column;align-items:center;gap:12px;display:flex}.btn-rec-start{cursor:pointer;border:none;transition:all .2s;background:var(--accent-red)!important;color:#fff!important;border-radius:24px!important;padding:12px 28px!important;font-size:15px!important;font-weight:700!important}.btn-rec-start:hover{transform:scale(1.03);background:#d73636!important}.recorder-divider{align-items:center;gap:12px;width:100%;margin:4px 0;display:flex}.recorder-divider:before,.recorder-divider:after{content:"";background:var(--border);flex:1;height:1px}.recorder-divider span{color:var(--text-dim);font-size:12px}.recorder-dropzone{border:2px dashed var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:20px;transition:all .15s;display:flex}.recorder-dropzone:hover,.recorder-dropzone.active{border-color:var(--accent);background:#58a6ff0d}.recorder-dropzone-icon{font-size:28px}.recorder-dropzone-hint{color:var(--text-dim);font-size:11px}.recorder-active{flex-direction:column;align-items:center;gap:16px;display:flex}.recorder-pulse-row{align-items:center;gap:12px;display:flex}.recorder-pulse{background:var(--accent-red);border-radius:50%;width:12px;height:12px;animation:1.5s ease-in-out infinite pulse}.recorder-pulse.paused{background:var(--accent-orange);animation:none}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.recorder-time{color:var(--text);letter-spacing:2px;font-family:monospace;font-size:28px;font-weight:700}.recorder-controls{gap:8px;display:flex}.btn-rec-pause{background:var(--accent-orange)!important;color:#fff!important}.btn-rec-stop{background:var(--surface-active)!important;color:var(--text)!important}.recorder-confirm{flex-direction:column;align-items:center;gap:12px;padding:12px 0;display:flex}.recorder-confirm-icon{font-size:36px}.recorder-confirm-title{color:var(--text);font-size:16px;font-weight:700}.recorder-confirm-duration{color:var(--text-muted);font-family:monospace;font-size:13px}.recorder-confirm-actions{gap:10px;margin-top:8px;display:flex}.btn-rec-discard{background:var(--surface-active)!important;color:var(--text-muted)!important}.btn-rec-discard:hover{color:var(--accent-red)!important}.recorder-audio-preview{width:100%;height:36px}.btn-rec-upload{background:var(--accent-green)!important;color:var(--bg)!important;font-weight:700!important}.job-status-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:16px}.job-status-card.done{border-color:var(--accent-green)}.job-status-card.error{border-color:var(--accent-red)}.job-status-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.job-status-icon{font-size:18px}.job-status-filename{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.job-status-size{color:var(--text-muted);font-size:11px}.job-progress-bar{background:var(--surface-active);border-radius:4px;height:8px;margin-bottom:6px;overflow:hidden}.job-progress-fill{border-radius:4px;height:100%;transition:width .5s}.job-progress-info{color:var(--text-muted);justify-content:space-between;font-size:12px;display:flex}.job-done-msg{color:var(--accent-green);text-align:center;margin-top:8px;font-size:13px}.job-error-msg{color:var(--accent-red);text-align:center;margin-top:8px;font-size:13px}.recorder-loading{flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.recorder-error{border:1px solid var(--accent-red);color:var(--accent-red);background:#f851491a;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px}.sidebar-recording-indicator{cursor:pointer;color:var(--text);background:#f851491a;border:1px solid #f851494d;border-radius:8px;align-items:center;gap:8px;margin:4px 8px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.sidebar-recording-indicator:hover{background:#f8514933}.rec-dot{background:var(--accent-red);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.5s ease-in-out infinite pulse}.rec-dot.paused{background:var(--accent-orange);animation:none}.rec-dot.processing{background:var(--accent);animation:1.2s ease-in-out infinite pulse}.btn-sm{padding:4px 10px!important;font-size:12px!important}.sidebar-other-recording{cursor:pointer;background:#bc8cff1a;border:1px solid #bc8cff4d;border-radius:8px;align-items:center;gap:8px;margin:4px 8px;padding:8px 12px;transition:all .15s;display:flex}.sidebar-other-recording:hover{background:#bc8cff33}.other-rec-info{flex-direction:column;gap:2px;min-width:0;display:flex}.other-rec-name{color:var(--text);font-size:12px;font-weight:600}.other-rec-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.meeting-card-recorder{color:var(--accent-purple);white-space:nowrap;margin-left:auto;font-size:12px}.ai-status-badge{color:#6e40c9;white-space:nowrap;background:#6e40c922;border-radius:4px;padding:2px 8px;font-size:12px}.ai-thinking{color:#6e40c9;align-items:center;gap:6px;padding:8px 16px;font-size:13px;animation:1.5s ease-in-out infinite pulse;display:flex}.mention-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:8px 8px 0 0;max-height:240px;padding:4px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 16px #0006}.mention-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;transition:background .1s;display:flex}.mention-item.active{background:var(--surface-active)}.mention-item:hover{background:var(--surface-hover)}.mention-item-name{color:var(--text);flex:1;font-weight:500}.avatar.avatar-sm{flex-shrink:0;width:24px;height:24px;font-size:11px}
