/* ============================================================
   Texas United — Member portal ("My Membership")
   LinkedIn-style profile workspace. Scoped under .txunited-mp so it
   never touches the signup/login/directory chrome.
   Brand tokens mirror signup-form.css (--flow): navy #0a1d3b,
   gold #c9a14a, paper #faf7f2, rule #e5e0d6. Raleway for text,
   Inter for numbers.
   ============================================================ */
.txunited-mp {
  --navy: #0a1d3b;
  --navy-700: #103057;
  --gold: #c9a14a;
  --gold-600: #b08a3a;
  --gold-tint: #f5ecd6;
  --ink: #1a1a1a;
  --muted: #56607a;
  --faint: #8a8a8a;
  --paper: #faf7f2;
  --paper-2: #f3eee5;
  --card: #ffffff;
  --rule: #e5e0d6;
  --rule-soft: #efe9dd;
  --success: #2d6a4f;
  --success-bg: #e9f1ec;
  --error: #8b1e1e;
  --error-bg: #fff5f5;
  --font: 'Raleway', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --num: 'Inter', system-ui, -apple-system, sans-serif;
  --r: 6px;
  --r-sm: 4px;
  --r-btn: 2px;
  --sh-sm: 0 1px 2px rgba(10, 29, 59, .05);
  --sh: 0 1px 3px rgba(10, 29, 59, .06), 0 6px 18px rgba(10, 29, 59, .05);

  font-family: var(--font);
  color: var(--ink);
  line-height: 1.55;
  max-width: 1240px;
  margin: 0 auto;
  padding: 8px 0 28px;
}
.txunited-mp *,
.txunited-mp *::before,
.txunited-mp *::after { box-sizing: border-box; }
.txunited-mp .txunited-num { font-family: var(--num); font-variant-numeric: tabular-nums; }
.txunited-mp a { color: inherit; text-decoration: none; }
.txunited-mp h2 { margin: 0; }

.txunited-mp__grid {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr) 300px;
  grid-template-areas: "side main rail";
  gap: 22px;
  align-items: start;
}

/* Shared member-area shell (PortalShell): sidebar + one wide content column.
   Declared before the responsive block so the mobile collapse still wins. */
.txunited-mp__grid--shell {
  grid-template-columns: 248px minmax(0, 1fr);
  grid-template-areas: "side main";
}

/* ---------- cards ---------- */
.txunited-mp__card {
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-sm);
}
.txunited-mp__pad { padding: 18px 20px; }
.txunited-mp__section-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.txunited-mp__link-edit {
  font-size: .78rem;
  font-weight: 600;
  color: var(--gold-600);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: var(--r-sm);
}
.txunited-mp__link-edit:hover { color: var(--navy); background: var(--paper-2); }
.txunited-mp__link-edit svg { width: 14px; height: 14px; }

