/* Feature layouts: homepage type + chrome. Layout geometry varies; styling does not. */

.fl {
  color: var(--bv-ink);
  font-family: var(--bv-font);
  --bv-blue: var(--fl-a);
  --bv-green: var(--fl-b);
  --bv-gradient: var(--fl-g);
  --bv-blue-soft: var(--fl-soft);
  --bv-green-soft: color-mix(in srgb, var(--fl-b) 18%, transparent);
  --bv-blue-glow: var(--fl-glow);
  --bv-teal-glow: var(--fl-glow-b, color-mix(in srgb, var(--fl-b) 36%, transparent));
}

.fl .bv-hero__badge {
  background: linear-gradient(135deg, var(--fl-soft), color-mix(in srgb, var(--fl-b) 16%, #fff));
  border-color: color-mix(in srgb, var(--fl-a) 32%, transparent);
  color: var(--fl-a);
}
.fl .bv-kicker,
.fl .fl-kicker,
.fl .fl-chips span {
  color: var(--fl-a);
  background: var(--fl-soft);
}
.fl .sd-kicker { color: var(--fl-a); }
.fl .fl-related__card i { color: var(--fl-a); }
.fl .bv-btn--primary {
  background: var(--fl-g);
  box-shadow: 0 4px 20px color-mix(in srgb, var(--fl-a) 32%, transparent);
}
.fl .bv-btn--primary:hover {
  box-shadow: 0 8px 32px color-mix(in srgb, var(--fl-b) 38%, transparent);
}
.fl .bv-blob--blue { background: var(--fl-glow); }
.fl .bv-blob--teal { background: var(--fl-glow-b, color-mix(in srgb, var(--fl-b) 40%, transparent)); }
.fl .bv-finale::before { background: color-mix(in srgb, var(--fl-b) 34%, transparent); }
.fl .bv-finale::after { background: color-mix(in srgb, var(--fl-a) 28%, transparent); }
.fl .bv-finale { text-align: center; }
.fl .bv-finale .bv-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.fl .bv-finale h2 {
  margin: 0 auto;
  max-width: 16em;
  text-align: center;
}
.fl .bv-finale p {
  margin: 20px auto 0;
  max-width: 34em;
  text-align: center;
}
.fl .bv-finale__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin-top: 36px;
}
.fl .bv-finale .bv-btn {
  min-height: 48px;
}
.fl .bv-btn--invert {
  background: #fff;
  color: var(--fl-a);
}
.fl h1 {
  margin: 0;
  max-width: 14em;
  font-size: clamp(2.05rem, 4.2vw, 3.55rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.06;
}
.fl h2 {
  margin: 0;
  font-size: clamp(2rem, 3.6vw, 2.8rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.12;
}
.fl p { margin: 0; }

.fl-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fl-a);
  background: var(--fl-soft);
}
.fl-kicker i { font-size: 11px; }
.fl-lede {
  margin: 20px 0 0;
  max-width: 36em;
  font-size: 17px;
  line-height: 1.65;
  color: var(--bv-muted);
}
.fl-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.fl-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.fl-chips span {
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  background: var(--fl-soft);
  color: var(--fl-a);
}

.fl > section:not(.section):not(.bv-finale):not(.fx-hero) { padding: clamp(36px, 7vw, 88px) 0; }
.fl [class$="-hero"] { padding-top: clamp(36px, 7vw, 88px); padding-bottom: clamp(40px, 6vw, 72px); }

.fl-related { padding: clamp(64px, 9vw, 112px) 0; background: var(--bv-cream-deep); }
.fl-related h2 { margin: 0 0 28px; }
.fl-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.fl-related__card {
  display: grid;
  gap: 6px;
  padding: 18px 18px 20px;
  border-radius: 18px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  text-decoration: none;
  color: inherit;
  transition: transform 200ms var(--bv-ease), box-shadow 200ms var(--bv-ease);
}
.fl-related__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(17, 24, 39, 0.08);
}
.fl-related__card i { color: var(--fl-a); }
.fl-related__card b { font-size: 18px; font-weight: 600; letter-spacing: -0.03em; }
.fl-related__card span { color: var(--bv-muted); font-size: 14px; }

.fl article,
.fl-drop,
.fl-tree-card,
.fl-letter,
.fl-browser,
.fl-bulletin,
.fl-meter,
.fl-phone {
  font-family: inherit;
}

.fl article {
  padding: 18px 18px 20px;
  border: 1px solid var(--bv-line);
  border-radius: 18px;
  background: var(--bv-paper);
}
.fl article b { font-weight: 600; letter-spacing: -0.02em; }
.fl article p { margin-top: 8px; color: var(--bv-muted); font-size: 14px; line-height: 1.55; }

/* ---------- Donors: river ---------- */
.fl--river .fl-river-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.7fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: end;
}
.fl--river .fl-river-stats {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 14px;
}
.fl--river .fl-river-stats li {
  padding: 18px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  border-radius: 18px;
}
.fl--river .fl-river-stats b {
  display: block;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: var(--fl-a);
}
.fl--river .fl-river-track {
  position: relative;
  display: grid;
  gap: 14px;
  margin-top: 36px;
}
.fl--river .fl-river-ink {
  position: absolute;
  left: 27px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 99px;
  background: var(--fl-g);
  transform-origin: top;
  animation: fl-ink 1.4s var(--bv-ease) both;
}
.fl--river .fl-drop {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 56px 36px 1fr;
  gap: 16px;
  align-items: start;
  padding: 18px 20px;
  background: var(--bv-paper);
  border-radius: 18px;
  border: 1px solid var(--bv-line);
  animation: fl-drop-in 700ms var(--bv-ease) both;
  animation-delay: calc(var(--i) * 90ms);
}
.fl--river .fl-drop em {
  font-style: normal;
  font-weight: 600;
  color: var(--fl-a);
}
.fl--river .fl-drop i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--fl-g);
  color: #fff;
}
.fl--river .fl-drop p { margin-top: 6px; color: var(--bv-muted); font-size: 14px; }
.fl--river .fl-river-kinds__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}
.fl--river .fl-river-kinds i { color: var(--fl-a); margin-bottom: 10px; }
.fl--river .fl-river-kinds small { display: block; color: var(--bv-muted); margin: 6px 0 10px; }
.fl--river .fl-river-ledger table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 22px;
  background: var(--bv-paper);
}
.fl--river .fl-river-ledger th,
.fl--river .fl-river-ledger td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--bv-line);
  text-align: left;
}
.fl--river .fl-swap {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.fl--river .fl-swap li {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  font-size: 14px;
}
.fl--river .fl-swap s { color: var(--bv-faint); text-decoration: line-through; }
.fl--river .fl-swap span { color: var(--bv-ink); font-weight: 600; }

/* ---------- Members: tree ---------- */
.fl--tree .fl-tree-hero { position: relative; overflow: hidden; }
.fl--tree .fl-tree-sky {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 80% at 80% 0%, var(--bv-blue-glow), transparent 62%);
  pointer-events: none;
}
.fl--tree .fl-tree-hero .bv-wrap { position: relative; }
.fl--tree .fl-tree-house__grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) 1fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.fl--tree .fl-tree-card {
  background: var(--bv-paper);
  border-radius: 18px;
  padding: 22px;
  border: 1px solid var(--bv-line);
}
.fl--tree .fl-tree-card header {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
}
.fl--tree .fl-tree-card header span,
.fl--tree .fl-tree-card header small {
  display: block;
  color: var(--bv-muted);
  font-size: 13px;
}
.fl--tree .fl-tree-card header small {
  margin-top: 2px;
  font-size: 12px;
}
.fl--tree .fl-tree-card header i {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--bv-gradient);
  color: #fff;
  font-style: normal;
  font-weight: 700;
}
.fl--tree .fl-tree-card em {
  display: inline-block;
  margin: 0 6px 10px 0;
  padding: 4px 10px;
  border-radius: 100px;
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  background: var(--bv-green-soft);
  color: var(--bv-green);
}
.fl--tree .fl-tree-card ul { margin: 16px 0 0; padding: 0; list-style: none; }
.fl--tree .fl-tree-card li {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--bv-line);
  font-size: 14px;
}
.fl--tree .fl-tree-card li i { color: var(--fl-a); }
.fl--tree .fl-tree-life__row {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding: 24px 0 8px;
}
.fl--tree .fl-tree-life article { flex: 0 0 240px; }
.fl--tree .fl-tree-caps__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Fundraising: climb ---------- */
.fl--climb .fl-climb-hero__grid {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 380px);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.fl--climb .fl-meter {
  padding: 24px;
  border-radius: 18px;
  background: var(--bv-product);
  color: var(--bv-product-text);
  border: 1px solid var(--bv-product-line);
}
.fl--climb .fl-meter__name {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bv-product-muted);
}
.fl--climb .fl-meter__amt { display: block; font-size: 36px; font-weight: 600; letter-spacing: -0.04em; margin: 8px 0 2px; }
.fl--climb .fl-meter__bar {
  height: 10px;
  margin: 16px 0 20px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.12);
  overflow: hidden;
}
.fl--climb .fl-meter__bar i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--fl-g);
  transition: width 500ms var(--bv-ease);
}
.fl--climb .fl-meter__gifts { display: flex; flex-wrap: wrap; gap: 8px; }
.fl--climb .fl-meter__gifts button {
  border: 1px solid var(--bv-product-line);
  background: rgba(255, 255, 255, 0.06);
  color: var(--bv-product-text);
  border-radius: 100px;
  padding: 8px 12px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  animation: fl-beat 1.35s ease-in-out infinite;
}
.fl--climb .fl-meter__gifts button:nth-child(2) { animation-delay: 0.12s; }
.fl--climb .fl-meter__gifts button:nth-child(3) { animation-delay: 0.24s; }
.fl--climb .fl-meter__gifts button:nth-child(4) { animation-delay: 0.36s; }
.fl--climb .fl-meter__gifts button:nth-child(5) { animation-delay: 0.48s; }
.fl--climb .fl-meter__gifts button:hover,
.fl--climb .fl-meter.is-used .fl-meter__gifts button {
  animation: none;
}
.fl--climb .fl-meter__gifts button:hover { background: var(--fl-a); border-color: transparent; }

.fx-miss {
  padding: 20px 20px 18px;
  border-radius: 22px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  box-shadow: 0 20px 48px rgba(17, 24, 39, 0.06);
}
.fx-miss header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.fx-miss header span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bv-muted);
}
.fx-miss header button,
.fx-splitout__page button {
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  background: var(--fl-g);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  animation: fl-beat 1.35s ease-in-out infinite;
}
.fx-miss ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fx-miss li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  align-items: start;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--bv-cream-deep);
  opacity: 0.28;
  transform: translateX(10px);
  transition: opacity 420ms var(--bv-ease), transform 420ms var(--bv-ease), background 420ms var(--bv-ease);
}
.fx-miss li.is-on { opacity: 1; transform: none; }
.fx-miss li.is-on[data-ok] { background: color-mix(in srgb, #37C6A0 14%, #fff); }
.fx-miss li.is-on:not([data-ok]) { background: color-mix(in srgb, #BD6C76 12%, #fff); }
.fx-miss li i {
  width: 10px;
  height: 10px;
  margin-top: 6px;
  border-radius: 50%;
  background: #d8d3c6;
}
.fx-miss li.is-on[data-ok] i { background: #37C6A0; }
.fx-miss li.is-on:not([data-ok]) i { background: #BD6C76; }
.fx-miss b { display: block; font-size: 14px; letter-spacing: -0.02em; }
.fx-miss li span { font-size: 13px; color: var(--bv-muted); }
.fx-miss__verdict {
  margin: 14px 0 0;
  font-size: 13px;
  font-weight: 650;
  color: #BD6C76;
  opacity: 0;
  transition: opacity 400ms var(--bv-ease);
}
.fx-miss.is-done .fx-miss__verdict { opacity: 1; }

.fx-splitout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: clamp(36px, 6vw, 88px);
  align-items: center;
}
.fx-splitout__page {
  position: relative;
  z-index: 2;
  padding: 22px 22px 20px;
  border-radius: 22px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  box-shadow: 0 24px 60px rgba(17, 24, 39, 0.08);
}
.fx-splitout__page header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bv-muted);
}
.fx-splitout__page header span {
  width: 8px; height: 8px; border-radius: 50%; background: #d8d3c6;
}
.fx-splitout__page header span:nth-child(1) { background: #e8b4b4; }
.fx-splitout__page header span:nth-child(2) { background: #e6d48a; }
.fx-splitout__page header span:nth-child(3) { background: #b5dcc8; }
.fx-splitout__kicker {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fl-a);
}
.fx-splitout__page > b { display: block; font-size: 22px; letter-spacing: -0.04em; }
.fx-splitout__bar {
  height: 8px;
  margin: 12px 0 14px;
  border-radius: 99px;
  background: var(--bv-cream-deep);
  overflow: hidden;
}
.fx-splitout__bar i {
  display: block;
  width: 50%;
  height: 100%;
  background: var(--fl-g);
}
.fx-splitout__page p { margin: 0 0 16px; font-size: 14px; color: var(--bv-muted); line-height: 1.5; }
.fx-splitout__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}
.fx-splitout__svg path {
  fill: none;
  stroke: color-mix(in srgb, var(--fl-a) 70%, #37C6A0);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 8 10;
  opacity: 0;
}
.fx-splitout.is-on .fx-splitout__svg path {
  opacity: 0.7;
  animation: fx-split-dash 1.2s linear infinite;
}
.fx-splitout__cards { display: grid; gap: 10px; position: relative; z-index: 2; }
.fx-splitout__card {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  text-decoration: none;
  color: inherit;
  opacity: 0.22;
  transform: translateX(16px);
  transition: opacity 420ms var(--bv-ease), transform 420ms var(--bv-ease), border-color 220ms var(--bv-ease);
}
.fx-splitout.is-on .fx-splitout__card.is-on { opacity: 1; transform: none; }
.fx-splitout__card:hover { border-color: color-mix(in srgb, var(--fl-a) 40%, var(--bv-line)); }
.fx-splitout__card i { color: var(--fl-a); margin-top: 2px; }
.fx-splitout__card b { display: block; font-size: 15px; letter-spacing: -0.02em; }
.fx-splitout__card span { display: block; margin-top: 4px; font-size: 13px; color: var(--bv-muted); line-height: 1.45; }

@keyframes fl-beat {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 color-mix(in srgb, var(--fl-a) 0%, transparent); }
  45% { transform: scale(1.06); box-shadow: 0 0 0 8px color-mix(in srgb, var(--fl-a) 18%, transparent); }
}
@keyframes fx-split-dash { to { stroke-dashoffset: -72; } }
.fl--climb .fl-climb-ways ol { margin: 28px 0 0; padding: 0; list-style: none; }
.fl--climb .fl-climb-ways li {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--bv-line);
}
.fl--climb .fl-climb-ways em {
  font-style: normal;
  font-weight: 600;
  color: var(--fl-a);
}
.fl--climb .fl-climb-ways p { margin-top: 6px; color: var(--bv-muted); }
.fl--climb .fl-climb-tools__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Payments: ledger ---------- */
.fl--ledger .fl-led-book .bv-wrap {
  background: var(--bv-paper);
  padding: 28px 32px 36px;
  border-radius: 18px;
  border: 1px solid var(--bv-line);
}
.fl--ledger .fl-led-book header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  margin-bottom: 18px;
}
.fl--ledger .fl-led-book header b {
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: var(--fl-a);
  font-variant-numeric: tabular-nums;
}
.fl--ledger .fl-led-lines { margin: 0; padding: 0; list-style: none; }
.fl--ledger .fl-led-lines li {
  display: grid;
  grid-template-columns: 40px 28px 1fr;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--bv-line);
  opacity: 0;
  transform: translateX(-8px);
}
.fl--ledger .fl-led-lines li.is-on {
  opacity: 1;
  transform: none;
  transition: 400ms var(--bv-ease);
}
.fl--ledger .fl-led-lines p { color: var(--bv-muted); font-size: 14px; }
.fl--ledger .fl-led-recon__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.fl--ledger .is-off { color: var(--bv-faint); text-decoration: line-through; margin-bottom: 8px; }
.fl--ledger .fl-led-recon .is-on { color: var(--bv-ink); font-weight: 600; }
.fl--ledger .fl-led-caps ul { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.fl--ledger .fl-led-caps li {
  display: grid;
  grid-template-columns: 22px 180px 1fr;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  border-radius: 18px;
}

/* ---------- Newsletters: compose ---------- */
.fl--compose .fl-mail-seg { padding: clamp(48px, 7vw, 88px) 0; }
.fl--compose .fl-mail-seg__intro { max-width: none; margin-bottom: 8px; }
.fl--compose .fl-mail-seg__intro h2 { max-width: none; }
.fl--compose .fl-mail-seg__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
  align-items: stretch;
}
.fl--compose .fl-mail-seg__row article {
  display: grid;
  grid-template-rows: 28px 52px 1fr;
  align-items: start;
  min-height: 168px;
  padding: 22px 22px 20px;
}
.fl--compose .fl-mail-seg__row i {
  font-size: 22px;
  line-height: 1;
  color: var(--fl-a);
}
.fl--compose .fl-mail-seg__row b {
  display: block;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 600;
}
.fl--compose .fl-mail-seg strong {
  display: block;
  align-self: end;
  margin-top: 10px;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: var(--fl-a);
}
@media (max-width: 860px) {
  .fl--compose .fl-mail-seg__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .fl--compose .fl-mail-seg__row { grid-template-columns: 1fr; }
}
.fl--compose .fl-mail-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.fl--compose .fl-mail-caps ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.fl--compose .fl-mail-caps li { padding: 10px 0; border-bottom: 1px solid var(--bv-line); }

/* ---------- Facilities: floor ---------- */
.fl--floor .fl-rooms {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 28px;
  padding: 18px;
  background: var(--bv-cream-deep);
  border: 1px solid var(--bv-line);
  border-radius: 18px;
}
.fl--floor .fl-room {
  min-height: 120px;
  display: grid;
  place-items: center;
  gap: 8px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  border-radius: 14px;
  cursor: pointer;
  font: inherit;
}
.fl--floor .fl-room.is-on,
.fl--floor .fl-room:hover {
  border-color: var(--fl-a);
  box-shadow: 0 0 0 3px var(--fl-soft);
}
.fl--floor .fl-slots {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.fl--floor .fl-slots article { opacity: 0.45; }
.fl--floor .fl-slots article.is-on { opacity: 1; border-color: var(--fl-a); }
.fl--floor .fl-floor-use__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Preschool: rooms ---------- */
.fl--rooms .fl-class__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 48px);
}
.fl--rooms .fl-kids { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.fl--rooms .fl-kids li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bv-paper);
  border-radius: 18px;
  cursor: pointer;
  border: 1px solid var(--bv-line);
}
.fl--rooms .fl-kids li.is-on { border-color: var(--fl-a); }
.fl--rooms .fl-classrooms { display: grid; gap: 12px; }
.fl--rooms .fl-classrooms article { min-height: 92px; }
.fl--rooms .fl-classrooms article.is-on { border-color: var(--fl-a); }
.fl--rooms .fl-class-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.fl-place {
  display: grid;
  grid-template-columns: minmax(220px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(22px, 4vw, 48px);
  margin-top: 28px;
  align-items: start;
  position: relative;
  min-height: 420px;
  padding: 18px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--bv-line);
  box-shadow: 0 18px 44px rgba(216, 161, 74, 0.08);
  overflow: hidden;
}
.fl-place__label {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bv-faint);
}
.fl-place__kids {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.fl-place__kids li,
.fl-place__fly {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: #f8ead2;
  color: #9a6416;
  border: 1px solid rgba(154, 100, 22, 0.25);
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(17, 24, 39, 0.08);
  transform: rotate(var(--r, 0deg));
}
.fl-place__kids li b,
.fl-place__fly b {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.7);
  color: #9a6416;
  font-size: 11px;
  font-weight: 800;
}
.fl-place__kids li span,
.fl-place__fly span { font-weight: 650; font-size: 13px; }
.fl-place__kids li.is-go,
.fl-place__kids li.is-in {
  background: transparent;
  border: 1.5px dashed rgba(154, 100, 22, 0.4);
  color: rgba(154, 100, 22, 0.45);
  box-shadow: none;
}
.fl-place__kids li.is-go b,
.fl-place__kids li.is-in b { opacity: 0.4; }
.fl-place__fly {
  position: fixed;
  z-index: 40;
  margin: 0;
  pointer-events: none;
  transform: none;
  transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1), opacity 560ms ease;
}
.fl-place__rooms {
  display: grid;
  gap: 12px;
}
.fl-place__rooms article {
  min-height: 108px;
  padding: 14px 14px 12px;
  border: 1px solid var(--bv-line);
  border-radius: 16px;
  background: #111827;
  color: #faf8ef;
  box-shadow: 0 12px 28px rgba(17, 24, 39, 0.12);
  transition: box-shadow 280ms ease;
}
.fl-place__rooms article.is-on {
  box-shadow: 0 0 28px rgba(216, 161, 74, 0.28);
}
.fl-place__rooms article header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
  margin-bottom: 10px;
}
.fl-place__rooms article > header b,
.fl-place__rooms article header b { display: block; font-size: 16px; letter-spacing: -0.03em; }
.fl-place__rooms article header small { color: rgba(250, 248, 239, 0.55); }
.fl-place__slots,
.fl-place__tags {
  display: grid;
  gap: 6px;
}
.fl-place__hole {
  display: block;
  min-height: 36px;
  border-radius: 10px;
  border: 1.5px dashed rgba(250, 248, 239, 0.28);
  background: repeating-linear-gradient(-12deg, rgba(250, 248, 239, 0.04) 0 6px, transparent 6px 12px);
}
.fl-place__tag {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(250, 248, 239, 0.08);
  color: #faf8ef;
  font-size: 12px;
  font-weight: 700;
  box-shadow: inset 3px 0 0 #d8a14a;
  opacity: 0;
  transform: translateY(8px) scale(0.92);
  transition: opacity 280ms ease, transform 280ms ease;
}
.fl-place__tag.is-on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .fl-place__fly { display: none; }
  .fl-place__kids li { transform: none; }
  .fl-place__tag { opacity: 1; transform: none; }
}

