body.auth-open{overflow:hidden}.auth-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.2s authOverlayIn;display:flex;position:fixed;inset:0}@keyframes authOverlayIn{0%{opacity:0}to{opacity:1}}.auth-modal{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:480px;animation:.25s authModalIn;position:relative;overflow:hidden;box-shadow:0 24px 64px #0000002e,0 4px 16px #0000001a}@keyframes authModalIn{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-close{cursor:pointer;width:32px;height:32px;color:var(--tm);z-index:1;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .2s,color .2s;display:flex;position:absolute;top:14px;left:14px}.auth-close:hover{background:var(--grey);color:var(--text)}.auth-modal-header{padding:18px var(--space-xl);text-align:center;border-bottom:1px solid var(--border)}.auth-modal-title{font-family:var(--font-body);color:var(--text);margin:0;font-size:16px;font-weight:700}.auth-modal-body{padding:var(--space-xl)}.auth-btn-primary{background:var(--p);color:#fff;border-radius:var(--radius-pill);width:100%;height:56px;font-family:var(--font-body);cursor:pointer;margin-bottom:var(--space-md);border:none;justify-content:center;align-items:center;font-size:16px;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s;display:flex}.auth-btn-primary:hover{background:var(--p-hover);transform:translateY(-1px);box-shadow:0 6px 24px #552d6c47}.auth-btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.auth-btn-google{background:var(--white);width:100%;height:56px;color:var(--text);border:1.5px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;margin-bottom:var(--space-md);justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:600;transition:background .15s;display:flex}.auth-btn-google:hover{background:var(--grey)}.auth-btn-google svg{flex-shrink:0;width:20px;height:20px}.auth-divider{margin-bottom:var(--space-md);align-items:center;gap:12px;display:flex}.auth-divider-line{background:var(--border);flex:1;height:1px}.auth-divider-text{color:var(--tl);white-space:nowrap;font-size:14px;font-weight:500}.auth-modal-footer{border-top:1px solid var(--border);padding:var(--space-md)var(--space-xl);text-align:center}.auth-modal-footer p{color:var(--tm);margin:0;font-size:14px}.auth-modal-footer button{color:var(--p);font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0}.auth-modal-footer button:hover{text-decoration:underline}@media (max-width:600px){.auth-overlay{align-items:flex-end;padding:0}.auth-modal{border-radius:var(--radius-lg)var(--radius-lg)0 0;max-width:100%;animation:.3s cubic-bezier(.32,.72,0,1) authSheetIn}}@keyframes authSheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}
.auth-input-group{border:1.5px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--space-md);transition:border-color .2s,box-shadow .2s;overflow:hidden}.auth-input-group:focus-within{border-color:var(--p);box-shadow:0 0 0 3px #552d6c1a}.auth-input-field{border-bottom:1px solid var(--border);position:relative}.auth-input-field:last-child{border-bottom:none}.auth-input{width:100%;height:56px;font-family:var(--font-body);color:var(--text);box-sizing:border-box;background:0 0;border:none;outline:none;padding:0 48px 0 16px;font-size:16px}.auth-input::placeholder{color:var(--tl)}.auth-pw-toggle{cursor:pointer;color:var(--tl);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:18px;line-height:1;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.auth-pw-toggle:hover{color:var(--text)}.auth-input-solo{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;height:56px;font-family:var(--font-body);color:var(--text);box-sizing:border-box;margin-bottom:var(--space-md);background:0 0;outline:none;padding:0 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.auth-input-solo:focus{border-color:var(--p);box-shadow:0 0 0 3px #552d6c1a}.auth-input-solo::placeholder{color:var(--tl)}.auth-hint{color:var(--tl);margin-bottom:var(--space-md);font-size:14px;line-height:1.5}.auth-hint a{color:var(--p);text-decoration:none}.auth-hint a:hover{text-decoration:underline}.auth-error{color:#d32f2f;margin-bottom:var(--space-md);border-radius:var(--radius-sm);background:#fde8e8;border-left:3px solid #d32f2f;padding:10px 14px;font-size:14px}.auth-resend{color:var(--p);font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0}.auth-resend:hover{text-decoration:underline}.auth-resend:disabled{color:var(--tl);cursor:not-allowed;text-decoration:none}.auth-back{color:var(--tl);font-size:14px;font-family:var(--font-body);cursor:pointer;margin-bottom:var(--space-md);background:0 0;border:none;align-items:center;gap:4px;padding:0;transition:color .15s;display:flex}.auth-back:hover{color:var(--text)}.auth-code-label{color:var(--tm);text-align:center;margin-bottom:var(--space-md);font-size:14px;line-height:1.5}.auth-code-label strong{color:var(--text);font-weight:700}.auth-code-boxes{margin-bottom:var(--space-md);justify-content:center;gap:8px;display:flex}.auth-code-box{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:52px;height:60px;font-family:var(--font-body);color:var(--text);text-align:center;cursor:text;caret-color:var(--p);outline:none;font-size:24px;font-weight:700;transition:border-color .2s,box-shadow .2s}.auth-code-box:focus{border-color:var(--p);box-shadow:0 0 0 3px #552d6c1a}.auth-code-box.filled{border-color:var(--p)}.auth-resend-row{text-align:center;margin-bottom:var(--space-md)}.auth-resend-row span{color:var(--tm);font-size:14px}@media (max-width:600px){.auth-code-boxes{gap:6px}.auth-code-box{width:44px;height:52px;font-size:20px}}@media (max-width:380px){.auth-code-box{width:38px;height:48px;font-size:18px}}
