
/* ============================================================================
   ACCOUNT HUB — the central place for account, personalisation, household,
   privacy, subscription and support. Lives on page-profile, reached from the
   existing Profile nav item and its new account menu.
   Extends window.HU.user; does NOT create a second profile model.
   Prefix "ah-" — clear of the global -card / -tile / -tag wildcards.
   ============================================================================ */
#accountHub{
  --ah-navy:#243447; --ah-soft:#31465F; --ah-ink:#2B3547; --ah-muted:#5C6A78;
  --ah-line:#ECE7DD; --ah-line-2:#F2EDE3; --ah-surface:#FFFDF8; --ah-cream:#FBF6EC;
  --ah-sage:#7D9E77; --ah-sage-d:#4A6F46; --ah-sage-s:#EAF2E6;
  --ah-gold:#D3A044; --ah-gold-d:#8E631A; --ah-gold-s:#FBEFD6;
  --ah-danger:#A6503C; --ah-danger-s:#F7EDE9;
  background:#FAF8F3; padding:34px 20px 70px;
}
#accountHub *{ box-sizing:border-box; }
#accountHub h1,#accountHub h2,#accountHub h3,#accountHub h4{
  font-family:'Playfair Display',Georgia,serif;
  color:var(--ah-navy) !important; -webkit-text-fill-color:var(--ah-navy) !important;
}
#accountHub .ah-in{ max-width:1180px; margin:0 auto; }

/* ── header ─────────────────────────────────────────────────────────────── */
.ah-eyebrow{ font-size:.7rem; font-weight:800; letter-spacing:.19em; text-transform:uppercase;
  margin:0 0 10px; color:var(--ah-sage) !important; -webkit-text-fill-color:var(--ah-sage) !important; }
.ah-h{ font-size:clamp(1.7rem,3.2vw,2.4rem); font-weight:700; line-height:1.1; margin:0 0 12px; }
.ah-sub{ font-size:1rem; line-height:1.7; margin:0 0 8px; max-width:620px;
  color:var(--ah-muted) !important; -webkit-text-fill-color:var(--ah-muted) !important; }
