body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}canvas{background-color:#fff;left:0;position:relative;width:100%}:root{--text:#fff;--gray-200:#b4b8bb;--gray-300:#80868b;--gray-500:#5f6368;--gray-600:#444;--gray-700:#202020;--gray-800:#171717;--gray-900:#111;--gray-1000:#0a0a0a;--border-stroke:#ffffff1a;--accent-blue:#a1e4f2;--accent-blue-active-bg:#001233;--accent-blue-active:#98beff;--accent-blue-headers:#448dff;--accent-green:#a8dab5;--accent-purple:#a855f7;--accent-purple-hover:#9333ea;--background:var(--gray-900);--color:var(--text);--font-family:"Space Mono",monospace;scrollbar-color:#444 #111;scrollbar-color:var(--gray-600) var(--gray-900);scrollbar-width:thin}*{box-sizing:border-box}*,body{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#111;background:var(--gray-900);font-family:Space Mono,monospace;overflow:hidden}.hidden{display:none!important}.flex{display:flex}.h-screen-full{height:100vh;height:100dvh}.w-screen-full{width:100vw}.flex-col{flex-direction:column}.streaming-console{background:linear-gradient(135deg,#111,#171717 50%,#111);background:linear-gradient(135deg,var(--gray-900) 0,var(--gray-800) 50%,var(--gray-900) 100%);color:#80868b;color:var(--gray-300);display:flex;height:100vh;height:100dvh;position:relative;width:100vw}.streaming-console main{flex-direction:column;flex-grow:1;overflow:hidden;padding:0}.streaming-console .main-app-area,.streaming-console main{align-items:center;display:flex;justify-content:center;max-width:100%;position:relative;width:100%}.streaming-console .main-app-area{flex:1 1}.stream{border:2px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 32px #0006;height:180px;object-fit:cover;position:absolute;right:1rem;top:1rem;width:240px;z-index:100}.network-indicator{display:flex;flex-direction:column;gap:8px;position:absolute;right:10px;top:10px;z-index:999}.indicator-badge{align-items:center;background:#22c55e33;border:1px solid #22c55e;border-radius:8px;color:#fff;display:flex;font-size:12px;font-weight:500;gap:6px;padding:8px 12px}.indicator-badge.fair{background:#eab30833;border-color:#eab308}.indicator-badge.poor{background:#ef444433;border-color:#ef4444}.indicator-badge .indicator-icon{font-size:16px}.echo-warning{background:#ef4444f2;border:2px solid #ef4444;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:13px;max-width:300px;padding:12px 16px;position:absolute;right:10px;top:60px;z-index:999}.echo-warning .warning-header{align-items:center;display:flex;font-weight:700;gap:6px;margin-bottom:4px}.echo-warning .warning-header span{font-size:18px}.echo-warning .warning-body{font-size:11px;line-height:1.4}.camera-controls-panel{background-color:#fffffff2;border-radius:12px;box-shadow:0 4px 12px #00000026;max-height:90vh;overflow-y:auto;padding:15px;position:absolute;right:10px;top:10px;width:200px;z-index:1000}.camera-controls-panel .panel-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:10px}.camera-controls-panel .panel-header h3{font-size:14px;font-weight:600;margin:0}.camera-controls-panel .panel-header span{font-size:12px}.camera-controls-panel .panel-buttons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.camera-controls-panel .camera-button{background-color:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:11px;font-weight:500;padding:8px 4px;transition:all .2s}.camera-controls-panel .camera-button:hover{background-color:#357ae8}.camera-controls-panel .camera-button:active{transform:scale(.98)}@media(max-width:768px){.streaming-console{flex-direction:column}.stream{border-radius:12px;height:120px;right:.5rem;top:.5rem;width:160px}.camera-controls-panel{padding:12px;width:180px}}@media(max-width:480px){.stream{border-radius:8px;height:90px;width:120px}.camera-controls-panel{padding:10px;width:160px}.camera-controls-panel .panel-header h3{font-size:12px}.camera-controls-panel .camera-button{font-size:10px;padding:6px 3px}}@media(hover:none)and (pointer:coarse){a,button,input,select,textarea{min-height:44px;min-width:44px}}@supports(padding:env(safe-area-inset-top)){.streaming-console{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}.text-input{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#171717f2;border:1px solid #a855f74d;border-radius:12px;display:flex;gap:8px;left:10%;max-width:500px;padding:12px;position:fixed;top:80%;width:80%;z-index:1000}@media (min-width:1200px){.text-input{left:30%;max-width:600px;top:75%;width:70%}}@media (max-width:1023px){.text-input{left:8%;max-width:450px;top:15%;width:84%}}@media (max-width:767px){.text-input{border-radius:10px;gap:6px;left:5%;max-width:none;padding:10px;right:5%;top:30%;width:80%}}@media (max-width:479px){.text-input{border-radius:8px;font-size:.9rem;gap:6px;left:20%;padding:5px;right:4%;top:15%;width:60%}}@media (max-width:767px) and (orientation:landscape){.text-input{left:3%;padding:8px;right:3%;top:5%;width:94%}}.text-input.centered{left:50%;transform:translateX(-50%);width:80%}@media (max-width:767px){.text-input.centered{width:90%}}@media (max-width:479px){.text-input.centered{width:95%}}.action-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(77,165,5,.826);border:1px solid #ffffff1a;border-radius:24px;color:var(--Neutral-60);cursor:pointer;display:flex;font-size:1.25rem;height:48px;justify-content:center;line-height:1.75rem;text-transform:lowercase;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;width:48px}.action-button:hover:not(.no-action){background:#323232e6;border:1px solid #fff3;transform:scale(1.05)}.action-button:focus{outline:2px solid var(--accent-purple);outline-offset:2px}.action-button.outlined{background:#17171799;border:1px solid #ffffff1a}.action-button.no-action{cursor:default;pointer-events:none}.action-button.connected{background:#89f11b33;border-color:#ff2a1f4d;color:var(--Blue-500)}.action-button.connected:hover{background:#50f9024d;border-color:var(--Blue-500)}@property --volume{syntax:"length";inherit:false;initial-value:0}.mic-button{background:linear-gradient(135deg,#ff4600,#e03c00);border:none;color:#fff;position:relative;transition:all .2s ease-in;z-index:1}.mic-button:hover{background:linear-gradient(135deg,#ff5722,#ff4600);box-shadow:0 6px 16px #ff460066;transform:scale(1.05)}.mic-button:before{background-color:var(--Red-500);border-radius:50%;content:"";display:block;height:calc(100% + var(--volume)*2);left:calc(var(--volume)*-1);opacity:.35;pointer-events:none;position:absolute;top:calc(var(--volume)*-1);transition:all .02s ease-in-out;width:calc(100% + var(--volume)*2);z-index:-1}.disabled .mic-button:before,.mic-button.disabled:before{background:#0000}.connect-toggle{background:#70d365;border:none;color:#fff}.connect-toggle:hover{background:#f7f707;transform:scale(1.05)}.connect-toggle:focus{outline:2px solid var(--Blue-500);outline-offset:2px}.connect-toggle.connected{background:#6dff1f4d;border:1px solid #1f94ff80}.control-tray{align-items:flex-start;bottom:env(safe-area-inset-bottom,1.5rem);display:inline-flex;gap:12px;justify-content:center;left:50%;max-width:calc(100vw - 2rem);padding:0 1rem;position:absolute;transform:translateX(-50%)}.control-tray .action-button.disabled,.control-tray .disabled .action-button{background:#20202066;border:1px solid #ffffff0d;color:#ffffff4d;cursor:not-allowed}.control-tray .action-button.disabled:hover,.control-tray .disabled .action-button:hover{transform:none}.control-tray .connection-container{align-items:center;display:flex;flex-direction:column;gap:6px;justify-content:center}.control-tray .connection-container .connection-button-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#17171799;border:1px solid #ffffff1a;border-radius:28px;padding:10px}.control-tray .connection-container .text-indicator{color:var(--Blue-500);font-size:11px;font-weight:500;opacity:0;transition:opacity .3s ease;-webkit-user-select:none;user-select:none}.control-tray .connection-container.connected .text-indicator{opacity:1}.actions-nav{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#17171799;border:1px solid #ffffff1a;border-radius:28px;box-shadow:0 8px 32px #0006;display:inline-flex;gap:8px;overflow:clip;padding:10px;transition:all .3s ease-in}.actions-nav>*{align-items:center;display:flex;flex-direction:column}@media(max-width:768px){.control-tray{bottom:calc(1rem + env(safe-area-inset-bottom, 0px));gap:8px}.action-button{border-radius:22px;height:44px;width:44px}.actions-nav{gap:6px;padding:8px}}@media(max-width:480px){.control-tray{bottom:calc(.5rem + env(safe-area-inset-bottom, 0px))}.action-button{font-size:1rem;height:40px;width:40px}.connection-container .text-indicator{font-size:10px}}.login-container{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;justify-content:center;overflow:hidden;position:relative;width:100vw}.login-background{background:linear-gradient(135deg,#228b22,#1a6b1a);height:100%;overflow:hidden;position:absolute;width:100%;.login-shape{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:50%;position:absolute;&:first-child{animation:float 20s ease-in-out infinite;height:500px;right:-100px;top:-200px;width:500px}&:nth-child(2){animation:float 25s ease-in-out infinite reverse;bottom:-150px;height:400px;left:-100px;width:400px}}}@keyframes float{0%,to{transform:translate(0) rotate(0deg)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}.login-card{animation:slideUp .6s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;position:relative;width:90%;z-index:10}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:30px;text-align:center;.login-icon{align-items:center;animation:bounce 2s ease-in-out infinite;display:flex;justify-content:center;margin-bottom:16px}h1{color:#228b22;font-size:28px;font-weight:700;margin:0 0 8px}p{color:#666;font-size:15px;margin:0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-form{.error-message{align-items:center;animation:shake .4s ease-in-out;background:#fee;border:1px solid #fcc;border-radius:12px;color:#c33;display:flex;font-size:14px;gap:8px;margin-bottom:20px;padding:12px 16px;.error-icon{font-size:18px}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.form-group{margin-bottom:20px;label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}input{border:2px solid #e0e0e0;border-radius:12px;box-sizing:border-box;font-family:inherit;font-size:15px;padding:14px 16px;transition:all .3s ease;width:100%;&:focus{border-color:#228b22;box-shadow:0 0 0 4px #228b221a;outline:none}&:disabled{background:#f5f5f5;cursor:not-allowed}&::placeholder{color:#999}}}.login-button{align-items:center;background:linear-gradient(135deg,#228b22,#1a6b1a);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;margin-top:24px;padding:14px;transition:all .3s ease;width:100%;&:hover:not(:disabled){box-shadow:0 8px 20px #228b2266;transform:translateY(-2px)}&:active:not(:disabled){transform:translateY(0)}&:disabled{cursor:not-allowed;opacity:.7}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}}@keyframes spin{to{transform:rotate(1turn)}}}.login-footer{margin-top:24px;text-align:center;p{align-items:center;color:#666;display:flex;font-size:13px;gap:6px;justify-content:center;margin:0}}@media (max-width:480px){.login-card{margin:20px;padding:30px 24px}.login-header{h1{font-size:24px}.login-icon{font-size:48px}}}