/* ══════════════════════════════════════════════
 * Auth Modal — Login / Register
 * ══════════════════════════════════════════════ */

/* Overlay */
.auth-overlay{position:fixed;inset:0;z-index:9999;background:rgba(10,20,40,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.auth-overlay.active{opacity:1;pointer-events:auto}

/* Modal Card */
.auth-modal{background:#fff;border-radius:16px;width:440px;max-width:92vw;max-height:90vh;overflow-y:auto;padding:36px 32px 32px;box-shadow:0 20px 60px rgba(0,0,0,.18);transform:translateY(20px) scale(.97);transition:transform .3s ease}
.auth-overlay.active .auth-modal{transform:translateY(0) scale(1)}

/* Close Button */
.auth-close{position:absolute;top:16px;right:18px;background:none;border:none;font-size:20px;color:var(--slate);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s}
.auth-close:hover{background:#f0f1f4;color:var(--ink)}
.auth-modal{position:relative}

/* Tabs */
.auth-tabs{display:flex;gap:0;margin-bottom:28px;border-bottom:2px solid var(--line)}
.auth-tab{flex:1;padding:12px 0;text-align:center;font-family:'Poppins',sans-serif;font-size:15px;font-weight:600;color:var(--slate);background:none;border:none;cursor:pointer;position:relative;transition:color .2s}
.auth-tab::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:transparent;transition:background .2s}
.auth-tab.active{color:var(--navy)}
.auth-tab.active::after{background:var(--gold)}

/* Form Panels */
.auth-panel{display:none}
.auth-panel.active{display:block}

/* Field Group */
.auth-fld{margin-bottom:18px}
.auth-fld label{display:block;font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--navy);margin-bottom:6px}
.auth-fld input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);background:#fbfcfe;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}
.auth-fld input::placeholder{color:#aab3c0}
.auth-fld input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(207,163,50,.12)}
.auth-fld input.error{border-color:#e74c3c}
.auth-fld .field-error{color:#e74c3c;font-size:12px;margin-top:4px;display:none}
.auth-fld .field-error.show{display:block}

/* Honeypot — hidden from humans */
.auth-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden;pointer-events:none;tabindex:-1}

/* Password strength meter */
.pwd-strength{height:4px;border-radius:2px;background:#e8e8e8;margin-top:6px;overflow:hidden}
.pwd-strength-bar{height:100%;width:0;border-radius:2px;transition:width .3s,background .3s}
.pwd-strength-bar.weak{width:33%;background:#e74c3c}
.pwd-strength-bar.medium{width:66%;background:#f39c12}
.pwd-strength-bar.strong{width:100%;background:#27ae60}
.pwd-strength-label{font-size:11px;margin-top:3px;color:var(--slate)}

/* Submit Button */
.auth-submit{width:100%;padding:14px;border:none;border-radius:10px;background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s;margin-top:6px}
.auth-submit:hover{background:#0d2a5c}
.auth-submit:active{transform:scale(.98)}
.auth-submit:disabled{opacity:.6;cursor:not-allowed}

/* Loading spinner on button */
.auth-submit.loading{pointer-events:none;position:relative;color:transparent}
.auth-submit.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Message */
.auth-msg{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;display:none}
.auth-msg.show{display:block}
.auth-msg.success{background:#eafaf1;color:#1a7a42;border:1px solid #a3d9b1}
.auth-msg.error{background:#fdf0ef;color:#c0392b;border:1px solid #f5c6c0}

/* Footer link */
.auth-footer{text-align:center;margin-top:18px;font-size:13px;color:var(--slate)}
.auth-footer a{color:var(--gold);font-weight:600;cursor:pointer;text-decoration:none}
.auth-footer a:hover{text-decoration:underline}

/* Forgot password */
.auth-forgot{text-align:right;margin:-10px 0 16px;font-size:12.5px}
.auth-forgot a{color:var(--gold);cursor:pointer;text-decoration:none}
.auth-forgot a:hover{text-decoration:underline}

/* ── Logged-in Account Dropdown ── */
.acct{position:relative;cursor:pointer}
.acct-initial{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-family:'Poppins',sans-serif;font-weight:700;font-size:14px}
.acct-drop{position:absolute;top:calc(100% + 10px);right:0;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.12);z-index:100;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.acct.open .acct-drop{opacity:1;pointer-events:auto;transform:translateY(0)}
.acct-drop-header{padding:14px 16px;border-bottom:1px solid var(--line)}
.acct-drop-header strong{display:block;font-family:'Poppins',sans-serif;font-size:14px;color:var(--navy)}
.acct-drop-header small{color:var(--slate);font-size:12px}
.acct-drop-menu{padding:6px 0}
.acct-drop-menu a{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:14px;color:var(--ink);text-decoration:none;transition:background .15s}
.acct-drop-menu a:hover{background:var(--bg)}
.acct-drop-menu a i{width:18px;text-align:center;color:var(--slate);font-size:13px}
.acct-drop-sep{border-top:1px solid var(--line);margin:4px 0}
.acct-drop-menu a.logout-link{color:#e74c3c}
.acct-drop-menu a.logout-link i{color:#e74c3c}

/* Responsive */
@media(max-width:560px){
  .auth-modal{padding:28px 22px 24px}
  .auth-tab{font-size:14px;padding:10px 0}
}