.ah-note{ font-size:.87rem; line-height:1.62; margin:0; max-width:640px;
  color:#8a9099 !important; -webkit-text-fill-color:#8a9099 !important; }

/* ── user summary ───────────────────────────────────────────────────────── */
.ah-summary{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:24px;
  background:var(--ah-surface) !important; border:1px solid var(--ah-line);
  border-radius:22px; padding:22px 24px; box-shadow:0 4px 20px rgba(36,52,71,.045); }
.ah-avatar{ width:76px; height:76px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center;
  background:var(--ah-sage-s); font-family:'Playfair Display',Georgia,serif; font-size:1.7rem;
  font-weight:700; color:var(--ah-sage-d); border:1px solid #D8E4D4; }
.ah-who{ flex:1; min-width:180px; }
.ah-who b{ display:block; font-family:'Playfair Display',Georgia,serif; font-size:1.4rem;
  font-weight:700; color:var(--ah-navy); line-height:1.15; }
.ah-who span{ display:block; font-size:.88rem; color:var(--ah-muted); margin-top:4px; }
.ah-plan{ display:inline-flex; align-items:center; gap:6px; margin-top:8px; border-radius:999px;
  padding:5px 12px; font-size:.68rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  background:var(--ah-gold-s) !important; border:1px solid #f0dcae;
  color:var(--ah-gold-d) !important; -webkit-text-fill-color:var(--ah-gold-d) !important; }
.ah-plan svg{ width:11px; height:11px; }

/* ── buttons ────────────────────────────────────────────────────────────── */
.ah-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px;
  border-radius:999px; padding:0 20px; font-family:inherit; font-size:.87rem; font-weight:700;
  cursor:pointer; border:1.5px solid var(--ah-line); background:#fff; color:var(--ah-ink);
  transition:background .16s, border-color .16s; }
.ah-btn:hover{ border-color:#cfc8bb; }
.ah-btn:focus-visible{ outline:3px solid #CF9E3F; outline-offset:3px; }
.ah-btn.is-primary{ background:var(--ah-navy); border-color:var(--ah-navy);
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
.ah-btn.is-primary:hover{ background:var(--ah-soft); border-color:var(--ah-soft); }
.ah-btn.is-sage{ background:#5F7350; border-color:#5F7350;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
.ah-btn.is-sm{ min-height:36px; padding:0 14px; font-size:.79rem; }
.ah-btn.is-danger{ background:#fff; border-color:#E0C8C0;
  color:var(--ah-danger) !important; -webkit-text-fill-color:var(--ah-danger) !important; }
.ah-btn.is-danger:hover{ background:var(--ah-danger-s) !important; }
.ah-btn svg{ width:15px; height:15px; }
.ah-btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* ── layout ─────────────────────────────────────────────────────────────── */
.ah-body{ display:grid; grid-template-columns:250px 1fr; gap:26px; margin-top:26px; align-items:start; }
.ah-side{ position:sticky; top:84px; background:var(--ah-surface) !important;
  border:1px solid var(--ah-line); border-radius:20px; padding:14px; }
.ah-search{ position:relative; margin-bottom:12px; }
.ah-search input{ width:100%; border:1.5px solid var(--ah-line); border-radius:999px;
  padding:10px 14px 10px 36px; font-family:inherit; font-size:.84rem; color:var(--ah-ink); background:#fff; }
.ah-search input:focus{ outline:none; border-color:var(--ah-sage); box-shadow:0 0 0 3px rgba(125,158,119,.16); }
.ah-search svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%);
  width:14px; height:14px; color:#9aa2ab; pointer-events:none; }
.ah-nav{ list-style:none; padding:0; margin:0; }
.ah-nav button{ display:flex; align-items:center; gap:10px; width:100%; min-height:42px;
  border:none; background:none; border-radius:12px; padding:8px 12px; font-family:inherit;
  font-size:.85rem; font-weight:700; color:var(--ah-muted); cursor:pointer; text-align:left; }
.ah-nav button:hover{ background:var(--ah-cream) !important; }
.ah-nav button[aria-current="true"]{ background:var(--ah-navy) !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
.ah-nav button:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }
.ah-nav svg{ width:16px; height:16px; flex:0 0 auto; }
.ah-mobnav{ display:none; }

/* ── panels ─────────────────────────────────────────────────────────────── */
.ah-panel{ display:none; }
.ah-panel.is-on{ display:block; }
.ah-cardx{ background:var(--ah-surface) !important; border:1px solid var(--ah-line);
  border-radius:22px; padding:24px 26px; margin-bottom:16px;
  box-shadow:0 4px 20px rgba(36,52,71,.045); }
.ah-card-h{ font-size:1.18rem; font-weight:700; margin:0 0 5px; line-height:1.2; }
.ah-card-s{ font-size:.9rem; line-height:1.62; margin:0 0 18px;
  color:var(--ah-muted) !important; -webkit-text-fill-color:var(--ah-muted) !important; }
.ah-sec-h{ font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  margin:22px 0 12px; color:#8a8578 !important; -webkit-text-fill-color:#8a8578 !important; }
.ah-sec-h:first-child{ margin-top:0; }

/* ── forms ──────────────────────────────────────────────────────────────── */
.ah-fields{ display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.ah-field{ min-width:0; }
.ah-field.is-full{ grid-column:1/-1; }
.ah-label{ display:block; font-size:.8rem; font-weight:800; color:var(--ah-ink); margin-bottom:6px; }
.ah-label em{ font-style:normal; font-weight:700; color:#9aa2ab; font-size:.76rem; margin-left:5px; }
.ah-input, .ah-select, .ah-area{ width:100%; border:1.5px solid var(--ah-line); border-radius:12px;
  padding:11px 13px; font-family:inherit; font-size:.89rem; color:var(--ah-ink); background:#fff; min-height:44px; }
.ah-area{ resize:vertical; min-height:84px; }
.ah-input:focus,.ah-select:focus,.ah-area:focus{ outline:none; border-color:var(--ah-sage);
  box-shadow:0 0 0 3px rgba(125,158,119,.16); }
.ah-input[aria-invalid="true"]{ border-color:#C08070; }
.ah-err{ display:block; font-size:.76rem; color:var(--ah-danger); margin-top:5px; }
.ah-hint{ font-size:.78rem; color:#6B7580; margin:5px 0 0; line-height:1.5; }

/* ── chips ──────────────────────────────────────────────────────────────── */
.ah-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.ah-chip{ border-radius:999px; padding:9px 15px; min-height:40px; font-family:inherit; font-size:.81rem;
  font-weight:700; cursor:pointer; border:1.5px solid var(--ah-line); background:#fff; color:#4a5262; }
.ah-chip:hover{ border-color:#cfc8bb; }
.ah-chip[aria-pressed="true"]{ background:#5F7350; border-color:#5F7350; color:#fff; }
.ah-chip:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }

/* ── selectable range cards ─────────────────────────────────────────────── */
.ah-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }
.ah-grid.is-2{ grid-template-columns:repeat(2,1fr); }
.ah-pick{ position:relative; text-align:left; background:#fff !important; border:1.5px solid var(--ah-line);
  border-radius:16px; padding:16px 17px; cursor:pointer; font-family:inherit; transition:border-color .16s; }
.ah-pick:hover{ border-color:#cfc8bb; }
.ah-pick[aria-pressed="true"]{ border-color:#5F7350; background:var(--ah-sage-s) !important; }
.ah-pick:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }
.ah-pick-ic{ font-size:1.4rem; display:block; margin-bottom:8px; }
.ah-pick-t{ font-weight:800; font-size:.9rem; color:var(--ah-navy); line-height:1.25; margin-bottom:4px; }
.ah-pick-d{ font-size:.78rem; line-height:1.5; color:var(--ah-muted); }
.ah-pick-on{ position:absolute; top:12px; right:12px; width:20px; height:20px; border-radius:50%;
  background:#5F7350; display:none; place-items:center; }
.ah-pick-on svg{ width:11px; height:11px; color:#fff; }
.ah-pick[aria-pressed="true"] .ah-pick-on{ display:grid; }

/* ── rows / people / partners ───────────────────────────────────────────── */
.ah-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:#fff !important;
  border:1px solid var(--ah-line-2); border-radius:15px; padding:14px 16px; margin-bottom:10px; }
.ah-row-av{ width:44px; height:44px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center;
  background:var(--ah-cream); font-weight:800; font-size:.9rem; color:#7a6a52; }
.ah-row-b{ flex:1; min-width:150px; }
.ah-row-t{ font-weight:800; font-size:.92rem; color:var(--ah-ink); line-height:1.3; }
.ah-row-m{ font-size:.78rem; color:#8a9099; margin-top:3px; line-height:1.45; }
.ah-row-acts{ display:flex; gap:7px; flex-wrap:wrap; }
.ah-pill{ display:inline-block; font-size:.68rem; font-weight:800; letter-spacing:.04em; border-radius:7px;
  padding:3px 9px; background:var(--ah-cream) !important;
  color:#7a6a52 !important; -webkit-text-fill-color:#7a6a52 !important; }
.ah-pill.is-sage{ background:var(--ah-sage-s) !important; color:var(--ah-sage-d) !important; -webkit-text-fill-color:var(--ah-sage-d) !important; }
.ah-pill.is-gold{ background:var(--ah-gold-s) !important; color:var(--ah-gold-d) !important; -webkit-text-fill-color:var(--ah-gold-d) !important; }

/* ── toggles ────────────────────────────────────────────────────────────── */
.ah-toggle{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 0; border-bottom:1px solid var(--ah-line-2); }
.ah-toggle:last-child{ border-bottom:none; }
.ah-toggle-b{ flex:1; min-width:0; }
.ah-toggle-t{ font-size:.88rem; font-weight:700; color:var(--ah-ink); line-height:1.35; }
.ah-toggle-d{ font-size:.78rem; color:#8a9099; margin-top:3px; line-height:1.5; }
.ah-sw{ position:relative; width:46px; height:26px; flex:0 0 auto; }
.ah-sw input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.ah-sw i{ position:absolute; inset:0; background:#DCD5C7; border-radius:999px; transition:background .18s; }
.ah-sw i::after{ content:''; position:absolute; top:3px; left:3px; width:20px; height:20px;
  background:#fff; border-radius:50%; transition:transform .18s; }
.ah-sw input:checked + i{ background:#5F7350; }
.ah-sw input:checked + i::after{ transform:translateX(20px); }
.ah-sw input:focus-visible + i{ outline:3px solid #CF9E3F; outline-offset:2px; }

/* ── overview ───────────────────────────────────────────────────────────── */
.ah-hero{ display:grid; grid-template-columns:180px 1fr; gap:26px; align-items:center; }
.ah-ring{ position:relative; width:160px; height:160px; margin:0 auto; }
.ah-ring i{ position:absolute; inset:0; border-radius:50%; }
.ah-ring b{ position:absolute; inset:16%; background:#fff; border-radius:50%; display:grid;
  place-items:center; font-family:'Playfair Display',Georgia,serif; font-size:1.9rem; font-weight:700;
  color:var(--ah-navy); line-height:1; }
.ah-ring small{ display:block; font-family:inherit; font-size:.6rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase; color:#8a9099; margin-top:5px; }
.ah-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
.ah-stat{ background:#fff !important; border:1px solid var(--ah-line-2); border-radius:13px; padding:12px 14px; }
.ah-stat span{ display:block; font-size:.64rem; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:#8a9099; margin-bottom:5px; }
.ah-stat b{ display:block; font-size:.98rem; font-weight:800; color:var(--ah-ink); line-height:1.25; }
.ah-prompt{ background:var(--ah-sage-s) !important; border:1px solid #D8E4D4; border-radius:15px;
  padding:15px 17px; margin-top:16px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ah-prompt p{ flex:1; min-width:200px; margin:0; font-size:.88rem; line-height:1.55;
  color:#3f5540 !important; -webkit-text-fill-color:#3f5540 !important; }

/* ── widget wall ────────────────────────────────────────────────────────── */
.ah-ww{ display:grid; grid-template-columns:1fr 260px; gap:22px; align-items:start; }
.ah-wlist{ list-style:none; padding:0; margin:0; }
.ah-w{ display:flex; align-items:center; gap:12px; background:#fff !important;
  border:1px solid var(--ah-line-2); border-radius:14px; padding:12px 14px; margin-bottom:9px; }
.ah-w-b{ flex:1; min-width:0; }
.ah-w-t{ font-weight:800; font-size:.88rem; color:var(--ah-ink); }
.ah-w-d{ font-size:.76rem; color:#8a9099; margin-top:2px; }
.ah-w-acts{ display:flex; gap:5px; align-items:center; }
.ah-mini{ width:34px; height:34px; border-radius:10px; border:1px solid var(--ah-line); background:#fff;
  cursor:pointer; display:grid; place-items:center; padding:0; color:#8a9099; }
.ah-mini:hover{ border-color:#cfc8bb; color:var(--ah-ink); }
.ah-mini:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }
.ah-mini svg{ width:14px; height:14px; }
.ah-size{ border:1.5px solid var(--ah-line); border-radius:9px; padding:5px 8px; font-family:inherit;
  font-size:.74rem; font-weight:700; color:var(--ah-ink); background:#fff; min-height:34px; }
.ah-phone{ width:100%; max-width:250px; border-radius:30px; background:#1B1B1F; padding:9px;
  margin:0 auto; box-shadow:0 14px 34px rgba(36,52,71,.18); }
.ah-phone-in{ background:#fff; border-radius:23px; padding:14px 11px; min-height:340px; }
.ah-phone-h{ font-size:.62rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:#9aa2ab; margin:0 0 10px; text-align:center; }
.ah-pw{ border-radius:11px; padding:9px 10px; margin-bottom:7px; background:var(--ah-sage-s);
  font-size:.66rem; font-weight:700; color:var(--ah-navy); }
.ah-pw.is-sm{ display:inline-block; width:calc(50% - 4px); margin-right:4px; }

/* ── danger zone ────────────────────────────────────────────────────────── */
.ah-danger{ background:var(--ah-danger-s) !important; border:1px solid #E8D5CE; border-radius:20px;
  padding:22px 24px; margin-top:20px; }
.ah-danger .ah-card-h{ color:var(--ah-danger) !important; -webkit-text-fill-color:var(--ah-danger) !important; }

/* ── save bar ───────────────────────────────────────────────────────────── */
.ah-save{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:20px;
  padding-top:18px; border-top:1px solid var(--ah-line-2); }
.ah-state{ font-size:.84rem; font-weight:700; }
.ah-state.is-unsaved{ color:var(--ah-gold-d); }
.ah-state.is-saved{ color:var(--ah-sage-d); }
.ah-state.is-saving{ color:#8a9099; }
.ah-empty{ background:#fff !important; border:1px dashed #DCD5C7; border-radius:18px;
  padding:32px 24px; text-align:center; }
.ah-empty strong{ display:block; font-family:'Playfair Display',Georgia,serif; font-size:1.1rem;
  color:var(--ah-navy); margin-bottom:6px; }
.ah-empty p{ font-size:.88rem; color:var(--ah-muted); margin:0 0 16px; line-height:1.6; }
.ah-warn{ background:var(--ah-gold-s) !important; border-left:3px solid var(--ah-gold);
  border-radius:0 12px 12px 0; padding:12px 15px; font-size:.83rem; line-height:1.6; margin:14px 0 0;
  color:#6d4f14 !important; -webkit-text-fill-color:#6d4f14 !important; }

/* ── account menu on the Profile nav item ───────────────────────────────── */
#mainNav .ah-menu-wrap{ position:relative; display:flex; align-items:center; gap:2px; }
#mainNav .ah-caret{ display:inline-grid; place-items:center; width:22px; height:22px; padding:0;
  border:none; background:none; cursor:pointer; color:#8a9099; border-radius:6px; flex:0 0 auto; }
#mainNav .ah-caret:hover{ color:#243447; background:#F5F1E9; }
#mainNav .ah-caret svg{ width:13px; height:13px; transition:transform .16s; }
#mainNav .ah-caret[aria-expanded="true"] svg{ transform:rotate(180deg); }
#mainNav .ah-caret:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }
#mainNav .ah-menu{ position:absolute; right:0; top:calc(100% + 10px); width:236px; z-index:2400;
  background:#fff; border:1px solid #ECE7DD; border-radius:16px; padding:8px;
  box-shadow:0 18px 44px rgba(36,52,71,.16); display:none; }
#mainNav .ah-menu.is-open{ display:block; }
#mainNav .ah-menu button{ display:block; width:100%; text-align:left; border:none; background:none;
  border-radius:10px; padding:9px 12px; min-height:40px; font-family:inherit; font-size:.84rem;
  font-weight:700; color:#2B3547; cursor:pointer; }
#mainNav .ah-menu button:hover{ background:#FBF6EC; }
#mainNav .ah-menu button:focus-visible{ outline:3px solid #CF9E3F; outline-offset:-2px; }
#mainNav .ah-menu hr{ border:none; border-top:1px solid #F2EDE3; margin:6px 4px; }
#mainNav .ah-menu button.is-out{ color:#A6503C; }

/* ── responsive ─────────────────────────────────────────────────────────── */
@media (max-width:1000px){
  .ah-body{ grid-template-columns:1fr; }
  .ah-side{ position:static; }
  .ah-nav{ display:flex; flex-wrap:wrap; gap:6px; }
  .ah-nav li{ flex:0 0 auto; }
  .ah-grid{ grid-template-columns:repeat(2,1fr); }
  .ah-ww{ grid-template-columns:1fr; }
  .ah-phone{ margin:0 auto; }
}
@media (max-width:720px){
  #accountHub{ padding:24px 14px 54px; }
  .ah-cardx{ padding:18px 16px; border-radius:18px; }
  .ah-fields{ grid-template-columns:1fr; }
  .ah-grid,.ah-grid.is-2{ grid-template-columns:1fr; }
  .ah-hero{ grid-template-columns:1fr; }
  .ah-stats{ grid-template-columns:1fr 1fr; }
  .ah-side{ padding:12px; }
  .ah-nav{ display:none; }
  .ah-mobnav{ display:block; }
  .ah-mobnav select{ width:100%; border:1.5px solid #ECE7DD; border-radius:12px; padding:12px 14px;
    font-family:inherit; font-size:.9rem; font-weight:700; color:#2B3547; background:#fff; min-height:48px; }
  .ah-summary{ padding:18px; }
  .ah-btn{ width:100%; }
  .ah-row-acts .ah-btn.is-sm,.ah-save .ah-btn{ width:auto; }
  .ah-save{ position:sticky; bottom:0; background:var(--ah-surface); padding:14px 0 6px; margin-top:16px; }
}
@media (prefers-reduced-motion:reduce){
  .ah-btn,.ah-sw i,.ah-sw i::after,.ah-pick{ transition:none !important; }
}