/* ---------- avatars (MemberAvatar markup) ---------- */
.txunited-mp .txunited-avatar { display: inline-grid; place-items: center; border-radius: 50%; overflow: hidden; }
.txunited-mp .txunited-avatar--photo { object-fit: cover; }
.txunited-mp .txunited-avatar--initials { color: #fff; font-weight: 700; letter-spacing: .5px; }
.txunited-mp .txunited-avatar--md { width: 60px; height: 60px; font-size: 1.25rem; }
.txunited-mp .txunited-avatar--xl { width: 124px; height: 124px; font-size: 2.8rem; }

/* ---------- pills ---------- */
.txunited-mp__pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: .26rem .6rem;
  border-radius: 999px;
  background: var(--paper-2);
  color: var(--navy);
  border: 1px solid var(--rule);
}
.txunited-mp__pill--success { background: var(--success-bg); color: var(--success); border-color: #bfe0cc; }
.txunited-mp__pill--error { background: var(--error-bg); color: var(--error); border-color: #f0cfcf; }
.txunited-mp__pill-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.txunited-mp__pill-star svg { width: 11px; height: 11px; color: var(--gold-600); }

/* ---------- buttons ---------- */
.txunited-mp__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--font);
  font-weight: 600;
  font-size: .85rem;
  padding: .6rem 1.1rem;
  border-radius: var(--r-btn);
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background .18s, color .18s, border-color .18s, transform .12s;
}
.txunited-mp__btn svg { width: 16px; height: 16px; }
.txunited-mp__btn--primary { background: var(--navy); color: #fff; border-color: var(--navy); }
.txunited-mp__btn--primary:hover { background: var(--gold-600); border-color: var(--gold-600); }
.txunited-mp__btn--ghost { background: transparent; color: var(--navy); border-color: var(--rule); }
.txunited-mp__btn--ghost:hover { border-color: var(--navy); background: var(--paper-2); }
.txunited-mp__btn--gold { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.txunited-mp__btn--gold:hover { background: var(--gold-600); border-color: var(--gold-600); color: #fff; }
.txunited-mp__btn--block { width: 100%; }
.txunited-mp__btn--sm { padding: .45rem .8rem; font-size: .8rem; }
.txunited-mp__btn:active { transform: translateY(1px); }

/* ============ SIDEBAR ============ */
.txunited-mp__sidebar { grid-area: side; position: sticky; top: 16px; display: flex; flex-direction: column; gap: 16px; }
.txunited-mp__id { overflow: hidden; }
.txunited-mp__id-cover {
  height: 52px;
  background:
    radial-gradient(120% 160% at 80% 0%, rgba(201, 161, 74, .30), transparent 60%),
    linear-gradient(120deg, var(--navy), var(--navy-700));
}
.txunited-mp__id-body { padding: 0 16px 16px; text-align: center; margin-top: -30px; }
.txunited-mp__id-av { display: inline-block; }
.txunited-mp__id-av .txunited-avatar { border: 3px solid var(--card); box-shadow: 0 0 0 2px var(--gold); }
.txunited-mp__id-name { font-size: 1rem; font-weight: 700; color: var(--navy); margin-top: 8px; }
.txunited-mp__id-role { font-size: .78rem; color: var(--muted); margin-top: 2px; }
.txunited-mp__id-tier { margin-top: 10px; }
.txunited-mp__id-since {
  margin-top: 11px;
  padding-top: 11px;
  border-top: 1px solid var(--rule-soft);
  font-size: .72rem;
  color: var(--faint);
}
.txunited-mp__id-since b { color: var(--navy); }

.txunited-mp__nav { padding: 8px; }
.txunited-mp__nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  font-size: .88rem;
  font-weight: 600;
  color: var(--muted);
  position: relative;
  transition: background .16s, color .16s;
}
.txunited-mp__nav a svg { width: 19px; height: 19px; flex: none; color: var(--faint); transition: color .16s; }
.txunited-mp__nav a:hover { background: var(--paper-2); color: var(--navy); }
.txunited-mp__nav a:hover svg { color: var(--navy); }
.txunited-mp__nav a.is-active { background: var(--paper-2); color: var(--navy); font-weight: 700; }
.txunited-mp__nav a.is-active svg { color: var(--gold-600); }
.txunited-mp__nav a.is-active::before {
  content: "";
  position: absolute;
  left: 0; top: 8px; bottom: 8px;
  width: 3px;
  background: var(--gold);
  border-radius: 0 3px 3px 0;
}
.txunited-mp__nav-sep { height: 1px; background: var(--rule-soft); margin: 8px 12px; }
.txunited-mp__nav-out { color: #9a4a3f; }
.txunited-mp__nav-out svg { color: #b9655a; }
.txunited-mp__nav-out:hover { background: #fbf0ee; color: var(--error); }

/* ============ MAIN ============ */
.txunited-mp__main { grid-area: main; display: flex; flex-direction: column; gap: 18px; }

.txunited-mp__profile { overflow: hidden; }
.txunited-mp__cover {
  height: 150px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(110% 150% at 85% -30%, rgba(201, 161, 74, .26), transparent 58%),
    linear-gradient(125deg, #08182f 0%, var(--navy-700) 58%, var(--navy) 100%);
}
.txunited-mp__cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(115deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 30px);
  pointer-events: none; /* decorative overlay — must not intercept the edit-pencil click */
}
.txunited-mp__cover-mark { position: absolute; right: -14px; top: -22px; color: rgba(201, 161, 74, .16); pointer-events: none; }
.txunited-mp__cover-mark svg { width: 180px; height: 180px; }
.txunited-mp__profile-body { padding: 0 26px 22px; }
.txunited-mp__avatar { display: inline-block; margin-top: -64px; position: relative; }
.txunited-mp__avatar .txunited-avatar { border: 5px solid var(--card); box-shadow: 0 0 0 2px var(--gold); }
.txunited-mp__profile-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.txunited-mp__name {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -.01em;
  line-height: 1.1;
  display: flex;
  align-items: center;
  gap: 9px;
}
.txunited-mp__verify svg { width: 21px; height: 21px; }
.txunited-mp__headline { font-size: 1rem; color: var(--ink); margin: 5px 0 0; font-weight: 500; }
.txunited-mp__headline--empty { color: var(--faint); font-style: italic; font-weight: 400; }
.txunited-mp__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 9px; font-size: .83rem; color: var(--muted); }
.txunited-mp__meta span { display: inline-flex; align-items: center; gap: 6px; }
.txunited-mp__meta svg { width: 15px; height: 15px; color: var(--gold-600); }
.txunited-mp__meta a { color: var(--gold-600); font-weight: 600; }
.txunited-mp__meta a:hover { color: var(--navy); }
.txunited-mp__profile-actions { display: flex; gap: 9px; flex-wrap: wrap; }

/* Network chip — tappable connections summary under the profile header. */
.txunited-mp__netchip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 7px 14px 7px 8px;
  background: var(--gold-tint);
  border: 1px solid rgba(201, 161, 74, .45);
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 600;
  color: var(--navy);
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.txunited-mp__netchip:hover {
  background: var(--card);
  border-color: var(--gold);
  box-shadow: var(--sh-sm);
  transform: translateY(-1px);
}
.txunited-mp__netchip-ico {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy);
}
.txunited-mp__netchip-ico svg { width: 15px; height: 15px; }
.txunited-mp__netchip-text b { font-weight: 700; }
.txunited-mp__netchip-go { display: inline-grid; color: var(--gold-600); transition: transform .16s ease; }
.txunited-mp__netchip-go svg { width: 15px; height: 15px; }
.txunited-mp__netchip:hover .txunited-mp__netchip-go { transform: translateX(3px); }

.txunited-mp__about-text { margin: .7rem 0 0; color: #34384a; font-size: .92rem; line-height: 1.65; }
.txunited-mp__about-empty { margin: .7rem 0 0; color: var(--faint); font-size: .9rem; font-style: italic; }
.txunited-mp__activity .txunited-mp__about-empty { font-style: normal; }

/* edit panel */
.txunited-mp__editpanel[hidden] { display: none; }

/* The embedded profile form is built from .txunited-signup-form__* classes,
   which read the signup form's CSS variables — normally provided by the
   .txunited-signup-form-wrap wrapper. That wrapper isn't present inside the
   portal, so without these the inputs render borderless/invisible. Re-supply
   the tokens, mapped to the portal palette.

   This applies to BOTH the inline profile editor (.txunited-mp__editpanel) and
   any shell-wrapped page that renders signup-form controls — e.g. the Discovery
   page, whose facet pill-toggles read --txunited-primary/-accent/-border. The
   shell puts every page's content in .txunited-mp__shellmain, so scoping the
   tokens there covers all of them. */
.txunited-mp__editpanel,
.txunited-mp__shellmain {
  --txunited-primary: var(--navy);
  --txunited-primary-hover: var(--navy-700);
  --txunited-accent: var(--gold);
  --txunited-accent-hover: var(--gold-600);
  --txunited-text: var(--ink);
  --txunited-text-muted: var(--muted);
  --txunited-bg: #ffffff;
  --txunited-bg-alt: var(--paper);
  --txunited-border: var(--rule);
  --txunited-error: var(--error);
  --txunited-error-bg: #fff5f5;
  --txunited-success: var(--success);
  --txunited-success-bg: #e9f1ec;
}
.txunited-mp__editpanel .txunited-signup-form,
.txunited-mp__editpanel .txunited-signup-form__section { max-width: none; margin: 0; }
.txunited-mp__editpanel .txunited-profile-edit { border: 0; padding: 0; margin-top: 12px; }

/* A touch more affordance on the fields inside the portal card. */
.txunited-mp__editpanel .txunited-signup-form__input,
.txunited-mp__editpanel .txunited-signup-form__textarea {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 4px;
}
.txunited-mp__editpanel .txunited-signup-form__input:hover,
.txunited-mp__editpanel .txunited-signup-form__textarea:hover { border-color: var(--gold); }
.txunited-mp__editpanel .txunited-signup-form__input:focus,
.txunited-mp__editpanel .txunited-signup-form__textarea:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(10, 29, 59, .12);
}
.txunited-mp__editpanel .txunited-signup-form__label { color: var(--navy); }
.txunited-mp__editpanel .txunited-signup-form__section-title { color: var(--gold-600); }

/* ============ RAIL ============ */
.txunited-mp__rail { grid-area: rail; position: sticky; top: 16px; display: flex; flex-direction: column; gap: 18px; }
.txunited-mp__mem { overflow: hidden; }
.txunited-mp__mem-top {
  background:
    radial-gradient(120% 150% at 85% 0%, rgba(201, 161, 74, .28), transparent 60%),
    linear-gradient(125deg, var(--navy), var(--navy-700));
  color: #fff;
  padding: 16px 18px;
}
.txunited-mp__mem-k { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #c2cbdd; font-weight: 600; }
.txunited-mp__mem-tier { font-size: 1.2rem; font-weight: 800; margin-top: 3px; display: flex; align-items: center; gap: 9px; }
.txunited-mp__mem-tier svg { width: 19px; height: 19px; color: var(--gold); }
.txunited-mp__mem-rows { padding: 12px 18px; }
.txunited-mp__mem-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  font-size: .84rem;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-mp__mem-row:last-child { border-bottom: 0; }
.txunited-mp__mem-rk { color: var(--muted); }
.txunited-mp__mem-rv { font-weight: 700; color: var(--navy); }
.txunited-mp__mem-foot { padding: 4px 18px 16px; }

.txunited-mp__bar {
  height: 8px;
  background: var(--paper-2);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 12px;
  border: 1px solid var(--rule-soft);
}
.txunited-mp__bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-600)); border-radius: 999px; transition: width .4s ease; }
.txunited-mp__strength-legend { display: flex; justify-content: space-between; margin-top: 8px; font-size: .78rem; }
.txunited-mp__strength-legend span:first-child { color: var(--muted); }
.txunited-mp__strength-legend .txunited-num { font-weight: 700; color: var(--navy); }
.txunited-mp__strength .txunited-mp__btn { margin-top: 12px; }
.txunited-mp__cta-text { margin: .55rem 0 .9rem; font-size: .84rem; color: var(--muted); line-height: 1.55; }

/* ---------- composer ---------- */
.txunited-mp .txunited-avatar--sm { width: 44px; height: 44px; font-size: .92rem; }
.txunited-mp__composer-row { display: flex; gap: 12px; align-items: flex-start; }
.txunited-mp__composer-av { flex: none; }
.txunited-mp__composer-input {
  flex: 1;
  min-height: 46px;
  border: 1px solid var(--rule);
  border-radius: 22px;
  padding: 12px 16px;
  font-family: var(--font);
  font-size: .95rem;
  line-height: 1.5;
  color: var(--ink);
  resize: none;
  background: var(--paper);
  transition: border-color .16s, background .16s, border-radius .16s;
}
.txunited-mp__composer-input:hover { border-color: var(--gold); }
.txunited-mp__composer-input:focus { outline: none; border-color: var(--navy); background: #fff; border-radius: 12px; }
.txunited-mp__composer-foot[hidden] { display: none; }
.txunited-mp__composer-foot { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--rule-soft); }
.txunited-mp__composer-msg { font-size: .82rem; color: var(--error); flex: 1; min-width: 0; }
.txunited-mp__composer-submit { margin-left: auto; min-width: 96px; }

/* ---------- feed + posts ---------- */
.txunited-mp__feed { display: flex; flex-direction: column; gap: 18px; }
.txunited-mp__feed-empty[hidden] { display: none; }
.txunited-mp__post {
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-sm);
  animation: txunited-mp-fade .35s ease both;
}
.txunited-mp__post-head { display: flex; gap: 12px; align-items: center; padding: 15px 18px 10px; }
.txunited-mp__post-av { flex: none; }
.txunited-mp__post-who { min-width: 0; }
.txunited-mp__post-who b { font-size: .92rem; color: var(--navy); font-weight: 700; display: block; }
.txunited-mp__post-sub { font-size: .76rem; color: var(--faint); display: flex; align-items: center; gap: 6px; margin-top: 1px; }
.txunited-mp__post-sub svg { width: 13px; height: 13px; }
.txunited-mp__post-del {
  margin-left: auto; flex: none; width: 32px; height: 32px; border-radius: 50%;
  display: grid; place-items: center; color: var(--faint); background: transparent; border: 0;
  cursor: pointer; transition: background .16s, color .16s;
}
.txunited-mp__post-del:hover { background: #fbf0ee; color: var(--error); }
.txunited-mp__post-del svg { width: 16px; height: 16px; }
.txunited-mp__post-text { padding: 0 18px 14px; font-size: .93rem; color: #2b2f3e; line-height: 1.65; overflow-wrap: break-word; word-wrap: break-word; }
.txunited-mp__post-foot { display: flex; border-top: 1px solid var(--rule-soft); }
.txunited-mp__post-like {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px;
  font-size: .84rem; font-weight: 600; color: var(--muted); background: transparent; border: 0;
  cursor: pointer; transition: background .16s, color .16s;
}
.txunited-mp__post-like:hover { background: var(--paper-2); color: var(--navy); }
.txunited-mp__post-like svg { width: 18px; height: 18px; transition: transform .12s; }
.txunited-mp__post-like.is-liked { color: var(--gold-600); }
.txunited-mp__post-like.is-liked svg { fill: var(--gold); color: var(--gold-600); transform: scale(1.05); }
.txunited-mp__post-likes { margin-left: 2px; }

/* ---------- connection requests (rail) ---------- */
.txunited-mp__req-badge {
  background: var(--gold); color: var(--navy); border-radius: 999px;
  font-size: .72rem; font-weight: 700; min-width: 20px; height: 20px; padding: 0 6px;
  display: inline-grid; place-items: center;
}
.txunited-mp__req { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--rule-soft); }
.txunited-mp__req:first-of-type { padding-top: 4px; }
.txunited-mp__req:last-child { border-bottom: 0; padding-bottom: 0; }
.txunited-mp__req-av { flex: none; }
.txunited-mp__req-who { flex: 1; min-width: 0; }
.txunited-mp__req-who b { display: block; font-size: .85rem; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.txunited-mp__req-who span { display: block; font-size: .74rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.txunited-mp__req-actions { display: flex; align-items: center; gap: 4px; flex: none; }
.txunited-mp__req-decline {
  width: 30px; height: 30px; border-radius: 50%; border: 0; background: transparent;
  color: var(--faint); cursor: pointer; display: grid; place-items: center; transition: background .16s, color .16s;
}
.txunited-mp__req-decline:hover { background: #fbf0ee; color: var(--error); }
.txunited-mp__req-decline svg { width: 15px; height: 15px; }

/* ---------- embedded feed (on a member's directory profile) ---------- */
.txunited-mp--embed { max-width: none; margin: 22px 0 0; padding: 0; }
.txunited-mp__embed-title { font-family: var(--font); font-size: 1.1rem; font-weight: 700; color: var(--navy); margin: 0 0 14px; }

.txunited-mp__nav-badge {
  margin-left: auto;
  font-size: .72rem;
  font-weight: 700;
  background: var(--gold);
  color: var(--navy);
  border-radius: 999px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: grid;
  place-items: center;
}

/* ============================================================
   ENTRANCE CHOREOGRAPHY
   A staggered, directional page-load reveal: the member area
   assembles itself around the member instead of blinking in.
   Sidebar enters from the left, main rises, rail enters from the
   right; inside each region the pieces cascade. GPU-only (opacity
   + transform), one-shot, and fully disabled under reduced motion.
   Tune the whole sequence from these three tokens.
   ============================================================ */
.txunited-mp {
  --enter-dur: .62s;
  --enter-ease: cubic-bezier(.21, .6, .35, 1); /* soft settle, no overshoot */
  --enter-stagger: 80ms;
  /* The directional slides start a few px outside their final spot; clip the
     overshoot so no transient horizontal scrollbar appears mid-entrance.
     `clip` (not `hidden`) keeps the sticky sidebar/rail working. */
  overflow-x: clip;
}

@keyframes txunited-mp-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes txunited-rise     { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes txunited-in-left  { from { opacity: 0; transform: translateX(-22px); } to { opacity: 1; transform: none; } }
@keyframes txunited-in-right { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
@keyframes txunited-pop {
  0%   { opacity: 0; transform: scale(.78); }
  62%  { opacity: 1; transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes txunited-ring {
  from { box-shadow: 0 0 0 12px rgba(201, 161, 74, 0); }
  to   { box-shadow: 0 0 0 2px var(--gold); }
}
@keyframes txunited-bar-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes txunited-bar-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes txunited-sheen {
  from { transform: translateX(-160%) skewX(-18deg); opacity: 0; }
  28%  { opacity: 1; }
  to   { transform: translateX(320%) skewX(-18deg); opacity: 0; }
}
/* motion-free fallback used under prefers-reduced-motion: opacity only */
@keyframes txunited-fade-soft { from { opacity: 0; } to { opacity: 1; } }

/* --- base: every card rises in --- */
.txunited-mp__card { animation: txunited-rise var(--enter-dur) var(--enter-ease) both; }

/* --- sidebar: slides in from the left, leads the sequence --- */
.txunited-mp__sidebar > .txunited-mp__card { animation-name: txunited-in-left; }
.txunited-mp__sidebar > .txunited-mp__card:nth-child(1) { animation-delay: .02s; }
.txunited-mp__sidebar > .txunited-mp__card:nth-child(2) { animation-delay: .12s; }

/* nav links cascade in after the nav panel arrives */
.txunited-mp__nav a { animation: txunited-rise .5s var(--enter-ease) both; }
.txunited-mp__nav a:nth-of-type(1) { animation-delay: .18s; }
.txunited-mp__nav a:nth-of-type(2) { animation-delay: .23s; }
.txunited-mp__nav a:nth-of-type(3) { animation-delay: .28s; }
.txunited-mp__nav a:nth-of-type(4) { animation-delay: .33s; }
.txunited-mp__nav a:nth-of-type(5) { animation-delay: .38s; }
.txunited-mp__nav a:nth-of-type(6) { animation-delay: .43s; }
.txunited-mp__nav a:nth-of-type(n+7) { animation-delay: .48s; }
/* active item's gold bar grows from the top once the link has landed */
.txunited-mp__nav a.is-active::before {
  transform-origin: top center;
  animation: txunited-bar-grow .45s var(--enter-ease) both;
  animation-delay: .5s;
}

/* --- main column: rises, staggered by section --- */
.txunited-mp__profile  { animation-delay: .06s; }
.txunited-mp__about     { animation-delay: .16s; }
.txunited-mp__composer  { animation-delay: .24s; }
.txunited-mp__feed-head { animation: txunited-rise var(--enter-dur) var(--enter-ease) both; animation-delay: .26s; }
/* feed cards: feed-head is :nth-child(1), so announcements start at 2 */
.txunited-mp__feed > .txunited-mp__card:nth-child(2)   { animation-delay: .30s; }
.txunited-mp__feed > .txunited-mp__card:nth-child(3)   { animation-delay: .38s; }
.txunited-mp__feed > .txunited-mp__card:nth-child(4)   { animation-delay: .46s; }
.txunited-mp__feed > .txunited-mp__card:nth-child(n+5) { animation-delay: .54s; }

/* cover: a single gold light sweeps across the banner */
.txunited-mp__cover::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 45%;
  z-index: 2; /* over the texture + star, under the edit pencil (z:3) */
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .16) 50%, transparent);
  transform: translateX(-160%) skewX(-18deg);
  animation: txunited-sheen 1.15s ease both;
  animation-delay: .35s;
  pointer-events: none;
}
/* avatar springs in with a contracting gold ring */
.txunited-mp__avatar .txunited-avatar {
  animation: txunited-pop .6s var(--enter-ease) both, txunited-ring .6s var(--enter-ease) both;
  animation-delay: .26s;
}
/* network chip arrives last in the header */
.txunited-mp__netchip { animation: txunited-rise .5s var(--enter-ease) both; animation-delay: .42s; }

/* --- rail: slides in from the right --- */
.txunited-mp__rail > .txunited-mp__card { animation-name: txunited-in-right; }
.txunited-mp__rail > .txunited-mp__card:nth-child(1) { animation-delay: .12s; }
.txunited-mp__rail > .txunited-mp__card:nth-child(2) { animation-delay: .20s; }
.txunited-mp__rail > .txunited-mp__card:nth-child(3) { animation-delay: .28s; }
.txunited-mp__rail > .txunited-mp__card:nth-child(4) { animation-delay: .36s; }
/* the profile-strength bar fills from empty — the finale beat */
.txunited-mp__bar i {
  transform-origin: left center;
  animation: txunited-bar-fill .7s var(--enter-ease) both;
  animation-delay: .55s;
}

/* --- shell pages (Connections, Messages, Billing, …) rise as a unit,
   with any directory cards inside cascading --- */
.txunited-mp__shellmain { animation: txunited-rise var(--enter-dur) var(--enter-ease) both; animation-delay: .06s; }
.txunited-mp .txunited-dircard { animation: txunited-rise .55s var(--enter-ease) both; }
.txunited-mp .txunited-dircard:nth-child(1) { animation-delay: .16s; }
.txunited-mp .txunited-dircard:nth-child(2) { animation-delay: .22s; }
.txunited-mp .txunited-dircard:nth-child(3) { animation-delay: .28s; }
.txunited-mp .txunited-dircard:nth-child(4) { animation-delay: .34s; }
.txunited-mp .txunited-dircard:nth-child(5) { animation-delay: .40s; }
.txunited-mp .txunited-dircard:nth-child(n+6) { animation-delay: .46s; }

/* --- accessibility: under reduced-motion, strip every MOVEMENT (slides,
   scale, the cover sheen, the bar fill) — movement is what can trigger
   vestibular discomfort. Keep the entrance present as a motion-free,
   staggered opacity cross-fade: an opacity change moves nothing, so it
   stays within the spirit of the setting while avoiding a hard "everything
   appears at once" load. --- */
@media (prefers-reduced-motion: reduce) {
  .txunited-mp,
  .txunited-mp *,
  .txunited-mp *::before,
  .txunited-mp *::after { animation: none !important; }
  .txunited-mp__bar i { transform: none; }

  .txunited-mp__card,
  .txunited-mp__shellmain,
  .txunited-mp__feed-head,
  .txunited-mp__netchip,
  .txunited-mp__nav a,
  .txunited-mp__avatar .txunited-avatar,
  .txunited-mp .txunited-dircard {
    animation: txunited-fade-soft .55s ease both !important;
  }
  .txunited-mp__about { animation-delay: .08s !important; }
  .txunited-mp__feed-head { animation-delay: .12s !important; }
  .txunited-mp__feed > .txunited-mp__card:nth-child(n+2) { animation-delay: .18s !important; }
  .txunited-mp__nav a:nth-of-type(2) { animation-delay: .06s !important; }
  .txunited-mp__nav a:nth-of-type(3) { animation-delay: .10s !important; }
  .txunited-mp__nav a:nth-of-type(4) { animation-delay: .14s !important; }
  .txunited-mp__nav a:nth-of-type(5) { animation-delay: .18s !important; }
  .txunited-mp__nav a:nth-of-type(n+6) { animation-delay: .22s !important; }
  .txunited-mp__rail > .txunited-mp__card:nth-child(2) { animation-delay: .10s !important; }
  .txunited-mp__rail > .txunited-mp__card:nth-child(3) { animation-delay: .16s !important; }
  .txunited-mp__rail > .txunited-mp__card:nth-child(4) { animation-delay: .22s !important; }
}

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .txunited-mp__grid { grid-template-columns: 232px minmax(0, 1fr); grid-template-areas: "side main" "rail rail"; }
  .txunited-mp__rail { position: static; flex-direction: row; flex-wrap: wrap; align-items: stretch; }
  .txunited-mp__rail > .txunited-mp__card { flex: 1 1 240px; }
}
@media (max-width: 820px) {
  .txunited-mp__grid { grid-template-columns: 1fr; grid-template-areas: "side" "main" "rail"; }
  .txunited-mp__sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
  .txunited-mp__id { flex: 1; min-width: 220px; }
  .txunited-mp__nav { flex: 2; min-width: 260px; display: flex; flex-wrap: wrap; }
  .txunited-mp__nav a { flex: 1 1 auto; }
  .txunited-mp__nav-sep { display: none; }
  .txunited-mp__rail { flex-direction: column; }
}
@media (max-width: 540px) {
  .txunited-mp__name { font-size: 1.35rem; }
  .txunited-mp__profile-body { padding: 0 18px 18px; }
}

/* ============ PUBLIC PROFILE (viewing another member) ============ */
/* Reuses the portal chrome with no left sidebar: a main column of every
   detail + a right rail of light CTAs. */
.txunited-mp--public .txunited-mp__grid {
  grid-template-columns: minmax(0, 1fr) 300px;
  grid-template-areas: "main rail";
}

/* Back-link pill — shared by every page with a "back" affordance. Literal
   colors (not --vars) so it renders correctly even outside .txunited-mp. */
.txunited-mp__back { margin: 0 0 18px; }
.txunited-mp__back a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 18px 6px 7px;
  background: #ffffff;
  border: 1px solid #e5e0d6;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(10, 29, 59, .05);
  font-family: 'Raleway', system-ui, sans-serif;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #0a1d3b;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.txunited-mp__back-ico {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #f5ecd6;
  color: #b08a3a;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.txunited-mp__back-ico svg { width: 14px; height: 14px; }
.txunited-mp__back a:hover {
  border-color: #c9a14a;
  box-shadow: 0 3px 10px rgba(10, 29, 59, .1);
  color: #0a1d3b;
}
.txunited-mp__back a:hover .txunited-mp__back-ico {
  background: #c9a14a;
  color: #0a1d3b;
  transform: translateX(-3px);
}

/* ---- Business details — gold icon facts + tappable contact tiles ---- */
.txunited-biz__facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 6px 26px;
  margin-top: .85rem;
}
.txunited-biz__fact {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 9px 0;
}
.txunited-biz__fact-ico {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--gold-tint);
  color: var(--gold-600);
  box-shadow: inset 0 0 0 1px rgba(201, 161, 74, .28);
}
.txunited-biz__fact-ico svg { width: 19px; height: 19px; }
.txunited-biz__fact-body { min-width: 0; }
.txunited-biz__fact-l {
  display: block;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-600);
}
.txunited-biz__fact-v {
  display: block;
  margin-top: 2px;
  font-size: .95rem;
  font-weight: 600;
  color: var(--navy);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.txunited-biz__contacts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed var(--rule);
}
.txunited-biz__contact {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.txunited-biz__contact:hover {
  background: var(--card);
  border-color: var(--gold);
  box-shadow: var(--sh);
  transform: translateY(-2px);
}
.txunited-biz__contact-ico {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  transition: background .16s ease, color .16s ease;
}
.txunited-biz__contact:hover .txunited-biz__contact-ico { background: var(--gold); color: var(--navy); }
.txunited-biz__contact-ico svg { width: 16px; height: 16px; }
.txunited-biz__contact-body { min-width: 0; flex: 1; }
.txunited-biz__contact-l {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--faint);
}
.txunited-biz__contact-v {
  display: block;
  margin-top: 1px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--navy);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.txunited-biz__contact-go {
  flex: none;
  color: var(--faint);
  transition: color .16s ease, transform .16s ease;
}
.txunited-biz__contact-go svg { width: 14px; height: 14px; }
.txunited-biz__contact:hover .txunited-biz__contact-go { color: var(--gold-600); transform: translate(2px, -2px); }

/* "more members" rail list */
.txunited-mp__people { margin-top: .55rem; }
.txunited-mp__person { display: flex; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--rule-soft); }
.txunited-mp__person:last-child { border-bottom: 0; }
.txunited-mp__person-av { flex: none; }
.txunited-mp__person-who { min-width: 0; }
.txunited-mp__person-name { display: block; font-weight: 700; color: var(--navy); font-size: .9rem; line-height: 1.2; }
.txunited-mp__person-name:hover { color: var(--gold-600); }
.txunited-mp__person-co { display: block; margin-top: 1px; font-size: .78rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 1080px) {
  .txunited-mp--public .txunited-mp__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "rail"; }
}

