/* Green Bean plugin pages: tables, cards and forms. Colours come from the tokens in design.css. */
.gbms-public { max-width: 1200px; margin: 0 auto; }
.gbms-public .gbms-title { margin-bottom: .25em; }
.gbms-public .gbms-sub { margin-top: 0; opacity: .8; }
.gbms-public .gbms-note { font-size: .9em; opacity: .8; }
.gbms-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1.5em; }
.gbms-table { width: 100%; border-collapse: collapse; font-size: .95em; }
.gbms-table th, .gbms-table td { padding: .45em .6em; border-bottom: 1px solid rgba(0,0,0,.1); text-align: left; vertical-align: top; }
.gbms-table th { white-space: nowrap; background: rgba(0,0,0,.04); }
.gbms-table td:first-child { white-space: nowrap; }
.gbms-table.gbms-compact { max-width: 560px; }
.gbms-table tbody tr:nth-child(even) { background: rgba(0,0,0,.02); }
.gbms-table .gbms-num { text-align: right; white-space: nowrap; width: 1%; font-variant-numeric: tabular-nums; }
.gbms-table .gbms-date, .gbms-table .gbms-nowrap { white-space: nowrap; width: 1%; }
.gbms-table .gbms-name { min-width: 11em; }
.gbms-table th.gbms-has-tip { position: relative; cursor: help; text-decoration: underline dotted; text-underline-offset: 3px; }
.gbms-tip { display: none; position: absolute; top: 100%; left: 0; z-index: 10; width: max-content; max-width: min(280px, 80vw); margin-top: 4px; padding: 8px 10px; background: var(--gbms-forest-dark); color: #fff; border-radius: 4px; font-size: 14px; font-weight: 400; line-height: 1.35; text-align: left; text-transform: none; letter-spacing: normal; white-space: normal; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.gbms-table th.gbms-num .gbms-tip { left: auto; right: 0; }
.gbms-table th.gbms-has-tip:hover .gbms-tip, .gbms-table th.gbms-has-tip:focus .gbms-tip { display: block; }
.gbms-table.gbms-rides th, .gbms-table.gbms-rides td { padding-left: .45em; padding-right: .45em; }
.gbms-zero { opacity: .45; }
.gbms-plus { color: var(--gbms-forest); }
.gbms-division { margin-top: 1.6em; padding-top: 0; border: 0; scroll-margin-top: 1em; }
.gbms-nav { display: flex; flex-wrap: wrap; gap: .4em; margin: .8em 0; }
.gbms-nav a, .gbms-tabs a { display: inline-block; padding: .35em .8em; border: 1px solid var(--gbms-forest); border-radius: var(--gbms-radius-sm); text-decoration: none; }
.gbms-tabs { display: flex; flex-wrap: wrap; gap: .3em; margin: 1em 0; }
.gbms-tabs a.is-active { background: var(--gbms-forest); color: #fff; }
.gbms-actions { display: flex; flex-wrap: wrap; gap: .5em; }
.gbms-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .6em; margin: 1em 0 1.5em; }
.gbms-card { border: 1px solid rgba(0,0,0,.12); border-radius: 6px; padding: .7em; display: flex; flex-direction: column; }
.gbms-card-value { font-size: 1.4em; font-weight: 700; line-height: 1.2; }
.gbms-card-label { font-size: .85em; opacity: .75; }
.gbms-alerts { margin: 0 0 1.5em 1.2em; }
.gbms-more summary { cursor: pointer; margin-bottom: .5em; }
.gbms-table .gbms-narrow { display: none; }
@media (max-width: 600px) {
	.gbms-table .gbms-wide { display: none; }
	.gbms-table .gbms-narrow { display: table-cell; }
	.gbms-table { font-size: .85em; }
	.gbms-table th, .gbms-table td { padding: .35em .4em; }
	.gbms-table .gbms-name { min-width: 9em; }
	.gbms-table .gbms-name { min-width: 9em; }
	.gbms-card-value { font-size: 1.2em; }
}
.gbms-search { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: .8em 0; }
.gbms-search input[type="search"] { flex: 1 1 16em; max-width: 26em; padding: .35em .6em; }
.gbms-search .gbms-note { flex-basis: 100%; margin: .2em 0 0; }
.gbms-table tr.gbms-team-total td { font-weight: 700; border-top: 2px solid rgba(0,0,0,.25); background: var(--gbms-bean-pale); }
/* Rider/Team Standings: the same column widths in every division table. */
.gbms-table.gbms-riders, .gbms-table.gbms-teams { table-layout: fixed; min-width: 860px; }
.gbms-table.gbms-riders th, .gbms-table.gbms-teams th { white-space: normal; }
.gbms-table.gbms-riders td, .gbms-table.gbms-teams td { overflow-wrap: anywhere; }
.gbms-table.gbms-riders th:nth-child(1) { width: 6%; }
.gbms-table.gbms-riders th:nth-child(2) { width: 21%; }
.gbms-table.gbms-riders th:nth-child(3) { width: 9%; }
.gbms-table.gbms-riders th:nth-child(4) { width: 19%; }
.gbms-table.gbms-riders th:nth-child(5), .gbms-table.gbms-riders th:nth-child(6) { width: 9%; }
.gbms-table.gbms-riders th:nth-child(7) { width: 9%; }
.gbms-table.gbms-riders th:nth-child(8) { width: 11%; }
.gbms-table.gbms-riders th:nth-child(9), .gbms-table.gbms-riders th:nth-child(10) { width: 8%; }
.gbms-table.gbms-teams th:nth-child(1) { width: 6%; }
.gbms-table.gbms-teams th:nth-child(2) { width: 15%; }
.gbms-table.gbms-teams th:nth-child(3) { width: 16%; }
.gbms-table.gbms-teams th:nth-child(4), .gbms-table.gbms-teams th:nth-child(5) { width: 8%; }
.gbms-table.gbms-teams th:nth-child(6), .gbms-table.gbms-teams th:nth-child(7), .gbms-table.gbms-teams th:nth-child(9) { width: 8%; }
.gbms-table.gbms-teams th:nth-child(8) { width: 11%; }
.gbms-table.gbms-teams th:nth-child(10) { width: 12%; }
.gbms-table.gbms-th { table-layout: fixed; min-width: 640px; }
.gbms-table.gbms-th th { white-space: normal; }
.gbms-table.gbms-th td { overflow-wrap: anywhere; }
.gbms-table.gbms-th th:nth-child(1) { width: 8%; }
.gbms-table.gbms-th th:nth-child(2), .gbms-table.gbms-th th:nth-child(4) { width: 27%; }
.gbms-table.gbms-th th:nth-child(3), .gbms-table.gbms-th th:nth-child(5) { width: 12%; }
.gbms-table.gbms-th th:nth-child(6) { width: 14%; }
/* Phase 10 member forms. */
.gbms-form { max-width: 640px; }
.gbms-field { margin: 0 0 .9em; }
.gbms-field[hidden] { display: none; }
.gbms-field > label { display: block; font-weight: 600; margin-bottom: .25em; }
.gbms-field input[type="text"], .gbms-field input[type="email"], .gbms-field input[type="url"], .gbms-field input[type="number"], .gbms-field input[type="date"], .gbms-field select, .gbms-field textarea { width: 100%; max-width: 100%; box-sizing: border-box; padding: .45em .55em; font-size: 16px; }
.gbms-field label > input[type="radio"], .gbms-field label > input[type="checkbox"] { margin-right: .3em; }
.gbms-field label:not(:first-child) { font-weight: 400; display: inline-block; margin-right: 1em; }
.gbms-member-form .gbms-button { border: 0; cursor: pointer; font-size: 1em; padding: .6em 1.2em; }
.gbms-flash { padding: .7em .9em; border-radius: 4px; border-left: 4px solid var(--gbms-forest); background: var(--gbms-bean-pale); }
.gbms-flash-error { border-left-color: #b32d2e; background: rgba(179,45,46,.08); }
.gbms-link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font-size: .9em; }
.gbms-actions .gbms-button.is-active { outline: 2px solid var(--gbms-forest-dark); }
/* Phase 11: registration, guardians, teams. */
.gbms-switcher { padding: .5em .7em; background: var(--gbms-bean-pale); border-radius: 4px; }
.gbms-choice { border: 1px solid rgba(0,0,0,.12); border-radius: 6px; padding: .3em .9em .6em; margin: 0 0 1em; max-width: 640px; }
.gbms-inline { display: inline; }
.gbms-inline .gbms-button { padding: .25em .7em; font-size: .9em; }
.gbms-renew { background: var(--gbms-forest-dark); border-color: var(--gbms-forest-dark); }
.gbms-steps li { margin-bottom: 1em; }
/* Scoreboards (Visual Design Spec v1.0): white rounded table, pale green first place. */
.gbms-scroll { background: var(--gbms-white); border-radius: var(--gbms-radius); box-shadow: var(--gbms-shadow); }
.gbms-table { margin: 0; }
.gbms-table th { background: var(--gbms-cream); color: var(--gbms-forest); }
.gbms-table th, .gbms-table td { padding: .6em .7em; border-bottom: 1px solid var(--gbms-line); }
.gbms-table tbody tr:last-child td { border-bottom: 0; }
.gbms-table tbody tr:nth-child(even) { background: none; }
.gbms-table tr.gbms-top td { background: var(--gbms-bean-pale); }
.gbms-table a { color: var(--gbms-forest); font-weight: 600; }
.gbms-nav a { background: var(--gbms-white); color: var(--gbms-forest); font-weight: 600; }
.gbms-nav a:hover { background: var(--gbms-bean-pale); }
.gbms-card { background: var(--gbms-white); border: 0; border-radius: var(--gbms-radius); box-shadow: var(--gbms-shadow); }
.gbms-card-value { color: var(--gbms-forest); }
/* Up to tablet width each standings row becomes a card. Phones may combine AERC Miles and AERC Bonus. */
@media (max-width: 900px) {
	.gbms-riders .gbms-wide { display: none !important; }
	.gbms-riders .gbms-narrow { display: block !important; }
	.gbms-scroll:has(.gbms-riders), .gbms-scroll:has(.gbms-teams) { overflow: visible; background: none; border-radius: 0; box-shadow: none; }
	.gbms-table.gbms-riders, .gbms-table.gbms-teams { display: block; min-width: 0; font-size: .95rem; }
	.gbms-riders thead, .gbms-teams thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.gbms-riders tbody, .gbms-teams tbody { display: block; }
	.gbms-riders tbody tr, .gbms-teams tbody tr { position: relative; display: grid; gap: .1em .4em; margin: 0 0 .75em; padding: .8em .9em; background: var(--gbms-white) !important; border-radius: var(--gbms-radius-sm); box-shadow: var(--gbms-shadow); }
	.gbms-riders tbody tr { grid-template-columns: repeat(4, 1fr); }
	.gbms-teams tbody tr { grid-template-columns: repeat(5, 1fr); }
	.gbms-riders td, .gbms-teams td { display: block; width: auto !important; min-width: 0 !important; padding: 0; border: 0 !important; background: none !important; white-space: normal !important; }
	.gbms-riders td:empty, .gbms-teams td:empty { display: none; }
	.gbms-riders .gbms-name, .gbms-teams .gbms-name, .gbms-riders .gbms-meta, .gbms-teams .gbms-meta { grid-column: 1 / -1; }
	.gbms-riders td.gbms-rank, .gbms-teams td.gbms-rank { position: absolute; top: .8em; left: .9em; color: var(--gbms-forest); font-weight: 800; }
	.gbms-riders td.gbms-name, .gbms-riders td.gbms-meta { padding-left: 2.2rem; }
	.gbms-riders td.gbms-name { font-size: 1.05rem; }
	.gbms-meta { font-size: .85rem; opacity: .85; }
	.gbms-riders td.gbms-num, .gbms-teams td.gbms-num { margin-top: .5em; text-align: left; font-size: 1rem; overflow-wrap: normal; }
	.gbms-riders td.gbms-num::before, .gbms-teams td.gbms-num::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 400; line-height: 1.2; opacity: .8; }
	.gbms-riders tr.gbms-top { box-shadow: inset 0 0 0 2px var(--gbms-bean), var(--gbms-shadow); }
	.gbms-teams tr.gbms-team-total { margin-top: 1.25em; background: var(--gbms-bean-pale) !important; }
	.gbms-teams tr.gbms-team-total td.gbms-team { padding-left: 2.2rem; font-size: 1.1rem; }
	.gbms-teams tr.gbms-team-total td.gbms-member, .gbms-teams tr.gbms-team-total td.gbms-meta { padding-left: 2.2rem; font-weight: 400; }
}

