/* ============================================================================
   FRENZY96 — Deep-Sea Redesign · BANK ACCOUNTS  (fz-banks.css)
   ----------------------------------------------------------------------------
   Reskin of the Banks subpage (bank-account-v2.js → #pf3-subpage-body; form
   sheet .ba-sov portaled to <body>). PURE UI. Faithful to production: single
   bank form, Detail/Set-Default/Edit actions, NO remove/3-type/AmoPay (those
   need backend). Field ids / BSB validation / CRUD / .ba-* classes untouched.
   Local --ba-* tokens (declared on .baw/.ba-sov/.ba-cm) remapped to deep-sea.
   ============================================================================ */

/* ── Token remap (all three carriers, incl body-portaled sheet) ──────────── */
.baw, .ba-sov, .ba-cm {
  --ba-bg: var(--fz-navy-deep);
  --ba-surface: var(--fz-surface);
  --ba-surface2: var(--fz-surface-2);
  --ba-border: var(--fz-line);
  --ba-border2: var(--fz-line-2);
  --ba-gold: var(--fz-gold);
  --ba-gold-bg: var(--fz-gold-soft);
  --ba-gold-border: rgba(245, 200, 66, 0.35);
  --ba-blue: var(--fz-cyan);
  --ba-blue-bg: var(--fz-cyan-soft);
  --ba-blue-border: rgba(41, 182, 232, 0.3);
  --ba-green: var(--fz-green);
  --ba-green-bg: var(--fz-green-soft);
  --ba-green-border: rgba(30, 213, 113, 0.3);
  --ba-red: var(--fz-red);
  --ba-red-bg: var(--fz-red-soft);
  --ba-red-border: rgba(224, 35, 75, 0.28);
  --ba-text: var(--fz-text);
  --ba-text2: var(--fz-text-2);
  --ba-text3: var(--fz-text-3);
  --ba-text4: var(--fz-line-2);
}
.baw { background: transparent; }

/* ── Shared subpage chrome (also used by Security/Info — deep-sea for all) ─ */
.pf3-subpage, #pf3-subpage { background: var(--fz-navy-deep); }
.pf3-subpage-header { border-bottom: 1px solid var(--fz-teal-line); background: linear-gradient(180deg, var(--fz-teal-2), var(--fz-navy)); }
.pf3-back {
  width: 34px; height: 34px; border-radius: var(--fz-r-full); flex-shrink: 0;
  background: rgba(7, 8, 13, 0.4); border: 1px solid var(--fz-line-2); color: var(--fz-text-2);
  display: flex; align-items: center; justify-content: center;
}
.pf3-back svg { width: 16px; height: 16px; }   /* design icon 16px (markup ships inline 20px) */
#pf3-subpage-title {
  font-family: var(--fz-font-display); font-weight: var(--fz-w-bold);
  font-size: clamp(24px, 3.4vw, 32px); letter-spacing: var(--fz-track-caps);
  text-transform: uppercase; color: var(--fz-white);
}

/* ── Subtitle + section labels ───────────────────────────────────────────── */
.ba-sub { font-size: 13px; color: var(--fz-text-2); line-height: var(--fz-leading-body); margin-bottom: 14px; }
.ba-sub b { color: var(--fz-gold); font-weight: var(--fz-w-bold); }
.ba-seclbl { font-size: var(--fz-text-xs); font-weight: var(--fz-w-bold); text-transform: uppercase; letter-spacing: var(--fz-track-caps); color: var(--fz-text-3); margin: 14px 0 8px; }

