/* The member portal, applicant and public screens inside the club's theme
   (ARCHITECTURE 14.1, 14.5; Admin 1 C2; Member 1 Portal, Member 2
   Applicant, Member 4 Guest and Public).

   The theme's header and footer wrap .gc-portal. Phone first: the white
   bar with the club's initials and the screen's words, a thin red line for
   the join step reached, then the screen on the light surface; from 721px
   the screen's title stands above it in display type and two-column
   screens take the frames' 1fr and 320px. Every rule starts with
   .gc-portal; the colors are the tokens and the club's --club-primary. */

.gc-portal { background: var(--paper); color: var(--text-strong); font: 400 15px/1.5 var(--font-body); }
/* The club's brand, through the tokens alone (Settings, Branding; ARCHITECTURE
   14.5; decision m10_themes 5). The brand ground (tokens.css: navy, the
   strong text and the dark surfaces: the card, the bar's mark, the outlined
   action, 31) is the club's primary; the primary action and the current tab
   are its accent, with the text on it in --club-on-accent and the tab's
   words in --club-accent-ink (a light accent; Phase 10 decision 26).
   Site\Brand prints the club's two colors after this sheet; no template
   knows them. */
.gc-portal { --navy-900: var(--club-primary); --action-primary: var(--club-accent); --action-primary-hover: var(--club-accent-hover); --action-on-primary: var(--club-on-accent); --action-primary-ink: var(--club-accent-ink); }
.gc-portal .gc-noscript { margin: 0; padding: 10px 16px; background: var(--amber-tint); color: var(--gc-amber-text); font: 600 14px/1.4 var(--font-body); }
.gc-portal .gc-testclock { margin: 0; background: var(--red-500); color: var(--white); padding: 8px 16px; font: 700 13px/1.4 var(--font-body); text-align: center; }
.gc-portal .gc-pview { margin: 0; background: var(--gc-info-tint); color: var(--navy-800); padding: 8px 16px; font: 600 13px/1.4 var(--font-body); text-align: center; }

