/* ================================================================
   Neve Auth Drawer  v2.9
   Exact match to reference screenshots — clean black & white
   ================================================================ */

:root {
  --nad-black:   #000;
  --nad-white:   #fff;
  --nad-grey-6:  #666;
  --nad-grey-9:  #999;
  --nad-grey-c:  #ccc;
  --nad-grey-e:  #e8e8e8;
  --nad-error:   #c0392b;
  --nad-success: #27ae60;
  --nad-w:       480px;
  --nad-ease:    cubic-bezier(.4,0,.2,1);
  --nad-dur:     .32s;
}

.nad-drawer *, .nad-drawer *::before, .nad-drawer *::after { box-sizing: border-box; }

/* ── Overlay ───────────────────────────────────────────────────── */
.nad-overlay {
  position: fixed; inset: 0; z-index: 99998;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
  opacity: 0; pointer-events: none;
  transition: opacity var(--nad-dur) var(--nad-ease);
}
.nad-overlay.is-open { opacity: 1; pointer-events: auto; }

/* ── Drawer ────────────────────────────────────────────────────── */
.nad-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  z-index: 99999;
  width: min(var(--nad-w), 100vw);
  background: var(--nad-white);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--nad-dur) var(--nad-ease);
  outline: none;
}
.nad-drawer.is-open { transform: translateX(0); box-shadow: -6px 0 32px rgba(0,0,0,.14); }

/* ── Close ─────────────────────────────────────────────────────── */
.nad-close {
  position: absolute; top: 18px; right: 20px; z-index: 10;
  width: 36px; height: 36px; padding: 0;
  background: none !important; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--nad-grey-6);
  transition: color .2s;
}
.nad-close:hover { color: var(--nad-black); }
.nad-close:focus-visible { outline: 2px solid var(--nad-black); border-radius: 2px; }
.nad-close svg { width: 22px; height: 22px; }

/* ── Tab strip ─────────────────────────────────────────────────── */
.nad-tabs-wrap { flex-shrink: 0; padding: 28px 28px 0; }
.nad-heading {
  font-size: 20px; font-weight: 700; letter-spacing: .08em;
  color: var(--nad-black); margin: 0 0 22px; padding-right: 40px;
}
.nad-tabs { display: flex; border-bottom: 1px solid var(--nad-grey-e); }
.nad-tab {
  flex: 1;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -1px;
  padding: 10px 6px 12px;
  font-family: inherit; font-size: 13.5px; font-weight: 500;
  color: var(--nad-grey-9);
  cursor: pointer; letter-spacing: .02em;
  transition: color .2s, border-bottom-color .2s;
  outline: none;
}
/* Active tab — black underline, bold */
.nad-tab.is-active {
  color: var(--nad-black) !important;
  border-bottom-color: var(--nad-black) !important;
  font-weight: 700 !important;
  background: transparent !important;
}
/* Hover — NO color change, transparent bg always */
.nad-tab:hover {
  color: var(--nad-grey-9) !important;
  background: transparent !important;
}
.nad-tab.is-active:hover {
  color: var(--nad-black) !important;
  background: transparent !important;
}
.nad-tab:focus-visible { outline: 2px solid var(--nad-black); outline-offset: -2px; }

/* ── Scrollable body ───────────────────────────────────────────── */
.nad-body {
  flex: 1; overflow-y: auto;
  padding: 24px 28px 16px;
  scrollbar-width: thin; scrollbar-color: var(--nad-grey-e) transparent;
}
.nad-body::-webkit-scrollbar { width: 4px; }
.nad-body::-webkit-scrollbar-thumb { background: var(--nad-grey-e); }

/* ── Panel ─────────────────────────────────────────────────────── */
.nad-panel { display: none; }
.nad-panel.is-active { display: block; animation: nad-in .22s var(--nad-ease); }
@keyframes nad-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

/* ── Benefits ──────────────────────────────────────────────────── */
.nad-benefits { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.nad-benefits li { display: flex; align-items: flex-start; gap: 11px; font-size: 13px; color: var(--nad-grey-6); line-height: 1.5; }
.nad-benefits svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; color: var(--nad-black); }

