:root{--bg-dark: #202124;--bg-darker: #171717;--bg-card: #303134;--bg-hover: #3c4043;--text-primary: #e8eaed;--text-secondary: #9aa0a6;--accent-blue: #8ab4f8;--accent-green: #81c995;--accent-red: #f28b82;--border-color: #5f6368;--shadow: 0 4px 16px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Google Sans,Roboto,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-dark);color:var(--text-primary);min-height:100vh}#root{min-height:100vh}.app{max-width:600px;margin:0 auto;padding:24px;min-height:100vh}.app-header{text-align:center;margin-bottom:32px}.app-header h1{font-size:36px;font-weight:400;margin-bottom:8px;color:var(--text-primary)}.app-header .tagline{color:var(--text-secondary);font-size:16px}.app h1{font-size:28px;font-weight:400;margin-bottom:24px;color:var(--text-primary)}.mode-toggle{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.mode-toggle button{padding:10px 24px;background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:24px;font-size:14px;cursor:pointer;transition:all .2s}.mode-toggle button:hover{background:var(--bg-hover)}.mode-toggle button.active{background:var(--accent-blue);color:var(--bg-dark);border-color:var(--accent-blue)}.main-panel{background:var(--bg-card);border-radius:16px;padding:32px;box-shadow:var(--shadow)}.main-panel h3{text-align:center;font-size:20px;margin-bottom:24px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px}.form-group input{width:100%;padding:12px 16px;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:15px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--accent-blue)}.form-group input::placeholder{color:var(--text-secondary)}.btn-primary{width:100%;padding:14px;background:var(--accent-blue);color:var(--bg-dark);border:none;border-radius:24px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.btn-primary:hover{background:#aecbfa}.btn-primary:active{transform:scale(.98)}.btn-secondary{width:100%;padding:14px;background:transparent;color:var(--accent-blue);border:2px solid var(--accent-blue);border-radius:24px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.btn-secondary:hover{background:#8ab4f81a}.btn-secondary:active{transform:scale(.98)}.btn-large{padding:16px;font-size:16px}.divider{display:flex;align-items:center;margin:24px 0;color:var(--text-secondary);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.divider span{padding:0 16px}.meeting-link-box{margin-top:20px;padding:16px;background:var(--bg-dark);border-radius:8px;text-align:center}.meeting-link-box p{color:var(--text-secondary);font-size:13px;margin-bottom:8px}.meeting-link-box code{display:block;color:var(--accent-blue);font-size:14px;word-break:break-all}.error-message{color:var(--accent-red);font-size:14px;margin-top:12px;text-align:center}.button-row{display:flex;gap:8px;margin-top:16px}.button-row input{flex:1;padding:10px 12px;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px}.button-row input:focus{outline:none;border-color:var(--accent-blue)}.button-row button{padding:10px 16px;background:var(--accent-blue);color:var(--bg-dark);border:none;border-radius:6px;font-size:14px;cursor:pointer;white-space:nowrap}.panel{background:var(--bg-card);border-radius:12px;padding:20px;margin-bottom:16px}.panel h3{font-size:16px;font-weight:500;margin-bottom:16px;color:var(--text-primary)}.panel label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px;margin-top:12px}.panel label:first-of-type{margin-top:0}.panel input,.panel select{width:100%;padding:10px 12px;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px;transition:border-color .2s}.panel input:focus,.panel select:focus{outline:none;border-color:var(--accent-blue)}.panel button{padding:10px 20px;background:var(--accent-blue);color:var(--bg-dark);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s}.panel button:hover{opacity:.9}.video-call{min-height:100vh}.prejoin-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-dark)}.prejoin-card{background:var(--bg-card);border-radius:16px;padding:32px;max-width:480px;width:100%;box-shadow:var(--shadow)}.prejoin-card h2{font-size:24px;font-weight:400;margin-bottom:8px;text-align:center}.prejoin-card .room-info{text-align:center;color:var(--text-secondary);font-size:14px;margin-bottom:24px}.preview-section{margin-bottom:24px}.video-preview{background:var(--bg-darker);border-radius:12px;overflow:hidden;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;margin-bottom:16px;position:relative}.video-preview video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.video-preview .avatar-placeholder{position:absolute;top:0;left:0;width:100%;height:100%}.preview-controls{display:flex;justify-content:center;gap:12px}.device-selection{margin-bottom:24px}.device-row{margin-bottom:16px}.device-row label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.device-row select{width:100%;padding:10px 12px;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px}.device-row select:focus{outline:none;border-color:var(--accent-blue)}.join-btn{width:100%;padding:14px;background:var(--accent-blue);color:var(--bg-dark);border:none;border-radius:24px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.join-btn:hover{background:#aecbfa}.join-btn:active{transform:scale(.98)}.prejoin-card .hint{text-align:center;color:var(--text-secondary);font-size:12px;margin-top:16px}.incall-container{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-darker);z-index:1000}.call-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.call-header .room-name{font-weight:500;font-size:16px}.call-header .call-status{color:var(--text-secondary);font-size:14px}.call-header .connection-info{font-size:11px;color:var(--text-secondary);font-family:monospace}.error-banner{background:var(--accent-red);color:var(--bg-dark);padding:12px 20px;font-size:14px;text-align:center}.video-grid{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;gap:12px;width:100%;overflow:hidden}.video-tile{background:var(--bg-card);border-radius:12px;overflow:hidden;position:relative}.video-tile video{width:100%;height:100%;object-fit:cover}.video-tile.main-video{flex:1;max-width:100%;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center}.video-tile.main-video video{width:100%;height:100%}.video-tile.pip-video{position:absolute;bottom:32px;right:32px;width:200px;height:150px;border:2px solid var(--border-color);z-index:10;display:flex;align-items:center;justify-content:center}.video-tile.pip-video video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.video-tile.pip-video .avatar-placeholder{width:100%;height:100%}.video-tile.pip-video .avatar-placeholder.small{min-height:auto}.video-label{position:absolute;bottom:12px;left:12px;background:#000000b3;color:var(--text-primary);padding:6px 12px;border-radius:6px;font-size:13px}.avatar-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;height:100%;background:var(--bg-darker)}.avatar-placeholder.large{min-height:400px}.avatar-placeholder.small{min-height:100%}.avatar-placeholder p{color:var(--text-secondary);font-size:14px}.avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#5f6368,#3c4043);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:500;color:var(--text-primary)}.avatar.small{width:48px;height:48px;font-size:18px}.controls-bar{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;background:var(--bg-card);border-top:1px solid var(--border-color)}.control-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text-primary);font-size:20px;cursor:pointer;transition:background .2s,transform .1s}.control-btn:hover{background:#5f6368}.control-btn:active{transform:scale(.95)}.control-btn.off{background:var(--accent-red);color:#fff}.control-btn.active{background:var(--accent-blue);color:var(--bg-dark)}.control-btn.large{width:56px;height:56px;font-size:22px}.control-btn.large span{font-size:10px;margin-top:2px;display:none}.control-btn.end-call{background:var(--accent-red);color:#fff;transform:rotate(135deg)}.control-btn.end-call:hover{background:#e57373}.control-btn.recording{background:var(--accent-red);color:#fff;animation:pulse-recording 1.5s ease-in-out infinite}@keyframes pulse-recording{0%,to{opacity:1}50%{opacity:.7}}.header-left{display:flex;align-items:center;gap:12px}.recording-indicator{display:flex;align-items:center;gap:6px;background:var(--accent-red);color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;animation:pulse-recording 1.5s ease-in-out infinite}.rec-dot{width:8px;height:8px;background:#fff;border-radius:50%;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (min-width: 768px){.control-btn.large{width:auto;height:auto;padding:12px 20px;border-radius:24px;flex-direction:row;gap:8px}.control-btn.large span{display:inline;font-size:13px;font-weight:500}.control-btn.end-call{transform:none}}@media (max-width: 640px){.prejoin-card{padding:24px 16px}.video-tile.pip-video{width:120px;height:90px;bottom:16px;right:16px}.call-header{flex-direction:column;gap:4px;text-align:center}.call-header .connection-info{display:none}.controls-bar{gap:12px}}