/* ============ NOTIFICATIONS PAGE ============ */
.txunited-mp--notif .txunited-mp__notif-wrap { max-width: 680px; margin: 0 auto; }

.txunited-notif__banner {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: .8rem 0 .2rem;
  padding: 12px 15px;
  border-radius: var(--r-sm);
  background:
    radial-gradient(120% 150% at 90% 0%, rgba(201, 161, 74, .22), transparent 60%),
    linear-gradient(125deg, var(--navy), var(--navy-700));
  color: #fff;
  text-decoration: none;
}
.txunited-notif__banner-ico svg { width: 20px; height: 20px; display: block; color: var(--gold); }
.txunited-notif__banner-text { flex: 1; font-size: .9rem; }
.txunited-notif__banner-text b { color: #fff; }
.txunited-notif__banner-go { font-size: 1.1rem; color: var(--gold); }
.txunited-notif__banner:hover { filter: brightness(1.08); }

.txunited-notif__list { list-style: none; margin: .7rem 0 0; padding: 0; }
.txunited-notif__item { border-bottom: 1px solid var(--rule-soft); }
.txunited-notif__item:last-child { border-bottom: 0; }
.txunited-notif__link {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px 6px;
  position: relative;
  text-decoration: none;
  color: inherit;
  border-radius: var(--r-sm);
}
a.txunited-notif__link:hover { background: var(--paper-2); }
.txunited-notif__item.is-unread .txunited-notif__link { background: rgba(201, 161, 74, .07); }
.txunited-notif__av { flex: none; }
.txunited-notif__av .txunited-avatar { width: 44px; height: 44px; font-size: .92rem; }
.txunited-notif__main { flex: 1; min-width: 0; }
.txunited-notif__text { display: block; font-size: .92rem; color: var(--ink); line-height: 1.4; }
.txunited-notif__text b { color: var(--navy); font-weight: 700; }
.txunited-notif__time { display: block; margin-top: 2px; font-size: .76rem; color: var(--faint); }
.txunited-notif__type {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--paper-2);
}
.txunited-notif__type svg { width: 17px; height: 17px; }
.txunited-notif__type--connection_request { color: var(--navy); }
.txunited-notif__type--connection_accepted { color: #2e7d52; }
.txunited-notif__type--post_like { color: #c0392b; }
.txunited-notif__dot {
  position: absolute;
  top: 50%;
  right: 2px;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold);
}
.txunited-notif__foot { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }

/* ============ COVER BANNER + HEADER PENCIL EDITS ============ */
.txunited-mp__cover--img {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.txunited-mp__cover--img::after { opacity: .22; }
.txunited-mp__cover--img .txunited-mp__cover-mark { display: none; }

.txunited-mp__cover-edit,
.txunited-mp__avatar-edit {
  position: absolute;
  z-index: 3; /* sit above the cover texture overlay + decorative star so clicks land */
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(10, 29, 59, .72);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 1px 5px rgba(0, 0, 0, .28);
  transition: background .15s ease;
}
.txunited-mp__cover-edit:hover,
.txunited-mp__avatar-edit:hover { background: var(--gold-600); }
.txunited-mp__cover-edit {
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
}
.txunited-mp__cover-edit svg { width: 17px; height: 17px; }
.txunited-mp__avatar-edit {
  right: 2px;
  bottom: 8px;
  width: 30px;
  height: 30px;
  border: 2px solid var(--card);
}
.txunited-mp__avatar-edit svg { width: 14px; height: 14px; }

/* ============ POST MEDIA (image + video embed) ============ */
.txunited-mp__post-media { margin: 11px 0 0; }
.txunited-mp__post-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 560px;
  object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--rule-soft);
}
.txunited-mp__post-video {
  position: relative;
  margin: 11px 0 0;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-sm);
  overflow: hidden;
  background: #000;
}
.txunited-mp__post-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ============ COMPOSER MEDIA ============ */
.txunited-mp__composer-tools { display: flex; gap: 4px; }
.txunited-mp__composer-tool {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 0;
  border-radius: var(--r-sm);
  background: none;
  color: var(--muted);
  font: inherit;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
}
.txunited-mp__composer-tool:hover { background: var(--paper-2); color: var(--navy); }
.txunited-mp__composer-tool svg { width: 18px; height: 18px; }
.txunited-mp__composer-video {
  width: 100%;
  margin-top: 10px;
  padding: 9px 12px;
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  font: inherit;
  font-size: .9rem;
  color: var(--ink);
}
.txunited-mp__composer-video:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(10, 29, 59, .12);
}
.txunited-mp__composer-preview[hidden] { display: none; }
.txunited-mp__composer-preview { margin-top: 10px; }
.txunited-mp__composer-thumb { position: relative; display: inline-block; max-width: 240px; }
.txunited-mp__composer-thumb img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r-sm);
  border: 1px solid var(--rule-soft);
}
.txunited-mp__composer-thumb-x {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 50%;
  background: rgba(10, 29, 59, .78);
  color: #fff;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.txunited-mp__composer-thumb-x:hover { background: var(--navy); }

/* ============ EDIT-PROFILE MODAL ============ */
.txunited-mp__modal[hidden] { display: none; }
.txunited-mp__modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  justify-content: center;
  padding: 4vh 16px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.txunited-mp__modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(8, 18, 38, .58);
  -webkit-backdrop-filter: blur(5px) saturate(118%);
  backdrop-filter: blur(5px) saturate(118%);
  animation: txunited-mp-backdrop-in .3s ease both;
}
@keyframes txunited-mp-backdrop-in { from { opacity: 0; } to { opacity: 1; } }

