:root{--color-primary: #1890FF;--color-primary-dark: #096DD9;--color-primary-light: #E6F7FF;--color-success: #52C41A;--color-warning: #FAAD14;--color-error: #F5222D;--color-info: #1890FF;--color-text-primary: #262626;--color-text-secondary: #595959;--color-text-disabled: #BFBFBF;--color-bg: #FFFFFF;--color-bg-secondary: #FAFAFA;--color-border: #E8E8E8;--spacing-xxs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--spacing-xxxl: 64px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-xxl: 32px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition-fast: .15s;--transition-normal: .3s;--transition-slow: .5s;--control-height: 48px;--control-height-lg: 56px;--control-height-sm: 40px}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-disabled)}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-waiting{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:20px}.waiting-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:1200px;width:100%;padding:40px}.waiting-header{text-align:center;margin-bottom:40px;position:relative}.back-to-home{position:absolute;left:0;top:0;padding:8px 0;font-size:14px;color:#1890ff;background:none;border:none;cursor:pointer}.back-to-home:hover{text-decoration:underline}.waiting-header h1{font-size:32px;font-weight:600;color:#2d3748;margin-bottom:20px}.meeting-info{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}.info-item{display:flex;align-items:center;gap:8px}.info-label{font-size:14px;color:#718096;font-weight:500}.info-value{font-size:16px;color:#2d3748;font-weight:600}.meeting-info-top{flex-wrap:wrap}.meeting-number-value{font-family:Courier New,monospace;margin-right:12px}.copy-link-btn{padding:6px 14px;font-size:13px;color:#1890ff;background:transparent;border:1px solid #1890ff;border-radius:6px;cursor:pointer;transition:all .2s}.copy-link-btn:hover{color:#fff;background:#1890ff}.join-options{margin-top:20px;display:flex;flex-direction:column;gap:12px}.join-option{display:flex;align-items:center;gap:8px;font-size:14px;color:#4a5568;cursor:pointer}.join-option input{width:16px;height:16px;accent-color:#667eea}.waiting-content{display:grid;grid-template-columns:2fr 1fr;gap:40px;margin-bottom:40px}.video-preview-section{display:flex;flex-direction:column;gap:20px}.video-preview-container{position:relative;background:#1a202c;border-radius:12px;overflow:hidden;aspect-ratio:16 / 9}.video-preview{width:100%;height:100%;object-fit:cover}.video-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a0aec0}.placeholder-icon{font-size:64px;margin-bottom:16px}.video-placeholder p{font-size:18px;font-weight:500}.audio-indicator{position:absolute;bottom:20px;left:20px;right:20px;height:8px;background:#fff3;border-radius:4px;overflow:hidden}.audio-level{height:100%;background:linear-gradient(90deg,#48bb78,#38a169);transition:width .1s ease-out;border-radius:4px}.device-controls{display:flex;gap:16px;justify-content:center}.control-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;border:none;border-radius:12px;background:#f7fafc;cursor:pointer;transition:all .2s ease;min-width:120px}.control-btn.active{background:#667eea;color:#fff}.control-btn.inactive{background:#fc8181;color:#fff}.control-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.btn-icon{font-size:28px}.btn-label{font-size:14px;font-weight:500}.device-settings-section{background:#f7fafc;border-radius:12px;padding:24px}.device-settings-section h3{font-size:20px;font-weight:600;color:#2d3748;margin-bottom:24px}.device-select-group{margin-bottom:20px}.device-select-group label{display:block;font-size:14px;font-weight:500;color:#4a5568;margin-bottom:8px}.device-select{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;cursor:pointer;transition:all .2s ease}.device-select:hover{border-color:#cbd5e0}.device-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.test-btn{width:100%;padding:12px 24px;margin-top:24px;border:2px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.test-btn:hover{background:#667eea;color:#fff}.test-btn.testing{background:#667eea;color:#fff;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.waiting-footer{display:flex;justify-content:center}.join-btn{padding:16px 48px;border:none;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.join-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.join-btn:active{transform:translateY(0)}@media(max-width:968px){.waiting-content{grid-template-columns:1fr}.meeting-info{flex-direction:column;gap:16px}.info-item{justify-content:center}}@media(max-width:640px){.waiting-container{padding:24px}.waiting-header h1{font-size:24px}.device-controls{flex-direction:column}.control-btn{width:100%}.join-btn{width:100%;padding:14px 24px;font-size:16px}}.meeting-room{height:100vh;display:flex;flex-direction:column;background:#1a202c;color:#fff}.meeting-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#2d3748;border-bottom:1px solid #4a5568}.meeting-info-header{display:flex;flex-direction:column;gap:4px}.meeting-topic{font-size:18px;font-weight:600;margin:0}.meeting-id{font-size:13px;color:#a0aec0}.meeting-duration{font-size:16px;font-weight:600;font-family:Courier New,monospace;color:#48bb78}.meeting-stats{display:flex;gap:16px;align-items:center}.network-quality{font-size:14px;color:#a0aec0}.participants-count{font-size:14px;color:#e2e8f0}.meeting-main{flex:1;display:flex;overflow:hidden}.video-grid-container{flex:1;padding:20px;overflow:auto}.video-grid-container.with-sidebar{flex:1}.meeting-room-start-video{padding:16px;display:flex;justify-content:center;align-items:center}.meeting-room-start-video .start-video-btn{padding:12px 24px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.meeting-room-start-video .start-video-btn:hover{opacity:.9}.meeting-room-start-video .start-video-btn:active{opacity:.8}.video-grid{display:grid;gap:8px;height:100%;max-width:100%;transition:grid-template-columns .3s ease-in-out,grid-template-rows .3s ease-in-out}.video-item{position:relative;background:#000;border-radius:4px;overflow:hidden;min-height:120px}.video-item .video-element{width:100%;height:100%;object-fit:cover;display:block}.video-item .video-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#2d3748}.video-item .video-placeholder .avatar-circle{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600;color:#fff}.video-item .video-info{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#0009}.video-item .participant-name{font-size:12px;color:#fff}.video-item .video-controls{display:flex;gap:4px}.video-item .video-controls .icon{font-size:16px}.meeting-controls .control-group{display:flex;gap:12px;align-items:center}.meeting-controls .control-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;background:#4a5568;border:none;border-radius:8px;color:#fff;cursor:pointer;min-width:64px;transition:all .2s}.meeting-controls .control-btn:hover{background:#718096}.meeting-controls .control-btn.active,.meeting-controls .control-btn.danger{background:#e53e3e}.meeting-controls .control-btn.danger:hover{background:#c53030}.meeting-controls .control-btn .icon{font-size:20px}.meeting-controls .control-btn .badge{font-size:11px;background:#ffffff4d;padding:2px 6px;border-radius:10px}.participant-card{position:relative;background:#2d3748;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:200px}.participant-video{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#1a202c}.video-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;color:#fff}.video-placeholder-text{text-shadow:0 2px 4px rgba(0,0,0,.3)}.video-off{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#2d3748}.avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600;color:#fff}.screen-sharing-badge{position:absolute;top:12px;left:12px;background:#48bb78e6;color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600}.participant-info{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#2d3748;border-top:1px solid #4a5568}.participant-name{font-size:14px;font-weight:600}.participant-status{display:flex;gap:8px}.status-icon{font-size:16px}.status-icon.active{opacity:1}.status-icon.inactive{opacity:.4}.sidebar{width:350px;background:#2d3748;border-left:1px solid #4a5568;display:flex;flex-direction:column}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #4a5568}.panel-header h3{margin:0;font-size:16px;font-weight:600}.close-btn{background:none;border:none;color:#a0aec0;font-size:20px;cursor:pointer;padding:4px 8px;transition:color .2s}.close-btn:hover{color:#fff}.chat-panel{display:flex;flex-direction:column;height:100%}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-message{background:#1a202c;border-radius:8px;padding:12px}.message-header{display:flex;justify-content:space-between;margin-bottom:6px}.message-sender{font-size:13px;font-weight:600;color:#667eea}.message-time{font-size:11px;color:#718096}.message-content{font-size:14px;color:#e2e8f0;line-height:1.5}.chat-input-container{display:flex;gap:8px;padding:16px;border-top:1px solid #4a5568}.chat-input{flex:1;padding:10px 12px;background:#1a202c;border:1px solid #4a5568;border-radius:6px;color:#fff;font-size:14px}.chat-input:focus{outline:none;border-color:#667eea}.send-btn{padding:10px 20px;background:#667eea;border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.send-btn:hover{background:#5568d3}.participants-panel{display:flex;flex-direction:column;height:100%}.participants-list{flex:1;overflow-y:auto;padding:8px}.participant-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;transition:background .2s}.participant-item:hover{background:#1a202c}.participant-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:#fff}.participant-item-name{flex:1;font-size:14px;font-weight:500}.participant-item-status{display:flex;gap:8px;font-size:16px}.meeting-controls{padding:20px 24px;background:#2d3748;border-top:1px solid #4a5568;display:flex;justify-content:center}.controls-group{display:flex;gap:12px}.control-button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 20px;background:#4a5568;border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s ease;min-width:90px}.control-button:hover{background:#718096;transform:translateY(-2px)}.control-button.active{background:#667eea}.control-button.inactive{background:#e53e3e}.control-button.sharing{background:#48bb78}.control-button.leave{background:#e53e3e}.control-button.leave:hover{background:#c53030}.control-icon{font-size:24px}.control-label{font-size:12px;font-weight:600}@media(max-width:1280px){.sidebar{width:300px}}@media(max-width:968px){.meeting-header{flex-direction:column;gap:12px;align-items:flex-start}.meeting-stats{width:100%;justify-content:space-between}.sidebar{position:absolute;right:0;top:0;bottom:0;width:100%;max-width:350px;z-index:10;box-shadow:-4px 0 12px #0000004d}.controls-group{flex-wrap:wrap;justify-content:center}.control-button{min-width:80px;padding:12px 16px}}@media(max-width:640px){.video-grid-container{padding:12px}.video-grid{gap:12px}.meeting-controls{padding:16px 12px}.controls-group{width:100%;gap:8px}.control-button{flex:1;min-width:70px;padding:10px 12px}.control-icon{font-size:20px}.control-label{font-size:11px}.participant-card{min-height:150px}.avatar{width:60px;height:60px;font-size:24px}}.chat-messages::-webkit-scrollbar,.participants-list::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track,.participants-list::-webkit-scrollbar-track{background:#2d3748}.chat-messages::-webkit-scrollbar-thumb,.participants-list::-webkit-scrollbar-thumb{background:#4a5568;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover,.participants-list::-webkit-scrollbar-thumb:hover{background:#718096}
