.auth-modal-overlay{position:fixed; inset:0; background:rgba(15,23,42,0.55); display:flex; align-items:center; justify-content:center; z-index:11000; opacity:0; visibility:hidden; transition:opacity 0.2s ease,visibility 0.2s ease; padding:16px}.auth-modal-overlay.show{opacity:1; visibility:visible}.auth-modal{width:100%; max-width:420px; background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(2,6,23,0.28); transform:translateY(16px) scale(0.98); transition:transform 0.2s ease; overflow:hidden}.auth-modal-overlay.show .auth-modal{transform:translateY(0) scale(1)}.auth-modal-header{display:flex; align-items:center; justify-content:space-between; padding:18px 20px 12px; border-bottom:1px solid #f1f5f9}.auth-modal-header h3{margin:0; font-size:1.15rem; color:#0f172a; font-weight:700}.auth-modal-close{border:0; background:transparent; color:#64748b; font-size:1.1rem; cursor:pointer; width:36px; height:36px; border-radius:10px}.auth-modal-close:hover{background:#f8fafc; color:#0f172a}.auth-modal-body{padding:18px 20px 22px}.auth-google-wrap{display:flex; justify-content:center; min-height:44px; margin-bottom:14px}.auth-divider{display:flex; align-items:center; gap:12px; margin:8px 0 16px; color:#94a3b8; font-size:0.85rem}.auth-divider::before,.auth-divider::after{content:""; flex:1; height:1px; background:#e2e8f0}.auth-tabs{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px}.auth-tab{border:1px solid #e2e8f0; background:#fff; color:#475569; border-radius:10px; height:38px; font-weight:600; cursor:pointer}.auth-tab.active{border-color:#c7d2fe; background:#eef2ff; color:#3730a3}.auth-form{display:none; flex-direction:column; gap:12px}.auth-form.active{display:flex}.auth-field{display:flex; flex-direction:column; gap:6px}.auth-field label{font-size:0.85rem; color:#475569; font-weight:600}.auth-field input{height:42px; border:1px solid #e2e8f0; border-radius:10px; padding:0 12px; font-size:0.95rem; color:#0f172a; outline:none}.auth-field input:focus{border-color:#818cf8; box-shadow:0 0 0 3px rgba(99,102,241,0.15)}.auth-submit{height:44px; border:0; border-radius:11px; background:#4f46e5; color:#fff; font-weight:700; cursor:pointer; margin-top:4px}.auth-submit:hover{background:#4338ca}.auth-submit:disabled{opacity:0.65; cursor:not-allowed}.auth-error{display:none; margin-top:2px; padding:10px 12px; border-radius:10px; background:#fef2f2; color:#b91c1c; font-size:0.88rem}.auth-error.show{display:block}.auth-hint{margin:0; color:#64748b; font-size:0.82rem; line-height:1.4}.auth-login-btn{display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 14px; border-radius:12px; border:1px solid #e5e7eb; background:#fff; color:#334155; font-weight:600; font-size:0.9rem; cursor:pointer; box-shadow:0 1px 2px rgba(2,6,23,0.04),0 4px 10px rgba(2,6,23,0.06); white-space:nowrap}.auth-login-btn:hover{background:#f8fafc; border-color:#cbd5e1}.auth-user-menu{position:relative}.auth-user-btn{display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 10px 0 6px; border-radius:12px; border:1px solid #e5e7eb; background:#fff; color:#334155; font-weight:600; font-size:0.88rem; cursor:pointer; max-width:180px}.auth-user-avatar{width:26px; height:26px; border-radius:50%; object-fit:cover; background:#e2e8f0}.auth-user-avatar.fallback{display:inline-flex; align-items:center; justify-content:center; color:#475569; font-size:0.75rem; font-weight:700}.auth-user-name{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}.auth-user-dropdown{position:absolute; right:0; top:calc(100% + 8px); min-width:180px; background:#fff; border-radius:12px; box-shadow:0 12px 30px rgba(2,6,23,0.18); padding:6px; display:none; z-index:4000}.auth-user-dropdown.open{display:block}.auth-user-dropdown button{width:100%; text-align:left; border:0; background:transparent; padding:10px 12px; border-radius:8px; cursor:pointer; color:#0f172a; font-size:0.9rem}.auth-user-dropdown button:hover{background:#f1f5f9}@media (max-width:768px){.header-tagline{display:none}.auth-user-name{display:none}.auth-user-btn{padding:0 6px; max-width:none}}