.txunited-mp__modal .txunited-mp__editpanel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 860px;
  margin: auto;
  overflow: hidden; /* clips the gold accent bar to the rounded corners */
  animation: txunited-mp-modal-in .36s cubic-bezier(.21, .92, .27, 1.14) both;
}
/* Gold brand accent across the top of the dialog. */
.txunited-mp__modal .txunited-mp__editpanel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold-600), var(--gold), var(--gold-600));
  z-index: 3;
}
@keyframes txunited-mp-modal-in {
  from { opacity: 0; transform: translateY(26px) scale(.965); }
  to { opacity: 1; transform: none; }
}
.txunited-mp__modal-x {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--muted);
  cursor: pointer;
}
.txunited-mp__modal-x:hover { background: var(--paper-2); color: var(--navy); }
.txunited-mp__modal-x svg { width: 18px; height: 18px; }
body.txunited-mp-modal-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  .txunited-mp__modal .txunited-mp__editpanel,
  .txunited-mp__modal-backdrop { animation: none; }
}

/* ============ ACCOUNT SETTINGS PAGE ============ */
.txunited-mp--account .txunited-mp__account-wrap {
  max-width: 680px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
/* The two cards host the editor's field styling without the modal chrome. */
.txunited-mp--account .txunited-mp__editpanel { margin-top: .4rem; }

/* ── Upcoming-events rail panel (My Profile) ── */
.txunited-mp__sev-head svg {
  width: 17px;
  height: 17px;
  color: #a88936;
  margin-right: 6px;
  vertical-align: -3px;
}
.txunited-mp__sev-list { list-style: none; margin: 0.7rem 0 0; padding: 0; }
.txunited-mp__sev-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-mp__sev-item:last-child { border-bottom: 0; padding-bottom: 4px; }
/* Calendar-leaf date tile: gold month band over a big day numeral. */
.txunited-mp__sev-date {
  flex: 0 0 auto;
  width: 46px;
  border: 1px solid var(--rule-soft);
  border-radius: 9px;
  overflow: hidden;
  text-align: center;
  background: #fff;
  box-shadow: 0 2px 6px rgba(10, 29, 59, 0.07);
}
.txunited-mp__sev-mon {
  display: block;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(180deg, #d8ae56, #bd8b3d);
  padding: 3px 0 2px;
}
.txunited-mp__sev-day {
  display: block;
  font-size: 1.22rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.1;
  padding: 3px 0 4px;
}
.txunited-mp__sev-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.txunited-mp__sev-title {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--navy);
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.txunited-mp__sev-title:hover { color: #a88936; }
.txunited-mp__sev-meta { font-size: 0.76rem; color: var(--muted); }
.txunited-mp__sev-more {
  margin: 8px 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #8a6420;
}
.txunited-mp__sev .txunited-mp__btn--block { margin-top: 12px; }

/* "My Events" page header: title + browse CTA on one line. */
.txunited-mp__evt-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.txunited-mp__evt-top .txunited-mp__btn svg { width: 14px; height: 14px; margin-left: 6px; }

/* ============ BILLING PAGE ============ */
.txunited-mp--billing .txunited-mp__account-wrap { max-width: 720px; }
.txunited-bill__note { margin: 0 0 10px; font-size: .84rem; color: var(--muted); }

/* ── Installment payment plan card ── */
.txunited-bill__plan-badge {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #8a6420;
  background: #f7efdd;
  border-radius: 20px;
  padding: 3px 10px;
  margin-left: 8px;
  vertical-align: 2px;
}
.txunited-bill__plan-hero {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0 8px;
}
.txunited-bill__plan-paid { font-size: 1.55rem; font-weight: 800; color: var(--navy); }
.txunited-bill__plan-of { margin-left: 6px; font-size: .84rem; color: var(--muted); }
.txunited-bill__plan-pct { font-size: .8rem; font-weight: 700; color: #8a6420; }
.txunited-bill__progress {
  height: 8px;
  border-radius: 6px;
  background: var(--rule-soft, #ece7dc);
  overflow: hidden;
}
.txunited-bill__progress-fill {
  display: block;
  height: 100%;
  border-radius: 6px;
  background: linear-gradient(90deg, #d8ae56, #bd8b3d);
  transition: width .4s ease;
}
.txunited-bill__plan-done { margin: 10px 0 0; font-size: .84rem; font-weight: 600; color: #2e7d52; }
.txunited-bill__plan-rows { list-style: none; margin: 14px 0 12px; padding: 0; }
.txunited-bill__plan-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--rule-soft, #ece7dc);
}
.txunited-bill__plan-row:last-child { border-bottom: 0; }
.txunited-bill__plan-rk { font-size: .84rem; color: var(--muted); }
.txunited-bill__plan-rv { font-weight: 700; color: var(--navy); font-size: .9rem; text-align: right; }
.txunited-bill__plan-sub { display: block; font-weight: 400; font-size: .72rem; color: var(--muted); }

.txunited-bill__cards { list-style: none; margin: .6rem 0 0; padding: 0; }
.txunited-bill__card {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-bill__card:last-child { border-bottom: 0; }
.txunited-bill__card--empty { color: var(--faint); font-style: italic; }
.txunited-bill__brand { font-weight: 700; color: var(--navy); }
.txunited-bill__brand .txunited-num { font-weight: 600; color: var(--ink); margin-left: 4px; }
.txunited-bill__exp { font-size: .82rem; color: var(--muted); }
.txunited-bill__default {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #2e7d52;
  background: #e9f1ec;
  padding: 2px 8px;
  border-radius: 999px;
}
.txunited-bill__card-actions { margin-left: auto; display: flex; gap: 14px; }
.txunited-bill__link {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-size: .82rem;
  font-weight: 600;
  color: var(--gold-600);
}
.txunited-bill__link:hover { color: var(--navy); text-decoration: underline; }
.txunited-bill__link--danger { color: #c0392b; }
.txunited-bill__link--danger:hover { color: #a02214; }

.txunited-bill__addbtn { margin-top: 14px; }
.txunited-bill__addcard[hidden] { display: none; }
.txunited-bill__addcard {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  background: var(--paper);
}
.txunited-bill__element { margin-bottom: 12px; }
.txunited-bill__msg { color: #c0392b; font-size: .84rem; margin: 0 0 10px; min-height: 1em; }
.txunited-bill__addcard-actions { display: flex; gap: 9px; }

.txunited-bill__invoices { list-style: none; margin: .6rem 0 0; padding: 0; }
.txunited-bill__invoice {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  gap: 14px;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule-soft);
  font-size: .88rem;
}
.txunited-bill__invoice:last-child { border-bottom: 0; }
.txunited-bill__inv-amt { font-weight: 700; color: var(--navy); }
.txunited-bill__inv-status { font-size: .76rem; color: var(--muted); text-transform: capitalize; }

.txunited-bill__tiers { list-style: none; margin: .6rem 0 .4rem; padding: 0; }
.txunited-bill__tier {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-bill__tier:last-child { border-bottom: 0; }
.txunited-bill__tier-name { font-weight: 700; color: var(--navy); }
.txunited-bill__tier-dues { font-size: .84rem; color: var(--muted); }
.txunited-bill__tier .txunited-bill__link,
.txunited-bill__tier .txunited-bill__default { margin-left: auto; }

/* ============================================================
   My Connections ([txunited_connections]) — .txunited-conn
   The cards reuse the directory's .txunited-dircard component
   (signup-form.css); this block only styles the page extras.
   ============================================================ */
.txunited-conn { max-width: 920px; padding: 8px 16px 40px; }

/* Count line — same editorial rule treatment as the directory. */
.txunited-conn__count {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
.txunited-conn__count .txunited-num { font-size: .95rem; color: var(--navy); }
.txunited-conn__count::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--rule), transparent);
}

/* ---- Pending requests — a gold "invitation" band above the grid ---- */
.txunited-conn__requests {
  position: relative;
  overflow: hidden;
  margin: 0 0 26px;
  background:
    radial-gradient(130% 180% at 100% -40%, rgba(201, 161, 74, .12), transparent 55%),
    var(--card);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--gold);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-sm);
}

.txunited-conn__requests-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px 12px;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-conn__requests-ico {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--gold-tint);
  color: var(--gold-600);
}
.txunited-conn__requests-ico svg { width: 17px; height: 17px; }
.txunited-conn__requests-title {
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--navy);
}
.txunited-conn__requests-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--gold);
  color: var(--navy);
  font-size: .76rem;
  font-weight: 700;
}

.txunited-conn__req-list { margin: 0; padding: 0; list-style: none; }
.txunited-conn__req {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px 18px;
}
.txunited-conn__req + .txunited-conn__req { border-top: 1px solid var(--rule-soft); }

.txunited-conn__req-av { flex: none; line-height: 0; }
.txunited-conn__req-av .txunited-avatar { box-shadow: 0 0 0 2px var(--gold); border: 2px solid var(--card); }

.txunited-conn__req-who { min-width: 0; flex: 1; }
.txunited-conn__req-name {
  display: block;
  font-weight: 700;
  font-size: .95rem;
  color: var(--navy);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
a.txunited-conn__req-name:hover { color: var(--gold-600); text-decoration: underline; text-underline-offset: 3px; }
.txunited-conn__req-meta {
  display: block;
  font-size: .78rem;
  color: var(--muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.txunited-conn__req-note {
  display: block;
  margin-top: 1px;
  font-size: .72rem;
  font-style: italic;
  color: var(--faint);
}

/* "Why you matched" — compatibility score + the things they share. */
.txunited-conn__req-why {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
}
.txunited-conn__req-score {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-size: .68rem;
  font-weight: 600;
}
.txunited-conn__req-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--gold-tint);
  color: var(--gold-600);
  font-size: .68rem;
  font-weight: 500;
}

.txunited-conn__req-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.txunited-conn__req-accept {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: .5rem 1.05rem;
  border: 1.5px solid var(--gold);
  border-radius: 999px;
  background: var(--gold);
  color: var(--navy);
  font-family: var(--font);
  font-weight: 700;
  font-size: .8rem;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.txunited-conn__req-accept svg { width: 14px; height: 14px; }
.txunited-conn__req-accept:hover { background: var(--gold-600); border-color: var(--gold-600); color: #fff; }
.txunited-conn__req-accept[disabled] { opacity: .55; cursor: default; }

.txunited-conn__req-decline {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1.5px solid var(--rule);
  border-radius: 50%;
  background: var(--card);
  color: var(--muted);
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.txunited-conn__req-decline svg { width: 15px; height: 15px; }
.txunited-conn__req-decline:hover { border-color: #8b1e1e; color: #8b1e1e; background: #fff5f5; }
.txunited-conn__req-decline[disabled] { opacity: .55; cursor: default; }

@media (max-width: 540px) {
  .txunited-conn__req { flex-wrap: wrap; }
  .txunited-conn__req-actions { width: 100%; justify-content: flex-end; }
}

.txunited-conn__empty { text-align: center; padding: 50px 24px; }
.txunited-conn__empty-ico {
  display: inline-grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--gold-tint);
  color: var(--gold-600);
  margin-bottom: 14px;
}
.txunited-conn__empty-ico svg { width: 30px; height: 30px; }
.txunited-conn__empty-title { margin: 0 0 6px; font-size: 1.15rem; font-weight: 700; color: var(--navy); }
.txunited-conn__empty-text { margin: 0 auto 18px; max-width: 360px; font-size: .88rem; color: var(--muted); line-height: 1.6; }


/* ============================================================
   Announcements feed (My Membership activity area) — .txunited-mp__ann
   ============================================================ */
.txunited-mp__feed-head {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font);
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -.01em;
  color: var(--navy);
  padding: 2px 2px 2px;
}
.txunited-mp__feed-head-ico {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--gold-tint);
  color: var(--gold-600);
}
.txunited-mp__feed-head-ico svg { width: 17px; height: 17px; }

.txunited-mp__ann { border-left: 3px solid var(--gold); }
.txunited-mp__ann-head { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.txunited-mp__ann-badge {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy-700), var(--navy));
  color: var(--gold);
  box-shadow: 0 0 0 2px var(--gold);
}
.txunited-mp__ann-badge svg { width: 22px; height: 22px; }
.txunited-mp__ann-who { min-width: 0; }
.txunited-mp__ann-who b { display: block; font-size: .95rem; font-weight: 700; color: var(--navy); }
.txunited-mp__ann-sub { display: flex; align-items: center; gap: 6px; margin-top: 1px; font-size: .76rem; color: var(--faint); }
.txunited-mp__ann-sub svg { width: 13px; height: 13px; }

.txunited-mp__ann-title { margin: 0 0 10px; font-family: var(--font); font-size: 1.18rem; font-weight: 800; line-height: 1.3; color: var(--navy); }

.txunited-mp__ann-media { margin: 0 0 12px; }
.txunited-mp__ann-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 560px;
  object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--rule-soft);
}

/* Rich body (the_content output: blocks, images, embeds, lists, links). */
.txunited-mp__ann-body { font-size: .94rem; color: #2b2f3e; line-height: 1.7; overflow-wrap: break-word; }
.txunited-mp__ann-body > :first-child { margin-top: 0; }
.txunited-mp__ann-body > :last-child { margin-bottom: 0; }
.txunited-mp__ann-body p { margin: 0 0 .85em; }
.txunited-mp__ann-body h1,
.txunited-mp__ann-body h2,
.txunited-mp__ann-body h3,
.txunited-mp__ann-body h4 { font-family: var(--font); color: var(--navy); line-height: 1.3; margin: 1.1em 0 .5em; }
.txunited-mp__ann-body h2 { font-size: 1.1rem; }
.txunited-mp__ann-body h3 { font-size: 1rem; }
.txunited-mp__ann-body a { color: var(--gold-600); text-decoration: underline; }
.txunited-mp__ann-body a:hover { color: var(--navy); }
.txunited-mp__ann-body ul,
.txunited-mp__ann-body ol { margin: 0 0 .85em; padding-left: 1.4em; }
.txunited-mp__ann-body li { margin: .2em 0; }
.txunited-mp__ann-body blockquote {
  margin: 0 0 .85em;
  padding: .4em 0 .4em 1em;
  border-left: 3px solid var(--gold);
  color: var(--muted);
  font-style: italic;
}
.txunited-mp__ann-body img { max-width: 100%; height: auto; border-radius: var(--r-sm); }
.txunited-mp__ann-body figure { margin: 0 0 .85em; }
.txunited-mp__ann-body figcaption { font-size: .78rem; color: var(--faint); margin-top: 4px; }
/* Responsive video embeds (oEmbed iframes / wp-block-embed). */
.txunited-mp__ann-body iframe,
.txunited-mp__ann-body .wp-block-embed iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
  border-radius: var(--r-sm);
  background: #000;
}
.txunited-mp__ann-body .wp-block-embed { margin: 0 0 .85em; }

/* System (announcement) avatar in the notifications feed. */
.txunited-notif__sysav {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy-700), var(--navy));
  color: var(--gold);
  box-shadow: 0 0 0 2px var(--gold);
}
.txunited-notif__sysav svg { width: 20px; height: 20px; }

