/* 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 ---- */
/* A wrapping, centered row: a short last row of badges centers, never parks left (the fleet card rule). */
.rt-mb-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; }
.rt-mb-badge { flex: 0 1 172px; min-width: 150px; }
.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; }

/* ==== 9-17: the tracker in the site's brand texture, not flat panels ====
   Head card wears the fleet card texture (cards.css --rt-brand-tex) over the
   chrome, each section tops out in the same dark band carrying its title
   (the card-band rule), and the award stars go brand-colored on charcoal.
   Everything reads from palette tokens, so every site gets its own version. */
html .rt-mb-tracker > .rt-fr-head {
	background-color: var(--rt-black, #141414);
	background-image:
		radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.35) 0 1.5px, transparent 2px),
		radial-gradient(circle at 78% 28%, rgba(255, 255, 255, 0.28) 0 1px, transparent 2px),
		radial-gradient(circle at 60% 78%, rgba(255, 255, 255, 0.22) 0 1.5px, transparent 2px),
		var(--rt-brand-tex);
	background-size: auto, auto, auto, auto, auto, auto, auto;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat, no-repeat, no-repeat;
	border: 1px solid color-mix(in srgb, var(--mb-primary) 45%, transparent);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}
html .rt-mb-tracker > .rt-fr-head::before { display: none; }
html .rt-mb-tracker > .rt-fr-head .rt-fr-tagline-band { background: var(--mb-primary); color: var(--rt-on-primary, #111); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-tagline-band i { color: var(--rt-on-primary, #111); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-raised { color: var(--mb-primary); text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-stats li { padding: .55rem 1rem .5rem; border-radius: 14px; background: rgba(0, 0, 0, 0.45); border: 1px solid color-mix(in srgb, var(--mb-primary) 50%, transparent); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-stats b { color: var(--mb-primary); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-fill { background: linear-gradient(90deg, #fff, var(--mb-primary)); box-shadow: 0 0 18px color-mix(in srgb, var(--mb-primary) 70%, transparent); }
html .rt-mb-tracker > .rt-fr-head .rt-fr-btn--give { background: var(--mb-primary) !important; color: var(--rt-on-primary, #111) !important; border-color: var(--mb-primary) !important; }

/* Sections: a bordered card whose title is a textured band across the top. */
.rt-mb-tracker .rt-mb-current,
.rt-mb-tracker .rt-mb-shelf,
.rt-mb-tracker .rt-mb-voice {
	overflow: hidden;
	border-radius: 18px;
	border: 1px solid var(--mb-line);
	background: var(--mb-paper);
	box-shadow: var(--mb-shadow);
	padding: 0 1.2rem 1.4rem;
	margin: 0 0 1.4rem;
}
.rt-mb-tracker .rt-mb-shelf { background: var(--mb-paper); }
html .rt-mb-tracker .rt-mb-current > .rt-fr-h2,
html .rt-mb-tracker .rt-mb-shelf > .rt-fr-h2,
html .rt-mb-tracker .rt-mb-voice > .rt-fr-h2 {
	margin: 0 -1.2rem 1.4rem;
	padding: .8rem 1rem .75rem;
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	color: #fff;
	background-color: var(--rt-black, #141414);
	background-image: var(--rt-brand-logo-none, none), var(--rt-brand-tex);
	background-repeat: no-repeat, no-repeat, repeat, no-repeat, no-repeat;
	box-shadow: inset 0 -4px 0 var(--mb-primary);
}
html .rt-mb-tracker .rt-fr-h2 i { color: var(--mb-primary); }
html .rt-mb-tracker .rt-fr-h2--ribbon span { padding: 0; background: none; color: #fff; border-radius: 0; transform: none; box-shadow: none; }
html .rt-mb-tracker .rt-fr-h2--ribbon i { color: var(--mb-primary); }

/* This month's award card and the badge shelf: brand color where the ribbon and stars were. */
html .rt-mb-tracker .rt-mb-current-card { border-color: color-mix(in srgb, var(--mb-primary) 45%, var(--mb-line)); }
html .rt-mb-tracker .rt-mb-current-badge { background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--mb-primary) 45%, #fff), var(--mb-primary) 72%); color: var(--rt-on-primary, #111); box-shadow: 0 8px 20px color-mix(in srgb, var(--mb-primary) 45%, transparent); }
html .rt-mb-tracker .rt-mb-badge { background: var(--mb-paper); }
html .rt-mb-tracker .rt-mb-badge.is-earned { background: color-mix(in srgb, var(--mb-primary) 10%, #fff); border-color: var(--mb-primary); box-shadow: 0 6px 18px color-mix(in srgb, var(--mb-primary) 25%, transparent); }
html .rt-mb-tracker .rt-mb-badge.is-earned .rt-mb-badge-star { background: var(--mb-primary); color: var(--rt-on-primary, #111); filter: drop-shadow(0 4px 8px color-mix(in srgb, var(--mb-primary) 55%, transparent)); }
html .rt-mb-tracker .rt-mb-badge.is-earned::before { background: var(--rt-black, #141414); color: var(--mb-primary); }
html .rt-mb-tracker .rt-mb-badge.is-ahead .rt-mb-badge-star { background: color-mix(in srgb, var(--mb-primary) 35%, var(--mb-line)); }
html .rt-mb-tracker .rt-mb-rung.is-next { border-color: var(--mb-primary); background: color-mix(in srgb, var(--mb-primary) 8%, #fff); }
html .rt-mb-tracker .rt-mb-rung.is-earned { border-color: var(--mb-primary); }

/* The current award: members who joined but are not at Texas PTA yet. */
.rt-mb-pending { margin: .5rem 0 0; font-size: .92rem; opacity: .92; }
.rt-mb-pending i { margin-right: .3rem; }

/* ---- Join on the website: package cards, then a dialog sheet per package ---- */
.rt-mj { margin: 1.5rem auto; max-width: var(--rt-maxw, min(1440px, 94vw)); }
.rt-mj-packages { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 1rem; justify-content: center; grid-template-columns: repeat(1, minmax(0, 360px)); }
@media (min-width: 760px) { .rt-mj-packages--n2, .rt-mj-packages--n3, .rt-mj-packages--n4 { grid-template-columns: repeat(2, minmax(0, 360px)); } }
@media (min-width: 1100px) { .rt-mj-packages--n3 { grid-template-columns: repeat(3, minmax(0, 360px)); } .rt-mj-packages--n4 { grid-template-columns: repeat(4, minmax(0, 320px)); } }
.rt-mj-package { display: flex; flex-direction: column; gap: .35rem; text-align: center; padding: 0 1.1rem 1.2rem; border-radius: 1rem; background: #fff; border: 1px solid var(--rt-line, #e2e8f0); box-shadow: 0 4px 16px rgba(0,0,0,.07); overflow: hidden; }
.rt-mj-package h3 { margin: 0 -1.1rem .6rem; padding: .7rem 1rem; background: var(--rt-black, #1c1c1c); color: #fff; border-bottom: 3px solid var(--rt-primary-bright, #229ce0); font-size: 1.15rem; }
.rt-mj-price { margin: 0; font-size: 2.1rem; font-weight: 800; color: var(--rt-primary, #1f3b73); line-height: 1.1; }
.rt-mj-seats, .rt-mj-blurb { margin: 0; }
.rt-mj-seats { font-weight: 700; font-size: .92rem; }
.rt-mj-blurb { font-size: .95rem; color: var(--rt-gray, #555); }
.rt-mj-go { margin: auto 0 0; padding-top: .7rem; }
.rt-mj-fine { font-size: .88rem; color: var(--rt-gray, #555); text-align: center; margin: .4rem 0; }
.rt-mj-error { margin: 0 auto 1rem; max-width: 640px; padding: .8rem 1rem; border-radius: .7rem; background: #fdecea; color: #7a1c14; font-weight: 700; text-align: center; }
.rt-mj--handoff { text-align: center; max-width: 640px; padding: 1.4rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid var(--rt-line, #e2e8f0); }
.rt-mj-sheet { width: min(680px, 100vw); max-width: 100vw; max-height: 92vh; margin: auto; padding: 0; border: 0; border-radius: 1rem; box-shadow: 0 24px 60px rgba(0,0,0,.35); color: var(--rt-ink, #1c1c1c); background: #fff; overflow: hidden; }
.rt-mj-sheet::backdrop { background: rgba(0,0,0,.55); }
.rt-mj-sheet:not([open]):not(:target) { display: none; }
.rt-mj-sheet:target { display: block; position: fixed; inset: 0; z-index: 1000; }
.rt-mj-form { display: flex; flex-direction: column; max-height: 92vh; margin: 0; }
.rt-mj-sheet-head { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .8rem 1rem; background: var(--rt-black, #1c1c1c); color: #fff; border-bottom: 3px solid var(--rt-primary-bright, #229ce0); }
.rt-mj-sheet-head h3 { margin: 0; font-size: 1.15rem; color: #fff; }
.rt-mj-sheet-head h3 span { opacity: .8; font-weight: 400; margin-left: .35rem; }
.rt-mj-close { min-width: 44px; min-height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 1.1rem; cursor: pointer; }
.rt-mj-sheet-body { overflow-y: auto; padding: 1rem 1rem .4rem; }
.rt-mj-member { margin: 0 0 1rem; padding: .8rem .9rem 1rem; border: 1px solid var(--rt-line, #e2e8f0); border-radius: .8rem; min-width: 0; }
.rt-mj-member legend { padding: 0 .4rem; font-weight: 800; }
.rt-mj-member .rt-mj-fine { text-align: left; margin: 0 0 .5rem; }
.rt-mj-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem .8rem; }
.rt-mj-grid label { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .3rem; font-weight: 700; font-size: .88rem; min-width: 0; }
.rt-mj-grid input, .rt-mj-grid select { flex: 0 0 100%; width: 100%; min-height: 46px; padding: .55rem .65rem; border-radius: .55rem; border: 1px solid var(--rt-line, #cbd5e1); font: inherit; font-size: 16px; box-sizing: border-box; background-color: #fff; color: inherit; }
.rt-mj-wide { grid-column: 1 / -1; }
.rt-mj-check { display: flex; align-items: flex-start; gap: .5rem; margin-top: .8rem; font-size: .9rem; }
.rt-mj-check input { margin-top: .2rem; width: 1.1rem; height: 1.1rem; }
.rt-mj-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rt-mj-sheet-foot { display: flex; justify-content: space-between; gap: .8rem; padding: .8rem 1rem calc(.8rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--rt-line, #e2e8f0); background: #fff; }
.rt-mj-sheet-foot .rt-btn { min-width: 0; margin: 0; white-space: nowrap; }
.rt-mj-sheet-foot .rt-btn[type="submit"] { flex: 0 1 auto; padding-left: 1rem; padding-right: 1rem; }
.rt-mj-sheet-foot .rt-mj-back, .rt-mj-sheet-foot .rt-mj-back:hover, .rt-mj-sheet-foot .rt-mj-back:focus { flex: 0 0 auto; background: #fff !important; color: var(--rt-ink, #1c1c1c) !important; border: 1px solid var(--rt-line, #cbd5e1) !important; box-shadow: none !important; padding-left: 1rem; padding-right: 1rem; }
@media (max-width: 600px) {
	.rt-mj-sheet { width: 100vw; margin: auto 0 0; border-radius: 1rem 1rem 0 0; }
	.rt-mj-grid { grid-template-columns: 1fr; }
}
.rt-mj-student { margin-top: .8rem; padding-top: .7rem; border-top: 1px dashed var(--rt-line, #cbd5e1); }
.rt-mj-student[hidden] { display: none; }
.rt-mj-joinpta { margin-top: .9rem; }
.rt-mj-joinpta a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }

/* Sponsor a staff membership: a search box over a list of faces. */
.rt-mj-pick-lead { text-align: center; margin: 0 0 .7rem; }
.rt-mj-pick-search { position: relative; display: block; margin: 0 0 .6rem; }
.rt-mj-pick-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--rt-gray, #6b6b6b); pointer-events: none; }
.rt-mj-pick-search input, .rt-mj-pick-search input[type="search"] { width: 100%; min-height: 46px; padding: .55rem .65rem .55rem 2.4rem !important; text-indent: 0; border-radius: .55rem; border: 1px solid var(--rt-line, #cbd5e1); font: inherit; font-size: 16px; box-sizing: border-box; }
.rt-mj-pick-chosen { margin: 0 0 .5rem; padding: .5rem .8rem; border-radius: .55rem; background: var(--rt-primary, #1f3b73); color: var(--rt-on-primary, #fff); font-weight: 700; text-align: center; }
.rt-mj-pick-list { max-height: 46vh; overflow-y: auto; border: 1px solid var(--rt-line, #e2e8f0); border-radius: .7rem; padding: .2rem .5rem .5rem; }
.rt-mj-pick-group h4 { margin: .7rem 0 .25rem; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-gray, #6b6b6b); }
.rt-mj-pick-group[hidden], .rt-mj-person[hidden] { display: none; }
.rt-mj-person { position: relative; display: flex; align-items: center; gap: .7rem; padding: .45rem .55rem; border-radius: .6rem; cursor: pointer; border: 1px solid transparent; min-height: 56px; }
.rt-mj-person:hover { background: rgba(0,0,0,.04); }
.rt-mj-person input { position: absolute; left: 0; top: 50%; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rt-mj-person img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: 0 0 48px; background: #e9ecef; }
.rt-mj-person-text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; line-height: 1.2; }
.rt-mj-person-text b { font-size: 1rem; }
.rt-mj-person-text small { font-size: .82rem; color: var(--rt-gray, #6b6b6b); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-mj-person > i { color: transparent; font-size: 1.25rem; flex: 0 0 auto; }
.rt-mj-person.is-picked { background: rgba(0,0,0,.05); border-color: var(--rt-primary, #1f3b73); }
.rt-mj-person.is-picked > i { color: var(--rt-primary, #1f3b73); }
.rt-mj-person:focus-within { outline: 2px solid var(--rt-primary-bright, #229ce0); outline-offset: 1px; }
.rt-mj-privacy { text-align: center; }
.rt-mj-privacy a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }

/* The option that is not a person (let the PTA choose). */
.rt-mj-person-icon { width: 48px; height: 48px; border-radius: 50%; flex: 0 0 48px; display: flex; align-items: center; justify-content: center; background: var(--rt-primary, #1f3b73); color: var(--rt-on-primary, #fff); font-size: 1.3rem; }
.rt-mj-person--extra { border-color: var(--rt-line, #e2e8f0); margin: .3rem 0 .5rem; }

/* How a sponsored membership is signed. */
.rt-mj-from { margin-top: .9rem; padding-top: .7rem; border-top: 1px dashed var(--rt-line, #cbd5e1); }
.rt-mj-from-lead { margin: 0 0 .3rem; font-weight: 700; font-size: .92rem; }
.rt-mj-from-opt { margin-top: .4rem; }
.rt-mj-from-opt input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; }

/* ---- Texas PTA emblems (10-7): the real award art where we have it, a plain ring where we do not ---- */
.rt-mb-emblem, .rt-mb-ring { background: none !important; clip-path: none !important; filter: none !important; box-shadow: none !important; }
.rt-mb-emblem img { display: block; width: 100%; height: 100%; object-fit: contain; }
.rt-mb-badge-star.rt-mb-emblem { width: 96px; height: 96px; }
.rt-mb-current-badge.rt-mb-emblem { width: 150px; height: 150px; }
.rt-mb-ring { display: grid; place-content: center; gap: 0; border-radius: 50%; border: 3px solid var(--mb-line); color: var(--mb-gray); line-height: 1; text-align: center; }
.rt-mb-ring b { font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; }
.rt-mb-ring i { font-style: normal; font-family: var(--mb-display); font-size: 1.35rem; font-weight: 800; }
.rt-mb-current-badge.rt-mb-ring { width: 110px; height: 110px; border-width: 4px; border-color: var(--mb-primary); color: var(--mb-primary); }
.rt-mb-current-badge.rt-mb-ring i { font-size: 2rem; }
.rt-mb-badge.is-current .rt-mb-ring { border-color: var(--mb-primary); color: var(--mb-primary); }
.rt-mb-badge.is-earned .rt-mb-ring { border-color: var(--mb-bright); color: var(--mb-bright); }
.rt-mb-badge.is-missed .rt-mb-emblem img { filter: grayscale(1); opacity: .6; }
/* Sponsor several at once (10-8): the count for the PTA to choose, and the running total. */
.rt-mj-pick-more { display: grid; grid-template-columns: auto 1fr; gap: .2rem .7rem; align-items: center; margin: .6rem 0 .3rem; padding: .6rem .8rem; border: 1px solid var(--rt-line, #e2e8f0); border-radius: .6rem; }
.rt-mj-pick-more > .rt-mj-person-icon { grid-row: 1 / 3; }
.rt-mj-pick-more label { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-weight: 700; margin: 0; }
.rt-mj-pick-more small { color: var(--rt-gray, #4a5568); }
.rt-mj-stepper { display: inline-flex; align-items: center; border: 1px solid var(--rt-line, #cbd5e0); border-radius: 999px; overflow: hidden; }
.rt-mj-stepper input { width: 3rem; margin: 0; padding: .25rem 0; border: 0; text-align: center; font: inherit; font-weight: 800; -moz-appearance: textfield; }
.rt-mj-stepper input::-webkit-outer-spin-button, .rt-mj-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rt-mj-step { width: 2.2rem; padding: .25rem 0; border: 0; background: var(--rt-cream, #f2f6fa); font: inherit; font-weight: 800; cursor: pointer; }
.rt-mj-pick-total { margin: .5rem 0 0; text-align: center; font-weight: 800; font-size: 1.05rem; }
.rt-mj-pick-total[hidden] { display: none; }
.rt-mj-pick-lead.is-missing { color: #b3141c; }
