*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#1a1a2e;color:#eee;min-height:100vh;overflow:hidden}.app{position:relative;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center}.video-stage{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:#000}.video-stage.active{display:block}.local-video{position:absolute;bottom:80px;right:16px;width:200px;height:150px;border-radius:8px;object-fit:cover;border:2px solid #444;z-index:2;background:#111}.remote-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:none}.remote-video.visible{display:block}.call-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:32px;pointer-events:none}.call-overlay>*{pointer-events:auto}.waiting-badge{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000000b8;padding:8px 20px;border-radius:999px;font-size:14px;display:flex;align-items:center;gap:8px;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hangup-btn{background:#e53e3e;color:#fff;border:none;border-radius:999px;padding:16px 48px;font-size:16px;cursor:pointer;font-weight:600;box-shadow:0 4px 12px #0006;transition:background .15s}.hangup-btn:hover{background:#c53030}.start-screen{text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;padding:40px}.start-screen h1{font-size:2rem;font-weight:700;letter-spacing:-.5px}.start-screen p{color:#aaa;font-size:16px}.start-btn{background:#3182ce;color:#fff;border:none;border-radius:12px;padding:16px 40px;font-size:18px;cursor:pointer;font-weight:600;transition:background .15s;box-shadow:0 4px 16px #3182ce66}.start-btn:hover{background:#2b6cb0}.status-banner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 40px;background:#0000008c;border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08)}.status-banner p{font-size:18px;max-width:380px;line-height:1.5}.status-banner.error p{color:#fc8181}.status-banner button{background:#3182ce;color:#fff;border:none;border-radius:8px;padding:10px 28px;font-size:15px;cursor:pointer;font-weight:500;transition:background .15s}.status-banner button:hover{background:#2b6cb0}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}