/* ── Account card ────────────────────────────────────────────────────────── */
.ba-card {
  background: linear-gradient(180deg, var(--fz-surface-2), var(--fz-surface));
  border: 1px solid var(--fz-line); border-radius: 16px; overflow: hidden;
  margin-bottom: 10px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.ba-card__top { display: flex; align-items: center; gap: 12px; padding: 16px; }
.ba-card__ic {
  width: 46px; height: 46px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--fz-font-mono); font-size: 13px; font-weight: var(--fz-w-black);
  letter-spacing: 0.02em;   /* bg/color set inline per-bank (bankMark) */
}
.ba-card__info { flex: 1; min-width: 0; }
.ba-card__bank { font-size: 14px; font-weight: var(--fz-w-black); color: var(--fz-white); display: flex; align-items: center; gap: 8px; }
.ba-card__acc { font-family: var(--fz-font-mono); font-size: 12px; color: var(--fz-text-3); margin-top: 3px; }
.ba-card__holder { font-size: 12px; color: var(--fz-text-2); margin-top: 2px; }
.ba-badge {
  font-size: 9px; font-weight: var(--fz-w-black); text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--fz-gold); background: var(--fz-gold-soft); border: 1px solid rgba(245, 200, 66, 0.35);
  border-radius: 5px; padding: 2px 6px;
}
/* action bar */
.ba-card__bar { display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--fz-line-faint); }
.ba-act {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  padding: 8px; border-radius: var(--fz-r-md); font-size: var(--fz-text-xs); font-weight: var(--fz-w-bold);
  cursor: pointer; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--fz-line); color: var(--fz-text-2);
  transition: all var(--fz-dur-fast) var(--fz-ease-out);
}
.ba-act svg { width: 14px; height: 14px; }
.ba-act--default { color: var(--fz-cyan); background: rgba(41, 182, 232, 0.1); border-color: rgba(41, 182, 232, 0.3); }
.ba-act--default.is-default { color: var(--fz-gold); background: var(--fz-gold-soft); border-color: rgba(245, 200, 66, 0.35); }
.ba-act--edit.locked { opacity: 0.5; }
.ba-act:hover { border-color: var(--fz-line-2); }

/* ── Empty state ─────────────────────────────────────────────────────────── */
.ba-empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
  padding: 26px 16px; border: 1px dashed var(--fz-line-2); border-radius: var(--fz-r-lg);
  color: var(--fz-text-2); font-size: var(--fz-text-sm);
}
.ba-empty svg { width: 30px; height: 30px; color: var(--fz-text-3); }

/* ── Add payout account (full-width dashed) ──────────────────────────────── */
.ba-addfull {
  width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 4px; padding: 13px; cursor: pointer;
  background: rgba(41, 182, 232, 0.08); border: 1px dashed rgba(41, 182, 232, 0.4);
  border-radius: var(--fz-r-lg); color: var(--fz-cyan); font-size: var(--fz-text-sm); font-weight: var(--fz-w-bold);
}
.ba-addfull svg { width: 16px; height: 16px; }
.ba-addfull:disabled { opacity: 0.4; cursor: not-allowed; border-style: solid; color: var(--fz-text-3); }

/* ── Security note ───────────────────────────────────────────────────────── */
.ba-sec { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; font-size: var(--fz-text-xs); color: var(--fz-text-3); line-height: var(--fz-leading-body); }
.ba-sec svg { width: 15px; height: 15px; color: var(--fz-cyan); flex-shrink: 0; margin-top: 1px; }

/* ══════════════════════════════════════════════════════════════════════════
   Add / Edit form sheet (.ba-sov portaled to <body>)
   ══════════════════════════════════════════════════════════════════════════ */
.ba-sov { background: rgba(0, 0, 0, 0.66); }
.ba-sheet {
  background: linear-gradient(180deg, var(--fz-surface-2), var(--fz-surface));
  border: 1px solid var(--fz-line-2); border-radius: 22px 22px 0 0;
  box-shadow: var(--fz-shadow-sheet);
}
.ba-grab { background: var(--fz-line-2); }
.ba-sh-head { border-bottom: 1px solid var(--fz-line); }
.ba-sh-title { font-family: var(--fz-font-display); font-weight: var(--fz-w-bold); text-transform: uppercase; letter-spacing: var(--fz-track-caps); color: var(--fz-white); }
.ba-sh-x { background: var(--fz-surface); border: 1px solid var(--fz-line); color: var(--fz-text-2); border-radius: var(--fz-r-full); }

/* fields */
.ba-field2 { margin-bottom: 14px; }
.ba-flbl2 { display: block; font-size: 11px; font-weight: var(--fz-w-black); text-transform: uppercase; letter-spacing: 0.04em; color: var(--fz-text-3); margin-bottom: 7px; }
.ba-input {
  width: 100%; box-sizing: border-box; padding: 11px 12px;
  background: var(--fz-navy); border: 1px solid var(--fz-line-2); border-radius: 10px;
  color: var(--fz-white); font-size: 14px; outline: none;
}
.ba-input:focus { border-color: var(--fz-cyan); box-shadow: var(--fz-glow-cyan); }
.ba-input[readonly] { color: var(--fz-text-2); background: rgba(7, 8, 13, 0.5); }
.ba-input.err { border-color: var(--fz-red); }
/* mono for BSB / account no. / payid */
#ba-f-bsb, #ba-f-acc, #ba-f-payid { font-family: var(--fz-font-mono); letter-spacing: 0.04em; }