/* ---------- Lifecycle: spine ---------- */
.lc-split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.lc-problem .lc-compare { margin-top: 40px; }
.lc-scatter {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.lc-scatter li {
  padding: 14px 16px;
  border-radius: 14px;
  background: #fff;
  border: 1px dashed rgba(17, 24, 39, 0.18);
  font-size: 14px;
  font-weight: 650;
  color: var(--bv-muted);
}
.lc-scatter li:nth-child(1) { transform: rotate(-1.4deg); }
.lc-scatter li:nth-child(2) { transform: rotate(1.1deg); margin-left: 18px; }
.lc-scatter li:nth-child(3) { transform: rotate(-0.8deg); }
.lc-scatter li:nth-child(4) { transform: rotate(1.6deg); margin-left: 10px; }
.lc-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.lc-compare > div {
  padding: 22px 22px 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid var(--bv-line);
}
.lc-compare__label {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bv-muted);
}
.lc-compare ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.lc-compare li {
  padding: 10px 0;
  border-top: 1px solid var(--bv-line);
  font-size: 14px;
  line-height: 1.45;
}
.lc-compare li:first-child { border-top: 0; padding-top: 0; }
.lc-compare > div:last-child { border-color: color-mix(in srgb, var(--fl-a) 28%, var(--bv-line)); }
.lc-compare > div:last-child li { color: var(--bv-ink); font-weight: 600; }

.lc-rail {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 14px;
}
.lc-rail::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: color-mix(in srgb, var(--fl-a) 35%, var(--bv-line));
}
.lc-rail li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.lc-rail__mark {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--fl-g);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.lc-rail__card {
  padding: 16px 18px 18px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--bv-line);
}
.lc-rail__card small {
  display: block;
  color: var(--bv-muted);
  font-size: 12px;
  font-weight: 650;
}
.lc-rail__card b {
  display: block;
  margin-top: 4px;
  font-size: 18px;
  letter-spacing: -0.03em;
}
.lc-rail__card p {
  margin: 6px 0 0;
  color: var(--bv-muted);
  font-size: 14px;
  line-height: 1.5;
}
.lc-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.lc-flow li {
  padding: 16px 16px 18px;
  border-radius: 16px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  min-width: 0;
}
.lc-flow em {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--fl-a);
}
.lc-flow b { display: block; margin-top: 6px; font-size: 15px; letter-spacing: -0.02em; }
.lc-flow p { margin: 6px 0 0; color: var(--bv-muted); font-size: 13px; line-height: 1.45; }

.lc-notice {
  display: grid;
  gap: 10px;
}
.lc-notice article {
  padding: 16px 18px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--bv-line);
}
.lc-notice article.is-on {
  border-color: color-mix(in srgb, var(--fl-a) 32%, var(--bv-line));
  background: color-mix(in srgb, var(--fl-a) 8%, #fff);
}
.lc-notice small {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bv-muted);
}
.lc-notice b { display: block; margin-top: 4px; font-size: 17px; letter-spacing: -0.03em; }
.lc-notice p { margin: 4px 0 0; color: var(--bv-muted); font-size: 13px; line-height: 1.45; }

.lc-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}
.lc-groups section {
  padding: 22px 20px 8px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--bv-line);
  min-width: 0;
}
.lc-groups h3 {
  margin: 0 0 16px;
  font-size: 18px;
  letter-spacing: -0.03em;
  line-height: 1.25;
}
.lc-groups ul { margin: 0; padding: 0; list-style: none; }
.lc-groups li {
  display: block;
  padding: 0;
  border-top: 1px solid var(--bv-line);
}
.lc-groups li:first-child { border-top: 0; }
.lc-groups .sd-callouts__btn {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  padding: 12px 0 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.lc-groups .sd-callouts__btn:hover,
.lc-groups .sd-callouts__btn:focus-visible {
  transform: none;
  box-shadow: none;
  color: var(--fl-a);
}
.lc-groups i { margin-top: 3px; color: var(--fl-a); }
.lc-groups b { display: block; font-size: 14px; }
.lc-groups p { margin: 4px 0 0; color: var(--bv-muted); font-size: 13px; line-height: 1.45; }

.lc-connect__grid {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.lc-connect__grid li {
  padding: 20px 20px 22px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid var(--bv-line);
}
.lc-connect__grid b { display: block; font-size: 17px; letter-spacing: -0.03em; }
.lc-connect__grid p { margin: 8px 0 0; color: var(--bv-muted); font-size: 14px; line-height: 1.5; }

.fx-life { width: 100%; }
.fx-life__card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.fx-life__card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(87,155,212,0.1), rgba(66,188,156,0.1));
  border-bottom: 2px solid #579bd4;
}
.fx-life__card header small {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6d788d;
}
.fx-life__card header b { display: block; font-size: 16px; color: #384551; }
.fx-life__card header em {
  font-style: normal;
  font-size: 11px;
  font-weight: 650;
  color: #384551;
}
.fx-life__card ol {
  margin: 0;
  padding: 10px 12px;
  list-style: none;
  display: grid;
  gap: 8px;
}
.fx-life__card li {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 4px 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f7f8fb;
}
.fx-life__card li.is-on { background: linear-gradient(135deg, rgba(87,155,212,0.08), rgba(66,188,156,0.08)); }
.fx-life__card li small {
  grid-row: 1 / 3;
  align-self: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d788d;
}
.fx-life__card li b { font-size: 13px; color: #384551; }
.fx-life__card li span { font-size: 11px; color: #6d788d; }
.fx-life__card aside {
  margin: 0 12px 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #111827;
  color: #fff;
}
.fx-life__card aside small {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.56);
}
.fx-life__card aside b { display: block; margin-top: 4px; font-size: 14px; }
.fx-life__card aside p { margin: 4px 0 0; font-size: 12px; color: rgba(255,255,255,0.7); }

@media (max-width: 1100px) {
  .lc-groups { grid-template-columns: 1fr; }
  .lc-flow { grid-template-columns: 1fr 1fr; }
}

/* ---------- Security: ops ---------- */
.fl--ops .fl-ops-triggers { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0; }
.fl--ops .fl-ops-triggers button {
  padding: 10px 16px;
  border-radius: 100px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  color: var(--bv-ink);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
}
.fl--ops .fl-ops-triggers button.is-on,
.fl--ops .fl-ops-triggers button:hover {
  border-color: var(--fl-a);
  box-shadow: 0 0 0 3px var(--fl-soft);
}
.fl--ops .fl-ops-cascade { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.fl--ops .fl-ops-cascade li {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  border-radius: 18px;
  opacity: 0.45;
}
.fl--ops .fl-ops-cascade li.is-on {
  opacity: 1;
  border-color: var(--bv-green);
}
.fl--ops .fl-ops-cascade li.is-on span { color: var(--bv-green); font-weight: 600; }
.fl--ops .fl-ops-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Website: canvas ---------- */
.fl--canvas .fl-browser {
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
}
.fl--canvas .fl-browser header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--bv-cream-deep);
  font-size: 13px;
  color: var(--bv-muted);
}
.fl--canvas .fl-browser header span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--bv-faint);
}
.fl--canvas .fl-browser__body { min-height: 220px; padding: 24px; }
.fl--canvas .fl-site-preview {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.fl--canvas .fl-site-preview li {
  padding: 16px;
  border-radius: 14px;
  background: var(--bv-cream-deep);
}
.fl--canvas .fl-site-blocks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.fl--canvas .fl-site-blocks button {
  padding: 8px 14px;
  border-radius: 100px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}
.fl--canvas .fl-site-blocks button.is-on {
  background: var(--bv-gradient);
  color: #fff;
  border-color: transparent;
}
.fl--canvas .fl-site-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Gabbai: program ---------- */
.fl--program .fl-prog-sheet .bv-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) 220px;
  gap: 28px;
}
.fl--program .fl-bulletin {
  background: var(--bv-paper);
  padding: 24px 28px;
  border: 1px solid var(--bv-line);
  border-radius: 18px;
}
.fl--program .fl-bulletin header {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bv-line);
}
.fl--program .fl-bulletin__row {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--bv-line);
}
.fl--program .fl-bulletin__row.is-on span { color: var(--fl-a); font-weight: 600; }
.fl--program .fl-prog-people { display: grid; gap: 8px; }
.fl--program .fl-prog-people button {
  padding: 12px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  border-radius: 18px;
  cursor: pointer;
  font: inherit;
}
.fl--program .fl-prog-people button.is-on {
  border-color: var(--fl-a);
  box-shadow: 0 0 0 3px var(--fl-soft);
}
.fl--program .fl-prog-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Member portal: device ---------- */
.fl--device .fl-dev-hero__grid {
  display: grid;
  grid-template-columns: 1fr minmax(240px, 300px);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.fl--device .fl-phone {
  width: 260px;
  margin-left: auto;
  padding: 18px 16px 22px;
  border-radius: 36px;
  background: var(--bv-product);
  color: var(--bv-product-text);
  border: 1px solid var(--bv-product-line);
}
.fl--device .fl-phone__island {
  width: 88px;
  height: 18px;
  margin: 0 auto 16px;
  border-radius: 99px;
  background: #000;
}
.fl--device .fl-phone__tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 16px;
}
.fl--device .fl-phone__tiles button {
  display: grid;
  gap: 6px;
  padding: 12px 8px;
  border: 0;
  border-radius: 14px;
  background: var(--bv-product-2);
  color: var(--bv-product-text);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
}
.fl--device .fl-phone__tiles button:hover { background: var(--fl-a); }
.fl--device .fl-phone__toast {
  margin-top: 12px;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--bv-gradient);
  font-size: 12px;
}
.fl--device .fl-dev-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Pastoral: notes ---------- */
.fl--notes .fl-note-desk__grid {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 28px;
  align-items: start;
}
.fl--notes .fl-note-stack { display: grid; gap: 12px; }
.fl--notes .fl-note-stack article {
  padding: 16px 18px;
  border: 1px solid var(--bv-line);
  border-radius: 16px;
  background: var(--bv-paper);
  cursor: pointer;
  transition: border-color 200ms var(--bv-ease), box-shadow 200ms var(--bv-ease);
}
.fl--notes .fl-note-stack article.is-on {
  border-color: var(--fl-a);
  box-shadow: 0 0 0 3px var(--fl-soft);
}
.fl--notes .fl-note-stack small {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fl-a);
  margin-bottom: 6px;
}
.fl--notes .fl-note-stack b {
  display: block;
  font-size: 16px;
  letter-spacing: -0.02em;
}
.fl--notes .fl-note-desk aside {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fl--notes .fl-note-desk aside button {
  display: block;
  width: 100%;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  color: var(--bv-ink);
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  text-align: left;
  transition: border-color 200ms var(--bv-ease), box-shadow 200ms var(--bv-ease), transform 200ms var(--bv-ease);
}
.fl--notes .fl-note-desk aside button:hover {
  border-color: color-mix(in srgb, var(--fl-a) 45%, var(--bv-line));
  transform: translateY(-1px);
}
.fl--notes .fl-note-desk aside button.is-on {
  border-color: var(--fl-a);
  background: color-mix(in srgb, var(--fl-a) 10%, var(--bv-paper));
  box-shadow: 0 0 0 3px var(--fl-soft);
}
.fl--notes .fl-note-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Ticketing: admit ---------- */
.fl--admit .fl-admit-hero__grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: clamp(28px, 5vw, 48px);
  align-items: center;
}
.fl--admit .fl-stubs { display: grid; gap: 10px; }
.fl--admit .fl-stubs article {
  display: flex;
  justify-content: space-between;
  padding: 16px 18px;
  border-left: 10px dotted var(--fl-a);
}
.fl--admit .fl-admit-slots__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}
.fl--admit .fl-admit-slots button {
  padding: 16px 10px;
  border-radius: 18px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  cursor: pointer;
  font: inherit;
}
.fl--admit .fl-admit-slots button.is-on { border-color: var(--fl-a); box-shadow: 0 0 0 3px var(--fl-soft); }
.fl--admit .fl-admit-slots button:disabled { opacity: 0.4; cursor: not-allowed; }
.fl--admit .fl-admit-slots button span { display: block; font-size: 12px; margin-top: 6px; color: var(--bv-muted); }
.fl--admit .fl-admit-work__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

