:root{--bg: #0b0f17;--card: #111827;--text: #e5e7eb;--muted: #9ca3af;--accent: #ff6b6b;--teal: #4ecdc4;--chat-h: 200px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--text);transition:opacity .3s ease;overflow:hidden}.app{height:100vh;width:100vw;position:relative}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:2rem}.loading-spinner{width:60px;height:60px;border:4px solid rgba(78,205,196,.2);border-top:4px solid var(--teal);border-radius:50%;animation:spin 1s linear infinite}.loading-status{font-size:1.1rem;color:var(--muted);font-weight:500}.install-prompt{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000}.install-content{background:linear-gradient(135deg,#1a1f2e,#2d3748);border-radius:20px;padding:2rem;max-width:400px;width:90%;text-align:center;box-shadow:0 25px 50px #00000080;border:1px solid rgba(255,255,255,.1)}.install-content h3{margin:0 0 1rem;color:var(--text);font-size:1.5rem}.install-content p{margin:0 0 2rem;color:var(--muted);line-height:1.5}.install-buttons{display:flex;gap:1rem;justify-content:center}.install-btn,.cancel-btn{padding:.75rem 1.5rem;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease}.install-btn{background:var(--teal);color:var(--bg)}.install-btn:hover{background:#3bb5ad;transform:translateY(-2px)}.cancel-btn{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,.2)}.cancel-btn:hover{background:#ffffff1a;color:var(--text)}body.offline{opacity:.8}body.offline:before{content:"Offline Mode";position:fixed;top:10px;left:50%;transform:translate(-50%);background:#ff6b6be6;color:#fff;padding:8px 16px;border-radius:20px;font-size:.9rem;font-weight:600;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.page{position:fixed;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:all .5s ease;z-index:1}.page.active{opacity:1;visibility:visible;z-index:10}.install-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.install-modal.active{opacity:1;visibility:visible}.install-modal-content{background:linear-gradient(135deg,#1a1f2e,#2d3748);border-radius:20px;padding:0;max-width:500px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px #00000080;border:1px solid rgba(255,255,255,.1);transform:scale(.9);transition:transform .3s ease}.install-modal.active .install-modal-content{transform:scale(1)}.install-modal-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);position:relative}.modal-icon{width:48px;height:48px;border-radius:12px}.install-modal-header h2{margin:0;font-size:1.5rem;font-weight:700;background:linear-gradient(45deg,var(--teal),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1}.close-modal{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--muted);font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.close-modal:hover{background:#ffffff1a;color:#fff}.install-modal-body{padding:1.5rem}.install-instructions{background:#0000004d;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.1)}.install-instructions h3{margin:0 0 1rem;color:var(--teal);font-size:1.1rem;font-weight:600}.install-instructions ol{margin:0;padding-left:1.5rem;color:var(--text);line-height:1.6}.install-instructions li{margin-bottom:.5rem}.install-instructions .step-icon{display:inline-block;width:20px;height:20px;background:var(--teal);color:#fff;border-radius:50%;text-align:center;line-height:20px;font-size:.8rem;font-weight:700;margin-right:.5rem}.install-modal-actions{display:flex;gap:1rem;justify-content:center}.modal-install-button{background:linear-gradient(45deg,var(--teal),#10b981);color:#fff;border:none;padding:1rem 2rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;box-shadow:0 4px 15px #14b8a64d}.modal-install-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #14b8a666}.modal-cancel-button{background:#ffffff1a;color:var(--text);border:1px solid rgba(255,255,255,.2);padding:1rem 2rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.modal-cancel-button:hover{background:#fff3;border-color:#ffffff4d}#main-page{background:var(--bg);display:flex;flex-direction:column}.main-app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#111827cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);z-index:100}.app-title{display:flex;align-items:center;gap:.75rem}.app-icon{width:32px;height:32px;border-radius:8px}.app-title h1{font-size:1.5rem;font-weight:700;margin:0;background:linear-gradient(45deg,var(--teal),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-status{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 2s infinite}.status-indicator.offline{background:var(--accent)}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden}.app-footer{padding:.75rem 1.5rem;background:#11182799;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1)}.footer-info{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--muted)}.offline-indicator{color:var(--accent);font-weight:600}#app{min-height:100%;margin:0;padding:0;display:grid;place-items:center;width:100%}#loading-page{background:linear-gradient(135deg,#0b0f17,#1a1f2e);display:flex;align-items:center;justify-content:center}.loading-container{text-align:center;animation:fadeInUp .8s ease}.loading-logo{margin-bottom:2rem;animation:pulse 2s infinite}.loading-logo img{width:120px;height:120px;border-radius:24px;box-shadow:0 20px 40px #0000004d}.loading-text{font-size:2.5rem;font-weight:700;color:var(--text);margin-bottom:2rem;background:linear-gradient(45deg,var(--teal),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-spinner{width:50px;height:50px;border:4px solid rgba(78,205,196,.2);border-top:4px solid var(--teal);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.loading-status{color:var(--muted);font-size:1rem;font-weight:500}#install-page{background:linear-gradient(135deg,#0b0f17,#1a1f2e);display:flex;align-items:center;justify-content:center;padding:2rem}.install-container{max-width:400px;width:100%;text-align:center;animation:fadeInUp .8s ease}.install-header{margin-bottom:3rem}.install-header .install-icon{width:100px;height:100px;border-radius:20px;margin-bottom:1.5rem;box-shadow:0 15px 30px #0000004d}.install-header h1{font-size:2.5rem;font-weight:700;color:var(--text);margin-bottom:.5rem;background:linear-gradient(45deg,var(--teal),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.install-header p{color:var(--muted);font-size:1.1rem;margin:0}.install-features{margin-bottom:3rem}.feature{display:flex;align-items:center;text-align:left;padding:1.5rem;background:#ffffff0d;border-radius:16px;margin-bottom:1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.feature-icon{font-size:2rem;margin-right:1rem;min-width:50px}.feature-text h3{color:var(--text);font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.install-actions{display:flex;flex-direction:column;gap:1rem}.install-button{background:linear-gradient(135deg,var(--teal),#10b981);color:#000;border:none;padding:1rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 8px 20px #4ecdc44d}.install-button:hover{transform:translateY(-2px);box-shadow:0 12px 25px #4ecdc466}.install-button:active{transform:translateY(0)}.skip-button{background:transparent;color:var(--muted);border:2px solid rgba(255,255,255,.2);padding:.75rem 2rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.skip-button:hover{background:#ffffff1a;color:var(--text);border-color:#ffffff4d}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (display-mode: standalone){body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}::-webkit-scrollbar{width:0px;background:transparent}}@supports (padding: max(0px)){.phone{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}.phone-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem}.phone{--ratio: calc(19.5/9);--chat-h: 200px;--phone-w: min(380px, 90vw);width:var(--phone-w);height:calc(var(--phone-w) * var(--ratio));aspect-ratio:9 / 19.5;background:#000;border-radius:32px;overflow:hidden;position:relative;box-shadow:0 30px 80px #0000008c;max-height:calc(100vh - 2rem)}.phone .bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:none;transform:scale(1.02)}.phone .gradient-top{position:absolute;left:0;right:0;top:0;height:35%;background:linear-gradient(180deg,#0000008c,#0000)}.phone .gradient-bottom{position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(0deg,#000000a6,#0000)}.phone .title{position:absolute;top:calc(12px + env(safe-area-inset-top));left:0;right:0;text-align:center;color:#fff;font-size:1.35rem;font-weight:700;letter-spacing:.2px}.phone .subtle{display:block;font-size:.9rem;color:#ffffffd9;font-weight:500;margin-top:6px}.phone .bottom{position:absolute;left:0;right:0;bottom:calc(var(--chat-h));display:flex;justify-content:center;align-items:center}.call-controls-container{display:flex;justify-content:center;align-items:center;padding:12px}.call-controls{display:flex;align-items:center;justify-content:center;gap:16px;background:#0006;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:50px;padding:12px 20px;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #0000004d}.call-controls:not(.expanded){padding:12px;gap:0}.fab{width:56px;height:56px;border-radius:50%;border:none;color:#fff;font-weight:800;cursor:pointer;box-shadow:0 8px 16px #0000004d;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:1.2rem;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.fab:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at center,rgba(255,255,255,.2),transparent 70%);opacity:0;transition:opacity .3s ease}.fab:hover:before{opacity:1}.fab:hover{transform:translateY(-1px) scale(1.05);box-shadow:0 12px 24px #0006}.fab:active{transform:translateY(0) scale(.95);box-shadow:0 4px 8px #00000040}.fab.green{background:linear-gradient(135deg,#22c55e,#16a34a,#15803d);border:2px solid rgba(34,197,94,.3)}.fab.green:hover{background:linear-gradient(135deg,#16a34a,#15803d,#166534);border-color:#22c55e99}.fab.red{background:linear-gradient(135deg,#ef4444,#dc2626,#b91c1c);border:2px solid rgba(239,68,68,.3)}.fab.red:hover{background:linear-gradient(135deg,#dc2626,#b91c1c,#991b1b);border-color:#ef444499}.main-call-btn{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #0003;position:relative;overflow:hidden}.main-call-btn.start-call{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.main-call-btn.end-call{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.main-call-btn:hover{transform:scale(1.05);box-shadow:0 6px 25px #0000004d}.main-call-btn:active{transform:scale(.95)}.control-btn{width:48px;height:48px;border-radius:50%;border:none;background:#ffffff26;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);opacity:0;transform:scale(.8);animation:slideIn .4s cubic-bezier(.4,0,.2,1) .2s forwards}.control-btn:hover{background:#ffffff40;transform:scale(1.05);box-shadow:0 4px 15px #0003}.control-btn:active{transform:scale(.95)}.control-btn.muted,.control-btn.disabled{background:#ef44444d;border-color:#ef444480}.control-btn.muted:hover,.control-btn.disabled:hover{background:#ef444466;border-color:#ef4444b3}@keyframes slideIn{to{opacity:1;transform:scale(1)}}.video-container{position:relative}.camera-disabled-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000;z-index:10;border-radius:12px}.pill{border:none;background:#ffffff26;color:#fff;width:56px;height:56px;border-radius:50%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:600;font-size:.75rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 16px #0000004d;text-transform:uppercase;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;text-align:center}.pill:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-1px) scale(1.05);box-shadow:0 12px 24px #0006}.pill:active{transform:translateY(0) scale(.95);box-shadow:0 4px 8px #00000040}.pill:disabled{opacity:.5;cursor:not-allowed;transform:none}.pill:disabled:hover{background:#ffffff26;border-color:#fff3;transform:none;box-shadow:0 8px 16px #0000004d}.pill.install{position:absolute;top:10px;right:12px}.vu-wrap{position:absolute;right:4px;top:calc(42px + env(safe-area-inset-top));width:8px;height:160px;display:flex;align-items:center;justify-content:center}.status-label{position:absolute;left:0;right:0;text-align:center;bottom:calc(var(--chat-h) + 110px);color:#ffffffe6;font-weight:500;font-size:.9rem;background:#0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;padding:6px 16px;margin:0 40px;transition:all .3s ease;text-transform:capitalize;letter-spacing:.2px;z-index:10}.status-label.ready{color:#10b981}.status-label.connected{color:#3b82f6}.status-label.error{color:#ef4444}.status-label.requesting{color:#f59e0b;animation:pulse-text 2s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:.8}50%{opacity:1}}.chat-dock{position:absolute;left:0;right:0;bottom:0;height:var(--chat-h);padding:10px 12px 12px;background:#0c12208c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chat-dock .chatbox{height:100%;max-height:none;background:#0c1220d9}.chat-dock .chatlog{font-size:.9rem}.self-preview{position:absolute;width:120px;height:160px;right:14px;top:calc(30px + env(safe-area-inset-top));border-radius:14px;object-fit:cover;box-shadow:0 12px 24px #00000073;border:2px solid rgba(255,255,255,.35)}.card{background:var(--card);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;box-shadow:0 20px 60px #00000073}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:12px;padding:12px 16px;color:#fff;background:#0f172a;font-weight:700;cursor:pointer}.btn.btn-lg{padding:14px 22px;font-size:1.05rem}.btn.primary{background:linear-gradient(180deg,#ff6b6b,#ff4154)}.btn.danger{background:linear-gradient(180deg,#ef4444,#dc2626)}.row{display:flex;gap:12px;align-items:center}.stack{display:grid;gap:12px}.video{width:100%;aspect-ratio:16/9;background:#000;border-radius:10px}.avatar{width:160px;height:160px;border-radius:50%;object-fit:cover;box-shadow:0 10px 30px #00000059;border:3px solid rgba(255,255,255,.2)}.callcard{align-items:center}.meter{width:8px;height:100%;border-radius:4px;background:#1f2937cc;overflow:hidden;display:flex;align-items:flex-end;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.meter .bar{width:100%;height:0%;background:linear-gradient(180deg,#4ecdc4,#7ef0e6);transition:height .1s ease}.chatbox{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#0c1220;display:flex;flex-direction:column;max-height:320px}.chatlog{flex:1;overflow-y:auto;padding:10px;font-size:.95rem;scrollbar-width:thin;scrollbar-color:rgba(78,205,196,.3) transparent}.chatlog::-webkit-scrollbar{width:6px}.chatlog::-webkit-scrollbar-track{background:transparent;border-radius:3px}.chatlog::-webkit-scrollbar-thumb{background:#4ecdc44d;border-radius:3px;transition:background .2s ease}.chatlog::-webkit-scrollbar-thumb:hover{background:#4ecdc480}.chatlog .msg{margin:6px 0;padding:8px 12px;border-radius:10px;max-width:80%;line-height:1.4}.msg.user{background:#2563eb;color:#fff;margin-left:auto}.msg.ai{background:#374151;color:#fff;margin-right:auto}.chatinput{display:flex;border-top:1px solid rgba(255,255,255,.08);border-radius:0 0 14px 14px;overflow:hidden}.chatinput input{flex:1;padding:12px 16px;background:transparent;color:#fff;border:none;outline:none;font-size:.9rem}.chatinput input::placeholder{color:#ffffff80}.chatinput button{background:linear-gradient(135deg,#4ecdc4,#44b3ac);color:#000;font-weight:700;border:none;padding:12px 20px;cursor:pointer;transition:all .2s ease;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;position:relative;overflow:hidden}.chatinput button:hover{background:linear-gradient(135deg,#44b3ac,#3ba39c);transform:translateY(-1px);box-shadow:0 4px 12px #4ecdc44d}.chatinput button:active{transform:translateY(0);box-shadow:0 2px 6px #4ecdc433}.chatinput button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-page{height:100vh;background:linear-gradient(135deg,#0b0f17,#1a1f2e,#0f172a);display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 20%,rgba(78,205,196,.1) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(255,107,107,.1) 0%,transparent 50%);pointer-events:none}.login-container{background:#111827cc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:3rem;max-width:480px;width:100%;box-shadow:0 25px 50px #0000004d;border:1px solid rgba(255,255,255,.1);position:relative;z-index:1;animation:slideInUp .8s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:2.5rem}.login-logo{margin-bottom:1.5rem;animation:pulse 2s ease-in-out infinite}.logo-image{width:80px;height:80px;border-radius:20px;box-shadow:0 15px 30px #0000004d}.login-title{font-size:2.5rem;font-weight:700;margin:0 0 .5rem;background:linear-gradient(45deg,var(--teal),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-subtitle{color:var(--muted);font-size:1.1rem;margin:0;font-weight:500}.login-content{display:flex;flex-direction:column;gap:2rem}.login-features{display:flex;flex-direction:column;gap:1rem}.feature-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff0d;border-radius:16px;border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.feature-item:hover{background:#ffffff14;transform:translate(4px)}.feature-icon{font-size:1.5rem;min-width:40px;text-align:center}.feature-text h3{color:var(--text);font-size:1rem;font-weight:600;margin:0 0 .25rem}.feature-text p{color:var(--muted);font-size:.9rem;margin:0}.login-actions{display:flex;flex-direction:column;gap:.75rem;position:relative}.login-divider{display:flex;align-items:center;margin:.5rem 0;position:relative}.login-divider:before{content:"";flex:1;height:1px;background:#ffffff1a}.login-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.divider-text{padding:0 1rem;color:var(--muted);font-size:.9rem;font-weight:500;background:var(--card)}.google-button,.apple-button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;padding:1rem 1.5rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:16px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px #00000026;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.google-button:before,.apple-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.google-button:hover:before,.apple-button:hover:before{left:100%}.google-button:hover,.apple-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #00000040;background:#ffffff26;border-color:#ffffff4d}.google-button:active,.apple-button:active{transform:translateY(0);box-shadow:0 4px 16px #00000026}.google-button.loading,.apple-button.loading{cursor:not-allowed;opacity:.8}.google-button:disabled,.apple-button:disabled{cursor:not-allowed;opacity:.6}.apple-logo{display:flex;align-items:center;justify-content:center;color:#fff}.button-content{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1}.google-logo{display:flex;align-items:center;justify-content:center}.button-text{font-weight:600;letter-spacing:.025em}.loading-spinner{display:flex;align-items:center;gap:2px}.spinner-ring{width:4px;height:4px;border-radius:50%;background:#1f2937;animation:bounce 1.4s ease-in-out infinite both}.spinner-ring:nth-child(1){animation-delay:-.32s}.spinner-ring:nth-child(2){animation-delay:-.16s}.spinner-ring:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.error-toast{position:absolute;top:-80px;left:0;right:0;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;padding:1rem;border-radius:12px;display:flex;align-items:center;gap:.75rem;box-shadow:0 8px 24px #ef44444d;animation:slideDown .3s ease-out;z-index:10}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:1.2rem;flex-shrink:0}.error-content{flex:1}.error-title{font-weight:600;font-size:.9rem;margin-bottom:.25rem}.error-message{font-size:.8rem;opacity:.9}.error-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:background .2s ease}.error-close:hover{background:#fff3}.login-footer{text-align:center;display:flex;flex-direction:column;gap:1rem}.login-error{color:#ffb4b4}.login-hint{color:var(--muted);font-size:.9rem}.logout-btn{position:absolute;top:12px;right:12px;background:#ffffff14;color:var(--text);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.logout-btn:hover{background:#ffffff24}.logout-btn:disabled{opacity:.6;cursor:not-allowed}.privacy-text{color:var(--muted);font-size:.9rem;line-height:1.5;margin:0}.privacy-link{color:var(--teal);text-decoration:none;font-weight:500;transition:color .2s ease}.privacy-link:hover{color:#10b981;text-decoration:underline}.security-badge{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--muted);font-size:.8rem;font-weight:500}.security-icon{font-size:.9rem}@media (max-width: 480px){.login-container{padding:2rem;margin:1rem}.login-title{font-size:2rem}.feature-item{padding:.75rem}.google-button,.apple-button{padding:.875rem 1.25rem}.login-actions{gap:.5rem}.login-divider{margin:.25rem 0}}