/* bank dropdown */
.ba-dd { position: relative; }
.ba-dd__trig {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 11px 12px; background: var(--fz-navy); border: 1px solid var(--fz-line-2);
  border-radius: 10px; color: var(--fz-white); cursor: pointer;
}
.ba-dd__trig.placeholder { color: var(--fz-text-faint); }
.ba-dd__trig.err { border-color: var(--fz-red); }
.ba-dd__trig svg { width: 16px; height: 16px; color: var(--fz-text-3); }
.ba-dd__list {
  display: none; position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20;
  max-height: 240px; overflow-y: auto; padding: 6px;
  background: rgba(6, 20, 28, 0.96); border: 1px solid var(--fz-line-2); border-radius: 10px;
  box-shadow: var(--fz-shadow-lg);
}
.ba-dd__list.open { display: block; }
.ba-dd__opt { padding: 9px 10px; border-radius: var(--fz-r-sm); color: var(--fz-text); cursor: pointer; font-size: 13px; }
.ba-dd__opt:hover { background: var(--fz-surface-2); }
.ba-dd__opt.sel { background: var(--fz-cyan-soft); color: var(--fz-cyan); }

/* default toggle */
.ba-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 4px 0; }
.ba-toggle__sw { width: 40px; height: 22px; border-radius: var(--fz-r-full); background: var(--fz-surface-3); border: 1px solid var(--fz-line-2); position: relative; flex-shrink: 0; transition: background var(--fz-dur-fast) var(--fz-ease-out); }
.ba-toggle__sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: var(--fz-r-full); background: var(--fz-text-2); transition: transform var(--fz-dur-fast) var(--fz-ease-out); }
.ba-toggle.on .ba-toggle__sw { background: var(--fz-cyan); border-color: var(--fz-cyan); }
.ba-toggle.on .ba-toggle__sw::after { transform: translateX(18px); background: var(--fz-on-cyan); }
.ba-toggle__lbl { font-size: 13px; color: var(--fz-text); }

/* hints + errors + save */
.ba-hint-green { display: flex; align-items: center; gap: 6px; margin-top: 7px; font-size: var(--fz-text-xs); color: var(--fz-green); }
.ba-hint-green svg { width: 14px; height: 14px; }
.ba-hint { font-size: var(--fz-text-xs); color: var(--fz-text-3); margin-top: 4px; }
.ba-ferr { font-size: var(--fz-text-xs); color: var(--fz-red); margin-top: 5px; min-height: 12px; }
.ba-savebtn, .ba-closebtn {
  width: 100%; padding: 14px; border-radius: var(--fz-r-xl); border: none; cursor: pointer;
  font-size: 14px; font-weight: var(--fz-w-bold);
  background: var(--fz-grad-gold); color: var(--fz-on-gold); box-shadow: var(--fz-glow-gold);
}
.ba-savebtn.disabled, .ba-savebtn:disabled { background: var(--fz-surface-2); color: var(--fz-text-3); box-shadow: none; cursor: not-allowed; }
.ba-closebtn { background: var(--fz-surface); color: var(--fz-text); box-shadow: none; border: 1px solid var(--fz-line-2); }
.ba-spin { display: inline-block; width: 15px; height: 15px; border: 2px solid rgba(20, 17, 10, 0.3); border-top-color: var(--fz-on-gold); border-radius: 50%; animation: ba-spin 0.7s linear infinite; }
@keyframes ba-spin { to { transform: rotate(360deg); } }

/* detail rows */
.ba-drow { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--fz-line-faint); }
.ba-drow:last-child { border-bottom: 0; }
.ba-drow .k { font-size: 13px; color: var(--fz-text-3); }
.ba-drow .v { font-size: 13px; font-weight: var(--fz-w-semibold); color: var(--fz-text); }