/* ============================================================
   MY EVENTS PAGE ([txunited_my_events]) — .txunited-mp__evt-*
   ============================================================ */
.txunited-mp__evt-wrap { max-width: 760px; }
.txunited-mp__evt-h {
  margin: 18px 0 8px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-600);
}
.txunited-mp__evt-h:first-of-type { margin-top: 6px; }
.txunited-mp__evt-list { list-style: none; margin: 0; padding: 0; }
.txunited-mp__evt {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.txunited-mp__evt:last-child { border-bottom: 0; }
.txunited-mp__evt-body { flex: 1 1 260px; min-width: 0; }
.txunited-mp__evt-title {
  display: inline-block;
  font-weight: 700;
  font-size: 1rem;
  color: var(--navy);
  line-height: 1.3;
}
.txunited-mp__evt-title:hover { color: var(--gold-600); }
.txunited-mp__evt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-top: 5px;
  font-size: .83rem;
  color: var(--muted);
}
.txunited-mp__evt-when { display: inline-flex; align-items: center; gap: 6px; }
.txunited-mp__evt-when svg { width: 15px; height: 15px; color: var(--gold-600); }
.txunited-mp__evt-side { display: flex; align-items: center; gap: 12px; flex: none; }
@media (max-width: 540px) {
  .txunited-mp__evt-side { width: 100%; justify-content: space-between; }
}