/* ── Alert ─────────────────────────────────────────────────────── */
.nad-alert { padding: 10px 13px; font-size: 12.5px; line-height: 1.5; margin-bottom: 18px; border: 1px solid transparent; }
.nad-alert.is-error   { border-color: #f5c6cb; background: #fff5f5; color: var(--nad-error); }
.nad-alert.is-success { border-color: #c3e6cb; background: #f4fff8; color: var(--nad-success); }

/* ── Form ──────────────────────────────────────────────────────── */
.nad-form { display: flex; flex-direction: column; gap: 0; }

/* ── Field — bottom border only, placeholder as label ─────────── */
.nad-field {
  display: flex; flex-direction: column;
  border: none !important;
  border-bottom: 1px solid var(--nad-grey-c) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  margin-bottom: 12px;
  padding-bottom: 2px;
  position: relative;
  background: transparent !important;
  box-shadow: none !important;
}
.nad-field:focus-within {
  border-bottom-color: var(--nad-black) !important;
}
.nad-field.is-invalid { border-bottom-color: var(--nad-error) !important; }
.nad-field.is-valid   { border-bottom-color: var(--nad-success) !important; }

.nad-field input {
  width: 100% !important;
  height: 44px !important;
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  font-family: inherit;
  font-size: 14px;
  color: var(--nad-black);
  padding: 0 !important;
  border-radius: 0 !important;
  -webkit-appearance: none; appearance: none;
}
.nad-field input::placeholder { color: var(--nad-grey-6); font-size: 14px; }
.nad-field input:focus { outline: none !important; box-shadow: none !important; }

/* Date field */
.nad-field--date { padding-top: 4px; }
.nad-date-label  { font-size: 13px; color: var(--nad-grey-6); margin-bottom: 4px; display: block; }
.nad-field--date input[type="date"] { height: 36px !important; cursor: pointer; }

/* Remove autofill yellow */
.nad-field input:-webkit-autofill,
.nad-field input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  -webkit-text-fill-color: var(--nad-black) !important;
}

.nad-field-err { font-size: 11px; color: var(--nad-error); min-height: 14px; line-height: 1.4; margin-top: 2px; }

/* Password wrapper */
.nad-pw-wrap { position: relative; display: flex; align-items: center; }
.nad-pw-wrap input { padding-right: 36px !important; }
.nad-pw-toggle {
  position: absolute; right: 0;
  background: none !important; border: none !important;
  cursor: pointer; padding: 4px; color: var(--nad-grey-9); line-height: 0;
  transition: color .2s;
}
.nad-pw-toggle:hover { color: var(--nad-black); }
.nad-pw-toggle svg   { width: 17px; height: 17px; }

/* Forgot / return links */
.nad-forgot, .nad-return-login {
  display: block; text-align: center;
  font-size: 12.5px; color: var(--nad-grey-6);
  text-decoration: underline; text-underline-offset: 2px;
  margin-top: 14px; cursor: pointer; transition: color .2s;
  background: none !important; border: none !important; padding: 0;
}
.nad-forgot:hover, .nad-return-login:hover { color: var(--nad-black); }

/* ── Checkboxes ────────────────────────────────────────────────── */
.nad-check {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--nad-grey-6);
  cursor: pointer; user-select: none; line-height: 1.5; margin-top: 14px;
}
.nad-check input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.nad-check-box {
  width: 16px; height: 16px; min-width: 16px;
  border: 1px solid var(--nad-grey-9) !important;
  background: var(--nad-white) !important;
  position: relative; margin-top: 2px;
  transition: border-color .15s, background .15s;
  flex-shrink: 0;
}
.nad-check input:checked + .nad-check-box { background: var(--nad-black) !important; border-color: var(--nad-black) !important; }
.nad-check-box::after {
  content: ''; position: absolute; display: none;
  left: 4px; top: 1px; width: 5px; height: 9px;
  border: 2px solid var(--nad-white);
  border-top: none; border-left: none;
  transform: rotate(45deg);
}
.nad-check input:checked + .nad-check-box::after { display: block; }
.nad-check:focus-within .nad-check-box { outline: 2px solid var(--nad-black); outline-offset: 2px; }
.nad-inline-link { color: var(--nad-grey-6); text-decoration: underline; }
.nad-inline-link:hover { color: var(--nad-black); }

