/*
 * GATECHY Site: the look of the plugin's own markup (gts-*), for any theme.
 *
 * Everything reads a few custom properties. A theme sets them (or the GATECHY theme's --gt-* tokens, which
 * they fall back to); without either, the markup takes the theme's text colour and adds quiet lines and tints
 * of it, so it fits light and dark themes alike.
 */

:where(.gts, .gts-auth, .gts-notice, .gts-sections, .gts-card, .gts-mention, .gts-person, .gts-people) {
	--gts-fg: var(--gt-ink, currentColor);
	--gts-muted: var(--gt-ink-faint, color-mix(in srgb, currentColor 68%, transparent));
	--gts-surface: var(--gt-surface, color-mix(in srgb, currentColor 3%, transparent));
	--gts-surface-2: var(--gt-surface-2, color-mix(in srgb, currentColor 6%, transparent));
	--gts-line: var(--gt-line, color-mix(in srgb, currentColor 28%, transparent));
	--gts-line-soft: color-mix(in srgb, var(--gts-line) 30%, transparent);
	--gts-accent: var(--gt-primary, var(--wp--preset--color--primary, #B39051));
	--gts-on-accent: var(--gt-on-primary, #051E39);
	--gts-accent-2: var(--gt-secondary, #051E39);
	--gts-on-accent-2: var(--gt-on-secondary, #F9F6E5);
	--gts-link: var(--gt-accent-ink, currentColor);
	--gts-success: var(--gt-success-ink, #1B7A4A);
	--gts-warning: var(--gt-warning-ink, #8A5A00);
	--gts-danger: var(--gt-danger-ink, #B3261E);
	--gts-info: var(--gt-accent-ink, currentColor);
	--gts-focus: var(--gt-focus, #2F5BFF);
	--gts-border-width: var(--gt-border-width, 1.5px);
	--gts-radius: var(--gt-radius, 12px);
	--gts-radius-sm: var(--gt-radius-sm, 8px);
	--gts-shadow: var(--gt-shadow-sm, none);
	--gts-font-display: var(--gt-font-display, inherit);
	--gts-gap: 1rem;
}

.gts { display: flex; flex-direction: column; gap: 1.5rem; color: var(--gts-fg); }
.gts > * { margin: 0; }
.gts p { margin: 0; }
.gts-sr, .gts-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.gts-icon { flex: none; width: 1.15em; height: 1.15em; vertical-align: -0.2em; }
.gts-muted { color: var(--gts-muted); }
.gts-lead { font-size: 1.125em; line-height: 1.55; }
.gts-kicker { margin: 0 0 0.35rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gts-muted); }

/* Cards and sections */
.gts-card { box-sizing: border-box; padding: clamp(1.1rem, 0.8rem + 1.4vw, 1.75rem); border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius); background: var(--gts-surface); box-shadow: var(--gts-shadow); color: var(--gts-fg); }
.gts-card > * + * { margin-top: 0.85rem; }
.gts-card--narrow { max-width: 560px; }
.gts-card--accent { background: var(--gts-accent); color: var(--gts-on-accent); --gts-muted: color-mix(in srgb, var(--gts-on-accent) 80%, transparent); --gts-link: var(--gts-on-accent); }
.gts .gts-card__title, .gts-card .gts-card__title { margin: 0; font-family: var(--gts-font-display); font-size: 1.3rem; line-height: 1.2; }
.gts-section > * + * { margin-top: 0.9rem; }
.gts .gts-section__title { margin: 0; font-family: var(--gts-font-display); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.15; }
/* What follows a section's title keeps the section's rhythm: the lists' and the lead's own "margin: 0" (further down, the same weight as the rule above) took it away, and the title sat on the first card or line. */
.gts .gts-section > .gts-section__title + * { margin-top: 0.9rem; }
.gts-section--note { padding: 1.25rem 1.4rem; border-left: 4px solid var(--gts-accent); border-radius: var(--gts-radius-sm); background: var(--gts-surface-2); }

/* Plugins' parts of the account pages (gatechy_account_sections): each block gets the card's frame. */
.gts-sections { display: flex; flex-direction: column; gap: var(--gts-gap); }
.gts-sections > :where(section, div, article, form) { box-sizing: border-box; max-width: none; margin: 0; padding: clamp(1.1rem, 0.8rem + 1.4vw, 1.75rem); border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius); background: var(--gts-surface); color: var(--gts-fg); }
.gts-sections > * > h2:first-child, .gts-sections > * > h3:first-child { margin-top: 0; }
/* A plugin's own centring or width (auto margins, a max-width) would shrink its block in this column. */
.gts-sections > * { width: 100%; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }

/* Buttons and links */
.gts-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; box-sizing: border-box; min-height: 44px; padding: 0.6em 1.15em; border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius-sm); background: var(--gts-surface); color: var(--gts-fg); font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease; }
.gts-btn:hover { transform: translateY(-1px); }
.gts-btn:active { transform: translateY(1px); }
.gts-btn--primary { border-color: var(--gts-accent); background: var(--gts-accent); color: var(--gts-on-accent); }
.gts-card--accent .gts-btn--primary { border-color: var(--gts-accent-2); background: var(--gts-accent-2); color: var(--gts-on-accent-2); }
.gts-btn--secondary { border-color: var(--gts-accent-2); background: var(--gts-accent-2); color: var(--gts-on-accent-2); }
.gts-btn--quiet { border-color: transparent; background: transparent; }
.gts-btn--small { min-height: 36px; padding: 0.4em 0.85em; font-size: 0.9em; }
.gts-btn--block { display: flex; width: 100%; }
.gts-btn[disabled] { opacity: 0.55; cursor: not-allowed; transform: none; }
.gts-link { color: var(--gts-link); font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }
.gts-link:hover { text-decoration-thickness: 2px; }
:where(.gts, .gts-auth, .gts-card) :focus-visible { outline: 3px solid var(--gts-focus); outline-offset: 2px; }

/* Forms */
.gts-form { display: flex; flex-direction: column; gap: 1rem; margin: 0; }
.gts-field { display: flex; flex-direction: column; gap: 0.35rem; margin: 0; min-width: 0; }
.gts-label { font-weight: 700; font-size: 0.95em; }
.gts-input, .gts-form select { box-sizing: border-box; width: 100%; min-height: 46px; padding: 0.6em 0.8em; border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius-sm); background: var(--gt-surface, transparent); color: var(--gts-fg); font: inherit; font-size: max(1rem, 16px); }
.gts-input:focus, .gts-form select:focus { outline: 3px solid var(--gts-focus); outline-offset: 1px; }
.gts-hint { color: var(--gts-muted); font-size: 0.875em; }
.gts-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.gts-check { display: flex; flex-direction: column; gap: 0.2rem; margin: 0; }
.gts-check label { display: inline-flex; align-items: flex-start; gap: 0.55em; cursor: pointer; }
.gts-check input { flex: none; width: 1.15em; height: 1.15em; margin: 0.2em 0 0; accent-color: var(--gts-accent); }
.gts-check .gts-hint { padding-left: 1.7em; }
.gts-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin: 0; }
.gts-actions form { margin: 0; }
.gts-password { position: relative; display: block; }
.gts-password .gts-input { padding-right: 3.2rem; }
.gts-reveal { position: absolute; top: 50%; right: 4px; display: grid; place-items: center; width: 40px; height: 38px; padding: 0; border: 0; border-radius: var(--gts-radius-sm); background: transparent; color: var(--gts-muted); cursor: pointer; transform: translateY(-50%); }
.gts-reveal[aria-pressed="true"] { color: var(--gts-fg); }
.gts-fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.gts-fieldset legend { margin-bottom: 0.5rem; padding: 0; }
.gts-choices { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.gts-choice { display: inline-flex; align-items: center; gap: 0.5em; padding: 0.5em 0.85em; border: var(--gts-border-width) solid var(--gts-line-soft); border-radius: 999px; cursor: pointer; }
.gts-choice:has(input:checked) { border-color: var(--gts-accent); box-shadow: inset 0 0 0 1px var(--gts-accent); }
.gts-choice input { accent-color: var(--gts-accent); margin: 0; }
.gts-choice__swatch { width: 1.1em; height: 1.1em; border-radius: 50%; border: 1px solid var(--gts-line-soft); }
.gts-choice--dark .gts-choice__swatch { background: #051E39; }
.gts-choice--light .gts-choice__swatch { background: #F9F6E5; }
.gts-choice--matrix .gts-choice__swatch { background: #0B0B0E; box-shadow: inset 0 0 0 3px #1FBF75; }
.gts-choice--zero .gts-choice__swatch { background: #000; box-shadow: inset 0 0 0 3px #fff; }
.gts-choice--one .gts-choice__swatch { background: #fff; box-shadow: inset 0 0 0 3px #000; }
.gts-choice--ieee .gts-choice__swatch { background: #00456e; box-shadow: inset 0 0 0 3px #ffa300; }
.gts-choice--usa .gts-choice__swatch { background: #0a1f5c; box-shadow: inset 0 0 0 3px #ff5964; }
.gts-choice--halloween .gts-choice__swatch { background: #0d0612; box-shadow: inset 0 0 0 3px #ff8a1f; }
.gts-choice--thanksgiving .gts-choice__swatch { background: #2a1608; box-shadow: inset 0 0 0 3px #f08a24; }
.gts-choice--xmas .gts-choice__swatch { background: #0b3d24; box-shadow: inset 0 0 0 3px #ff5a5a; }
.gts-choice--newyear .gts-choice__swatch { background: #05060f; box-shadow: inset 0 0 0 3px #f5d76e; }
.gts-choice--gatech .gts-choice__swatch { background: #003057; box-shadow: inset 0 0 0 3px #b3a369; }
.gts-choice--buzz .gts-choice__swatch { background: #0a0a0a; box-shadow: inset 0 0 0 3px #f5b800; }
.gts-choice--wreck .gts-choice__swatch { background: #5a4a12; box-shadow: inset 0 0 0 3px #ffd24a; }
.gts-choice--omscs .gts-choice__swatch { background: #0b1524; box-shadow: inset 0 0 0 3px #64ccc9; }

/* Messages */
.gts-notice { display: flex; align-items: flex-start; gap: 0.6rem; box-sizing: border-box; padding: 0.8rem 1rem; border: var(--gts-border-width) solid currentColor; border-left-width: 5px; border-radius: var(--gts-radius-sm); background: var(--gts-surface); color: var(--gts-info); }
.gts-notice p { margin: 0; color: var(--gts-fg); }
.gts-notice .gts-btn { margin-left: 0.4rem; }
.gts-notice--success { color: var(--gts-success); }
.gts-notice--warning { color: var(--gts-warning); }
.gts-notice--error { color: var(--gts-danger); }
.gts-pending { display: flex; flex-direction: column; gap: 0.6rem; }
.gts-owner-note { padding: 0.9rem 1rem; border: 2px dashed var(--gts-warning); border-radius: var(--gts-radius-sm); background: color-mix(in srgb, var(--gts-warning) 8%, transparent); }
.gts-owner-note > * { margin: 0 0 0.35rem; }
.gts-owner-note__tag { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gts-warning); }
.gts-owner-note__title { font-weight: 700; }

/* Log-in, password, registration */
.gts-auth { display: flex; flex-direction: column; gap: 1rem; }
.gts-auth__title { margin: 0; font-family: var(--gts-font-display); font-size: 1.3rem; }
.gts-auth__alt { margin: 0; color: var(--gts-muted); }
.gts-account-guest { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.25rem; align-items: start; }

/* Avatars and the account page */
.gts-avatar { flex: none; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; overflow: hidden; font-weight: 700; line-height: 1; }
.gts-avatar--lg { width: 64px; height: 64px; font-size: 1.35rem; }
.gts-avatar--xl { width: 96px; height: 96px; font-size: 2rem; }
.gts-avatar--initials { background: var(--gts-accent); color: var(--gts-on-accent); }
.gts-tone--gold { --gts-tone: #B39051; --gts-on-tone: #051E39; }
.gts-tone--navy { --gts-tone: #051E39; --gts-on-tone: #F9F6E5; }
.gts-tone--bronze { --gts-tone: #8F713D; --gts-on-tone: #F9F6E5; }
.gts-tone--buzz { --gts-tone: #EAAA00; --gts-on-tone: #051E39; }
.gts-tone--cream { --gts-tone: #F9F6E5; --gts-on-tone: #051E39; }
.gts-avatar--initials[class*="gts-tone--"] { background: var(--gts-tone); color: var(--gts-on-tone); }
.gts-profile-card { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.gts-profile-card > * + * { margin-top: 0; }
.gts-profile-card__body { display: flex; flex-direction: column; gap: 0.45rem; min-width: 0; }
.gts-profile-card__name { margin: 0; font-family: var(--gts-font-display); font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); line-height: 1.1; overflow-wrap: anywhere; }
.gts-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.gts-chip { display: inline-flex; align-items: center; padding: 0.2em 0.7em; border: 1px solid var(--gts-line-soft); border-radius: 999px; font-size: 0.8125rem; font-weight: 600; }
.gts-chip--live { border-color: var(--gts-success); color: var(--gts-success); }
.gts-link-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 0.85rem; }
.gts-link-card { position: relative; display: flex; flex-direction: column; gap: 0.3rem; padding: 1rem 2.6rem 1rem 1.1rem; border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius); background: var(--gts-surface); color: var(--gts-fg); text-decoration: none; transition: transform 120ms ease; }
.gts-link-card:hover { transform: translateY(-2px); }
.gts-link-card .gts-icon { position: absolute; top: 1rem; right: 1rem; }
.gts-link-card__label { font-weight: 700; }
.gts-link-card__desc { color: var(--gts-muted); font-size: 0.9em; }
.gts-link-card--quiet { border-style: dashed; background: transparent; }

/* Account settings */
.gts-settings { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.gts-settings__nav ul { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.gts-settings__nav a { display: inline-block; padding: 0.4em 0.85em; border: 1px solid var(--gts-line-soft); border-radius: 999px; color: var(--gts-fg); font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.gts-settings__nav a:hover { border-color: var(--gts-line); }
.gts-settings__main { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.gts-settings__block { scroll-margin-top: calc(var(--gt-header-h, 0px) + 1rem); }
.gts-settings__who { display: flex; align-items: center; gap: 1rem; }
.gts-settings__who > div { display: flex; flex-direction: column; gap: 0.25rem; }
@media (min-width: 900px) {
	.gts-settings { grid-template-columns: 210px minmax(0, 1fr); align-items: start; }
	.gts-settings__nav { position: sticky; top: calc(var(--gt-header-h, 0px) + 1rem); }
	.gts-settings__nav ul { flex-direction: column; }
	.gts-settings__nav a { display: block; border-radius: var(--gts-radius-sm); }
	.gts-settings__back { margin-top: 0.75rem; }
}

/* Pricing */
.gts-pricing { display: flex; flex-direction: column; gap: 1.25rem; }
.gts-billing { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; align-self: flex-start; margin: 0; padding: 0.3rem; border: var(--gts-border-width) solid var(--gts-line); border-radius: 999px; }
.gts-billing__opt { display: inline-flex; align-items: center; padding: 0.45em 1em; border-radius: 999px; font-weight: 700; cursor: pointer; }
.gts-billing__opt input { position: absolute; opacity: 0; pointer-events: none; }
.gts-billing__opt:has(input:checked) { background: var(--gts-accent); color: var(--gts-on-accent); }
.gts-billing__opt:has(input:focus-visible) { outline: 3px solid var(--gts-focus); }
.gts-save { margin-left: 0.35em; font-size: 0.8em; font-weight: 700; }
.gts-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1rem; align-items: stretch; }
.gts-plan { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.25rem; border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius); background: var(--gts-surface); }
.gts-plan.is-highlight { border-width: 3px; border-color: var(--gts-accent); }
.gts-plan > * { margin: 0; }
.gts-plan__badge { align-self: flex-start; padding: 0.2em 0.7em; border-radius: 999px; background: var(--gts-accent); color: var(--gts-on-accent); font-size: 0.8rem; font-weight: 700; }
.gts-plan__name { font-family: var(--gts-font-display); font-size: 1.3rem; }
.gts-plan__tagline { color: var(--gts-muted); }
.gts-price { margin: 0; display: flex; align-items: baseline; gap: 0.2rem; flex-wrap: wrap; }
.gts-price__amount { font-family: var(--gts-font-display); font-size: 2.2rem; font-weight: 800; line-height: 1; }
.gts-price__amount--word { font-size: 1.6rem; }
.gts-price__unit, .gts-price__sub { color: var(--gts-muted); font-size: 0.9rem; }
.gts-price__unit--once { margin-left: 0.35em; } /* "once" is a word, not "/month": it stands off the amount. */
.gts-pricing[data-billing="year"] [data-billing-show="month"], .gts-pricing[data-billing="month"] [data-billing-show="year"] { display: none; }
.gts-pricing:has(.gts-billing input[value="month"]:checked) [data-billing-show="year"] { display: none; }
.gts-pricing:has(.gts-billing input[value="month"]:checked) [data-billing-show="month"] { display: block; }
.gts-pricing:has(.gts-billing input[value="year"]:checked) [data-billing-show="month"] { display: none; }
.gts-pricing:has(.gts-billing input[value="year"]:checked) [data-billing-show="year"] { display: block; }
.gts-ticks { display: flex; flex-direction: column; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.gts-ticks li { display: flex; gap: 0.5rem; align-items: flex-start; }
.gts-ticks .gts-icon { color: var(--gts-success); margin-top: 0.15em; }
.gts-table-wrap { overflow-x: auto; border: var(--gts-border-width) solid var(--gts-line); border-radius: var(--gts-radius); }
.gts-compare { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 0.95rem; }
.gts-compare th, .gts-compare td { padding: 0.65rem 0.8rem; border-bottom: 1px solid var(--gts-line-soft); text-align: left; vertical-align: top; }
.gts-compare td { text-align: center; }
.gts-compare thead th { font-family: var(--gts-font-display); }
.gts-compare__group th { background: var(--gts-surface-2); font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; }
.gts-compare .gts-icon { color: var(--gts-success); }

/* FAQ, features, steps */
.gts-faq { display: flex; flex-direction: column; gap: 0.6rem; }
.gts-faq__item { border: var(--gts-border-width) solid var(--gts-line-soft); border-radius: var(--gts-radius-sm); background: var(--gts-surface); }
.gts-faq__item summary { padding: 0.9rem 1rem; font-weight: 700; cursor: pointer; }
.gts-faq__a { padding: 0 1rem 1rem; }
.gts-features, .gts-promises, .gts-ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.gts-feature, .gts-promises li, .gts-way { display: flex; flex-direction: column; gap: 0.4rem; padding: 1.1rem; border: var(--gts-border-width) solid var(--gts-line-soft); border-radius: var(--gts-radius); background: var(--gts-surface); }
.gts-feature > *, .gts-promises li > *, .gts-way > * { margin: 0; }
.gts-feature__title { margin: 0; font-size: 1.05rem; }
.gts-steps { display: flex; flex-direction: column; gap: 0.6rem; margin: 0; padding-left: 1.4rem; }
.gts-nots { display: flex; flex-direction: column; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.gts-nots li { display: flex; gap: 0.6rem; align-items: flex-start; }
.gts-nots .gts-icon { color: var(--gts-danger); margin-top: 0.2em; }
.gts-nots p { margin: 0; }
.gts-story { margin: 0; padding: 0; border: 0; }
.gts-story p { font-size: 1.15em; line-height: 1.55; }
.gts-story footer { margin-top: 0.6rem; color: var(--gts-muted); font-weight: 600; }
.gts-independent { font-size: 0.875rem; }

@media (prefers-reduced-motion: reduce) {
	.gts-btn, .gts-link-card { transition: none; }
	.gts-btn:hover, .gts-link-card:hover { transform: none; }
}

/* Auth pages: one centred card */
.gts-page--login, .gts-page--forgot, .gts-page--reset, .gts-page--logout, .gts-page--join { align-items: center; }
.gts-card--auth { width: 100%; max-width: 480px; }
.gts-page--join .gts-card--auth { max-width: 560px; }
.gts-page--login > .gts-notice, .gts-page--forgot > .gts-notice, .gts-page--reset > .gts-notice, .gts-page--logout > .gts-notice, .gts-page--join > .gts-notice { width: 100%; max-width: 480px; box-sizing: border-box; }
.gts-auth__alt { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; }
.gts-btn--danger { border-color: var(--gts-danger); background: transparent; color: var(--gts-danger); }
.gts-btn--danger:hover { background: color-mix(in srgb, var(--gts-danger) 10%, transparent); }
.gts-card--danger { border-color: color-mix(in srgb, var(--gts-danger) 45%, var(--gts-line)); }
.gts-profile-card__links { margin-top: 0.25rem; }
.gts-row--link { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr); }
@media (max-width: 520px) { .gts-row--link { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; } }
.gts-links-rows { display: flex; flex-direction: column; gap: 0.6rem; }
.gts-input[readonly] { opacity: 0.75; }
.gts-prefixed { display: flex; align-items: stretch; min-width: 0; }
.gts-prefixed__pre { display: inline-flex; align-items: center; padding: 0 0.7em; border: var(--gts-border-width) solid var(--gts-line); border-right: 0; border-radius: var(--gts-radius-sm) 0 0 var(--gts-radius-sm); color: var(--gts-muted); font-size: 0.9em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 55%; }
.gts-prefixed .gts-input { border-radius: 0 var(--gts-radius-sm) var(--gts-radius-sm) 0; min-width: 0; }

/* People */
.gts-avatar--xxl { width: 160px; height: 160px; font-size: 3rem; }
.gts-people { display: flex; flex-direction: column; gap: 1.25rem; }
.gts-people__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 0.85rem; margin: 0; padding: 0; list-style: none; }
.gts-person-card { display: flex; align-items: center; gap: 0.85rem; padding: 0.9rem; border: var(--gts-border-width) solid var(--gts-line-soft); border-radius: var(--gts-radius); background: var(--gts-surface); color: var(--gts-fg); text-decoration: none; }
.gts-person-card:hover { border-color: var(--gts-line); }
.gts-person-card__text { display: flex; flex-direction: column; min-width: 0; }
.gts-person-card__name { font-weight: 700; overflow-wrap: anywhere; }
.gts-person-card__meta { color: var(--gts-muted); font-size: 0.875rem; }
/* An entry with the person's profile card (the profiles plugin draws it: only its place is set here). */
.gts-people__grid.has-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.gts-person-card.has-card { flex-wrap: wrap; justify-content: space-between; gap: 0.45rem 0.85rem; min-width: 0; height: 100%; padding: 0.7rem 0.9rem 0.7rem 0.7rem; }
.gts-person-card.has-card .gts-person-card__meta { padding-left: 0.4rem; }
.gts-person { display: flex; flex-direction: column; gap: 1.25rem; }
.gts-person__head { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.gts-person__who { display: flex; flex-direction: column; gap: 0.5rem; }
.gts-person__affil { margin: 0; font-size: 1.1rem; }
.gts-person__links { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin: 0; padding: 0; list-style: none; }
.gts-person__list { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.gts-person__list li { display: flex; flex-direction: column; gap: 0.1rem; }
.gts-pager { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.gts-pager a, .gts-pager span { display: inline-grid; place-items: center; min-width: 2.2rem; height: 2.2rem; border: 1px solid var(--gts-line-soft); border-radius: var(--gts-radius-sm); color: var(--gts-fg); text-decoration: none; }
.gts-pager__current { border-color: var(--gts-accent) !important; font-weight: 700; }

/* Mentions: an @ and the name in a tinted chip; a link when the profile is public */
.gts-mention { display: inline-flex; align-items: baseline; gap: 0.05em; padding: 0 0.45em; border-radius: 999px; background: color-mix(in srgb, var(--gts-tone, var(--gts-accent)) 22%, transparent); color: inherit; font-weight: 600; text-decoration: none; white-space: nowrap; position: relative; }
.gts-mention__at { opacity: 0.7; }
a.gts-mention:hover { background: color-mix(in srgb, var(--gts-tone, var(--gts-accent)) 36%, transparent); }
.gts-mention--private { cursor: help; }
.gts-mention--private[data-gts-tip]:hover::after, .gts-mention--private[data-gts-tip]:focus-visible::after { content: attr(data-gts-tip); position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translateX(-50%); padding: 0.3em 0.6em; border-radius: 6px; background: var(--gts-fg); color: var(--gt-surface, #fff); font-size: 0.8rem; font-weight: 500; white-space: nowrap; z-index: 5; pointer-events: none; }

/* A bare branded page (gatechy_bare_page()) without a template of the theme's */
body.gts-bare { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--gt-bg, var(--ic-bg, Canvas)); color: var(--gt-ink, var(--ic-text, CanvasText)); }
.gts-bare__bar { display: flex; align-items: center; gap: 1rem; padding: 1rem clamp(16px, 4vw, 40px); border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent); }
.gts-bare__brand { color: inherit; font-weight: 800; font-size: 1.25rem; letter-spacing: 0.02em; text-decoration: none; }
.gts-bare__main { flex: 1; width: min(100% - 2 * clamp(16px, 4vw, 40px), 1100px); margin: clamp(24px, 4vw, 48px) auto; }
.gts-bare__foot { padding: 1rem clamp(16px, 4vw, 40px); color: color-mix(in srgb, currentColor 60%, transparent); font-size: 0.875rem; }
.gts-bare__foot p { margin: 0; }

/* A theme's article styles (margins on headings, paragraphs and lists) stay out of the forms and cards. */
.gts .gts-card > *:first-child { margin-top: 0; }
.gts .gts-form p, .gts .gts-card p { margin-bottom: 0; }
.gts .gts-field, .gts .gts-check, .gts .gts-actions { margin-top: 0; }
.gts ul.gts-ticks, .gts ul.gts-features, .gts ul.gts-nots, .gts ul.gts-promises, .gts ol.gts-ways, .gts ul.gts-person__list, .gts ul.gts-people__grid { padding-left: 0; list-style: none; }