/* ---------- Dedicated: Forms / Events / School ---------- */
.fl-body--forms,
.fl-body--events,
.fl-body--school { color: var(--bv-ink); }
.fl-form-hero__grid,
.fl-evt-hero__grid,
.fl-sch-hero__grid {
  display: grid;
  grid-template-columns: 1fr minmax(260px, 380px);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.fl-form-stack,
.fl-evt-tickets,
.fl-sch-roster { display: grid; gap: 10px; }
.fl-form-stack article,
.fl-evt-tickets article,
.fl-sch-roster article {
  padding: 16px 18px;
  background: var(--bv-paper);
  border-radius: 18px;
  border: 1px solid var(--bv-line);
}
.fl-form-stack article.is-submit {
  background: var(--bv-gradient);
  color: #fff;
  border: 0;
}
.fl-evt-tickets article { border-left: 10px dotted var(--fl-a, #D8845C); }
.fl-sch-roster article {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  font-size: 14px;
}
.fl-body--forms .forms-page__hero,
.fl-body--forms .bv-page-hero--split,
.fl-body--events .events-hero,
.fl-body--school .rschool-hero { display: none; }
.fl-body--events .fl-evt-hero .events-hero-ticker { color: var(--events-accent-dark, var(--bv-ink)); }

.fx-hero[data-fx-scene="forms"].is-on .fx-liveform {
  animation: fx-ease-in 450ms var(--bv-ease) 0.06s backwards;
}
.fx-liveform {
  position: relative;
  width: min(100%, 540px);
  margin-left: auto;
  min-height: 520px;
}
.fx-liveform__page {
  position: relative;
  z-index: 1;
  padding: 22px 22px 18px;
  border-radius: 20px;
  background: #121212;
  box-shadow: 0 28px 70px rgba(17, 24, 39, 0.28);
}
.fx-liveform__page > h3 {
  margin: 0 0 14px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  color: #579bd4;
}
.fx-liveform__card {
  background: #1e1e1e;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  overflow: hidden;
}
.fx-liveform__bar {
  height: 36px;
  background: #579bd4;
}
.fx-liveform__body { padding: 16px 16px 18px; }
.fx-liveform__intro,
.fx-liveform label,
.fx-liveform__field,
.fx-liveform__pay,
.fx-liveform__submit {
  opacity: 0.28;
  transition: opacity 180ms var(--bv-ease);
}
.fx-liveform__intro {
  margin: 0 0 14px;
  padding: 11px 13px;
  border-radius: 10px;
  background: rgba(87, 155, 212, 0.12);
  border-left: 4px solid #579bd4;
  color: rgba(255, 255, 255, 0.82);
  font-size: 12.5px;
  line-height: 1.45;
}
.fx-liveform label,
.fx-liveform__field {
  display: block;
  margin-bottom: 11px;
  font-size: 12px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.88);
}
.fx-liveform label em,
.fx-liveform__field em { color: #dc3545; font-style: normal; }
.fx-liveform input {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font: inherit;
  font-size: 13px;
  pointer-events: none;
}
.fx-liveform__choice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  padding: 9px 12px 9px 34px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  font-weight: 500;
  position: relative;
}
.fx-liveform__choice::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.35);
}
.fx-liveform__choice.is-picked {
  border-color: rgba(87, 155, 212, 0.45);
  background: rgba(87, 155, 212, 0.1);
}
.fx-liveform__choice.is-picked::before {
  border-color: #579bd4;
  box-shadow: inset 0 0 0 3px #1e1e1e, inset 0 0 0 6px #579bd4;
}
.fx-liveform__price {
  background: rgba(87, 155, 212, 0.2);
  color: #579bd4;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
}
.fx-liveform__pay {
  margin: 4px 0 12px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 2px solid rgba(87, 155, 212, 0.3);
  background: linear-gradient(135deg, rgba(87, 155, 212, 0.15), rgba(66, 188, 156, 0.12));
}
.fx-liveform__pay small {
  display: block;
  margin-bottom: 8px;
  color: #579bd4;
  font-size: 12px;
  font-weight: 700;
}
.fx-liveform__pay div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
}
.fx-liveform__pay strong {
  color: #579bd4;
  font-size: 18px;
  letter-spacing: -0.03em;
}
.fx-liveform__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  margin: 4px auto 0;
  padding: 11px 22px;
  border: 0;
  border-radius: 10px;
  background: #579bd4;
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 650;
  box-shadow: 0 4px 15px rgba(87, 155, 212, 0.3);
}
.fx-liveform__secure {
  margin: 12px 0 0;
  text-align: center;
  font-size: 11px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.55);
}
.fx-liveform [data-fx-step].is-on { opacity: 1; }
.fx-liveform__pop {
  position: absolute;
  z-index: 3;
  width: min(248px, 74%);
  padding: 14px 14px 12px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.1);
  box-shadow: 0 18px 44px rgba(17, 24, 39, 0.22);
  opacity: 0;
  transform: translateY(12px) scale(0.96);
  transition: opacity 210ms var(--bv-ease), transform 210ms var(--bv-ease);
}
.fx-liveform__pop.is-on { opacity: 1; transform: none; }
.fx-liveform__pop--stripe {
  top: 18px;
  right: -22px;
}
.fx-liveform__pop--stripe header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.fx-liveform__pop--stripe header b {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.04em;
  background: linear-gradient(90deg, #635bff, #0a2540);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fx-liveform__pop--stripe header span,
.fx-liveform__pop--stripe p {
  margin: 0;
  font-size: 11px;
  color: #6b7c93;
}
.fx-liveform__pop--stripe strong {
  display: block;
  margin: 2px 0 10px;
  font-size: 24px;
  letter-spacing: -0.05em;
  color: #0a2540;
}
.fx-liveform__stripe-field {
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #e3e8ee;
  background: #f6f9fc;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8898aa;
  margin-bottom: 6px;
}
.fx-liveform__stripe-field span {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #0a2540;
}
.fx-liveform__stripe-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.fx-liveform__pop--stripe em {
  display: block;
  margin-top: 8px;
  padding: 10px 10px;
  border-radius: 8px;
  background: #635bff;
  color: #fff;
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}
.fx-liveform__pop--crm {
  left: -18px;
  bottom: 4px;
}
.fx-liveform__pop--crm header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.fx-liveform__ava {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #2E8DB6;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.fx-liveform__pop--crm header b { display: block; font-size: 14px; }
.fx-liveform__pop--crm header small { color: var(--bv-muted); font-size: 11px; }
.fx-liveform__pop--crm header em {
  margin-left: auto;
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  color: #1f8a72;
  background: rgba(55, 198, 160, 0.16);
  padding: 3px 7px;
  border-radius: 999px;
}
.fx-liveform__pop--crm p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  font-size: 12px;
  color: #334155;
}
.fx-liveform__pop--crm p i { color: #2E8DB6; }

.fx-book {
  width: min(100%, 560px);
  margin-left: auto;
  padding: 18px 18px 8px;
  border-radius: 18px;
  background: #f6f4ee;
  border: 1px solid color-mix(in srgb, var(--bv-line) 80%, #c9c2b0);
  box-shadow: 0 24px 50px rgba(17, 24, 39, 0.1);
  font-variant-numeric: tabular-nums;
}
.fx-book header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 12px;
  padding: 0 6px;
}
.fx-book header span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bv-muted);
}
.fx-book header b { font-size: 15px; letter-spacing: -0.02em; }
.fx-book table { width: 100%; border-collapse: collapse; }
.fx-book th,
.fx-book td {
  text-align: left;
  padding: 9px 8px;
  border-bottom: 1px dashed color-mix(in srgb, var(--bv-line) 80%, #c9c2b0);
  font-size: 12px;
}
.fx-book th {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bv-muted);
  font-weight: 700;
}
.fx-book td:last-child,
.fx-book th:last-child { text-align: right; }
.fx-book tbody tr { opacity: 0.28; transition: opacity 400ms var(--bv-ease), background 400ms var(--bv-ease); }
.fx-book tbody tr.is-visible,
.fx-book tbody tr.is-on { opacity: 1; }
.fx-book tr.is-focus td {
  background: color-mix(in srgb, var(--fl-a) 12%, #fff);
  font-weight: 650;
}

.fx-lump {
  padding: 22px;
  border-radius: 22px;
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
}
.fx-lump__deposit {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 22px 16px;
  border-radius: 16px;
  background: #1e2433;
  color: #fff;
  text-align: center;
}
.fx-lump__deposit span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}
.fx-lump__deposit b { font-size: 40px; letter-spacing: -0.05em; }
.fx-lump__deposit em { font-style: normal; font-size: 13px; color: #f0a857; }
.fx-lump ol {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.fx-lump li {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 12px 8px;
  border-radius: 12px;
  border: 1px dashed var(--bv-line);
  font-size: 12px;
  font-weight: 650;
  color: var(--bv-muted);
  opacity: 0.25;
  transform: translateY(8px);
  transition: opacity 400ms var(--bv-ease), transform 400ms var(--bv-ease), border-color 400ms;
}
.fx-lump.is-on li.is-on { opacity: 1; transform: none; }
.fx-lump.is-done li { border-color: color-mix(in srgb, #BD6C76 45%, var(--bv-line)); color: #BD6C76; }
.fx-lump__verdict {
  margin: 14px 0 0;
  text-align: center;
  font-size: 13px;
  font-weight: 650;
  color: #BD6C76;
  opacity: 0;
  transition: opacity 400ms var(--bv-ease);
}
.fx-lump.is-done .fx-lump__verdict { opacity: 1; }

.fx-wave { position: relative; padding: 12px 0 8px; }
.fx-wave svg {
  position: absolute;
  left: 4%;
  right: 4%;
  top: 36px;
  width: 92%;
  height: 200px;
  overflow: visible;
}
.fx-wave__rail,
.fx-wave__ink {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
}
.fx-wave__rail { stroke: #e6e8e1; }
.fx-wave__ink {
  stroke: url(#none);
  stroke: var(--fl-a, #4C7DAF);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.fx-wave.is-on .fx-wave__ink {
  animation: fx-wave-draw 1.8s var(--bv-ease) forwards;
}
.fx-wave ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  position: relative;
  z-index: 1;
}
.fx-wave li {
  text-align: center;
  opacity: 0.28;
  transition: opacity 400ms var(--bv-ease), transform 400ms var(--bv-ease);
}
.fx-wave li:nth-child(even) { margin-top: 88px; }
.fx-wave li.is-on { opacity: 1; }
.fx-wave li i {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: var(--bv-paper);
  border: 3px solid var(--bv-line);
  color: var(--fl-a);
  box-shadow: 0 0 0 6px var(--bv-cream);
}
.fx-wave li.is-on i {
  border-color: var(--fl-a);
  background: color-mix(in srgb, var(--fl-a) 12%, #fff);
}
.fx-wave em {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--fl-a);
}
.fx-wave b { display: block; margin-top: 4px; font-size: 16px; letter-spacing: -0.03em; }
.fx-wave p { margin: 6px 0 0; font-size: 13px; color: var(--bv-muted); line-height: 1.45; }

.fx-pie {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 320px);
  justify-content: center;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.fx-pie__chart {
  width: min(100%, 240px);
  aspect-ratio: 1;
  margin-inline: auto;
  border-radius: 50%;
  background: var(--pie);
  box-shadow: inset 0 0 0 18px rgba(255,255,255,0.16), 0 18px 40px rgba(17, 24, 39, 0.08);
  display: grid;
  place-items: center;
  mask: radial-gradient(circle closest-side, transparent 52%, #000 53%);
  -webkit-mask: radial-gradient(circle closest-side, transparent 52%, #000 53%);
  transform: rotate(-90deg);
}
.fx-pie.is-on .fx-pie__chart { animation: fx-pie-spin 1.1s var(--bv-ease) both; }
.fx-pie__chart span {
  transform: rotate(90deg);
  font-size: 22px;
  font-weight: 650;
  letter-spacing: -0.04em;
}
.fx-pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fx-pie li {
  display: grid;
  grid-template-columns: 12px 1fr auto auto;
  gap: 10px;
  align-items: center;
  opacity: 0;
  transform: translateX(10px);
  transition: opacity 400ms var(--bv-ease), transform 400ms var(--bv-ease);
}
.fx-pie.is-on li.is-on { opacity: 1; transform: none; }
.fx-pie li i { width: 12px; height: 12px; border-radius: 50%; }
.fx-pie b { font-size: 14px; }
.fx-pie em { font-style: normal; font-weight: 650; font-variant-numeric: tabular-nums; }
.fx-pie span { font-size: 12px; color: var(--bv-muted); }

.fx-postings {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 40px);
  align-items: start;
}
.fx-postings__pay {
  padding: 22px 20px;
  border-radius: 18px;
  background: #1e2433;
  color: #fff;
}
.fx-postings__pay span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
}
.fx-postings__pay b { display: block; margin: 8px 0 6px; font-size: 22px; letter-spacing: -0.04em; }
.fx-postings__pay p { margin: 0; font-size: 13px; opacity: 0.7; }
.fx-postings ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fx-postings a {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  text-decoration: none;
  color: inherit;
  opacity: 0;
  transform: translateX(14px);
  transition: opacity 400ms var(--bv-ease), transform 400ms var(--bv-ease);
}
.fx-postings.is-on a.is-on { opacity: 1; transform: none; }
.fx-postings a:hover { border-color: color-mix(in srgb, var(--fl-a) 40%, var(--bv-line)); }
.fx-postings i { color: var(--fl-a); margin-top: 2px; }
.fx-postings b { display: block; font-size: 15px; }
.fx-postings a span { display: block; margin-top: 3px; font-size: 13px; color: var(--bv-muted); }
.fx-postings__note {
  max-width: 48em;
  margin: 22px 0 0;
  font-size: 13px;
  color: var(--bv-muted);
  line-height: 1.55;
}

@media (prefers-reduced-motion: reduce) {
  .fl--climb .fl-meter__gifts button,
  .fx-miss header button,
  .fx-splitout__page button,
  .fx-splitout.is-on .fx-splitout__svg path,
  .fx-wave.is-on .fx-wave__ink,
  .fx-pie.is-on .fx-pie__chart { animation: none; }
  .lc-scatter li { transform: none; margin-left: 0; }
}
@keyframes fx-wave-draw {
  from { stroke-dashoffset: 1; }
  to { stroke-dashoffset: 0; }
}
@keyframes fx-pie-spin {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}
@keyframes fl-ink { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes fl-drop-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 860px) {
  .fx-liveform__pop--stripe,
  .fx-liveform__pop--crm { position: static; width: 100%; margin-top: 12px; transform: none; }
  .fx-lump ol,
  .fx-wave ol,
  .fx-pie,
  .fx-postings { grid-template-columns: 1fr; }
  .fx-wave svg { display: none; }
  .fx-wave li:nth-child(even) { margin-top: 0; }
  .fl--river .fl-river-hero__grid,
  .fl--tree .fl-tree-house__grid,
  .fx-splitout { grid-template-columns: 1fr; }
  .fx-splitout__svg { display: none; }
  .fl--climb .fl-climb-hero__grid,
  .fl--compose .fl-mail-hero__grid,
  .fl--rooms .fl-class__grid,
  .fl-place,
  .fl--device .fl-dev-hero__grid,
  .fl--program .fl-prog-sheet .bv-wrap,
  .fl--notes .fl-note-desk__grid,
  .fl--admit .fl-admit-hero__grid,
  .fl-form-hero__grid,
  .fl-evt-hero__grid,
  .fl-sch-hero__grid {
    grid-template-columns: 1fr;
  }
  .fl--river .fl-river-kinds__grid,
  .fl--tree .fl-tree-caps__grid,
  .fl--climb .fl-climb-tools__grid,
  .fl--compose .fl-mail-work__grid,
  .fl--floor .fl-rooms,
  .fl--floor .fl-slots,
  .fl--floor .fl-floor-use__grid,
  .fl--rooms .fl-class-work__grid,
  .fl--ops .fl-ops-work__grid,
  .fl--canvas .fl-site-work__grid,
  .fl--program .fl-prog-work__grid,
  .fl--device .fl-dev-work__grid,
  .fl--notes .fl-note-work__grid,
  .fl--admit .fl-admit-slots__row,
  .fl--admit .fl-admit-work__grid,
  .fl--ledger .fl-led-recon__grid {
    grid-template-columns: 1fr;
  }
  .lc-split,
  .lc-compare,
  .lc-flow,
  .lc-groups,
  .lc-connect__grid { grid-template-columns: 1fr; }
  .lc-scatter li { margin-left: 0 !important; transform: none; }
  .fx-life__card li { grid-template-columns: 1fr; }
  .fl--device .fl-phone { margin: 0 auto; }
}

.ev-ui { display: grid; gap: 28px; }
.ev-ui__frame { margin: 0; }
.ev-ui__frame figcaption {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 650;
  color: var(--bv-muted);
}
.ev-admin {
  padding: 16px;
  border-radius: 16px;
  background: #f7f7fb;
  border: 1px solid rgba(17, 24, 39, 0.08);
  box-shadow: 0 16px 40px rgba(17, 24, 39, 0.08);
}
.ev-admin__metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.ev-admin__metrics--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ev-admin__metrics article {
  padding: 12px 12px 10px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.06);
}
.ev-admin__metrics i {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-bottom: 8px;
  border-radius: 8px;
  background: #e8e7ff;
  color: #696cff;
  font-size: 18px;
}
.ev-admin__metrics article:nth-child(2) i { background: #d7f5fc; color: #03c3ec; }
.ev-admin__metrics article:nth-child(3) i { background: #d4f5e9; color: #71dd37; }
.ev-admin__metrics article:nth-child(4) i { background: #ffe2e3; color: #ff3e1d; }
.ev-admin__metrics b { display: block; font-size: 22px; letter-spacing: -0.04em; }
.ev-admin__metrics span { display: block; font-size: 12px; font-weight: 650; }
.ev-admin__metrics em { display: block; margin-top: 4px; font-size: 11px; font-style: normal; color: var(--bv-muted); }
.ev-admin__card {
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
}
.ev-admin__card header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(17, 24, 39, 0.06);
}
.ev-admin__card header b { font-size: 14px; }
.ev-admin__card header div {
  display: flex;
  gap: 4px;
  margin-left: auto;
}
.ev-admin__card header span {
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid #696cff;
  color: #696cff;
  font-size: 11px;
  font-weight: 650;
}
.ev-admin__card header span.is-on { background: #696cff; color: #fff; }
.ev-admin__card header em {
  padding: 5px 10px;
  border-radius: 6px;
  background: #696cff;
  color: #fff;
  font-size: 12px;
  font-style: normal;
  font-weight: 650;
}
.ev-admin table { width: 100%; border-collapse: collapse; font-size: 12px; }
.ev-admin th,
.ev-admin td {
  padding: 9px 12px;
  text-align: left;
  border-top: 1px solid rgba(17, 24, 39, 0.06);
}
.ev-admin th { color: var(--bv-muted); font-weight: 650; }
.ev-admin .is-yes { color: #71dd37; font-size: 16px; }
.ev-admin .is-no { color: #ff3e1d; font-size: 16px; }
.ev-vol {
  padding: 20px 18px 18px;
  border-radius: 16px;
  background: #121212;
  color: #fff;
  box-shadow: 0 16px 40px rgba(17, 24, 39, 0.18);
}
.ev-vol > h3 {
  margin: 0 0 16px;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
}
.ev-vol__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 12px;
}
.ev-vol__card {
  padding: 16px;
  border-radius: 14px;
  background: #1e1e1e;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ev-vol__card b {
  display: block;
  margin: 12px 0 10px;
  font-size: 13px;
}
.ev-vol__card b:first-child { margin-top: 0; }
.ev-vol label {
  display: block;
  margin-bottom: 10px;
  font-size: 11px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.78);
}
.ev-vol label em { color: #dc3545; font-style: normal; }
.ev-vol input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font: inherit;
  pointer-events: none;
}
.ev-vol button {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 8px 14px;
  border: 0;
  border-radius: 8px;
  background: #007bff;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
}
.ev-vol__card--info h4 { margin: 0 0 8px; font-size: 16px; }
.ev-vol__card--info p { margin: 0 0 12px; color: rgba(255, 255, 255, 0.7); font-size: 13px; line-height: 1.5; }
.ev-vol__card--info ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 13px; }
.ev-vol__card--info li { display: flex; gap: 8px; align-items: flex-start; }
.ev-vol__card--info li i { color: #579bd4; }
.ev-vol__spots {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(87, 155, 212, 0.15);
  border: 1px solid #579bd4;
  font-size: 12px;
}
.ev-vol__spots i { color: #579bd4; font-size: 18px; }
.ev-vol__spots em { margin-left: auto; font-style: normal; color: rgba(255, 255, 255, 0.65); }
@media (max-width: 860px) {
  .ev-admin__metrics,
  .ev-admin__metrics--3,
  .ev-vol__grid { grid-template-columns: 1fr; }
}

/* Exact platform clones (forms quality bar) */
.fx-checkout,
.fx-pcare,
.fx-portal {
  position: relative;
  width: min(100%, 680px);
  margin-left: auto;
  min-height: 480px;
}
.fx-donate {
  position: relative;
  width: min(100%, 720px);
  margin-left: auto;
  min-height: 0;
  overflow: visible;
}
.fx-checkout {
  width: min(100%, 920px);
  max-height: none;
  overflow: visible;
}
.fx-checkout [data-fx-step],
.fx-pcare [data-fx-step],
.fx-portal [data-fx-step],
.fx-nl [data-fx-step],
.fx-res [data-fx-step],
.fx-school [data-fx-step],
.fx-yahr [data-fx-step],
.fx-web [data-fx-step],
.fx-fin [data-fx-step],
.fx-vol [data-fx-step] {
  opacity: 0.28;
  transition: opacity 360ms var(--bv-ease);
}
.fx-checkout [data-fx-step].is-on,
.fx-pcare [data-fx-step].is-on,
.fx-portal [data-fx-step].is-on,
.fx-nl [data-fx-step].is-on,
.fx-res [data-fx-step].is-on,
.fx-school [data-fx-step].is-on,
.fx-yahr [data-fx-step].is-on,
.fx-web [data-fx-step].is-on,
.fx-fin [data-fx-step].is-on,
.fx-vol [data-fx-step].is-on { opacity: 1; }

.fx-checkout__page {
  position: relative;
  z-index: 1;
  max-height: 640px;
  overflow: hidden;
  padding: 12px 12px 14px;
  border-radius: 16px;
  background: #121212;
  color: rgba(255,255,255,0.94);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-shadow: 0 28px 70px rgba(17, 24, 39, 0.28);
  -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent);
  mask-image: linear-gradient(to bottom, #000 78%, transparent);
}
.fx-checkout__hero {
  background: #181a1f;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  padding: 12px 14px;
  margin-bottom: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
}
.fx-checkout__hero p {
  margin: 0 0 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.fx-checkout__hero h3 {
  margin: 0 0 4px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.fx-checkout__hero span { font-size: 12px; color: rgba(255,255,255,0.62); }
.fx-checkout__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.92fr);
  gap: 14px;
  align-items: start;
}
.fx-checkout__visit { padding: 4px 10px 8px 2px; border-right: 1px solid rgba(255,255,255,0.08); }
.fx-checkout h4 {
  margin: 0 0 8px;
  padding-bottom: 5px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.fx-checkout__desc {
  margin: 0 0 10px;
  font-size: 11.5px;
  line-height: 1.55;
  color: rgba(255,255,255,0.62);
}
.fx-checkout__when { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(92px, 0.55fr); gap: 12px; }
.fx-checkout__cal {
  background: #fff;
  color: #000;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 10px 10px 8px;
}
.fx-checkout__cal-head { text-align: center; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.fx-checkout__cal-days,
.fx-checkout__cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.fx-checkout__cal-days li {
  text-align: center;
  font-size: 8px;
  color: #6c757d;
  font-weight: 600;
}
.fx-checkout__cal-grid li {
  text-align: center;
  font-size: 11px;
  line-height: 26px;
  height: 26px;
  border-radius: 4px;
}
.fx-checkout__cal-grid li.is-on {
  background: #0d6efd;
  color: #fff;
  border-radius: 4px;
  font-weight: 700;
}
.fx-checkout__slots {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 6px;
}
.fx-checkout__slots button {
  margin: 0;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 11px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.94);
  pointer-events: none;
}
.fx-checkout__slots button.is-on {
  background: #579bd4;
  color: #0a0a0b;
  border-color: transparent;
  box-shadow: 0 6px 20px rgba(87,155,212,0.35);
}
.fx-checkout__card {
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  padding: 12px 12px 14px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}
.fx-checkout label {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,0.88);
}
.fx-checkout label em { color: #dc3545; font-style: normal; }
.fx-checkout input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 7px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.07);
  color: #fff;
  font: inherit;
  font-size: 12px;
  pointer-events: none;
}
.fx-checkout__addr {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 0.8fr;
  gap: 8px;
}
.fx-checkout__tiers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.fx-checkout__tiers div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.fx-checkout__tiers span { font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.9); }
.fx-checkout__tiers b { display: block; color: #579bd4; font-weight: 500; font-size: 10px; }
.fx-checkout__tiers small { opacity: 0.65; font-weight: 400; }
.fx-checkout__tiers em {
  display: block;
  font-style: normal;
  padding: 7px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.07);
  color: #fff;
  font-size: 12px;
}
.fx-checkout__promo { display: flex; margin-bottom: 10px; }
.fx-checkout__promo input {
  border-radius: 10px 0 0 10px;
  margin-top: 0;
}
.fx-checkout__promo button {
  border: 0;
  border-radius: 0 10px 10px 0;
  padding: 0 14px;
  background: #579bd4;
  color: #0a0a0b;
  font-weight: 600;
  font-size: 12px;
  pointer-events: none;
}
.fx-checkout__sum {
  background: rgba(0,0,0,0.28);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 10px 12px;
  margin: 4px 0 8px;
}
.fx-checkout__sum h5 {
  margin: 0 0 8px;
  color: #579bd4;
  font-size: 13px;
  font-weight: 600;
}
.fx-checkout__sum p {
  display: flex;
  justify-content: space-between;
  margin: 0 0 4px;
  font-size: 11.5px;
  color: rgba(255,255,255,0.62);
}
.fx-checkout__sum div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 12px;
}
.fx-checkout__sum b { color: #579bd4; font-size: 16px; font-weight: 700; }
.fx-checkout__policy,
.fx-checkout__trust {
  margin: 0 0 8px;
  font-size: 11px;
  color: rgba(255,255,255,0.62);
  line-height: 1.5;
}
.fx-checkout__pay {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 14px;
  border: 0;
  border-radius: 10px;
  background: #579bd4;
  color: #101218;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  pointer-events: none;
}
.fx-checkout .fx-liveform__pop {
  z-index: 24;
}
.fx-checkout .fx-liveform__pop[data-fx-step] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(18px) scale(0.92);
}
.fx-checkout .fx-liveform__pop[data-fx-step].is-on {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.fx-checkout .fx-liveform__pop--stripe { top: 18px; right: -28px; }
.fx-checkout .fx-liveform__pop--crm { left: -22px; bottom: 28px; }

.fx-donate__modal {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 0;
  max-width: none;
  width: 100%;
  margin-left: auto;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 15px 32px rgba(0,0,0,0.15), 0 8px 16px rgba(0,0,0,0.1);
  background: #f8f9fa;
  font-family: Inter, sans-serif;
}
.fx-donate__left {
  width: 62%;
  padding: 14px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  justify-content: center;
  background: #fff;
}
.fx-donate__right {
  width: 40%;
  background:
    linear-gradient(160deg, rgba(87,155,212,0.55), rgba(66,188,156,0.4)),
    #1a3a4a;
}
.fx-donate__org { display: flex; align-items: center; gap: 8px; margin-bottom: 0; }
.fx-donate__org img { height: 28px; width: auto; border-radius: 8px; background: #f8f8f8; }
.fx-donate__org span { font-size: 12px; font-weight: 600; color: #333; }
.fx-donate__title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  text-align: center;
  padding: 2px 8px 0;
}
.fx-donate__text {
  color: #444;
  text-align: center;
  font-size: 12px;
  line-height: 1.35;
  margin: 0;
}
.fx-donate__field label { display: block; font-size: 12px; color: #333; margin-bottom: 3px; }
.fx-donate__field input,
.fx-donate__custom input {
  width: 100%;
  padding: 7px 12px;
  border-radius: 8px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 13px;
  pointer-events: none;
}
.fx-donate__custom { position: relative; }
.fx-donate__custom::before {
  content: "$";
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #666;
}
.fx-donate__custom input { padding-left: 28px; }
.fx-donate__toggle {
  display: flex;
  width: 200px;
  margin: 2px auto;
  padding: 3px;
  border-radius: 30px;
  background: #e2e4e9;
}
.fx-donate__toggle span {
  flex: 1;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: #333;
  padding: 6px 0;
  border-radius: 24px;
}
.fx-donate__toggle span.is-on { background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.fx-donate__amounts { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.fx-donate__amounts button {
  min-width: 72px;
  height: 32px;
  padding: 0 14px;
  border-radius: 20px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #333;
  font-weight: 600;
  font-size: 13px;
  pointer-events: none;
}
.fx-donate__amounts button.is-on { background: #579bd4; border-color: #579bd4; color: #fff; }
.fx-donate__anon {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  font-size: 12px;
  color: #333;
}
.fx-donate__anon i {
  width: 18px;
  height: 18px;
  border: 1.5px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
}
.fx-donate__btn {
  width: 100%;
  height: 40px;
  border: 0;
  border-radius: 24px;
  background: #579bd4;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  pointer-events: none;
}
.fx-donate .fx-liveform__pop {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.fx-donate .fx-liveform__pop.is-on {
  opacity: 1;
  visibility: visible;
}
.fx-donate .fx-liveform__pop--stripe {
  top: 10px;
  right: -28px;
  width: min(320px, 86%);
}
.fx-donate .fx-liveform__pop--crm { left: -12px; bottom: 6px; }

.fx-pcare__card {
  position: relative;
  z-index: 1;
  background: #1e1e1e;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: 18px 16px 16px;
  color: #f3f4f6;
  font-family: "Plus Jakarta Sans", Inter, sans-serif;
  box-shadow: 0 16px 48px rgba(0,0,0,0.35);
}
.fx-pcare__card header p {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  color: #579bd4;
}
.fx-pcare__card header h3 {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
}
.fx-pcare__card header span {
  display: block;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255,255,255,0.62);
}
.fx-pcare__section { margin-top: 14px; }
.fx-pcare__section h4,
.fx-pcare__section > span {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
}
.fx-pcare__section h4 i { color: #579bd4; }
.fx-pcare label {
  display: block;
  margin-bottom: 8px;
  font-size: 11.5px;
  font-weight: 600;
}
.fx-pcare label em { color: #ff6b6b; font-style: normal; }
.fx-pcare input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.08);
  color: #fff;
  font: inherit;
  pointer-events: none;
}
.fx-pcare__pills { display: grid; gap: 8px; }
.fx-pcare__pills div {
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
}
.fx-pcare__pills div.is-on { border-color: #579bd4; background: rgba(87,155,212,0.12); }
.fx-pcare__pills b { display: block; font-size: 12px; }
.fx-pcare__pills small { color: rgba(255,255,255,0.55); font-size: 11px; }
.fx-pcare__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 14px;
  padding: 11px 14px;
  border: 0;
  border-radius: 10px;
  background: #579bd4;
  color: #fff;
  font: inherit;
  font-weight: 700;
  pointer-events: none;
}
.fx-pcare .fx-liveform__pop--crm { left: -12px; bottom: 4px; }

.fx-pulse {
  position: relative;
  z-index: 1;
  width: min(100%, 720px);
  margin-left: auto;
  padding: 18px 16px 16px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  background:
    radial-gradient(ellipse 50% 42% at 34% 50%, rgba(198, 124, 78, 0.18), transparent 62%),
    #1e1e1e;
  color: #f3f4f6;
  box-shadow: 0 16px 48px rgba(0,0,0,0.35);
}
.fx-pulse__label {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c89a7a;
}
.fx-pulse__head p {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: #c89a7a;
}
.fx-pulse__head h3 {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.03em;
}
.fx-pulse__field {
  position: relative;
  min-height: 380px;
  overflow: hidden;
  border-radius: 14px;
  background:
    radial-gradient(circle at 50% 48%, rgba(255,255,255,0.04), transparent 46%),
    #161616;
}
.fx-pulse__people { position: absolute; inset: 0; }
.fx-pulse__dot {
  position: absolute;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.38);
  box-shadow: none;
  padding: 0;
  cursor: pointer;
  z-index: 1;
  transition: background 280ms var(--bv-ease), box-shadow 280ms var(--bv-ease), transform 420ms var(--bv-ease);
}
.fx-pulse__dot::after {
  content: "";
  position: absolute;
  inset: -10px;
}
.fx-pulse__dot.is-soft {
  background: rgba(255,255,255,0.72);
  box-shadow: 0 0 0 6px rgba(255,255,255,0.06);
}
.fx-pulse__dot.is-on {
  z-index: 3;
  background: #e3a06a;
  box-shadow: 0 0 0 8px rgba(198, 124, 78, 0.24), 0 0 20px rgba(198, 124, 78, 0.6);
  transform: scale(1.45);
}
.fx-pulse__dot.is-hover {
  z-index: 4;
  animation: fx-pulse-heart 1.05s ease-in-out infinite;
}
.fx-pulse__tip {
  position: absolute;
  z-index: 4;
  min-width: 180px;
  max-width: 220px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 12px;
  background: rgba(20, 20, 20, 0.94);
  box-shadow: 0 16px 36px rgba(0,0,0,0.4);
  opacity: 0;
  transform: translate(-50%, calc(-100% - 6px)) scale(0.88);
  pointer-events: none;
  transition: opacity 240ms var(--bv-ease), transform 360ms var(--bv-ease);
}
.fx-pulse__tip.is-in {
  opacity: 1;
  transform: translate(-50%, calc(-100% - 16px)) scale(1);
}
.fx-pulse__tip.is-low { transform: translate(-50%, 10px) scale(0.88); }
.fx-pulse__tip.is-low.is-in { transform: translate(-50%, 16px) scale(1); }
.fx-pulse__tip[hidden] { display: none; }
.fx-pulse__tip b { display: block; font-size: 15px; letter-spacing: -0.02em; }
.fx-pulse__tip span { display: block; margin-top: 4px; font-size: 13px; color: #e3a06a; }

@keyframes fx-pulse-heart {
  0%, 100% { transform: scale(1.2); box-shadow: 0 0 0 6px rgba(198, 124, 78, 0.16); }
  12% { transform: scale(1.85); box-shadow: 0 0 0 14px rgba(198, 124, 78, 0.28), 0 0 24px rgba(198, 124, 78, 0.55); }
  26% { transform: scale(1.25); }
  40% { transform: scale(1.65); box-shadow: 0 0 0 10px rgba(198, 124, 78, 0.2); }
  58% { transform: scale(1.2); }
}

@media (max-width: 720px) {
  .fx-pulse__field { min-height: 340px; }
}

.fx-pulse__modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 24, 39, 0.46);
}
.fx-pulse__modal[hidden] { display: none; }
.fx-pulse__dialog {
  position: relative;
  width: min(520px, 100%);
  max-height: min(82vh, 640px);
  overflow: auto;
  padding: 22px 22px 24px;
  border: 1px solid var(--bv-line);
  border-radius: 18px;
  background: var(--bv-paper);
  color: var(--bv-ink);
  box-shadow: 0 24px 60px rgba(17, 24, 39, 0.18);
}
.fx-pulse__close {
  position: absolute;
  top: 16px;
  right: 16px;
  border: 1px solid var(--bv-line);
  border-radius: 999px;
  background: var(--bv-cream);
  color: var(--bv-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
  cursor: pointer;
}
.fx-pulse__kicker {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fl-a, #b78a6f);
}
.fx-pulse__dialog h3 {
  margin: 0;
  padding-right: 72px;
  font-size: 26px;
  letter-spacing: -0.03em;
}
.fx-pulse__issue {
  margin: 6px 0 0;
  font-size: 16px;
  color: var(--bv-muted);
}
.fx-pulse__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 0;
}
.fx-pulse__meta div {
  padding: 12px;
  border: 1px solid var(--bv-line);
  border-radius: 12px;
  background: var(--bv-cream);
}
.fx-pulse__meta dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bv-faint);
}
.fx-pulse__meta dd { margin: 6px 0 0; font-size: 14px; }
.fx-pulse__notes { margin-top: 20px; }
.fx-pulse__notes > p {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bv-faint);
}
.fx-pulse__notes ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fx-pulse__notes li {
  padding: 12px 14px;
  border: 1px solid var(--bv-line);
  border-radius: 12px;
  background: var(--bv-cream);
  font-size: 14px;
  line-height: 1.5;
  color: var(--bv-muted);
}

@media (max-width: 720px) {
  .fx-pulse__meta { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .fx-pulse__dot,
  .fx-pulse__tip { transition: none; }
  .fx-pulse__dot.is-on,
  .fx-pulse__dot.is-hover { animation: none; transform: none; }
}

.fx-portal__page {
  position: relative;
  z-index: 1;
  padding: 16px;
  border-radius: 16px;
  background: #f5f5f9;
  box-shadow: 0 24px 60px rgba(17,24,39,0.14);
  font-family: Inter, sans-serif;
  color: #384551;
}
.fx-portal__head h3 { margin: 0 0 4px; font-size: 18px; font-weight: 600; color: #384551; }
.fx-portal__head p { margin: 0; font-size: 12px; color: #6d788d; }
.fx-portal__steps {
  display: flex;
  justify-content: center;
  gap: 10px;
  list-style: none;
  margin: 14px 0;
  padding: 0;
}
.fx-portal__steps li {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #8592a3;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.fx-portal__steps li.is-on { background: #666cff; }
.fx-portal__card {
  background: #fff;
  border-radius: 8px;
  padding: 16px 16px 14px;
  box-shadow: 0 2px 6px rgba(67,89,113,0.08);
}
.fx-portal__card h4 { margin: 0 0 12px; font-size: 15px; font-weight: 600; }
.fx-portal__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fx-portal__opts article {
  padding: 12px;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  background: #fff;
}
.fx-portal__opts article.is-on { border-color: #666cff; box-shadow: 0 0 0 1px #666cff; }
.fx-portal__opts i { color: #666cff; font-size: 22px; }
.fx-portal__opts b { display: block; margin: 6px 0 4px; font-size: 13px; }
.fx-portal__opts p { margin: 0; font-size: 11px; color: #6d788d; }
.fx-portal__go {
  display: block;
  margin: 14px auto 0;
  padding: 8px 18px;
  border: 0;
  border-radius: 6px;
  background: #666cff;
  color: #fff;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  pointer-events: none;
}
.fx-portal .fx-liveform__pop--stripe { top: 8px; right: -16px; }
.fx-portal .fx-liveform__pop--due {
  top: auto;
  right: auto;
  left: -20px;
  bottom: 10px;
}
.fx-liveform__pop--due header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.fx-liveform__pop--due header b { display: block; font-size: 14px; color: #384551; }
.fx-liveform__pop--due header small { color: #6d788d; font-size: 11px; }
.fx-liveform__pop--due strong {
  display: block;
  margin: 0 0 4px;
  font-size: 24px;
  letter-spacing: -0.05em;
  color: #384551;
}
.fx-liveform__pop--due p {
  margin: 0;
  font-size: 12px;
  color: #6d788d;
}

.fx-nl,
.fx-res,
.fx-yahr,
.fx-school,
.fx-web { width: 100%; }
.fx-nl,
.fx-res {
  position: relative;
  overflow: visible;
}
.fx-nl .fx-nl__pop {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  width: min(264px, 76%);
}
.fx-nl .fx-nl__pop.is-on {
  opacity: 1;
  visibility: visible;
}
.fx-nl__pop--builder { top: 12px; right: -48px; }
.fx-nl__pop--builder header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.fx-nl__pop--builder header b { font-size: 13px; color: #384551; }
.fx-nl__pop--builder header span {
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  color: #1f8a72;
  background: rgba(55, 198, 160, 0.16);
  padding: 3px 7px;
  border-radius: 999px;
}
.fx-nl__pop--builder > strong {
  display: block;
  margin: 0 0 4px;
  font-size: 20px;
  letter-spacing: -0.04em;
  color: #384551;
}
.fx-nl__pop--builder > p {
  margin: 0 0 10px;
  font-size: 11px;
  color: #6d788d;
}
.fx-nl__pop--builder > em {
  display: block;
  margin-top: 8px;
  padding: 10px;
  border-radius: 8px;
  background: #579bd4;
  color: #fff;
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}
.fx-nl__letter {
  position: absolute;
  z-index: 5;
  left: -160px;
  bottom: -118px;
  width: min(292px, 78%);
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(75, 70, 92, 0.1);
  box-shadow: 0 18px 42px rgba(38, 43, 67, 0.22);
  pointer-events: none;
}
.fx-nl__letter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px 9px;
  background: #fff;
  border-bottom: 1px solid #eef0f3;
}
.fx-nl__letter-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.fx-nl__letter-head span {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #579bd4;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  flex: 0 0 auto;
}
.fx-nl__letter-head b { display: block; font-size: 12px; color: #384551; line-height: 1.2; }
.fx-nl__letter-head small { display: block; color: #6d788d; font-size: 10px; }
.fx-nl__letter-head em { font-style: normal; color: #6d788d; font-size: 10px; font-weight: 600; }
.fx-nl__letter-banner {
  padding: 14px 14px 12px;
  background: linear-gradient(135deg, #579bd4, #42bc9c);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.15;
}
.fx-nl__letter-body { padding: 12px 14px 14px; }
.fx-nl__letter-body > p {
  margin: 0 0 10px;
  font-size: 11px;
  line-height: 1.45;
  color: #3b4056;
}
.fl .fx-nl__letter-body article {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f5f5f9;
  border: 0;
}
.fx-nl__letter-body article small {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #579bd4;
}
.fx-nl__letter-body article b { display: block; margin-top: 2px; font-size: 13px; color: #384551; }
.fx-nl__letter-body article span { display: block; margin-top: 1px; font-size: 11px; color: #6d788d; }
.fx-nl__letter-body > strong {
  display: block;
  margin: 10px 0 8px;
  padding: 8px 10px;
  border-radius: 7px;
  background: #579bd4;
  color: #fff;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
}
.fx-nl__letter-unsub {
  margin: 0;
  color: #8592a3 !important;
  font-size: 9px !important;
  text-align: center;
}
.fx-nl__hero { text-align: center; margin-bottom: 10px; }
.fx-nl__hero h3 { margin: 0; font-size: 20px; font-weight: 800; color: #384551; }
.fx-nl__hero em {
  font-style: normal;
  background: linear-gradient(135deg, #579bd4, #42bc9c);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fx-nl__hero p { margin: 4px 0 0; font-size: 12px; color: #6d788d; }
.fx-nl__metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}
.fx-nl__metrics article,
.fx-school__card,
.fx-res__card,
.fx-yahr__card,
.fx-nl__card {
  background: #fff;
  border: none;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.fx-nl__metrics article { padding: 10px 12px; display: flex; align-items: center; gap: 8px; }
.fx-nl__metrics i { color: #579bd4; font-size: 18px; }
.fx-nl__metrics b { display: block; font-size: 16px; color: #384551; }
.fx-nl__metrics span { font-size: 10px; color: #6d788d; }
.fx-nl__card header,
.fx-res__card header,
.fx-yahr__card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(87,155,212,0.1), rgba(66,188,156,0.1));
  border-bottom: 2px solid #579bd4;
}
.fx-nl__card header b,
.fx-res__card header b,
.fx-yahr__card header b { font-size: 14px; color: #384551; }
.fx-nl__card header em,
.fx-res__card header em,
.fx-yahr__card header em,
.fx-school__head em {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  border-radius: 10px;
  background: linear-gradient(135deg, #579bd4, #42bc9c);
  color: #fff;
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
}
.fx-nl table,
.fx-res table,
.fx-yahr table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 11px;
}
.fx-nl th,
.fx-res th,
.fx-yahr th {
  text-align: left;
  padding: 9px 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 9px;
  font-weight: 600;
  color: #384551;
  background: linear-gradient(135deg, rgba(87,155,212,0.08), rgba(66,188,156,0.08));
  border-bottom: 2px solid #579bd4;
}
.fx-nl td,
.fx-res td,
.fx-yahr td {
  padding: 9px 10px;
  border-bottom: 1px solid #e7e7e8;
  color: #384551;
  vertical-align: middle;
}
.fx-nl tr.is-on,
.fx-res tr.is-on,
.fx-yahr tr.is-on { background: linear-gradient(135deg, rgba(87,155,212,0.05), rgba(66,188,156,0.05)); }
.fx-res__who {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-right: 4px;
  border-radius: 50%;
  background: #666cff;
  color: #fff;
  font-size: 8px;
  font-weight: 700;
}
.fx-res__pop {
  position: absolute;
  z-index: 5;
  pointer-events: none;
  background: #fff;
  border: 1px solid rgba(75, 70, 92, 0.1);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(38, 43, 67, 0.2);
}
.fx-res__pop--add {
  top: 2px;
  right: -88px;
  width: min(292px, 80%);
  overflow: hidden;
}
.fx-res__pop--plan {
  left: -188px;
  bottom: -268px;
  width: min(300px, 82%);
  overflow: hidden;
}
.fx-res__pop--add header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  background: #fff;
  border-bottom: 1px solid #e6e6e8;
}
.fx-res__pop--add header b {
  font-size: 13px;
  font-weight: 700;
  color: #384551;
}
.fx-res__pop--add header i { color: #6d788d; font-size: 16px; }
.fx-res__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 12px 4px;
}
.fx-res__fields label {
  display: block;
  margin: 0;
  padding: 7px 8px 6px;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  background: #fff;
  color: #6d788d;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.fx-res__fields .fx-res__space { grid-column: 1 / -1; }
.fx-res__fields em {
  display: block;
  margin-top: 2px;
  color: #384551;
  font-size: 12px;
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}
.fx-res__pop--plan .st-layout__bar {
  padding: 8px 8px;
  gap: 4px;
}
.fx-res__pop--plan .st-layout__bar button,
.fx-res__pop--plan .st-layout__bar > i {
  width: 28px;
  height: 28px;
  font-size: 14px;
}
.fx-res__pop--plan .st-layout__bar em {
  padding: 5px 8px;
  font-size: 10px;
}
.fx-res__board {
  height: 168px !important;
}
.fx-res__pop--plan .st-layout__shape--circle { width: 42px; height: 42px; }
.fx-res__pop--plan .st-layout__shape--square { width: 36px; height: 36px; }
.fx-res__pop--plan .st-layout__shape--rectangle { width: 58px; height: 32px; }
.fx-res__pop--plan .st-layout__shape--trapezoid { width: 52px; height: 28px; }
.fx-res__pop--add footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 12px 12px;
}
.fx-res__pop--add footer em,
.fx-res__pop--add footer strong {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 9px;
  border-radius: 6px;
}
.fx-res__pop--add footer em { color: #6d788d; background: #f5f5f9; }
.fx-res__pop--add footer strong { color: #fff; background: #579bd4; }

.fx-school__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.fx-school__head h3 { margin: 0 0 4px; font-size: 18px; font-weight: 600; color: #384551; }
.fx-school__head p { margin: 0; font-size: 12px; color: #6d788d; }
.fx-school__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fx-school__card { padding: 14px; }
.fx-school__card header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.fx-school__card header > i {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: rgba(102,108,255,0.12);
  color: #666cff;
}
.fx-school__card header b { font-size: 14px; color: #384551; }
.fx-school__card header span { margin-left: auto; color: #6d788d; }
.fx-school__card h4 { margin: 0 0 6px; font-size: 12px; color: #384551; }
.fx-school__card p { margin: 0 0 4px; font-size: 11px; color: #6d788d; }
.fx-school__card em {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  background: rgba(3,195,236,0.12);
  color: #03c3ec;
  font-style: normal;
  font-size: 10px;
}
.fx-school__meta { margin-top: 8px !important; }

.fx-web__site {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(17,24,39,0.12);
  border: 1px solid #e7e7e8;
}
.fx-web__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid #e7e7e8;
}
.fx-web__bar b { color: #579bd4; font-size: 13px; }
.fx-web__bar nav { display: flex; gap: 10px; font-size: 11px; color: #6d788d; }
.fx-web__hero {
  padding: 22px 16px;
  background:
    linear-gradient(135deg, rgba(87,155,212,0.18), rgba(66,188,156,0.12)),
    #f5f5f9;
}
.fx-web__hero p { margin: 0; font-size: 11px; color: #579bd4; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.fx-web__hero h3 { margin: 4px 0 10px; font-size: 20px; color: #384551; }
.fx-web__hero button {
  border: 0;
  border-radius: 8px;
  padding: 8px 14px;
  background: #579bd4;
  color: #fff;
  font-weight: 700;
  pointer-events: none;
}
.fx-web__cal { padding: 12px 14px 14px; }
.fx-web__cal-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.fx-web__cal-toolbar strong { margin-right: auto; font-size: 14px; color: #384551; }
.fx-web__cal-toolbar span {
  padding: 4px 8px;
  border-radius: 6px;
  background: #696cff;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
}
.fx-web__cal ol {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.fx-web__cal li {
  min-height: 36px;
  padding: 4px;
  border-radius: 6px;
  font-size: 10px;
  color: #6d788d;
  background: #f8f8fa;
}
.fx-web__cal li.is-on { background: rgba(105,108,255,0.12); color: #696cff; font-weight: 700; }
.fx-web__cal li em { display: block; font-style: normal; font-size: 8px; }

@media (max-width: 860px) {
  .fx-checkout,
  .fx-donate,
  .fx-pcare,
  .fx-portal { width: 100%; min-height: 0; }
  .fx-checkout__grid,
  .fx-checkout__when,
  .fx-checkout__tiers,
  .fx-checkout__addr,
  .fx-donate__modal,
  .fx-portal__opts,
  .fx-nl__metrics,
  .fx-school__grid { grid-template-columns: 1fr; }
  .fx-checkout__visit { border-right: 0; padding-right: 0; }
  .fx-donate__left,
  .fx-donate__right { width: 100%; }
  .fx-donate__right { min-height: 90px; }
  .fx-checkout .fx-liveform__pop--stripe,
  .fx-checkout .fx-liveform__pop--crm,
  .fx-donate .fx-liveform__pop--stripe,
  .fx-donate .fx-liveform__pop--crm,
  .fx-pcare .fx-liveform__pop--crm,
  .fx-portal .fx-liveform__pop--stripe,
  .fx-portal .fx-liveform__pop--due {
    position: static;
    width: 100%;
    margin-top: 12px;
    transform: none;
  }
  .fx-ptx__stats,
  .fx-attend__stats,
  .fx-fin__stats,
  .fx-fin__grid { grid-template-columns: 1fr; }
  .fx-vnav { display: none; }
  .fx-ptx .fx-ptx__pop { position: static; width: 100%; margin-top: 12px; }
  .fx-coa, .fx-books { grid-template-columns: 1fr; }
}

.fx-ptx {
  position: relative;
  width: min(100%, 920px);
  margin-left: auto;
  overflow: visible;
  font-family: "Public Sans", Inter, system-ui, sans-serif;
  color: #3b4056;
}
.fx-ptx__app {
  display: flex;
  min-height: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #f5f5f9;
  border: 1px solid rgba(75, 70, 92, 0.08);
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1), 0 18px 48px rgba(38, 43, 67, 0.1);
}
.fx-vnav {
  position: relative;
  width: 16.25rem;
  flex: 0 0 16.25rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #f7f7f9;
  color: #3b4056;
  font-family: "Public Sans", Inter, system-ui, sans-serif;
  overflow: hidden;
}
.fx-vnav__brand {
  display: flex;
  align-items: center;
  height: 64px;
  padding: 0 1rem 0 1.375rem;
}
.fx-vnav__brand-link {
  display: flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
}
.fx-vnav__logo {
  display: block;
  flex: 0 0 auto;
}
.fx-vnav__logo img {
  display: block;
  width: 35px;
  height: 35px;
  object-fit: contain;
}
.fx-vnav__text {
  margin-left: 0.5rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.15px;
  color: #579bd4;
  line-height: 1;
  white-space: nowrap;
}
.fx-vnav__collapse {
  margin-left: auto;
  display: grid;
  place-items: center;
  color: #262b43;
  flex: 0 0 auto;
}
.fx-vnav__collapse svg { display: block; }
.fx-vnav__menu {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0 1rem;
  flex: 1 1 auto;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.fx-vnav__head {
  display: flex;
  align-items: center;
  margin: 1.25rem 0.75rem 0;
  padding: 0.437rem 0.75rem;
  color: #acaeb8;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  white-space: nowrap;
}
.fx-vnav__head::before,
.fx-vnav__head::after {
  content: "";
  display: block;
  height: 1px;
  background: #e5e6e8;
}
.fx-vnav__head::before { width: 8%; margin-right: 0.5rem; }
.fx-vnav__head::after { width: 90%; margin-left: 0.5rem; }
.fx-vnav__item {
  margin: 0.25rem 0 0;
  list-style: none;
}
.fx-vnav__row {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 38px;
  margin: 0 0.75rem;
  padding: 0.437rem 0.75rem;
  border-radius: 0.375rem;
  color: #3b4056;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.15px;
  line-height: 1.467;
}
.fx-vnav__row i {
  flex: 0 0 auto;
  margin-right: 0.5rem;
  font-size: 1.375rem;
  line-height: 1;
  width: 1.375rem;
  text-align: center;
}
.fx-vnav__row div {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fx-vnav__row--toggle { padding-right: calc(0.75rem + 1.68em); }
.fx-vnav__row--toggle::after {
  position: absolute;
  top: 50%;
  right: 0.55rem;
  display: block;
  font-family: remixicon, sans-serif;
  font-size: 1.375rem;
  color: #3b4056;
  transform: translateY(-50%);
  content: "\ea6e";
}
.fx-vnav__item.is-open > .fx-vnav__row--toggle {
  background: rgba(38, 43, 67, 0.08);
}
.fx-vnav__item.is-open > .fx-vnav__row--toggle::after {
  transform: translateY(-50%) rotate(90deg);
}
.fx-vnav__item.is-on > .fx-vnav__row {
  background: #dcf6fe;
  color: #26c6f9;
  box-shadow: none;
  border-radius: 0.375rem;
}
.fx-vnav__item.is-on > .fx-vnav__row i { color: inherit; }
.fx-vnav__sub {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.fx-vnav__subitem .fx-vnav__row {
  padding: 0.5rem 0.75rem 0.5rem 2.55rem;
}
.fx-vnav__subitem .fx-vnav__row::before {
  content: "";
  position: absolute;
  left: 1.1875rem;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-radius: 50rem;
  background: currentColor;
  color: #a8aab4;
}
.fx-vnav__subitem.is-on .fx-vnav__row {
  background: #dcf6fe;
  color: #26c6f9;
  border-radius: 0.375rem;
}
.fx-vnav__subitem.is-on .fx-vnav__row::before { color: #26c6f9; }
.fx-ptx__main { flex: 1; min-width: 0; padding: 0 0 12px; background: #f5f5f9; }
.fx-ptx .fx-ptx__pop {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  width: min(280px, 78%);
}
.fx-ptx .fx-ptx__pop.is-on {
  opacity: 1;
  visibility: visible;
}
.fx-ptx__pop--acct { left: 168px; bottom: 10px; }
.fx-ptx__pop--qb { top: 18px; right: -18px; }
.fx-ptx__pop--acct header,
.fx-ptx__pop--qb header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.fx-ptx__pop--acct header span,
.fx-ptx__pop--qb header span { font-size: 11px; color: #6d788d; }
.fx-ptx__pop--acct header em,
.fx-ptx__pop--qb header b { font-style: normal; font-size: 13px; font-weight: 700; color: #384551; }
.fx-ptx__pop--qb header b { color: #2ca01c; }
.fx-ptx__pop--acct > b,
.fx-ptx__pop--qb > strong {
  display: block;
  margin: 0 0 6px;
  font-size: 16px;
  letter-spacing: -0.03em;
}
.fx-ptx__pop--acct p,
.fx-ptx__pop--qb p { margin: 0 0 8px; font-size: 11px; color: #6d788d; }
.fx-ptx__pop--acct ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.fx-ptx__pop--acct li {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  font-size: 11px;
}
.fx-ptx__pop--acct li em { font-family: ui-monospace, monospace; color: #6d788d; }
.fx-ptx__qb-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 4px;
  padding: 6px 8px;
  border-radius: 8px;
  background: #f6f9fc;
  border: 1px solid #e3e8ee;
  font-size: 10px;
  font-weight: 650;
}
.fx-ptx__pop--qb > em {
  display: block;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #2ca01c;
  color: #fff;
  text-align: center;
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
}
.fx-ptx__stats,
.fx-attend__stats,
.fx-fin__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 12px 12px;
}
.fx-ptx__stats article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 72px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}
.fx-ptx__stats b { display: block; font-size: 17px; letter-spacing: -0.02em; color: #384551; }
.fx-ptx__stats span { display: block; margin-top: 2px; font-size: 11px; color: #6d788d; }
.fx-ptx__stats small { display: block; margin-top: 3px; font-size: 10px; color: #6d788d; }
.fx-ptx__icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-size: 20px;
}
.fx-ptx__icon--count { color: #579bd4; background: rgba(87, 155, 212, 0.16); }
.fx-ptx__icon--gross { color: #42bc9c; background: rgba(66, 188, 156, 0.16); }
.fx-ptx__icon--fees { color: #faa75b; background: rgba(250, 167, 91, 0.16); }
.fx-ptx__filter {
  display: inline-flex;
  flex-direction: column;
  margin: 0 12px 10px;
  padding: 8px 12px 6px;
  min-width: 180px;
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
}
.fx-ptx__filter label { font-size: 10px; color: #6d788d; }
.fx-ptx__filter em { font-style: normal; font-size: 13px; font-weight: 600; color: #384551; }
.fx-ptx__card,
.fx-attend__card {
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  overflow: auto;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
  margin: 0 12px 12px;
}
.fx-ptx table,
.fx-attend table,
.fx-fin table,
.fx-vol table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.fx-ptx th,
.fx-attend th,
.fx-vol th {
  text-align: left;
  padding: 9px 8px;
  background: #f6f7fb;
  color: #6d788d;
  font-weight: 600;
  white-space: nowrap;
  border-bottom: 1px solid #d9dee3;
}
.fx-ptx td,
.fx-attend td,
.fx-vol td {
  padding: 8px;
  border-bottom: 1px solid #e7e7e8;
  color: #384551;
  vertical-align: middle;
}
.fx-ptx tr.is-on,
.fx-attend tr.is-on,
.fx-vol tr.is-on { background: rgba(102, 108, 255, 0.08); }

.fx-attend:not(:has(.fx-attend__app)),
.fx-fin,
.fx-vol { width: 100%; }
.fx-attend:has(.fx-attend__app) {
  position: relative;
  width: min(100%, 920px);
  margin-left: auto;
  overflow: visible;
  font-family: Inter, "Public Sans", sans-serif;
  color: #384551;
}
.fx-attend__app {
  display: flex;
  min-height: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #f5f5f9;
  border: 1px solid rgba(75, 70, 92, 0.08);
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1), 0 18px 48px rgba(38, 43, 67, 0.1);
}
.fx-attend__main { flex: 1; min-width: 0; padding: 0 0 12px; background: #f5f5f9; }
.fx-attend__main .fx-ea-stats,
.fx-attend__main .fx-ea-card { margin-left: 12px; margin-right: 12px; }
.fx-ea-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.fx-ea-stat {
  position: relative;
  overflow: hidden;
  padding: 14px 14px 12px;
  background: #fff;
  border: 1px solid #e6e6e8;
  border-radius: 8px;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
}
.fx-ea-stat::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 3px solid transparent;
}
.fx-ea-stat--primary::after { border-bottom-color: #c2c4ff; }
.fx-ea-stat--info::after { border-bottom-color: #9ee7f5; }
.fx-ea-stat--success::after { border-bottom-color: #a6efc4; }
.fx-ea-stat__row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.fx-ea-stat h4 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #384551;
  letter-spacing: -0.02em;
}
.fx-ea-stat h6 {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  color: #6d788d;
}
.fx-ea-ava {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-size: 22px;
}
.fx-ea-ava--primary { background: #e7e7ff; color: #666cff; }
.fx-ea-ava--info { background: #d7f5fc; color: #03c3ec; }
.fx-ea-ava--success { background: #d4f4e2; color: #28c76f; }
.fx-ea-card {
  background: #fff;
  border: 1px solid #e6e6e8;
  border-radius: 8px;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
  overflow: hidden;
}
.fx-ea-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #e6e6e8;
}
.fx-ea-card__head h5 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #384551;
}
.fx-ea-card__head button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  background: #e7e7ff;
  color: #666cff;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  pointer-events: none;
}
.fx-ea-card__tools {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px 8px;
  font-size: 12px;
  color: #6d788d;
}
.fx-ea-card__tools em {
  display: inline-block;
  min-width: 52px;
  margin-left: 4px;
  padding: 4px 8px;
  border: 1px solid #d9dee3;
  border-radius: 6px;
  background: #fff;
  font-style: normal;
  color: #384551;
}
.fx-ea-card__table { overflow: auto; }
.fx-attend .event-attendance-list {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.fx-attend .event-attendance-list th,
.fx-attend .event-attendance-list td {
  padding: 10px 12px;
  border: 1px solid #d9dee3;
  text-align: left;
  vertical-align: middle;
  color: #384551;
  white-space: nowrap;
}
.fx-attend .event-attendance-list th {
  background: #f6f7fb;
  color: #6d788d;
  font-weight: 600;
}
.fx-attend .event-attendance-list th:nth-child(5),
.fx-attend .event-attendance-list td:nth-child(5) {
  min-width: 90px;
  max-width: 100px;
}
.fx-ea-user {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 150px;
}
.fx-ea-user__ava {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
  flex: 0 0 32px;
}
.fx-ea-user__ava--primary { background: #e7e7ff; color: #666cff; }
.fx-ea-user__ava--info { background: #d7f5fc; color: #03c3ec; }
.fx-ea-user__ava--warning { background: #fff3d6; color: #ff9f43; }
.fx-ea-user__ava--success { background: #d4f4e2; color: #28c76f; }
.fx-ea-user b { display: block; font-size: 12px; font-weight: 600; color: #384551; }
.fx-ea-user small { display: block; font-size: 10px; color: #6d788d; }
.fx-ea-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  color: #6d788d;
  font-size: 16px;
}
.fx-ea-card__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 12px;
  font-size: 11px;
  color: #6d788d;
}
.fx-ea-card__foot ol {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 4px;
}
.fx-ea-card__foot li {
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid #d9dee3;
}
.fx-ea-card__foot li.is-on { background: #666cff; border-color: #666cff; color: #fff; }
.fx-ea-card__foot li.is-off { opacity: 0.45; }
.fx-attend .fx-attend__pop {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  width: min(280px, 78%);
}
.fx-attend .fx-attend__pop.is-on {
  opacity: 1;
  visibility: visible;
}
.fx-attend__pop--scan { top: 18px; right: -20px; }
.fx-attend .fx-attend__pop--mail {
  left: 48px;
  bottom: -18px;
  width: min(268px, 72%);
  padding: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #e5e5ea;
  box-shadow: none;
}
.fx-attend__pop--scan header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.fx-attend__pop--scan header b { font-size: 13px; }
.fx-attend__pop--scan header span { font-size: 11px; color: #28c76f; font-weight: 650; }
.fx-attend__qr {
  position: relative;
  width: 108px;
  height: 108px;
  margin: 2px 0 10px;
  display: grid;
  place-items: center;
}
.fx-attend__qr img {
  width: 72px;
  height: 72px;
  padding: 5px;
  background: #fff;
  border: 1px solid #e6e6e8;
  border-radius: 4px;
  object-fit: contain;
  image-rendering: pixelated;
}
.fx-attend__qr-frame {
  position: absolute;
  inset: 0;
}
.fx-attend__qr-frame em {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2.5px solid #37c6a0;
}
.fx-attend__qr-frame em:nth-child(1) { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.fx-attend__qr-frame em:nth-child(2) { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.fx-attend__qr-frame em:nth-child(3) { bottom: 0; left: 0; border-right: 0; border-top: 0; }
.fx-attend__qr-frame em:nth-child(4) { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.fx-attend__pop--scan > strong {
  display: block;
  margin: 0 0 4px;
  font-size: 15px;
  letter-spacing: -0.02em;
}
.fx-attend__pop--scan > p {
  margin: 0 0 8px;
  font-size: 11px;
  color: #6d788d;
}
.fx-attend__scan-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(40, 199, 111, 0.1);
  color: #28c76f;
  font-size: 11px;
  font-weight: 650;
}
.fx-attend__scan-meta em { font-style: normal; color: #384551; }
.fx-attend__macbar {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 10px;
  background: #f2f2f7;
  border-bottom: 1px solid #e5e5ea;
}
.fx-attend__macbar i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.fx-attend__macbar i:nth-child(1) { background: #ff5f57; }
.fx-attend__macbar i:nth-child(2) { background: #ffbd2e; }
.fx-attend__macbar i:nth-child(3) { background: #28ca42; }
.fx-attend__macbar b {
  flex: 1;
  text-align: center;
  margin-right: 28px;
  font-size: 11px;
  font-weight: 650;
  color: #1d1d1f;
}
.fx-attend__mail-meta {
  display: grid;
  gap: 2px;
  padding: 6px 10px;
  background: #fff;
  border-bottom: 1px solid #e5e5ea;
}
.fx-attend__mail-meta p {
  margin: 0;
  font-size: 10px;
  color: #1d1d1f;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fx-attend__mail-meta span {
  display: inline-block;
  min-width: 42px;
  margin-right: 4px;
  color: #8e8e93;
  font-weight: 600;
}
.fx-attend__mail-body {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: #fff;
}
.fx-attend__mail-body b {
  display: block;
  margin-bottom: 2px;
  color: #2ab0c5;
  font-size: 12px;
}
.fx-attend__mail-body p {
  margin: 0 0 6px;
  font-size: 10px;
  color: #6d788d;
  line-height: 1.3;
}
.fx-attend__mail-qr {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 3px;
  background: #fff;
  border: 1px solid #e5e5ea;
  border-radius: 2px;
  object-fit: contain;
  image-rendering: pixelated;
}
.fx-attend__mail-body span {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  background: #2ab0c5;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}
@media (max-width: 860px) {
  .fx-attend:has(.fx-attend__app) .fx-vnav { display: none; }
  .fx-ea-stats { grid-template-columns: 1fr; }
  .fx-attend .fx-attend__pop { position: static; width: 100%; margin-top: 12px; }
  .fx-nl .fx-nl__pop,
  .fx-nl .fx-nl__letter,
  .fx-res .fx-res__pop { position: static; width: 100%; margin-top: 12px; left: auto; right: auto; bottom: auto; }
}
.fx-attend__stat,
.fx-fin__stats article {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(67, 89, 113, 0.08);
}
.fx-attend__ava {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-size: 20px;
}
.fx-attend__ava--primary { background: rgba(102, 108, 255, 0.12); color: #666cff; }
.fx-attend__ava--info { background: rgba(3, 195, 236, 0.12); color: #03c3ec; }
.fx-attend__ava--success { background: rgba(40, 199, 111, 0.12); color: #28c76f; }
.fx-attend__ava--warning { background: rgba(255, 159, 67, 0.12); color: #ff9f43; }
.fx-attend__stat b,
.fx-fin__stats b { display: block; font-size: 18px; color: #384551; letter-spacing: -0.02em; }
.fx-attend__stat em,
.fx-fin__stats em { display: block; font-style: normal; font-size: 12px; color: #6d788d; }
.fx-fin__stats small { display: block; margin-top: 2px; font-size: 10px; color: #6d788d; }
.fx-fin__stats small.is-up { color: #28c76f; font-weight: 600; }

.fx-fin__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.fx-fin__bar ol,
.fx-vol__crumb {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 11px;
  color: #6d788d;
}
.fx-fin__bar li + li::before,
.fx-vol__crumb li + li::before {
  content: "/";
  margin-right: 8px;
  color: #a1acb8;
}
.fx-fin__bar li:last-child { color: #384551; font-weight: 600; }
.fx-fin__bar em {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 7px 12px;
  border-radius: 6px;
  background: rgba(102, 108, 255, 0.12);
  color: #666cff;
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
}
.fx-fin__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 10px; }
.fx-fin__card {
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  padding: 12px 14px;
  box-shadow: 0 2px 6px rgba(67, 89, 113, 0.08);
}
.fx-fin__card header h4 { margin: 0 0 2px; font-size: 14px; color: #384551; }
.fx-fin__card header p,
.fx-fin__card > p { margin: 0 0 8px; font-size: 11px; color: #6d788d; }
.fx-fin__big { display: block; margin: 4px 0 6px; font-size: 22px; color: #384551; letter-spacing: -0.03em; }
.fx-fin__big span {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(40, 199, 111, 0.12);
  color: #28c76f;
  font-size: 11px;
  vertical-align: middle;
}
.fx-fin table td { padding: 7px 0; border-top: 1px solid #e7e7e8; color: #384551; }
.fx-fin table td:nth-child(2),
.fx-fin table td:nth-child(3) { text-align: right; font-weight: 600; }
.fx-fin__bars { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.fx-fin__bars li { display: flex; align-items: center; gap: 10px; }
.fx-fin__bars i {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: rgba(102, 108, 255, 0.12);
  color: #666cff;
}
.fx-fin__bars li:nth-child(2) i { background: rgba(40, 199, 111, 0.12); color: #28c76f; }
.fx-fin__bars li:nth-child(3) i { background: rgba(3, 195, 236, 0.12); color: #03c3ec; }
.fx-fin__bars b { display: block; font-size: 12px; color: #384551; }
.fx-fin__bars span { display: block; font-size: 11px; color: #6d788d; }
.fx-fin__bars em {
  display: block;
  height: 6px;
  margin-top: 6px;
  border-radius: 999px;
  background: #666cff;
  font-style: normal;
}
.fx-fin__bars li:nth-child(2) em { background: #28c76f; }
.fx-fin__bars li:nth-child(3) em { background: #03c3ec; }
.fx-fin__bars div { flex: 1; min-width: 0; }

.fx-vol__crumb { margin-bottom: 10px; }
.fx-vol__crumb li:last-child { color: #384551; font-weight: 600; }
.fx-vol__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
}
.fx-vol__head h3 { margin: 0 0 4px; font-size: 16px; color: #384551; }
.fx-vol__head p { margin: 0; font-size: 12px; color: #6d788d; }
.fx-vol__head div:last-child { display: flex; gap: 6px; flex-wrap: wrap; }
.fx-vol__head em {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 7px 10px;
  border-radius: 6px;
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
}
.fx-vol__head em.is-primary { background: #666cff; }
.fx-vol__head em.is-success { background: #28c76f; }
.fx-vol__card {
  background: #fff;
  border: 1px solid #d9dee3;
  border-radius: 8px;
  padding: 12px 14px 0;
}
.fx-vol__card header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid #e7e7e8;
}
.fx-vol__card header h4 { margin: 0 0 2px; font-size: 14px; color: #384551; }
.fx-vol__card header p { margin: 0; font-size: 11px; color: #6d788d; }
.fx-vol__card header span {
  padding: 3px 8px;
  border-radius: 4px;
  background: rgba(3, 195, 236, 0.12);
  color: #03c3ec;
  font-size: 11px;
  font-weight: 600;
}
@media (max-width: 860px) {
  .fx-ptx__stats,
  .fx-attend__stats,
  .fx-fin__stats,
  .fx-fin__grid { grid-template-columns: 1fr; }
}

.fx-coa {
  overflow: hidden;
  border: 1px solid var(--bv-line);
  border-radius: 18px;
  background: var(--bv-paper);
  box-shadow: 0 18px 48px rgba(17, 24, 39, 0.06);
}
.fx-coa table { width: 100%; border-collapse: collapse; }
.fx-coa th,
.fx-coa td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid var(--bv-line);
  font-size: 14px;
}
.fx-coa th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bv-muted);
  background: color-mix(in srgb, var(--bv-cream-deep) 70%, #fff);
}
.fx-coa td:nth-child(3),
.fx-coa td:nth-child(4) { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
.fx-coa tr[data-fx-coa-row] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 420ms var(--bv-ease), transform 420ms var(--bv-ease);
}
.fx-coa.is-on tr[data-fx-coa-row].is-on { opacity: 1; transform: none; }
.fx-coa__src {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fl-a) 12%, #fff);
  color: var(--fl-a);
  font-size: 12px;
  font-weight: 650;
}
.fx-books {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}
.fx-books article {
  padding: 22px 22px 20px;
  border-radius: 18px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  box-shadow: 0 18px 48px rgba(17, 24, 39, 0.06);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 420ms var(--bv-ease), transform 420ms var(--bv-ease);
}
.fx-books.is-on article.is-on { opacity: 1; transform: none; }
.fx-books header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.fx-books header i {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--fl-a) 14%, #fff);
  color: var(--fl-a);
  font-size: 18px;
}
.fx-books h3 { margin: 0; font-size: 20px; letter-spacing: -0.03em; }
.fx-books p { margin: 0 0 14px; color: var(--bv-muted); font-size: 14px; line-height: 1.55; }
.fx-books ol { margin: 0; padding-left: 18px; display: grid; gap: 6px; color: var(--bv-ink); font-size: 14px; }
.fx-allocs {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}
.fx-allocs__card,
.fx-refund {
  padding: 20px;
  border-radius: 18px;
  border: 1px solid var(--bv-line);
  background: var(--bv-paper);
  box-shadow: 0 18px 48px rgba(17, 24, 39, 0.06);
}
.fx-allocs__card header,
.fx-refund header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.fx-allocs__card header b,
.fx-refund header b { font-size: 18px; letter-spacing: -0.03em; }
.fx-allocs__card header span,
.fx-refund header span { color: var(--bv-muted); font-size: 13px; }
.fx-allocs__card li,
.fx-refund li {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--bv-line);
  font-size: 14px;
}
.fx-allocs__card li em,
.fx-refund li em { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--bv-muted); }
.fx-refund li strong { color: #BD6C76; }
.fx-refund p { margin: 12px 0 0; font-size: 13px; color: var(--bv-muted); line-height: 1.5; }
@media (max-width: 860px) {
  .fx-books,
  .fx-allocs { grid-template-columns: 1fr; }
}

/* Keep the illustrative payment table inside its mobile viewport. */
@media(max-width:639px) {
  .fx-hero[data-fx-scene="payments"] .fx-hero__stage, .fx-hero[data-fx-scene="payments"] .fx-ptx, .fx-hero[data-fx-scene="payments"] .fx-ptx__app, .fx-hero[data-fx-scene="payments"] .fx-ptx__main { width:100%; min-width:0; max-width:100%; }
  .fx-hero[data-fx-scene="payments"] .fx-ptx { transform:none; }
  .fx-hero[data-fx-scene="payments"] .fx-ptx__card { max-width:100%; overflow-x:auto; }
}

@media(max-width:639px) { .fx-hero[data-fx-scene="payments"]:has(.fx-ptx) .fx-hero__inner { grid-template-columns:minmax(0,1fr); } }

/* —— Exact Vuexy platform chrome (left nav + page + inner surfaces) —— */
.fx-film.fx-vxy {
  overflow: hidden;
  border-radius: 8px;
  background: #f5f5f9;
  border: 1px solid rgba(75, 70, 92, 0.08);
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1), 0 18px 48px rgba(38, 43, 67, 0.1);
}
.fx-film.fx-vxy .fx-vxy__app {
  overflow: hidden;
  border-radius: 8px;
}
.fx-film.fx-vxy:has(.fx-portal),
.fx-film.fx-vxy:has(.fx-nl),
.fx-film.fx-vxy:has(.fx-mdues),
.fx-film.fx-vxy:has(.fx-res) {
  overflow: visible;
}
.fx-film.fx-vxy .fx-film__bar,
.fx-film.fx-vxy .fx-film__kicker { display: none; }
.fx-vxy__app {
  display: flex;
  min-height: 0;
  background: #f5f5f9;
  font-family: "Public Sans", Inter, system-ui, sans-serif;
  color: #3b4056;
}
.fx-vxy__page {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: #f5f5f9;
}
.fx-vxy__top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  height: 4rem;
  width: calc(100% - 1.5rem * 2);
  margin: 1rem 1.5rem 0;
  padding: 0 1.25rem;
  background: #fff;
  border-radius: 0.625rem;
  box-shadow: 0 0.25rem 0.875rem 0 rgba(38, 43, 67, 0.16);
  color: #676b7b;
  backdrop-filter: blur(6px);
  z-index: 2;
}
.fx-vxy__tools {
  display: flex;
  align-items: center;
  margin-left: auto;
  gap: 0.25rem;
}
.fx-vxy__btn {
  width: calc(2.2502625rem + 2px);
  height: calc(2.2502625rem + 2px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50rem;
  color: #6d788d;
  font-size: 1.375rem;
}
.fx-vxy__btn .ri-22px { font-size: 1.375rem; line-height: 1; }
.fx-vxy__btn--bell { margin-right: 1.5rem; }
.fx-vxy__avatar {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 2.5rem;
}
.fx-vxy__initial {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e7e7ff;
  color: #666cff;
  font-size: 0.9375rem;
  font-weight: 500;
  text-transform: uppercase;
}
.fx-vxy__avatar::after {
  content: "";
  position: absolute;
  right: 3px;
  bottom: 0;
  width: 8px;
  height: 8px;
  border-radius: 100%;
  background: #72e128;
  box-shadow: 0 0 0 2px #fff;
}
.fx-vxy .fx-profile__head,
.fx-vxy .fx-profile__card,
.fx-vxy .fx-portal__card,
.fx-ptx__stats article,
.fx-ptx__card,
.fx-attend__card,
.fx-ea-stat,
.fx-ea-card {
  border-radius: 0.625rem !important;
  box-shadow: 0 0.25rem 0.875rem 0 rgba(38, 43, 67, 0.16) !important;
  border: 0 !important;
}
.fx-vxy__content {
  padding: 1.25rem 1.5rem 1.5rem;
  min-width: 0;
}
.fx-film.fx-vxy:has(.fx-mdues) .fx-vxy__content,
.fx-film.fx-vxy:has(.fx-mdues) .fx-vxy__page,
.fx-film.fx-vxy:has(.fx-nl) .fx-vxy__content,
.fx-film.fx-vxy:has(.fx-nl) .fx-vxy__page,
.fx-film.fx-vxy:has(.fx-res) .fx-vxy__content,
.fx-film.fx-vxy:has(.fx-res) .fx-vxy__page {
  overflow: visible;
}
.fx-hero[data-fx-scene="members"] .fx-hero__stage,
.fx-hero[data-fx-scene="newsletters"] .fx-hero__stage,
.fx-hero[data-fx-scene="facilities"] .fx-hero__stage {
  overflow: visible;
  padding-bottom: 48px;
}
.fx-hero[data-fx-scene="facilities"] .fx-hero__stage { padding-bottom: 200px; }
.fx-hero[data-fx-scene="newsletters"] .fx-hero__stage { padding-bottom: 88px; }
.fx-hero[data-fx-scene="members"].is-on .fx-film {
  animation: fx-ease-in 160ms var(--bv-ease) backwards;
}
.fx-hero:has(.fx-vxy) .fx-hero__inner {
  grid-template-columns: minmax(0, 0.62fr) minmax(420px, 1.55fr);
  align-items: start;
}
.fx-hero[data-fx-scene="religious-school"] .fx-hero__inner {
  grid-template-columns: minmax(260px, 0.7fr) minmax(380px, 1.3fr);
  align-items: center;
  gap: clamp(20px, 3vw, 36px);
}
.fx-hero[data-fx-scene="religious-school"] .fx-hero__copy {
  max-width: 34rem;
}
.fx-hero[data-fx-scene="religious-school"] .fx-hero__lede {
  max-width: 32em;
}
.fx-hero[data-fx-scene="religious-school"] h1 {
  font-size: clamp(1.9rem, 3.2vw, 2.85rem);
}
.fx-hero[data-fx-scene="religious-school"] .fx-hero__stage {
  width: 100%;
  justify-self: stretch;
  padding: 20px 0 8px 8px;
}
.fx-hero:has(.fx-vxy) .fx-hero__stage { padding: 28px 0 12px; }

.fx-vxy .fx-profile,
.fx-vxy .fx-mdues,
.fx-vxy .fx-mlist,
.fx-vxy .fx-portal,
.fx-vxy .fx-nl,
.fx-vxy .fx-res,
.fx-vxy .fx-school,
.fx-vxy .fx-life,
.fx-vxy .fx-fin,
.fx-vxy .fx-vol {
  width: 100%;
  min-height: 0;
  font-family: "Public Sans", Inter, system-ui, sans-serif;
}
.fx-vxy .fx-portal {
  min-height: 0;
}
.fx-vxy .fx-portal__page {
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.fx-vxy .fx-portal__head h3 {
  font-size: 16px;
  font-weight: 600;
  color: #384551;
}
.fx-vxy .fx-portal__head p { color: #6d788d; }
.fx-vxy .fx-portal__steps li {
  width: 24px;
  height: 24px;
  font-size: 11px;
  background: #8592a3;
}
.fx-vxy .fx-portal__steps li.is-on { background: #666cff; }
.fx-vxy .fx-portal__card {
  border-radius: 0.625rem;
  box-shadow: 0 0.25rem 0.875rem 0 rgba(38, 43, 67, 0.16);
  border: 0;
}
.fx-vxy .fx-portal__opts article {
  border-radius: 8px;
  border: 1px solid #d9dee3;
}
.fx-vxy .fx-portal__opts article.is-on {
  border-color: #666cff;
  box-shadow: 0 0 0 1px #666cff;
}
.fx-vxy .fx-portal__go {
  background: #666cff;
  border-radius: 6px;
}

.fx-vxy .fx-profile {
  display: grid;
  gap: 10px;
  font-size: 11px;
  color: #3b4056;
}
.fx-vxy .fx-profile__head {
  grid-template-columns: 56px 1fr auto;
  gap: 12px;
  padding: 14px 14px 16px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
  opacity: 0.28;
}
.fx-vxy .fx-profile__head.is-on { opacity: 1; }
.fx-vxy .fx-profile__ava {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(135deg, #579bd4, #42bc9c);
  font-size: 16px;
  font-weight: 600;
}
.fx-vxy .fx-profile__who b {
  font-size: 15px;
  font-weight: 600;
  color: #384551;
  letter-spacing: -0.01em;
}
.fx-vxy .fx-profile__who ul {
  margin-top: 6px;
  gap: 12px;
  color: #6d788d;
  font-size: 11px;
  font-weight: 500;
}
.fx-vxy .fx-profile__who li i { color: #42bc9c; }
.fx-vxy .fx-profile__who li:nth-child(2) i { color: #0f79da; }
.fx-vxy .fx-profile__who li:nth-child(3) i { color: #daa796; }
.fx-vxy .fx-profile__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fx-vxy .fx-profile__status {
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid #28c76f;
  color: #28c76f;
  background: transparent;
  font-size: 11px;
  font-weight: 500;
}
.fx-vxy .fx-profile__edit {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #f7f7f9;
  color: #6d788d;
  font-size: 14px;
}
.fx-vxy .fx-profile__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  opacity: 0.28;
}
.fx-vxy .fx-profile__tabs.is-on { opacity: 1; }
.fx-vxy .fx-profile__tabs span {
  padding: 6px 12px;
  border-radius: 6px;
  color: #6d788d;
  font-size: 11px;
  font-weight: 500;
  background: transparent;
}
.fx-vxy .fx-profile__tabs span.is-on {
  background: #666cff;
  color: #fff;
}
.fx-vxy .fx-profile__card {
  padding: 14px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
  opacity: 0.28;
}
.fx-vxy .fx-profile__card.is-on {
  opacity: 1;
  animation: none;
}
.fx-vxy .fx-profile__card:hover {
  transform: none;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
}
.fx-vxy .fx-profile__card small {
  font-size: 10px;
  letter-spacing: 0.08em;
  color: #a1acb8;
}
.fx-vxy .fx-profile__card p {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 11px;
  margin: 0 0 10px;
}
.fx-vxy .fx-profile__card p > i { color: #6d788d; font-size: 14px; grid-row: auto; }
.fx-vxy .fx-profile__card p b { font-size: 11px; color: #3b4056; font-weight: 500; }
.fx-vxy .fx-profile__tabs { flex-wrap: nowrap; overflow: hidden; }
.fx-vxy .fx-profile .tag {
  background: #d7f5fc;
  color: #03c3ec;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 600;
}

.fx-vxy .fx-mdues {
  position: relative;
  width: 100%;
}
.fx-vxy .fx-mdues__pop {
  position: absolute;
  z-index: 4;
  width: min(300px, 78%);
  padding: 16px 16px 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(75, 70, 92, 0.1);
  box-shadow: 0 18px 42px rgba(38, 43, 67, 0.2);
  opacity: 1;
  transform: none;
  pointer-events: none;
}
.fx-vxy .fx-mdues__pop--bill {
  top: 2px;
  right: -28px;
}
.fx-vxy .fx-mdues__pop--owed {
  left: -92px;
  bottom: -34px;
}
.fx-vxy .fx-mdues__pop header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}
.fx-vxy .fx-mdues__pop header span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d788d;
}
.fx-vxy .fx-mdues__pop header em {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  color: #579bd4;
}
.fx-vxy .fx-mdues__pop p,
.fx-vxy .fx-mdues__pop label,
.fx-vxy .fx-mdues__pop small {
  display: block;
  margin: 0 0 5px;
  color: #6d788d;
  font-size: 12px;
}
.fx-vxy .fx-mdues__pop label { color: #384551; font-weight: 600; }
.fx-vxy .fx-mdues__pop strong {
  display: block;
  margin: 0 0 6px;
  color: #384551;
  font-size: 36px;
  letter-spacing: -0.05em;
  line-height: 1;
}
.fx-vxy .fx-mdues__pop--owed strong { color: #ff4c51; }
.fx-vxy .fx-mdues__pop > b {
  display: block;
  margin-top: 10px;
  padding: 9px 10px;
  border-radius: 7px;
  background: #579bd4;
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
}
.fx-vxy .fx-mdues__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  color: #579bd4;
  font-size: 13px;
  font-weight: 650;
}
@media (max-width: 639px) {
  .fx-vxy .fx-mdues__pop { position: static; width: 100%; margin-top: 10px; transform: none; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .fx-vxy .fx-mdues__pop,
  .fx-hero.is-on .fx-vxy .fx-mdues__pop {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.fx-vxy .fx-mlist {
  background: #fff;
  border: 0;
  border-radius: 0.625rem;
  box-shadow: 0 0.25rem 0.875rem 0 rgba(38, 43, 67, 0.16);
  overflow: hidden;
}
.fx-vxy .fx-mlist__bar {
  display: flex;
  justify-content: flex-end;
  padding: 1.25rem 1.25rem 0;
}
.fx-vxy .fx-mlist__export {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.437rem 1.25rem;
  border-radius: 0.375rem;
  background: #666cff;
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 500;
}
.fx-vxy .fx-mlist__tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.25rem 0.75rem;
  color: #6d788d;
  font-size: 0.9375rem;
}
.fx-vxy .fx-mlist__tools em,
.fx-vxy .fx-mlist__tools i {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.437rem 0.875rem;
  border: 1px solid #d9dee3;
  border-radius: 0.375rem;
  background: #fff;
  color: #3b4056;
  font-style: normal;
  font-weight: 400;
  min-width: 3.25rem;
  font-size: 0.9375rem;
}
.fx-vxy .fx-mlist__tools i { min-width: 10.5rem; }
.fx-vxy .fx-mlist table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.fx-vxy .fx-mlist th,
.fx-vxy .fx-mlist td {
  padding: 0.7813rem 1.25rem;
  border: 1px solid #e5e6e8;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}
.fx-vxy .fx-mlist th {
  padding-block: 1.426rem;
  background: #f5f5f7;
  color: #3b4056;
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.2px;
  text-transform: uppercase;
  border-bottom-color: #f5f5f7;
}
.fx-vxy .fx-mlist td { color: #3b4056; }
.fx-vxy .fx-mlist tr.is-on { background: rgba(102, 108, 255, 0.08); }
.fx-vxy .fx-mlist td:last-child {
  text-align: center;
  color: #6d788d;
  font-size: 1.125rem;
}
.fx-vxy .fx-mlist__who {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.fx-vxy .fx-mlist__who b {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #384551;
}
.fx-vxy .fx-mlist__who small {
  display: block;
  margin-top: 1px;
  color: #6d788d;
  font-size: 9px;
}
.fx-vxy .fx-mlist__ava {
  position: relative;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e7e7ff;
  color: #666cff;
  font-size: 8px;
  font-weight: 700;
}
.fx-vxy .fx-mlist__ava.is-due { background: #fce5e6; color: #ff4c51; }
.fx-vxy .fx-mlist__owed {
  position: absolute;
  left: -3px;
  bottom: -3px;
  width: 12px;
  height: 12px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ff4c51;
  color: #fff;
  font-size: 8px;
}
.fx-vxy .fx-mlist .tag {
  display: inline-block;
  background: #d7f5fc;
  color: #03c3ec;
  border-radius: 0.25rem;
  padding: 0.221em 0.8em;
  font-size: 0.8125rem;
  font-style: normal;
  font-weight: 500;
}
.fx-vxy .fx-mlist__due {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: #ff4c51;
  font-weight: 700;
}
.fx-vxy .fx-mlist__due em {
  font-style: normal;
  font-size: 8px;
  font-weight: 600;
}
.fx-vxy .fx-mlist__due.is-zero { color: #28c76f; }
.fx-vxy .fx-mlist__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem 1.15rem;
  color: #6d788d;
  font-size: 0.9375rem;
}
.fx-vxy .fx-mlist__foot ol {
  display: flex;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.fx-vxy .fx-mlist__foot li {
  min-width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  border-radius: 0.375rem;
  color: #3b4056;
}
.fx-vxy .fx-mlist__foot li.is-on {
  background: #666cff;
  color: #fff;
  font-weight: 500;
}

.fx-vxy .fx-nl__hero { display: none; }
.fx-vxy .fx-nl__metrics article,
.fx-vxy .fx-nl__card,
.fx-vxy .fx-res__card,
.fx-vxy .fx-school__card,
.fx-vxy .fx-life__card,
.fx-vxy .fx-fin__card,
.fx-vxy .fx-vol__card {
  border-radius: 8px;
  border: 1px solid #e6e6e8;
  box-shadow: 0 0.25rem 1.125rem rgba(75, 70, 92, 0.1);
}
.fx-vxy .fx-nl__card header,
.fx-vxy .fx-res__card header {
  background: #fff;
  border-bottom: 1px solid #e6e6e8;
}
.fx-vxy .fx-nl__card header em,
.fx-vxy .fx-res__card header em,
.fx-vxy .fx-school__head em {
  background: #666cff;
  color: #fff;
  border-radius: 6px;
  font-style: normal;
}
.fx-vxy .fx-school__head h3,
.fx-vxy .fx-vol__head h3,
.fx-vxy .fx-life__card b {
  color: #384551;
}

.fx-vxy__search { display: none; }

.fx-hero[data-fx-scene="member-portal"] .fx-film,
.fx-hero[data-fx-scene="member-portal"] .fx-portal,
.fx-hero[data-fx-scene="member-portal"] .fx-hero__copy {
  opacity: 1;
  transform: none;
  animation: none;
}
.fx-hero[data-fx-scene="member-portal"] .fx-portal [data-fx-step] {
  opacity: 1;
}
.fx-hero[data-fx-scene="member-portal"] .fx-portal .fx-liveform__pop[data-fx-step] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 560ms var(--bv-ease), transform 560ms var(--bv-ease);
}
.fx-hero[data-fx-scene="member-portal"] .fx-portal .fx-liveform__pop[data-fx-step].is-on {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .fx-hero[data-fx-scene="member-portal"] .fx-portal .fx-liveform__pop[data-fx-step] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.fl > section.mp-cal { padding: 0; }
.mp-cal {
  position: relative;
  z-index: 0;
  min-height: 118vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 20%, rgba(79, 160, 234, 0.18), transparent 36%),
    radial-gradient(circle at 88% 72%, rgba(231, 162, 74, 0.2), transparent 38%),
    radial-gradient(circle at 70% 88%, rgba(138, 124, 207, 0.16), transparent 34%),
    #111318;
  color: #faf8ef;
}
.mp-cal__scene {
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 0;
  pointer-events: none;
}
.mp-cal__board {
  position: absolute;
  left: 28%;
  top: 3vh;
  width: min(1180px, 92vw);
  padding: 22px;
  border-radius: 28px;
  background: #1a1d27;
  border: 1px solid rgba(250, 248, 239, 0.08);
  box-shadow: 0 40px 90px rgba(0, 0, 0, 0.35);
  transform: translate3d(8%, 0, 0) scale(1.16);
  transform-origin: left top;
}
.mp-cal__board header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  margin-bottom: 14px;
}
.mp-cal__board header b {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  letter-spacing: -0.04em;
}
.mp-cal__board header span {
  font-size: 12px;
  font-weight: 700;
  color: rgba(250, 248, 239, 0.48);
}
.mp-cal__dow,
.mp-cal__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
.mp-cal__dow { margin-bottom: 8px; }
.mp-cal__dow li {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(250, 248, 239, 0.42);
  padding: 0 6px;
}
.mp-cal__grid li {
  min-height: 92px;
  padding: 8px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.mp-cal__grid li.is-empty { background: transparent; border-color: transparent; }
.mp-cal__grid li.is-care { box-shadow: inset 0 0 0 2px #b78a6f; }
.mp-cal__grid li.is-due { box-shadow: inset 0 0 0 2px #37c6a0; }
.mp-cal__grid em {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-style: normal;
  font-weight: 750;
  color: rgba(250, 248, 239, 0.7);
}
.mp-cal__ev {
  display: block;
  margin-top: 4px;
  padding: 4px 6px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.25;
  overflow: hidden;
}
.mp-cal__ev--blue,
.mp-cal__key .mp-cal__ev--blue { background: #4fa0ea; color: #081018; }
.mp-cal__ev--amber,
.mp-cal__key .mp-cal__ev--amber { background: #e7a24a; color: #2a1604; }
.mp-cal__ev--mint,
.mp-cal__key .mp-cal__ev--mint { background: #59b96b; color: #06210c; }
.mp-cal__ev--warm,
.mp-cal__key .mp-cal__ev--warm { background: #c67c4e; color: #2a1208; }
.mp-cal__ev--green,
.mp-cal__key .mp-cal__ev--green { background: #37c6a0; color: #04241b; }
.mp-cal__ev--coral,
.mp-cal__key .mp-cal__ev--coral { background: #d8845c; color: #2a1008; }
.mp-cal__ev--violet,
.mp-cal__key .mp-cal__ev--violet { background: #8a7ccf; color: #140e2a; }
.mp-cal__ev--rose,
.mp-cal__key .mp-cal__ev--rose { background: #bd6c76; color: #2a0c12; }

.mp-cal__copy {
  position: relative;
  z-index: 1;
  max-width: 28rem;
  padding: 8vh 0 14vh;
  margin: -100vh 0 0 max(24px, calc((100vw - 1120px) / 2));
}
.mp-cal__copy .sd-kicker { color: #37c6a0; }
.mp-cal__copy h2 {
  margin: 0;
  font-size: clamp(2.1rem, 4vw, 3.2rem);
  letter-spacing: -0.045em;
  color: #faf8ef;
}
.mp-cal__copy .sd-lede {
  color: rgba(250, 248, 239, 0.72);
}
.mp-cal__key {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.mp-cal__key li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 650;
  color: rgba(250, 248, 239, 0.82);
}
.mp-cal__key i {
  width: 14px;
  height: 14px;
  border-radius: 4px;
}
.mp-over {
  position: relative;
  z-index: 2;
}

@media (prefers-reduced-motion: reduce) {
  .mp-cal__board { transform: translate3d(8%, 0, 0) scale(1.08); }
}
@media (max-width: 860px) {
  .mp-cal { min-height: 0; }
  .mp-cal__scene { position: relative; height: auto; padding: 12px 16px 4px; }
  .mp-cal__board {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    transform: none;
  }
  .mp-cal__grid li { min-height: 64px; padding: 6px; }
  .mp-cal__copy {
    max-width: none;
    margin: 0;
    padding: 18px 20px 24px;
  }
}

@media (max-width: 639px) {
  .fx-vxy__app .fx-vnav,
  .fx-ptx__app .fx-vnav,
  .fx-attend__app .fx-vnav { display: none; }
  .fx-hero:has(.fx-vxy) .fx-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .fx-hero[data-fx-scene="religious-school"] .fx-hero__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .fx-hero[data-fx-scene="religious-school"] .fx-hero__stage {
    width: 100%;
    justify-self: stretch;
    padding: 20px 0 8px;
  }
}