/* ============================================================
   PortalShell content adjustments — pages embedded in the shared
   member shell fill the main column instead of self-centering.
   Kept LAST so they win the specificity tie against the page rules.
   ============================================================ */
.txunited-mp__shellmain .txunited-conn { max-width: none; padding: 0; }
.txunited-mp__shellmain .txunited-msg { max-width: none; width: 100%; margin: 0; }
/* Give the two-pane inbox the full column height available. */
.txunited-mp__shellmain .txunited-msg__grid { height: min(78vh, 720px); }

/* Anchor-rendered connect buttons keep their button colors inside the member
   shell — the generic `.txunited-mp a { color: inherit }` link rule would
   otherwise paint dark ink onto the solid navy button. */
.txunited-mp a.txunited-connect-btn,
.txunited-mp a.txunited-connect-btn:hover { color: #ffffff; }
.txunited-mp a.txunited-connect-btn--ghost,
.txunited-mp a.txunited-connect-btn--ghost:hover { color: #0a1d3b; }
.txunited-mp a.txunited-connect-btn--gold { color: #0a1d3b; }
.txunited-mp a.txunited-connect-btn--gold:hover { color: #ffffff; }
.txunited-mp__shellmain .txunited-mp--account .txunited-mp__account-wrap,
.txunited-mp__shellmain .txunited-mp--billing .txunited-mp__account-wrap { margin: 0; }
.txunited-mp__shellmain .txunited-mp--notif .txunited-mp__notif-wrap { margin: 0; max-width: 760px; }

/* ============================================================
   Discovery — sidebar "not set up" dot, the page completeness
   meter, and the dashboard "get discovered" nudge.
   ============================================================ */

/* Sidebar nav: a small gold dot (vs. the number badge) marks the Discovery
   item while the member hasn't finished their matching setup. */
.txunited-mp__nav-badge--dot {
  margin-left: auto;
  width: 9px;
  height: 9px;
  min-width: 0;
  padding: 0;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(201, 161, 74, .18);
}

/* --- Discovery page header + completeness meter --- */
.txunited-discovery__head { margin: 2px 0 18px; }
.txunited-discovery__title { margin: 6px 0 6px; font-size: 1.55rem; font-weight: 800; color: var(--navy); }
.txunited-discovery__lead { margin: 0; max-width: 62ch; color: var(--faint); line-height: 1.55; }

.txunited-discovery__meter {
  margin: 0 0 22px;
  padding: 14px 16px;
  background: var(--paper-2);
  border: 1px solid var(--rule-soft);
  border-radius: 12px;
}
.txunited-discovery__meter.is-complete {
  background: rgba(201, 161, 74, .10);
  border-color: rgba(201, 161, 74, .45);
}
.txunited-discovery__meter-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.txunited-discovery__meter-label { font-weight: 700; color: var(--navy); }
.txunited-discovery__meter-count { font-size: .8rem; color: var(--faint); font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
.txunited-discovery__meter-track {
  margin-top: 10px;
  height: 8px;
  border-radius: 999px;
  background: rgba(10, 29, 59, .08);
  overflow: hidden;
}
.txunited-discovery__meter-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--gold), var(--gold-600));
  transition: width .35s ease;
}

/* --- Constrain to a readable column + card the editable form --- */
.txunited-discovery { max-width: 760px; }

.txunited-discovery__form {
  padding: 22px 24px 24px;
  background: #fff;
  border: 1px solid var(--rule-soft);
  border-radius: 14px;
}
/* One consistent gap between each facet group (label + its chips). */
/* Each category sits in its own band with a hairline divider above it, so the
   groups read as distinct rather than crowding into each other. */
.txunited-discovery__form .txunited-signup-form__row:not(.txunited-signup-form__row--submit) {
  margin: 0;
  padding: 22px 2px;
  border-top: 1px solid rgba(10, 29, 59, .08);
}
.txunited-discovery__form .txunited-signup-form__row:first-of-type {
  padding-top: 4px;
  border-top: 0;
}
.txunited-discovery__form .txunited-signup-form__label {
  display: block;
  margin-bottom: 11px;
}

/* --- Visibility & contact: the two toggles, grouped + divided off --- */
.txunited-discovery__toggles {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--rule-soft);
  display: grid;
  gap: 10px;
}
.txunited-discovery__toggles-title {
  margin-bottom: 2px;
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-600);
}
.txunited-discovery__toggle {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 0;
  padding: 12px 14px;
  background: var(--paper-2);
  border: 1px solid var(--rule-soft);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}
