body.auth-panel-scroll-lock{overflow:hidden}.auth-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-backdrop, 1000);background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);opacity:0;pointer-events:none;transition:opacity .18s ease}.auth-backdrop.is-open{opacity:1;pointer-events:auto}[data-theme=dark] .auth-backdrop,[data-theme=blue-dark] .auth-backdrop{background:#000000a6}.auth-panel{width:100%;max-width:420px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 40px var(--shadow),0 1px 3px var(--shadow);overflow:hidden;transform:translateY(8px);transition:transform .18s ease;font-family:var(--font-body)}.auth-backdrop.is-open .auth-panel{transform:translateY(0)}[data-auth-panel-mode=full] .auth-panel{transform:none;box-shadow:0 4px 32px var(--shadow);margin:0 auto}.auth-panel-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.auth-panel-controls{display:flex;align-items:center;gap:var(--space-xs)}.auth-ctrl-btn{width:30px;height:30px;border-radius:var(--radius-full);background:transparent;border:1px solid var(--border);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease;font-size:var(--text-xs);font-weight:600;cursor:pointer}.auth-ctrl-btn:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.4)}.auth-close-btn{width:30px;height:30px;border-radius:var(--radius-full);background:transparent;border:1px solid transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease;cursor:pointer}.auth-close-btn:hover{color:var(--text-primary);background:var(--panel)}.auth-context{padding:var(--space-md) var(--space-lg) 0;display:flex;flex-direction:column;gap:var(--space-xs)}.auth-context-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.auth-context-snap{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space-md);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm)}.auth-context-snap-name{font-weight:600;color:var(--text-primary)}.auth-context-snap-meta{font-size:var(--text-xs);color:var(--text-muted)}.auth-context-snap-q{color:var(--text-secondary);margin-top:4px;font-size:var(--text-xs);line-height:1.5}.auth-tabs{display:flex;align-items:center;gap:0;padding:var(--space-lg) var(--space-lg) 0;position:relative}.auth-tab{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:color .15s ease,background .15s ease;font-family:inherit}.auth-tab[aria-selected=true]{color:var(--accent);background:var(--accent-tint);font-weight:600}.auth-tab:hover:not([aria-selected=true]){color:var(--text-primary);background:var(--panel)}.auth-tab-sep{color:var(--border);font-size:var(--text-xs);padding:0 2px;pointer-events:none;-webkit-user-select:none;user-select:none}.auth-panel-body{padding:var(--space-lg)}.auth-mode{display:none;flex-direction:column;gap:var(--space-md)}.auth-mode.is-active{display:flex;animation:authFadeIn .18s ease forwards}@keyframes authFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px var(--space-md);color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-body);outline:none;transition:border-color .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.auth-input:focus{border-color:var(--accent);outline:2px solid rgba(var(--accent-rgb),.2);outline-offset:0}.auth-input.has-error{border-color:var(--danger)}.auth-input.has-error:focus{outline-color:rgba(var(--danger-rgb),.2)}.auth-input--pw{padding-right:44px}.auth-eye-btn{position:absolute;right:10px;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease}.auth-eye-btn:hover{color:var(--text-secondary)}.auth-error-text{font-size:var(--text-sm);color:var(--danger);display:none;gap:var(--space-xs);align-items:flex-start}.auth-error-text.is-visible{display:flex}.auth-server-error{background:rgba(var(--danger-rgb),.08);border:1px solid rgba(var(--danger-rgb),.2);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--danger);display:none;margin-bottom:var(--space-sm)}.auth-server-error.is-visible{display:block}.auth-strength{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-strength.is-hidden{display:none}.auth-strength-bar{display:flex;gap:4px;height:3px}.auth-strength-seg{flex:1;border-radius:2px;background:var(--border);transition:background .3s ease}.auth-strength-seg.active-1,.auth-strength-seg.active-2{background:var(--warning)}.auth-strength-seg.active-3{background:color-mix(in srgb,var(--success) 70%,var(--warning))}.auth-strength-seg.active-4{background:var(--success)}.auth-strength-label{font-size:var(--text-xs);color:var(--text-muted)}.auth-strength-label.level-1,.auth-strength-label.level-2{color:var(--warning)}.auth-strength-label.level-3{color:color-mix(in srgb,var(--success) 70%,var(--warning))}.auth-strength-label.level-4{color:var(--success)}.auth-submit{width:100%;padding:12px var(--space-lg);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:var(--text-base);font-weight:600;border:none;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);cursor:pointer;transition:background .15s ease;margin-top:var(--space-sm);font-family:inherit}.auth-submit:hover{background:var(--accent-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:authSpin .7s linear infinite;display:none}.auth-submit.is-loading .auth-spinner{display:block}.auth-submit.is-loading .auth-btn-text{opacity:.7}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-links{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding-top:var(--space-sm);flex-wrap:wrap}.auth-link-btn{font-size:var(--text-sm);color:var(--text-muted);background:none;border:none;padding:0;cursor:pointer;transition:color .15s ease;text-decoration:underline;text-underline-offset:2px;text-decoration-color:transparent;font-family:inherit}.auth-link-btn:hover{color:var(--accent);text-decoration-color:rgba(var(--accent-rgb),.4)}.auth-link-sep{color:var(--border);font-size:var(--text-xs);pointer-events:none}.auth-forgot-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-forgot-form.is-hidden{display:none}.auth-confirm{display:none;flex-direction:column;align-items:center;text-align:center;gap:var(--space-md);padding:var(--space-lg) 0 var(--space-sm)}.auth-confirm.is-active{display:flex}.auth-confirm-icon{width:52px;height:52px;border-radius:var(--radius-full);background:var(--accent-tint);border:1px solid rgba(var(--accent-rgb),.15);display:flex;align-items:center;justify-content:center;color:var(--accent)}.auth-confirm-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0}.auth-confirm-body{font-size:var(--text-sm);color:var(--text-secondary);max-width:32ch;margin:0;line-height:1.6}@media(max-width:767px){[data-auth-panel-mode=quick].auth-backdrop{align-items:flex-end;padding:0}[data-auth-panel-mode=quick] .auth-panel{max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(24px)}[data-auth-panel-mode=quick].auth-backdrop.is-open .auth-panel{transform:translateY(0)}[data-auth-panel-mode=quick] .auth-panel-head{position:relative}[data-auth-panel-mode=quick] .auth-panel-head:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:3px;border-radius:2px;background:var(--border)}}.u-forgot-hint{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-md)}.u-spacer-30{width:30px}.auth-verify-banner{position:sticky;top:0;z-index:900;display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-lg);background:var(--accent-tint);border-bottom:1px solid rgba(var(--accent-rgb),.2);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-body)}.auth-verify-banner-icon{font-size:14px;opacity:.9}.auth-verify-banner-msg{flex:1;color:var(--text-secondary)}.auth-verify-banner-resend{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:4px 12px;font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background .15s ease;font-family:inherit}.auth-verify-banner-resend:hover{background:var(--accent-hover)}.auth-verify-banner-resend:disabled{opacity:.5;cursor:not-allowed}.auth-verify-banner-close{width:24px;height:24px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease,background .15s ease}.auth-verify-banner-close:hover{color:var(--text-primary);background:rgba(var(--accent-rgb),.08)}.auth-verify-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,24px);z-index:1100;padding:10px 18px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-body);box-shadow:0 6px 20px var(--shadow);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.auth-verify-toast.is-shown{opacity:1;transform:translate(-50%)}.auth-verify-toast--ok{border-color:color-mix(in srgb,var(--success) 40%,var(--border));color:var(--success)}.auth-verify-toast--err{border-color:color-mix(in srgb,var(--danger) 40%,var(--border));color:var(--danger)}.auth-verify-inline{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:rgba(var(--danger-rgb),.06);border:1px solid rgba(var(--danger-rgb),.25);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);margin:var(--space-sm) 0}.auth-verify-inline-msg{flex:1;color:var(--text-secondary)}.auth-verify-inline-resend{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:4px 12px;font-size:var(--text-xs);font-weight:600;cursor:pointer;font-family:inherit}.auth-verify-inline-resend:hover{background:var(--accent-hover)}
