/* Phase 1T.5.82 - opt-in seasonal chroming.
   Without a complete, explicit Season palette the body has no
   pems-season-themed class and EVERY established color is untouched. */
body.pems-season-themed {
    --pems-clean-red-deep: var(--pems-season-primary);
    --pems-clean-red: var(--pems-season-primary);
    --pems-clean-red-action: var(--pems-season-primary);
    --pems-clean-red-hover: color-mix(in srgb, var(--pems-season-primary) 80%, black);
    --pems-clean-gold: var(--pems-season-accent);
    --pems-clean-gold-deep: color-mix(in srgb, var(--pems-season-accent) 80%, black);
}
body.pems-season-themed.pems-soft-authenticated .pems-shell-sidebar,
body.pems-season-themed .pems-public-header {
    background: linear-gradient(160deg, color-mix(in srgb, var(--pems-season-primary) 77%, black), var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed .pems-page-banner,
body.pems-season-themed .pems-public-hero,
body.pems-season-themed .pems-auth-brand-panel {
    background: linear-gradient(120deg, color-mix(in srgb, var(--pems-season-primary) 88%, black), var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed .pems-button-primary {
    border-color: var(--pems-season-primary) !important;
    background: var(--pems-season-primary) !important;
    color: #fff !important;
}
body.pems-season-themed .pems-button-gold {
    background: var(--pems-season-accent) !important;
    border-color: color-mix(in srgb, var(--pems-season-accent) 80%, black) !important;
    color: #3f1717 !important;
}
body.pems-season-themed .pems-shell-header-accent,
body.pems-season-themed .pems-login-accent,
body.pems-season-themed .pems-navigation-progress {
    background: linear-gradient(90deg, var(--pems-season-primary), var(--pems-season-accent)) !important;
}
/* Never recolor scoring semantics (success/error/warnings), rank colors,
   Division identities, existing bracket connectors or historical PDFs. */

body.pems-season-themed > header { /* Field layout only. Other layouts wrap their chrome. */
    background: linear-gradient(135deg, color-mix(in srgb, var(--pems-season-primary) 75%, black), var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}

body.pems-season-themed .pems-page-banner h1 .text-amber-300,
body.pems-season-themed .pems-auth-brand-pill {
    color: var(--pems-season-accent) !important;
}

body.pems-season-themed .pems-public-button--gold {
    background: var(--pems-season-accent) !important;
    border-color: var(--pems-season-accent) !important;
    color: #3f1717 !important;
}


/* Phase 1T.5.85 - Complete opt-in season chrome and action token coverage.
   Loaded LAST in all layouts, after global select and legacy UI layers.
   Scope to opted-in current palette; leave historical result/rank/semantic
   status and inline division/category stripe identities untouched. */
body.pems-season-themed {
    --pems-clean-red-deep: var(--pems-season-primary);
    --pems-clean-red: var(--pems-season-primary);
    --pems-clean-red-action: var(--pems-season-primary);
    --pems-clean-red-hover: color-mix(in srgb, var(--pems-season-primary) 84%, black);
    --pems-clean-red-soft: color-mix(in srgb, var(--pems-season-primary) 7%, white);
    --pems-clean-gold: var(--pems-season-accent);
    --pems-clean-gold-deep: color-mix(in srgb, var(--pems-season-accent) 80%, black);
    --pems-clean-gold-soft: color-mix(in srgb, var(--pems-season-accent) 11%, white);
}
/* Structural chrome and generic primary/gold actions; destructive action
   buttons and semantic success/warning/danger must remain recognisable. */
body.pems-season-themed .pems-page-banner,
body.pems-season-themed.pems-soft-authenticated .pems-page-banner,
body.pems-season-themed .pems-public-hero {
    background: linear-gradient(120deg, color-mix(in srgb, var(--pems-season-primary) 83%, black), var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed .pems-page-banner::after,
body.pems-season-themed .pems-shell-header-accent,
body.pems-season-themed .pems-login-accent,
body.pems-season-themed .pems-navigation-progress {
    background: linear-gradient(90deg, var(--pems-season-primary), var(--pems-season-accent)) !important;
}
body.pems-season-themed .pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning),
body.pems-season-themed .pems-public-button--primary {
    color: #fff !important;
    background: var(--pems-season-primary) !important;
    border-color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning):hover:not(:disabled),
body.pems-season-themed .pems-public-button--primary:hover:not(:disabled) {
    background: var(--pems-clean-red-hover) !important;
    border-color: var(--pems-clean-red-hover) !important;
}
body.pems-season-themed .pems-button-gold,
body.pems-season-themed .pems-public-button--gold {
    color: #3f1717 !important;
    background: var(--pems-season-accent) !important;
    border-color: var(--pems-clean-gold-deep) !important;
}
body.pems-season-themed .pems-button-gold:hover:not(:disabled),
body.pems-season-themed .pems-public-button--gold:hover:not(:disabled) {
    background: color-mix(in srgb, var(--pems-season-accent) 86%, white) !important;
}
/* Neutral/secondary controls receive seasonal focus and hover, not a
   primary fill (keeps destructive, disabled and tertiary actions distinct). */
body.pems-season-themed .pems-button-secondary:hover:not(:disabled),
body.pems-season-themed .pems-button-light:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--pems-season-primary) 50%, white) !important;
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed :is(.pems-button-primary,.pems-button-secondary,.pems-button-gold,.pems-select-button,.pems-global-select-trigger):focus-visible {
    outline: 2px solid var(--pems-season-accent) !important;
    outline-offset: 2px;
}
/* Badges, top-of-card geometry and current-season identity. */
body.pems-season-themed .pems-count-badge {
    color: var(--pems-season-primary) !important;
    border: 1px solid color-mix(in srgb, var(--pems-season-primary) 22%, white) !important;
    background: color-mix(in srgb, var(--pems-season-primary) 7%, white) !important;
}
body.pems-season-themed .pems-select-button {
    color: var(--pems-season-primary) !important;
    border-color: color-mix(in srgb, var(--pems-season-primary) 20%, white) !important;
}
body.pems-season-themed .pems-select-button:hover:not(:disabled) {
    color: var(--pems-season-primary) !important;
    background: color-mix(in srgb, var(--pems-season-primary) 5%, white) !important;
    border-color: var(--pems-season-primary) !important;
}
body.pems-season-themed :is(.pems-stat,.pems-team-card) {
    border-color: color-mix(in srgb, var(--pems-season-primary) 12%, white) !important;
}
body.pems-season-themed .pems-stat-accent,
body.pems-season-themed.pems-soft-authenticated .pems-stat-accent {
    background: linear-gradient(180deg, var(--pems-season-primary), var(--pems-season-accent)) !important;
}
/* Only generic stripes: inline division/category stripe colors are preserved. */
body.pems-season-themed .pems-team-card-stripe:not([style]) {
    background: linear-gradient(90deg, var(--pems-season-primary), var(--pems-season-accent)) !important;
}
body.pems-season-themed .pems-current-season-card {
    position: relative;
    border-color: color-mix(in srgb, var(--pems-season-primary) 18%, white) !important;
}
body.pems-season-themed .pems-current-season-card-accent {
    background: linear-gradient(90deg, var(--pems-season-primary), var(--pems-season-accent)) !important;
}
body.pems-season-themed .pems-current-season-card-title,
body.pems-season-themed .pems-current-season-name {
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-current-season-quote {
    color: var(--pems-season-primary) !important;
    border-color: color-mix(in srgb, var(--pems-season-accent) 65%, white) !important;
    background: color-mix(in srgb, var(--pems-season-accent) 10%, white) !important;
}
/* Global searchable dropdown may be portaled directly to BODY. Selectors
   deliberately anchor BODY rather than an inner workspace container. */
body.pems-season-themed .pems-global-select-trigger:hover:not(:disabled),
body.pems-season-themed .pems-global-select.is-open .pems-global-select-trigger,
body.pems-season-themed .pems-global-select-trigger:focus-visible,
body.pems-season-themed .pems-global-select-search-wrap:focus-within {
    border-color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-global-select.is-open .pems-global-select-trigger,
body.pems-season-themed .pems-global-select-search-wrap:focus-within {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pems-season-primary) 13%, transparent) !important;
}
body.pems-season-themed .pems-global-select-option:hover:not(:disabled),
body.pems-season-themed .pems-global-select-option.is-active {
    color: var(--pems-season-primary) !important;
    background: color-mix(in srgb, var(--pems-season-accent) 16%, white) !important;
}
body.pems-season-themed .pems-global-select-option[aria-selected="true"] {
    color: var(--pems-season-primary) !important;
    background: color-mix(in srgb, var(--pems-season-primary) 8%, white) !important;
}
body.pems-season-themed .pems-global-select-check {
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed select.pems-field:focus-visible {
    outline-color: var(--pems-season-accent) !important;
    border-color: var(--pems-season-primary) !important;
}
/* Browser-native option highlight remains OS controlled, but where supported
   checked option styling follows the active Season. */
body.pems-season-themed select.pems-field option:checked {
    background: var(--pems-season-primary);
    color: #fff;
}
/* Back-to-top exists on public and authenticated pages. */
body.pems-season-themed .pems-back-to-top {
    background: var(--pems-season-primary) !important;
    color: var(--pems-season-accent) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed .pems-back-to-top:hover {
    background: var(--pems-clean-red-hover) !important;
}
/* Generic display utilities are LAYOUT, not color identity; preserve
   flex/md:flex-row/grid sizing and style only contained UI components. */

/* Accent buttons remain high-contrast against a season-colored banner.
   Normal primary actions use the primary, but inside the primary-colored
   banner they use the lighter accent rather than disappearing into it. */
body.pems-season-themed .pems-page-banner .pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning),
body.pems-season-themed .pems-page-banner .pems-button-create {
    color: #3f1717 !important;
    background: var(--pems-season-accent) !important;
    border-color: var(--pems-clean-gold-deep) !important;
}
body.pems-season-themed .pems-page-banner .pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning):hover,
body.pems-season-themed .pems-page-banner .pems-button-create:hover {
    background: color-mix(in srgb, var(--pems-season-accent) 86%, white) !important;
}
body.pems-season-themed .pems-button-secondary:not(:disabled) {
    border-color: color-mix(in srgb, var(--pems-season-primary) 22%, white) !important;
    color: var(--pems-season-primary) !important;
}

/* The current operational season summary requires identical size/position
   in default and opt-in mode. Logo is ALWAYS contained; never clipped or huge. */
.pems-current-season-card { min-width: 0; }
.pems-current-season-card-accent {
    height: .375rem;
    margin: -1.125rem -1.125rem 1rem;
    background: linear-gradient(90deg, #8b0000, #d21212 65%, #f5c400);
}
.pems-current-season-card-title { color: #991b1b; }
.pems-current-season-name { color: #690000; }
.pems-current-season-logo {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 5.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #d9e2ef;
    border-radius: .85rem;
    background: #fff;
    padding: .65rem;
    margin: .5rem 0 .75rem;
}
.pems-current-season-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 4.2rem;
    object-fit: contain;
    margin: auto;
    flex: 0 1 auto;
}
.pems-current-season-quote {
    color: #7f1d1d;
    border: 1px solid #fde68a;
    background: #fffbeb;
}


/* Phase 1T.5.86 - audited opt-in palette coverage and portable modal UI.
   The season is only the current global UI chrome, not historical print,
   ranking medals, event status, category/division identities, or scores. */
.pems-brand-text { color: #741818; }
.pems-brand-heading { color: #641515; }
.pems-brand-accent-text { color: #e7c85f; }
body.pems-season-themed .pems-brand-text,
body.pems-season-themed .pems-brand-heading { color: var(--pems-season-primary) !important; }
body.pems-season-themed .pems-brand-accent-text { color: var(--pems-season-accent) !important; }
body.pems-season-themed .pems-workspace-event-card,
body.pems-season-themed .pems-branded-card {
    border-color: color-mix(in srgb, var(--pems-season-primary) 18%, white) !important;
}
body.pems-season-themed .pems-workspace-event-card:hover {
    border-color: color-mix(in srgb, var(--pems-season-primary) 38%, white) !important;
}
/* This is the generic fallback ONLY; category-specific inline primary stripes win. */
body.pems-season-themed .pems-workspace-event-stripe:not([style]),
body.pems-season-themed .pems-event-section-accent {
    background: linear-gradient(90deg,var(--pems-season-primary),var(--pems-season-accent)) !important;
}
body.pems-season-themed .pems-event-workspace-banner {
    background: linear-gradient(115deg,color-mix(in srgb,var(--pems-season-primary) 82%,black),var(--pems-season-primary)) !important;
    border-color: color-mix(in srgb,var(--pems-season-primary) 35%,transparent) !important;
}
body.pems-season-themed .pems-schedule-day-accent {
    background: linear-gradient(180deg,var(--pems-season-accent),var(--pems-season-primary)) !important;
}
/* Preserve an obvious danger/warning identity while adapting its frame to the
   current palette. No success/status/badge semantics are recolored. */
body.pems-season-themed :is(button,a).pems-button-danger:not(:disabled),
body.pems-season-themed :is(button,a).pems-semantic-danger:not(:disabled) {
    border-color: color-mix(in srgb,var(--pems-season-primary) 35%,#b91c1c) !important;
    background: color-mix(in srgb,var(--pems-season-primary) 35%,#b91c1c) !important;
    color: #fff !important;
}
body.pems-season-themed :is(button,a).pems-button-danger:hover:not(:disabled),
body.pems-season-themed :is(button,a).pems-semantic-danger:hover:not(:disabled) {
    border-color: color-mix(in srgb,var(--pems-season-primary) 25%,#7f1d1d) !important;
    background: color-mix(in srgb,var(--pems-season-primary) 25%,#7f1d1d) !important;
}
body.pems-season-themed :is(button,a).pems-button-danger:focus-visible,
body.pems-season-themed :is(button,a).pems-semantic-danger:focus-visible {
    outline: 2px solid var(--pems-season-accent) !important;
    outline-offset: 2px;
}
/* Consolidate normal actions also when native Tailwind arbitrary utilities
   coexist; semantic success/warning/destructive controls remain distinct. */
body.pems-season-themed :is(button,a).pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning),
body.pems-season-themed :is(button,a).pems-button-create {
    border-color: var(--pems-season-primary) !important;
    background: var(--pems-season-primary) !important;
    color: white !important;
}
body.pems-season-themed .pems-page-banner :is(button,a).pems-button-create,
body.pems-season-themed .pems-page-banner :is(button,a).pems-button-primary:not(.pems-semantic-danger):not(.pems-semantic-success):not(.pems-semantic-warning) {
    border-color: var(--pems-season-accent) !important;
    background: var(--pems-season-accent) !important;
    color: #201817 !important;
}
/* The shared modal uses a Livewire-aware body portal. Constrain its viewport
   independently of the sidebar and center regardless of DevTools/mobile width. */
.pems-modal-root { inset: 0 !important; width: 100% !important; height: 100dvh !important; }
.pems-modal-viewport {
    box-sizing: border-box !important;
    width: 100% !important; height: 100dvh !important;
    max-width: none !important;
    display: flex !important; justify-content: center !important;
    align-items: center !important;
    padding: clamp(.5rem,2.2vw,1.25rem) !important;
}
.pems-modal-panel {
    flex: 0 1 var(--pems-modal-max,42rem) !important;
    max-width: min(var(--pems-modal-max,42rem),calc(100vw - 1rem)) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-height: calc(100dvh - clamp(1rem,4.4vw,2.5rem)) !important;
    margin: auto !important;
}
.pems-modal-body { min-height: 0 !important; overflow-x: clip !important; overflow-y: auto !important; }
.pems-modal-body :is(.grid,.flex) > * { min-width:0; }
.pems-modal-panel [data-pems-modal-footer] { flex-wrap: wrap; gap: .5rem; }
@media (max-width:480px) {
    .pems-modal-panel [data-pems-modal-footer] > :is(button,a) { flex:1 1 auto; }
    .pems-modal-panel > div:first-child { padding: .75rem 1rem !important; }
    .pems-modal-body { padding: 1rem !important; }
}
/* Critical: public's extensive inline CSS uses --pems-public-* defaults at
   :root. Redefine these on BODY where the live palette is available. */
body.pems-season-themed.pems-public-body {
    --pems-public-red-deep: color-mix(in srgb,var(--pems-season-primary) 80%,black);
    --pems-public-red: var(--pems-season-primary);
    --pems-public-red-soft: color-mix(in srgb,var(--pems-season-primary) 86%,white);
    --pems-public-gold: var(--pems-season-accent);
    --pems-public-gold-soft: color-mix(in srgb,var(--pems-season-accent) 74%,white);
}
body.pems-season-themed.pems-public-body :is(.pems-public-header,.pems-public-hero) {
    background: linear-gradient(115deg,color-mix(in srgb,var(--pems-season-primary) 80%,black),var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed.pems-public-body .pems-public-button--gold,
body.pems-season-themed.pems-public-body .pems-public-button--gold:hover {
    border-color: var(--pems-season-accent) !important;
    background: var(--pems-season-accent) !important;
    color: #201817 !important;
}
body.pems-season-themed.pems-public-body .pems-public-nav-link.is-active::before,
body.pems-season-themed.pems-public-body .pems-public-hover-card::before {
    background: var(--pems-season-accent) !important;
}
body.pems-season-themed.pems-public-body :is(.pems-public-select,.pems-public-input):focus {
    border-color: var(--pems-season-primary) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb,var(--pems-season-primary) 12%,transparent) !important;
}
body.pems-season-themed.pems-public-body .pems-public-filter-label {
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed.pems-public-body .pems-public-select {
    background-image: linear-gradient(45deg,transparent 50%,var(--pems-season-primary) 50%),linear-gradient(135deg,var(--pems-season-primary) 50%,transparent 50%) !important;
}
body.pems-season-themed.pems-public-body .pems-season-quote-strip {
    border-color: var(--pems-season-accent) !important;
    background: color-mix(in srgb,var(--pems-season-accent) 9%,white) !important;
}

/* Public content surfaces: named sections only. The archived Season detail hero
   is intentionally excluded, retaining historical Season identity. */
body.pems-season-themed.pems-public-body .pems-public-surface-hero {
    background: linear-gradient(125deg,color-mix(in srgb,var(--pems-season-primary) 82%,black),var(--pems-season-primary)) !important;
    border-bottom-color: var(--pems-season-accent) !important;
}
body.pems-season-themed.pems-public-body :is(.pems-public-ranking-head,.pems-event-result-head,.pems-medal-grid:not(.pems-medals-table)) {
    background: linear-gradient(90deg,color-mix(in srgb,var(--pems-season-primary) 87%,black),var(--pems-season-primary)) !important;
}
body.pems-season-themed.pems-public-body button[data-pems-date-active="1"] {
    background: var(--pems-season-primary) !important;
    border-color: var(--pems-season-accent) !important;
    color: white !important;
}
body.pems-season-themed.pems-public-body :is(.pems-public-ranking-points,.pems-public-card-arrow) {
    color: var(--pems-season-primary) !important;
}


/* Phase 1T.5.88 - explicit branded component coverage.
   Apply ONLY with the user's opt-in Season palette. Structural, per-team
   and per-category identity, danger/success meaning and prints are retained. */
.pems-season-rule-stripe {
    background: linear-gradient(90deg,#8b0000,#d41414 65%,#f5c400);
}
.pems-brand-checkbox { color: #741818; accent-color: #741818; --tw-ring-color: #741818; }
.pems-brand-accent-contrast { color: #805a00; }
.pems-archive-season-card-head .pems-brand-accent-text { color: var(--pems-archive-accent,#d7aa1d) !important; }
body.pems-season-themed.pems-public-body .pems-archive-season-card-head .pems-brand-accent-text { color: var(--pems-archive-accent,#d7aa1d) !important; }
.pems-archive-season-card-head {
    background: linear-gradient(125deg,
        color-mix(in srgb,var(--pems-archive-primary,#690000) 78%,#151515),
        var(--pems-archive-primary,#8d1414));
    border-bottom: 3px solid var(--pems-archive-accent,#d7aa1d);
}
body.pems-season-themed .pems-season-rule-stripe {
    background: linear-gradient(90deg,var(--pems-season-primary),var(--pems-season-accent)) !important;
}
/* Public hero marker bypasses legacy hard-coded arbitrary-gradient utilities.
   Per-Division Team detail hero deliberately DOES NOT use this marker. */
body.pems-season-themed.pems-public-body .pems-season-surface-hero {
    background: linear-gradient(125deg,
        color-mix(in srgb,var(--pems-season-primary) 80%,#151515),
        var(--pems-season-primary)) !important;
    border-bottom-color: var(--pems-season-accent) !important;
}
body.pems-season-themed.pems-public-body .pems-season-surface-hero .text-amber-300,
body.pems-season-themed.pems-public-body .pems-season-surface-hero .text-amber-200 {
    color: var(--pems-season-accent) !important;
}
/* The public Team navigation underline is current site chrome, not a Team-color badge. */
body.pems-season-themed.pems-public-body .pems-public-team-tab-indicator {
    background: var(--pems-season-accent) !important;
}
/* Explicit branded text tokens added to Setup, operational cards and Settings.
   Do not match ordinary .text-red-* classes: they convey status/warnings. */
body.pems-season-themed .pems-brand-text,
body.pems-season-themed .pems-season-context-row .pems-brand-text {
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-brand-heading {
    color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-brand-accent-contrast {
    color: color-mix(in srgb,var(--pems-season-accent) 68%,black) !important;
}
body.pems-season-themed .pems-brand-checkbox {
    accent-color: var(--pems-season-primary) !important;
}
body.pems-season-themed .pems-brand-checkbox:focus-visible {
    outline: 2px solid var(--pems-season-accent) !important;
    outline-offset: 2px;
}
/* Destructive Deactivate / Unassign / Cancel / Archive buttons do not become
   neutral primary controls. Use recognizable action-red + a season hue and
   accent focus so they no longer inherit the old fixed institutional maroon. */
body.pems-season-themed :is(button,a).pems-button-danger:not(:disabled),
body.pems-season-themed :is(button,a).pems-semantic-danger:not(:disabled) {
    background: color-mix(in srgb,#cc3341 65%,var(--pems-season-primary)) !important;
    border: 1px solid color-mix(in srgb,#af2433 70%,var(--pems-season-primary)) !important;
    color: #fff !important;
}
body.pems-season-themed :is(button,a).pems-button-danger:hover:not(:disabled),
body.pems-season-themed :is(button,a).pems-semantic-danger:hover:not(:disabled) {
    background: color-mix(in srgb,#a81e2c 72%,var(--pems-season-primary)) !important;
    border-color: var(--pems-season-accent) !important;
}
body.pems-season-themed .pems-button-danger:focus-visible,
body.pems-season-themed .pems-semantic-danger:focus-visible {
    outline: 2px solid var(--pems-season-accent) !important;
    outline-offset: 2px;
}
/* Show the opt-in palette in neutral/secondary and generic action selectors
   while keeping distinct status success green and selected Division hues. */
body.pems-season-themed .pems-season-context-row {
    border-color: color-mix(in srgb,var(--pems-season-primary) 20%,white) !important;
}
body.pems-season-themed :is(.pems-button-secondary,.pems-button-light):hover:not(:disabled),
body.pems-season-themed :is(.pems-button-secondary,.pems-button-light):focus-visible {
    color: var(--pems-season-primary) !important;
    border-color: var(--pems-season-accent) !important;
}
@media (prefers-reduced-motion: reduce) {
    body.pems-season-themed :is(.pems-season-surface-hero,.pems-archive-season-card-head) {
        transition: none !important;
    }
}

body.pems-season-themed.pems-public-body .pems-season-hero-rule { background: var(--pems-season-accent) !important; }
body.pems-season-themed .pems-brand-checkbox { color: var(--pems-season-primary) !important; --tw-ring-color: var(--pems-season-accent) !important; }

/* Phase 1T.5.89 - Event workspace seasonal surface completion.
   These rules use the layout-level season variables directly so the same
   components retain the legacy maroon/gold fallback when no custom palette
   exists, while an opted-in Season palette cannot be bypassed by arbitrary
   Tailwind background/text utilities in individual workspace views. */
@media screen {
    .pems-app-body :is(.pems-season-event-hero,.pems-event-workspace-banner,.pems-event-result-hero,.pems-event-officiating-hero,.pems-tournament-hero) {
        background-color: var(--pems-season-primary,#741818) !important;
        background-image: linear-gradient(
            118deg,
            color-mix(in srgb,var(--pems-season-primary,#741818) 82%,black),
            var(--pems-season-primary,#741818)
        ) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 42%,transparent) !important;
        box-shadow: 0 26px 70px -45px color-mix(in srgb,var(--pems-season-primary,#741818) 72%,black) !important;
    }
    .pems-app-body .pems-season-event-hero .pems-season-event-kicker,
    .pems-app-body .pems-season-event-kicker {
        color: var(--pems-season-accent,#d7aa1d) !important;
    }
    .pems-app-body .pems-season-event-accent-pill {
        color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 88%,white) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 45%,transparent) !important;
        background: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 15%,transparent) !important;
    }
    .pems-app-body .pems-season-event-hero .pems-geo-pattern {
        color: var(--pems-season-accent,#d7aa1d) !important;
    }

    /* Tournament summary is current operational chrome, not a score/rank
       semantic. Complete status remains governed by its existing success class. */
    .pems-app-body .pems-season-tournament-summary .pems-tournament-summary-card {
        border-color: color-mix(in srgb,var(--pems-season-primary,#741818) 14%,white) !important;
    }
    .pems-app-body .pems-season-tournament-summary .pems-tournament-summary-value:not(.is-complete) {
        color: var(--pems-season-primary,#741818) !important;
    }
    .pems-app-body .pems-season-tournament-summary .pems-tournament-summary-label {
        color: color-mix(in srgb,var(--pems-season-primary,#741818) 52%,#94a3b8) !important;
    }

    /* When a Season palette is explicitly configured, destructive operational
       buttons follow that palette too. The action verb and darker treatment
       continue to distinguish destructive intent from ordinary primary actions. */
    body.pems-season-themed :is(button,a).pems-button-danger:not(:disabled),
    body.pems-season-themed :is(button,a).pems-semantic-danger:not(:disabled) {
        background: color-mix(in srgb,var(--pems-season-primary) 86%,black) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent) 34%,var(--pems-season-primary)) !important;
        color: #fff !important;
    }
    body.pems-season-themed :is(button,a).pems-button-danger:hover:not(:disabled),
    body.pems-season-themed :is(button,a).pems-semantic-danger:hover:not(:disabled) {
        background: color-mix(in srgb,var(--pems-season-primary) 74%,black) !important;
        border-color: var(--pems-season-accent) !important;
        color: #fff !important;
    }
}

/* Phase 1T.5.90 - shared-venue rollout companion: force current-season
   hero surfaces through the layout variables themselves. This intentionally
   does not depend on the optional pems-season-themed class so uploaded season
   identity and palette variables cannot be bypassed by legacy Tailwind
   background shorthands on operational/public hero sections. */
@media screen {
    body.pems-app-body :is(
        .pems-season-event-hero,
        .pems-event-workspace-banner,
        .pems-event-result-hero,
        .pems-event-officiating-hero,
        .pems-tournament-hero
    ) {
        background: linear-gradient(
            118deg,
            color-mix(in srgb,var(--pems-season-primary,#741818) 82%,black),
            var(--pems-season-primary,#741818)
        ) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 45%,transparent) !important;
    }

    body.pems-public-body .pems-public-surface-hero {
        background: linear-gradient(
            125deg,
            color-mix(in srgb,var(--pems-season-primary,#741818) 82%,black),
            var(--pems-season-primary,#741818)
        ) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 55%,transparent) !important;
        border-bottom-color: var(--pems-season-accent,#d7aa1d) !important;
        box-shadow: 0 24px 68px -44px color-mix(in srgb,var(--pems-season-primary,#741818) 68%,black) !important;
    }
}

/* Phase 1T.5.90.1 - deployment reconciliation, stable public selects and
   final high-specificity seasonal hero hydration. */
@media screen {
    /* Keep native public filters readable before/after any JS enhancement and
       prevent OS/browser dark form-control rendering from leaking into PADULA. */
    html body.pems-public-body select.pems-public-select {
        color-scheme: light !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        background-color: #ffffff !important;
        color: #334155 !important;
        border-color: #d7dce2 !important;
        background-image:
            linear-gradient(45deg, transparent 50%, var(--pems-season-primary,#741818) 50%),
            linear-gradient(135deg, var(--pems-season-primary,#741818) 50%, transparent 50%) !important;
        background-position:
            calc(100% - 15px) 50%,
            calc(100% - 11px) 50% !important;
        background-size: 4px 4px, 4px 4px !important;
        background-repeat: no-repeat !important;
    }
    html body.pems-public-body select.pems-public-select option {
        color: #0f172a !important;
        background: #ffffff !important;
    }
    html body.pems-public-body .pems-global-select-trigger {
        min-height: 36px !important;
        height: 36px !important;
        background: #ffffff !important;
        color: #334155 !important;
    }

    /* These selectors deliberately out-rank legacy Tailwind arbitrary-gradient
       utilities on the exact surfaces reported in browser QA. */
    html body.pems-public-body .pems-public-surface-hero.pems-season-surface-hero,
    html body.pems-public-body .pems-public-surface-hero {
        background-color: var(--pems-season-primary,#741818) !important;
        background-image: linear-gradient(
            125deg,
            color-mix(in srgb,var(--pems-season-primary,#741818) 82%,black),
            var(--pems-season-primary,#741818)
        ) !important;
        border-bottom-color: var(--pems-season-accent,#d7aa1d) !important;
    }
    html body.pems-app-body .pems-event-workspace-banner.pems-season-event-hero,
    html body.pems-app-body .pems-event-workspace-banner,
    html body.pems-app-body .pems-event-result-hero,
    html body.pems-app-body .pems-event-officiating-hero,
    html body.pems-app-body .pems-tournament-hero {
        background-color: var(--pems-season-primary,#741818) !important;
        background-image: linear-gradient(
            118deg,
            color-mix(in srgb,var(--pems-season-primary,#741818) 82%,black),
            var(--pems-season-primary,#741818)
        ) !important;
        border-color: color-mix(in srgb,var(--pems-season-accent,#d7aa1d) 45%,transparent) !important;
    }
}


/* Phase 1T.5.90.2 - exact-source rebase: shared-venue/theme repair preserved while retaining Phase 1T.5.81 bracket score-reset rewind. */

/* Phase 1T.5.91 - selected-Season public surfaces + separated School identity.
   Public index pages can change Season without replacing the outer layout.
   Each hero therefore exposes its selected Season palette through
   --pems-surface-primary/accent and no longer depends only on BODY state. */
@media screen {
    html body.pems-public-body .pems-public-surface-hero,
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero {
        --pems-active-surface-primary: var(--pems-surface-primary, var(--pems-season-primary, #741818));
        --pems-active-surface-accent: var(--pems-surface-accent, var(--pems-season-accent, #d7aa1d));
        background-color: var(--pems-active-surface-primary) !important;
        background-image: linear-gradient(
            125deg,
            color-mix(in srgb, var(--pems-active-surface-primary) 82%, black),
            var(--pems-active-surface-primary)
        ) !important;
        border-color: color-mix(in srgb, var(--pems-active-surface-accent) 55%, transparent) !important;
        border-bottom-color: var(--pems-active-surface-accent) !important;
        box-shadow: 0 24px 68px -44px color-mix(in srgb, var(--pems-active-surface-primary) 68%, black) !important;
    }

    html body.pems-public-body .pems-public-surface-hero :is(
        .pems-brand-accent-text,
        .text-amber-200,
        .text-amber-300
    ),
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero :is(
        .pems-brand-accent-text,
        .text-amber-200,
        .text-amber-300
    ) {
        color: var(--pems-active-surface-accent) !important;
    }

    html body.pems-public-body .pems-public-surface-hero .pems-season-hero-rule,
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero .pems-season-hero-rule {
        background: var(--pems-active-surface-accent) !important;
    }
}

/* Phase 1T.5.91.3 - public geometric parity with authenticated event heroes.
   The public pages now use the existing P-EMTS pems-geo-pattern renderer instead
   of replacing it with a separate network background. This keeps public and
   authenticated hero geometry visually identical while still tinting the
   native marker from the selected Season accent. */
@media screen {
    html body.pems-public-body :is(
        .pems-public-surface-hero,
        .pems-public-hero.pems-season-surface-hero
    ) {
        isolation: isolate;
    }

    html body.pems-public-body :is(
        .pems-public-surface-hero,
        .pems-public-hero.pems-season-surface-hero
    ) > .pems-geo-pattern {
        pointer-events: none !important;
        color: var(--pems-active-surface-accent, var(--pems-surface-accent, var(--pems-season-accent, #d7aa1d))) !important;
        opacity: .08 !important;
        z-index: 1 !important;
    }

    html body.pems-public-body :is(
        .pems-public-surface-hero,
        .pems-public-hero.pems-season-surface-hero
    ) > :not(.pems-geo-pattern):not(img) {
        position: relative;
    }
}

/* BEGIN P-EMTS Phase 1T.5.91.7 explicit shared geometric renderer */
@media screen {
    :is(body.pems-app-body, body.pems-public-body) .pems-geo-pattern {
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        pointer-events: none !important;
        opacity: .15 !important;
        color: var(--pems-active-surface-accent, var(--pems-surface-accent, var(--pems-season-accent, #d7aa1d))) !important;
        background: currentColor !important;
        mix-blend-mode: screen !important;
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='300' viewBox='0 0 520 300'%3E%3Cg fill='none' stroke='white' stroke-width='1.5' stroke-opacity='.85'%3E%3Cpath d='M15 245 L92 178 L151 230 L225 126 L312 182 L399 83 L505 143'/%3E%3Cpath d='M44 38 L121 103 L201 54 L279 131 L365 44 L472 99'/%3E%3Cpath d='M92 178 L121 103 M151 230 L201 54 M225 126 L279 131 M312 182 L365 44 M399 83 L472 99'/%3E%3C/g%3E%3Cg fill='white'%3E%3Ccircle cx='15' cy='245' r='3'/%3E%3Ccircle cx='92' cy='178' r='3'/%3E%3Ccircle cx='151' cy='230' r='3'/%3E%3Ccircle cx='225' cy='126' r='3'/%3E%3Ccircle cx='312' cy='182' r='3'/%3E%3Ccircle cx='399' cy='83' r='3'/%3E%3Ccircle cx='505' cy='143' r='3'/%3E%3Ccircle cx='44' cy='38' r='3'/%3E%3Ccircle cx='121' cy='103' r='3'/%3E%3Ccircle cx='201' cy='54' r='3'/%3E%3Ccircle cx='279' cy='131' r='3'/%3E%3Ccircle cx='365' cy='44' r='3'/%3E%3Ccircle cx='472' cy='99' r='3'/%3E%3C/g%3E%3C/svg%3E") !important;
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='300' viewBox='0 0 520 300'%3E%3Cg fill='none' stroke='white' stroke-width='1.5' stroke-opacity='.85'%3E%3Cpath d='M15 245 L92 178 L151 230 L225 126 L312 182 L399 83 L505 143'/%3E%3Cpath d='M44 38 L121 103 L201 54 L279 131 L365 44 L472 99'/%3E%3Cpath d='M92 178 L121 103 M151 230 L201 54 M225 126 L279 131 M312 182 L365 44 M399 83 L472 99'/%3E%3C/g%3E%3Cg fill='white'%3E%3Ccircle cx='15' cy='245' r='3'/%3E%3Ccircle cx='92' cy='178' r='3'/%3E%3Ccircle cx='151' cy='230' r='3'/%3E%3Ccircle cx='225' cy='126' r='3'/%3E%3Ccircle cx='312' cy='182' r='3'/%3E%3Ccircle cx='399' cy='83' r='3'/%3E%3Ccircle cx='505' cy='143' r='3'/%3E%3Ccircle cx='44' cy='38' r='3'/%3E%3Ccircle cx='121' cy='103' r='3'/%3E%3Ccircle cx='201' cy='54' r='3'/%3E%3Ccircle cx='279' cy='131' r='3'/%3E%3Ccircle cx='365' cy='44' r='3'/%3E%3Ccircle cx='472' cy='99' r='3'/%3E%3C/g%3E%3C/svg%3E") !important;
        -webkit-mask-size: 520px 300px !important;
        mask-size: 520px 300px !important;
        -webkit-mask-repeat: repeat !important;
        mask-repeat: repeat !important;
    }
    html body.pems-public-body :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero) > .pems-geo-pattern {
        color: var(--pems-hero-accent, var(--pems-active-surface-accent, var(--pems-surface-accent, var(--pems-season-accent, #d7aa1d)))) !important;
        opacity: .17 !important;
    }
    body.pems-app-body .pems-season-event-hero > .pems-geo-pattern { opacity: .12 !important; }
    html body.pems-public-body :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero) > :not(.pems-geo-pattern),
    body.pems-app-body .pems-season-event-hero > :not(.pems-geo-pattern) { position: relative; z-index: 2; }

    html body.pems-public-body {
        --pems-public-chrome-primary: var(--pems-season-primary, #741818);
        --pems-public-chrome-accent: var(--pems-season-accent, #d7aa1d);
        --pems-public-chrome-deep: color-mix(in srgb, var(--pems-public-chrome-primary) 80%, black);
        --pems-public-chrome-soft: color-mix(in srgb, var(--pems-public-chrome-primary) 86%, white);
    }
    html body.pems-public-body .pems-public-header {
        background-color: var(--pems-public-chrome-primary) !important;
        background-image: linear-gradient(90deg,var(--pems-public-chrome-deep),var(--pems-public-chrome-primary) 58%,var(--pems-public-chrome-soft)) !important;
        border-bottom-color: var(--pems-public-chrome-accent) !important;
    }
    html body.pems-public-body :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero) {
        --pems-hero-primary: var(--pems-active-surface-primary, var(--pems-surface-primary, var(--pems-season-primary, #741818)));
        --pems-hero-accent: var(--pems-active-surface-accent, var(--pems-surface-accent, var(--pems-season-accent, #d7aa1d)));
        --pems-hero-deep: color-mix(in srgb, var(--pems-hero-primary) 80%, black);
        --pems-hero-soft: color-mix(in srgb, var(--pems-hero-primary) 86%, white);
        background-color: var(--pems-hero-primary) !important;
        background-image: linear-gradient(90deg,var(--pems-hero-deep),var(--pems-hero-primary) 58%,var(--pems-hero-soft)) !important;
        border-bottom-color: var(--pems-hero-accent) !important;
    }
}
/* END P-EMTS Phase 1T.5.91.7 explicit shared geometric renderer */

/* BEGIN P-EMTS Phase 1T.5.91.8 original geometry restoration */
@media screen {
    /* Exact original renderer from resources/css/app.css. Do not replace with
       connected-line/network masks or triangular graph patterns. */
    :is(body.pems-app-body, body.pems-public-body) .pems-geo-pattern {
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        pointer-events: none !important;
        color: inherit !important;
        background-color: transparent !important;
        background-image:
            linear-gradient(145deg, transparent 0 48%, rgba(255,255,255,.10) 49% 52%, transparent 53%),
            linear-gradient(35deg, transparent 0 72%, rgba(255,255,255,.08) 73% 76%, transparent 77%) !important;
        background-size: 180px 180px, 240px 240px !important;
        background-position: 0 0, 0 0 !important;
        background-repeat: repeat !important;
        mix-blend-mode: normal !important;
        -webkit-mask-image: none !important;
        mask-image: none !important;
        -webkit-mask-size: auto !important;
        mask-size: auto !important;
    }
    body.pems-app-body .pems-season-event-hero > .pems-geo-pattern { opacity: .07 !important; }
    html body.pems-public-body :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero) > .pems-geo-pattern { opacity: .08 !important; }
    html body.pems-public-body :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero) > :not(.pems-geo-pattern),
    body.pems-app-body .pems-season-event-hero > :not(.pems-geo-pattern) { position: relative; z-index: 2; }

    /* Default/no-custom-palette surfaces return to the requested canonical
       #741818 instead of a darker derived gradient. Custom Season palettes keep
       their existing opt-in palette rules. */
    html body.pems-public-body:not(.pems-season-themed) .pems-public-header,
    html body.pems-public-body:not(.pems-season-themed) :is(.pems-public-surface-hero,.pems-public-hero.pems-season-surface-hero),
    body.pems-app-body:not(.pems-season-themed) :is(.pems-season-event-hero,.pems-event-workspace-banner,.pems-event-result-hero,.pems-event-officiating-hero,.pems-tournament-hero) {
        background-color: #741818 !important;
        background-image: none !important;
    }
}
/* END P-EMTS Phase 1T.5.91.8 original geometry restoration */

/* BEGIN P-EMTS Phase 1T.5.91.10 public leaderboard content recovery */
@media screen {
    /* Do not clamp the Leaderboard hero itself. Earlier max-height rules clipped
       the title/time/watermark because the hero content remained taller than the
       forced box. Compactness is now controlled only by responsive padding. */
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero > .relative.z-10 {
        min-height: 0 !important;
        padding-top: clamp(3.75rem, 5vw, 5rem) !important;
        padding-bottom: clamp(3.75rem, 5vw, 5rem) !important;
    }
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero > img.pointer-events-none.absolute {
        max-height: calc(100% - 2rem) !important;
        max-width: min(21rem, 54vw) !important;
    }
}
@media screen and (max-width: 639px) {
    html body.pems-public-body .pems-public-hero.pems-season-surface-hero > .relative.z-10 {
        padding-top: 3.25rem !important;
        padding-bottom: 3.25rem !important;
    }
}
/* END P-EMTS Phase 1T.5.91.10 public leaderboard content recovery */

/* BEGIN P-EMTS Phase 1T.5.91.12 modal scrollbar, user-create UX and Leaderboard hero stabilization */
@media screen {
    html body .pems-modal-body {
        scrollbar-width: thin !important;
        scrollbar-color: var(--pems-season-accent, #d7aa1d) #f3ece7 !important;
    }
    html body .pems-modal-body::-webkit-scrollbar { width: 10px !important; height: 10px !important; }
    html body .pems-modal-body::-webkit-scrollbar-track { background: #f3ece7 !important; border-radius: 999px !important; }
    html body .pems-modal-body::-webkit-scrollbar-thumb {
        background: var(--pems-season-accent, #d7aa1d) !important;
        border: 2px solid #f3ece7 !important;
        border-radius: 999px !important;
        min-height: 32px !important;
    }
    html body .pems-modal-body::-webkit-scrollbar-thumb:hover {
        background: color-mix(in srgb, var(--pems-season-accent, #d7aa1d) 86%, black) !important;
    }

    html body.pems-public-body .pems-public-leaderboard-hero {
        opacity: 1 !important;
        animation: none !important;
        transform: none !important;
    }
}
@media screen and (min-width: 1024px) {
    html body.pems-public-body .pems-public-leaderboard-hero {
        height: clamp(22rem, 40dvh, 26rem) !important;
        min-height: 22rem !important;
        max-height: 26rem !important;
    }
    html body.pems-public-body .pems-public-leaderboard-hero > .relative.z-10 {
        box-sizing: border-box !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }
    html body.pems-public-body .pems-public-leaderboard-hero > img.pointer-events-none.absolute {
        top: 50% !important;
        height: 62% !important;
        width: auto !important;
        max-height: 14rem !important;
        max-width: min(14rem, 42vw) !important;
        object-fit: contain !important;
    }
}
@media screen and (min-width: 640px) and (max-width: 1023px) {
    html body.pems-public-body .pems-public-leaderboard-hero { height:auto !important; min-height:0 !important; max-height:none !important; }
    html body.pems-public-body .pems-public-leaderboard-hero > .relative.z-10 { padding-top:3.25rem !important; padding-bottom:3.25rem !important; }
}
@media screen and (max-width: 639px) {
    html body.pems-public-body .pems-public-leaderboard-hero { height:auto !important; min-height:0 !important; max-height:none !important; }
    html body.pems-public-body .pems-public-leaderboard-hero > .relative.z-10 { padding-top:2.75rem !important; padding-bottom:2.75rem !important; }
}
/* END P-EMTS Phase 1T.5.91.12 modal scrollbar, user-create UX and Leaderboard hero stabilization */

/* BEGIN P-EMTS Phase 1T.5.91.13 Leaderboard watermark, invalid-login loader and tournament banner readability */
@media screen {
    /* The selected School Logo is decorative hero identity. Keep it out of normal
       document flow and below the centered Leaderboard copy. This explicitly
       overrides the generic Season-hero child stacking rule. */
    html body.pems-public-body .pems-public-leaderboard-hero > .pems-public-leaderboard-watermark {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        z-index: 1 !important;
        transform: translate(-50%, -50%) !important;
        pointer-events: none !important;
    }

    /* Tournament operational guidance must remain readable over any valid Season
       primary color; individual utility generation must not decide this contrast. */
    html body.pems-app-body .pems-tournament-hero .pems-tournament-hero-copy {
        color: rgba(255, 255, 255, .82) !important;
    }
}
/* END P-EMTS Phase 1T.5.91.13 Leaderboard watermark, invalid-login loader and tournament banner readability */

/* BEGIN P-EMTS Phase 1T.5.91.14 Leaderboard centering and active History Event counts */
@media screen {
    /* Center the watermark without horizontal translate math. This wins over the
       older generic/direct-image rules and keeps the full School Logo behind the
       Leaderboard headline rather than offset above/left. */
    html body.pems-public-body .pems-public-leaderboard-hero > img.pems-public-leaderboard-watermark.pointer-events-none.absolute {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: 50% !important;
        bottom: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        width: clamp(10rem, 17vw, 14rem) !important;
        height: clamp(10rem, 17vw, 14rem) !important;
        max-width: min(14rem, 44vw) !important;
        max-height: min(14rem, calc(100% - 2rem)) !important;
        object-fit: contain !important;
        object-position: center center !important;
        transform: translateY(-58%) !important;
        z-index: 1 !important;
        pointer-events: none !important;
    }
}
@media screen and (max-width: 639px) {
    html body.pems-public-body .pems-public-leaderboard-hero > img.pems-public-leaderboard-watermark.pointer-events-none.absolute {
        width: min(10rem, 42vw) !important;
        height: min(10rem, 42vw) !important;
        transform: translateY(-54%) !important;
    }
}
/* END P-EMTS Phase 1T.5.91.14 Leaderboard centering and active History Event counts */

/* BEGIN P-EMTS Phase 1T.5.91.15 branding modal and School Logo placement repair */
@media screen {
    /*
     * Branding editors are intentionally institutional maroon/gold surfaces.
     * This loaded-last contract prevents generic header/theme rules from turning
     * the editor header white or leaving white copy invisible.
     */
    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-header {
        position: relative !important;
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 1rem !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 1.125rem 1.375rem 1rem !important;
        overflow: visible !important;
        color: #ffffff !important;
        border-bottom: 4px solid var(--pems-editor-accent, var(--pems-season-accent, #d7aa1d)) !important;
        background-color: #741818 !important;
        background-image: linear-gradient(112deg, #520707 0%, #741818 64%, #8e1a18 100%) !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    /* canonical maroon header wins over generic/theme header rules */
    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-heading {
        display: block !important;
        min-width: 0 !important;
        color: #ffffff !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-eyebrow {
        display: inline-flex !important;
        align-items: center !important;
        color: #fff1b5 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-title {
        display: block !important;
        margin-top: .3rem !important;
        color: #ffffff !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-subtitle {
        display: block !important;
        margin-top: .35rem !important;
        color: rgba(255,255,255,.84) !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-close {
        display: grid !important;
        place-items: center !important;
        flex: 0 0 2.25rem !important;
        width: 2.25rem !important;
        height: 2.25rem !important;
        min-height: 2.25rem !important;
        padding: 0 !important;
        color: #ffffff !important;
        border: 1px solid rgba(255,255,255,.28) !important;
        border-radius: .625rem !important;
        background: rgba(255,255,255,.10) !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-close:hover {
        background: rgba(255,255,255,.22) !important;
    }

    /*
     * All editor file inputs are click-only. Only the custom Select Image
     * control may be visible; this also protects against global file-input CSS.
     */
    html body .pems-season-brand-editor-overlay input[type="file"][data-pems-brand-source-file] {
        display: none !important;
        position: absolute !important;
        inline-size: 1px !important;
        block-size: 1px !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /*
     * The Blade watermark no longer carries transform utilities. This rule owns
     * the complete School Logo placement and centers it behind the large title.
     */
    html body.pems-public-body .pems-public-leaderboard-hero > img.pems-public-leaderboard-watermark[data-pems-school-watermark="1T.5.91.15"] {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: 45% !important;
        bottom: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        width: clamp(9.5rem, 15vw, 13rem) !important;
        height: clamp(9.5rem, 15vw, 13rem) !important;
        max-width: min(13rem, 40vw) !important;
        max-height: min(13rem, calc(100% - 3rem)) !important;
        object-fit: contain !important;
        object-position: center center !important;
        transform: translateY(-50%) !important;
        translate: none !important;
        z-index: 1 !important;
        opacity: .08 !important;
        pointer-events: none !important;
    }
}

@media screen and (max-width: 639px) {
    html body .pems-season-brand-editor-overlay .pems-season-brand-editor-header {
        padding: .9rem 1rem .85rem !important;
    }

    html body.pems-public-body .pems-public-leaderboard-hero > img.pems-public-leaderboard-watermark[data-pems-school-watermark="1T.5.91.15"] {
        top: 43% !important;
        width: min(9rem, 44vw) !important;
        height: min(9rem, 44vw) !important;
        max-width: 9rem !important;
        max-height: 9rem !important;
    }
}
/* END P-EMTS Phase 1T.5.91.15 branding modal and School Logo placement repair */
