.auth-page{justify-content:center;align-items:flex-start;min-height:60vh;padding:2rem 1rem;display:flex}.auth-card{width:100%;max-width:var(--popup-sm);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:16px;padding:2rem}.auth-title{text-align:center;color:var(--color-text);margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.auth-form{flex-direction:column;gap:.15rem;display:flex}.auth-divider{align-items:center;gap:.75rem;margin:1.25rem 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-divider span{color:var(--color-text-muted);font-size:.8rem}.btn-google{background:var(--color-surface);color:var(--color-text);justify-content:center;align-items:center;gap:.5rem;font-weight:500;display:flex;border:1.5px solid var(--color-border-strong)!important}.btn-google:hover{background:var(--color-surface-hover);border-color:var(--color-text-muted)!important}.btn-google:focus{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-color:var(--color-primary)!important}.btn-google:disabled{opacity:.6;border-color:var(--color-border)!important}.auth-links{text-align:center;margin-top:1.25rem}.auth-links a{color:var(--color-primary);font-size:.9rem;text-decoration:none;display:inline-block}.auth-links a:hover{text-decoration:underline}.auth-agreements{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.checkbox-wrapper{flex-direction:column;gap:.25rem;display:flex}.checkbox-label{color:var(--color-text);cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.checkbox-error{margin-top:.25rem;margin-left:24px;font-size:.8rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-full{width:100%}.form-input{font-family:inherit}.form-input:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.form-error{color:var(--color-danger);margin-top:.25rem;font-size:.8rem;display:block}.auth-page--register-email{--reg-bg:#1c1c1c;--reg-surface:#2a2a2a;--reg-border:#3f3f3f;--reg-text:#fff;--reg-muted:#9ca3af;--reg-accent:#3ecf8e;--reg-accent-hover:#36b87d;background:var(--reg-bg);box-sizing:border-box;justify-content:flex-start;align-items:stretch;min-height:100dvh;padding:0}.auth-page--register-email *{box-sizing:border-box}.auth-register-shell{width:100%;max-width:var(--popup-sm);flex-direction:column;min-height:100dvh;margin:0 auto;padding:1.25rem 1.25rem 2rem;display:flex}.auth-register-brand{color:var(--reg-text);letter-spacing:-.02em;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.auth-register-brand-mark{width:28px;height:28px;color:var(--reg-accent);flex-shrink:0}.auth-register-headline{color:var(--reg-text);letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.75rem;font-weight:700;line-height:1.2}.auth-register-subtitle{color:var(--reg-muted);margin:0 0 1.75rem;font-size:.95rem;line-height:1.45}.auth-register-btn-social{border:1px solid var(--reg-border);background:var(--reg-surface);width:100%;color:var(--reg-text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.6rem;margin-bottom:.75rem;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.auth-register-btn-social:hover:not(:disabled){background:#333;border-color:#525252}.auth-register-btn-social:disabled{opacity:.55;cursor:not-allowed}.auth-register-btn-social svg{flex-shrink:0}.auth-register-google-spinner{border:2px solid var(--reg-border);border-top-color:var(--reg-text);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.7s linear infinite auth-register-spin}@keyframes auth-register-spin{to{transform:rotate(360deg)}}.auth-register-btn-link{border:1px solid var(--reg-border);width:100%;color:var(--reg-text);cursor:pointer;background:0 0;border-radius:10px;margin-bottom:.5rem;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:background .15s}.auth-register-btn-link:hover{background:#ffffff0a}.auth-page--register-email .auth-divider{margin:1.35rem 0}.auth-page--register-email .auth-divider:before,.auth-page--register-email .auth-divider:after{background:var(--reg-border)}.auth-page--register-email .auth-divider span{color:var(--reg-muted);text-transform:lowercase}.auth-register-field{margin-bottom:1rem}.auth-register-label-row{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.auth-register-label{color:var(--reg-text);font-size:.8rem;font-weight:600;display:block}.auth-register-label-link{color:var(--reg-muted);font-size:.8rem;font-weight:400;text-decoration:none}.auth-register-label-link:hover{color:var(--reg-text);text-decoration:underline}.auth-register-input-wrap{align-items:center;display:flex;position:relative}.auth-register-input{border:1px solid var(--reg-border);background:var(--reg-surface);width:100%;color:var(--reg-text);border-radius:8px;padding:.75rem 2.75rem .75rem .85rem;font-family:inherit;font-size:.95rem}.auth-register-input::placeholder{color:#6b7280}.auth-register-input:focus{border-color:var(--reg-accent);outline:none;box-shadow:0 0 0 2px #3ecf8e33}.auth-register-input--error{border-color:#f87171}.auth-register-input--no-toggle{padding-right:.85rem}.auth-register-toggle-pw{color:var(--reg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.35rem;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.auth-register-toggle-pw:hover{color:var(--reg-text);background:#ffffff0f}.auth-page--register-email .form-error{color:#fca5a5;margin-top:.35rem}.auth-register-agreements{gap:.65rem;margin:.25rem 0 1.25rem}.auth-page--register-email .checkbox-label{color:var(--reg-muted);font-size:.82rem}.auth-page--register-email .checkbox-label a{color:var(--reg-text);text-underline-offset:2px;text-decoration:underline}.auth-page--register-email .checkbox-label input[type=checkbox]{accent-color:var(--reg-accent)}.auth-register-social-wrap{width:100%;margin-bottom:.75rem;position:relative}.auth-register-last-used{z-index:1;letter-spacing:.04em;background:var(--reg-accent);color:#0f172a;border-radius:4px;padding:3px 7px;font-size:.62rem;font-weight:700;line-height:1;position:absolute;top:-7px;right:10px}.auth-register-pw-rules{margin:0 0 .85rem;padding:0;list-style:none}.auth-register-pw-rules li{color:var(--reg-muted);align-items:flex-start;gap:.45rem;margin-bottom:.3rem;font-size:.72rem;line-height:1.35;display:flex}.auth-register-pw-rules li.met{color:#86efac}.auth-register-rule-dot{opacity:.85;border:1.5px solid;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:1px;position:relative}.auth-register-pw-rules li.met .auth-register-rule-dot{border-color:var(--reg-accent);background:var(--reg-accent);opacity:1}.auth-register-pw-rules li.met .auth-register-rule-dot:after{content:"";border:1.5px solid #0f172a;border-width:0 1.5px 1.5px 0;width:4px;height:7px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.auth-register-btn-primary{background:var(--reg-accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:.9rem 1rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .15s}.auth-register-btn-primary:hover:not(:disabled){background:var(--reg-accent-hover)}.auth-register-btn-primary:focus-visible{outline:2px solid var(--reg-accent);outline-offset:2px}.auth-register-btn-primary:disabled{opacity:.55;cursor:not-allowed}.auth-register-footer{text-align:center;margin-top:auto;padding-top:1.5rem}.auth-register-switch{color:var(--reg-muted);margin:0 0 1rem;font-size:.9rem}.auth-register-switch a{color:var(--reg-text);text-underline-offset:3px;font-weight:500;text-decoration:underline}.auth-register-legal{color:var(--reg-muted);margin:0;font-size:.7rem;line-height:1.5}.auth-register-legal a{color:var(--reg-muted);text-underline-offset:2px;text-decoration:underline}.auth-register-legal a:hover{color:var(--reg-text)}.auth-register-alert{color:#fcd34d;background:#fbbf241f;border:1px solid #fbbf2459;border-radius:8px;margin-bottom:1rem;padding:.75rem;font-size:.85rem}.auth-page--register-email .auth-form{gap:0}.auth-verify-sent-backdrop{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.auth-verify-sent-dialog{width:min(var(--popup-mobile-vw), var(--popup-sm));max-width:var(--popup-sm);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:16px;padding:1.75rem 1.5rem;box-shadow:0 20px 50px #0000002e}.auth-verify-sent-title{text-align:center;color:var(--color-text);letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.35rem;font-weight:800;line-height:1.25}.auth-verify-sent-email{text-align:center;color:var(--color-text-muted);word-break:break-all;margin:0 0 1rem;font-size:.9rem;font-weight:600}.auth-verify-sent-hint{text-align:center;color:var(--color-text-muted);margin:0 0 1.25rem;font-size:.875rem;font-weight:400;line-height:1.5}.auth-verify-sent-confirm{margin-top:.25rem;font-weight:700}.login-required-dialog{position:relative}.login-required-header{justify-content:center;align-items:flex-start;display:flex;position:relative}.login-required-title{margin:0 0 .75rem}.login-required-close{border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text);cursor:pointer;border-radius:10px;font-size:20px;line-height:1;position:absolute;top:-2px;right:0}.login-required-close:hover{background:var(--color-surface-hover)}.login-required-hint{margin-top:0}.login-required-tabs{gap:.5rem;margin:0 0 .75rem;display:flex}.login-required-tab{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:10px;flex:1;padding:.55rem .75rem;font-weight:700}.login-required-tab.active{color:var(--color-text);border-color:var(--color-border-strong);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-border-strong) 40%, transparent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
