/* Membership tracker: the fundraiser tracker's family, in the SITE'S colors.
   The No Fuss page wears its flyer gold on purpose; membership does not,
   so every gold token is re-pointed at the brand here. Metals (bronze,
   silver, gold, platinum, diamond) survive only as the Texas PTA rung icons. */

.rt-mb-tracker {
	--fr-gold: var(--rt-primary-bright, #229ce0);
	--fr-silver: var(--rt-gray, #9aa3ad);
	--mb-primary: var(--rt-primary, #2566b6);
	--mb-bright: var(--rt-primary-bright, #229ce0);
	--mb-ink: var(--rt-ink, #1d497c);
	--mb-gray: var(--rt-gray, #6b6b6b);
	--mb-line: var(--rt-line, #d9e2ec);
	--mb-cream: var(--rt-cream, #f2f6fa);
	--mb-paper: var(--rt-paper, #fff);
	--mb-sky: color-mix(in srgb, var(--mb-bright) 14%, #fff);
	--mb-display: var(--rt-font-display, "RT Display", "Arial Narrow", sans-serif);
	--mb-shadow: 0 8px 24px rgba(29, 73, 124, .12);
}
.rt-mb-tracker .rt-fr-h2 i { color: var(--mb-bright); }
.rt-mb-tracker .rt-fr-mark.is-hit { color: var(--mb-bright); }

/* ---- This month's award ---- */
.rt-mb-current-card { display: grid; grid-template-columns: 96px 1fr; gap: 1.2rem; align-items: center; max-width: 820px; margin: 0 auto; padding: 1.2rem 1.4rem; border-radius: 18px; background: var(--mb-paper); border: 1px solid var(--mb-line); box-shadow: var(--mb-shadow); }
.rt-mb-current-badge { width: 96px; height: 96px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--mb-bright) 55%, #fff), var(--mb-primary) 75%); color: #fff; font-size: 2.6rem; box-shadow: 0 6px 16px rgba(37, 102, 182, .35); }
.rt-mb-current-body h3 { margin: 0 0 .2rem; font-family: var(--mb-display); font-size: 1.6rem; letter-spacing: .05em; text-transform: uppercase; color: var(--mb-primary); }
.rt-mb-current-blurb { margin: 0 0 .3rem; color: var(--mb-ink); }
.rt-mb-current-deadline { margin: 0 0 .6rem; font-weight: 800; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mb-bright); }
.rt-mb-current-body .rt-fr-numbers { justify-content: flex-start; }
.rt-mb-current-body .rt-fr-bar { margin-bottom: .8rem; }
.rt-mb-current-body .rt-fr-togo { font-size: 1rem; }

/* ---- Badge shelf ---- */
.rt-mb-badges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .9rem; }
.rt-mb-badge { position: relative; display: grid; justify-items: center; gap: .3rem; padding: 1.1rem .6rem 1rem; border-radius: 16px; background: var(--mb-paper); border: 1px solid var(--mb-line); box-shadow: 0 4px 14px rgba(29, 73, 124, .07); text-align: center; transition: transform .2s, box-shadow .2s; }
.rt-mb-badge:hover { transform: translateY(-3px); box-shadow: var(--mb-shadow); }
.rt-mb-badge-star { width: 64px; height: 64px; display: grid; place-items: center; font-size: 1.5rem; color: #fff; background: var(--mb-line); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.rt-mb-badge b { font-family: var(--mb-display); font-size: .95rem; letter-spacing: .05em; text-transform: uppercase; color: var(--mb-ink); line-height: 1.1; }
.rt-mb-badge small { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mb-gray); }
.rt-mb-badge em { font-style: normal; font-weight: 800; font-size: .85rem; color: var(--mb-primary); }
.rt-mb-badge.is-earned { border-color: var(--mb-bright); background: var(--mb-sky); }
.rt-mb-badge.is-earned .rt-mb-badge-star { background: var(--mb-bright); filter: drop-shadow(0 4px 8px rgba(34, 156, 224, .45)); }
.rt-mb-badge.is-earned::before { content: "\f00c"; font-family: "Font Awesome 7 Free"; font-weight: 900; position: absolute; top: -8px; left: -6px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--mb-primary); color: #fff; font-size: .65rem; }
.rt-mb-badge.is-current { border-color: var(--mb-primary); }
.rt-mb-badge.is-current .rt-mb-badge-star { background: var(--mb-primary); }
.rt-mb-badge.is-current::after { content: "Now"; position: absolute; top: -8px; right: -6px; padding: .15em .6em; border-radius: 999px; background: var(--mb-primary); color: #fff; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.rt-mb-badge.is-missed { opacity: .5; }
.rt-mb-badge.is-missed .rt-mb-badge-star { background: var(--mb-line); color: var(--mb-gray); }
.rt-mb-badge.is-ahead { opacity: .85; }
.rt-mb-badge-stretch { font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--mb-bright); }

/* ---- Voice for Every Child ladder ---- */
.rt-mb-voice-lead { text-align: center; font-weight: 600; color: var(--mb-ink); margin: -.4rem auto 1rem; max-width: 640px; }
.rt-mb-ladder { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }
.rt-mb-rung { display: grid; justify-items: center; gap: .25rem; min-width: 124px; padding: 1rem .8rem; border-radius: 14px; background: var(--mb-cream); border: 1px solid var(--mb-line); color: var(--mb-ink); opacity: .6; }
.rt-mb-rung i { font-size: 1.6rem; color: var(--mb-gray); }
.rt-mb-rung b { font-family: var(--mb-display); letter-spacing: .06em; text-transform: uppercase; }
.rt-mb-rung span { font-size: .75rem; font-weight: 700; color: var(--mb-gray); }
.rt-mb-rung.is-earned { opacity: 1; background: var(--mb-paper); box-shadow: var(--mb-shadow); border-color: var(--mb-bright); }
.rt-mb-rung--bronze.is-earned i { color: #b87333; }
.rt-mb-rung--silver.is-earned i { color: #8a94a0; }
.rt-mb-rung--gold.is-earned i { color: #c9a227; }
.rt-mb-rung--platinum.is-earned i { color: #7fa6c9; }
.rt-mb-rung--diamond.is-earned i { color: var(--mb-bright); }
.rt-mb-rung.is-next { opacity: .95; border: 2px dashed var(--mb-primary); }

@media (max-width: 640px) {
	.rt-mb-current-card { grid-template-columns: 1fr; text-align: center; padding: 1rem; }
	.rt-mb-current-badge { margin: 0 auto; }
	.rt-mb-current-body .rt-fr-numbers { justify-content: center; }
	.rt-mb-badges { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
	.rt-mb-badge { padding: .9rem .4rem .8rem; }
	.rt-mb-badge-star { width: 52px; height: 52px; font-size: 1.2rem; }
	.rt-mb-ladder { gap: .5rem; }
	.rt-mb-rung { min-width: calc(50% - .25rem); flex: 1 1 calc(50% - .25rem); }
}
/* The Join button inherits the give-button gold rule; on brand blue it needs white text. */
.rt-mb-tracker .rt-fr-btn--give { color: #fff !important; box-shadow: 0 6px 18px rgba(34, 156, 224, .35) !important; }
.rt-mb-tracker .rt-fr-mark.is-hit i { filter: drop-shadow(0 0 6px rgba(34, 156, 224, .6)); }
.rt-mb-vs { margin: -.2rem 0 .8rem; text-align: center; font-weight: 700; font-size: .95rem; letter-spacing: .04em; color: var(--mb-gray); }
.rt-mb-current-body .rt-mb-vs { text-align: left; }
/* The count line: "members" reads as part of the number, last year stays quiet. */
.rt-mb-tracker .rt-fr-raised-word { font-size: 1.6rem; font-weight: 800; letter-spacing: .04em; text-transform: none; }
.rt-mb-vs { font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 640px) { .rt-mb-tracker .rt-fr-raised-word { font-size: 1.3rem; } .rt-mb-vs { font-size: .72rem; } }

/* The confetti easter egg: tiny, at the very bottom, easy to miss on purpose. */
.rt-fr-more { margin: 2.5rem 0 0; text-align: center; }
.rt-fr-more-btn { touch-action: manipulation; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; font: inherit; font-size: .68rem; letter-spacing: .06em; color: var(--mb-gray); background: none; border: 1px solid var(--mb-line); border-radius: 999px; padding: .2rem .7rem; cursor: pointer; opacity: .6; }
.rt-fr-more-btn:hover, .rt-fr-more-btn:focus-visible { opacity: 1; color: var(--mb-primary); border-color: var(--mb-bright); }
.rt-fr-more-say { display: block; margin-top: .5rem; font-family: var(--mb-display); font-size: 1.1rem; letter-spacing: .05em; text-transform: uppercase; color: var(--mb-primary); min-height: 1.4em; }
/* Fast taps must never zoom the page. */
.rt-mb-tracker { touch-action: manipulation; }