.gc-portal .gc-pbar { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--white); border-bottom: 1px solid var(--line); }
.gc-portal .gc-pbar__mark { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: var(--gc-radius-small); background: var(--club-primary); color: var(--white); font: 700 13px/1 var(--font-display); }
.gc-portal .gc-pbar__words { font: 600 14px/1.2 var(--font-body); color: var(--navy-900); }
/* C2's "Menu" at the bar's right: the More list (Member 1 Portal 24, Admin 1 C2). */
.gc-portal .gc-pbar__menu { margin: -7px 0 -7px auto; display: grid; align-items: center; min-height: 44px; font: 600 14px/1 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-pbar__close { display: none; }
.gc-portal .gc-pprogress { height: 4px; background: var(--line); }
.gc-portal .gc-pprogress__done { display: block; height: 100%; background: var(--red-500); }
.gc-portal .gc-pprogress__done--0 { width: 0; }
.gc-portal .gc-pprogress__done--5 { width: 5%; }
.gc-portal .gc-pprogress__done--10 { width: 10%; }
.gc-portal .gc-pprogress__done--15 { width: 15%; }
.gc-portal .gc-pprogress__done--20 { width: 20%; }
.gc-portal .gc-pprogress__done--25 { width: 25%; }
.gc-portal .gc-pprogress__done--30 { width: 30%; }
.gc-portal .gc-pprogress__done--35 { width: 35%; }
.gc-portal .gc-pprogress__done--40 { width: 40%; }
.gc-portal .gc-pprogress__done--45 { width: 45%; }
.gc-portal .gc-pprogress__done--50 { width: 50%; }
.gc-portal .gc-pprogress__done--55 { width: 55%; }
.gc-portal .gc-pprogress__done--60 { width: 60%; }
.gc-portal .gc-pprogress__done--65 { width: 65%; }
.gc-portal .gc-pprogress__done--70 { width: 70%; }
.gc-portal .gc-pprogress__done--75 { width: 75%; }
.gc-portal .gc-pprogress__done--80 { width: 80%; }
.gc-portal .gc-pprogress__done--85 { width: 85%; }
.gc-portal .gc-pprogress__done--90 { width: 90%; }
.gc-portal .gc-pprogress__done--95 { width: 95%; }
.gc-portal .gc-pprogress__done--100 { width: 100%; }

.gc-portal .gc-pmain { max-width: 1000px; margin: 0 auto; padding: 16px; display: grid; gap: 14px; }
.gc-portal .gc-pmain__title { margin: 0; font: 700 28px/1 var(--font-display); text-transform: uppercase; color: var(--navy-900); }

/* Layout: one column on phones; the frames' 1fr and 320px from 721px. */
.gc-portal .gc-pcols { display: grid; gap: 12px; align-items: start; }
.gc-portal .gc-pcols__main, .gc-portal .gc-pcols__side { display: grid; gap: 12px; min-width: 0; }
.gc-portal .gc-pnarrow { display: grid; gap: 12px; max-width: 560px; width: 100%; }
.gc-portal .gc-pstack { display: grid; gap: 12px; }
.gc-portal .gc-pcenter { justify-self: center; text-align: center; font: 600 14px/1.3 var(--font-body); }
.gc-portal .gc-pcard { display: grid; gap: 10px; padding: 16px; overflow: visible; }
.gc-portal .gc-pcard__title { margin: 0; font: 700 18px/1 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
.gc-portal .gc-pcard__title--big { font-size: 26px; line-height: 1.05; }
.gc-portal .gc-plead { margin: 0; font: 400 14.5px/1.5 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-ptext { margin: 0; font: 400 14.5px/1.55 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-ptext--muted { font-weight: 600; font-size: 12.5px; color: var(--slate-600); border-top: 1px solid var(--line); padding-top: 8px; }
.gc-portal .gc-pmeta { margin: 0; font: 500 12px/1.4 var(--font-mono); letter-spacing: .1em; color: var(--slate-500); text-transform: uppercase; }
.gc-portal .gc-pnote { margin: 0; border-radius: var(--gc-radius); padding: 10px 12px; font: 600 14px/1.4 var(--font-body); }
.gc-portal .gc-pnote--good { background: var(--gc-green-tint); color: var(--gc-green-ink); }
.gc-portal .gc-pnote--wait { background: var(--amber-tint); color: var(--gc-banner-wait-ink); }
.gc-portal .gc-pmsg { margin: 0; font: 400 14.5px/1.5 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-pmsg--w { background: var(--amber-tint); color: var(--gc-amber-text); border-radius: var(--gc-radius); padding: 10px 12px; font-weight: 600; }
.gc-portal .gc-pmsg--g { background: var(--gc-green-tint); color: var(--gc-green-ink); border-radius: var(--gc-radius); padding: 10px 12px; font-weight: 600; }
.gc-portal .gc-pmsg--b { background: var(--red-tint); color: var(--gc-red-text); border-radius: var(--gc-radius); padding: 10px 12px; }
.gc-portal .gc-pmsg--i { background: var(--gc-info-tint); color: var(--gc-banner-info-ink); border-radius: var(--gc-radius); padding: 10px 12px; font-weight: 600; }
.gc-portal .gc-btn--block { display: flex; width: 100%; }
.gc-portal .gc-btn--lg { min-height: 50px; font-size: 15.5px; }
.gc-portal .gc-caption { margin: 0; font: 400 12.5px/1.45 var(--font-body); color: var(--slate-600); }

/* Public forms: the honeypot is off screen and out of the tab order. */
.gc-portal .gc-pform { display: grid; gap: 10px; }
.gc-portal .gc-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.gc-portal .gc-pform__done { margin: 0; font: 600 14px/1.45 var(--font-body); color: var(--gc-green-ink); background: var(--gc-green-tint); border-radius: var(--gc-radius); padding: 10px 12px; }

/* 47 Join landing. */
.gc-portal .gc-join { display: grid; gap: 14px; }
.gc-portal .gc-join__lead { margin: 0; font: 400 15px/1.55 var(--font-body); color: var(--slate-700); max-width: 62ch; }
.gc-portal .gc-join__hero:empty { display: none; }
.gc-portal .gc-join__level { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 0; border-top: 1px solid var(--gc-row-rule); }
.gc-portal .gc-join__level:first-child { border-top: 0; padding-top: 0; }
.gc-portal .gc-join__levelname { font: 600 15px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-join__price { font: 700 15px/1.3 var(--font-mono); color: var(--navy-900); }
.gc-portal .gc-join__who { grid-column: 1 / -1; font: 400 13px/1.4 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-join__note { margin: 0; font: 400 13.5px/1.5 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-join__seq { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.gc-portal .gc-join__seqstep { display: grid; grid-template-columns: 28px 1fr; gap: 10px; }
.gc-portal .gc-join__seqn { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--club-primary); color: var(--white); font: 700 12px/1 var(--font-body); }
.gc-portal .gc-join__seqwords { display: grid; gap: 2px; }
.gc-portal .gc-join__seqlabel { font: 600 14.5px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-join__seqtext { font: 400 13px/1.4 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-join__picked { grid-template-columns: 1fr auto; gap: 4px 12px; }
.gc-portal .gc-join__change { grid-column: 1 / -1; font: 600 13px/1 var(--font-body); }

/* The first order's add-ons. */
.gc-portal .gc-addons__row { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; padding-top: 10px; border-top: 1px solid var(--gc-row-rule); }
.gc-portal .gc-addons__row:first-of-type { border-top: 0; padding-top: 0; }
.gc-portal .gc-addons__name { font: 600 14.5px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-addons__sub { grid-column: 1 / -1; font: 400 12.5px/1.5 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-addons__inline { font: inherit; color: inherit; }
.gc-portal .gc-addons__select { height: 36px; padding: 0 8px; border: 1px solid var(--line-strong); border-radius: var(--gc-radius-small); background: var(--white); color: var(--navy-900); font: 600 13px/1 var(--font-body); }
.gc-portal .gc-addons__select--quiet { height: 28px; border-color: transparent; padding: 0 4px; font-weight: 700; }
.gc-portal .gc-addons__money { width: 120px; height: 36px; }

/* Sign, sponsors, interview. */
.gc-portal .gc-psign__text { max-height: 220px; overflow: auto; padding: 12px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--paper); font: 400 14px/1.55 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-sponsor { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: var(--gc-radius); background: var(--white); font: 400 16px/1.2 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-sponsor--found { border-color: var(--green-600); }
.gc-portal .gc-sponsor__mark { font: 700 12px/1 var(--font-body); color: var(--gc-green-ink); }
.gc-portal .gc-sponsor__list { display: grid; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); overflow: hidden; }
.gc-portal .gc-sponsor__option { display: block; width: 100%; padding: 12px; border: 0; border-top: 1px solid var(--gc-row-rule); text-align: left; font: 600 15px/1.3 var(--font-body); cursor: pointer; }
.gc-portal .gc-sponsor__option, #gc-portal .gc-sponsor__option { background: var(--white); color: var(--navy-900); }
.gc-portal .gc-sponsor__option:first-child { border-top: 0; }
.gc-portal .gc-sponsor__option:hover, .gc-portal .gc-sponsor__option:focus-visible, #gc-portal .gc-sponsor__option:hover, #gc-portal .gc-sponsor__option:focus-visible { background: var(--paper); }
.gc-portal .gc-sponsor__option--off { font-weight: 400; font-size: 14px; cursor: default; }
.gc-portal .gc-sponsor__option--off, #gc-portal .gc-sponsor__option--off { color: var(--slate-400); }
.gc-portal .gc-sponsor__since { font: 400 12.5px/1.3 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-sponsor__option--off .gc-sponsor__since { font-style: italic; color: var(--slate-400); }
.gc-portal .gc-slots { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
.gc-portal .gc-slotpick { position: relative; display: flex; align-items: center; min-height: 52px; padding: 0 14px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); cursor: pointer; }
.gc-portal .gc-slotpick:has(.gc-slotpick__input:checked) { border: 2px solid var(--red-500); }
.gc-portal .gc-slotpick__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gc-portal .gc-slotpick:has(.gc-slotpick__input:focus-visible) { outline: var(--gc-focus); outline-offset: var(--gc-focus-offset); }
.gc-portal .gc-slotpick__words { font: 600 15px/1.3 var(--font-body); color: var(--navy-900); }

/* 37 Waiting list. */
.gc-portal .gc-offer { display: grid; gap: 10px; padding: 16px; border-radius: 14px; color: var(--white); }
.gc-portal .gc-offer__title { font: 700 26px/1.05 var(--font-display); text-transform: uppercase; }
.gc-portal .gc-offer__text { font: 400 14.5px/1.5 var(--font-body); color: var(--on-dark-2); }
.gc-portal .gc-offer__text b { color: var(--white); }
.gc-portal .gc-offer__clock { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; text-align: center; }
.gc-portal .gc-offer__unit { display: grid; gap: 2px; padding: 10px 0; border-radius: var(--gc-radius); background: var(--navy-800); }
.gc-portal .gc-offer__unit b { font: 700 28px/1 var(--font-display); }
.gc-portal .gc-offer__unit span { font: 600 11px/1 var(--font-body); color: var(--on-dark-3); }
.gc-portal .gc-place { justify-items: start; gap: 4px; border-radius: 14px; }
.gc-portal .gc-place.is-paused { background: var(--surface-muted); }
.gc-portal .gc-place__label { font: 600 13px/1.3 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-place__n { font: 700 64px/1 var(--font-display); color: var(--navy-900); }
.gc-portal .gc-place__sub { font: 400 13.5px/1.4 var(--font-body); color: var(--slate-600); }
/* 37 on a computer: the place number beside one sentence in one card (Member 2 Applicant, 37, desktop); the phone's card and sentence on a phone. */
.gc-portal .gc-wl-wide { display: none; }
@media (min-width: 721px) {
	.gc-portal .gc-wl-phone { display: none; }
	.gc-portal .gc-wl-wide { display: flex; gap: 18px; align-items: center; padding: 16px; border-radius: var(--gc-radius); }
	.gc-portal .gc-wl-wide__n { font: 700 72px/1 var(--font-display); color: var(--navy-900); }
	.gc-portal .gc-wl-wide__text { font: 400 15px/1.5 var(--font-body); color: var(--slate-700); }
}

/* 32 Sponsor. */
.gc-portal .gc-sponsorask { border: 2px solid var(--red-500); }
.gc-portal .gc-sponsorask__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.gc-portal .gc-prow { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 10px 0; border-top: 1px solid var(--gc-row-rule); }
.gc-portal .gc-prow__name { font: 600 15px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-prow__state { font: 700 11.5px/1.3 var(--font-body); color: var(--gc-amber-ink); }
.gc-portal .gc-prow__sub { grid-column: 1 / -1; font: 400 13px/1.4 var(--font-body); color: var(--slate-600); }

/* 31 Bring a guest (Member 1 frame 31): the member's rotating QR on navy, the counts under it. */
.gc-portal .gc-bring { display: grid; gap: 14px; align-content: start; justify-items: center; width: 100%; max-width: 560px; padding: 18px; border-radius: 14px; background: var(--navy-900); color: var(--white); text-align: center; }
.gc-portal .gc-bring__title { margin: 0; font: 700 26px/1.05 var(--font-display); text-transform: uppercase; color: var(--white); }
.gc-portal .gc-bring__qr { width: 220px; height: 220px; padding: 12px; border-radius: 14px; background: var(--white); }
.gc-portal .gc-bring__text { margin: 0; font: 400 14.5px/1.5 var(--font-body); color: var(--on-dark-2); }
.gc-portal .gc-bring__counts { width: 100%; display: grid; gap: 6px; padding: 12px; border-radius: 12px; background: var(--navy-800); text-align: left; }
.gc-portal .gc-bring__row { display: flex; justify-content: space-between; font: 600 14px var(--font-body); }
.gc-portal .gc-bring__num { font: 500 13px var(--font-mono); }
.gc-portal .gc-bring__last { font: 400 12.5px var(--font-body); color: var(--on-dark-3); }
.gc-portal .gc-bring__refresh { font: 500 11px var(--font-mono); letter-spacing: .1em; color: var(--on-dark-6); }

/* 30 Waivers (Member 1 frame 30) and Coming back (Admin 11 frame 4): one column for the welcome, in display type. */
.gc-portal .gc-pcols--single { grid-template-columns: minmax(0, 560px); }
.gc-portal .gc-rejoin__title { margin: 0; font: 700 22px/1.05 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
.gc-portal .gc-rejoin__intro { margin: 0; }
.gc-portal .gc-rejoin .gc-caption { margin: 0; }

@media (max-width: 720px) {
	/* The lead line counts what needs signing; each card's banner says it again, so it is hidden. */
	.gc-portal .gc-signcard .gc-pnote--wait { display: none; }
	/* 24's "You're registered": the phone frame's "Thursday 6 PM · Trap field", the date being on the badge. */
	.gc-portal .gc-home__regwhen--wide { display: none; }
}

@media (min-width: 721px) {
	.gc-portal .gc-pbar, .gc-portal .gc-pprogress { display: none; }
	.gc-portal .gc-pmain { padding: 26px 28px 48px; gap: 16px; }
	.gc-portal .gc-pmain__title { font-size: 34px; }
	.gc-portal .gc-pcols { grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; }
	.gc-portal .gc-pnote--phone { display: none; }
	.gc-portal .gc-home__regwhen--phone { display: none; }
	.gc-portal .gc-join__lead { font-size: 17px; }
}

/* The phone's bottom tabs (C2): fixed to the bottom while a signed-in screen is up; the main area leaves room for them. */
.gc-portal .gc-ptabs { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; }
.gc-portal--tabs .gc-pmain { padding-bottom: 92px; }
.gc-portal .gc-tabbar__tab.is-off { color: var(--slate-300); }
.gc-portal .gc-tabbar__tab.is-off:hover { color: var(--slate-400); }

/* 24 Home (Member 1 frame 24): the card, the sentence, two actions, the boxes, the slot. */
.gc-portal .gc-home { display: grid; gap: 12px; }
.gc-portal .gc-home__card { display: grid; justify-items: center; }
.gc-portal .gc-home__card .gc-mcard { max-width: none; }
.gc-portal .gc-home__card .gc-mcard.is-dim { opacity: .82; }
.gc-portal .gc-mcard__club .gc-chip { margin-left: auto; }
.gc-portal img.gc-mcard__photo { object-fit: cover; }
.gc-portal .gc-mcard__wallet { font: 500 11.5px/1 var(--font-mono); color: var(--on-dark-2); opacity: .7; }
.gc-portal .gc-mcard__noqr { min-height: 112px; display: grid; place-items: center; padding: 0 16px; border: 1.5px dashed var(--on-dark-line); border-radius: var(--gc-radius); text-align: center; font: 500 12.5px/1.4 var(--font-body); color: var(--on-dark-2); }
.gc-portal .gc-home__main { display: grid; gap: 12px; align-content: start; }
.gc-portal .gc-home__sentence { font-size: 16px; }
.gc-portal .gc-home__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gc-portal .gc-home__actions .gc-btn { display: grid; place-items: center; text-align: center; padding: 0 6px; }
.gc-portal .gc-home__boxes { display: grid; gap: 12px; }
.gc-portal .gc-home__box { display: grid; padding: 0; overflow: hidden; }
/* The boxes' headings, and a heading that stands above a card or a form's fields (Admin 18: 24r "Club officers", 27r "Your details"; decisions p9_frames 3 and 4). */
.gc-portal .gc-home__eyebrow, .gc-portal .gc-phead { font: 600 11.5px/1.2 var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--slate-600); }
.gc-portal .gc-home__eyebrow { padding: 10px 12px; }
.gc-portal .gc-phead { margin: 0; padding-top: 6px; }
.gc-portal .gc-home__reg { display: grid; grid-template-columns: 52px 1fr; gap: 10px; align-items: center; padding: 10px 12px; border-top: 1px solid var(--line-soft); color: var(--navy-900); text-decoration: none; }
.gc-portal .gc-home__reg:hover { background: var(--paper); text-decoration: none; }
.gc-portal .gc-home__date { display: grid; justify-items: center; font: 700 12px/1.1 var(--font-body); text-transform: uppercase; color: var(--red-500); }
.gc-portal .gc-home__date b { font: 700 22px/1 var(--font-display); color: var(--navy-900); }
.gc-portal .gc-home__regwords { display: grid; gap: 2px; }
.gc-portal .gc-home__regtitle { font: 600 14px/1.3 var(--font-body); }
.gc-portal .gc-home__regwhen { font: 400 12.5px/1.3 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-home__notices { padding: 12px; gap: 4px; }
.gc-portal .gc-home__notices .gc-home__eyebrow { padding: 0; }
.gc-portal .gc-home__notice { margin: 0; font: 400 14px/1.45 var(--font-body); color: var(--slate-700); }
/* 24r Club officers (Admin 18, frame 24r): the heading above the card, then each role over its holders, "Email" beside them when shown. */
.gc-portal .gc-home__officersbox { display: grid; gap: 10px; }
.gc-portal .gc-home__officers { padding: 12px; gap: 0; }
.gc-portal .gc-home__officer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line-soft); }
.gc-portal .gc-home__officer:first-child { border-top: 0; }
.gc-portal .gc-home__officerwho { display: grid; gap: 1px; min-width: 0; }
.gc-portal .gc-home__officerrole { font: 600 11.5px/1.2 var(--font-body); letter-spacing: .05em; text-transform: uppercase; color: var(--slate-600); }
.gc-portal .gc-home__officername { font: 600 14px/1.3 var(--font-body); color: var(--navy-900); overflow-wrap: anywhere; }
.gc-portal .gc-home__officermail { font-size: 13px; }
.gc-portal .gc-home__main .gc-slot--pill { display: flex; justify-content: space-between; height: 44px; }

/* 27r The officer's own line (Admin 18, frame 27r). */
.gc-portal .gc-myprofile__you { display: grid; gap: 2px; margin-bottom: 12px; font-size: 13.5px; line-height: 1.4; }
.gc-portal .gc-myprofile__youline { margin: 0; }
.gc-portal .gc-myprofile__email { display: grid; gap: 8px; align-content: start; }

/* 26 My group (Member 1 frame 26). */
.gc-portal .gc-group__intro { color: var(--slate-700); }
.gc-portal .gc-group__row { grid-template-columns: 1fr auto; align-items: center; }
.gc-portal .gc-group__row:first-of-type { border-top: 0; padding-top: 0; }
.gc-portal .gc-group__role { font: 600 13px/1.3 var(--font-body); }
.gc-portal .gc-group__role, #gc-portal .gc-group__role { color: var(--slate-600); }
.gc-portal .gc-group__note { color: var(--gc-amber-ink); }
.gc-portal .gc-group__rules { color: var(--slate-600); }

/* 27 Profile (Member 1 frame 27). */
.gc-portal .gc-myprofile__form { gap: 12px; }
.gc-portal .gc-myprofile__photo { display: flex; align-items: center; gap: 12px; }
.gc-portal .gc-myprofile__pic { width: 64px; height: 78px; flex: none; border-radius: 8px; object-fit: cover; background: repeating-linear-gradient(135deg, var(--navy-800) 0 6px, var(--gc-card-photo) 6px 12px); }
.gc-portal .gc-myprofile__take { position: relative; overflow: hidden; cursor: pointer; }
.gc-portal .gc-myprofile__file { position: absolute; inset: 0; opacity: 0; width: 100%; cursor: pointer; }
.gc-portal .gc-myprofile__fields { display: grid; gap: 12px; }
/* A field beside the email and its "Show my email to members" (27r) keeps its input under its label. */
.gc-portal .gc-myprofile__fields > .gc-field { align-content: start; }
.gc-portal .gc-myprofile__fields > .gc-phead { grid-column: 1 / -1; }
.gc-portal .gc-myprofile__actions { align-items: center; }
.gc-portal .gc-myprofile__row { align-items: center; color: inherit; text-decoration: none; }
.gc-portal .gc-myprofile__row:hover { text-decoration: none; }
.gc-portal .gc-myprofile__change { font: 600 13px/1.3 var(--font-body); color: var(--text-link); }
/* 13.7: the signed-in devices and Sign out everywhere (decision p10_officers 6). */
.gc-portal .gc-myprofile__devices { display: grid; gap: 8px; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line-soft); }
.gc-portal .gc-myprofile__devhead { margin: 0; font: 600 14px/1.3 var(--font-body); color: var(--text-strong); }
.gc-portal .gc-myprofile__devlist { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.gc-portal .gc-myprofile__devlist li { display: flex; flex-wrap: wrap; gap: 2px 10px; font: 400 13px/1.4 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-myprofile__devlist b { font-weight: 600; color: var(--text-strong); }
.gc-portal .gc-myprofile__signout { display: grid; gap: 8px; justify-items: start; margin: 0; }
.gc-portal .gc-myprofile__signout .gc-ptext { margin: 0; }
.gc-portal .gc-myprofile__later { display: flex; flex-wrap: wrap; gap: 8px; }

/* The calendar feed panel (M6's people.calendar-feed fragment on 27 and 29; decision m6_public 3 moves it here with 27). */
.gc-portal .gc-feed { display: grid; gap: 10px; }
.gc-portal .gc-feed .gc-caption { margin: 0; }
.gc-portal .gc-feed__new { display: grid; gap: 8px; justify-items: start; }

/* 28 Orders and receipts (Member 1 frame 28). */
.gc-portal .gc-orders__card { gap: 0; padding: 0; overflow: hidden; }
.gc-portal .gc-orders__head { display: none; }
.gc-portal .gc-orders__row { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; align-items: center; padding: 12px 14px; border-top: 1px solid var(--gc-row-rule); color: var(--navy-900); text-decoration: none; }
.gc-portal .gc-orders__row:first-of-type { border-top: 0; }
.gc-portal .gc-orders__row:hover { background: var(--paper); text-decoration: none; }
.gc-portal .gc-orders__row.is-current { background: var(--gc-row-selected); }
.gc-portal .gc-orders__date { display: none; }
.gc-portal .gc-orders__what { font: 600 15px/1.3 var(--font-body); }
.gc-portal .gc-orders__amount { font: 500 14px/1.3 var(--font-mono); text-align: right; }
.gc-portal .gc-orders__sub { font: 400 13px/1.4 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-orders__state { justify-self: end; }
.gc-portal .gc-orders__note { padding: 0 2px; }
.gc-portal .gc-receipt { gap: 8px; }
.gc-portal .gc-receipt__back { justify-self: start; font: 600 13px/1.3 var(--font-body); }
.gc-portal .gc-receipt__lines { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font: 400 14px/1.4 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-receipt__amount { font-family: var(--font-mono); text-align: right; }
.gc-portal .gc-receipt__total { padding-top: 6px; border-top: 1px solid var(--gc-row-rule); font-weight: 700; color: var(--navy-900); }
.gc-portal .gc-receipt__paid { margin: 0; font: 400 14px/1.45 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-receipt__paid b { color: var(--navy-900); }
.gc-portal .gc-receipt .gc-actions { align-items: center; justify-content: space-between; }
.gc-portal .gc-orders--receipt .gc-orders__list { display: none; }

/* The More tab (C2). */
.gc-portal .gc-more__list { gap: 0; padding: 0 14px; }
.gc-portal .gc-more__link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; border-top: 1px solid var(--gc-row-rule); color: var(--navy-900); font: 600 15px/1.3 var(--font-body); text-decoration: none; }
.gc-portal .gc-more__link:first-child { border-top: 0; }
.gc-portal .gc-more__link svg { transform: rotate(-90deg); color: var(--slate-400); }

/* 31 on a computer: the guest history and allowance in place of the QR (Member 1, the 31 note). */
.gc-portal .gc-bring__history { display: none; }

@media (min-width: 721px) {
	.gc-portal .gc-ptabs { display: none; }
	.gc-portal--tabs .gc-pmain { padding-bottom: 48px; }
	/* 24 on a desktop: the card in a 340px column, "Hello, Dale" and the rest beside it. */
	.gc-portal .gc-pmain:has(> .gc-home) { grid-template-columns: 340px minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 16px 24px; align-items: start; }
	.gc-portal .gc-pmain:has(> .gc-home) > .gc-pmain__title { grid-column: 2; grid-row: 1; }
	.gc-portal .gc-home { display: contents; }
	.gc-portal .gc-home__card { grid-column: 1; grid-row: 1 / span 2; }
	.gc-portal .gc-home__main { grid-column: 2; grid-row: 2; }
	.gc-portal .gc-home__actions { grid-template-columns: repeat(2, max-content); }
	.gc-portal .gc-home__actions .gc-btn { min-height: 46px; padding: 0 20px; }
	.gc-portal .gc-home__boxes { grid-template-columns: 1fr 1fr; gap: 14px; }
	.gc-portal .gc-orders__head { display: grid; grid-template-columns: 64px 1fr 110px 110px; gap: 12px; padding: 10px 14px; background: var(--paper); color: var(--slate-600); font: 700 11.5px/1.2 var(--font-body); letter-spacing: .06em; text-transform: uppercase; }
	.gc-portal .gc-orders__row { grid-template-columns: 64px 1fr 110px 110px; gap: 2px 12px; }
	.gc-portal .gc-orders__date { display: block; font: 700 12px/1.2 var(--font-mono); color: var(--slate-600); }
	.gc-portal .gc-orders__sub { grid-column: 2; }
	.gc-portal .gc-orders__state { grid-column: 4; grid-row: 1; justify-self: start; }
	.gc-portal .gc-orders__amount { grid-column: 3; grid-row: 1; text-align: left; }
	.gc-portal .gc-orders__what { grid-column: 2; grid-row: 1; }
	.gc-portal .gc-orders--receipt .gc-orders__list { display: grid; }
	.gc-portal .gc-receipt__back { display: none; }
	.gc-portal .gc-bring { display: none; }
	.gc-portal .gc-bring__history { display: grid; }
	.gc-portal .gc-myprofile__fields { grid-template-columns: 1fr 1fr; }
	.gc-portal .gc-myprofile__fields .gc-field--wide { grid-column: 1 / -1; }
}

/* 25 Pay and renew (Member 1 Portal, 25): phone first, one column in the
   frame's order; from 900px the desktop renewal's main column and its
   400px summary beside it. The pay-link version is one centered card. */
.gc-portal .gc-pay { display: grid; gap: 12px; align-items: start; }
.gc-portal .gc-pay__main, .gc-portal .gc-pay__side { display: grid; gap: 12px; min-width: 0; align-content: start; }
.gc-portal .gc-pay__intro { margin: 0; font: 400 15px/1.5 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-pay__note { display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--gc-radius); }
.gc-portal .gc-pay__note--good { background: var(--gc-green-tint); color: var(--gc-green-ink); }
.gc-portal .gc-pay__note--bad { background: var(--red-tint); color: var(--gc-red-text); }
.gc-portal .gc-pay__note--wait { background: var(--amber-tint); color: var(--gc-banner-wait-ink); }
.gc-portal .gc-pay__note--info { background: var(--gc-info-tint); color: var(--navy-800); }
.gc-portal .gc-pay__notetitle { font: 700 14px/1.35 var(--font-body); }
.gc-portal .gc-pay__notetext { font: 400 13.5px/1.45 var(--font-body); }
.gc-portal .gc-pay__lines { display: grid; grid-template-columns: 1fr auto; gap: 6px; padding: 12px; font: 400 14px/1.4 var(--font-body); }
.gc-portal .gc-pay__what { color: var(--navy-900); }
.gc-portal .gc-pay__what--muted { color: var(--slate-600); }
.gc-portal .gc-pay__amt { font: 500 14px/1.4 var(--font-mono); text-align: right; color: var(--navy-900); }
.gc-portal .gc-pay__amt--muted { color: var(--slate-600); }
.gc-portal .gc-pay__total { font-weight: 700; border-top: 1px solid var(--line); padding-top: 6px; }
.gc-portal .gc-pay__when { font: 500 12px/1.4 var(--font-mono); color: var(--slate-600); text-align: right; }
.gc-portal .gc-pay__for { display: grid; gap: 6px; padding: 10px 12px; }
.gc-portal .gc-pay__forlabel { font: 600 13px/1.3 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-pay__seg { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; max-width: 360px; }
.gc-portal .gc-pay__segbtn { display: grid; place-items: center; min-height: 44px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--gc-radius); color: var(--slate-700); font: 700 13.5px/1.2 var(--font-body); text-align: center; text-decoration: none; }
.gc-portal .gc-pay__segbtn.is-on { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
.gc-portal .gc-pay__segbtn:focus-visible, .gc-portal .gc-pay__forpick:focus-visible { outline: var(--gc-focus); outline-offset: var(--gc-focus-offset); }
.gc-portal .gc-pay__forlist { display: grid; gap: 6px; }
.gc-portal .gc-pay__forpick { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: var(--gc-radius); color: var(--navy-900); font: 400 15px/1.3 var(--font-body); text-decoration: none; }
.gc-portal .gc-pay__forpick.is-on { border-color: var(--navy-900); font-weight: 600; }
.gc-portal .gc-pay__addons { gap: 12px; }
.gc-portal .gc-pay__form { display: grid; gap: 12px; }
.gc-portal .gc-pay__nrapicks { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.gc-portal .gc-pay__nrapicks .gc-addons__select { height: 40px; width: 100%; }
.gc-portal .gc-pay__nra:has([data-gc-addons-on]:not(:checked)) .gc-pay__nrapicks { display: none; }
.gc-portal .gc-pay__give { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: flex-end; }
.gc-portal .gc-pay__fund { font: 600 14px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-pay__auto { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; padding-top: 12px; border-top: 1px solid var(--gc-row-rule); }
.gc-portal .gc-pay__autocard { padding: 10px 12px; }
.gc-portal .gc-pay__autocard .gc-pay__auto { padding-top: 0; border-top: 0; }
.gc-portal .gc-pay__autoname { font: 600 14.5px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-pay__autoline { grid-column: 1 / -1; font: 400 12.5px/1.45 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-pay__with { gap: 12px; }
.gc-portal .gc-pay__saved { display: grid; gap: 6px; padding: 10px 12px; }
.gc-portal .gc-pay__savedline { font: 600 14px/1.35 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-pay__sumtitle { display: none; }
.gc-portal .gc-pay__receipt { gap: 12px; padding: 18px 16px; }
.gc-portal .gc-pay__check { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--green-600); color: var(--white); font: 700 24px/1 var(--font-body); }

/* S4 The unsubscribe page (Phase 12's frame S4): the title stands in the page (under the done check), so the shell's is hidden; on a phone one column with full-width buttons, on a wider screen the line and the button in a white card under the title. */
.gc-portal.gc-portal--s-unsubscribe .gc-pmain__title { display: none; }
.gc-portal .gc-unsub { display: grid; gap: 10px; align-content: start; }
.gc-portal .gc-unsub__done { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--green-600); color: var(--white); font: 700 26px/1 var(--font-body); }
.gc-portal .gc-unsub__title { margin: 0; font: 700 22px/1.05 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
.gc-portal .gc-unsub__card { display: grid; gap: 10px; }
.gc-portal .gc-unsub__text { margin: 0; font: 400 14.5px/1.5 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-unsub__quiet { margin: 0; font: 400 13px/1.45 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-unsub__form { display: grid; margin: 0; }
.gc-portal .gc-unsub__btn { width: 100%; min-height: 50px; font: 700 15px/1 var(--font-body); }
.gc-portal .gc-unsub__btn--again { min-height: 48px; }
/* S4's phone bar is 44's: the club's color, its mark in a white box and its name in display type (a phone shows it; a wider screen has the site's own header). */
.gc-portal.gc-portal--s-unsubscribe .gc-pbar { padding: 14px; background: var(--club-primary); border-bottom: 0; }
.gc-portal.gc-portal--s-unsubscribe .gc-pbar__mark { background: var(--white); color: var(--club-primary); }
.gc-portal.gc-portal--s-unsubscribe .gc-pbar__words { font: 700 17px/1 var(--font-display); text-transform: uppercase; color: var(--white); }
@media (min-width: 721px) {
	/* S4 on a wider screen (frame S4, desktop): the title at 34px over a white card of 560px. */
	.gc-portal .gc-unsub { gap: 16px; }
	.gc-portal .gc-unsub__title { font-size: 34px; line-height: 1; }
	.gc-portal .gc-unsub__card { max-width: 560px; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); }
	.gc-portal .gc-unsub__text { font-size: 15.5px; line-height: 1.55; }
	.gc-portal .gc-unsub__form { justify-items: start; }
	.gc-portal .gc-unsub__btn { width: auto; min-height: 52px; padding: 0 24px; font-size: 15.5px; }
	.gc-portal .gc-unsub__btn--again { min-height: 44px; padding: 0 18px; }
}
.gc-portal .gc-pay__big { margin: 0; font: 700 28px/1.05 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
.gc-portal .gc-pay__thanks { margin: 0; font: 400 15px/1.5 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-paylink { display: grid; justify-items: center; }
.gc-portal .gc-paylink__card { width: 100%; max-width: 560px; gap: 14px; padding: 18px 16px; }
.gc-portal .gc-paylink__eyebrow { font: 600 13px/1.3 var(--font-body); color: var(--slate-700); }
.gc-portal .gc-paylink__title { margin: 0; font: 700 28px/1.05 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
.gc-portal .gc-paylink__caption { font-size: 13px; line-height: 1.5; }

@media (max-width: 899px) {
	/* The phone frame: the summary (lines, total and Pay) comes before the add-ons. */
	.gc-portal .gc-pay--renew { display: flex; flex-direction: column; }
	.gc-portal .gc-pay--renew .gc-pay__main { display: contents; }
	.gc-portal .gc-pay--renew .gc-pay__intro, .gc-portal .gc-pay--renew .gc-pay__for { order: 0; }
	.gc-portal .gc-pay--renew .gc-pay__side { order: 1; }
	.gc-portal .gc-pay--renew .gc-pay__addons, .gc-portal .gc-pay--renew .gc-pay__with { order: 2; }
}

@media (min-width: 900px) {
	.gc-portal .gc-pay--renew { grid-template-columns: minmax(0, 1fr) 400px; gap: 28px; }
	.gc-portal .gc-pay__side { position: sticky; top: 16px; }
	.gc-portal .gc-pay__sumtitle { display: block; }
	.gc-portal .gc-pay__intro { font-size: 16px; }
	.gc-portal .gc-paylink__card { padding: 24px; }
	.gc-portal .gc-paylink__title { font-size: 32px; }
}

/* A required outside membership on the join pay step and 25 (Admin Affiliations, frame 5). */
.gc-portal .gc-reqaff { gap: 12px; }
.gc-portal .gc-reqaff__choice { display: grid; gap: 4px; padding: 12px 14px; border: 2px solid var(--line-strong); border-radius: var(--gc-radius); }
.gc-portal .gc-reqaff__choice:has(form, .gc-reqaff__signin) { border-color: var(--red-500); }
.gc-portal .gc-reqaff__title { font: 700 15px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-reqaff__sub { font: 400 13px/1.45 var(--font-body); color: var(--slate-600); }
.gc-portal .gc-reqaff__form { display: grid; gap: 10px; padding-top: 8px; }
.gc-portal .gc-reqaff__form .gc-btn { justify-self: start; }
.gc-portal .gc-reqaff__signin { justify-self: start; margin-top: 8px; }
.gc-portal .gc-paylink > .gc-reqaff { width: 100%; max-width: 560px; margin-bottom: 14px; }
.gc-portal .gc-paystep__held { margin: 0; padding: 10px 12px; border-radius: var(--gc-radius); background: var(--amber-tint); color: var(--gc-banner-wait-ink); font: 600 13.5px/1.45 var(--font-body); }

/* Outside memberships (Member 1 Portal 27; FLOW 10 step 3). */
.gc-portal .gc-outside__org { border-top: 1px solid var(--line-soft); padding-top: 10px; }
.gc-portal .gc-outside__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; cursor: pointer; list-style: none; }
.gc-portal .gc-outside__row::-webkit-details-marker { display: none; }
.gc-portal .gc-outside__name { font: 600 14px/1.3 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-outside__row .gc-link { grid-row: 1 / span 2; grid-column: 2; align-self: center; }
.gc-portal .gc-outside__line { font: 400 13px/1.4 var(--font-mono); color: var(--slate-600); }
.gc-portal .gc-outside__line--bad { color: var(--gc-error); }
.gc-portal .gc-outside__line--wait { color: var(--amber-ink); }
.gc-portal .gc-outside__form { display: grid; gap: 10px; padding-top: 10px; }

/* ---------- The member frames, matched (decision m10_frames) ---------- */

/* 24 Home's card (Member 1 Portal 24): the frame's smaller card, the QR in a 112px white band, no shadow. */
.gc-portal .gc-mcard--home { gap: 10px; padding: 16px; border-radius: 16px; box-shadow: none; }
.gc-portal .gc-mcard--home .gc-mcard__mark { width: 30px; height: 30px; border-radius: 8px; font-size: 13px; }
.gc-portal .gc-mcard--home .gc-mcard__clubname { font-size: 14px; line-height: 1; }
.gc-portal .gc-mcard--home .gc-mcard__eyebrow { display: none; font: 700 14px/1 var(--font-display); text-transform: uppercase; }
.gc-portal .gc-mcard--home .gc-mcard__who { grid-template-columns: 52px 1fr; gap: 12px; }
.gc-portal .gc-mcard--home .gc-mcard__photo { width: 52px; height: 62px; }
.gc-portal .gc-mcard--home .gc-mcard__names { gap: 4px; }
.gc-portal .gc-mcard--home .gc-mcard__name { font-size: 22px; }
.gc-portal .gc-mcard--home .gc-mcard__line { font: 400 12.5px/1.35 var(--font-body); }
.gc-portal .gc-mcard--home .gc-mcard__qrbox { min-height: 112px; align-content: center; gap: 4px; padding: 8px; border-radius: 10px; }
.gc-portal .gc-mcard--home .gc-mcard__qr { width: 84px; height: 84px; }
.gc-portal .gc-mcard--home .gc-mcard__refresh { font-size: 9.5px; }
.gc-portal .gc-mcard--home .gc-mcard__noqr { border-radius: 10px; font: 500 12.5px/1.4 var(--font-body); }
.gc-portal .gc-mcard--home .gc-mcard__foot { gap: 12px; padding-top: 0; border-top: 0; }
.gc-portal .gc-mcard--home .gc-mcard__cardno { font: 500 11.5px/1.3 var(--font-mono); letter-spacing: .06em; color: var(--on-dark-2); }
.gc-portal .gc-mcard--home .gc-mcard__wallet { text-align: right; line-height: 1.3; }
.gc-portal .gc-home__card .gc-mcard.is-dim.gc-mcard--home { opacity: .82; }

@media (max-width: 720px) {
	/* 24 and 26 to 32 on a phone: the bar carries the screen's words and the page has no heading of its own;
	   36's status heading is its card's title. 25 and 37 keep theirs ("Renew for 2027", "You're on the waiting list"). */
	.gc-portal:is(.gc-portal--s-home, .gc-portal--s-group, .gc-portal--s-profile, .gc-portal--s-orders, .gc-portal--s-events, .gc-portal--s-waivers, .gc-portal--s-guest, .gc-portal--s-sponsor, .gc-portal--s-application) .gc-pmain__title { display: none; }
	.gc-portal .gc-home__signout { display: none; }

	/* 26 on a phone: the sentence on the page, each person a card of their own, the payer a pill, the age-out note an amber card. */
	.gc-portal.gc-portal--s-group .gc-group .gc-pcols__main > .gc-card, .gc-portal.gc-portal--s-group .gc-group .gc-pcols__side > .gc-card { padding: 0; border: 0; background: none; box-shadow: none; gap: 10px; }
	.gc-portal.gc-portal--s-group .gc-group__heading { display: none; }
	.gc-portal.gc-portal--s-group .gc-group__intro { font-size: 15px; line-height: 1.5; }
	.gc-portal.gc-portal--s-group .gc-group__row { padding: 12px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); }
	.gc-portal.gc-portal--s-group .gc-group__row:first-of-type { padding-top: 12px; border-top: 1px solid var(--line); }
	.gc-portal.gc-portal--s-group .gc-group__row:has(.gc-group__note) { border-color: var(--gc-banner-wait-line); background: var(--gc-amber-row); }
	.gc-portal.gc-portal--s-group .gc-group__note { font-weight: 600; color: var(--gc-amber-ink); }
	.gc-portal.gc-portal--s-group span.gc-group__role:not(:empty) { padding: 3px 9px; border-radius: var(--gc-radius-pill); font: 700 11.5px/1.2 var(--font-body); }
	.gc-portal.gc-portal--s-group span.gc-group__role:not(:empty), #gc-portal.gc-portal--s-group span.gc-group__role:not(:empty) { background: var(--surface-muted); color: var(--slate-700); }
	.gc-portal.gc-portal--s-group .gc-group__rules { font-size: 12.5px; line-height: 1.5; }

	/* 28 on a phone: each order a card of its own; a row opens its receipt on a page of its own. */
	.gc-portal.gc-portal--s-orders .gc-orders__card { gap: 8px; border: 0; background: none; box-shadow: none; overflow: visible; }
	.gc-portal.gc-portal--s-orders .gc-orders__row { min-height: 60px; padding: 12px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); }
	.gc-portal.gc-portal--s-orders .gc-orders__what { font-size: 14.5px; }
	.gc-portal.gc-portal--s-orders .gc-orders__row:first-of-type { border-top: 1px solid var(--line); }
	.gc-portal.gc-portal--s-orders .gc-orders__row.is-current { background: var(--white); }
	.gc-portal.gc-portal--s-orders .gc-orders:not(.gc-orders--receipt) .gc-orders__receipt { display: none; }

	/* 31 on a phone: a navy screen of its own with its words and a close mark, no tabs (Member 1 Portal 31). */
	.gc-portal.gc-portal--s-guest { background: var(--club-primary); }
	.gc-portal.gc-portal--s-guest .gc-pbar { background: var(--club-primary); border-bottom: 0; }
	.gc-portal.gc-portal--s-guest .gc-pbar__mark, .gc-portal.gc-portal--s-guest .gc-pbar__menu, .gc-portal.gc-portal--s-guest .gc-ptabs { display: none; }
	.gc-portal.gc-portal--s-guest .gc-pbar__words { color: var(--white); }
	.gc-portal.gc-portal--s-guest .gc-pbar__close { display: grid; place-items: center; width: 44px; height: 44px; margin: -8px -12px -8px auto; font: 600 22px/1 var(--font-body); color: var(--white); text-decoration: none; }
	.gc-portal.gc-portal--s-guest.gc-portal--tabs .gc-pmain { padding: 0 16px 24px; }
	.gc-portal.gc-portal--s-guest .gc-bring { padding: 0 6px; border-radius: 0; }
	.gc-portal.gc-portal--s-guest .gc-bring__qr { width: 220px; height: 220px; }

	/* 36 on a phone: the status heading stands on the page, the steps under it. */
	.gc-portal.gc-portal--s-application .gc-pcols__main > .gc-card:first-child { padding: 0; border: 0; background: none; box-shadow: none; }
}

@media (min-width: 721px) {
	/* 24 on a desktop: "Member card" in place of the club's mark, no photo slot and no wallet slot; no prepaid-credits slot. */
	.gc-portal .gc-mcard--home .gc-mcard__mark, .gc-portal .gc-mcard--home .gc-mcard__clubname, .gc-portal .gc-mcard--home .gc-mcard__photo, .gc-portal .gc-mcard--home .gc-mcard__wallet { display: none; }
	.gc-portal .gc-mcard--home .gc-mcard__eyebrow { display: block; }
	.gc-portal .gc-mcard--home .gc-mcard__who { grid-template-columns: 1fr; }
	.gc-portal .gc-mcard--home .gc-mcard__name { font-size: 26px; }
	.gc-portal .gc-mcard--home .gc-mcard__line { font-size: 13px; line-height: 1.4; }
	.gc-portal .gc-mcard--home .gc-mcard__qrbox { min-height: 150px; }
	.gc-portal .gc-mcard--home .gc-mcard__qr { width: 120px; height: 120px; }
	.gc-portal .gc-home__main > .gc-slot { display: none; }
	.gc-portal .gc-home__box { padding: 14px; gap: 6px; }
	.gc-portal .gc-home__box .gc-home__eyebrow { padding: 0; }
	.gc-portal .gc-home__reg { grid-template-columns: 1fr; padding: 0; border-top: 0; }
	.gc-portal .gc-home__reg .gc-home__date { display: none; }
	.gc-portal .gc-home__reg .gc-home__regtitle { font-size: 15px; }
	.gc-portal .gc-home__reg .gc-home__regwhen { font-size: 13px; }
}

@media (min-width: 900px) {
	/* 25 on a desktop: "Summary" is the summary card's own title, with the lines, Pay and the caption inside it. */
	.gc-portal .gc-pay--renew .gc-pay__side { padding: 18px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); }
	.gc-portal .gc-pay--renew .gc-pay__side > .gc-paystep { padding: 0; border: 0; }
}

@media (max-width: 720px) {
	/* 26 on a phone: Edit is a red link at the row's right. */
	.gc-portal.gc-portal--s-group a.gc-group__role, #gc-portal.gc-portal--s-group a.gc-group__role { color: var(--text-link); }
}

@media (max-width: 720px) {
	/* 27 and 30 on a phone: the form and the sign card stand on the page, as the phone frames draw them. */
	.gc-portal.gc-portal--s-profile .gc-myprofile__form, .gc-portal.gc-portal--s-waivers .gc-signcard, .gc-portal.gc-portal--s-waivers .gc-signed { padding: 0; border: 0; background: none; box-shadow: none; }
	.gc-portal.gc-portal--s-waivers .gc-signcard__title { font: 700 22px/1.05 var(--font-display); text-transform: uppercase; color: var(--navy-900); }
}

/* 37 with an offer open: the offer's own title is the heading (Member 2 Applicant, 37, "Offer open"). */
.gc-portal.gc-portal--s-waiting-list .gc-pmain:has(.gc-offer) > .gc-pmain__title { display: none; }

/* 24's sentence in a tinted box is set in 600, as the frame's red and amber states draw it. */
.gc-portal .gc-home__sentence:is(.gc-pmsg--b, .gc-pmsg--w) { font-weight: 600; }

@media (max-width: 720px) {
	/* What only a computer shows (the desktop frame's words where the phone frame has shorter ones). */
	.gc-portal .gc-pnote--wide { display: none; }

	/* 26 to 30 and 32 on a phone: the bar is the screen's words alone, no mark and no "Menu" (Router::WORDS_ONLY). */
	.gc-portal:is(.gc-portal--s-group, .gc-portal--s-profile, .gc-portal--s-orders, .gc-portal--s-events, .gc-portal--s-waivers, .gc-portal--s-sponsor, .gc-portal--s-more) .gc-pbar { padding: 12px 14px; }

	/* 32 on a phone: the ask card is the name, "Applied ... · asked you ...", the note and "Sponsor" / "I can't";
	   each request waiting is a card of its own; the line about past sponsoring stands under a rule. */
	.gc-portal.gc-portal--s-sponsor .gc-sponsorask { gap: 8px; padding: 12px; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorask__name { font: 600 15.5px/1.3 var(--font-body); text-transform: none; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorask__when { margin: -6px 0 0; font: 400 12.5px/1.35 var(--font-body); color: var(--slate-600); }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorask .gc-field__textarea { height: 64px; min-height: 64px; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorask .gc-btn--secondary { border-color: var(--line-strong); }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorwait { gap: 10px; padding: 0; border: 0; background: none; box-shadow: none; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorwait__title { display: none; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorwait .gc-prow { gap: 2px 12px; padding: 12px; border: 1px solid var(--line); border-radius: var(--gc-radius); background: var(--white); }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorwait .gc-prow__name { font-size: 15.5px; }
	.gc-portal.gc-portal--s-sponsor .gc-sponsorwait .gc-prow__sub { font-size: 12.5px; }

	/* 37 on a phone: the place card, the sentence, then "Pause for a while" and its caption on the page (no card). */
	.gc-portal.gc-portal--s-waiting-list .gc-pcols__main > .gc-ptext { color: var(--slate-700); }
	.gc-portal.gc-portal--s-waiting-list .gc-pcols__side > .gc-card { padding: 0; border: 0; background: none; box-shadow: none; }
	.gc-portal.gc-portal--s-waiting-list .gc-pcols__side .gc-ptext { font-size: 12.5px; line-height: 1.45; }
}

/* 32 on every width: the note's label is read aloud but not drawn; both frames show the placeholder alone. */
.gc-portal .gc-sponsorask .gc-field__label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (min-width: 721px) {
	/* 32 on a desktop: "Sponsor James" and "I can't" side by side at their own width, as the desktop frame draws them. */
	.gc-portal .gc-sponsorask .gc-sponsorask__buttons { display: flex; gap: 8px; }
}


/* Portal 30, Forms with the family (frame 30; decision p8_family 1). */
.gc-portal .gc-ffam { display: grid; gap: 10px; margin-top: 6px; }
.gc-portal .gc-ffam__head { display: block; padding-top: 10px; font: 600 11.5px/1.2 var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--slate-500); }
.gc-portal .gc-ffam__row { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 12px 14px; }
.gc-portal .gc-ffam__main { display: grid; gap: 3px; min-width: 0; }
.gc-portal .gc-ffam__main b { font: 600 14.5px/1.25 var(--font-body); color: var(--navy-900); }
.gc-portal .gc-ffam__main i { font: 400 13px/1.35 var(--font-body); font-style: normal; color: var(--slate-500); }
.gc-portal .gc-ffam__row .gc-btn { flex: none; }
.gc-portal .gc-ffam__back { display: inline-block; margin-bottom: 6px; }
.gc-portal .gc-ffam__guest { margin-top: 6px; }
.gc-portal .gc-ffam__row button.gc-link { flex: none; padding: 4px 0; border: 0; background: transparent; color: var(--text-link); font: 600 14px/1.3 var(--font-body); cursor: pointer; }