.txunited-discovery__toggle:hover { border-color: var(--gold); }
.txunited-discovery__toggle input {
  flex: none;
  margin: 2px 0 0;
  width: 17px;
  height: 17px;
  accent-color: var(--navy);
}
.txunited-discovery__toggle span { display: flex; flex-direction: column; gap: 2px; }
.txunited-discovery__toggle strong { font-size: .95rem; font-weight: 600; color: var(--navy); }
.txunited-discovery__toggle small { font-size: .82rem; line-height: 1.4; color: var(--faint); }

.txunited-discovery__form .txunited-signup-form__row--submit { margin: 22px 0 0; }

/* --- Dashboard "get discovered" nudge --- */
.txunited-discovery-nudge {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 18px;
  padding: 18px 20px;
  background: linear-gradient(135deg, #0a1d3b 0%, #14305c 100%);
  border: 1px solid rgba(201, 161, 74, .35);
  border-radius: 14px;
  color: #fff;
}
.txunited-discovery-nudge__ring {
  --p: 0;
  position: relative;
  flex: none;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: conic-gradient(var(--gold) calc(var(--p) * 1%), rgba(255, 255, 255, .14) 0);
  display: grid;
  place-items: center;
}
.txunited-discovery-nudge__ring::before {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: #0c2147;
}
.txunited-discovery-nudge__ring-num { position: relative; z-index: 1; font-weight: 800; font-size: .92rem; color: #fff; }
.txunited-discovery-nudge__ring-num small { font-size: .6em; opacity: .8; margin-left: 1px; }
.txunited-discovery-nudge__body { flex: 1 1 auto; min-width: 0; }
.txunited-discovery-nudge__title { display: block; font-size: 1.04rem; font-weight: 700; letter-spacing: .2px; }
.txunited-discovery-nudge__text { margin: 4px 0 0; font-size: .87rem; line-height: 1.5; color: rgba(255, 255, 255, .82); }
.txunited-discovery-nudge__cta {
  flex: none;
  align-self: center;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--gold);
  color: #0a1d3b !important;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .15s ease, background .15s ease;
}
.txunited-discovery-nudge__cta:hover { background: #d9b35e; transform: translateY(-1px); }
.txunited-discovery-nudge__cta span { margin-left: 5px; }

@media (max-width: 640px) {
  .txunited-discovery-nudge { flex-wrap: wrap; gap: 14px; }
  .txunited-discovery-nudge__cta { width: 100%; text-align: center; }
}

/* --- Renewal prompt (imported members without billing) --------------------
   One component, five states. Prominence rises with urgency: gold while the
   term is comfortable, amber inside the last month, red once it has run out.
   The meter is the member's own term draining, which is what makes the
   countdown state read as different from the nudge without more words. */
.txunited-mp .txunited-renew {
  margin: 0 0 20px;
  background: var(--navy);
  border-radius: 12px;
  overflow: hidden;
}
.txunited-mp .txunited-renew__row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 18px;
}
.txunited-mp .txunited-renew__ico {
  flex: 0 0 auto;
  color: var(--gold);
  line-height: 0;
}
.txunited-mp .txunited-renew__ico svg { width: 22px; height: 22px; display: block; }
.txunited-mp .txunited-renew__text { flex: 1; min-width: 0; }
.txunited-mp .txunited-renew__head {
  margin: 0;
  font-size: .95rem;
  font-weight: 600;
  color: #fff;
}
.txunited-mp .txunited-renew__sub {
  margin: 3px 0 0;
  font-size: .84rem;
  line-height: 1.5;
  color: #9fb0cc;
}
.txunited-mp .txunited-renew__nothing { display: block; color: var(--gold); }
.txunited-mp .txunited-renew__since {
  margin: 6px 0 0;
  font-size: .74rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #6b7f9e;
}
.txunited-mp .txunited-renew__actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
}
.txunited-mp a.txunited-renew__cta {
  display: inline-block;
  padding: 9px 16px;
  font-size: .85rem;
  font-weight: 600;
  color: #2c1f06;
  background: var(--gold);
  border-radius: 7px;
  text-decoration: none;
  white-space: nowrap;
}
.txunited-mp a.txunited-renew__cta:hover { background: var(--gold-600); color: #fff; }
.txunited-mp .txunited-renew__snooze { margin: 0; }
.txunited-mp .txunited-renew__snooze button {
  padding: 6px 4px;
  font-size: .8rem;
  color: #8fa2c0;
  background: none;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
}
.txunited-mp .txunited-renew__snooze button:hover { color: #fff; text-decoration: underline; }

.txunited-mp .txunited-renew__meter {
  height: 3px;
  background: #16294a;
}
.txunited-mp .txunited-renew__meter > span {
  display: block;
  height: 100%;
  background: var(--gold);
}

/* Inside the last month: amber, and a left edge so it reads as escalated
   even for someone who never saw the calmer version. */
.txunited-mp .txunited-renew--countdown {
  border-left: 3px solid #ef9f27;
  border-radius: 0 12px 12px 0;
}
.txunited-mp .txunited-renew--countdown .txunited-renew__ico { color: #ef9f27; }
.txunited-mp .txunited-renew--countdown .txunited-renew__meter > span { background: #ef9f27; }

/* Ended. No snooze is offered, so the row has one action only. */
.txunited-mp .txunited-renew--lapsed { background: #3a1414; }
.txunited-mp .txunited-renew--lapsed .txunited-renew__ico { color: #f09595; }
.txunited-mp .txunited-renew--lapsed .txunited-renew__sub { color: #e0aaaa; }

/* Done. Calm, and it retires itself after a week. */
.txunited-mp .txunited-renew--confirmed { background: #0d2b22; }
.txunited-mp .txunited-renew--confirmed .txunited-renew__ico { color: #5dcaa5; }
.txunited-mp .txunited-renew--confirmed .txunited-renew__sub { color: #9fd9c4; }

@media (max-width: 640px) {
  .txunited-mp .txunited-renew__row { flex-wrap: wrap; }
  .txunited-mp .txunited-renew__text { flex: 1 1 100%; order: 2; }
  .txunited-mp .txunited-renew__actions { flex: 1 1 100%; order: 3; justify-content: space-between; }
  .txunited-mp a.txunited-renew__cta { flex: 1; text-align: center; }
}

/* --- Connection Setup: the two halves ------------------------------------
   "About me" and "Who I would like to meet" are the same controls asking
   opposite questions, so they are distinguished by heading and a gold rule
   rather than by looking different — the second half must not read as an
   afterthought or members will skip it and get no introductions. */
.txunited-mp .txunited-discovery__section-title {
  margin: 26px 0 2px;
  padding-top: 18px;
  border-top: 1px solid rgba(10, 29, 59, .1);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--navy);
}
.txunited-mp .txunited-discovery__form > .txunited-discovery__section-title:first-of-type {
  margin-top: 4px;
  padding-top: 0;
  border-top: 0;
}
.txunited-mp .txunited-discovery__section-title--seeking { border-top-color: rgba(201, 161, 74, .45); }
.txunited-mp .txunited-discovery__section-note {
  margin: 0 0 16px;
  max-width: 62ch;
  font-size: .86rem;
  line-height: 1.55;
  color: #5a6b85;
}
