html,body{padding:0;margin:0;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.container{max-width:1400px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:30px}header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #f0f0f0}header h1{color:#333;font-size:2rem}.section{margin-bottom:30px}h2,h3{color:#333;margin-bottom:15px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;color:#555;font-weight:500}.form-group input,.form-group select{width:100%;padding:10px;border:2px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.btn{padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;margin:5px}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-control{background:#48bb78;color:#fff}.btn-control:hover{background:#38a169}.btn-control.active{background:#fc8181}#record-btn{background:#fff}#record-btn.active,#record-btn:hover{background:#f3f4f6}#record-btn.active{animation:pulse 2s infinite}#user-record-btn{background:#805ad5}#user-record-btn:hover{background:#6b46c1}#user-record-btn.active{background:#6b46c1;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}#recording-status,#user-recording-status{margin-top:10px;font-weight:600}.btn-danger{background:#f56565;color:#fff}.btn-danger:hover{background:#e53e3e}#end-meeting-btn{background:#fff;color:#b91c1c;font-weight:700}#end-meeting-btn:hover{background:#fee2e2;box-shadow:0 4px 12px #b91c1c40}.btn-small{padding:8px 16px;font-size:14px}.status-message{margin-top:15px;padding:10px;border-radius:6px;font-size:14px}.status-message.success{background:#c6f6d5;color:#22543d}.status-message.error{background:#fed7d7;color:#742a2a}.status-message.info{background:#bee3f8;color:#2c5282}.meeting-info{background:#f7fafc;padding:15px;border-radius:6px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}.meeting-info h3{margin:0;color:#2d3748}.device-controls{background:#f7fafc;padding:20px;border-radius:6px;margin-bottom:20px}.control-buttons{display:flex;flex-wrap:wrap;justify-content:center;margin:20px 0;padding:20px;background:#f7fafc;border-radius:6px}.video-section{margin:20px 0}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;margin-top:15px}.video-tile{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16 / 9}.video-tile video{width:100%;height:100%;object-fit:cover}.video-tile.local-video video{transform:scaleX(-1)}.video-tile-info{position:absolute;bottom:10px;left:10px;background:#000000b3;color:#fff;padding:5px 10px;border-radius:4px;font-size:14px}.video-tile-signal{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%}.signal-good{background:#48bb78}.signal-medium{background:#ed8936}.signal-poor{background:#f56565}.roster-section{background:#f7fafc;padding:20px;border-radius:6px;margin-top:20px}.roster-list{max-height:300px;overflow-y:auto}.roster-item{display:flex;align-items:center;justify-content:space-between;padding:10px;margin-bottom:8px;background:#fff;border-radius:6px;border:1px solid #e2e8f0}.roster-item-info{display:flex;align-items:center;gap:10px}.roster-item-name{font-weight:500;color:#2d3748}.roster-item-status{display:flex;gap:5px}.status-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.volume-bar{width:60px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.volume-bar-fill{height:100%;background:#48bb78;transition:width .1s}.content-section{margin-top:20px}#content-video-container{margin-top:15px}#content-video{width:100%;max-width:800px;border-radius:8px;background:#000}@media (max-width: 768px){.container{padding:15px}.video-grid{grid-template-columns:1fr}.control-buttons{flex-direction:column}.btn{width:100%}}
