/* ================= 统一暗黑系弹窗样式 ================= */
    .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); backdrop-filter: blur(8px); z-index: 1000; display: none; align-items: center; justify-content: center; opacity: 0; transition: 0.3s; }
    .modal-overlay.show { display: flex; opacity: 1; }
    .auth-modal { background: var(--bg-panel); width: 380px; border-radius: var(--radius-lg); border: 1px solid var(--border-color); box-shadow: 0 20px 40px rgba(0,0,0,0.5); overflow: hidden; transform: translateY(20px); transition: 0.3s; }
    .modal-overlay.show .auth-modal { transform: translateY(0); }
    .auth-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid var(--border-color); }
    .auth-title { font-size: 18px; font-weight: bold; }
    .close-btn { background: none; border: none; color: var(--text-secondary); font-size: 20px; cursor: pointer; transition: 0.2s; }
    .close-btn:hover { color: var(--text-primary); }
    .auth-body { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
    .auth-input { width: 100%; background: var(--bg-main); border: 1px solid var(--border-color); padding: 12px 16px; border-radius: 8px; color: var(--text-primary); font-size: 14px; outline: none; transition: 0.2s; }
    .auth-input:focus { border-color: var(--accent-green); }
    .auth-btn { width: 100%; background: var(--accent-green); color: #000; font-weight: bold; font-size: 15px; border: none; padding: 12px; border-radius: 8px; cursor: pointer; transition: 0.2s; margin-top: 8px; }
    .auth-btn:hover { opacity: 0.9; transform: translateY(-1px); }
    .auth-switch { text-align: center; font-size: 12px; color: var(--text-secondary); margin-top: 8px; }
    .auth-switch span { color: var(--accent-green); cursor: pointer; font-weight: bold; }
    
    .password-wrapper { position: relative; width: 100%; }
    .password-wrapper .auth-input { padding-right: 48px; } 
    .eye-toggle-btn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: center; opacity: 0.6; transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); z-index: 5; }
    .eye-toggle-btn:hover { opacity: 1; }
    .eye-toggle-btn svg { width: 100%; height: 100%; fill: var(--text-secondary); transition: fill 0.2s; }
    .eye-toggle-btn.active { opacity: 1; }
    .eye-toggle-btn.active svg { fill: var(--text-primary); }
    .eye-toggle-btn .eye-open { display: none; }
    .eye-toggle-btn .eye-close { display: block; }
    .eye-toggle-btn.active .eye-open { display: block; }
    .eye-toggle-btn.active .eye-close { display: none; }