/* ── Recover panel ─────────────────────────────────────────────── */
.nad-recover-title { font-size: 18px; font-weight: 700; letter-spacing: .06em; color: var(--nad-black); margin: 0 0 16px; }
.nad-recover-desc  { font-size: 13px; color: var(--nad-grey-6); line-height: 1.6; margin: 0 0 20px; }

/* ── Pinned footer ─────────────────────────────────────────────── */
.nad-footer {
  flex-shrink: 0;
  padding: 12px 28px 20px;
  background: var(--nad-white);
  border-top: 1px solid var(--nad-grey-e);
}
.nad-footer-panel          { display: none; }
.nad-footer-panel.is-active { display: block; }

/* ── Buttons ───────────────────────────────────────────────────── */
.nad-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: 52px;
  font-family: inherit; font-size: 12.5px; font-weight: 700; letter-spacing: .13em;
  cursor: pointer; border: 1px solid transparent;
  transition: background .2s, color .2s, border-color .2s;
  position: relative; overflow: hidden; text-decoration: none;
}
.nad-btn:focus-visible { outline: 2px solid var(--nad-black); outline-offset: 2px; }
.nad-btn--primary { background: var(--nad-black); color: var(--nad-white); border-color: var(--nad-black); }
.nad-btn--primary:hover { background: #222; }
.nad-btn--outline { background: transparent; color: var(--nad-black); border-color: var(--nad-black); }
.nad-btn--outline:hover { background: var(--nad-black); color: var(--nad-white); }

.nad-btn.is-loading .nad-btn-text { visibility: hidden; }
.nad-btn.is-loading .nad-btn-spinner { display: block; }
.nad-btn-spinner {
  display: none; position: absolute;
  width: 20px; height: 20px;
  border: 2px solid rgba(255,255,255,.3); border-top-color: #fff;
  border-radius: 50%; animation: nad-spin .7s linear infinite;
}
.nad-btn--outline.is-loading .nad-btn-spinner { border-color: rgba(0,0,0,.15); border-top-color: var(--nad-black); }
@keyframes nad-spin { to { transform: rotate(360deg); } }

/* ── Logged-in state ───────────────────────────────────────────── */
.nad-loggedin { padding-top: 8px; }
.nad-greeting       { font-size: 15px; color: var(--nad-black); margin: 0 0 2px; }
.nad-greeting-email { font-size: 13px; color: var(--nad-grey-6); margin: 0 0 28px; }
.nad-account-nav { display: flex; flex-direction: column; }
.nad-account-nav__link {
  display: block; padding: 14px 0;
  border-bottom: 1px solid var(--nad-grey-e);
  font-size: 12.5px; font-weight: 700; letter-spacing: .07em;
  color: var(--nad-black); text-decoration: none;
  transition: padding-left .2s, color .2s;
}
.nad-account-nav__link:hover { padding-left: 6px; color: var(--nad-grey-6); }

/* ── Reduced motion ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .nad-overlay, .nad-drawer, .nad-panel { transition: none; animation: none; }
  .nad-btn-spinner { animation: none; }
}

/* ── Mobile ────────────────────────────────────────────────────── */
@media (max-width: 480px) {
  :root { --nad-w: 100vw; }
  .nad-tabs-wrap, .nad-footer { padding-left: 18px; padding-right: 18px; }
  .nad-body { padding-left: 18px; padding-right: 18px; }
}

/* ── Tablet ────────────────────────────────────────────────────── */
@media (min-width: 481px) and (max-width: 768px) {
  :root { --nad-w: 400px; }
}
