/* ===== Signup/Login Modal ===== */
.osd-modal-bg{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center}
.osd-modal-bg.osd-modal-open{display:flex}
.osd-modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:40px;min-width:700px;max-width:700px;width:700px;position:relative;box-shadow:var(--card-shadow);animation:osd-modal-in 0.2s ease-out}
@keyframes osd-modal-in{from{opacity:0;transform:translateY(8px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:768px){.osd-modal-card{padding:28px 20px;min-width:0;width:90%}}
.osd-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px 8px;line-height:1;border-radius:6px}
.osd-modal-close:hover{color:var(--text-primary);background:var(--border)}
.osd-modal-title{font-size:24px;font-weight:700;color:var(--text-primary);text-align:center;margin:0 0 8px}
.osd-modal-subtitle{font-size:14px;color:var(--text-muted);text-align:center;margin:0 0 24px}
.osd-modal-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;box-sizing:border-box}
.osd-modal-google:hover{border-color:var(--accent)}
.osd-modal-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-muted);font-size:12px}
.osd-modal-divider::before,.osd-modal-divider::after{content:"";flex:1;height:1px;background:var(--border)}
.osd-modal-field{margin-bottom:16px}
.osd-modal-field label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:6px}
.osd-modal-field input{width:100%;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:15px;box-sizing:border-box}
.osd-modal-field input:focus{outline:none;border-color:var(--accent)}
.osd-modal-code-input{width:100%;padding:16px;font-size:28px;font-weight:700;letter-spacing:8px;text-align:center;text-transform:uppercase;font-family:"JetBrains Mono",Consolas,Monaco,"Courier New",monospace;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);box-sizing:border-box}
.osd-modal-code-input:focus{outline:none;border-color:var(--accent)}
.osd-modal-btn{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;margin-top:8px}
.osd-modal-btn:hover{background:var(--accent-dark)}
.osd-modal-btn:disabled{opacity:0.6;cursor:not-allowed}
.osd-modal-msg{display:none;font-size:13px;padding:10px 14px;border-radius:8px;margin-top:12px}
.osd-modal-error{display:block;background:rgba(239,68,68,0.1);border:1px solid var(--danger);color:var(--danger)}
.osd-modal-success{display:block;background:rgba(34,197,94,0.1);border:1px solid #22c55e;color:#22c55e}
.osd-modal-footer{font-size:14px;text-align:center;color:var(--text-muted);margin-top:16px}
.osd-modal-footer a,.osd-modal-footer span[onclick]{color:var(--accent);font-weight:500;cursor:pointer;text-decoration:none}
.osd-modal-footer a:hover,.osd-modal-footer span[onclick]:hover{text-decoration:underline}
.osd-modal-screen{display:none}
.osd-modal-screen.osd-modal-active{display:block}
.osd-modal-resend{font-size:13px;color:var(--text-muted);text-align:center;margin-top:12px}
.osd-modal-resend a,.osd-modal-resend span[onclick]{color:var(--accent);cursor:pointer;text-decoration:none}
.osd-modal-resend a:hover,.osd-modal-resend span[onclick]:hover{text-decoration:underline}
.osd-modal-check{font-size:48px;text-align:center;margin-bottom:12px}
.osd-modal-field input::placeholder{color:var(--text-muted);opacity:0.5}
.osd-modal-code-input::placeholder{color:var(--text-muted);opacity:0.4}