/* Awards & Achievements gallery. */
.gbms-badges h3 { margin: 0 0 .25rem; font-weight: 900; }
.gbms-badges-count { margin: 0 0 .9rem; font-weight: 700; }
.gbms-badges-group { margin: 1.5rem 0 .6rem; font-weight: 900; }
.gbms-badge-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .5rem; }
.gbms-badge-filters a { padding: .35em .85em; border-radius: 999px; background: var(--gbms-white); border: 1px solid var(--gbms-line); color: var(--gbms-forest); font-weight: 700; font-size: .9rem; text-decoration: none; }
.gbms-badge-filters a.is-active { background: var(--gbms-forest); border-color: var(--gbms-forest); color: var(--gbms-white); }
.gbms-badge-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .85rem; align-items: start; }
.gbms-badge { position: relative; min-width: 0; border-radius: var(--gbms-radius); background: var(--gbms-white); box-shadow: var(--gbms-shadow); }
.gbms-badge.is-earned { background: var(--gbms-bean-pale); }
.gbms-badge.is-unearned { background: var(--gbms-cream); }
.gbms-badge.is-featured { grid-column: span 2; }
.gbms-badge details { padding: .85rem; }
.gbms-badge summary { display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center; cursor: pointer; list-style: none; }
.gbms-badge summary::-webkit-details-marker { display: none; }
.gbms-badge-art { display: flex; align-items: center; justify-content: center; width: 112px; height: 112px; max-width: 100%; }
.gbms-badge.is-featured .gbms-badge-art { width: 160px; height: 160px; }
.gbms-badge-art img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Unearned: a pale, ghosted placeholder (Deb 2026-11-07) so the full-color art is something to unlock. Artwork files are untouched. */
.gbms-badge.is-unearned .gbms-badge-art img { filter: grayscale(1) contrast(.6) brightness(1.1); opacity: .3; }
.gbms-badge.is-earned .gbms-badge-art img { filter: none; opacity: 1; }
.gbms-badge-textart { padding: .5rem; border-radius: 50%; font-family: var(--gbms-font-heading); font-weight: 900; font-size: .85rem; line-height: 1.15; background: var(--gbms-forest); color: var(--gbms-white); box-sizing: border-box; overflow: hidden; }
.gbms-badge.is-unearned .gbms-badge-textart { background: #ECECE8; color: #8A8C86; }
.gbms-badge-name { color: var(--gbms-forest); font-family: var(--gbms-font-heading); font-weight: 900; line-height: 1.2; }
.gbms-badge-state { font-size: .85rem; line-height: 1.25; }
.gbms-badge.is-earned .gbms-badge-state { font-weight: 700; }
.gbms-badge.is-unearned .gbms-badge-state { color: #5F655F; }
.gbms-badge-progress { display: block; width: 100%; font-size: .8rem; }
.gbms-badge-progress progress { display: block; width: 100%; height: .55rem; margin-bottom: .2rem; accent-color: var(--gbms-forest); }
.gbms-badge-note { font-size: .8rem; font-style: italic; }
.gbms-badge-more { margin-top: .7rem; padding-top: .6rem; border-top: 1px solid var(--gbms-line); font-size: .9rem; overflow-wrap: anywhere; }
.gbms-badge-more p { margin: 0 0 .5rem; }
.gbms-badge-history { margin: 0; padding-left: 1.1rem; }
.gbms-badge-sample { position: absolute; top: .5rem; left: .5rem; z-index: 1; padding: .1em .55em; border-radius: 999px; background: var(--gbms-gold); color: var(--gbms-ink-on-bean); font-size: .7rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.gbms-badge-sample-note { margin: 0 0 1rem; padding: .85rem 1rem; border: 2px dashed var(--gbms-gold); border-radius: var(--gbms-radius-sm); background: #FFF8E6; }
@media (max-width: 480px) {
	.gbms-badge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gbms-badge.is-featured .gbms-badge-art { width: 130px; height: 130px; }
}

/* Submit Bonus Points: intro and the collapsed "What points are added automatically?" list. */
.gbms-bonus-intro { margin: 0 0 .6rem; }
.gbms-auto-points { margin: 0 0 1.25rem; }
.gbms-auto-points > summary { font-weight: 600; color: var(--gbms-forest, #244C3A); }
.gbms-auto-points .gbms-auto-head { margin: .6rem 0 .1rem; font-weight: 700; }
.gbms-auto-points .gbms-note { margin: 0 0 .3rem; }
.gbms-auto-points ul { margin: 0 0 .4rem 1.1rem; padding: 0; }
.gbms-auto-points li { margin: .1rem 0; }

/* My Badges preview notice (before the badge program launches). */
.gbms-badges-coming { margin: .5rem 0 1rem; padding: .8rem 1rem; border: 1px solid var(--gbms-line, rgba(36,76,58,.14)); border-radius: var(--gbms-radius-sm, 10px); background: var(--gbms-bean-pale, #E6F0D2); color: var(--gbms-slate, #283C40); }
.gbms-badges-coming p { margin: 0 0 .35rem; }
.gbms-badges-coming p:last-child { margin-bottom: 0; }
.gbms-badges-coming-title { color: var(--gbms-forest, #244C3A); font-size: 1.05rem; }

/* My Badges season dashboard: heading with the Season dropdown, and Season Honors. */
.gbms-badges-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; }
.gbms-badges-head h3 { margin: 0; }
.gbms-honors { margin: .75rem 0 1.25rem; padding: .9rem 1rem 1rem; border-radius: var(--gbms-radius, 16px); background: linear-gradient(135deg, var(--gbms-bean-pale, #E6F0D2), var(--gbms-white, #fff)); box-shadow: inset 0 0 0 1px var(--gbms-line, rgba(36,76,58,.14)); }
.gbms-honors-title { margin: 0 0 .6rem; color: var(--gbms-forest, #244C3A); font-weight: 900; }
.gbms-honors-title::before { content: "★ "; color: var(--gbms-gold, #E9B85F); }
.gbms-honors-grid .gbms-badge.is-featured { grid-column: auto; }

/* ---- My Profile, Meet the Green Beans and public member profiles (Deb's mockup, 2026-11-07) ---- */
.gbms-prof-title { display: flex; align-items: baseline; gap: .6rem; }
.gbms-prof-title h3 { margin: 0; }
.gbms-prof-private { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; color: var(--gbms-slate); }
.gbms-prof-private::before, .gbms-prof-lock { content: ""; display: inline-block; width: .85rem; height: .95rem; background: var(--gbms-forest); -webkit-mask: no-repeat center / contain var(--gbms-lock); mask: no-repeat center / contain var(--gbms-lock); }
.gbms-prof { --gbms-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28'%3E%3Cpath fill-rule='evenodd' d='M5 11V8a7 7 0 0 1 14 0v3h2a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V13a2 2 0 0 1 2-2zm4 0h6V8a3 3 0 0 0-6 0z'/%3E%3C/svg%3E"); }
.gbms-prof-lock { margin-right: .35rem; vertical-align: -.1rem; }
.gbms-prof-intro { margin: .3rem 0 1rem; color: var(--gbms-slate); }
.gbms-prof-card { background: var(--gbms-white); border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius); box-shadow: var(--gbms-shadow); padding: 1.1rem 1.25rem; margin: 0 0 1rem; min-width: 0; }
.gbms-prof-card-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.gbms-prof-h { display: flex; align-items: center; gap: .55rem; margin: 0 0 .6rem; color: var(--gbms-forest); font-family: var(--gbms-font-heading); }
.gbms-prof-h[class*="gbms-prof-h-"]::before { content: ""; flex: none; width: 1.5rem; height: 1.5rem; background: var(--gbms-bean); -webkit-mask: no-repeat center / contain var(--gbms-picon); mask: no-repeat center / contain var(--gbms-picon); }
.gbms-prof-h-goals { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M24 2a22 22 0 1 0 0 44a22 22 0 1 0 0-44zm0 6a16 16 0 1 1 0 32a16 16 0 1 1 0-32zm0 6a10 10 0 1 0 0 20a10 10 0 1 0 0-20zm0 6a4 4 0 1 1 0 8a4 4 0 1 1 0-8z'/%3E%3C/svg%3E"); }
.gbms-prof-h-notes { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M8 6h4V2h4v4h16V2h4v4h4a4 4 0 0 1 4 4v32a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V10a4 4 0 0 1 4-4zm0 10v26h32V16zm5 5h22v3H13zm0 7h22v3H13zm0 7h14v3H13z'/%3E%3C/svg%3E"); }
.gbms-prof-h-history { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M8 6h4V2h4v4h16V2h4v4h4a4 4 0 0 1 4 4v32a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V10a4 4 0 0 1 4-4zm0 10v26h32V16zm6 6h6v6h-6zm10 0h6v6h-6z'/%3E%3C/svg%3E"); }
.gbms-prof-h-settings { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M24 2l18 7v13c0 11-8 20-18 24C14 42 6 33 6 22V9zM14.5 24.5l3-3 4.5 4.5 9.5-10 3 3-12.5 13z'/%3E%3C/svg%3E"); }
.gbms-prof-h-feedback { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M24 4C12 4 2 12 2 22c0 5 3 10 7 13l-2 9 9-5c3 1 5 1 8 1 12 0 22-8 22-18S36 4 24 4zm-10 15a3 3 0 1 1 0 6a3 3 0 1 1 0-6zm10 0a3 3 0 1 1 0 6a3 3 0 1 1 0-6zm10 0a3 3 0 1 1 0 6a3 3 0 1 1 0-6z'/%3E%3C/svg%3E"); }
.gbms-prof-h-horses { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M10 44 6 22C6 10 14 3 24 3s18 7 18 19l-4 22h-8l4-22c0-6-4-11-10-11s-10 5-10 11l4 22zM9 24h3v3H9zM36 24h3v3h-3zM11 13h3v3h-3zM34 13h3v3h-3z'/%3E%3C/svg%3E"); }
.gbms-prof-h-badges { --gbms-picon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill-rule='evenodd' d='M24 2a14 14 0 1 1 0 28a14 14 0 1 1 0-28zm0 6a8 8 0 1 0 0 16a8 8 0 1 0 0-16zM14 29l-4 17 7-4 5 6 2-13zm20 0 4 17-7-4-5 6-2-13z'/%3E%3C/svg%3E"); }
.gbms-prof-pill { display: inline-block; padding: .2rem .7rem; border-radius: 999px; background: var(--gbms-bean-pale); color: var(--gbms-forest); font-size: .8rem; font-weight: 700; }
.gbms-prof-text { padding: .7rem .9rem; border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius-sm); background: var(--gbms-cream); }
.gbms-prof-empty { color: var(--gbms-slate); font-style: italic; }
.gbms-prof-lead { color: var(--gbms-slate); margin: 0 0 .8rem; }
.gbms-prof-edit { margin-top: .7rem; }
.gbms-prof-edit > summary, .gbms-hist-item > summary, .gbms-fb-new > summary { list-style: none; cursor: pointer; }
.gbms-prof-edit > summary::-webkit-details-marker, .gbms-hist-item > summary::-webkit-details-marker, .gbms-fb-new > summary::-webkit-details-marker { display: none; }
.gbms-prof-edit > summary { display: inline-block; }
.gbms-prof-edit-btn { padding: .35rem .9rem; border: 1px solid var(--gbms-forest); border-radius: var(--gbms-radius-sm); color: var(--gbms-forest); font-weight: 700; background: var(--gbms-white); }
.gbms-prof-edit[open] > summary { margin-bottom: .6rem; }
.gbms-prof-edit textarea, .gbms-fb-thread textarea { width: 100%; box-sizing: border-box; }

.gbms-prof-head { display: flex; gap: 1.4rem; align-items: center; }
.gbms-prof-who { min-width: 0; }
.gbms-prof-name { margin: 0 0 .25rem; color: var(--gbms-forest); font-family: var(--gbms-font-heading); font-size: 1.6rem; }
.gbms-prof-ids, .gbms-prof-where { margin: 0 0 .3rem; color: var(--gbms-slate); }
.gbms-prof-photo-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .6rem; }
.gbms-prof-photo-actions form { margin: 0; }
.gbms-prof-photo-actions .gbms-inline .gbms-button { background: var(--gbms-white); color: var(--gbms-forest); border: 1px solid var(--gbms-forest); }
.gbms-prof-upload { position: relative; overflow: hidden; cursor: pointer; }
.gbms-prof-upload input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.gbms-prof-upload:focus-within { outline: 3px solid var(--gbms-gold); outline-offset: 2px; }

.gbms-avatar { flex: none; display: inline-block; width: 2.5rem; height: 2.5rem; border-radius: 50%; overflow: hidden; background: var(--gbms-bean-pale); box-shadow: 0 0 0 3px var(--gbms-white), 0 0 0 4px var(--gbms-line); }
.gbms-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gbms-avatar.is-empty { position: relative; }
.gbms-avatar.is-empty::after { content: ""; position: absolute; inset: 18% 18% 0; background: var(--gbms-bean); -webkit-mask: no-repeat center bottom / contain var(--gbms-person); mask: no-repeat center bottom / contain var(--gbms-person); }
.gbms-avatar { --gbms-person: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 44'%3E%3Ccircle cx='20' cy='11' r='10'/%3E%3Cpath d='M0 44c0-14 8-20 20-20s20 6 20 20z'/%3E%3C/svg%3E"); }
.gbms-avatar-lg { width: 8.5rem; height: 8.5rem; }
.gbms-avatar-sm { width: 2.6rem; height: 2.6rem; }

.gbms-prof-cols { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 0 1rem; align-items: start; }

.gbms-hist { border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius-sm); overflow: hidden; }
.gbms-hist-row { display: grid; grid-template-columns: 1.1fr 1.1fr 1fr 1fr 1.4fr 1.2rem; gap: .5rem; align-items: center; padding: .55rem .8rem; border-top: 1px solid var(--gbms-line); }
.gbms-hist-head { border-top: 0; background: var(--gbms-bean-pale); font-weight: 700; color: var(--gbms-forest); font-size: .85rem; }
.gbms-hist-item > summary::after { content: ""; justify-self: end; width: .55rem; height: .55rem; border: solid var(--gbms-forest); border-width: 0 2px 2px 0; transform: rotate(-45deg); transition: transform .15s; }
.gbms-hist-item[open] > summary { background: var(--gbms-bean-pale); }
.gbms-hist-item[open] > summary::after { transform: rotate(45deg); }
.gbms-hist-item > summary:focus-visible { outline: 3px solid var(--gbms-gold); outline-offset: -3px; }
.gbms-hist-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: .8rem 1rem 1rem; background: #F7FAEF; border-top: 1px solid var(--gbms-line); }
.gbms-hist-detail h5 { font-size: 1rem; margin-bottom: .35rem; }
.gbms-hist-detail h5::before { width: 1.15rem; height: 1.15rem; }
.gbms-prof-share-line { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; margin-top: .6rem; font-size: .9rem; }
.gbms-prof-share-line label { display: inline-flex; gap: .35rem; align-items: center; }

.gbms-prof-toggles { list-style: none; margin: 0; padding: 0; }
.gbms-toggle { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-top: 1px solid var(--gbms-line); cursor: pointer; position: relative; }
.gbms-toggle:first-child { border-top: 0; }
.gbms-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gbms-toggle-track { flex: none; position: relative; width: 2.6rem; height: 1.45rem; border-radius: 999px; background: #C9CEC6; transition: background .15s; }
.gbms-toggle-track::after { content: ""; position: absolute; top: .15rem; left: .15rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--gbms-white); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s; }
.gbms-toggle input:checked + .gbms-toggle-track { background: var(--gbms-forest); }
.gbms-toggle input:checked + .gbms-toggle-track::after { transform: translateX(1.15rem); }
.gbms-toggle input:focus-visible + .gbms-toggle-track { outline: 3px solid var(--gbms-gold); outline-offset: 2px; }
.gbms-toggle input:disabled + .gbms-toggle-track { opacity: .45; }

.gbms-fb-new > summary { display: inline-block; }
.gbms-fb-thread { margin-top: .8rem; border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius-sm); background: var(--gbms-cream); }
.gbms-fb-thread > summary { cursor: pointer; padding: .55rem .8rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.gbms-fb-when { margin-left: auto; font-size: .8rem; color: var(--gbms-slate); }
.gbms-fb-new-reply { padding: .05rem .5rem; border-radius: 999px; background: var(--gbms-gold); color: var(--gbms-ink-on-bean); font-size: .75rem; font-weight: 700; }
.gbms-fb-thread > :not(summary) { margin-left: .8rem; margin-right: .8rem; }
.gbms-fb-msg { padding: .55rem .75rem; margin-bottom: .5rem; border-radius: var(--gbms-radius-sm); background: var(--gbms-white); border: 1px solid var(--gbms-line); }
.gbms-fb-msg.is-admin { background: var(--gbms-bean-pale); }
.gbms-fb-msg p { margin: 0; }
.gbms-fb-msg .gbms-fb-meta { font-size: .85rem; margin-bottom: .2rem; }
.gbms-fb-meta span { color: var(--gbms-slate); }
.gbms-unread-dot { display: inline-block; width: .55rem; height: .55rem; margin-left: .3rem; border-radius: 50%; background: var(--gbms-gold); box-shadow: 0 0 0 2px var(--gbms-white); vertical-align: middle; }

/* Meet the Green Beans */
.gbms-dir-search { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; padding: 1rem; margin-bottom: 1rem; background: var(--gbms-white); border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius); box-shadow: var(--gbms-shadow); }
.gbms-dir-q { flex: 1 1 16rem; }
.gbms-dir-q input { width: 100%; box-sizing: border-box; }
.gbms-dir-filter { display: flex; flex-direction: column; gap: .15rem; font-size: .8rem; font-weight: 700; color: var(--gbms-forest); }
.gbms-dir-filter select { min-width: 9rem; }
.gbms-dir-count { color: var(--gbms-slate); }
.gbms-dir-table { background: var(--gbms-white); border: 1px solid var(--gbms-line); border-radius: var(--gbms-radius); box-shadow: var(--gbms-shadow); overflow: hidden; }
.gbms-dir-row { display: grid; grid-template-columns: minmax(12rem, 2fr) .9fr .6fr 1fr .9fr .8fr 1.5fr 1.2rem; gap: .5rem; align-items: center; padding: .55rem .9rem; border-top: 1px solid var(--gbms-line); position: relative; }
.gbms-dir-head { border-top: 0; background: var(--gbms-bean-pale); font-weight: 700; font-size: .85rem; color: var(--gbms-forest); }
.gbms-dir-sort { color: inherit; text-decoration: none; white-space: nowrap; }
.gbms-dir-sort:hover, .gbms-dir-sort:focus-visible { text-decoration: underline; }
.gbms-dir-sort::after { content: "\2195"; margin-left: .25em; opacity: .35; font-weight: 400; }
.gbms-dir-sort.is-asc::after { content: "\25B2"; opacity: 1; font-size: .75em; }
.gbms-dir-sort.is-desc::after { content: "\25BC"; opacity: 1; font-size: .75em; }
.gbms-dir-member { display: flex; gap: .65rem; align-items: center; min-width: 0; }
.gbms-dir-member a { font-weight: 700; color: var(--gbms-forest); }
.gbms-dir-go::after { content: ""; display: block; width: .55rem; height: .55rem; border: solid var(--gbms-forest); border-width: 0 2px 2px 0; transform: rotate(-45deg); }
.gbms-div-pill { display: inline-block; padding: .15rem .65rem; border-radius: 999px; font-size: .82rem; font-weight: 700; background: var(--gbms-bean-pale); color: var(--gbms-forest); }
.gbms-div-pill.gbms-div-canned { background: #F6D77A; color: #4A3A06; }
.gbms-div-pill.gbms-div-cooked { background: #F3C3A0; color: #5A2A0C; }
.gbms-div-pill.gbms-div-picked { background: #CFE8A6; color: #24401A; }
.gbms-div-pill.gbms-div-otv { background: #BFE3EA; color: #123C46; }
.gbms-div-pill.gbms-div-junior, .gbms-div-pill.gbms-div-seedling, .gbms-div-pill.gbms-div-sprout { background: #E3D7F2; color: #3B2560; }
.gbms-div-pill.is-none { background: transparent; color: var(--gbms-slate); }
.gbms-dir-pages { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0; }
.gbms-dir-pages a, .gbms-dir-pages span { min-width: 2.1rem; padding: .3rem .55rem; text-align: center; border-radius: var(--gbms-radius-sm); border: 1px solid var(--gbms-line); background: var(--gbms-white); }
.gbms-dir-pages span[aria-current] { background: var(--gbms-forest); color: var(--gbms-white); }
.gbms-dir-pages .gbms-dir-all { margin-left: .5rem; font-weight: 700; }
.gbms-mp-head { display: flex; gap: 1.5rem; align-items: center; }
.gbms-mp-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0; }
.gbms-mp-team { padding: .15rem .7rem; border-radius: 999px; background: var(--gbms-bean-pale); color: var(--gbms-forest); font-weight: 700; font-size: .82rem; }
.gbms-mp-miles { margin: .2rem 0; color: var(--gbms-slate); }
.gbms-mp-season { margin-top: .4rem; }
.gbms-mp-season label { display: inline-flex; gap: .5rem; align-items: center; font-weight: 600; }
.gbms-mp-horses { margin: 0; padding-left: 1.2rem; }
.gbms-mp-badge-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: .8rem; }
.gbms-mp-badge { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .2rem; font-size: .85rem; }
.gbms-mp-badge-art img { width: 5.5rem; height: 5.5rem; object-fit: contain; }
.gbms-mp-badge span:last-child { color: var(--gbms-slate); font-size: .78rem; }

@media (max-width: 900px) {
	.gbms-prof-cols { grid-template-columns: minmax(0, 1fr); }
	.gbms-dir-head { display: flex; flex-wrap: wrap; gap: .4rem; padding: .7rem .9rem; font-size: .8rem; }
	.gbms-dir-head::before { content: "Sort by"; flex-basis: 100%; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; }
	.gbms-dir-head > span:last-child { display: none; }
	.gbms-dir-head .gbms-dir-sort { display: inline-block; padding: .3rem .65rem; border: 1px solid var(--gbms-line); border-radius: 999px; background: var(--gbms-white); }
	.gbms-dir-head .gbms-dir-sort.is-asc, .gbms-dir-head .gbms-dir-sort.is-desc { border-color: var(--gbms-forest); background: var(--gbms-forest); color: var(--gbms-white); }
	.gbms-dir-row { grid-template-columns: 1fr 1fr; padding: .8rem .9rem; }
	.gbms-dir-member { grid-column: 1 / -1; padding-right: 1.5rem; }
	.gbms-dir-row [data-label]::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 700; color: var(--gbms-forest); text-transform: uppercase; letter-spacing: .03em; }
	.gbms-dir-go { position: absolute; top: 1.4rem; right: 1rem; }
}
@media (max-width: 640px) {
	.gbms-prof-head, .gbms-mp-head { flex-direction: column; text-align: center; }
	.gbms-prof-photo-actions, .gbms-mp-pills { justify-content: center; }
	.gbms-hist-head { display: none; }
	.gbms-hist-row { grid-template-columns: 1fr 1fr 1.2rem; }
	.gbms-hist-row > span[data-label="Season"] { font-weight: 700; grid-column: 1 / 3; }
	.gbms-hist-row > span[data-label]:not([data-label="Season"])::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 700; color: var(--gbms-forest); }
	.gbms-hist-item > summary::after { grid-column: 3; grid-row: 1; }
	.gbms-hist-detail { grid-template-columns: 1fr; }
	.gbms-dir-search > * { flex: 1 1 100%; }
	.gbms-dir-filter select { width: 100%; }
}
