:root {
	--iexel-midnight: var(--iexel-color-primary, #06142f);
	--iexel-midnight-2: var(--iexel-color-navy-deep, #0a1f49);
	--iexel-navy: var(--iexel-color-navy-deep, #071d49);
	--iexel-gold: var(--iexel-color-gold, #cba135);
	--iexel-gold-bright: #f2b31b;
	--iexel-white: var(--iexel-color-white, #ffffff);
	--iexel-text: var(--iexel-color-on-anchor, #f8fafc);
	--iexel-muted: var(--iexel-color-on-anchor-muted, #94a3b8);
	--iexel-border: rgba(203, 161, 53, 0.35);
	--iexel-card: rgba(7, 29, 73, 0.92);
	--iexel-success: var(--iexel-color-success, #22c55e);
	--iexel-danger: var(--iexel-color-danger, #ef4444);
	--iexel-warning: var(--iexel-color-warning, #f59e0b);
	--iexel-radius-small: var(--iexel-radius-compact, 10px);
--iexel-radius-medium: var(--iexel-radius-card, 16px);
--iexel-radius-large: 20px;

--iexel-shadow-small: var(--iexel-shadow-standard, 0 8px 24px rgba(7,29,73,.08));
--iexel-shadow-medium: var(--iexel-shadow-elevated, 0 18px 44px rgba(7,29,73,.14));
--iexel-shadow-large: var(--iexel-shadow-elevated, 0 18px 44px rgba(7,29,73,.14));
}

/* Design-system primitive: the restrained club-accent top-edge treatment
   already established, independently, on primary immersive Club OS module
   surfaces (Team Events, Team Attendance/Availability, Match Mode, Event
   Detail, Match Report, Correct Match Record, Player/Team Statistics --
   see those sections' own rules). Named "accent-top", not "gold", because
   the colour is the Club's own runtime-configured Accent Colour
   (var(--iexel-gold) -> --iexel-color-gold -> --iexel-brand-accent ->
   Settings "Accent Colour"), not a fixed IEXEL colour. Deliberately the
   SMALLEST safe property footprint -- only the top-edge border, nothing
   else -- so applying it can never flatten a surface's own deliberate
   side-border colour/opacity, background, radius, padding or spacing;
   each of those existing primary-module rules already listed above keeps
   its own values entirely. Opt-in only: add ".iexel-accent-top-module" to
   a PRIMARY immersive module's own markup, alongside its existing class.
   Do not apply to nested rows/cards, interactive task/form surfaces,
   semantic warning/success/error surfaces, disclosure/outline controls,
   or any surface outside the dark midnight-blue immersive family (e.g.
   the unrelated light .iexel-os-card used club-wide).

   Written as a compound selector per consumer -- ".iexel-<component>
   .iexel-accent-top-module" is NOT enough on its own here: every current
   consumer already declares its own "border: 1px solid <colour>;"
   shorthand (which itself sets border-top), at equal (0,1,0) specificity
   to a bare ".iexel-accent-top-module" rule -- so with a bare rule,
   whichever declaration is LATER in this file would silently win,
   regardless of which markup actually carries the modifier class. This
   was verified empirically (both new consumers below initially lost the
   modifier to their own later, unrelated shorthand). Pairing the
   component's own class with the modifier class in one compound selector
   (".iexel-events-workspace-header.iexel-accent-top-module") raises
   specificity to (0,2,0), reliably beating any single-class base rule
   regardless of source order -- the same technique already used by
   ".iexel-match-mode-card.iexel-match-mode-score-card" for Match Mode's
   own Live Score card. A future consumer with NO pre-existing
   border-top-setting rule of its own could safely use the bare class
   alone; any consumer that already sets its own border-top must be added
   to this list instead. This batch does not migrate any already-working
   selector onto this class -- see its own two new consumers below. */
.iexel-events-workspace-header.iexel-accent-top-module,
.iexel-matchday-hero.iexel-accent-top-module {
	border-top: 4px solid var(--iexel-gold);
}

/* Design-system primitive: the restrained chronological month-disclosure
   pattern already established, responsive-validated to 320px and browser-
   accepted on Player Statistics -> Eligible Matches (see
   .iexel-player-statistics-month, PlayerStatisticsMatchHistoryCard.php --
   left completely untouched, not renamed, not migrated). Extracted here as
   a shared, page-agnostic primitive (".iexel-month-disclosure") for new
   chronological month-navigation surfaces (Main/Team Past Events, Team
   Completed Registers) to reuse, byte-for-byte the same visual/interaction
   rules, without duplicating this CSS per page. Deliberately quieter than
   a PRIMARY module: no border, no background of its own -- a lightweight
   divider/disclosure row that sits INSIDE an already-accent-topped primary
   module, exactly like Player Statistics' own month rows sit inside
   .iexel-player-statistics-history-section. Individual record cards keep
   their own existing, completely unmodified treatment inside
   ".iexel-month-disclosure-body". Native <details>/<summary>: keyboard
   operable, a visible chevron via CSS ::before content, and no accordion
   exclusivity -- every month is an independent disclosure, so several can
   stay open at once. No JavaScript. */
.iexel-month-disclosure-list { display: grid; gap: 24px; min-width: 0; }
.iexel-month-disclosure { border-bottom: 1px solid rgba(255,255,255,.08); }
.iexel-month-disclosure:last-child { border-bottom: 0; }
.iexel-month-disclosure > summary { display: flex; align-items: center; gap: 12px; padding: 4px 0 14px; cursor: pointer; list-style: none; }
.iexel-month-disclosure > summary::-webkit-details-marker { display: none; }
.iexel-month-disclosure > summary::marker { content: ''; }
.iexel-month-disclosure > summary:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }
.iexel-month-disclosure > summary h3 { flex: 1 1 auto; min-width: 0; margin: 0; color: var(--iexel-gold-bright); font-size: 1.05rem; overflow-wrap: anywhere; }
.iexel-month-disclosure-count { flex: 0 0 auto; color: var(--iexel-muted); font-size: .78rem; font-weight: 800; white-space: nowrap; }
.iexel-month-disclosure-chevron { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; color: var(--iexel-muted); transition: transform .2s ease, color .2s ease; }
.iexel-month-disclosure-chevron::before { content: '\203a'; font-size: 1.3rem; line-height: 1; }
.iexel-month-disclosure[open] .iexel-month-disclosure-chevron { color: var(--iexel-gold-bright); transform: rotate(90deg); }
.iexel-month-disclosure[open] > summary { padding-bottom: 14px; }
.iexel-month-disclosure:not([open]) > summary { padding-bottom: 4px; }
.iexel-month-disclosure > .iexel-month-disclosure-body { padding-bottom: 20px; display: grid; gap: 12px; }
@media (max-width: 480px) {
	.iexel-month-disclosure > summary { flex-wrap: wrap; row-gap: 4px; }
	.iexel-month-disclosure > summary h3 { flex-basis: 100%; }
}

/* Parent Registration Portal */
.iexel-registration-portal-hero,.iexel-registration-wizard-hero,.iexel-registration-status-hero,.iexel-registration-submitted{background:linear-gradient(145deg,#071d49,#10285d);border-bottom:5px solid var(--iexel-gold);border-radius:22px;color:#fff;margin-bottom:20px;padding:28px 22px;box-shadow:var(--iexel-shadow);}
.iexel-registration-portal-hero>span,.iexel-registration-wizard-hero>span,.iexel-registration-status-hero>span,.iexel-registration-submitted>span{color:var(--iexel-gold);display:block;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;}
.iexel-registration-portal-hero h1,.iexel-registration-wizard-hero h1,.iexel-registration-status-hero h1,.iexel-registration-submitted h1{color:#fff;font-size:clamp(30px,8vw,46px);line-height:1.05;margin:10px 0;}
.iexel-registration-portal-hero p,.iexel-registration-wizard-hero p{color:#dbe5f5;font-size:17px;line-height:1.55;max-width:700px;}
.iexel-registration-wizard-hero>a{color:#fff;display:inline-block;font-weight:800;margin-bottom:22px;}
.iexel-registration-primary-button,.iexel-registration-secondary-button,.iexel-registration-family-actions a,.iexel-registration-family-actions button{align-items:center;border:0;border-radius:12px;cursor:pointer;display:inline-flex;font:inherit;font-weight:900;justify-content:center;min-height:48px;padding:12px 18px;text-align:center;text-decoration:none;}
.iexel-registration-primary-button,.iexel-registration-family-actions .is-primary{background:var(--iexel-gold);color:var(--iexel-midnight);}
.iexel-registration-secondary-button,.iexel-registration-family-actions a,.iexel-registration-family-actions button{background:#eef2f7;color:#071d49;}
.iexel-registration-portal-summary{display:grid;gap:10px;grid-template-columns:1fr;margin-bottom:24px;}
.iexel-registration-portal-summary article{background:#fff;border:1px solid #dce3ee;border-left:5px solid var(--iexel-gold);border-radius:14px;box-shadow:var(--iexel-shadow-small);display:flex;justify-content:space-between;padding:16px 18px;}
.iexel-registration-portal-summary span{color:#526075;font-weight:800;}.iexel-registration-portal-summary strong{color:#071d49;font-size:28px;}
.iexel-registration-section-heading{align-items:flex-end;display:flex;gap:15px;justify-content:space-between;margin-bottom:16px;}.iexel-registration-section-heading span{color:#9a7414;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;}.iexel-registration-section-heading h2{color:#071d49;margin:4px 0 0;}.iexel-registration-section-heading>a{color:#071d49;font-weight:900;}
.iexel-registration-family-cards{display:grid;gap:15px;}.iexel-registration-family-card,.iexel-registration-family-empty,.iexel-linked-children,.iexel-registration-review-summary{background:#fff;border:1px solid #dce3ee;border-radius:18px;box-shadow:var(--iexel-shadow-small);padding:20px;}.iexel-registration-family-card-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;}.iexel-registration-family-card-top span{color:#69778b;font-size:12px;font-weight:800;text-transform:uppercase;}.iexel-registration-family-card h3{color:#071d49;font-size:22px;margin:4px 0;}.iexel-registration-family-card dl{display:grid;gap:10px;margin:18px 0;}.iexel-registration-family-card dl div{background:#f5f7fa;border-radius:10px;padding:10px 12px;}.iexel-registration-family-card dt{color:#69778b;font-size:11px;font-weight:900;text-transform:uppercase;}.iexel-registration-family-card dd{color:#071d49;font-weight:800;margin:3px 0 0;}.iexel-registration-family-actions{display:flex;flex-direction:column;gap:8px;}.iexel-registration-family-actions form,.iexel-registration-family-actions button{margin:0;width:100%;}
.iexel-family-status{border-radius:999px;display:inline-flex;font-size:11px;font-weight:900;padding:7px 11px;white-space:nowrap;background:#edf1f6;color:#475569;}.iexel-family-status.is-submitted,.iexel-family-status.is-under-review{background:#fff2c4;color:#715200;}.iexel-family-status.is-approved,.iexel-family-status.is-registered{background:#e4f5e8;color:#21662c;}.iexel-family-status.is-rejected,.iexel-family-status.is-withdrawn{background:#fde8e8;color:#962d2d;}

/* Registrations directory mobile overflow repair. Root cause:
   .iexel-registration-family-card-top is display:flex with no flex-wrap,
   holding a player-name heading plus one or two nowrap status badges — flex
   items default to min-width:auto, so once their combined intrinsic width
   exceeds the card at 390/360/320px they refuse to shrink and force genuine
   horizontal overflow. Fix is a real reflow (badge drops to its own line
   under the name), not an overflow-hidden hack — nothing is clipped or
   made inaccessible. */
.iexel-registration-family-card{box-sizing:border-box;max-width:100%;min-width:0;}
.iexel-registration-family-card-top{flex-wrap:wrap;max-width:100%;}
.iexel-registration-family-card-top>div{max-width:100%;min-width:0;overflow-wrap:anywhere;}
.iexel-registration-family-card-top .iexel-family-status,
.iexel-registration-family-card-top .iexel-badge{flex:0 0 auto;max-width:100%;}
.iexel-registration-portal-notice{background:#eef6ff;border-left:5px solid #2f6fad;border-radius:12px;color:#17365d;margin-bottom:18px;padding:15px 17px;}.iexel-registration-portal-notice.is-error{background:#fff0f0;border-left-color:#b32d2e;color:#7d2525;}.iexel-registration-portal-notice.is-success{background:#edf8ef;border-left-color:#2e7d32;color:#245f2b;}
.iexel-family-wizard-progress{display:flex;gap:8px;margin-bottom:18px;max-width:100%;overflow-x:auto;padding:3px 2px 10px;}.iexel-family-wizard-progress button{align-items:center;background:#fff;border:1px solid #d7dfeb;border-radius:12px;color:#526075;display:flex;flex:0 0 auto;font-weight:800;gap:7px;min-height:46px;padding:8px 11px;}.iexel-family-wizard-progress button > span:first-child{align-items:center;background:#e8edf4;border-radius:50%;display:flex;height:28px;justify-content:center;width:28px;}.iexel-family-wizard-progress button.is-active{background:#071d49;color:#fff;}.iexel-family-wizard-progress button.is-active > span:first-child{background:var(--iexel-gold);color:#071d49;}.iexel-family-wizard-progress .iexel-wizard-step-name{display:inline;font-weight:800;}.iexel-family-wizard-mobile-status{display:none;}
@media (max-width: 640px) {
	.iexel-family-wizard-progress {
		display: flex;
		gap: 5px;
		margin-bottom: 6px;
		max-width: 100%;
		overflow-x: visible;
		padding: 2px 0 0;
		justify-content: space-between;
	}
	.iexel-family-wizard-progress button {
		flex: 1 1 0;
		min-width: 0;
		min-height: 42px;
		padding: 6px 2px;
		justify-content: center;
		border-radius: 10px;
		gap: 0;
	}
	.iexel-family-wizard-progress button .iexel-wizard-step-name {
		display: none;
	}
	.iexel-family-wizard-progress button > span:first-child {
		width: 26px;
		height: 26px;
		font-size: 0.85rem;
		flex-shrink: 0;
	}
	.iexel-family-wizard-mobile-status {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		margin: 6px 0 16px;
		font-size: 0.875rem;
		color: #526075;
	}
	.iexel-family-wizard-mobile-status .iexel-mobile-step-num {
		font-weight: 600;
		color: #64748b;
	}
	.iexel-family-wizard-mobile-status .iexel-mobile-step-sep {
		color: #94a3b8;
		font-weight: 700;
	}
	.iexel-family-wizard-mobile-status .iexel-mobile-step-label {
		color: #071d49;
		font-weight: 800;
	}
}
.iexel-linked-children{margin-bottom:18px;}.iexel-linked-children h2{color:#071d49;margin-top:0;}.iexel-linked-children>div{display:grid;gap:9px;}.iexel-linked-children a{background:#f3f6fa;border-radius:12px;color:#071d49;display:flex;flex-direction:column;padding:13px;text-decoration:none;}.iexel-linked-children a span{color:#66758a;font-size:12px;margin-top:3px;}
.iexel-family-wizard{min-width:0;}.iexel-family-wizard-step{background:#fff;border:1px solid #d9e1ec;border-radius:18px;box-shadow:var(--iexel-shadow-small);margin:0;min-width:0;padding:20px;}.iexel-family-wizard[data-enhanced="true"] .iexel-family-wizard-step:not(.is-active){display:none;}.iexel-family-wizard-step legend{color:#071d49;display:flex;flex-direction:column;font-size:25px;font-weight:900;line-height:1.15;padding:0 5px;}.iexel-family-wizard-step legend span{color:#9a7414;font-size:11px;letter-spacing:.1em;margin-bottom:5px;text-transform:uppercase;}.iexel-family-step-intro{color:#5f6e82;line-height:1.55;margin:6px 0 20px;}.iexel-family-fields{display:grid;gap:15px;grid-template-columns:minmax(0,1fr);}.iexel-family-fields label,.iexel-family-wizard-step>label{color:#071d49;display:flex;flex-direction:column;font-weight:900;gap:7px;min-width:0;}.iexel-family-fields label>span,.iexel-family-wizard-step>label>span{color:#a52d2d;}.iexel-family-fields input,.iexel-family-fields select,.iexel-family-fields textarea,.iexel-family-wizard-step>label select{border:1px solid #aeb9c8;border-radius:11px;box-sizing:border-box;font:inherit;min-height:50px;padding:11px 12px;width:100%;}.iexel-family-fields input:focus,.iexel-family-fields select:focus,.iexel-family-fields textarea:focus{border-color:#071d49;box-shadow:0 0 0 3px rgba(203,161,53,.35);outline:0;}.iexel-family-field-error{color:#a52d2d;font-weight:700;}
.iexel-family-fields label,.iexel-family-wizard-step>label{position:relative;}.iexel-family-fields label>span,.iexel-family-wizard-step>label>span{position:absolute;right:0;top:0;}
.iexel-player-photo-placeholder{align-items:center;background:#f4f7fa;border:2px dashed #b9c4d2;border-radius:14px;color:#526075;display:flex;gap:10px;margin-bottom:18px;padding:15px;}.iexel-player-photo-placeholder>span{align-items:center;background:#071d49;border-radius:50%;color:#fff;display:flex;font-size:22px;height:40px;justify-content:center;width:40px;}.iexel-player-photo-placeholder small{margin-left:auto;}
.iexel-family-consents{display:grid;gap:10px;margin-top:18px;}.iexel-family-consents label{align-items:flex-start;background:#f4f7fa;border:1px solid #d9e1ec;border-radius:12px;color:#27364d;cursor:pointer;display:flex;font-weight:700;gap:12px;line-height:1.45;min-height:48px;padding:13px;}.iexel-family-consents input{flex:0 0 auto;height:22px;margin:0;width:22px;}.iexel-family-step-actions,.iexel-family-submit{display:flex;flex-direction:column;gap:10px;margin-top:22px;}.iexel-family-step-actions button,.iexel-family-submit button{background:#eef2f7;border:0;border-radius:12px;color:#071d49;cursor:pointer;font:inherit;font-weight:900;min-height:52px;padding:12px 18px;}.iexel-family-step-actions button.is-primary,.iexel-family-submit button.is-primary{background:var(--iexel-gold);}.iexel-family-autosave{align-items:center;color:#536176;display:flex;font-size:12px;gap:7px;justify-content:flex-end;margin-bottom:9px;}.iexel-family-autosave span{background:#42a55a;border-radius:50%;height:8px;width:8px;}
.iexel-family-review{display:grid;gap:10px;}.iexel-family-review section{background:#f4f7fa;border-radius:12px;padding:14px;}.iexel-family-review h3{color:#071d49;margin:0 0 5px;}.iexel-family-review p{color:#526075;margin:0 0 9px;}.iexel-family-review button{background:transparent;border:0;color:#775913;cursor:pointer;font-weight:900;padding:4px 0;text-decoration:underline;}
.iexel-registration-status-track{display:grid;gap:10px;margin-top:24px;}.iexel-registration-status-track div{align-items:center;color:#a9b7cb;display:flex;gap:10px;}.iexel-registration-status-track i{background:#50617e;border:3px solid #8190a8;border-radius:50%;height:18px;width:18px;}.iexel-registration-status-track div.is-reached{color:#fff;}.iexel-registration-status-track div.is-reached i{background:var(--iexel-gold);border-color:#fff;}.iexel-registration-review-summary dl{display:grid;gap:10px;}.iexel-registration-review-summary dl div{border-bottom:1px solid #e2e7ee;padding:10px 0;}.iexel-registration-review-summary dt{color:#66758a;font-size:11px;font-weight:900;text-transform:uppercase;}.iexel-registration-review-summary dd{color:#071d49;font-weight:800;margin:4px 0 0;}
.iexel-registration-submitted{text-align:center;}.iexel-registration-submitted>div:last-child{display:flex;flex-direction:column;gap:10px;margin-top:24px;}.iexel-registration-success-mark{align-items:center;background:var(--iexel-gold);border-radius:50%;color:#071d49;display:flex;font-size:34px;font-weight:900;height:72px;justify-content:center;margin:0 auto 18px;width:72px;}
@media (min-width:680px){.iexel-registration-portal-summary{grid-template-columns:repeat(5,minmax(0,1fr));}.iexel-registration-portal-summary article{display:block;}.iexel-registration-family-cards{grid-template-columns:repeat(2,minmax(0,1fr));}.iexel-registration-family-actions,.iexel-family-step-actions,.iexel-family-submit,.iexel-registration-submitted>div:last-child{flex-direction:row;}.iexel-registration-family-actions form,.iexel-registration-family-actions button{width:auto;}.iexel-family-fields{grid-template-columns:repeat(2,minmax(0,1fr));}.iexel-family-fields .is-wide{grid-column:1/-1;}.iexel-registration-status-track{grid-template-columns:repeat(4,minmax(0,1fr));}.iexel-registration-review-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* Keep wrapped wizard legends inside the card at the single-column breakpoint. */
@media (max-width: 679px) {
	.iexel-family-wizard-step > legend {
		text-align: center;
		float: left;
		box-sizing: border-box;
		width: 100%;
		padding: 0;
		margin: 0 0 6px;
	}
	.iexel-family-wizard-step > .iexel-family-step-intro {
		text-align: center;
		clear: both;
		margin-top: 0;
	}
}

@media (max-width: 480px) {
	.iexel-registration-recovery-identity-heading {
		text-align: center;
	}
}

/* Registration Wizard - Step 5 Package Selection (RP-B) */
.iexel-package-selection-container,
.iexel-package-selection-container * { box-sizing: border-box; min-width: 0; }
.iexel-package-selection-container { display: flex; flex-direction: column; gap: 18px; width: 100%; margin: 8px 0; }
.iexel-package-selection-lead { color: #526075; font-size: 0.95rem; margin: 0 0 4px; line-height: 1.5; }
.iexel-package-empty-state { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 18px; color: #64748b; font-size: 0.95rem; }
.iexel-package-card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; width: 100%; }
@media (min-width: 768px) {
	.iexel-package-card-grid.has-multiple-packages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-package-card-grid.has-single-package { grid-template-columns: minmax(0, 1fr); }
}
.iexel-package-card { background: #ffffff; border: 2px solid #e2e8f0; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; transition: border-color 0.2s, box-shadow 0.2s; position: relative; cursor: pointer; }
.iexel-package-card:hover { border-color: #cbd5e1; }
.iexel-package-card.is-selected { border-color: #071d49; box-shadow: 0 0 0 2px var(--iexel-gold, #cba135); background: #fcfdfd; }
.iexel-package-card__hero {
	width: 100%;
	position: relative;
	overflow: hidden;
	background: #071d49;
	display: flex;
	align-items: center;
	justify-content: center;
}
.iexel-package-card__hero-img {
	width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: contain;
	display: block;
}
.has-single-package .iexel-package-card__hero-img {
	max-height: 520px;
}
@media (max-width: 640px) {
	.iexel-package-card__hero-img,
	.has-single-package .iexel-package-card__hero-img {
		max-height: 320px;
	}
}
.iexel-package-card__hero-placeholder {
	width: 100%;
	min-height: 180px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: linear-gradient(135deg, #071d49 0%, #153880 100%);
	padding: 24px 20px;
	text-align: center;
}
.has-single-package .iexel-package-card__hero-placeholder {
	min-height: 220px;
}
@media (max-width: 640px) {
	.iexel-package-card__hero-placeholder,
	.has-single-package .iexel-package-card__hero-placeholder {
		min-height: 150px;
		padding: 18px 16px;
	}
}
.iexel-package-card__hero-badge { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(203, 161, 53, 0.15); border: 2px solid var(--iexel-gold, #cba135); color: var(--iexel-gold, #cba135); }
.iexel-package-card__hero-placeholder-title { font-size: 1.05rem; font-weight: 700; color: #ffffff; letter-spacing: 0.02em; text-transform: uppercase; }
.iexel-package-card__inner { padding: 18px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.iexel-package-card__header { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; margin: 0; width: 100%; }
.iexel-package-card__radio-wrap { flex-shrink: 0; padding-top: 3px; }
.iexel-package-card__radio-wrap input[type="radio"] { width: 20px; height: 20px; margin: 0; cursor: pointer; accent-color: #071d49; }
.iexel-package-card__title-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.iexel-package-card__title { margin: 0; font-size: 1.1rem; font-weight: 800; color: #071d49; line-height: 1.25; overflow-wrap: anywhere; }
.iexel-package-card__price { font-size: 1.15rem; font-weight: 900; color: #071d49; }
.iexel-package-card__body { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.iexel-package-opt-out-container { width: 100%; margin-top: 4px; }
.iexel-package-card.is-none { padding: 14px 18px; border-style: dashed; border-color: #cbd5e1; background: #f8fafc; flex-direction: row; align-items: flex-start; gap: 12px; }
.iexel-package-card.is-none:hover { border-color: #94a3b8; background: #f1f5f9; }
.iexel-package-card.is-none.is-selected { border-style: solid; border-color: #071d49; box-shadow: 0 0 0 2px var(--iexel-gold, #cba135); background: #fcfdfd; }
.iexel-package-card__opt-out-content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.iexel-package-card__opt-out-header { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.iexel-package-card__opt-out-title { margin: 0; font-size: 0.95rem; font-weight: 700; color: #334155; }
.iexel-package-card__opt-out-price { font-size: 0.95rem; font-weight: 700; color: #64748b; }
.iexel-package-card__opt-out-desc { margin: 0; font-size: 0.825rem; color: #64748b; line-height: 1.4; }
.iexel-package-card__desc { margin: 0; font-size: 0.9rem; color: #64748b; line-height: 1.45; overflow-wrap: anywhere; }
.iexel-package-card__inclusions { background: #f8fafc; border-radius: 8px; padding: 10px 12px; }
.iexel-package-card__inclusions-title { margin: 0 0 6px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #475569; }
.iexel-package-card__inclusions-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.iexel-package-card__inclusions-list li { display: flex; align-items: flex-start; gap: 6px; font-size: 0.85rem; color: #334155; line-height: 1.35; overflow-wrap: anywhere; }
.iexel-package-check { color: #059669; font-weight: 900; flex-shrink: 0; }
.iexel-package-card__extras { border-top: 1px dashed #e2e8f0; padding-top: 12px; }
.iexel-package-card__extras-title { margin: 0 0 8px; font-size: 0.85rem; font-weight: 700; color: #1e293b; }
.iexel-package-card__extras-list { display: flex; flex-direction: column; gap: 8px; }
.iexel-package-extra-item { display: flex; align-items: flex-start; gap: 10px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px; cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.iexel-package-extra-item:hover { border-color: #cbd5e1; }
.iexel-package-extra-item.is-checked { background: #eff6ff; border-color: #3b82f6; }
.iexel-package-extra-item input[type="checkbox"] { width: 18px; height: 18px; margin: 2px 0 0; flex-shrink: 0; accent-color: #071d49; }
.iexel-package-extra-item__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.iexel-package-extra-item__name { font-size: 0.875rem; font-weight: 700; color: #1e293b; overflow-wrap: anywhere; }
.iexel-package-extra-item__desc { font-size: 0.775rem; color: #64748b; line-height: 1.3; overflow-wrap: anywhere; }
.iexel-package-extra-item__pricing { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex-shrink: 0; }
.iexel-package-extra-item__price { font-size: 0.875rem; font-weight: 800; color: #071d49; white-space: nowrap; }
.iexel-package-extra-item__tag { font-size: 0.675rem; text-transform: uppercase; font-weight: 700; letter-spacing: 0.05em; background: #e2e8f0; color: #475569; padding: 1px 6px; border-radius: 4px; white-space: nowrap; }
@media (max-width: 640px) {
	.iexel-package-extra-item {
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 6px 10px;
		padding: 10px 12px;
	}
	.iexel-package-extra-item input[type="checkbox"] {
		margin-top: 2px;
		flex: 0 0 18px;
	}
	.iexel-package-extra-item__info {
		flex: 1 1 calc(100% - 32px);
		min-width: 0;
	}
	.iexel-package-extra-item__pricing {
		flex: 0 0 100%;
		width: 100%;
		display: flex;
		flex-direction: row;
		justify-content: flex-end;
		align-items: center;
		gap: 8px;
		margin-top: 4px;
		padding-left: 28px;
	}
}

/* Live Commercial Summary Card */
.iexel-package-summary-card { background: #f8fafc; border: 1px solid #cbd5e1; border-left: 4px solid var(--iexel-gold, #cba135); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.iexel-package-summary-card__title { margin: 0; font-size: 0.95rem; font-weight: 800; color: #071d49; text-transform: uppercase; letter-spacing: 0.04em; }
.iexel-package-summary-card__rows { display: flex; flex-direction: column; gap: 8px; }
.iexel-package-summary-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 0.9rem; color: #475569; flex-wrap: wrap; }
.iexel-package-summary-row__label { font-weight: 600; }
.iexel-package-summary-row__value { color: #1e293b; text-align: right; overflow-wrap: anywhere; }
.iexel-package-summary-row.is-extras { align-items: flex-start; }
.iexel-package-summary-row.is-total { border-top: 1px solid #e2e8f0; padding-top: 8px; font-size: 1rem; }
.iexel-package-summary-row__value.is-total { font-size: 1.15rem; font-weight: 900; color: #071d49; }
.iexel-package-summary-extra-item { display: flex; justify-content: space-between; gap: 8px; font-size: 0.85rem; color: #334155; width: 100%; }
.iexel-package-summary-card__note { margin: 0; font-size: 0.775rem; color: #64748b; line-height: 1.4; }

/* Registration Package Policy Management Panel */
.iexel-package-policy-panel {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 18px 22px;
	margin: 16px 0 24px;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.iexel-package-policy-form {
	margin: 0;
}

.iexel-package-policy-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px 24px;
}

.iexel-package-policy-info {
	flex: 1 1 320px;
	max-width: 680px;
}

.iexel-package-policy-title {
	margin: 0 0 4px;
	font-size: 1rem;
	font-weight: 750;
	color: var(--iexel-midnight, #071d49);
	letter-spacing: -0.01em;
}

.iexel-package-policy-desc {
	margin: 0;
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.45;
}

.iexel-package-policy-controls {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.iexel-package-policy-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 600;
	color: #1e293b;
	user-select: none;
}

.iexel-package-policy-toggle input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--iexel-midnight, #071d49);
	cursor: pointer;
}

.iexel-package-policy-save-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--iexel-midnight, #071d49);
	color: #ffffff !important;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	border-radius: 8px;
	padding: 8px 18px;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	min-height: 38px;
	white-space: nowrap;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

.iexel-package-policy-save-btn:hover:not(:disabled) {
	background: #0f2756;
	border-color: var(--iexel-gold, #cba135);
	color: #ffffff !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(7, 29, 73, 0.2);
}

.iexel-package-policy-save-btn:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-package-policy-save-btn:disabled,
.iexel-package-policy-save-btn[disabled] {
	background: #e2e8f0 !important;
	border: 1.5px solid #cbd5e1 !important;
	color: #64748b !important;
	cursor: not-allowed;
	transform: none !important;
	box-shadow: none !important;
	opacity: 0.9;
}

@media (max-width: 768px) {
	.iexel-package-policy-panel {
		padding: 16px;
	}
	.iexel-package-policy-content {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	.iexel-package-policy-controls {
		width: 100%;
		justify-content: space-between;
	}
}

@media (max-width: 480px) {
	.iexel-package-policy-controls {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.iexel-package-policy-save-btn {
		width: 100%;
	}
}

/* Team Events Workspace */
.iexel-team-events-workspace,
.iexel-team-events-workspace * { min-width: 0; box-sizing: border-box; }
.iexel-team-events-workspace { display: grid; gap: 22px; width: 100%; overflow: hidden; }
/* Batch B primary-module gold-top hierarchy: converts the shared inherited
   left rail into the same stronger gold TOP edge + thinner/quieter
   remaining border already established and accepted on Coach Event
   Detail's primary modules (border: thin gold-tinted 1px on every side,
   border-top raised to a bolder 4px). All three selectors below are
   exclusive to Coach Team Events (confirmed: no other page/component in
   the codebase renders .iexel-team-events-summary/-next/-section) --
   there is no shared-component coupling risk, so this converts the one
   existing rule directly rather than needing a scoping wrapper. Nested
   surfaces (event cards, metric tiles, action rows) are NOT touched by
   this rule and are addressed separately, below, so they remain quieter
   than these primary modules by construction. */
.iexel-team-events-summary,
.iexel-team-events-next,
.iexel-team-events-section { width: 100%; padding: 26px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid rgba(203,161,53,.4); border-top: 4px solid var(--iexel-gold); border-radius: 20px; box-shadow: var(--iexel-shadow-medium); overflow: hidden; }
.iexel-team-events-summary { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: 22px; align-items: center; }
.iexel-team-events-summary h2,
.iexel-team-events-section h2 { margin: 5px 0 0; color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-team-events-summary dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-team-events-summary dl div { padding: 14px 10px; text-align: center; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-team-events-summary dt { color: var(--iexel-muted); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.iexel-team-events-summary dd { margin: 6px 0 0; color: var(--iexel-gold-bright); font-size: 1.65rem; font-weight: 950; }
.iexel-team-events-next { background: radial-gradient(circle at 92% 5%, rgba(245,195,66,.17), transparent 30%), linear-gradient(135deg, #07192f, var(--iexel-navy)); }
.iexel-team-events-next-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.iexel-team-events-next-heading h2 { margin: 6px 0 8px; color: var(--iexel-white); font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-team-events-next-heading p { margin: 0; color: var(--iexel-gold-bright); font-weight: 850; }
/* Batch B compact Next Event: this dl now carries at most 3 items (Date,
   optional Meet/Arrive, Kick-off/Start) instead of the previous 9 --
   Competition/Venue/Location moved to .iexel-team-events-next-subtitle
   and Readiness/Availability/Attendance to .iexel-team-events-next-snapshot
   below (see TeamEventsNextHero.php). Date (:first-child, always present,
   always first) spans the full row; the remaining 1-2 items self-size via
   auto-fit rather than needing the previous cascade of three separate
   breakpoint overrides -- 2 items at their 120px minimum plus gap already
   fit comfortably down to 320px, and a single remaining item (no
   Meet/Arrive) naturally stretches to fill the row. */
.iexel-team-events-next-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin: 18px 0; }
.iexel-team-events-next-details > div:first-child { grid-column: 1 / -1; }
.iexel-team-events-next-details div { padding: 13px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 11px; }
.iexel-team-events-next-details dt { color: var(--iexel-muted); font-size: .67rem; font-weight: 850; text-transform: uppercase; }
.iexel-team-events-next-details dd { margin: 6px 0 0; color: var(--iexel-white); font-weight: 850; overflow-wrap: anywhere; }
.iexel-team-events-next-subtitle { margin: 8px 0 0; color: var(--iexel-muted); line-height: 1.45; overflow-wrap: anywhere; }
.iexel-team-events-next-snapshot { margin: 16px 0 20px; padding: 11px 13px; color: var(--iexel-white); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 11px; font-size: .82rem; font-weight: 800; overflow-wrap: anywhere; }
.iexel-team-event-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
/* Batch B Cancelled badge mobile containment: the blanket
   .iexel-team-events-workspace * { min-width: 0; } rule above (needed
   elsewhere to let genuinely oversized flex/grid children shrink safely)
   also strips each badge <span>'s normal flex-item minimum-content-width
   floor. With no floor and no internal wrapping (a badge label like
   "Cancelled" is one unbroken word), a badge row competing for space with
   the title/date column at narrow widths could be flex-shrunk narrower
   than its own text, so the text visually overhung the shrunk pill rather
   than the row wrapping onto a second line as flex-wrap already intends.
   Restoring each badge's own natural (min-content) floor here -- higher
   specificity than the blanket rule, so no change to that shared rule
   itself -- means the row now correctly wraps its pills onto additional
   lines instead of ever compressing one below its label's width. Scoped
   to this one Team-Events-exclusive selector; every other badge state
   (Live/Today/Finished/Cancelled/Postponed/Training/Friendly/Cup/League/
   Past/Upcoming) keeps its existing colour treatment untouched, and
   nothing outside Team Events is affected. */
.iexel-team-event-badges span { min-width: max-content; padding: 6px 9px; color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 999px; font-size: .68rem; font-weight: 900; }
.iexel-team-event-badges .is-live,
.iexel-team-event-badges .is-today { color: #bbf7d0; background: rgba(34,197,94,.15); border-color: rgba(74,222,128,.5); }
.iexel-team-event-badges .is-finished { color: #e2e8f0; background: rgba(148,163,184,.14); }
.iexel-team-event-badges .is-cancelled,
.iexel-team-event-badges .is-postponed { color: #fecaca; background: rgba(239,68,68,.14); border-color: rgba(248,113,113,.45); }
.iexel-team-event-badges .is-training,
.iexel-team-event-badges .is-friendly,
.iexel-team-event-badges .is-cup { color: #fde68a; background: rgba(245,195,66,.13); border-color: rgba(245,195,66,.4); }
.iexel-team-events-actions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.iexel-team-events-actions-grid > * { height: 100%; }
.iexel-team-events-quick-actions,
.iexel-team-events-outstanding { display: grid; gap: 9px; margin-top: 18px; }
.iexel-team-events-quick-actions a,
.iexel-team-events-outstanding a { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 13px 14px; color: var(--iexel-white); background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.09); border-radius: 11px; text-decoration: none; }
.iexel-team-events-quick-actions a:hover,
.iexel-team-events-outstanding a:hover { border-color: var(--iexel-gold); background: rgba(245,195,66,.08); }
.iexel-team-events-quick-actions a > span:last-child,
.iexel-team-events-outstanding a > span:last-child { flex: none; color: var(--iexel-gold-bright); font-size: 1.2rem; }
.iexel-team-events-outstanding a > span:first-child { display: grid; gap: 3px; }
.iexel-team-events-outstanding small { color: var(--iexel-muted); line-height: 1.45; overflow-wrap: anywhere; }
.iexel-team-events-empty { margin-top: 18px; padding: 18px; color: var(--iexel-muted); background: rgba(255,255,255,.04); border-radius: 12px; }
.iexel-team-events-empty h3 { margin: 0 0 7px; color: var(--iexel-white); }
.iexel-team-events-empty p { margin: 0; line-height: 1.55; }
.iexel-team-event-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
/* Batch C Past Events progressive disclosure: reuses the existing
   .iexel-team-event-cards grid completely unchanged as the item container
   -- only a thin wrapper (data-progressive-item) is added; the wrapper
   itself carries no layout properties of its own, so the existing 2-column
   grid/gap is untouched. The browser's own default [hidden] rule would
   normally hide a hidden wrapper div, but the shared
   .iexel-team-events-workspace * { min-width: 0; box-sizing: border-box; }
   rule and this file's cascade order do not disturb `display` here, so no
   override would strictly be required for the wrapper itself -- this
   explicit rule is added anyway, matching the exact precedent already
   established for .iexel-events-list-item[hidden] and
   .iexel-attendee-row[hidden] elsewhere, since those wrapper elements
   needed it (their own class carries a `display` declaration that would
   otherwise out-cascade the browser default). Scoped to this one
   Team-Events-exclusive class; no global [hidden] rule is introduced. */
.iexel-team-event-cards-item[hidden] { display: none; }
.iexel-team-events-past-disclosure { display: grid; gap: 0; }
.iexel-team-events-past-disclosure-count { margin: 14px 0 0; color: var(--iexel-muted); font-size: .8rem; font-weight: 750; }
.iexel-team-events-past-disclosure-controls { display: flex; justify-content: center; margin-top: 18px; }
.iexel-team-events-past-disclosure-controls .iexel-button[hidden] { display: none; }
.iexel-team-events-past-disclosure-noscript { margin: 14px 0 0; color: var(--iexel-muted); font-size: .8rem; }
.iexel-team-event-card { position: relative; display: flex; flex-direction: column; padding: 19px; background: linear-gradient(150deg, rgba(255,255,255,.055), rgba(255,255,255,.025)); border: 1px solid rgba(255,255,255,.1); border-top: 3px solid var(--iexel-gold); border-radius: 15px; overflow: hidden; transition: border-color 0.15s ease; }
.iexel-team-event-card:hover { border-color: rgba(255,255,255,.25); }
.iexel-team-event-card-link.iexel-stretched-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.iexel-team-event-card-link.iexel-stretched-link:focus-visible::after { outline: 3px solid var(--iexel-gold-bright); outline-offset: -3px; border-radius: 15px; }
.iexel-team-event-card a.iexel-team-event-card-link { color: inherit; text-decoration: none; }
.iexel-team-event-card a.iexel-team-event-card-link:hover { color: var(--iexel-white); }
.iexel-team-event-card > .iexel-button, .iexel-team-event-card-actions > .iexel-button { position: relative; z-index: 2; margin-top: auto; }
.iexel-team-event-card-cue { margin-top: auto; padding-top: 10px; color: var(--iexel-gold); font-size: 0.85rem; font-weight: 700; text-align: right; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.8; transition: opacity 0.15s ease; pointer-events: none; }
.iexel-team-event-card:hover .iexel-team-event-card-cue { opacity: 1; color: var(--iexel-gold-bright); }
.iexel-team-event-card > header { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.iexel-team-event-card time { display: block; color: var(--iexel-gold-bright); font-weight: 900; }
.iexel-team-event-card header > div > span { display: block; margin-top: 4px; color: var(--iexel-muted); font-size: .78rem; }
.iexel-team-event-card-main { display: flex; justify-content: space-between; gap: 15px; align-items: flex-start; margin: 18px 0; }
.iexel-team-event-card-main.is-match { display: block; margin: 14px 0; }
.iexel-team-event-card-main.is-match > div { width: 100%; min-width: 0; }
.iexel-team-event-card-main h3 { margin: 0; color: var(--iexel-white); font-size: 1.3rem; overflow-wrap: anywhere; }
.iexel-team-event-card-main p { margin: 7px 0 0; color: var(--iexel-muted); line-height: 1.45; overflow-wrap: anywhere; }
.iexel-team-event-fixture-meta { margin: 8px 0 0; color: var(--iexel-muted); font-size: 0.85rem; line-height: 1.4; overflow-wrap: anywhere; }
.iexel-team-event-score { flex: none; display: grid; gap: 5px; text-align: right; }
.iexel-team-event-score strong { color: var(--iexel-white); font-size: 1.55rem; white-space: nowrap; }
.iexel-team-event-score span { font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.iexel-team-event-score .is-win { color: #86efac; }
.iexel-team-event-score .is-draw { color: #e2e8f0; }
.iexel-team-event-score .is-loss { color: #fca5a5; }

/* Football Fixture Title Component (MOB-009, MOB-010, MOB-011) */
.iexel-fixture-title {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3em 0.5em;
	max-width: 100%;
	line-height: 1.25;
}
.iexel-fixture-title__team {
	display: inline-block;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.iexel-fixture-title__vs {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--iexel-gold, #f5c342);
	font-size: 0.72em;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	align-self: center;
	padding: 2px 7px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	flex-shrink: 0;
	vertical-align: middle;
}

/* Football Fixture Matchup Component (MOB-009, MOB-010, MOB-011) */
.iexel-fixture-matchup {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	margin: 10px 0;
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	box-sizing: border-box;
	min-width: 0;
	position: relative;
}
.iexel-event-card .iexel-fixture-matchup {
	margin: 0;
}
.iexel-fixture-matchup.is-completed {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
	border-color: rgba(255, 255, 255, 0.15);
	border-top: 2px solid var(--iexel-gold, #f5c342);
}
.iexel-fixture-matchup__team {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	min-width: 0;
}
.iexel-fixture-matchup__kit {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.iexel-fixture-matchup .iexel-kit-shirt--large {
	width: 36px;
	height: 36px;
}
.iexel-fixture-matchup .iexel-kit-shirt__body {
	stroke: rgba(255, 255, 255, 0.45);
	stroke-width: 1.2px;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4));
}
.iexel-fixture-matchup .iexel-kit-shirt__collar {
	stroke: rgba(255, 255, 255, 0.55);
}
.iexel-fixture-matchup .iexel-kit-shirt__crease {
	stroke: rgba(255, 255, 255, 0.3);
}
.iexel-fixture-matchup__identity {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 0;
	width: 100%;
}
.iexel-fixture-matchup__name {
	display: block;
	color: var(--iexel-white, #ffffff);
	font-size: clamp(0.85rem, 2.4vw, 1.05rem);
	font-weight: 800;
	line-height: 1.2;
	overflow-wrap: anywhere;
	word-break: break-word;
	text-align: center;
	max-width: 100%;
}
.iexel-fixture-matchup__tag {
	display: inline-block;
	color: var(--iexel-gold, #f5c342);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.iexel-fixture-matchup__center {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0 4px;
	flex-shrink: 0;
	text-align: center;
}
.iexel-fixture-matchup__vs {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
}
.iexel-fixture-matchup__vs span {
	color: var(--iexel-gold-bright, #ffd54f);
	font-size: 0.8rem;
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 1;
}
.iexel-fixture-matchup__location-badge {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	background: rgba(255, 255, 255, 0.06);
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	border: 1px solid rgba(255, 255, 255, 0.14);
	line-height: 1.2;
}
.iexel-fixture-matchup__score {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	line-height: 1;
}
.iexel-fixture-matchup__score-num {
	color: var(--iexel-white, #ffffff);
	font-size: clamp(1.65rem, 4.2vw, 2.2rem);
	font-weight: 950;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.iexel-fixture-matchup__score-sep {
	color: var(--iexel-gold, #f5c342);
	font-size: clamp(1.2rem, 3vw, 1.5rem);
	font-weight: 700;
	opacity: 0.85;
	line-height: 1;
}
.iexel-fixture-matchup__result {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 950;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	min-height: 22px;
	box-sizing: border-box;
}
.iexel-fixture-matchup__result.is-win {
	color: #bbf7d0;
	background: rgba(34, 197, 94, 0.2);
	border: 1px solid rgba(74, 222, 128, 0.5);
}
.iexel-fixture-matchup__result.is-draw {
	color: #071d49;
	background: var(--iexel-gold);
	border: 1px solid #f4d77e;
}
.iexel-fixture-matchup__result.is-loss {
	color: #fecaca;
	background: rgba(239, 68, 68, 0.2);
	border: 1px solid rgba(248, 113, 113, 0.5);
}
@media (max-width: 430px) {
	.iexel-fixture-title {
		gap: 0.25em 0.4em;
	}
	.iexel-fixture-title__vs {
		font-size: 0.65em;
		padding: 2px 5px;
	}
	.iexel-fixture-matchup {
		gap: 8px;
		padding: 12px 10px;
	}
	.iexel-fixture-matchup .iexel-kit-shirt--large {
		width: 32px;
		height: 32px;
	}
	.iexel-fixture-matchup__vs {
		width: 30px;
		height: 30px;
	}
	.iexel-fixture-matchup__vs span {
		font-size: 0.74rem;
	}
	.iexel-fixture-matchup__location-badge {
		font-size: 0.62rem;
		padding: 2px 7px;
	}
	.iexel-fixture-matchup__score-num {
		font-size: 1.55rem;
	}
	.iexel-fixture-matchup__result {
		font-size: 0.62rem;
		padding: 3px 8px;
	}
}
@media (max-width: 360px) {
	.iexel-fixture-title {
		gap: 0.2em 0.35em;
	}
	.iexel-fixture-title__vs {
		font-size: 0.6em;
		padding: 1px 4px;
	}
	.iexel-fixture-matchup {
		gap: 6px;
		padding: 10px 6px;
	}
	.iexel-fixture-matchup .iexel-kit-shirt--large {
		width: 28px;
		height: 28px;
	}
	.iexel-fixture-matchup__name {
		font-size: 0.78rem;
	}
	.iexel-fixture-matchup__tag {
		font-size: 0.62rem;
	}
}
.iexel-team-event-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 17px; }
.iexel-team-event-progress > div { padding: 11px; background: rgba(0,0,0,.14); border-radius: 10px; }
.iexel-team-event-progress span,
.iexel-team-event-progress small { display: block; color: var(--iexel-muted); font-size: .68rem; }
.iexel-team-event-progress strong { display: block; margin: 5px 0; color: var(--iexel-gold-bright); font-size: 1.25rem; }

.iexel-team-event-past-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: auto 0 15px; }
.iexel-team-event-past-meta div { padding: 10px; background: rgba(0,0,0,.12); border-radius: 9px; }
.iexel-team-event-past-meta dt { color: var(--iexel-muted); font-size: .68rem; }
.iexel-team-event-past-meta dd { margin: 4px 0 0; color: var(--iexel-white); font-weight: 850; }
.iexel-team-event-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.iexel-team-event-card-actions .iexel-button { flex: 1 1 145px; text-align: center; }
.iexel-team-events-workspace a:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }

@media (max-width: 960px) {
	.iexel-team-events-summary { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
	.iexel-team-events-summary,
	.iexel-team-events-next,
	.iexel-team-events-section { padding: 20px; }
	.iexel-team-events-actions-grid,
	.iexel-team-event-cards { grid-template-columns: 1fr; }
	/* Batch B final mobile alignment correction (real-Dev repair): at this
	   existing breakpoint, .iexel-team-events-next-heading already
	   switches to display:grid to stack its two children (the intro
	   identity block, the badge row) into a single implicit column. TWO
	   compounding root causes, confirmed by measuring against varying
	   title lengths (a long title happened to mask both in a first,
	   insufficiently varied reconstruction):
	   1) With no grid-template-columns declared, the single implicit
	      column's own track is auto-sized -- it shrinks to whichever
	      child is widest, it does NOT reliably span the container's full
	      width. A shorter title's row (and, separately, the badge row)
	      can each end up in a track narrower than the card, so anything
	      centred "within its track" is centred relative to that
	      narrower box, not the true card centre.
	   2) The first attempt at this fix additionally set
	      justify-items: center, which -- even where the track IS full
	      width -- shrinks each ITEM down to its own content size before
	      centring it within the track, the same wrong reference box by a
	      second route.
	   The robust fix addresses the track itself: grid-template-columns:
	   1fr forces the single column to always span the full heading
	   width regardless of content. justify-items is left at its default
	   (stretch), and each child additionally declares width: 100% as a
	   second, defensive guarantee -- so intro-block/badge-row centring
	   (align-items/justify-content) always operates against the true
	   full card width, never a content-sized box, independent of title
	   or badge-label length. Scoped to this component's own classes only
	   (never the shared ".iexel-team-events-next-heading > div"
	   selector, which also matches the badges container). Desktop is
	   untouched: above 720px .iexel-team-events-next-heading stays its
	   base display:flex row with the badge row on the right, exactly as
	   accepted. */
	.iexel-team-events-next-heading { display: grid; grid-template-columns: 1fr; text-align: center; }
	.iexel-team-events-next-heading > div:first-child { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 100%; }
	.iexel-team-events-next-subtitle { text-align: center; }
	.iexel-team-event-badges { justify-content: center; width: 100%; }
	.iexel-team-event-card .iexel-button,
	.iexel-team-event-card-actions .iexel-button,
	.iexel-team-events-next > .iexel-button { width: 100%; text-align: center; }
}

/* Batch A mobile metric repair: .iexel-team-event-past-meta (Report/
   Statistics on a past Match card, Attendance/Notes on a past
   Training/generic Event card) was missing from the existing
   single-column reflow rule below, even though its sibling
   .iexel-team-event-progress already had it -- the two-column
   repeat(2, minmax(0, 1fr)) grid left ~10px-padded cells too narrow
   for values like "Unavailable" at 320-479px. Scoped to this one
   Team-Events-exclusive selector only; no other <dl>/grid anywhere
   else changed. */
@media (max-width: 480px) {
	.iexel-team-events-summary dl,
	.iexel-team-event-progress,
	.iexel-team-event-past-meta { grid-template-columns: 1fr; }
	.iexel-team-event-card-main { display: grid; }
	.iexel-team-event-score { text-align: left; }
}



.iexel-os-card{
	background:#fff;
	border:1px solid #ddd;
	border-left:5px solid #cba135;
	border-radius:14px;
	padding:18px;
	margin:16px 0;
}

/* Club OS Portal */
body.iexel-portal{
	margin:0;
	background:#eef2f7;
	font-family:Inter,Arial,sans-serif;
	color:#082b63;
}

.iexel-portal-wrap{
	max-width:1320px;
	margin:40px auto;
	padding:20px;
}

.iexel-portal-hero{
	background:#071d49;
	color:#fff;
	border-radius:18px;
	padding:40px;
	border-bottom:6px solid #cba135;
	box-shadow:0 10px 25px rgba(0,0,0,.15);
}

.iexel-portal-eyebrow{
	text-transform:uppercase;
	letter-spacing:2px;
	opacity:.7;
	margin-bottom:10px;
	font-size:12px;
}

.iexel-portal-hero h1{
	margin:0;
	font-size:42px;
}

.iexel-portal-hero p{
	margin-top:15px;
	font-size:18px;
}

/* ==========================================================
   MEMBER QUICK ACTIONS
========================================================== */

.iexel-portal-actions{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:20px;
    margin-top:30px;
}

.iexel-portal-action-card{
    background:#fff;
    border-radius:14px;
    border-left:5px solid #cba135;
    padding:22px;
    text-decoration:none;
    color:#0f2557;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    transition:.2s;
}

.iexel-portal-action-card:hover{
    transform:translateY(-4px);
    box-shadow:0 14px 34px rgba(0,0,0,.12);
}

.iexel-portal-action-card span{
    display:block;
    font-size:34px;
    margin-bottom:12px;
}

.iexel-portal-action-card strong{
    display:block;
    font-size:18px;
}

.iexel-upcoming-event{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-left:5px solid #cba135;
	border-radius:12px;
	padding:16px 18px;
	margin:14px 0;
}

.iexel-upcoming-event strong{
	display:block;
	font-size:20px;
	margin-bottom:8px;
	color:#071d49;
}

.iexel-upcoming-event p{
	margin:6px 0;
}

.iexel-event-card{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-left:5px solid #cba135;
	border-radius:16px;
	padding:22px;
	margin:16px 0;
}

.iexel-event-badge{
	display:inline-block;
	background:#071d49;
	color:#fff;
	border-radius:999px;
	padding:6px 12px;
	font-size:12px;
	font-weight:700;
	text-transform:uppercase;
	margin-bottom:12px;
}

.iexel-event-card h3{
	margin:0 0 12px;
	color:#071d49;
}

.iexel-event-meta{
	display:flex;
	gap:14px;
	flex-wrap:wrap;
	margin-bottom:12px;
}

.iexel-event-notes{
	margin:12px 0;
}

.iexel-event-actions{
	display:flex;
	gap:10px;
	margin-top:18px;
	flex-wrap:wrap;
}

.iexel-event-button{
	background:#071d49;
	color:#fff;
	text-decoration:none;
	border-radius:10px;
	padding:10px 14px;
	font-weight:700;
}

.iexel-event-button.secondary{
	background:#fff;
	color:#071d49;
	border:1px solid #cba135;
}

.iexel-event-availability-summary {
    display: flex;
    gap: 18px;
    margin: 14px 0;
    font-size: 14px;
    font-weight: 600;
    flex-wrap: wrap;
}

.iexel-event-availability-summary .available {
    color: #2e7d32;
}

.iexel-event-availability-summary .unavailable {
    color: #c62828;
}

.iexel-event-availability-summary .pending {
    color: #ef6c00;
}

.iexel-event-info {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	margin: 24px 0;
}

.iexel-event-info div {
    background: linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.025)
    );
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    padding: 18px;
    transition: all .2s ease;
}

.iexel-event-info div:hover {
    transform: translateY(-2px);
    border-color: var(--iexel-gold);
    box-shadow: 0 12px 30px rgba(0,0,0,.22);
}

.iexel-os-card h1 {
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.05;
	margin: 12px 0 14px;
	letter-spacing: -0.04em;
}

.iexel-event-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
}

.iexel-event-meta span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.045);
	border: 1px solid rgba(255,255,255,.12);
	color: #ffffff;
	font-weight: 800;
	font-size: 13px;
}




.iexel-os-card,
.iexel-event-card,
.iexel-portal-action-card {
	background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015)), var(--iexel-card);
	border: 1px solid var(--iexel-border);
	border-radius: 18px;
	color: var(--iexel-color-on-dark, #ffffff);
	/* Batch 1A: the gold left accent was previously a 5px border-left
	   (vs. 1px on every other side), which measurably insets this card's
	   content 4px further from the viewport on the left than the right on
	   every single instance of this shared card across the portal --
	   confirmed via computed-style measurement as a real, reproducible
	   contributor to the "content shifted right" mobile defect. An inset
	   box-shadow paints the identical flat gold stripe with zero box-model
	   width, so the border can stay a uniform, symmetric 1px on all sides. */
	box-shadow: inset 4px 0 0 0 var(--iexel-gold), 0 22px 60px rgba(0,0,0,.38);
	padding: 24px;
}

.iexel-os-card h1,
.iexel-os-card h2,
.iexel-os-card h3,
.iexel-event-card h3,
.iexel-portal-action-card strong {
	color: var(--iexel-white);
}

.iexel-os-card p,
.iexel-event-card p,
.iexel-event-meta,
.iexel-event-info div {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
}

/* Final acceptance correction: same missing-opaque-background pattern found
   and fixed elsewhere this batch -- EventInfoGrid's cells were only ever
   safe on the accidental ambient dark backdrop the unclosed <div> used to
   provide. Now genuinely un-nested (completed-Match branch, and the
   upcoming branch for Parent/Player/non-Match Events where this grid still
   renders), each cell needs its own opaque base. */
.iexel-event-info div {
	background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)), var(--iexel-card);
	border: 1px solid var(--iexel-border);
}

.iexel-availability-panel {
	background: rgba(255,255,255,.04);
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
	padding: 18px;
}

.iexel-availability-panel h4 {
	margin: 0 0 14px;
	color: var(--iexel-white);
}

.iexel-availability-panel ul {
	margin: 0;
	padding-left: 20px;
}

.iexel-availability-panel.available {
	border-color: rgba(34,197,94,.45);
}

.iexel-availability-panel.unavailable {
	border-color: rgba(239,68,68,.45);
}

.iexel-availability-panel.pending {
	border-color: rgba(245,158,11,.45);
}

.iexel-countdown-card {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 12px;
	padding: 16px 20px;
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
	background: rgba(255,255,255,.04);
	color: var(--iexel-color-on-dark, #ffffff);
}

.iexel-countdown-card span {
	color: var(--iexel-muted);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iexel-countdown-card strong {
	color: var(--iexel-gold-bright);
	font-size: 30px;
	line-height: 1;
}
.iexel-event-hero-card {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
}

/* Batch 1A: a dedicated, designed Club OS surface for the operational
   fixture hero, decoupled from the shared photographic banner system
   entirely (EventHeroCard.php no longer calls event_banner()/
   ResponsiveBannerPicture -- see that file for the full rationale). Scoped
   to "inside an .iexel-os-card" (this hero's only real-world context, both
   the upcoming and completed-Match render paths) and bled to the parent
   card's own edges with a negative margin equal to its padding, so this
   reads as one bold unified premium block rather than a card nested inside
   a card. min-height is explicitly reset to auto: the shared
   ".iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero"
   rule elsewhere in this file (untouched, still governs Team Workspace/
   Experience heroes) would otherwise still force a tall 210-390px banner
   height even with the photograph removed. */
.iexel-os-card > .iexel-event-hero-card {
	position: relative;
	overflow: hidden;
	min-height: auto;
	margin: -24px -24px 24px;
	padding: 26px 24px;
	border-radius: 18px 18px 0 0;
	/* Batch 1B: deepened two-tone depth (wider tonal range, top-right gold
	   glow plus a second bottom-left navy glow) and a restrained gold-tinted
	   seam marking where the hero ends and the rest of the card begins --
	   using only the established navy/gold tokens already in this file, no
	   new arbitrary colour values. */
	background:
		radial-gradient(130% 160% at 100% 0%, rgba(203,161,53,.2), transparent 52%),
		radial-gradient(90% 120% at 0% 100%, rgba(16,40,93,.55), transparent 60%),
		linear-gradient(160deg, #123571 0%, #071d49 55%, #030d24 100%);
	background-color: var(--iexel-brand-primary, #071d49);
	border-bottom: 1px solid rgba(203,161,53,.35);
}

/* Final acceptance correction: the hero above only bleeds to the TOP/left/
   right of its wrapping .iexel-os-card (flat bottom + 24px margin-bottom),
   leaving that card's own remaining padding/background exposed as a
   visually distinct "collar" strip underneath whenever nothing else is
   rendered in the same card -- reported as a stray "legacy/footer/card
   appendage" attached under the hero. This is exactly the normal case now
   (the hero-wrapping .iexel-os-card was un-nested in Batch 2 to contain
   ONLY the hero + EventLifecycleBanner, and the banner itself renders
   nothing for a plain scheduled/in-progress state, and is now suppressed
   for a plain completed/archived state with no unique message -- see
   PortalEventDetailPage.php). :last-child detects that case purely via
   existing DOM structure (no new PHP/markup): when the hero is the ONLY
   child, it bleeds to all four edges and takes the full border-radius,
   so the outer card's own background/corners are never separately
   visible. When EventLifecycleBanner DOES render (a cancellation with a
   real message), the hero is no longer :last-child and keeps its
   original flat-bottom/negative-bottom-margin behaviour unchanged, so the
   banner still sits correctly in the remaining card space below it. */
.iexel-os-card > .iexel-event-hero-card:last-child {
	margin-bottom: -24px;
	border-radius: 18px;
}

.iexel-event-hero-card h1 {
	color: var(--iexel-white);
	margin: 24px 0 18px;
	font-size: clamp(32px, 4vw, 52px);
}

/* Countdown/status stays useful but visually subordinate to the fixture
   identity and metadata above -- scoped to this hero only via the
   descendant selector, so the shared CountdownCard component's default
   (larger) presentation elsewhere in the portal is completely unaffected.
   Placed ahead of the existing @media(max-width:680px) completed-Match
   fluid-typography rule further down this file (same selector specificity)
   so that rule -- purpose-built for long lifecycle-state words like
   "ARCHIVED" not overflowing at narrow widths -- still wins there
   unchanged; this only takes effect at wider widths. */
/* Batch 1B: matches the confident 2px solid gold "Back to Team Events"
   outline treatment (.iexel-workspace-back), rather than no border at all --
   still visually secondary to the fixture identity purely through its
   smaller, muted-background footprint above, not through a weaker border. */
.iexel-event-hero-card .iexel-countdown-card { min-width: 0; padding: 10px 16px; background: rgba(255,255,255,.06); border: 2px solid var(--iexel-gold-bright, var(--iexel-gold)); border-radius: 10px; }
.iexel-event-hero-card .iexel-countdown-card span { font-size: .68rem; letter-spacing: .04em; }
.iexel-event-hero-card .iexel-countdown-card strong { font-size: 22px; }

.iexel-event-hero-tags {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.iexel-event-hero-tags span {
	border: 1px solid var(--iexel-border);
	border-radius: 999px;
	padding: 8px 14px;
	background: rgba(255,255,255,.04);
}

.iexel-event-countdown {
	margin-left: auto;
}

.iexel-countdown-card {
	min-width: 160px;
	text-align: center;
	background: linear-gradient(135deg, rgba(203,161,53,.18), rgba(255,255,255,.04));
}

.iexel-countdown-card strong {
	font-size: 34px;
	text-transform: uppercase;
}

.iexel-event-info {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.iexel-event-info div {
	min-height: 76px;
	display: flex;
	align-items: center;
	gap: 8px;
	line-height: 1.35;
}

@media (max-width: 1100px) {
	.iexel-event-info {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.iexel-event-info {
		grid-template-columns: 1fr;
	}
}

.iexel-event-info {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.iexel-event-info div {
	align-items: flex-start;
	flex-direction: column;
	gap: 6px;
}

@media (max-width: 900px) {
	.iexel-event-info {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ==================================================
TEAM ATTENDANCE WORKSPACE
================================================== */

.iexel-team-attendance-workspace {
	display: grid;
	gap: 22px;
	min-width: 0;
}

.iexel-team-attendance-workspace * {
	min-width: 0;
	box-sizing: border-box;
}

.iexel-team-attendance-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, .65fr);
	gap: 30px;
	align-items: center;
	padding: 30px;
	background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy));
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 22px;
	box-shadow: var(--iexel-shadow-medium);
}

/* Final MVP polish: primary Attendance modules move from the older heavy
   left gold rail to the established Coach workspace gold-TOP accent (see
   Event Detail / Team Events / Match Report). Scoped to ".iexel-team-attendance-tab"
   (a marker class present only on the Attendance tab's own wrapper -- see
   TeamWorkspacePage.php) because TeamAvailabilityWorkspace.php intentionally
   reuses these same base classes for its own, unrelated Availability cards,
   which keep their existing left-rail treatment untouched. */
.iexel-team-attendance-tab .iexel-team-attendance-hero {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

.iexel-team-attendance-tab .iexel-team-attendance-summary,
.iexel-team-attendance-tab .iexel-team-upcoming-registers,
.iexel-team-attendance-tab .iexel-team-completed-registers {
	background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy));
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-medium);
}

/* Coach Team Workspace Availability -- Final MVP Polish: the same gold-top
   hierarchy applied to the Availability tab's own reuse of these shared
   classes (Availability Focus = .iexel-team-attendance-hero; Availability
   Overview = .iexel-team-dashboard-card, also shared with Team Workspace
   Overview and TeamEventForm). Scoped to ".iexel-team-availability-tab"
   (a marker class present only on the Availability tab's own wrapper --
   see TeamAvailabilityWorkspace.php) so Attendance's separately-scoped
   treatment above, Overview's own ".iexel-team-workspace-grid" scoping,
   and any Parent/Player rendering of these same components, are all left
   untouched. */
.iexel-team-availability-tab .iexel-team-attendance-hero,
.iexel-team-availability-tab .iexel-team-dashboard-card {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

/* Upcoming Availability Windows: final background-tone correction --
   real Dev-site review found the earlier white-wash-over-gradient layering
   (see prior revision, kept here only in history) visibly paler than
   Availability Focus/Overview, breaking the "same dark primary-module
   family" read the Product Owner wants across all three modules. Dropped
   the white-wash overlay entirely and matched the plain two-tone
   midnight-to-navy gradient already established for primary Coach
   Workspace modules (identical treatment to Attendance's own separately-
   scoped ".iexel-team-upcoming-registers" rule above, and the same colour
   pair -- just reordered -- as Availability Focus's own
   ".iexel-team-attendance-hero" gradient). The individual fixture/window
   card (.iexel-team-attendance-event) is deliberately left untouched --
   its existing subtle rgba(255,255,255,.025) tint now reads as the
   "slightly lighter" operational layer against this darker outer module,
   which is the intended hierarchy. */
.iexel-team-availability-tab .iexel-team-upcoming-registers {
	background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy));
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-team-attendance-hero.is-empty { grid-template-columns: 1fr; }
.iexel-team-attendance-hero h2,
.iexel-team-attendance-summary h2,
.iexel-team-upcoming-registers h2,
.iexel-team-completed-registers h2 { margin: 7px 0 16px; color: var(--iexel-white); }
.iexel-team-attendance-hero p { margin: 5px 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-weight: 700; }
.iexel-team-attendance-hero .iexel-button { margin-top: 18px; }

.iexel-team-attendance-hero-metrics {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.iexel-team-attendance-hero-metrics > div:not(.iexel-team-attendance-progress) {
	padding: 15px 8px;
	display: grid;
	align-content: center;
	gap: 4px;
	text-align: center;
	background: rgba(255,255,255,.05);
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-attendance-hero-metrics strong { display: block; color: var(--iexel-gold); font-size: 25px; }
.iexel-team-attendance-hero-metrics span { color: var(--iexel-muted); font-size: 11px; font-weight: 900; text-transform: uppercase; overflow-wrap: anywhere; }

.iexel-team-attendance-progress {
	grid-column: 1 / -1;
	height: 8px;
	overflow: hidden;
	background: rgba(255,255,255,.09);
	border-radius: 999px;
}

.iexel-team-attendance-progress > span { display: block; height: 100%; background: var(--iexel-gold); border-radius: inherit; }

.iexel-team-attendance-summary-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.iexel-team-attendance-summary-grid div {
	padding: 18px;
	background: rgba(255,255,255,.035);
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-attendance-summary-grid strong { display: block; color: var(--iexel-gold); font-size: 26px; }
.iexel-team-attendance-summary-grid span { color: var(--iexel-muted); font-size: 12px; font-weight: 800; }
.iexel-team-attendance-event-list, .iexel-team-completed-list { display: grid; gap: 12px; }

.iexel-team-attendance-event {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 16px;
	background: rgba(255,255,255,.025);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
}

.iexel-team-attendance-event-date { padding: 12px 6px; text-align: center; background: var(--iexel-navy); border-radius: 12px; }
.iexel-team-attendance-event-date strong { display: block; color: var(--iexel-gold); font-size: 25px; }
.iexel-team-attendance-event-date span { color: var(--iexel-muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.iexel-team-attendance-event h3 { margin: 3px 0; color: var(--iexel-white); }
.iexel-team-attendance-event p { margin: 0 0 9px; color: var(--iexel-muted); }
.iexel-team-attendance-event-action { display: grid; gap: 8px; justify-items: end; }
.iexel-team-attendance-event-action strong { color: var(--iexel-gold); }

.iexel-team-completed-list article {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	align-items: center;
	padding: 14px 0;
	border-top: 1px solid var(--iexel-border);
}

.iexel-team-completed-list article:first-child { border-top: 0; }
.iexel-team-completed-list h3 { margin: 4px 0 6px; color: var(--iexel-white); }
.iexel-team-completed-list article > div > span, .iexel-team-attendance-empty { color: var(--iexel-muted); }
/* Final MVP polish: tighten the shared EventLifecycleBanner's own vertical
   rhythm specifically within Recently Completed Registers so DATE / TITLE /
   COMPLETED STATUS / OUTCOMES read as one coherent compact record, without
   touching the shared banner's margin/padding used elsewhere (Event Detail,
   Team Events, Portal cards, etc.). */
.iexel-team-completed-list .iexel-event-lifecycle-banner { margin-top: 6px; padding: 10px 12px; }
.iexel-team-status-totals { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; }
.iexel-team-status-totals span { padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 900; }
.iexel-team-status-totals .is-available { color: #75e6a4; background: rgba(47,181,101,.12); }
.iexel-team-status-totals .is-pending { color: #ffd36a; background: rgba(226,174,42,.12); }
.iexel-team-status-totals .is-unavailable { color: #ff8c8c; background: rgba(222,75,75,.12); }
.iexel-team-status-totals .is-present { color: #75e6a4; background: rgba(47,181,101,.12); }
.iexel-team-status-totals .is-late { color: #ffd36a; background: rgba(226,174,42,.12); }
.iexel-team-status-totals .is-absent { color: #ff8c8c; background: rgba(222,75,75,.12); }
.iexel-team-status-totals .is-excused { color: #9fc4ff; background: rgba(83,132,207,.12); }

@media (max-width: 1024px) {
	.iexel-team-attendance-hero {
		grid-template-columns: 1fr;
	}

	.iexel-team-attendance-hero-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.iexel-team-attendance-hero { grid-template-columns: 1fr; padding: 22px; }
	.iexel-team-attendance-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-team-attendance-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-team-attendance-event { grid-template-columns: 58px minmax(0, 1fr); }
	.iexel-team-attendance-event-action { grid-column: 1 / -1; grid-template-columns: 1fr auto; align-items: center; justify-items: start; }
	.iexel-team-completed-list article { align-items: flex-start; flex-direction: column; }
	.iexel-team-completed-list .iexel-button { width: 100%; text-align: center; }

	/* Final MVP polish: now that the outcome pills read the full words
	   (Present/Late/Absent/Excused) rather than single letters, a single
	   flex row of four no longer reads cleanly at narrow widths. Reflows
	   to a clean 2x2 grid instead of shrinking type. Scoped to
	   ".iexel-team-completed-list" (exclusive to Recently Completed
	   Registers) so the Availability tab's own, already-full-word
	   ".iexel-team-status-totals" reuse (Available/Pending/Unavailable,
	   3 items) is unaffected and keeps its existing single-row wrap. */
	.iexel-team-completed-list .iexel-team-status-totals {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
		/* Follow-up: the Completed banner and this paragraph both carry
		   zero bottom/top margin by design (shared base rules), so they
		   sat directly adjacent with only the banner's own padding as a
		   buffer -- this read as "Completed sitting on top of
		   Present/Late" at narrow widths. Small mobile-only gap added
		   without touching the shared banner component or the base
		   ".iexel-team-status-totals" margin used by the Availability tab. */
		margin-top: 10px;
	}
	.iexel-team-completed-list .iexel-team-status-totals span { text-align: center; }

	/* Follow-up: PO wants each mobile history record to read as one
	   deliberate, centred record (date / fixture / Completed / outcomes /
	   View Event), and the section heading centred with it. Desktop must
	   stay exactly as accepted -- scoped to ".iexel-team-attendance-tab"
	   (the Attendance-tab-only marker) combined with
	   ".iexel-team-completed-registers"/".iexel-team-completed-list"
	   (both exclusive to this section), inside the existing 760px
	   breakpoint, so nothing outside Recently Completed Registers and no
	   wider viewport is touched. */
	.iexel-team-attendance-tab .iexel-team-completed-registers > .iexel-section-kicker,
	.iexel-team-attendance-tab .iexel-team-completed-registers > h2 {
		text-align: center;
	}

	.iexel-team-attendance-tab .iexel-team-completed-list article {
		align-items: center;
		text-align: center;
	}

	.iexel-team-attendance-tab .iexel-team-completed-list article > div {
		width: 100%;
	}
}

@media (max-width: 360px) {
	.iexel-team-attendance-hero-metrics { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.iexel-event-info {
		grid-template-columns: 1fr;
	}
}

.iexel-summary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin: 24px 0;
}

.iexel-summary-card {
	background: rgba(255,255,255,.04);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	padding: 20px;
	box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.iexel-summary-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
}

.iexel-summary-icon {
	font-size: 24px;
}

.iexel-summary-title {
	color: var(--iexel-muted);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: .06em;
}

.iexel-summary-value {
	color: var(--iexel-white);
	font-size: 28px;
	font-weight: 800;
}

.iexel-summary-success {
	border-color: rgba(34,197,94,.5);
}

.iexel-summary-danger {
	border-color: rgba(239,68,68,.5);
}

.iexel-summary-warning {
	border-color: rgba(245,158,11,.5);
}

.iexel-stat-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 24px 0;
}

@media (max-width: 900px) {
	.iexel-stat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.iexel-stat-grid {
		grid-template-columns: 1fr;
	}
}

.iexel-stat-card {
	background: rgba(255,255,255,.04);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	min-width: 0;
	padding: 20px;
	box-shadow: 0 14px 34px rgba(0,0,0,.2);
}

.iexel-stat-icon {
	font-size: 28px;
	margin-bottom: 10px;
}

.iexel-stat-label {
	color: var(--iexel-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iexel-stat-value {
	color: var(--iexel-white);
	font-size: 34px;
	font-weight: 900;
	margin-top: 8px;
	overflow-wrap: normal;
	word-break: normal;
}

.iexel-stat-response .iexel-stat-value {
	font-size: clamp(26px, 2.1vw, 30px);
}

.iexel-stat-hint {
	color: var(--iexel-muted);
	margin-top: 6px;
	font-size: 13px;
}

.iexel-stat-success {
	border-color: rgba(34,197,94,.5);
}

.iexel-stat-danger {
	border-color: rgba(239,68,68,.5);
}

.iexel-stat-warning {
	border-color: rgba(245,158,11,.5);
}



.iexel-section-header {
    margin: 28px 0 14px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

/* Batch 2: this is always DashboardSection's own first child -- the
   separator border/spacing meant for a PRECEDING sibling inside the same
   card reads as a stray line with 24px of card padding above it now that
   .iexel-dashboard-section is its own opaque card. */
.iexel-dashboard-section > .iexel-section-header:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

.iexel-section-kicker {
    display: block;
    color: #cba135;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.iexel-section-header h3 {
    margin: 0;
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
}

.iexel-availability-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 12px;
}

.iexel-availability-panel {
    background: rgba(255, 255, 255, 0.035);
    border-radius: 14px;
    padding: 18px;
    min-height: 110px;
}

.iexel-availability-panel h4 {
    margin: 0 0 14px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
}

.iexel-availability-panel ul {
    margin: 0;
    padding-left: 18px;
}

.iexel-availability-panel li {
    margin-bottom: 8px;
    color: #ffffff;
    font-weight: 700;
}

.iexel-availability-panel p {
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 700;
}

/* Coach Workspace Batch B (B2): a Player's name inside Team Responses is
   now an inline response-update control -- native <details>/<summary>, no
   JS accordion dependency, and reuses the exact same disclosure-chevron
   convention already established for .iexel-event-response-summary-row
   directly above and .iexel-coach-availability-disclosure elsewhere on
   this page, rather than inventing a fourth. The field layout inside the
   form reuses .iexel-coach-availability-fields verbatim (previously only
   used by the now-removed standalone update form) -- same dark-surface-
   validated select/button sizing, no new form styling invented. Multiple
   Player editors may be open at once; opening one never closes another. */
.iexel-availability-panel li:has(.iexel-availability-panel-edit) {
	margin-bottom: 4px;
}
.iexel-availability-panel-edit summary {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 4px 0;
	color: #ffffff;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.iexel-availability-panel-edit summary::-webkit-details-marker {
	display: none;
}
.iexel-availability-panel-edit summary::after {
	content: "\203A";
	margin-left: auto;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 16px;
	transition: transform .15s ease;
}
.iexel-availability-panel-edit[open] summary::after {
	transform: rotate(90deg);
}
.iexel-availability-row-static {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 4px 0;
	color: #ffffff;
	font-weight: 700;
}
.iexel-availability-row-lead {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.iexel-availability-player-name {
	overflow-wrap: break-word;
	word-break: break-word;
}
.iexel-availability-view-receipt {
	margin-left: auto;
	font-size: 12px;
	font-weight: 500;
	color: var(--iexel-color-on-dark-muted, rgba(255, 255, 255, 0.65));
	white-space: nowrap;
	padding-right: 6px;
}
.iexel-availability-panel-edit-form {
	margin: 6px 0 10px;
	padding: 12px;
	background: rgba(255,255,255,.035);
	border: 1px solid var(--iexel-border);
	border-radius: 10px;
}
.iexel-availability-panel-edit-form .iexel-coach-availability-fields {
	grid-template-columns: minmax(0, 1fr) auto;
}
@media (max-width: 480px) {
	.iexel-availability-panel-edit summary,
	.iexel-availability-row-static {
		flex-wrap: wrap;
		row-gap: 2px;
	}
	.iexel-availability-view-receipt {
		padding-left: 24px;
		width: 100%;
		margin-left: 0;
	}
	.iexel-availability-panel-edit-form .iexel-coach-availability-fields {
		grid-template-columns: 1fr;
	}
	.iexel-availability-panel-edit-form .iexel-button {
		width: 100%;
	}
}

.iexel-availability-panel-note {
	margin-top: 12px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 12px;
}

/* Compact, closed-by-default Response Summary (Batch 1 mobile UX redesign):
   each response category is a native details/summary row, matching the
   existing disclosure pattern already used by .iexel-event-lifecycle-
   confirmation / .iexel-completed-match-actions__recovery elsewhere on this
   page, rather than a new interaction framework. */
/* Primary card gold top accent standardisation: this card previously only
   carried the shared .iexel-os-card base treatment (a thin flat gold
   LEFT stripe, painted via an inset box-shadow -- see .iexel-os-card
   itself, used unmodified across the whole Club OS portal and never
   touched here), while this page's other primary modules (Event
   Information, Coach Actions, Team Availability, Match Selection, Event
   Actions, ...) all carry a stronger gold TOP edge instead. Overriding
   just the box-shadow (dropping the inset gold stripe, keeping only the
   existing drop-shadow already used by every other promoted card) and
   adding border-top here brings Team Responses into the same consistent
   "gold-topped operational module" pattern -- the underlying .iexel-os-card
   background/1px border/radius/padding are untouched, and this class is
   exclusive to this page (PortalEventDetailPage.php only), so no scoping
   wrapper is needed. */
.iexel-event-response-summary { display: grid; gap: 10px; border-top: 4px solid var(--iexel-gold); box-shadow: var(--iexel-shadow-small); }
.iexel-event-response-summary h3 { margin: 2px 0 4px; color: var(--iexel-white); font-size: 16px; }
.iexel-event-response-summary-row { padding: 10px 12px; background: rgba(255,255,255,.035); border: 1px solid var(--iexel-border); border-radius: 10px; }
.iexel-event-response-summary-row summary { display: flex; align-items: center; gap: 10px; min-height: 24px; color: var(--iexel-white); font-weight: 800; cursor: pointer; list-style: none; }
.iexel-event-response-summary-row summary::-webkit-details-marker { display: none; }
.iexel-event-response-summary-row summary::after { content: "\203A"; margin-left: auto; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: 18px; transition: transform .15s ease; }
.iexel-event-response-summary-row[open] summary::after { transform: rotate(90deg); }
.iexel-event-response-summary-row--empty { display: flex; align-items: center; gap: 10px; min-height: 24px; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-weight: 700; opacity: .7; }
.iexel-event-response-summary-icon { flex: 0 0 auto; }
.iexel-event-response-summary-count { flex: 0 0 auto; min-width: 1.4em; color: var(--iexel-gold-bright, var(--iexel-gold)); font-size: 1.05rem; font-weight: 900; }
.iexel-event-response-summary-label { flex: 1 1 auto; overflow-wrap: anywhere; }
.iexel-event-response-summary-detail { margin-top: 10px; }
.iexel-event-response-summary-detail .iexel-availability-panel { padding: 0; background: none; border: 0; }
.iexel-event-response-summary-detail .iexel-availability-panel h4 { display: none; }

/* Batch 2: RSVP Reminder progressive disclosure -- count stays visible,
   the form is collapsed behind the same disclosure pattern as everywhere
   else on this page. */
/* Primary card gold top accent standardisation: .iexel-rsvp-reminder-card
   had no rule of its own -- it only ever received the shared .iexel-os-card
   base treatment (thin flat gold LEFT stripe via inset box-shadow), unlike
   this page's other promoted primary modules. Same treatment as Team
   Responses immediately above: drop the inherited inset gold stripe, add a
   stronger gold top edge. Exclusive to this page -- no scoping wrapper
   needed. */
.iexel-rsvp-reminder-card { border-top: 4px solid var(--iexel-gold); box-shadow: var(--iexel-shadow-small); }
.iexel-rsvp-reminder-count { margin: 6px 0 12px; color: var(--iexel-muted); font-size: .85rem; font-weight: 800; text-transform: uppercase; }
.iexel-rsvp-reminder-disclosure summary { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px; color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; cursor: pointer; list-style: none; }
.iexel-rsvp-reminder-disclosure summary::-webkit-details-marker { display: none; }
.iexel-rsvp-reminder-disclosure summary::after { content: "\203A"; margin-left: auto; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: 18px; transition: transform .15s ease; }
.iexel-rsvp-reminder-disclosure[open] summary::after { transform: rotate(90deg); }
.iexel-rsvp-reminder-disclosure form { margin-top: 10px; }
.iexel-rsvp-reminder-disclosure textarea { width: 100%; min-height: 60px; box-sizing: border-box; resize: vertical; }
.iexel-rsvp-recipients-fieldset { border: 0; padding: 0; margin: 0 0 4px; }
.iexel-rsvp-recipients-list { display: flex; flex-direction: column; gap: 6px; }
.iexel-rsvp-recipient-row { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 12px; background: rgba(255, 255, 255, .05); border: 1px solid var(--iexel-border, rgba(255, 255, 255, .12)); border-radius: 8px; cursor: pointer; color: var(--iexel-color-on-dark, #ffffff); font-size: .9rem; font-weight: 600; }
.iexel-rsvp-recipient-row:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); }
.iexel-rsvp-recipient-checkbox { width: 18px; height: 18px; min-height: 18px; accent-color: var(--iexel-gold); flex-shrink: 0; cursor: pointer; }
.iexel-rsvp-recipient-name { flex: 1 1 auto; overflow-wrap: anywhere; word-break: break-word; }

/* Batch 2: Lifecycle Actions (Cancel/Archive/...) collapsed by default --
   the whole card is now itself the <details>, so its own summary chevron
   matches the pattern above; the inner EventLifecycleControlsCard section
   (untouched, still has its own per-action confirmation <details>) loses
   ONLY its own redundant card chrome here to avoid a card nested in a
   card, exactly as .iexel-event-response-summary-detail already does for
   AvailabilityPanel. */
/* MVP surface-hierarchy correction: this class is exclusive to Event Detail
   (both the future and completed-Match branches, never rendered anywhere
   else), so it is restyled directly rather than needing the .iexel-event-detail
   scoping wrapper -- promoted to the same richer treatment as Match Report/
   Match Selection/Attendance Summary above. */
.iexel-event-lifecycle-disclosure {
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-small);
}
.iexel-event-lifecycle-disclosure > summary { display: flex; align-items: center; gap: 8px; min-height: 24px; color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; text-transform: uppercase; font-size: .85rem; letter-spacing: .04em; cursor: pointer; list-style: none; }
.iexel-event-lifecycle-disclosure > summary::-webkit-details-marker { display: none; }
.iexel-event-lifecycle-disclosure > summary::after { content: "\203A"; margin-left: auto; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: 18px; transition: transform .15s ease; }
.iexel-event-lifecycle-disclosure[open] > summary::after { transform: rotate(90deg); }
.iexel-event-lifecycle-disclosure .iexel-event-lifecycle-card { padding: 0; background: none; border: 0; margin-top: 14px; }

/* Batch 2: Team Availability administrative form collapsed by default. */
.iexel-coach-availability-disclosure summary { display: flex; align-items: center; gap: 8px; min-height: 44px; color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; cursor: pointer; list-style: none; }
.iexel-coach-availability-disclosure summary::-webkit-details-marker { display: none; }
.iexel-coach-availability-disclosure summary::after { content: "\203A"; margin-left: auto; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: 18px; transition: transform .15s ease; }
.iexel-coach-availability-disclosure[open] summary::after { transform: rotate(90deg); }
.iexel-coach-availability-disclosure .iexel-coach-availability-update { margin-top: 14px; }

.iexel-event-lifecycle-banner {
	display: grid;
	gap: 6px;
	margin: 12px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(255,255,255,.06);
}

.iexel-event-lifecycle-banner strong,
.iexel-event-lifecycle-banner p {
	margin: 0;
	color: inherit;
}

.iexel-event-card .iexel-event-lifecycle-banner {
	color: #071d49;
}

.iexel-event-lifecycle-banner.is-cancelled {
	border-color: rgba(239,68,68,.45);
	background: rgba(127,29,29,.22);
}

.iexel-event-lifecycle-banner.is-completed {
	border-color: rgba(59,130,246,.4);
	background: rgba(15,23,42,.24);
}

.iexel-event-lifecycle-banner.is-draft,
.iexel-event-lifecycle-banner.is-archived {
	border-color: rgba(148,163,184,.35);
	background: rgba(15,23,42,.18);
}

@media (max-width: 720px) {
    .iexel-availability-grid {
        grid-template-columns: 1fr;
    }
}

.iexel-info-label {
	color: var(--iexel-muted);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iexel-info-value {
	display: block;
	color: var(--iexel-white);
	font-size: 22px;
	font-weight: 800;
	margin-top: 6px;
}

/* Batch 2 gave this card an opaque dark base (was translucent-only, unsafe
   once un-nested from the accidental ambient dark backdrop). MVP
   surface-hierarchy correction promotes it further, from that flatter
   single-tone navy to the same richer two-stop gradient + gold-top accent
   as this page's other primary cards -- exclusive to Event Detail already,
   no scoping wrapper needed. */
.iexel-event-notes-card {
	margin-top: 24px;
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
	border-radius: 16px;
	padding: 20px;
	box-shadow: var(--iexel-shadow-small);
}

.iexel-event-notes-card p {
	margin: 8px 0 0;
	color: var(--iexel-color-on-dark, #ffffff);
	font-weight: 600;
	line-height: 1.6;
}

/* ==========================================================
   COACH ACTIONS CARD
========================================================== */

/* Batch 2: same missing-opaque-background issue as .iexel-event-notes-card
   above, same fix -- var(--iexel-card) navy added as the base layer under
   the existing translucent tint, now that this card is un-nested directly
   into the page's light gutter background rather than an ambient dark
   parent card. */
/* Primary card gold top accent standardisation: this card previously had
   no gold accent at all (flat 1px border(--iexel-border) on every side --
   confirmed acceptable against the continuous canvas by the earlier "4
   remaining flatter cards" review, but that review was about background
   tone/cohesion, not accent-direction consistency, which is what this
   batch addresses). Background/padding/radius/shadow are unchanged;
   border-top is the only addition, bringing it into line with this page's
   other gold-topped primary modules. Exclusive to this page -- no scoping
   wrapper needed. */
.iexel-coach-actions-card{
	margin:28px 0;
	padding:24px;
	border-radius:18px;
	background:linear-gradient(
		180deg,
		rgba(255,255,255,.04),
		rgba(255,255,255,.02)
	), var(--iexel-card);
	border:1px solid var(--iexel-border);
	border-top: 4px solid var(--iexel-gold);
	box-shadow:0 18px 50px rgba(0,0,0,.25);
}

.iexel-coach-actions-card h3{
	margin:6px 0 18px;
	color:var(--iexel-white);
}

.iexel-coach-actions-list{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:10px;
}

.iexel-coach-actions-list .iexel-button{
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	min-width:0;
	min-height:42px;
	padding:10px 8px;
	font-size:13px;
	line-height:1.2;
	box-sizing:border-box;
}

.iexel-coach-actions-list .iexel-coach-action--full{
	grid-column:1 / -1;
}

/* Batch 2: matches the existing native-disclosure pattern used by
   .iexel-event-lifecycle-confirmation/.iexel-completed-match-actions__recovery/
   .iexel-event-response-summary-row elsewhere on this page. */
.iexel-coach-actions-tools{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);}
.iexel-coach-actions-tools summary{display:flex;align-items:center;gap:8px;min-height:24px;color:var(--iexel-color-on-dark,#ffffff);font-size:.85rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;list-style:none;}
.iexel-coach-actions-tools summary::-webkit-details-marker{display:none;}
.iexel-coach-actions-tools summary::after{content:"\203A";margin-left:auto;color:var(--iexel-color-on-dark-muted,#c8d3e3);font-size:18px;transition:transform .15s ease;}
.iexel-coach-actions-tools[open] summary::after{transform:rotate(90deg);}
.iexel-coach-actions-tools .iexel-coach-actions-list{margin-top:14px;}

.iexel-coach-actions-list button{
	background:var(--iexel-midnight-2);
	color:#fff;
	border:1px solid var(--iexel-border);
	border-radius:12px;
	padding:12px 18px;
	font-weight:700;
	cursor:pointer;
	transition:.2s;
}

.iexel-coach-actions-list button:hover{
	background:var(--iexel-gold);
	color:#06142f;
	transform:translateY(-2px);
}

/* ==========================================================
   CLUB OS LAYOUT ENGINE
========================================================== */

.iexel-two-column-layout{
	display:grid;
	grid-template-columns:minmax(0,1fr) 360px;
	gap:24px;
	align-items:start;
	margin:28px 0;
}

.iexel-two-column-main{
	display:flex;
	flex-direction:column;
	gap:24px;
	min-width:0;
}

.iexel-two-column-sidebar{
	display:flex;
	flex-direction:column;
	gap:24px;
	min-width:0;
}

@media (max-width:1024px){

	.iexel-two-column-layout{
		grid-template-columns:1fr;
	}

	.iexel-two-column-sidebar{
		order:-1;
	}

}

.iexel-two-column-full{
	grid-column:1 / -1;
}

/* MVP surface-hierarchy correction / mobile vertical rhythm: the completed-
   Match branch now suppresses EventInfoGrid+Venue for the Coach (the hero
   already carries every fact) with nothing else rendered in the main
   column there, leaving an empty .iexel-two-column-main that still
   contributed its own row-gap on every side -- a genuine dead vertical
   band at 320px between the sidebar cards above and Match Lineup & Incident
   History below. Collapsed via :not(:has(*)) (correctly ignores the
   PHP template's own whitespace text nodes between the open/close tags,
   unlike :empty) rather than any PHP change to the shared TwoColumnLayout
   helper. General-purpose correctness fix for the shared layout primitive
   itself (an empty column should never reserve gap space or a track), not
   an Event-Detail-only opinion -- safe for every other page that reuses
   TwoColumnLayout, since main is never actually empty there today. */
.iexel-two-column-main:not(:has(*)) {
	display: none;
}

/* :has() cannot itself be nested inside another :has()'s argument (a
   ":has() cannot contain :has()" restriction in the CSS Selectors spec) --
   ".iexel-two-column-layout:has(.iexel-two-column-main:not(:has(*)))" is an
   invalid selector for that reason and never matches anything. Resolved at
   the one call site that needs it (PortalEventDetailPage.php's completed-
   Match branch) with this explicit modifier class instead, so the sidebar
   spans the full grid width on desktop when main is skipped. */
.iexel-two-column-sidebar--full {
	grid-column: 1 / -1;
}

/* ==========================================================
   WEATHER CARD
========================================================== */

.iexel-weather-card h3{
	margin:8px 0;
	font-size:32px;
	color:var(--iexel-white);
}

.iexel-weather-summary{
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	margin-bottom:18px;
}

.iexel-weather-stats{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px;
}

.iexel-weather-stats div{
	padding:12px;
	border-radius:12px;
	background:rgba(255,255,255,.04);
	border:1px solid var(--iexel-border);
}

.iexel-weather-stats strong{
	display:block;
	font-size:12px;
	color:var(--iexel-muted);
	text-transform:uppercase;
	margin-bottom:4px;
}

.iexel-weather-stats span{
	font-size:18px;
	font-weight:700;
	color:var(--iexel-white);
}

.iexel-sidebar-stack {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.iexel-event-countdown-card{
    text-align:center;
}

.iexel-countdown-value{
    font-size:36px;
    font-weight:700;
    color:var(--iexel-gold);
    line-height:1;
    margin:14px 0 8px;
}

.iexel-countdown-subtitle{
    font-size:13px;
    color:var(--iexel-text-muted);
    text-transform:uppercase;
    letter-spacing:.08em;
}

.iexel-countdown-date{
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid var(--iexel-border);
    color:var(--iexel-white);
    font-weight:600;
}

/* Batch 2: DashboardSection previously had no card chrome of its own at
   all -- safe only because it always used to render inside the single
   giant ambient-dark outer .iexel-os-card. Now that Team Availability and
   Coaches Attending sit directly in the page's own light gutter background
   (the real alignment fix), this needs the same opaque .iexel-os-card-style
   treatment every other lower section already has, or its own header text
   and every un-backed translucent child (CoachAvailabilityUpdateForm's
   .iexel-coach-availability-update, the Coaches Attending
   .iexel-availability-panel) become close to unreadable against the light
   page background. */
/* MVP surface-hierarchy correction: promoted from the flatter .iexel-os-card-
   style single-tone navy to the same richer two-stop gradient as this
   page's other primary cards -- exclusive to Event Detail already (Team
   Availability/Coaches Attending), no scoping wrapper needed. Nested
   children (CoachAvailabilityUpdateForm's .iexel-coach-availability-update,
   the Coaches Attending .iexel-availability-panel) keep their existing
   lighter translucent tint unchanged -- the intended nested/detail surface. */
.iexel-dashboard-section {
	margin-top: 24px;
	padding: 24px;
	border-radius: 18px;
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-small);
}

.iexel-dashboard-section:first-child {
	margin-top: 0;
}

.iexel-button{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:10px 16px;
	border-radius:10px;
	text-decoration:none;
	font-weight:600;
	font-size:14px;
	transition:.2s;
}

.iexel-button-primary{
	background:var(--iexel-gold);
	color:#111;
}

.iexel-button-primary:hover{
	transform:translateY(-2px);
}

.iexel-button-secondary{
	background:rgba(255,255,255,.06);
	border:1px solid var(--iexel-border);
	color:var(--iexel-white);
}

.iexel-button-secondary:hover{
	background:rgba(255,255,255,.12);
}

.iexel-workspace-back-row {
	display: flex;
	min-width: 0;
}

.iexel-workspace-back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	min-height: 46px;
	padding: 10px 15px;
	box-sizing: border-box;
	border: 2px solid var(--iexel-gold);
	border-radius: 10px;
	font-weight: 850;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	overflow-wrap: anywhere;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.iexel-workspace-back.is-light {
	color: var(--iexel-navy);
	background: var(--iexel-white);
}

.iexel-workspace-back.is-dark {
	color: var(--iexel-white);
	background: var(--iexel-navy);
}

.iexel-workspace-back:hover {
	color: var(--iexel-navy);
	background: var(--iexel-gold);
	border-color: var(--iexel-gold);
}

.iexel-workspace-back:focus-visible {
	color: var(--iexel-navy);
	background: var(--iexel-gold);
	border-color: var(--iexel-white);
	outline: 3px solid var(--iexel-gold-bright);
	outline-offset: 3px;
}

.iexel-workspace-back.is-full-width {
	width: 100%;
}

@media (max-width: 600px) {
	.iexel-workspace-back-row,
	.iexel-workspace-back {
		width: 100%;
	}
}

.iexel-button-active {
	background: var(--iexel-gold);
	color: #06142f;
	border: 1px solid var(--iexel-gold);
	box-shadow: 0 0 0 3px rgba(203,161,53,.18);
}

.iexel-button-danger-active {
	background: var(--iexel-danger);
	color: #ffffff;
	border: 1px solid var(--iexel-danger);
	box-shadow: 0 0 0 3px rgba(239,68,68,.18);
}

/* ==========================================================
   BADGES
========================================================== */

.iexel-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;

	padding:6px 14px;

	border-radius:999px;

	font-size:12px;
	font-weight:600;
	letter-spacing:.06em;
	text-transform:uppercase;

	border:1px solid var(--iexel-border);

	background:#314673;

	color:#fff;

	gap:6px;

	transition:.2s;
}

.iexel-badge:hover{
	transform:translateY(-1px);
}

.iexel-badge-success{
	background:#143d2b;
	border-color:#22c55e;
	color:#b9ffd4;
}

.iexel-badge-danger{
	background:#431d28;
	border-color:#ef4444;
	color:#ffd0d0;
}

.iexel-badge-warning{
	background:#45340d;
	border-color:#f59e0b;
	color:#ffe6a5;
}

.iexel-badge-info{
	background:#1f375e;
	border-color:#60a5fa;
	color:#dbeafe;
}

.iexel-badge-gold{
	background:linear-gradient(
		135deg,
		#cba135,
		#e5bf58
	);

	color:#06142f;

	border:none;

	box-shadow:
		0 4px 14px rgba(203,161,53,.35);
}

.iexel-event-hero-tags .iexel-badge {
	font-size: 11px;
	padding: 7px 12px;
	font-weight: 800;
}

.iexel-event-hero-tags {
	margin-top: 12px;
}

#event-responses,
[id^="event-response-"] {
	scroll-margin-top: clamp(70px, 8vw, 100px);
}

.iexel-response-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 12px;
}

.iexel-response-actions form {
	margin: 0;
}

.iexel-response-actions .iexel-button {
	width: 100%;
	justify-content: center;
}

/* Coach Workspace Batch B, Product Owner acceptance fix (Fix 2): "I'm
   Available" and "Can't Attend" are already equal width and padding here
   (both fill their form via the rule above; the hero-compact row variant
   below gives them equal flex-basis too) -- the reported imbalance is a
   visual-WEIGHT issue, not a sizing one. The base .iexel-button-secondary
   (rgba(255,255,255,.06) fill, thin var(--iexel-border) gold-tinted edge)
   is tuned to read as a quiet/receding action elsewhere, but next to the
   solid-gold .iexel-button-primary here it disappears into this card's own
   dark translucent background, making the positive choice look dominant by
   default rather than by the viewer's own response. Scoped to this
   component only (not a global .iexel-button-secondary change, which other
   contexts rely on staying subtle) so the pair reads as one balanced
   decision while keeping the existing positive/negative colour identity. */
.iexel-response-actions .iexel-button-secondary {
	background: rgba(255,255,255,.14);
	border: 1.5px solid rgba(255,255,255,.55);
	color: #ffffff;
}

.iexel-response-actions .iexel-button-secondary:hover {
	background: rgba(255,255,255,.22);
}

.iexel-section-card {
	background: rgba(255,255,255,.035);
	border: 1px solid var(--iexel-border);
	border-radius: var(--iexel-radius-large);
	padding: 24px;
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-section-card-header {
	margin-bottom: 18px;
}

.iexel-section-card-header h3 {
	margin: 6px 0 0;
	color: var(--iexel-white);
	font-size: 20px;
	font-weight: 800;
}

/* ==========================================================
   METRIC GRID
========================================================== */

.iexel-metric-grid{
	display:grid;

	grid-template-columns:
		repeat(
			auto-fit,
			minmax(220px,1fr)
		);

	gap:20px;

	margin-top:18px;
}

.iexel-event-checklist-card h3 {
	margin: 6px 0 18px;
	color: var(--iexel-white);
}

.iexel-checklist-progress {
	margin: 10px 0 16px;
	color: var(--iexel-muted);
	font-weight: 700;
}

.iexel-os-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.iexel-os-checklist li {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--iexel-white);
	font-weight: 700;
}

.iexel-os-checklist .is-pending {
	color: var(--iexel-muted);
}

.iexel-attendance-summary-card h3 {
	margin: 6px 0 14px;
	color: var(--iexel-white);
}

/* Continuous football workspace canvas (final MVP implementation, per the
   read-only architecture audit): .iexel-event-detail already wraps the
   hero, both TwoColumnLayout columns, and every full_width() section for
   BOTH the future and completed-Match branches, has no CSS rule of its
   own anywhere, and is used nowhere else as a page-level visual wrapper
   (confirmed: Option C from the audit -- the only option with zero
   specificity risk and zero Parent/Player risk, since it needs no new
   markup and no scoping beyond what already exists). The gradient runs
   midnight-to-navy (top darker, bottom lighter) -- the OPPOSITE direction
   to the navy-to-midnight gradient every "primary module" card already
   uses -- so individual cards visibly sit "elevated" above the canvas
   rather than blending into it, while both still read as the same tonal
   family. Every colour here is the existing var(--iexel-navy)/
   var(--iexel-midnight)/var(--iexel-border) chain (itself already chained
   through to club branding -- see BrandingService::css_variables() ->
   DesignTokens::css_variables() -> --iexel-color-navy-deep/-primary ->
   --iexel-navy/--iexel-midnight), never a new hardcoded colour. Padding +
   radius give the canvas an intentional "workspace panel" frame rather
   than a flush rectangular slab exposing square corners behind the
   hero's own rounded top. No overflow:hidden -- nothing currently bleeds
   past the canvas edge, and clipping risk (e.g. a focus ring right at the
   boundary) is not worth trading for a corner-rounding guarantee nothing
   here actually needs. */
.iexel-event-detail {
	background: linear-gradient(180deg, var(--iexel-midnight), var(--iexel-navy));
	border: 1px solid var(--iexel-border);
	border-radius: 24px;
	padding: 16px;
	box-shadow: var(--iexel-shadow-medium);
}

@media (max-width: 600px) {
	.iexel-event-detail {
		padding: 10px;
		border-radius: 18px;
	}
}

/* MVP surface-hierarchy correction: AttendanceSummaryCard is also used by
   EventHubPage.php, so the shared .iexel-attendance-summary-card class
   itself is left untouched (still the flatter shared .iexel-os-card
   treatment there) -- scoped instead to the Event Detail page wrapper
   only, promoted to the same richer two-stop navy gradient + gold-top
   accent already established by this page's own accepted reference cards
   (Match Report, Match Selection, Match Summary). The nested
   .iexel-attendance-summary-grid cells are untouched -- their existing
   lighter translucent tint is exactly the intended nested/detail surface,
   and it already composites correctly against any opaque backdrop. */
.iexel-event-detail .iexel-attendance-summary-card {
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-small);
}

/* Primary card gold top accent standardisation (completed Match): Final
   Score, Match Summary and Match Incident Timeline are all shared
   components (MatchModeScoreCard is also Match Mode's own live scoreboard;
   MatchSummaryCard/MatchIncidentTimelineCard are also Match Report's/Match
   Mode's own pages) that carry a thin gold LEFT accent by design there --
   confirmed via source (MatchModePage.php, MatchReportPage.php) as
   deliberately out of scope for this Coach-Event-Detail-only batch. Scoped
   the same way as .iexel-attendance-summary-card immediately above: the
   shared classes/components themselves are completely untouched, only
   their presentation WITHIN this page's own continuous canvas is
   overridden to the same gold-top pattern as every other primary module
   here. Each of the three sits as its own direct child within the already
   gold-topped "Match Lineup & Incident History" wrapper (.iexel-completed-
   match-history, a CSS grid with its own 22px gap) or completed-match
   sidebar -- never touching or overlapping another gold top edge. Nested
   content inside each (Match Summary's metric/leader tiles, lineup rows,
   individual incident-timeline rows) is untouched -- still the existing
   lighter translucent tint. */
.iexel-event-detail .iexel-match-mode-score-card {
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
}

.iexel-event-detail .iexel-match-report-card {
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
}

.iexel-event-detail .iexel-incident-timeline-card {
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
}

.iexel-attendance-summary-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 14px;
}

.iexel-attendance-summary-grid div {
	background: rgba(255,255,255,.045);
	border: 1px solid var(--iexel-border);
	border-radius: 12px;
	padding: 10px;
	color: var(--iexel-white);
	font-weight: 800;
}

.iexel-attendance-summary-grid strong {
	display: block;
	font-size: 22px;
	color: var(--iexel-gold);
}

.iexel-attendance-summary-grid span {
	display: block;
	margin-top: 2px;
	color: var(--iexel-muted);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iexel-admin-hero {
	background: #071d49;
	color: #ffffff;
	border-left: 5px solid #cba135;
	border-radius: 16px;
	padding: 26px;
	margin: 20px 0;
}

.iexel-admin-hero h1 {
	color: #ffffff;
	margin: 6px 0;
}

.iexel-admin-hero p {
	margin: 0;
	color: rgba(255,255,255,.8);
}

/* Coach Workspace MVP visual close-out (A8): the legacy 5px LEFT gold
   rail is replaced by the established .iexel-accent-top-module TOP trim,
   matching the same migration already applied to other primary immersive
   modules (main Events header, Matchday Hub hero, My Teams cards) --
   consistent with the durable design-system rule, not a one-off. */
.iexel-attendance-hero-card {
	background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy));
	border-radius: 22px;
	padding: 32px;
	margin: 24px 0;
	box-shadow: var(--iexel-shadow-medium);
}
.iexel-attendance-hero-card.iexel-accent-top-module {
	border-top: 4px solid var(--iexel-gold);
}

.iexel-attendance-hero-card h1 {
	margin: 8px 0 10px;
	color: var(--iexel-white);
	font-size: clamp(34px, 5vw, 56px);
}

.iexel-attendance-hero-card p {
	margin: 0;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 20px;
	font-weight: 800;
}

.iexel-attendance-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.iexel-attendance-hero-meta span {
	border: 1px solid var(--iexel-border);
	border-radius: 999px;
	padding: 8px 12px;
	color: var(--iexel-white);
	background: rgba(255,255,255,.045);
	font-weight: 800;
}

.iexel-attendance-progress-card{
    background:linear-gradient(180deg,var(--iexel-navy),var(--iexel-midnight));
    border:1px solid var(--iexel-border);
    border-radius:20px;
    padding:24px;
    margin:24px 0;
}
/* Coach Workspace MVP visual close-out (A8) */
.iexel-attendance-progress-card.iexel-accent-top-module {
	border-top: 4px solid var(--iexel-gold);
}

.iexel-attendance-progress-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin:20px 0;
}

.iexel-attendance-progress-grid div{
    text-align:center;
    padding:16px;
    border-radius:14px;
    background:rgba(255,255,255,.04);
}

.iexel-attendance-progress-grid strong{
    display:block;
    font-size:28px;
    color:var(--iexel-white);
}

.iexel-attendance-progress-grid span{
    color: var(--iexel-color-on-dark-muted, #c8d3e3);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

@media(max-width:768px){

.iexel-attendance-progress-grid{

grid-template-columns:repeat(2,1fr);

}

}

.iexel-attendance-progress-card h3 {
	color: var(--iexel-white);
	margin: 6px 0 18px;
}

.iexel-attendance-progress-card p {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-weight: 800;
}

.iexel-attendance-progress-card p strong {
	color: var(--iexel-gold);
}

/* Coach Workspace MVP visual close-out, Batch A final polish (A-F4): a
   restrained accent-top for individual Player attendance cards, approved
   after the primary-module accent-top treatment was accepted. Implemented
   as an INSET box-shadow line, not border-top -- .is-present/.is-late/
   .is-absent/.is-excused below only ever override border-color (all four
   sides, uniform width), so a real border-top here would either be masked
   by that later same-specificity border-color re-declaration or would
   require restructuring the semantic rules; box-shadow is a completely
   independent property from border, so the two compose without either one
   overriding the other -- semantic state colour is fully preserved on all
   four edges, the accent is an additional, separate top line. 3px (versus
   the primary modules' 4px solid border-top) and var(--iexel-gold) (the
   runtime club Accent Colour token) keep this visibly more restrained and
   subordinate to the primary Attendance modules above it. */
.iexel-attendance-player-card{

background:linear-gradient(180deg,var(--iexel-navy),var(--iexel-midnight));

border:1px solid var(--iexel-border);

border-radius:18px;

padding:20px;

margin-bottom:18px;

box-shadow:var(--iexel-shadow-small), inset 0 3px 0 0 var(--iexel-gold);

}

.iexel-attendance-player-header{

margin-bottom:18px;

}

.iexel-attendance-player-header h3{

margin:0;

color:white;

font-size:22px;

}

.iexel-attendance-player-body{

display:grid;

gap:12px;

}

/* Coach Workspace MVP visual close-out (A10 quality check on the A8
   surface): the read-only register's "Status:"/"Notes:" text
   (AttendancePlayerCard.php's $read_only branch) had no colour of its own
   and fell through to the ambient page text colour (dark), reading as
   near-black on this card's own dark navy background -- a pre-existing
   contrast defect, not something this batch's own accent-top change
   introduced, but it sits on a page this batch already touches and directly
   fails the required "no unreadable low-contrast metadata" check. */
.iexel-attendance-player-body p {
	margin: 0;
	color: var(--iexel-color-on-dark, #ffffff);
}
.iexel-attendance-player-body p strong {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-weight: 800;
}

.iexel-attendance-player-body label{

color: var(--iexel-color-on-dark, #ffffff);

font-size:12px;

font-weight:700;

text-transform:uppercase;

letter-spacing:.08em;

}

.iexel-attendance-player-body select,

.iexel-attendance-player-body input{

box-sizing:border-box;

width:100%;

padding:12px;

border-radius:10px;

border:1px solid var(--iexel-border);

background:#233968;

color:white;

}

.iexel-attendance-form {
	margin-top: 24px;
}

.iexel-attendance-player-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	margin-top: 24px;
}

.iexel-attendance-notice {
	max-width: 1000px;
	margin: 12px auto 18px;
	padding: 14px 18px;
	border-radius: 14px;
	background: rgba(34,197,94,.14);
	border: 1px solid rgba(34,197,94,.45);
	color: var(--iexel-white);
	font-weight: 800;
}

.iexel-attendance-form .iexel-button {
	margin-top: 18px;
}

.iexel-attendance-player-card:has(select[value="present"]),
.iexel-attendance-player-card.is-present {
	border-color: rgba(34,197,94,.65);
}

.iexel-attendance-player-card.is-late {
	border-color: rgba(245,158,11,.65);
}

.iexel-attendance-player-card.is-absent {
	border-color: rgba(239,68,68,.65);
}

.iexel-attendance-player-card.is-excused {
	border-color: rgba(59,130,246,.65);
}

/*==================================================
MATCHDAY ACTION BAR
==================================================*/

.iexel-attendance-action-bar{

	position:sticky;
	bottom:20px;

	display:flex;
	align-items:center;
	justify-content:space-between;

	padding:18px 22px;

	margin-top:30px;

	border-radius:18px;

	background:#071b47;

	border:1px solid rgba(255,193,7,.25);

	box-shadow:
		0 15px 40px rgba(0,0,0,.35);

	z-index:50;
}

.iexel-attendance-status{

	font-size:15px;
	font-weight:700;
	color:#fff;
}

.iexel-attendance-action-right{

	display:flex;
	gap:12px;
}

/*==================================================
MATCHDAY BULK ACTIONS
==================================================*/

.iexel-attendance-bulk-card{

	margin:24px 0;

	padding:24px;

	background:#071b47;

	border:1px solid rgba(255,193,7,.25);

	border-radius:20px;

	box-shadow:0 15px 35px rgba(0,0,0,.25);
}
/* Coach Workspace MVP visual close-out (A8) */
.iexel-attendance-bulk-card.iexel-accent-top-module {
	border-top: 4px solid var(--iexel-gold);
}

.iexel-attendance-bulk-actions{

	display:grid;

	grid-template-columns:repeat(2,minmax(220px,1fr));

	gap:16px;

	margin-top:18px;
}

.iexel-bulk-attendance{

	padding:16px 18px;

	background:#12295d;

	color:#fff;

	border:1px solid rgba(255,193,7,.25);

	border-radius:14px;

	font-size:15px;

	font-weight:700;

	cursor:pointer;

	transition:.2s;
}

.iexel-bulk-attendance:hover{

	background:#183878;

	transform:translateY(-2px);

	border-color:#d4af37;
}

@media (max-width:768px){

	.iexel-attendance-bulk-actions{

		grid-template-columns:1fr;
	}
}

.iexel-attendance-bulk-card h3{
	margin:8px 0 20px;
	font-size:30px;
	font-weight:700;
	color:#ffffff;
}
/* A10 quality check on the A8 surface: the read-only "register is
   preserved for history..." notice (AttendanceBulkActionsCard.php) had
   the same pre-existing missing-colour issue as the player cards above. */
.iexel-attendance-bulk-card > p {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
}

/* ==================================================
PORTAL SHELL
================================================== */

.iexel-portal-shell {
	width: min(1180px, calc(100% - 32px));
	margin: 24px auto 48px;
}

.iexel-portal-shell-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 22px;
	margin-bottom: 18px;
	background: var(--iexel-midnight);
	border: 1px solid var(--iexel-border);
	border-bottom: 4px solid var(--iexel-gold);
	border-radius: var(--iexel-radius-large);
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-portal-brand {
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--iexel-white);
}

.iexel-portal-brand-kicker {
	color: var(--iexel-muted);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .12em;
}

.iexel-portal-brand strong {
	font-size: 18px;
}

.iexel-portal-user-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.iexel-portal-user-actions a {
	padding: 9px 12px;
	border: 1px solid var(--iexel-border);
	border-radius: var(--iexel-radius-small);
	color: var(--iexel-white);
	font-weight: 800;
	text-decoration: none;
}

.iexel-portal-user-actions a:hover {
	border-color: var(--iexel-gold);
	color: var(--iexel-gold);
}

.iexel-portal-shell-body {
	min-width: 0;
}

@media (max-width: 680px) {
	.iexel-portal-shell {
		width: min(100% - 20px, 1180px);
		margin-top: 10px;
	}

	.iexel-portal-shell-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.iexel-portal-user-actions {
		width: 100%;
	}

	.iexel-portal-user-actions a {
		flex: 1;
		text-align: center;
	}
}

/* ==================================================
PORTAL TOP BAR
================================================== */

.iexel-portal-topbar{
	display:flex;
	justify-content:space-between;
	align-items:center;
	min-width:0;
	padding:22px 28px;
	background:var(--iexel-midnight);
	border:1px solid var(--iexel-border);
	border-bottom:4px solid var(--iexel-gold);
	border-radius:18px;
	box-shadow:var(--iexel-shadow-medium);
	margin-bottom:20px;
}

.iexel-topbar-left{
	display:flex;
	align-items:center;
	min-width:0;
	gap:18px;
}

.iexel-club-logo{
	width:54px;
	height:54px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:28px;
	background:#173a73;
}

.iexel-club-logo__primary,.iexel-club-logo__compact{display:block;width:100%;height:100%}
.iexel-club-logo__compact{display:none}
.iexel-club-logo .iexel-club-mark img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
@media(max-width:600px){.iexel-club-logo.has-compact .iexel-club-logo__primary{display:none}.iexel-club-logo.has-compact .iexel-club-logo__compact{display:block}}

.iexel-club-title h2{
	margin:4px 0 0;
	font-size:22px;
	color:white;
	overflow-wrap:anywhere;
}

.iexel-topbar-right{
	display:flex;
	align-items:center;
	min-width:0;
	gap:20px;
}

.iexel-topbar-icon{
	flex:none;
	width:46px;
	height:46px;
	border-radius:50%;
	border:none;
	cursor:pointer;
	font-size:20px;
	background:#173a73;
	color:white;
}

.iexel-topbar-user{
	display:flex;
	align-items:center;
	min-width:0;
	gap:12px;
}

.iexel-avatar{
	flex:none;
	width:44px;
	height:44px;
	border-radius:50%;
	background:var(--iexel-gold);
	color:#111;
	font-weight:700;
	display:flex;
	align-items:center;
	justify-content:center;
}

.iexel-topbar-user strong{
	display:block;
	color:white;
	overflow-wrap:anywhere;
}

.iexel-topbar-user small{
	display:block;
	color:#b8c4d9;
	overflow-wrap:anywhere;
}

/* ==================================================
PORTAL NAVIGATION
================================================== */

.iexel-portal-navigation {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 0;
	padding: 10px;
	margin-bottom: 20px;
	box-sizing: border-box;
	overflow: visible;
	background: var(--iexel-midnight);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	box-shadow: var(--iexel-shadow-small);
}

.iexel-portal-nav-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	min-height: 44px;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-weight: 800;
	text-decoration: none;
	line-height: 1.25;
	text-align: center;
	white-space: normal;
	overflow-wrap: anywhere;
	transition:
		background .2s ease,
		border-color .2s ease,
		color .2s ease,
		transform .2s ease;
}

.iexel-portal-nav-link:hover {
	color: var(--iexel-white);
	background: rgba(255,255,255,.06);
	border-color: var(--iexel-border);
	transform: translateY(-1px);
}

.iexel-portal-nav-link.is-active {
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-color: var(--iexel-gold);
}

.iexel-portal-nav-link:focus-visible {
	outline: 3px solid var(--iexel-gold-bright);
	outline-offset: 3px;
}

.iexel-portal-nav-icon {
	flex: none;
	font-size: 16px;
}

@media (max-width: 1024px) {
	.iexel-portal-navigation {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.iexel-portal-topbar {
		align-items: stretch;
		flex-direction: column;
		gap: 16px;
		padding: 18px;
	}

	.iexel-topbar-right {
		width: 100%;
	}

	.iexel-topbar-user > div:last-child {
		min-width: 0;
	}

	.iexel-portal-navigation {
		position: sticky;
		bottom: 10px;
		z-index: 40;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-inline: 0;
		padding: 8px;
	}

	.iexel-portal-nav-link {
		flex-direction: column;
		gap: 3px;
		padding: 8px 10px;
		font-size: 11px;
	}

	.iexel-portal-nav-link:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.iexel-portal-nav-icon {
		font-size: 18px;
	}
}

/* ==========================================
BREADCRUMB
========================================== */

.iexel-breadcrumb{

	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:8px;

	margin-bottom:20px;

	font-size:14px;

	color:#8ea2c8;
}

.iexel-breadcrumb-item{

	font-weight:700;

}

.iexel-breadcrumb-separator{

	opacity:.45;

	font-size:18px;

}

/* ==================================================
COACH WORKSPACE HERO
================================================== */

.iexel-coach-workspace-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 28px;
	padding: 30px;
	margin-bottom: 22px;
	background:
		linear-gradient(
			135deg,
			var(--iexel-midnight),
			var(--iexel-navy)
		);
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 22px;
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-coach-workspace-hero h1 {
	margin: 8px 0 10px;
	color: var(--iexel-white);
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.05;
}

.iexel-coach-workspace-hero p {
	max-width: 660px;
	margin: 0;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 16px;
}

.iexel-coach-workspace-hero-summary {
	min-width: 170px;
	padding: 20px;
	text-align: center;
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
}

.iexel-coach-workspace-summary-label,
.iexel-coach-workspace-hero-summary span {
	display: block;
	color: var(--iexel-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.iexel-coach-workspace-hero-summary strong {
	display: block;
	margin: 5px 0;
	color: var(--iexel-gold);
	font-size: 34px;
	line-height: 1;
}

@media (max-width: 680px) {
	.iexel-coach-workspace-hero {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 22px 26px 22px 22px;
	}

	.iexel-coach-workspace-hero-copy {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		text-align: center;
	}

	.iexel-coach-workspace-hero h1 {
		margin: 12px 0 16px;
	}

	.iexel-coach-workspace-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-coach-workspace-hero-summary {
		width: 86%;
		max-width: 340px;
		min-width: 0;
		margin-top: 28px;
		padding: 20px 22px;
		box-sizing: border-box;
	}

	.iexel-coach-workspace-hero-summary strong {
		margin-block: 3px;
	}
}

/* ==================================================
COACH WORKSPACE PAGE
================================================== */

.iexel-coach-workspace-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 22px;
	align-items: start;
}

.iexel-coach-workspace-main,
.iexel-coach-workspace-sidebar {
	display: grid;
	gap: 22px;
	min-width: 0;
}

@media (max-width: 900px) {
	.iexel-coach-workspace-grid {
		grid-template-columns: 1fr;
	}
}

/* ==================================================
COACH SCHEDULE WIDGET
================================================== */

.iexel-coach-schedule-widget {
	padding: 24px;
	background: linear-gradient(
		180deg,
		var(--iexel-navy),
		var(--iexel-midnight)
	);
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 20px;
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-coach-schedule-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}

.iexel-coach-schedule-header h2 {
	margin: 6px 0 0;
	color: var(--iexel-white);
}

.iexel-coach-schedule-all-link {
	color: var(--iexel-gold);
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.iexel-coach-schedule-list {
	display: grid;
	gap: 14px;
}

.iexel-coach-schedule-event {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: 18px;
	padding: 18px;
	background: rgba(255,255,255,.045);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
}

.iexel-coach-schedule-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 92px;
	background: var(--iexel-midnight);
	border: 1px solid var(--iexel-border);
	border-radius: 13px;
	text-align: center;
}

.iexel-coach-schedule-date span,
.iexel-coach-schedule-date small {
	color: var(--iexel-muted);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
}

.iexel-coach-schedule-date strong {
	color: var(--iexel-gold);
	font-size: 28px;
	line-height: 1;
	margin: 4px 0;
}

.iexel-coach-schedule-content {
	min-width: 0;
}

.iexel-coach-event-type {
	color: var(--iexel-gold);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.iexel-coach-schedule-event h3 {
	margin: 4px 0 10px;
	color: var(--iexel-white);
	font-size: 20px;
}

.iexel-coach-schedule-meta,
.iexel-coach-schedule-availability,
.iexel-coach-schedule-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.iexel-coach-schedule-meta {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 13px;
}

.iexel-coach-schedule-availability {
	margin-top: 12px;
	font-size: 12px;
	font-weight: 800;
}

.iexel-coach-schedule-availability .is-available {
	color: #5ee28a;
}

.iexel-coach-schedule-availability .is-pending {
	color: #f4b942;
}

.iexel-coach-schedule-availability .is-unavailable {
	color: #ff6b72;
}

.iexel-coach-schedule-actions {
	margin-top: 15px;
}

.iexel-coach-schedule-empty {
	padding: 30px;
	text-align: center;
	background: rgba(255,255,255,.04);
	border: 1px dashed var(--iexel-border);
	border-radius: 16px;
}

.iexel-coach-schedule-empty h3 {
	margin: 8px 0;
	color: var(--iexel-white);
}

.iexel-coach-schedule-empty p {
	margin: 0;
	color: var(--iexel-muted);
}

@media (max-width: 680px) {
	.iexel-coach-schedule-header {
		flex-direction: column;
	}

	.iexel-coach-schedule-event {
		grid-template-columns: 62px minmax(0, 1fr);
		padding: 14px;
	}

	.iexel-coach-schedule-date {
		min-height: 80px;
	}

	.iexel-coach-schedule-actions .iexel-button {
		flex: 1;
		text-align: center;
	}
}

/* ==================================================
TEAM WORKSPACE HERO
================================================== */

.iexel-team-workspace-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 28px;
	padding: 30px;
	margin-bottom: 22px;
	background:
		linear-gradient(
			135deg,
			var(--iexel-midnight),
			var(--iexel-navy)
		);
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 22px;
	box-shadow: var(--iexel-shadow-medium);
}

/* Final MVP polish: move the shared Team Workspace hero from a heavy gold
   LEFT rail to the established stronger gold TOP accent, consistent with
   Event Detail / Team Events / Match Report / Team Attendance. Scoped to
   ":not(.is-player-view)" (see TeamWorkspaceHero.php) because this exact
   component/selector is also rendered, unchanged, for Parent and Player
   Team Workspace viewers -- content/data/layout are untouched either way. */
.iexel-team-workspace-hero:not(.is-player-view) {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

.iexel-team-workspace-hero h1 {
	margin: 8px 0 10px;
	color: var(--iexel-white);
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.05;
}

.iexel-team-workspace-hero p {
	margin: 0;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 16px;
	font-weight: 800;
}

.iexel-team-workspace-hero-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 16px;
	font-weight: 800;
}

.iexel-team-workspace-hero-meta-item {
	display: inline-block;
	white-space: nowrap;
}

.iexel-team-workspace-hero-meta-sep {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	opacity: 0.7;
	user-select: none;
}

.iexel-team-workspace-hero-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(120px, 1fr));
	gap: 12px;
}

.iexel-team-workspace-hero-stats div {
	padding: 18px;
	text-align: center;
	background: rgba(255,255,255,.045);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
}

.iexel-team-workspace-hero-stats span {
	display: block;
	color: var(--iexel-muted);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.iexel-team-workspace-hero-stats strong {
	display: block;
	margin-top: 6px;
	color: var(--iexel-gold);
	font-size: 30px;
	line-height: 1;
}

@media (max-width: 680px) {
	.iexel-team-workspace-hero {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 22px 26px 22px 22px;
		text-align: center;
	}

	.iexel-team-workspace-hero-copy {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-team-workspace-hero h1 {
		margin: 12px 0 16px;
	}

	.iexel-team-workspace-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-team-workspace-hero-meta {
		justify-content: center;
		max-width: 320px;
		margin-inline: auto;
		text-align: center;
	}

	.iexel-team-workspace-hero-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		max-width: 340px;
		margin-top: 28px;
	}
}

/* ==================================================
TEAM WORKSPACE PAGE
================================================== */

.iexel-team-workspace-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 22px;
	align-items: start;
}

.iexel-team-workspace-main,
.iexel-team-workspace-sidebar {
	display: grid;
	gap: 22px;
	min-width: 0;
}

@media (max-width: 900px) {
	.iexel-team-workspace-grid {
		grid-template-columns: 1fr;
	}
}

/* ==================================================
TEAM WORKSPACE NAVIGATION
================================================== */

.iexel-team-navigation {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	align-items: center;
	gap: 8px;
	padding: 9px;
	margin-bottom: 22px;
	overflow: visible;
	background: var(--iexel-midnight);
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	box-shadow: var(--iexel-shadow-small);
}

.iexel-team-navigation.is-player-navigation {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}

/* Final MVP polish: gold-top accent on the shared nav CONTAINER only (not
   individual tabs -- .is-active already carries its own accepted gold
   fill, untouched). Scoped to ":not(.is-player-navigation)" -- this
   component already distinguishes Coach/manager from Parent/Player via
   that existing class, so no new markup was needed here.
   Follow-up (desktop 3x2): the base rule above renders 6 destinations as
   5 columns + 1 lone item ("5+1"), unbalanced above the existing 64rem
   breakpoint (an existing, separate duplicate-block pair at ~line 5780
   only corrects this to 3 columns in the narrow 42rem-64rem band, never
   above 64rem). Overriding to a flat 3-column default here -- scoped to
   the same Coach-only ":not(.is-player-navigation)" selector, at higher
   specificity than those bare ".iexel-team-navigation" media rules, so it
   wins at every width -- gives a clean, symmetrical 3x2 for all six
   destinations from the existing 42rem breakpoint upward (see the mobile
   override below, which reuses that same existing 42rem token to restore
   2 columns below it). Player nav is untouched: ".is-player-navigation"
   already carries its own higher-specificity auto-fit rule regardless. */
.iexel-team-navigation:not(.is-player-navigation) {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 4px solid var(--iexel-gold);
}

@media (max-width: 42rem) {
	.iexel-team-navigation:not(.is-player-navigation) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.iexel-team-navigation-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid transparent;
	border-radius: 10px;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-weight: 800;
	text-decoration: none;
	min-width: 0;
	white-space: normal;
	text-align: center;
	overflow-wrap: anywhere;
	transition:
		background .2s ease,
		border-color .2s ease,
		color .2s ease,
		transform .2s ease;
}

.iexel-team-navigation-link:hover {
	color: var(--iexel-white);
	background: rgba(255, 255, 255, .06);
	border-color: var(--iexel-border);
	transform: translateY(-1px);
}

.iexel-team-navigation-link.is-active {
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-color: var(--iexel-gold);
}

.iexel-team-navigation-icon {
	font-size: 15px;
}

@media (max-width: 680px) {
	.iexel-team-navigation {
		padding: 7px;
	}

	.iexel-team-navigation.is-player-navigation {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.iexel-team-navigation-link {
		flex-direction: column;
		gap: 3px;
		padding: 8px 10px;
		font-size: 11px;
	}

	.iexel-team-navigation.is-player-navigation .iexel-team-navigation-link {
		font-size: 13px;
	}

	.iexel-team-navigation-icon {
		font-size: 17px;
	}
}

/* ==================================================
TEAM SQUAD
================================================== */

.iexel-team-squad-card {
	padding: 24px;
	background: linear-gradient(
		180deg,
		var(--iexel-navy),
		var(--iexel-midnight)
	);
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 20px;
	box-shadow: var(--iexel-shadow-medium);
}

/* Gold-top polish: move the outer Team Members primary module from the
   heavy gold LEFT rail to the established stronger gold TOP accent,
   consistent with the Team Workspace hero/navigation/Overview modules.
   Scoped to ":not(.is-player-view)" (see TeamSquadCard.php) because this
   exact component/selector is also rendered, unchanged, for Parent and
   Player Team Workspace viewers -- content/actions/routes are untouched
   either way. Nested ".iexel-team-member-row" player/coach rows are
   deliberately left alone (already a quiet secondary surface). */
.iexel-team-squad-card:not(.is-player-view) {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

.iexel-team-squad-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}

.iexel-team-squad-header h2 {
	margin: 6px 0 0;
	color: var(--iexel-white);
}

.iexel-team-squad-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.iexel-team-squad-summary span {
	padding: 8px 11px;
	color: var(--iexel-color-on-dark, #ffffff);
	font-size: 12px;
	font-weight: 800;
	border: 1px solid var(--iexel-border);
	border-radius: 999px;
}

.iexel-team-squad-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.iexel-team-squad-group {
	min-width: 0;
}

.iexel-team-squad-group h3 {
	margin: 0 0 12px;
	color: var(--iexel-white);
}

.iexel-team-squad-list {
	display: grid;
	gap: 10px;
}

.iexel-team-member-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px;
	background: rgba(255,255,255,.045);
	border: 1px solid var(--iexel-border);
	border-radius: 13px;
}

.iexel-team-member-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-radius: 50%;
	font-weight: 900;
}

.iexel-team-member-details {
	min-width: 0;
	flex: 1;
}

.iexel-team-member-details strong,
.iexel-team-member-details span {
	display: block;
}

.iexel-team-member-details strong {
	color: var(--iexel-white);
}

.iexel-team-member-details span {
	color: var(--iexel-muted);
	font-size: 12px;
}

.iexel-team-member-number {
	color: var(--iexel-gold);
	font-weight: 900;
}

.iexel-team-squad-empty {
	padding: 18px;
	margin: 0;
	color: var(--iexel-muted);
	border: 1px dashed var(--iexel-border);
	border-radius: 13px;
}

@media (max-width: 760px) {
	.iexel-team-squad-header {
		flex-direction: column;
	}

	.iexel-team-squad-groups {
		grid-template-columns: 1fr;
	}
}

/* ==================================================
TEAM UPCOMING EVENTS
================================================== */

.iexel-team-events-card {
	padding: 24px;
	background: linear-gradient(
		180deg,
		var(--iexel-navy),
		var(--iexel-midnight)
	);
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 20px;
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-team-events-header {
	margin-bottom: 18px;
}

.iexel-team-events-header h2 {
	margin: 6px 0 0;
	color: var(--iexel-white);
}

.iexel-team-events-list {
	display: grid;
	gap: 12px;
}

.iexel-team-event-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 17px;
	background: rgba(255,255,255,.045);
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-event-main {
	min-width: 0;
}

.iexel-team-event-type {
	color: var(--iexel-gold);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.iexel-team-event-row h3 {
	margin: 4px 0 9px;
	color: var(--iexel-white);
	font-size: 18px;
}

.iexel-team-event-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 12px;
}

.iexel-team-events-empty {
	padding: 28px;
	text-align: center;
	border: 1px dashed var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-events-empty h3 {
	margin: 8px 0;
	color: var(--iexel-white);
}

.iexel-team-events-empty p {
	margin: 0;
	color: var(--iexel-muted);
}

@media (max-width: 680px) {
	.iexel-team-event-row {
		align-items: stretch;
		flex-direction: column;
	}

	.iexel-team-event-row .iexel-button {
		width: 100%;
		text-align: center;
	}
}

/* ==================================================
TEAM OVERVIEW DASHBOARD
================================================== */

.iexel-team-dashboard-card {
	padding: 24px;
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 20px;
	box-shadow: var(--iexel-shadow-medium);
}

/* Final MVP polish: Team Overview's 5 primary modules (Next Upcoming Event,
   Availability Summary, Latest Match, Squad Summary, Quick Actions) all
   share this ".iexel-team-dashboard-card" base -- but so do TeamEventForm
   (the Events tab's "Add Event" form) and TeamAvailabilityWorkspace's own
   header card (the Availability tab), which are explicitly out of this
   batch's scope. Scoped to ".iexel-team-workspace-grid" -- the wrapper
   exclusive to the Overview tab's content -- so only Overview's 5 cards
   get the gold-top treatment; the Events form and Availability tab keep
   their existing left-rail look, untouched. */
.iexel-team-workspace-grid .iexel-team-dashboard-card {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

.iexel-team-dashboard-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 18px;
}

.iexel-team-dashboard-card-header h2 {
	margin: 6px 0 0;
	color: var(--iexel-white);
	font-size: 21px;
}

.iexel-team-dashboard-card-header > a,
.iexel-team-card-link {
	color: var(--iexel-gold);
	font-size: 12px;
	font-weight: 900;
	text-decoration: none;
}

.iexel-team-dashboard-card-header > a:hover,
.iexel-team-card-link:hover {
	color: var(--iexel-white);
}

.iexel-team-next-event-body {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 18px;
	padding: 18px;
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--iexel-border);
	border-radius: 15px;
}

.iexel-team-next-event-date {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	width: 68px;
	height: 72px;
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-radius: 14px;
}

.iexel-team-next-event-date span {
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.iexel-team-next-event-date strong {
	font-size: 29px;
	line-height: 1;
}

.iexel-team-next-event-copy h3 {
	margin: 4px 0 9px;
	color: var(--iexel-white);
	font-size: 20px;
}

.iexel-team-attendance-workspace .iexel-team-summary-grid {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.iexel-team-attendance-workspace .iexel-team-summary-stat {
	padding: 16px 10px;
	text-align: center;
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-attendance-workspace .iexel-team-summary-stat strong,
.iexel-team-attendance-workspace .iexel-team-summary-stat > span {
	display: block;
}

.iexel-team-attendance-workspace .iexel-team-summary-stat strong {
	margin: 5px 0 2px;
	color: var(--iexel-gold);
	font-size: 27px;
}

.iexel-team-attendance-workspace .iexel-team-summary-stat > span:last-child {
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 12px;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid > .iexel-team-summary-stat {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid > .iexel-team-summary-stat > span:last-child {
	overflow-wrap: normal;
	word-break: normal;
	white-space: normal;
}

@media (min-width: 761px) and (max-width: 1024px) {
	.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 361px) and (max-width: 760px) {
	.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 360px) {
	.iexel-team-attendance-workspace > .iexel-team-dashboard-card > .iexel-team-summary-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.iexel-team-summary-icon {
	color: var(--iexel-white);
	font-size: 18px;
}

.iexel-team-availability-event {
	margin: -8px 0 14px;
	color: var(--iexel-color-on-dark, #ffffff);
	font-weight: 800;
}

.iexel-team-availability-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 9px;
	margin-bottom: 14px;
}

.iexel-team-availability-grid div {
	padding: 14px 8px;
	text-align: center;
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--iexel-border);
	border-radius: 12px;
}

.iexel-team-availability-grid strong,
.iexel-team-availability-grid span {
	display: block;
}

.iexel-team-availability-grid strong {
	color: var(--iexel-white);
	font-size: 24px;
}

.iexel-team-availability-grid span {
	margin-top: 3px;
	color: var(--iexel-muted);
	font-size: 10px;
	font-weight: 900;
	text-transform: uppercase;
}

.iexel-team-availability-grid .is-available { border-top: 3px solid #35c98b; }
.iexel-team-availability-grid .is-pending { border-top: 3px solid var(--iexel-gold); }
.iexel-team-availability-grid .is-unavailable { border-top: 3px solid #ef6b73; }

.iexel-team-season-stats {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
}

.iexel-team-season-stats div {
	padding: 18px 10px;
	text-align: center;
	background: rgba(255, 255, 255, .035);
	border: 1px solid var(--iexel-border);
	border-radius: 13px;
}

.iexel-team-season-stats strong,
.iexel-team-season-stats span {
	display: block;
}

.iexel-team-season-stats strong {
	color: var(--iexel-gold);
	font-size: 25px;
}

.iexel-team-season-stats span {
	margin-top: 4px;
	color: var(--iexel-muted);
	font-size: 11px;
	font-weight: 800;
}

.iexel-team-coming-soon {
	padding: 6px 9px;
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-radius: 999px;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.iexel-team-quick-actions {
	display: grid;
	gap: 9px;
}

.iexel-team-quick-actions a {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 11px;
	padding: 13px;
	color: var(--iexel-white);
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--iexel-border);
	border-radius: 12px;
	text-decoration: none;
	transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.iexel-team-quick-actions a:hover {
	background: rgba(255, 255, 255, .075);
	border-color: var(--iexel-gold);
	transform: translateY(-1px);
}

.iexel-team-quick-actions a > span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: var(--iexel-midnight);
	background: var(--iexel-gold);
	border-radius: 10px;
}

.iexel-team-quick-actions small {
	color: var(--iexel-gold);
	font-size: 18px;
}

.iexel-team-dashboard-empty {
	padding: 30px 20px;
	text-align: center;
	border: 1px dashed var(--iexel-border);
	border-radius: 14px;
}

.iexel-team-dashboard-empty h3 {
	margin: 8px 0;
	color: var(--iexel-white);
}

.iexel-team-dashboard-empty p {
	max-width: 460px;
	margin: 0 auto;
	color: var(--iexel-muted);
}

.iexel-team-dashboard-empty-icon {
	color: var(--iexel-gold);
	font-size: 27px;
}

.iexel-team-dashboard-empty-compact {
	padding: 20px 14px;
}

@media (max-width: 760px) {
	.iexel-team-next-event-body {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.iexel-team-next-event-body .iexel-button {
		grid-column: 1 / -1;
		text-align: center;
	}

	.iexel-team-season-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Final MVP polish: confirmed real Dev-site defect -- "UNAVAILABLE" is a
	   single unbroken uppercase word with no space to wrap at, so inside an
	   equal 3-column tile at narrow widths it has nowhere to go but overflow
	   its own box. Reflows to Available/Pending on row 1, Unavailable full
	   width on row 2, exactly as approved -- all three labels stay full
	   words, no typography shrink, no abbreviation. Retains the existing
	   3-column layout above this breakpoint. */
	.iexel-team-availability-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.iexel-team-availability-grid .is-unavailable {
		grid-column: 1 / -1;
	}
}

/* ==================================================
TEAM EVENT FORM
================================================== */

.iexel-team-event-form-card {
	padding: 26px;
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid var(--iexel-border);
	border-left: 5px solid var(--iexel-gold);
	border-radius: 20px;
	box-shadow: var(--iexel-shadow-medium);
}

.iexel-team-event-form {
	display: grid;
	gap: 22px;
}

.iexel-team-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.iexel-team-form-grid label {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.iexel-team-form-grid label > span {
	color: var(--iexel-color-on-dark, #ffffff);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
}

.iexel-team-form-field-wide {
	grid-column: 1 / -1;
}

.iexel-team-event-form input,
.iexel-team-event-form select,
.iexel-team-event-form textarea {
	width: 100%;
	min-height: 46px;
	padding: 11px 13px;
	color: var(--iexel-white);
	background: rgba(255, 255, 255, .055);
	border: 1px solid var(--iexel-border);
	border-radius: 11px;
	font: inherit;
	box-sizing: border-box;
}

.iexel-team-event-form select option {
	color: var(--iexel-midnight);
	background: var(--iexel-white);
}

.iexel-team-event-form textarea {
	min-height: 126px;
	resize: vertical;
}

.iexel-team-event-form input:focus,
.iexel-team-event-form select:focus,
.iexel-team-event-form textarea:focus {
	outline: 2px solid var(--iexel-gold);
	outline-offset: 2px;
	border-color: var(--iexel-gold);
}

.iexel-team-form-errors {
	padding: 15px 17px;
	margin-bottom: 20px;
	color: #ffd9dc;
	background: rgba(239, 107, 115, .12);
	border: 1px solid rgba(239, 107, 115, .5);
	border-radius: 12px;
}

.iexel-team-form-errors strong {
	color: var(--iexel-white);
}

.iexel-team-form-errors ul {
	margin: 8px 0 0 18px;
	padding: 0;
}

/* Event Builder productivity batch: Duplicate Event's "Creating a copy of"
   cue -- deliberately light-touch (a single informational line, no heavy
   UI), reusing the exact same card/spacing language already established for
   .iexel-team-form-errors immediately above rather than inventing a new
   notice style. Gold/on-dark tones (not the error red above) since this is
   informational, not a validation problem. */
.iexel-team-duplicate-notice {
	display: grid;
	gap: 4px;
	padding: 13px 17px;
	margin-bottom: 20px;
	background: rgba(255, 255, 255, .04);
	border: 1px solid var(--iexel-border);
	border-radius: 12px;
	color: var(--iexel-white);
}

.iexel-team-duplicate-notice strong {
	overflow-wrap: anywhere;
}

/* Acceptance fix: cross-Team duplicate destination selector -- only rendered
   when the current user manages more than one Team. Styled to match the
   existing .iexel-team-player-selector label+select convention rather than
   inventing a new visual pattern. */
.iexel-team-duplicate-team-select {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 6px;
}
.iexel-team-duplicate-team-select span {
	color: var(--iexel-muted, #667085);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.iexel-team-duplicate-team-select select {
	min-width: 160px;
	max-width: 100%;
	min-height: 40px;
	padding: 7px 34px 7px 12px;
	box-sizing: border-box;
	border: 2px solid #64748b;
	border-radius: 10px;
	background: var(--iexel-midnight-2, #0a1f49);
	color: var(--iexel-color-on-dark, #fff);
	font: inherit;
	font-weight: 800;
}
.iexel-team-duplicate-team-select select option {
	background: #fff;
	color: var(--iexel-ink, #18233a);
}
.iexel-team-duplicate-team-select select:focus,
.iexel-team-duplicate-team-select select:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	outline: 3px solid rgba(203, 161, 53, .45);
	outline-offset: 2px;
}

@media (max-width: 480px) {
	.iexel-team-duplicate-team-select {
		flex-wrap: wrap;
	}
	.iexel-team-duplicate-team-select select {
		width: 100%;
	}
}

.iexel-team-form-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.iexel-team-audience {
	min-width: 0;
	margin: 0;
	padding: 20px;
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	background: rgba(255, 255, 255, .025);
}

.iexel-team-audience legend {
	padding: 0 8px;
	color: var(--iexel-white);
	font-size: 18px;
	font-weight: 900;
}

.iexel-team-audience-intro,
.iexel-team-audience-panel > p {
	margin: 0 0 14px;
	color: var(--iexel-muted);
}

/* Event Builder productivity batch (Recurring Events): matches the
   established .iexel-team-audience fieldset/legend/muted-text convention
   immediately above verbatim -- without an explicit colour, this fieldset's
   text was silently inheriting body.iexel-portal's LIGHT-page ink colour
   (#082b63) onto this dark card, reading as near-illegible dark-on-dark. */
.iexel-team-recurrence {
	min-width: 0;
	margin: 0;
	padding: 20px;
	border: 1px solid var(--iexel-border);
	border-radius: 16px;
	background: rgba(255, 255, 255, .025);
}

.iexel-team-recurrence legend {
	padding: 0 8px;
	color: var(--iexel-white);
	font-size: 18px;
	font-weight: 900;
}

/* Acceptance fix: a bare ".iexel-team-recurrence-fields { display: grid }"
   rule -- an AUTHOR stylesheet rule -- always beats the browser's own
   [hidden]{display:none} USER-AGENT rule at equal (0,1,0) specificity
   (author origin always wins over UA origin, regardless of source order),
   so the native `hidden` attribute this element's own visibility toggle
   relies on (both the server-rendered initial state and the JS
   weeklyFields.hidden = ... toggle) was silently defeated -- the weekly
   fields stayed visible even when "Does not repeat" was selected.
   :not([hidden]) raises specificity only for the visible case, leaving
   [hidden]'s own display:none completely unopposed when present. */
.iexel-team-recurrence-fields:not([hidden]) {
	display: grid;
	gap: 18px;
	margin-top: 18px;
}

.iexel-team-recurrence-note {
	margin: 0;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: 13px;
	line-height: 1.5;
}

.iexel-team-audience-modes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 18px;
}

.iexel-team-audience-mode,
.iexel-team-player-option {
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

.iexel-team-audience-mode {
	display: flex;
}

/*
 * Acceptance fix: scoped to :not([hidden]) for the same reason the
 * recurrence-fields fix was -- a bare "display: flex" here would be an
 * AUTHOR-origin rule that always beats the browser's own
 * [hidden]{display:none} USER-AGENT rule at equal specificity, silently
 * defeating the new Training Only hide-on-Fixture toggle
 * (option.hidden = isFixture in TeamEventForm.php) before it ever ships.
 *
 * min-width: 0 and flex-wrap: wrap are the actual 320px overflow fix: a
 * flex item's default min-width is "auto" (its content's min-content
 * size), not 0 -- so without this, a Training Only row's non-shrinking
 * children (a nowrap badge, a name span with no shrink allowance) forced
 * this row wider than its grid track, which then forced its ancestor grid
 * containers (.iexel-team-player-list, .iexel-team-same-age-group) wider
 * than the card, overhanging its right edge. flex-wrap lets the badge drop
 * to its own line instead of being clipped or forcing more width once the
 * row can no longer fit everything on one line.
 */
.iexel-team-player-option:not([hidden]) {
	display: flex;
	flex-wrap: wrap;
	min-width: 0;
}

.iexel-team-audience-mode {
	min-height: 70px;
	padding: 14px;
	border: 1px solid var(--iexel-border);
	border-radius: 13px;
	background: rgba(255, 255, 255, .04);
	color: #f5f7fb;
	font-weight: 800;
	transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.iexel-team-audience-mode:hover {
	color: var(--iexel-white);
	border-color: rgba(244, 190, 72, .75);
	background: rgba(255, 255, 255, .085);
}

.iexel-team-audience-mode:focus-within {
	outline: 3px solid rgba(244, 190, 72, .42);
	outline-offset: 3px;
}

.iexel-team-audience-mode:has(input:checked) {
	color: var(--iexel-white);
	border-color: var(--iexel-gold);
	background: rgba(244, 190, 72, .11);
}

.iexel-team-audience-mode:has(input:checked) {
	transform: translateY(-1px);
}

.iexel-team-event-form .iexel-team-audience input[type="radio"],
.iexel-team-event-form .iexel-team-audience input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	min-height: 18px;
	height: 18px;
	padding: 0;
	accent-color: var(--iexel-gold);
}

/* Coach Workspace MVP visual close-out (A9): the Venue type radios had no
   dedicated styling of their own, so they fell through to the generic
   ".iexel-team-event-form input { width:100%; min-height:46px; }" rule
   meant for text/select fields -- stretching each radio into a large
   distorted block, detached from its label text. Mirrors the established,
   already-working ".iexel-team-audience-mode" option-row pattern (own
   scoped class, not the .iexel-team-audience-scoped selector above, since
   this fieldset is a different section of the same form) rather than
   inventing a new visual language. Not width-gated -- this replaces an
   unstyled fallback with real styling at every width, so it cannot regress
   the "already healthy" mobile layout the same way a desktop-only override
   could interact unpredictably with the existing responsive rules. */
.iexel-team-venue-modes {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}
.iexel-team-venue-mode {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 16px;
	border: 1px solid var(--iexel-border);
	border-radius: 12px;
	background: rgba(255, 255, 255, .04);
	color: #f5f7fb;
	font-weight: 800;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease;
}
.iexel-team-venue-mode:hover {
	color: var(--iexel-white);
	border-color: rgba(244, 190, 72, .75);
	background: rgba(255, 255, 255, .085);
}
.iexel-team-venue-mode:has(input:checked) {
	color: var(--iexel-white);
	border-color: var(--iexel-gold);
	background: rgba(244, 190, 72, .11);
}
.iexel-team-event-form .iexel-team-venue-mode input[type="radio"] {
	flex: 0 0 auto;
	width: 18px;
	min-height: 18px;
	height: 18px;
	padding: 0;
	accent-color: var(--iexel-gold);
}

.iexel-team-audience-panel {
	display: none;
	padding-top: 4px;
}

.iexel-team-event-form:has(input[name="audience_mode"][value="entire_team"]:checked) [data-audience-panel="entire_team"],
.iexel-team-event-form:has(input[name="audience_mode"][value="selected_current"]:checked) [data-audience-panel="selected_current"],
.iexel-team-event-form:has(input[name="audience_mode"][value="current_plus_same_age"]:checked) [data-audience-panel="current_plus_same_age"] {
	display: block;
}

.iexel-team-player-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
}

.iexel-team-player-option {
	padding: 11px 12px;
	border: 1px solid var(--iexel-border);
	border-radius: 10px;
	background: rgba(255, 255, 255, .035);
	color: #edf1f7;
}

.iexel-team-player-option:hover {
	color: var(--iexel-white);
	border-color: rgba(255, 255, 255, .38);
	background: rgba(255, 255, 255, .075);
}

.iexel-team-player-option:focus-within {
	outline: 3px solid rgba(244, 190, 72, .42);
	outline-offset: 2px;
}

.iexel-team-player-option:has(input:checked) {
	color: var(--iexel-white);
	border-color: var(--iexel-gold);
	background: rgba(244, 190, 72, .16);
	box-shadow: inset 4px 0 0 var(--iexel-gold);
}

.iexel-team-same-age-groups {
	display: grid;
	gap: 14px;
}

.iexel-team-same-age-group {
	padding: 15px;
	border: 1px solid var(--iexel-border);
	border-radius: 13px;
	background: rgba(0, 0, 0, .12);
}

.iexel-team-same-age-group h3 {
	margin: 0 0 12px;
	font-size: 15px;
}

/*
 * Acceptance fix: intentional empty-state for "Optionally add players
 * from:" when the corrected eligibility logic still finds nobody eligible
 * -- reusing the same muted/dashed-border convention already established by
 * .iexel-team-squad-empty rather than inventing a new visual pattern.
 */
.iexel-team-audience-empty {
	padding: 14px;
	margin: 0;
	color: var(--iexel-muted);
	border: 1px dashed var(--iexel-border);
	border-radius: 13px;
}

/*
 * Acceptance fix (320px overflow): the player-name span had no min-width
 * override, so its default flex min-width ("auto" -- its own content's
 * min-content size) could combine with the badge's own non-shrinking width
 * to force the row wider than its container. min-width: 0 lets it
 * genuinely shrink; flex-basis: auto (not 0 -- tried and rejected, see
 * below) sizes it from its content first, then grows it into the row's
 * remaining space. overflow-wrap handles a long name (with no natural
 * break points, e.g. an underscore-joined test name) safely wrapping onto
 * a second line instead of forcing more width.
 *
 * flex-basis: 0 was tried first and rejected: combined with
 * overflow-wrap: anywhere it made the browser wrap the NAME's own text
 * character-by-character into a narrow column instead of letting the
 * badge below drop to its own line -- confirmed visually, not guessed.
 */
.iexel-team-player-name {
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}

.iexel-team-player-tag {
	padding: 2px 8px;
	margin-left: auto;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--iexel-muted);
	background: rgba(255, 255, 255, .06);
	border: 1px solid var(--iexel-border);
	border-radius: 999px;
	white-space: nowrap;
}

.iexel-team-field-error {
	padding: 11px 13px;
	color: #ffd9dc;
	background: rgba(239, 107, 115, .12);
	border: 1px solid rgba(239, 107, 115, .5);
	border-radius: 10px;
}

@media (max-width: 680px) {
	.iexel-team-event-form-card {
		padding: 20px;
	}

	.iexel-team-form-grid {
		grid-template-columns: 1fr;
	}

	.iexel-team-form-field-wide {
		grid-column: auto;
	}

	.iexel-team-audience-modes,
	.iexel-team-player-list {
		/*
		 * Acceptance fix: minmax(0, 1fr), not a bare 1fr. A bare 1fr track's
		 * own minimum size still defaults to content-based ("auto"), so a
		 * child that refuses to shrink (the Training Only row's nowrap
		 * badge) could force this single column -- and everything nesting
		 * it (.iexel-team-same-age-group, the fieldset, the card) -- wider
		 * than the viewport at 320px. minmax(0, 1fr) is the same safety the
		 * desktop two-column rule below already relies on.
		 */
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-team-audience {
		padding: 16px;
	}

	/*
	 * Acceptance fix: on desktop the badge stays pushed to the row's right
	 * edge via margin-left: auto (unchanged, see .iexel-team-player-tag).
	 * Once the row is narrow enough that flex-wrap drops the badge to its
	 * own line (see .iexel-team-player-option), an auto margin there just
	 * pushes it flush right on that otherwise-empty line -- confirmed
	 * visually cleaner, and closer to the desired mock-up, to reset it to 0
	 * here so the badge instead sits left-aligned under the name, matching
	 * "[ checkbox ] Name / [ BADGE ]".
	 */
	.iexel-team-player-tag {
		margin-left: 0;
	}

	.iexel-team-form-actions .iexel-button {
		width: 100%;
		text-align: center;
	}
}
/* Matchday Hub */
.iexel-matchday-hub { display: grid; gap: 24px; }
/* Design-system consistency: this was the one genuine gap found on
   Matchday Hub -- its own dark, page-level hero had no club-accent
   top-edge treatment at all (a plain neutral rgba(126,156,196,.2) side
   border, no gold), unlike MatchReadinessCard immediately below it
   (.iexel-match-readiness, already gold-topped) and every other primary
   Coach Workspace module. Now also carries .iexel-accent-top-module in
   its own markup (MatchdayHeroCard.php). The .iexel-matchday-grid cards
   below (Quick Actions, Selected Squad, Attendance, Venue, Emergency
   Contacts, Timeline, Register Progress -- see .iexel-matchday-card) are
   a deliberately different, LIGHT (#fff) card language, not part of this
   dark-immersive-module family, and are untouched by this batch. */
.iexel-matchday-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 28px; padding: 36px; border: 1px solid rgba(126, 156, 196, .2); border-radius: 24px; color: #fff; background: linear-gradient(135deg, #071b36, #0d2d55); box-shadow: 0 18px 48px rgba(3, 14, 31, .28); }
.iexel-matchday-hero h1 { margin: 10px 0 6px; color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1; }
.iexel-matchday-hero p, .iexel-matchday-hero small { color: #b9cce4; }
.iexel-matchday-pill { display: inline-flex; padding: 6px 12px; border-radius: 999px; color: #9fd6ff; background: rgba(70, 160, 230, .14); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.iexel-matchday-hero__meta, .iexel-matchday-hero__side { display: flex; flex-wrap: wrap; gap: 12px; }
.iexel-matchday-hero__meta span { padding: 8px 12px; border-radius: 10px; background: rgba(255,255,255,.07); }
.iexel-matchday-hero__side { flex-direction: column; justify-content: center; }
.iexel-matchday-hero__side > div { display: grid; padding: 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(2, 13, 29, .35); }
.iexel-matchday-hero__side span { color: #9fb6d1; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.iexel-matchday-hero__side strong { margin: 5px 0; font-size: 1.75rem; }
.iexel-matchday-hero__versus { margin: 0 0 16px; color: #fff !important; font-size: clamp(1.1rem, 2.3vw, 1.5rem); font-weight: 850; overflow-wrap: anywhere; }
.iexel-matchday-hero__match-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.iexel-matchday-hero__match-info > div { display: grid; gap: 3px; min-width: 0; padding: 11px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(255,255,255,.055); }
.iexel-matchday-hero__match-info span { color: #9fb6d1; font-size: .7rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.iexel-matchday-hero__match-info strong { color: #fff; overflow-wrap: anywhere; }
.iexel-matchday-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
/* Coach Workspace MVP visual close-out (A4): every top-level Matchday
   operational module (Selected Squad, Availability Summary, Register
   Progress, Venue & Directions, Emergency Contacts, Coach Tools, Matchday
   Timeline) shares this one .iexel-matchday-card base class -- confirmed
   by source audit before this change -- so bringing it into the
   established immersive midnight/navy Coach Workspace language here
   converts all seven at once, with the accent-top pairing applied per
   component's own markup below. Matchday Hero and Match Readiness
   (.iexel-matchday-hero, .iexel-match-readiness) are separate classes,
   already accepted and already dark -- untouched by this rule. */
.iexel-matchday-card { padding: 26px; color: var(--iexel-color-on-dark, #ffffff); border: 1px solid rgba(203,161,53,.4); border-radius: 20px; background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy)); box-shadow: var(--iexel-shadow-medium); }
.iexel-matchday-card.iexel-accent-top-module { border-top: 4px solid var(--iexel-gold); }
.iexel-matchday-card h3 { margin: 6px 0 18px; color: var(--iexel-white); }
.iexel-matchday-card > p { color: var(--iexel-color-on-dark-muted, #c8d3e3); }
.iexel-match-readiness { display: grid; gap: 18px; min-width: 0; padding: 28px; color: #fff; background: linear-gradient(145deg, #071b36, #0d2d55); border: 1px solid rgba(203,161,53,.5); border-top: 5px solid var(--iexel-gold); border-radius: 22px; box-shadow: 0 18px 48px rgba(3,14,31,.25); }
.iexel-match-readiness__summary { display: grid; grid-template-columns: minmax(160px,.55fr) minmax(220px,1.4fr) minmax(180px,.7fr); gap: 20px; align-items: center; min-width: 0; }
.iexel-match-readiness__summary h2 { margin: 4px 0 0; color: var(--iexel-gold); font-size: clamp(2.5rem,6vw,4.5rem); line-height: 1; }
.iexel-match-readiness__summary p { margin: 6px 0 0; color: #dbeafe; font-weight: 900; }
.iexel-match-readiness__meter { width: 100%; height: 20px; overflow: hidden; appearance: none; background: #061629; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; }
.iexel-match-readiness__meter::-webkit-progress-bar { background: #061629; border-radius: 999px; }
.iexel-match-readiness__meter::-webkit-progress-value { background: linear-gradient(90deg, #9f7921, var(--iexel-gold)); border-radius: 999px; }
.iexel-match-readiness__meter::-moz-progress-bar { background: linear-gradient(90deg, #9f7921, var(--iexel-gold)); border-radius: 999px; }
.iexel-match-readiness__next { display: grid; gap: 3px; min-height: 62px; padding: 12px 16px; box-sizing: border-box; color: #071b36; background: var(--iexel-gold); border: 2px solid #f4d77e; border-radius: 12px; text-decoration: none; }
.iexel-match-readiness__next small { color: #334155; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.iexel-match-readiness__next strong { color: #071b36; }
.iexel-match-readiness__items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; min-width: 0; }
.iexel-match-readiness-item { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 12px; align-items: center; min-width: 0; min-height: 82px; padding: 14px; box-sizing: border-box; color: #fff; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.13); border-radius: 13px; text-decoration: none; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.iexel-match-readiness-item:hover, .iexel-match-readiness-item:focus-visible { background: rgba(255,255,255,.09); border-color: var(--iexel-gold); transform: translateY(-1px); outline: none; }
.iexel-match-readiness-item__icon { display: grid; place-items: center; width: 32px; height: 32px; color: #071b36; background: var(--iexel-gold); border-radius: 50%; font-weight: 900; }
.iexel-match-readiness-item:not(.is-completed) .iexel-match-readiness-item__icon { color: #fff7ed; background: #9a3412; }
.iexel-match-readiness-item__body { display: grid; gap: 3px; min-width: 0; }
.iexel-match-readiness-item__body strong { color: #fff; }
.iexel-match-readiness-item__body small { color: #c8d8eb; overflow-wrap: anywhere; }
.iexel-match-readiness-item__body em { color: var(--iexel-gold); font-size: .72rem; font-style: normal; font-weight: 800; }
.iexel-match-readiness-item__action { display: flex; gap: 6px; align-items: center; color: var(--iexel-gold); font-size: .78rem; font-weight: 900; text-align: right; }
.iexel-matchday-checklist, .iexel-matchday-timeline { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.iexel-matchday-checklist li { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.1); color: var(--iexel-white); }
.iexel-matchday-checklist li span { color: var(--iexel-gold-bright); font-size: 1.25rem; }
.iexel-matchday-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.iexel-matchday-action, .iexel-matchday-actions button { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 11px 14px; border: 1px solid var(--iexel-border); border-radius: 12px; color: var(--iexel-white); background: rgba(255,255,255,.06); font: inherit; font-weight: 800; text-align: center; text-decoration: none; transition: background .16s ease, border-color .16s ease; }
.iexel-matchday-action:hover { background: rgba(255,255,255,.12); border-color: var(--iexel-gold); }
.iexel-matchday-action--full { grid-column: 1 / -1; }
.iexel-matchday-actions button { flex-direction: column; color: var(--iexel-muted); background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.08); cursor: not-allowed; }
.iexel-matchday-actions small { font-weight: 600; }
.iexel-matchday-selection { grid-column: 1 / -1; display: grid; gap: 20px; min-width: 0; }
.iexel-matchday-selection__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; min-width: 0; }
.iexel-matchday-selection__heading > div { min-width: 0; }
.iexel-matchday-selection__heading h2 { margin: 6px 0; color: var(--iexel-white); }
.iexel-matchday-selection__heading p { margin: 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); overflow-wrap: anywhere; }
.iexel-matchday-selection__heading-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.iexel-matchday-selection__action { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 16px; border-radius: 10px; background: rgba(255,255,255,.06); border: 1.5px solid var(--iexel-border); color: var(--iexel-white) !important; font-family: inherit; font-size: .84rem; font-weight: 850; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; }
.iexel-matchday-selection__action:hover { background: var(--iexel-gold, #cba135); border-color: var(--iexel-gold, #cba135); color: #071d49 !important; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(7, 27, 54, 0.15); }
.iexel-matchday-selection__action:focus-visible { outline: 2px solid var(--iexel-gold); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(203, 161, 53, 0.45); }
.iexel-matchday-selection__total, .iexel-matchday-selection-count { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; padding: 6px; box-sizing: border-box; color: #071b36; background: var(--iexel-gold); border: 1px solid #d7ad45; border-radius: 999px; font-weight: 900; }
.iexel-matchday-selection__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; min-width: 0; }
/* A4: Selected Squad's own nested pitch/list panels (below) previously
   used a pale #f7f9fc tile matching the PRIMARY card's own former white
   background -- now that the primary card above is dark, an unchanged
   pale nested panel would read as brighter/more prominent than its dark
   parent, inverting the intended primary/nested hierarchy. Restyled as a
   translucent-dark subordinate tile, the same recipe already used for
   nested tiles elsewhere in this Hub (.iexel-matchday-metrics div) and on
   Team Events/Attendance -- not a new pattern. */
.iexel-matchday-selection-card { display: grid; align-content: start; gap: 14px; min-width: 0; padding: 18px; color: var(--iexel-white); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.045); }
.iexel-matchday-selection-card--pitch { padding: 18px; }
.iexel-matchday-selection-pitch-body { width: 100%; max-width: 100%; overflow: hidden; display: flex; justify-content: center; }
.iexel-matchday-selection-pitch-body .iexel-pitch { max-width: 440px; }
/* Coach Workspace MVP visual close-out (A3): each .iexel-pitch-slot is a
   fixed-pixel-height label (avatar + shirt number + name + role badges)
   centred on a percentage coordinate, inside .iexel-pitch__surface's own
   overflow:hidden box. Near the coordinate extremes (a Goalkeeper is
   typically placed close to y=95-100, i.e. its own goal end) that fixed-
   height content can extend past the true edge of the surface and get
   clipped -- worse at narrow widths, where the pitch's own absolute pixel
   height (148% of its own, now-smaller, width) is smaller relative to that
   same fixed label height. Container-aware fix: shrink .iexel-pitch-slots'
   own box vertically inside .iexel-pitch__surface (it is itself
   position:absolute, so it establishes its own containing block for the
   slots), remapping every slot's existing y 0-100 coordinate into a safe
   inset sub-range with real top/bottom breathing room, rather than a
   one-off magic offset for the Goalkeeper position specifically. Left/right
   is deliberately left at 0 -- an earlier draft also inset horizontally,
   which pushed already near-edge X positions (e.g. Left/Right Center Back)
   further out and clipped their position-label pills at the true left/right
   edge; only the reported vertical clipping needed a fix. Formation
   shape/relative positions are preserved -- every slot shifts by the same
   proportion. Scoped to Matchday Hub's own read-only 'full' pitch usage
   only (this exact wrapper class); Event Detail's separate 'compact'
   pitch variant and the interactive Lineup Builder pitch are unaffected.

   Batch A final polish (A-F2): the GK clipping is fixed, but real-formation
   review (e.g. 1-2-1: rows at y=90/68/48/25, ~20-23 points apart) showed
   adjacent rows are only ~20% of the pitch's own height apart -- at a small
   absolute pixel height that is tight enough for one row's label/name/
   badge stack to visually crowd the neighbouring row (reported as "Henry
   James collides with the Centre Back area"). Container-aware fix, not a
   per-position hack: make the pitch itself taller at this breakpoint
   (every row's Y coordinate is a % of this same box, so every row gains
   the same extra absolute pixel spacing, formation-agnostic) and trim the
   slot content's own fixed-pixel footprint slightly, rather than special-
   casing any one row/position. Formation shape and slot-key/position
   derivation (ReadonlyLineupPitch.php, FormationEngine.php) are untouched
   -- purely a presentation-layer size change. */
@media (max-width: 480px) {
	.iexel-matchday-selection-pitch-body .iexel-pitch__surface {
		padding-top: 190%;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slots {
		inset: 5% 0;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__label {
		min-height: 1.4em;
		padding: 1px 5px;
		font-size: .56rem;
		max-width: none;
	}
	/* Batch A final micro-polish: full football-position names ("Left
	   Striker", "Center Midfielder", "Center Back") no longer fit the
	   compact role badge at this width and were being clipped even with
	   the badge already containing them -- swap to the existing short slot
	   key (see the base .iexel-pitch-slot__label-full/-short rule above)
	   at the Matchday Hub mobile breakpoint only. max-width:none above
	   because the short codes (2-3 characters) never need the 64px cap
	   that exists to bound the much longer full names. */
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__label-full {
		display: none;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__label-short {
		display: inline;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__number {
		min-width: 24px;
		height: 17px;
		font-size: .58rem;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__name {
		font-size: .56rem;
		max-width: 68px;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__badges {
		margin-top: 0;
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot__badge {
		min-width: 17px;
		height: 14px;
		font-size: .5rem;
	}
	/* Batch A final micro-polish: the Goalkeeper's own data-driven y
	   coordinate (FormationEngine.php, y=90 -- untouched by this or any
	   prior change) already sits inside .iexel-pitch__penalty-bottom
	   (bottom:0, height:17%, i.e. the box spans y=83-100), but the slot's
	   own centring transform (translate(-50%,-50%), same as every other
	   slot) puts its visual centre only a little way into that box, so the
	   GK role label/name stack reads as sitting a touch high relative to
	   the box below it. A small additional translateY -- composed on top
	   of the existing centring transform via CSS transform functions, not
	   a coordinate change -- nudges the whole GK stack down within the box
	   at this breakpoint only. Every other slot's transform, and the GK's
	   own transform at 390px/desktop, are untouched. */
	.iexel-matchday-selection-pitch-body .iexel-pitch-slot[data-slot-key="GK"] {
		transform: translate(-50%, -50%) translateY(12px);
	}
	.iexel-matchday-selection-pitch-body .iexel-pitch--readonly .iexel-pitch-slot[data-slot-key="GK"]:hover,
	.iexel-matchday-selection-pitch-body .iexel-pitch--readonly .iexel-pitch-slot[data-slot-key="GK"]:focus-visible {
		transform: translate(-50%, -50%) translateY(12px);
	}
}
.iexel-matchday-selection-card__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.iexel-matchday-selection-card__heading h3 { min-width: 0; margin: 0; color: var(--iexel-white); overflow-wrap: anywhere; }
/* Coach Workspace MVP visual close-out, Batch A final polish (A-F3): the
   formation code used to be concatenated straight into the title string
   ("Current On Pitch · 1-1-2") and left to the browser to wrap wherever it
   ran out of room -- at 320px that could land mid-token ("1-\r\n1-2"). The
   formation is now its own element (MatchdaySelectionCard.php's optional
   $formation_code param), rendered as one intact, unmodified token; the
   separator is pure CSS (content:'· '), not baked into the string, so it
   can be removed and the element stacked onto its own line at narrow
   widths via structure alone -- this works for any formation code
   (2-2, 1-2-1, 2-1-1, 3-1, ...), nothing here is specific to one shape.
   The player-count badge stays a flex sibling of <h3>, unaffected. */
.iexel-matchday-selection-formation { display: inline; margin-left: 6px; color: var(--iexel-muted); font-size: .8em; font-weight: 700; }
.iexel-matchday-selection-formation::before { content: '· '; }
@media (max-width: 480px) {
	.iexel-matchday-selection-card__heading h3 {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}
	.iexel-matchday-selection-formation {
		display: block;
		margin-left: 0;
	}
	.iexel-matchday-selection-formation::before {
		content: none;
	}
}
.iexel-matchday-selection-count { min-width: 34px; min-height: 34px; color: var(--iexel-white); background: rgba(255,255,255,.08); border-color: var(--iexel-border); font-size: .85rem; }
.iexel-matchday-selection-list { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; list-style: none; }
.iexel-matchday-selection-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.04); }
.iexel-matchday-selection-player { display: flex; align-items: center; gap: 10px; min-width: 0; }
.iexel-matchday-selection-player__shirt { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 36px; height: 36px; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 50%; font-weight: 900; }
.iexel-matchday-selection-player__body { display: grid; gap: 2px; min-width: 0; }
.iexel-matchday-selection-player__body strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-matchday-selection-player__position { color: var(--iexel-muted); font-size: .78rem; }
.iexel-matchday-selection-badges { display: flex; flex: 0 1 auto; flex-wrap: wrap; justify-content: flex-end; gap: 6px; min-width: 0; }
.iexel-matchday-selection-badge { display: inline-flex; padding: 4px 8px; color: var(--iexel-white); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; font-size: .68rem; font-weight: 900; line-height: 1.2; white-space: nowrap; }
.iexel-matchday-selection-badge.is-leadership { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; }
.iexel-matchday-selection-badge.is-goalkeeper { color: #14532d; background: #86efac; border-color: #4ade80; }
.iexel-matchday-selection-empty { margin: 0; padding: 14px; color: var(--iexel-muted); background: rgba(255,255,255,.03); border: 1px dashed rgba(255,255,255,.18); border-radius: 12px; }

/* Event Detail Coach-Only Match Selection Card (Midnight Dark Surface) */
.iexel-event-match-selection-card { margin: 24px 0; padding: 24px; border-radius: 18px; background: linear-gradient(145deg, #071b36 0%, #0d2d55 100%); border: 1px solid rgba(203,161,53,.4); border-top: 4px solid var(--iexel-gold, #cba135); box-shadow: 0 16px 40px rgba(2,6,23,.3); color: #ffffff; display: grid; gap: 18px; min-width: 0; }
.iexel-event-match-selection-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; min-width: 0; }
.iexel-event-match-selection-card__heading h3 { margin: 4px 0 0; color: #ffffff; font-size: 1.25rem; font-weight: 850; }
.iexel-event-match-selection-card .iexel-section-kicker { color: var(--iexel-gold, #cba135); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.iexel-event-match-selection-card__formation { margin: 6px 0 0; font-size: .84rem; color: #dbeafe; }
.iexel-event-match-selection-card__formation strong { color: var(--iexel-gold, #f4d77e); font-weight: 800; }
.iexel-event-match-selection-body { display: grid; gap: 18px; min-width: 0; }
.iexel-event-match-selection-subtitle { display: block; font-size: .74rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; color: var(--iexel-gold, #f4d77e); margin-bottom: 10px; }
.iexel-event-match-selection-pitch-wrapper { min-width: 0; overflow: hidden; }
.iexel-event-match-selection-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.iexel-event-match-selection-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; font-size: .84rem; color: #ffffff; }
.iexel-event-match-selection-player-item { display: flex; align-items: center; gap: 10px; min-width: 0; }
.iexel-event-match-selection-number { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--iexel-gold, #cba135); color: #071d49; font-weight: 900; font-size: .72rem; flex-shrink: 0; box-shadow: 0 2px 4px rgba(0,0,0,.25); }
.iexel-event-match-selection-name { color: #ffffff; font-weight: 800; overflow-wrap: anywhere; }
.iexel-event-match-selection-pos { font-size: .74rem; color: #cbd5e1; font-weight: 600; margin-left: auto; }
.iexel-event-match-selection-card .iexel-matchday-selection-badges { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.iexel-event-match-selection-card .iexel-matchday-selection-badge { display: inline-flex; align-items: center; justify-content: center; padding: 2px 7px; border-radius: 6px; font-size: .62rem; font-weight: 900; line-height: 1.2; white-space: nowrap; }
.iexel-event-match-selection-card .iexel-matchday-selection-badge.is-leadership { color: #071d49; background: var(--iexel-gold, #cba135); border: 1px solid #f4d77e; }
.iexel-event-match-selection-card .iexel-matchday-selection-badge.is-goalkeeper { color: #14532d; background: #86efac; border: 1px solid #4ade80; }
.iexel-event-match-selection-card .iexel-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; font-family: inherit; font-weight: 850; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.iexel-event-match-selection-card .iexel-button-secondary { padding: 8px 14px; background: rgba(255,255,255,.08); border: 1.5px solid rgba(203,161,53,.6); color: #ffffff !important; font-size: .82rem; }
.iexel-event-match-selection-card .iexel-button-secondary:hover { background: var(--iexel-gold, #cba135); color: #071d49 !important; border-color: #f4d77e; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(2,6,23,.35); }
.iexel-event-match-selection-card .iexel-button-secondary:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; box-shadow: 0 0 0 4px rgba(203,161,53,.45); }
.iexel-event-match-selection-card .iexel-button-primary { padding: 10px 18px; background: var(--iexel-gold, #cba135); color: #071d49 !important; border: 1.5px solid #f4d77e; font-size: .86rem; font-weight: 900; }
.iexel-event-match-selection-card .iexel-button-primary:hover { background: #e0bc5a; color: #071d49 !important; border-color: #ffffff; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(203,161,53,.45); }
.iexel-event-match-selection-card .iexel-button-primary:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; box-shadow: 0 0 0 4px rgba(203,161,53,.45); }
.iexel-event-match-selection-empty { padding: 24px 18px; border: 1.5px dashed rgba(203,161,53,.35); border-radius: 14px; background: rgba(255,255,255,.03); text-align: center; display: grid; gap: 14px; justify-items: center; color: #cbd5e1; }
.iexel-event-match-selection-empty p { margin: 0; color: #e2e8f0; font-size: .9rem; font-weight: 700; }
@media (max-width: 600px) {
	.iexel-event-match-selection-card { padding: 18px 14px; margin: 18px 0; border-radius: 14px; }
	.iexel-event-match-selection-card__heading { gap: 8px; }
}
.iexel-matchday-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.iexel-matchday-metrics div { display: grid; gap: 3px; padding: 14px; border-radius: 12px; background: rgba(255,255,255,.055); }
.iexel-matchday-metrics strong { color: var(--iexel-gold-bright); font-size: 1.4rem; }
.iexel-matchday-metrics span { color: var(--iexel-muted); font-size: .75rem; }
.iexel-matchday-inline-actions { display: flex; gap: 10px; }
.iexel-matchday-inline-actions a { padding: 9px 14px; border: 1px solid var(--iexel-border); border-radius: 10px; color: var(--iexel-white); background: rgba(255,255,255,.06); text-decoration: none; transition: background .16s ease, border-color .16s ease; }
.iexel-matchday-inline-actions a:hover { background: rgba(255,255,255,.12); border-color: var(--iexel-gold); }
.iexel-matchday-placeholder { color: var(--iexel-muted); }
.iexel-matchday-emergency-contacts { min-width: 0; }
.iexel-matchday-emergency-contacts > p { margin: 0; color: var(--iexel-muted); }
.iexel-matchday-emergency-contact-list { margin-top: 18px; }
.iexel-matchday-emergency-contact-label,
.iexel-matchday-emergency-contact-phone,
.iexel-matchday-emergency-contact-missing { max-width: 100%; overflow-wrap: anywhere; }
/* A4: Emergency Contacts is explicitly required to "remain especially
   readable" -- the phone number previously used var(--iexel-brand-primary)
   (#071d49, a dark navy meant for text on a WHITE card), which would have
   been close to invisible once this card's own background became dark
   navy. Switched to the bright gold token already used for other emphasised
   values across the Hub (readiness %, metrics), a clear, high-contrast
   value against the new dark surface. */
.iexel-matchday-emergency-contact-phone { min-width: 0; color: var(--iexel-gold-bright); font-weight: 800; }
.iexel-matchday-emergency-contact-missing { color: var(--iexel-muted); font-weight: 800; }
.iexel-matchday-timeline { counter-reset: timeline; }
.iexel-matchday-timeline li { position: relative; padding: 10px 10px 10px 34px; border-left: 2px solid rgba(255,255,255,.18); color: var(--iexel-white); }
.iexel-matchday-timeline li::before { position: absolute; left: -8px; width: 14px; height: 14px; border-radius: 50%; background: var(--iexel-gold); content: ''; }
.iexel-portal-audience-card { display: grid; gap: 20px; }
.iexel-portal-audience-card h1 { margin: 6px 0 0; color: #071b36; }
.iexel-portal-audience-group { padding: 20px; border: 1px solid #dbe5f0; border-radius: 16px; background: #f7f9fc; }
.iexel-portal-audience-group h2 { margin: 4px 0 12px; color: #0d3b69; }
.iexel-portal-audience-group ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin: 0; padding: 0; list-style: none; }
.iexel-portal-audience-group li { padding: 8px 10px; border-radius: 8px; background: #fff; }
@media (max-width: 760px) {
	.iexel-matchday-hero, .iexel-matchday-grid { grid-template-columns: 1fr; }
	.iexel-matchday-hero { padding: 24px; }
	.iexel-matchday-actions, .iexel-matchday-metrics { grid-template-columns: 1fr 1fr; }
	.iexel-matchday-hero__match-info { grid-template-columns: 1fr; }
	.iexel-matchday-selection__groups { grid-template-columns: 1fr; }
	.iexel-matchday-selection-list li { align-items: flex-start; flex-direction: column; }
	.iexel-matchday-selection-badges { justify-content: flex-start; }
	.iexel-portal-audience-group ul { grid-template-columns: 1fr; }
	.iexel-match-readiness__summary, .iexel-match-readiness__items { grid-template-columns: 1fr; }
	.iexel-match-readiness-item { grid-template-columns: 34px minmax(0,1fr); }
	.iexel-match-readiness-item__action { grid-column: 2; justify-self: start; }
}

/* Live Match Mode */
.iexel-match-mode { display: grid; gap: 24px; min-width: 0; }
.iexel-match-mode-live-focus { display: grid; gap: 18px; min-width: 0; }
.iexel-match-mode-details-disclosure { min-width: 0; }
/* Match Mode gold-trim polish: Match Recovery and Match Details (the two
   consumers of this shared <details>/<summary> disclosure) now use the
   same 2px gold border already established for this page's premium
   navigation controls (.iexel-workspace-back, "Back to Matchday Hub") in
   their resting/collapsed state, instead of a plain grey border that
   previously only turned gold once expanded ([open] > summary below,
   still needed for its own border-radius flattening, is now simply
   redundant-but-harmless on colour). Width, height, padding, radius,
   background, the disclosure arrow and focus treatment are unchanged. */
.iexel-match-mode-details-disclosure > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 14px 20px; box-sizing: border-box; color: #fff; background: #0b1f3a; border: 2px solid var(--iexel-gold); border-radius: 14px; font-weight: 900; text-decoration: none; cursor: pointer; list-style: none; }
.iexel-match-mode-details-disclosure > summary::-webkit-details-marker { display: none; }
.iexel-match-mode-details-disclosure > summary:focus-visible { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.38); }
.iexel-match-mode-details-disclosure[open] > summary { border-color: var(--iexel-gold); border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.iexel-match-mode-details-disclosure__body { display: grid; gap: 18px; padding: 18px; background: #071b36; border: 1px solid var(--iexel-gold); border-top: none; border-radius: 0 0 14px 14px; min-width: 0; }
.iexel-match-mode-hero-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: start; min-width: 0; }
.iexel-match-mode-hero-actions { position: sticky; top: 16px; display: grid; gap: 10px; align-self: start; width: min(240px,100%); min-width: 200px; }
.iexel-match-mode-lineup-shortcut, .iexel-match-mode-action-menu > summary { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 10px 16px; box-sizing: border-box; border-radius: 11px; font-weight: 900; text-align: center; text-decoration: none; cursor: pointer; }
.iexel-match-mode-lineup-shortcut { color: #071b36; background: var(--iexel-gold); border: 2px solid #f4d77e; }
.iexel-match-mode-lineup-shortcut:hover { color: #071b36; background: #e6bf5a; border-color: #fff0ad; }
.iexel-match-mode-lineup-shortcut:focus-visible, .iexel-match-mode-action-menu > summary:focus-visible { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.38); }
.iexel-match-mode-action-menu { position: relative; }
.iexel-match-mode-action-menu > summary { color: #fff; background: #0b1f3a; border: 2px solid #64748b; list-style: none; }
.iexel-match-mode-action-menu > summary::-webkit-details-marker { display: none; }
.iexel-match-mode-action-menu__indicator { margin-left: 8px; }
.iexel-match-mode-action-menu[open] > summary { border-color: var(--iexel-gold); }
.iexel-match-mode-action-menu nav { position: absolute; z-index: 20; top: calc(100% + 6px); right: 0; display: grid; width: min(280px,90vw); padding: 8px; background: #071b36; border: 1px solid var(--iexel-gold); border-radius: 12px; box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.iexel-match-mode-action-menu nav a { padding: 11px 12px; color: #fff; border-radius: 8px; font-weight: 800; text-decoration: none; }
.iexel-match-mode-action-menu nav a:hover, .iexel-match-mode-action-menu nav a:focus-visible { color: #071b36; background: var(--iexel-gold); outline: none; }
.iexel-match-mode-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; align-items: start; padding: 32px; overflow: hidden; color: var(--iexel-white); background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-bottom: 5px solid var(--iexel-gold); border-radius: 22px; box-shadow: var(--iexel-shadow-medium); }
.iexel-match-mode-hero > div, .iexel-match-mode-hero dl, .iexel-match-mode-grid > *, .iexel-match-mode-stack, .iexel-match-mode-lineups { min-width: 0; }
.iexel-match-mode-hero__summary { display: grid; align-content: start; gap: 10px; }
.iexel-match-mode-hero h1 { margin: 8px 0; color: var(--iexel-white); font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1; }
.iexel-match-mode-hero p { margin: 0; color: var(--iexel-gold); font-size: 1.2rem; font-weight: 800; overflow-wrap: anywhere; }
.iexel-match-mode-hero__fixture { max-width: 34rem; line-height: 1.35; }
.iexel-match-mode-hero dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-match-mode-hero dl div { padding: 12px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 11px; }
.iexel-match-mode-hero dt { color: var(--iexel-muted); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.iexel-match-mode-hero dd { margin: 4px 0 0; color: var(--iexel-white); font-weight: 800; overflow-wrap: anywhere; }
.iexel-match-mode-kicker { color: var(--iexel-gold); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.iexel-match-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; min-width: 0; }
/* Batch 1D: live-only second grid-column grouping -- Match State + the compact closed Match Recovery disclosure stack together so they visually balance the score hero on desktop. Same gap as the parent grid; no forced equal heights. */
.iexel-match-mode-state-column { display: grid; gap: 22px; align-content: start; min-width: 0; }
/* Batch 1E: at the two-column desktop width, the Match State card + Match
   Recovery disclosure combined slightly overshoot the score hero's own
   height, so Match Recovery's bottom edge sits a little past the hero's --
   tightening only the internal gap between the two right-column items
   pulls Match Recovery back up to sit closer to the hero's bottom without
   any fixed/negative positioning. Scoped to exactly the width range where
   the two-column grid is active (the inverse of the existing 760px
   collapse breakpoint below), so mobile's already-accepted 22px Match
   State/Match Recovery spacing is completely untouched.
   Batch 1F: 14px left a measured ~3.9px residual offset; tightened once
   more to 10px to bring Match Recovery's bottom almost exactly level with
   the hero's bottom. */
@media (min-width: 761px) {
	.iexel-match-mode-state-column { gap: 10px; }
}
.iexel-match-mode-card { display: grid; align-content: start; gap: 14px; min-width: 0; padding: 24px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid var(--iexel-border); border-left: 4px solid var(--iexel-gold); border-radius: 18px; box-shadow: var(--iexel-shadow-small); overflow: hidden; }
/* Match Mode gold-trim polish: replaces the page's own one-off gold LEFT
   rail with the restrained gold TOP EDGE + thin neutral remaining border
   already established elsewhere in Club OS as the primary-module
   convention (see .iexel-match-report-hero's own identical comment) --
   this is the single shared base class every principal Match Mode card
   (Live Score, Match State, Current On Pitch, Available/Unavailable
   Bench, Starting Lineup, Other Matchday Players, Match Incident
   Timeline, Available player audience, Staff) already renders, so one
   override here reaches all of them with no new per-card selectors.
   Scoped two ways, deliberately: (1) ".iexel-match-mode " (the page's own
   outer wrapper, present on MatchModePage/GoalAttribution/Substitution/
   GoalkeeperChange/AttendanceChange) so this never reaches the several
   OTHER, already-established ".iexel-event-detail .iexel-match-mode-
   score-card / .iexel-incident-timeline-card { border-top: 4px solid
   var(--iexel-gold); }" rules (equal specificity to a bare
   ".iexel-match-mode-card" override, so source order would otherwise let
   a later rule silently reshape that already-accepted, unrelated
   composition); (2) :not(.iexel-attendance-change-card) because
   EventAttendancePage.php ALSO renders inside ".iexel-match-mode" and
   separately borrows this exact shared class for its own, unrelated
   Attendance Change card -- excluding it keeps that page's existing
   gold-left-rail look completely untouched. Surface colour, spacing,
   radius, shadow and every card-specific modifier/child rule (count
   badges, player rows, incident rows) are untouched. */
.iexel-match-mode .iexel-match-mode-card:not(.iexel-attendance-change-card) { border: 1px solid var(--iexel-border); border-top: 4px solid var(--iexel-gold); }
.iexel-match-mode-card h2 { margin: 0; color: var(--iexel-white); }
.iexel-match-mode-card p { margin: 0; }
.iexel-match-mode-card--wide { grid-column: 1 / -1; }
.iexel-match-mode-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; min-width: 0; }
.iexel-match-mode-card-heading > div { display: grid; gap: 10px; min-width: 0; }
.iexel-match-mode-count { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 12px; color: #071d49; background: var(--iexel-gold); border: 1px solid #f4d77e; border-radius: 999px; font-size: 1rem; font-weight: 900; line-height: 1; }
.iexel-match-mode-card--on-pitch .iexel-match-mode-count { color: #eafff1; background: rgba(34,197,94,.16); border-color: rgba(74,222,128,.42); }
.iexel-match-mode-card--bench .iexel-match-mode-count { color: #fde68a; background: rgba(245,195,66,.12); border-color: rgba(245,195,66,.34); }
.iexel-match-mode-card--unavailable .iexel-match-mode-count { color: #fecaca; background: rgba(239,68,68,.14); border-color: rgba(239,68,68,.4); }
.iexel-match-mode-card--starting .iexel-match-mode-count { color: #e2e8f0; background: rgba(148,163,184,.14); border-color: rgba(148,163,184,.32); }
.iexel-match-mode-score { display: grid; place-content: center; text-align: center; }
/* Scoped to ".iexel-match-mode " for the same reason as the base-card
   override above -- so the Live Score card's own slightly-thicker 5px
   accent never reaches the separate, already-established
   ".iexel-event-detail .iexel-match-mode-score-card" 4px treatment
   (this shares the underlying MatchModeScoreCard component, rendered
   there too, but that context deliberately keeps a uniform 4px across
   all three of its own primary modules). Three classes deep
   (.iexel-match-mode .iexel-match-mode-card.iexel-match-mode-score-card,
   not just two) so this specificity is at least equal to the base-card
   override's own three-class :not() selector above -- two classes alone
   would otherwise lose the border-top-width change to that rule. */
.iexel-match-mode .iexel-match-mode-card.iexel-match-mode-score-card { background: radial-gradient(circle at top, rgba(245,195,66,.14), transparent 42%), linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight)); border-top-width: 5px; container: iexel-match-score-card / inline-size; }
.iexel-match-mode-scoreboard { display: grid; grid-template-columns: minmax(90px, 1fr) auto minmax(90px, 1fr); align-items: center; column-gap: 16px; row-gap: 6px; width: 100%; }
.iexel-match-mode-score__value { display: flex; align-items: center; justify-content: center; gap: 22px; margin: 10px 0; padding: 16px 22px; color: var(--iexel-white); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; font-size: clamp(3.3rem, 8vw, 5.9rem); font-weight: 900; line-height: 1; }
.iexel-match-mode-score__value b { color: var(--iexel-gold); font-size: .65em; }
.iexel-match-mode-score p, .iexel-match-mode-help { color: var(--iexel-muted); }
.iexel-match-mode-score__context { font-size: .95rem; }
.iexel-match-mode-score__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.iexel-match-mode-score__meta span { padding: 6px 10px; color: #e2e8f0; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; font-size: .74rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
/* CMC-003 v1 (browser-acceptance correction): the Club goal-scorer summary
   composes INSIDE the existing midnight-blue score hero's own scoreboard
   grid, associated with whichever column the Club's own side occupies --
   never as an external sibling beneath the hero (that placement put white/
   gold text on the pale page background, which this structural change fixes
   without a new background of its own; it inherits the hero's own dark
   navy/midnight gradient). .iexel-match-mode-score__scorers positions the
   summary in the SAME 3-column grid the team names/score already use on
   desktop; --right is the only override needed since column 1 is the grid
   default. At the 440px single-column-collapse breakpoints (viewport for
   live Match Mode, container for the completed view) this becomes an
   explicit 2-column football grid instead of 1 -- see those breakpoints
   below and around line 7715 -- so the Club scorer block stays associated
   with the correct Team side instead of visually reading as belonging to
   whichever Team happens to sit above it in document order.
   .iexel-match-goal-scorers itself (MatchGoalScorersCard's own output) is
   deliberately unboxed -- reusing existing colour tokens only -- shared
   verbatim by the Coach Match Mode/completed-Event hero (via
   MatchModeScoreCard) and the Player/Parent completed-Match hero
   (CompletedParticipantMatchExperience, which renders it directly, not
   through MatchModeScoreCard). Scorer typography is deliberately
   SUBORDINATE to the Team name above it (smaller size, lighter weight --
   Team name now visually dominates at a substantially larger scale, see
   .iexel-match-score-team strong below) and entries wrap compactly
   side-by-side on desktop (flex-wrap, a bullet separator between entries
   -- the same "\2022" convention already used by
   .iexel-participant-match__meta) rather than each consuming its own full
   row, so a high-scoring Match does not grow the hero unnecessarily tall.
   Final micro-polish: the scoreboard's row-gap (space between the Team/
   score row and the scorer row) is deliberately tighter than its
   column-gap, and .iexel-match-mode-score__scorers carries its own
   margin-bottom, so the scorer block reads as attached to the football
   result above it and clearly separated from the Add Goal/operational
   content below it -- see .iexel-match-mode-scoreboard's split row-gap/
   column-gap above. At <=440px the scorer list switches to one entry per
   line (bullet suppressed) instead of wrapped/bulleted, which was prone
   to staggering at narrow widths -- desktop keeps the compact wrapped
   presentation. Same-Player goal consolidation is unaffected throughout --
   MatchGoalScorersCard's own grouping is untouched by this purely visual
   change. */
.iexel-match-mode-score__scorers { grid-column: 1; margin: 0 0 14px; }
.iexel-match-mode-score__scorers--right { grid-column: 3; }
.iexel-match-goal-scorers { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; column-gap: 4px; row-gap: 2px; margin: 0; padding: 0; list-style: none; text-align: center; }
.iexel-match-goal-scorers li { display: inline-flex; flex-wrap: wrap; align-items: baseline; column-gap: 5px; min-width: 0; max-width: 100%; }
.iexel-match-goal-scorers li:not(:first-child)::before { content: '\2022'; margin-right: 4px; color: var(--iexel-gold); }
.iexel-match-goal-scorers__name { color: var(--iexel-white); font-size: clamp(.72rem, 1.6vw, .88rem); font-weight: 700; overflow-wrap: anywhere; }
.iexel-match-goal-scorers__detail { color: var(--iexel-gold); font-size: clamp(.66rem, 1.4vw, .78rem); font-weight: 600; overflow-wrap: anywhere; }
.iexel-match-score-heading { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; width: 100%; }
.iexel-incident-timeline-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; }
.iexel-match-score-badges { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.iexel-match-result-badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 30px; padding: 5px 11px; border: 1px solid transparent; border-radius: 999px; font-size: .72rem; font-weight: 950; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.iexel-match-result-badge.is-win { color: #bbf7d0; background: rgba(34,197,94,.17); border-color: rgba(74,222,128,.48); }
.iexel-match-result-badge.is-draw { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; }
.iexel-match-score-team { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; min-width: 0; }
.iexel-match-score-team small { color: var(--iexel-gold); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; text-align: center; width: 100%; }
.iexel-match-score-team strong { color: var(--iexel-white); font-size: clamp(1.25rem, 3.2vw, 2.5rem); font-weight: 900; letter-spacing: .01em; line-height: 1.05; text-transform: uppercase; overflow-wrap: anywhere; text-align: center; width: 100%; }
.iexel-match-score-team__kit { display: flex; align-items: center; justify-content: center; width: 100%; }
.iexel-match-score-team .iexel-kit-shirt { margin: 2px 0; align-self: center; }
/* Focused Match action hero + half-width scorer wrapping polish: the
   Team-name/scorer sizing above assumes a desktop card roughly half the
   VIEWPORT wide (3.2vw), which is what the completed-record hero and a
   full-width single-column card get. It is NOT what the Club actually
   gets in a two-column desktop layout: .iexel-match-mode-grid (normal
   Live Match Mode, 50/50) and .iexel-goal-attribution__grid /
   .iexel-substitution-page__grid (focused Goal Attribution/Substitution/
   Change Goalkeeper, 40/60 -- the score card is the narrower .8fr side)
   both give the score card only a FRACTION of the viewport, so 3.2vw
   overshoots the card's real available width and produces exactly the
   reported character-level break ("U7 / GO / LD") even at ordinary
   desktop widths -- confirmed empirically (a live 1280px-viewport Match
   Mode card measures ~410px wide, well under what 3.2vw assumes). This
   container query -- keyed to iexel-match-score-card's own inline size
   (see the container: declaration on .iexel-match-mode-score-card above),
   not the viewport -- reuses the exact CMC-003 long-name mobile-
   resilience technique (same clamp floor/ceiling, text-wrap: balance,
   overflow-wrap: break-word) so it applies correctly regardless of WHY
   the card is narrow: a two-column desktop split, a focused-action page,
   or an actually-narrow viewport. It also switches the scorer list to one
   entry per line (bullet suppressed) below the same width, the same
   guaranteed-intact-entry technique already used at <=440px, because the
   compact wrapped/bulleted style can otherwise split a single entry's own
   Player name from its own minute ("TEST PLAYER U7 20′ / • DECLAN ROGERS
   / 30′") once several entries no longer fit one card-width line
   together -- confirmed empirically at these same real card widths.
   400-620px is a deliberate wide net given real measured widths across
   every context that renders this card (~410px live 50/50 at 1280px,
   ~430-460px focused-action 40/60, and completed/single-column cards
   occasionally narrower than their usual near-full width); it does not
   fire for a genuinely spacious single-column card. Nested inside
   .iexel-completed-match-record's OWN already-tuned <=440px container
   query (a MORE specific selector, so it always wins there regardless of
   source order), so the already-accepted completed-view presentation at
   its established breakpoint is unaffected -- this only additionally
   covers completed cards that fall narrower than usual but above 440px,
   which previously had no narrow-card handling at all. Empirical testing
   against these real widths also surfaced a second, compounding cause of
   the same overflow: .iexel-match-mode-score__value's own font-size
   (clamp(3.3rem, 8vw, 5.9rem), also viewport- not card-relative) can by
   itself demand more width than a narrow card has left after the two
   90px-minimum Team-name columns, pushing the whole 3-column scoreboard
   wider than the card and shifting content off its left edge -- so the
   score value gets the same card-relative treatment here too. Wrapped in
   "min-width: 441px" so this NEVER fires at an actual mobile viewport
   (where the card's own inline-size also falls under 620px regardless) --
   at <=440px the dedicated, already browser-accepted CMC-003 mobile rules
   below own font-size/list-layout entirely; without this guard, the two
   would both match there and this rule's card-relative score-digit size
   would shrink the already-tuned mobile score display, a genuine
   regression confirmed empirically before this guard was added. */
@media (min-width: 441px) {
	@container iexel-match-score-card (max-width: 620px) {
		.iexel-match-score-team strong { font-size: clamp(.95rem, 4cqi, 1.5rem); text-wrap: balance; overflow-wrap: break-word; }
		.iexel-match-mode-score__value { gap: 10px; padding: 10px 12px; font-size: clamp(1.6rem, 8cqi, 2.8rem); }
		.iexel-match-goal-scorers { display: grid; gap: 3px; }
		.iexel-match-goal-scorers li:not(:first-child)::before { content: none; }
	}
}
.iexel-live-state-pill { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 30px; padding: 5px 11px; color: #071d49; background: var(--iexel-gold); border: 1px solid #f4d77e; border-radius: 999px; font-size: .72rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.iexel-live-state-card { display: grid; align-content: center; }
.iexel-live-phase-summary { display: grid; gap: 4px; padding: 15px 16px; color: var(--iexel-white); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; }
.iexel-live-phase-summary span, .iexel-live-action-cluster > span { color: var(--iexel-muted); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.iexel-live-phase-summary strong { color: var(--iexel-white); font-size: clamp(1.25rem, 3vw, 1.7rem); line-height: 1.15; }
.iexel-live-action-cluster { display: grid; gap: 10px; }
.iexel-live-state-terminal, .iexel-live-controls-closed { margin: 12px 0 0; padding: 12px 14px; color: #e2e8f0; background: rgba(148,163,184,.1); border: 1px solid rgba(148,163,184,.32); border-radius: 10px; font-weight: 800; }
.iexel-live-control-form { display: flex; min-width: 0; margin: 0; }
.iexel-live-control-form--stacked { display: grid; gap: 14px; }
.iexel-live-control-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 160px); gap: 12px; min-width: 0; }
.iexel-live-control-field { display: grid; gap: 7px; min-width: 0; color: var(--iexel-white); font-weight: 900; }
.iexel-live-control-field span { color: var(--iexel-muted); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.iexel-live-control-field select, .iexel-live-control-field input[type="number"] { width: 100%; max-width: 100%; min-width: 0; min-height: 52px; padding: 11px 12px; box-sizing: border-box; color: var(--iexel-white); background: #0b1f3a; border: 2px solid #64748b; border-radius: 11px; font: inherit; font-weight: 800; }
.iexel-live-control-field select:focus, .iexel-live-control-field select:focus-visible, .iexel-live-control-field input[type="number"]:focus, .iexel-live-control-field input[type="number"]:focus-visible { border-color: var(--iexel-gold); outline: 3px solid rgba(245,195,66,.45); outline-offset: 2px; }
.iexel-live-control-field select option { color: #111827; background: #ffffff; }
.iexel-live-control-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 62px; padding: 13px 16px; box-sizing: border-box; color: #f8fafc; background: #102b4e; border: 2px solid #64748b; border-radius: 12px; box-shadow: inset 0 1px 0 rgba(255,255,255,.06); font: inherit; font-weight: 900; line-height: 1.2; text-align: center; text-decoration: none; overflow-wrap: anywhere; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.iexel-live-control-button:hover { color: #ffffff; background: #173b67; border-color: var(--iexel-gold); transform: translateY(-1px); }
.iexel-live-control-button:focus-visible { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.45); }
.iexel-live-control-button--primary, .iexel-live-control-button--goal { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; }
.iexel-live-control-button--primary:hover, .iexel-live-control-button--goal:hover { color: #071d49; background: #e0bc5a; border-color: #fff0ad; }
.iexel-live-control-button--danger { color: #fff7f7; background: #7f1d1d; border-color: #f87171; }
.iexel-live-control-button--danger:hover { background: #991b1b; border-color: #fca5a5; }
.iexel-live-reopen-caution { display: grid; gap: 10px; margin-top: 18px; padding: 16px; color: #fff7ed; background: rgba(127,29,29,.28); border: 2px solid #ef4444; border-radius: 12px; }
.iexel-live-reopen-caution h3, .iexel-live-reopen-caution p { margin: 0; }
.iexel-live-reopen-caution h3 { color: #fff7ed; }
.iexel-live-reopen-caution p { color: #fecaca; font-weight: 800; }
.iexel-live-reopen-caution details { display: grid; gap: 10px; }
.iexel-live-reopen-caution summary { color: #fee2e2; font-weight: 900; cursor: pointer; }
.iexel-live-reopen-caution details[open] summary { margin-bottom: 10px; }
.iexel-live-reopen-caution details p { margin-bottom: 10px; }
.iexel-live-control-button:disabled { color: #dbe4ef; background: linear-gradient(180deg, #2c3d55, #223247); border-color: #475569; cursor: not-allowed; opacity: 1; transform: none; box-shadow: none; }
.iexel-live-goal-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; min-width: 0; }
.iexel-match-mode-lineups { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.iexel-incident-timeline-heading > div { min-width: 0; }
.iexel-incident-timeline-heading h2 { margin-bottom: 0; }
.iexel-incident-timeline { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.iexel-incident-timeline li { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; padding: 13px; color: var(--iexel-white); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-left: 4px solid var(--iexel-gold); border-radius: 11px; }
.iexel-incident-timeline li > div { display: grid; gap: 3px; min-width: 0; }
.iexel-incident-timeline strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-incident-timeline small { color: var(--iexel-muted); overflow-wrap: anywhere; }
.iexel-incident-sequence { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; color: #071d49; background: var(--iexel-gold); border-radius: 9px; font-weight: 900; }
.iexel-incident-audit { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--iexel-border); }
.iexel-incident-audit summary { color: #f8d77b; font-weight: 900; cursor: pointer; }
.iexel-incident-timeline.is-voided li { opacity: .7; border-left-color: #94a3b8; }
.iexel-incident-timeline li.is-voided strong { text-decoration: line-through; }
.iexel-live-match-notice { margin: 0; }
.iexel-match-mode-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.iexel-match-mode-people article { display: grid; gap: 3px; min-width: 0; padding: 14px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-match-mode-people strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-match-mode-people span { color: var(--iexel-gold); font-weight: 900; }
.iexel-match-mode-people small { color: var(--iexel-muted); }
.iexel-match-mode-player-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.iexel-match-mode-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.iexel-match-mode-badge { padding: 5px 8px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; }
.iexel-match-mode-badge.is-success { color: #b9f6d2; background: rgba(34,197,94,.14); border-color: rgba(34,197,94,.4); }
.iexel-match-mode-badge.is-warning { color: #fde1a7; background: rgba(245,158,11,.14); border-color: rgba(245,158,11,.4); }
.iexel-match-mode-badge.is-danger { color: #fecaca; background: rgba(239,68,68,.14); border-color: rgba(239,68,68,.4); }
.iexel-match-mode-badge.is-muted { color: var(--iexel-muted); background: rgba(148,163,184,.1); border-color: rgba(148,163,184,.28); }
.iexel-match-mode-stack { display: grid; gap: 20px; }
.iexel-match-mode-selection, .iexel-match-mode-timeline { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.iexel-match-mode-selection li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 12px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; }
.iexel-match-mode-selection li > span { grid-row: 1 / 3; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 8px; padding: 8px 4px; font-weight: 900; text-align: center; }
.iexel-match-mode-selection__body { display: grid; gap: 7px; min-width: 0; }
.iexel-match-mode-selection__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.iexel-match-mode-selection__detail { color: var(--iexel-muted); font-size: .82rem; }
.iexel-match-mode-selection strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-match-mode-selection small { color: var(--iexel-muted); }
.iexel-match-mode-selection li.has-warning { border: 1px solid rgba(245,158,11,.55); background: rgba(245,158,11,.1); }
.iexel-match-mode-selection li.has-warning .iexel-match-mode-selection__detail { color: #fde68a; }
.iexel-match-mode-empty { padding: 16px; color: var(--iexel-muted); border: 1px dashed var(--iexel-border); border-radius: 11px; }

/* Attendance / Live Squad batch: "Other Matchday Players" now renders
   through MatchModeLineupCard (.iexel-match-mode-selection), the same
   Player rows/cards component used by every other live squad card, so the
   dedicated .iexel-live-bench-* row/form rules that previously lived here
   for its own separate markup are no longer used anywhere and have been
   removed rather than left dead. */

/* Player Actions (Match Mode Batch 1) -- contextual per-Player menu for On
   Pitch / Available Bench rows. Reuses the Lineup Builder's established
   .iexel-lineup-slot-menu visual/interaction pattern (positioned popup,
   midnight-blue/gold, 44px touch targets, viewport clamping) scoped to
   Match Mode with its own class names rather than sharing markup/JS with
   the Lineup Builder. The whole row becomes the tap target (a real
   <button>, not a small secondary icon) -- "tap Player card", not "find a
   tiny kebab menu". Unavailable Bench and Starting Lineup rows are
   untouched plain <li> markup and never get this treatment. */
/* Root cause of the Batch 1 Player-card width regression: this <li> still
   inherited display: grid; grid-template-columns: 40px minmax(0, 1fr) from
   the base rule above. Once its only child became the single
   .iexel-player-action-trigger <button> (replacing the two direct
   <span>+<div> grid items the base rule was written for), that one child
   was placed into the first 40px track -- squeezing the whole button
   (shirt + name + badges) into a 40px-wide box and forcing the Player name
   to wrap letter-by-letter. display: block removes the <li> from grid-item
   layout entirely, so the button (itself display: grid; width: 100%) can
   claim the full row width exactly as the pre-Batch-1 <li> did. */
.iexel-match-mode-selection--actionable li { display: block; padding: 0; background: none; border: none; }
.iexel-match-mode-selection--actionable li.has-warning { border: none; background: none; }
.iexel-player-action-trigger { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 4px 12px; align-items: center; width: 100%; min-height: 44px; padding: 12px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.iexel-player-action-trigger:hover, .iexel-player-action-trigger:focus-visible, .iexel-player-action-trigger[aria-expanded="true"] { border-color: rgba(244,215,126,.55); background: rgba(203,161,53,.16); }
.iexel-player-action-trigger:focus-visible { outline: 3px solid var(--iexel-white, #f8fafc); outline-offset: 2px; }
.iexel-player-action-trigger > span { grid-row: 1 / 3; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 8px; padding: 8px 4px; font-weight: 900; text-align: center; }
.iexel-match-mode-selection--actionable li.has-warning .iexel-player-action-trigger { border-color: rgba(245,158,11,.55); background: rgba(245,158,11,.1); }

.iexel-player-action-menu { position: absolute; display: grid; gap: 4px; width: min(280px, calc(100vw - 20px)); padding: 10px; color: var(--iexel-white, #f8fafc); background: #08172f; border: 1px solid #334155; border-radius: 12px; box-shadow: 0 10px 24px rgba(2,6,23,.5); z-index: 1210; }
.iexel-player-action-menu[hidden] { display: none; }
.iexel-player-action-menu__header { display: grid; gap: 4px; padding: 6px 8px 8px; margin-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.1); }
.iexel-player-action-menu__header strong { color: var(--iexel-white, #f8fafc); overflow-wrap: break-word; }
.iexel-player-action-menu__actions { display: grid; gap: 4px; }
.iexel-player-action-menu__button { display: flex; align-items: center; min-height: 44px; padding: 9px 10px; border: 1px solid transparent; border-radius: 8px; color: var(--iexel-white, #f8fafc); background: rgba(255,255,255,.04); font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.iexel-player-action-menu__button:hover, .iexel-player-action-menu__button:focus-visible { border-color: var(--iexel-gold, #cba135); background: rgba(203,161,53,.16); outline: none; }
.iexel-player-action-menu__button[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
	.iexel-player-action-menu * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.iexel-match-mode-staff-group h3 { margin-bottom: 8px; color: var(--iexel-gold); }
.iexel-match-mode-staff-rows { display: grid; gap: 8px; margin-bottom: 14px; }
.iexel-match-mode-staff-rows > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 10px; }
.iexel-match-mode-staff-rows strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-match-mode-staff-rows span { color: var(--iexel-gold); font-size: .78rem; font-weight: 800; }
.iexel-match-mode-timeline li { padding: 11px 14px; color: var(--iexel-white); border-left: 3px solid var(--iexel-gold); background: rgba(255,255,255,.04); }
.iexel-match-mode-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.iexel-match-mode-actions a, .iexel-match-mode-actions button { display: flex; align-items: center; justify-content: center; flex-direction: column; min-height: 48px; padding: 10px; box-sizing: border-box; border: 1px solid var(--iexel-border); border-radius: 10px; color: var(--iexel-white); background: rgba(255,255,255,.06); font: inherit; font-weight: 800; text-align: center; text-decoration: none; overflow-wrap: anywhere; }
.iexel-match-mode-actions a:hover { border-color: var(--iexel-gold); }
.iexel-match-mode-actions button { color: var(--iexel-muted); cursor: not-allowed; opacity: .72; }
.iexel-match-mode-actions small { color: var(--iexel-gold); }

.iexel-match-lineup { display: grid; gap: 20px; min-width: 0; }
.iexel-match-lineup__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; min-width: 0; padding: 22px 24px; color: var(--iexel-white); background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-bottom: 5px solid var(--iexel-gold); border-radius: 16px; }
.iexel-match-lineup__header > div { min-width: 0; }
.iexel-match-lineup__header h1 { margin: 6px 0; color: var(--iexel-white); }
.iexel-match-lineup__header p { margin: 0; color: var(--iexel-gold); font-weight: 800; overflow-wrap: anywhere; }
.iexel-match-lineup__notice { margin: 0; }
.iexel-match-lineup__notice strong { display: block; margin-bottom: 6px; color: inherit; font-weight: 900; }
.iexel-match-lineup__notice p { color: inherit; }
.iexel-match-lineup__notice ul { margin: 6px 0 0; color: inherit; font-weight: 800; }
.iexel-match-lineup-form { display: grid; gap: 18px; min-width: 0; }
.iexel-match-lineup__players { display: grid; gap: 12px; min-width: 0; }
.iexel-match-lineup-player { display: grid; grid-template-columns: minmax(190px, 1.2fr) minmax(180px, 1fr); gap: 14px 20px; min-width: 0; padding: 18px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid var(--iexel-border); border-left: 4px solid var(--iexel-gold); border-radius: 14px; }
.iexel-match-lineup-player.has-warning { border-color: rgba(245,158,11,.55); }
.iexel-match-lineup-player__identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.iexel-match-lineup-player__identity > span { flex: 0 0 42px; padding: 10px 4px; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 9px; font-weight: 900; text-align: center; }
.iexel-match-lineup-player__identity div { display: grid; min-width: 0; }
.iexel-match-lineup-player__identity strong { color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-match-lineup-player__identity small { color: var(--iexel-muted); }
.iexel-match-lineup-player__warning { grid-column: 1 / -1; margin: 0; color: #fde1a7; font-weight: 800; }
.iexel-match-lineup-player__fields { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(160px, .8fr) minmax(180px, 1.4fr) minmax(90px, .45fr); gap: 12px; min-width: 0; }
.iexel-match-lineup-player__fields label { display: grid; gap: 6px; min-width: 0; color: var(--iexel-muted); font-weight: 800; }
.iexel-match-lineup-player__fields input, .iexel-match-lineup-player__fields select { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.iexel-match-lineup-player__markers { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 18px; color: var(--iexel-white); font-weight: 800; }
.iexel-match-lineup-player__markers label { display: flex; align-items: center; gap: 7px; }
.iexel-match-lineup .iexel-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: 100%; padding: 11px 18px; box-sizing: border-box; border: 2px solid transparent; font-weight: 800; line-height: 1.2; text-align: center; cursor: pointer; opacity: 1; transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.iexel-match-lineup .iexel-button-primary { color: #111827; background: var(--iexel-gold); border-color: var(--iexel-gold); }
.iexel-match-lineup .iexel-button-primary:hover { color: #071d49; background: #e0bc5a; border-color: #f4d77e; transform: translateY(-1px); }
.iexel-match-lineup .iexel-button-secondary { color: #f8fafc; background: #0b1f3a; border-color: #64748b; }
.iexel-match-lineup .iexel-button-secondary:hover { color: #ffffff; background: #132f54; border-color: var(--iexel-gold); transform: translateY(-1px); }
.iexel-match-lineup .iexel-button-danger { color: #fff7f7; background: #7f1d1d; border-color: #f87171; }
.iexel-match-lineup .iexel-button-danger:hover { color: #ffffff; background: #991b1b; border-color: #fca5a5; transform: translateY(-1px); }
.iexel-match-lineup .iexel-button:focus-visible { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.45); }
.iexel-match-lineup .iexel-button:disabled { color: #cbd5e1; background: #334155; border-color: #64748b; cursor: not-allowed; opacity: .72; transform: none; }
.iexel-match-lineup__actions { display: flex; flex-wrap: wrap; gap: 10px; min-width: 0; }
.iexel-match-lineup__danger { display: grid; gap: 8px; min-width: 0; padding: 18px; color: #fff1f2; background: #310910; border: 2px solid #be123c; border-radius: 14px; }
.iexel-match-lineup__danger h2 { margin: 0; color: #fff1f2; font-size: 1.05rem; }
.iexel-match-lineup__danger p { margin: 0; color: #fecdd3; font-weight: 700; }
.iexel-match-lineup__clear { margin: 4px 0 0; }

/* =====================================================
   Lineup Builder: 3-column grid layout
   ===================================================== */
.iexel-lineup-grid { display: grid; grid-template-columns: minmax(270px, 310px) minmax(0, 1fr) minmax(270px, 310px); gap: 20px; align-items: start; min-width: 0; }
.iexel-lineup-col { min-width: 0; }
.iexel-lineup-panel { display: grid; gap: 14px; padding: 20px; background: linear-gradient(180deg, rgba(11,31,58,.95), rgba(8,23,47,.97)); border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 16px; min-width: 0; }
.iexel-lineup-panel__title { margin: 0; font-size: 1rem; font-weight: 900; color: var(--iexel-white, #f8fafc); letter-spacing: .055em; text-transform: uppercase; line-height: 1.2; }
.iexel-lineup-field { display: grid; gap: 6px; color: var(--iexel-muted, #94a3b8); font-weight: 800; font-size: .8rem; letter-spacing: .03em; text-transform: uppercase; }
.iexel-lineup-field select, .iexel-lineup-field textarea { width: 100%; min-height: 46px; box-sizing: border-box; border-radius: 10px; }
.iexel-lineup-field textarea { min-height: 128px; padding-top: 10px; line-height: 1.35; resize: vertical; text-transform: none; }
.iexel-lineup-mobile-formation-host { display: none; }
.iexel-lineup-formation-controls { display: grid; gap: 10px; min-width: 0; }
.iexel-lineup-formation-controls-anchor { display: none; }

/* =====================================================
   Formation Template Selector
   ===================================================== */
.iexel-lineup-formation-selector { border: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.iexel-lineup-formation-selector legend { font-size: .85rem; font-weight: 800; color: var(--iexel-muted, #94a3b8); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; padding: 0; }
.iexel-formation-group { display: grid; gap: 6px; }
.iexel-formation-group__label { font-size: .8rem; font-weight: 900; color: var(--iexel-gold, #cba135); text-transform: uppercase; letter-spacing: .06em; }
.iexel-formation-group__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 8px; min-width: 0; }
.iexel-formation-option { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; gap: 6px; padding: 9px 12px; background: rgba(255,255,255,.05); border: 1.5px solid var(--iexel-border, #1e3a5f); border-radius: 11px; font-size: .82rem; font-weight: 800; color: var(--iexel-white, #f8fafc); cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.iexel-formation-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.iexel-formation-option:hover { border-color: rgba(244,215,126,.72); transform: translateY(-1px); }
.iexel-formation-option:hover, .iexel-formation-option.is-selected { background: rgba(203,161,53,.17); border-color: var(--iexel-gold, #cba135); color: var(--iexel-gold, #f4d77e); box-shadow: inset 0 0 0 1px rgba(203,161,53,.26); }
.iexel-formation-option:has(input:checked) { background: rgba(203,161,53,.24); border-color: var(--iexel-gold, #cba135); color: #0b1f3a; box-shadow: 0 0 0 1px rgba(244,215,126,.55), 0 8px 18px rgba(2,6,23,.3); }
.iexel-formation-option:focus-within { outline: 2px solid rgba(248,250,252,.95); outline-offset: 2px; }

/* =====================================================
   Pitch
   ===================================================== */
.iexel-pitch { width: 100%; max-width: 620px; margin: 0 auto; }
.iexel-pitch__surface { position: relative; width: 100%; padding-top: 148%; background: linear-gradient(180deg, #184f29 0%, #1c5f2d 50%, #184f29 100%); border: 2px solid rgba(244,215,126,.3); border-radius: 14px; box-shadow: inset 0 0 0 1px rgba(248,250,252,.08), 0 16px 30px rgba(2,6,23,.34); overflow: hidden; isolation: isolate; }
.iexel-pitch__surface::before { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,.045) 0, rgba(255,255,255,.045) 10.8%, rgba(0,0,0,.02) 10.8%, rgba(0,0,0,.02) 21.6%); }
.iexel-pitch__centre-line { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: rgba(248,250,252,.45); pointer-events: none; z-index: 1; }
.iexel-pitch__centre-circle { position: absolute; left: 50%; top: 50%; width: 74px; height: 74px; margin: -37px 0 0 -37px; border: 2px solid rgba(248,250,252,.42); border-radius: 50%; pointer-events: none; z-index: 1; }
.iexel-pitch__penalty-top, .iexel-pitch__penalty-bottom { position: absolute; left: 22%; right: 22%; height: 17%; border: 2px solid rgba(248,250,252,.33); pointer-events: none; z-index: 1; }
.iexel-pitch__penalty-top { top: 0; border-top: none; border-radius: 0 0 8px 8px; }
.iexel-pitch__penalty-bottom { bottom: 0; border-bottom: none; border-radius: 8px 8px 0 0; }
.iexel-pitch__surface::after { content: ''; position: absolute; left: 36%; right: 36%; top: 0; height: 7%; border: 2px solid rgba(248,250,252,.33); border-top: none; border-radius: 0 0 7px 7px; pointer-events: none; z-index: 1; }
.iexel-pitch-slots { position: absolute; inset: 0; z-index: 4; }
.iexel-pitch__empty-msg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: 20px; text-align: center; color: rgba(255,255,255,.5); font-size: .85rem; font-weight: 700; }

/* Pitch slots */
.iexel-pitch-slot { position: absolute; transform: translate(-50%, -50%) scale(1); display: flex; flex-direction: column; align-items: center; gap: 3px; max-width: 88px; text-align: center; cursor: pointer; z-index: 4; border: none; padding: 0; background: transparent; transition: transform .16s ease, filter .16s ease; }
.iexel-pitch-slot:hover, .iexel-pitch-slot:focus-visible { transform: translate(-50%, -50%) scale(1.04); filter: drop-shadow(0 0 8px rgba(203,161,53,.45)); outline: none; }
.iexel-pitch-slot.is-selected { transform: translate(-50%, -50%) scale(1.06); filter: drop-shadow(0 0 9px rgba(244,215,126,.82)); }
.iexel-pitch-slot__label { display: inline-flex; align-items: center; justify-content: center; min-width: 2.2em; max-width: 64px; min-height: 1.65em; padding: 1px 6px; font-size: .61rem; font-weight: 900; color: rgba(255,255,255,.94); text-transform: uppercase; letter-spacing: .05em; line-height: 1.1; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; text-shadow: 0 1px 2px rgba(0,0,0,.45); background: rgba(7,27,54,.84); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; }
/* Batch A final micro-polish: the full canonical position_name
   (ReadonlyLineupPitch.php, e.g. "Left Striker", "Center Midfielder") and
   the already-existing short slot key (the same $slot_key already used for
   data-slot-key and the empty-slot placeholder -- itself a genuine,
   standard football abbreviation: GK, LST, RST, CM, CB, LCB, LB, DM, CAM,
   LW, CF, ... -- for the small number of generic custom-formation slots
   whose key is just "P1"/"P2" it is simply that same existing short
   identifier, not an invented position) are BOTH always present in the
   markup as two nested spans; by default the full name shows and the short
   code stays hidden, matching every existing pitch usage (Lineup Builder,
   Event Detail's compact variant) unchanged. Only the Matchday Hub mobile
   scope below swaps which one is visible -- no second label mapping was
   hardcoded, and the swap works for every formation/position automatically
   since it keys off the slot's own existing identifier, not a fixed list
   of specific labels. Both inner spans are aria-hidden; the full name is
   exposed to assistive technology via the outer element's own aria-label,
   set unconditionally regardless of which span is visually shown. */
.iexel-pitch-slot__label-full { display: inline; }
.iexel-pitch-slot__label-short { display: none; }
.iexel-pitch-slot__tooltip { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); display: block; max-width: min(170px, 42vw); padding: 5px 8px; color: #f8fafc; background: rgba(8,23,47,.97); border: 1px solid rgba(203,161,53,.68); border-radius: 8px; font-size: .66rem; font-weight: 800; line-height: 1.2; text-transform: none; letter-spacing: 0; white-space: normal; overflow-wrap: break-word; text-shadow: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .14s ease, visibility .14s ease; z-index: 9; }
.iexel-pitch-slot__tooltip::after { content: ''; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: rgba(8,23,47,.96); }
.iexel-pitch-slot:hover .iexel-pitch-slot__tooltip, .iexel-pitch-slot:focus-visible .iexel-pitch-slot__tooltip { opacity: 1; visibility: visible; }
.iexel-pitch-slot.is-tooltip-bottom .iexel-pitch-slot__tooltip { top: calc(100% + 10px); bottom: auto; }
.iexel-pitch-slot.is-tooltip-bottom .iexel-pitch-slot__tooltip::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: rgba(8,23,47,.96); }
.iexel-pitch-slot.is-tooltip-left .iexel-pitch-slot__tooltip { left: auto; right: 0; transform: none; }
.iexel-pitch-slot.is-tooltip-left .iexel-pitch-slot__tooltip::after { left: auto; right: 10px; transform: none; }
.iexel-pitch-slot.is-tooltip-right .iexel-pitch-slot__tooltip { left: 0; transform: none; }
.iexel-pitch-slot.is-tooltip-right .iexel-pitch-slot__tooltip::after { left: 10px; transform: none; }
.iexel-pitch-slot__empty { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; background: rgba(255,255,255,.12); border: 2px dashed rgba(248,250,252,.38); border-radius: 50%; font-size: .68rem; font-weight: 900; color: rgba(248,250,252,.64); }
.iexel-pitch-slot__player { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.iexel-pitch-slot__avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(248,250,252,.5); background: rgba(248,250,252,.12); }
.iexel-pitch-slot__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iexel-pitch-slot__avatar-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; font-weight: 900; font-size: .78rem; }
.iexel-pitch-slot__number { display: flex; align-items: center; justify-content: center; min-width: 28px; height: 19px; padding: 0 6px; background: var(--iexel-gold, #cba135); border-radius: 999px; font-size: .66rem; font-weight: 900; color: #0b1f3a; box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.iexel-pitch-slot__name { font-size: .61rem; font-weight: 800; color: #fff; max-width: 78px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 3px rgba(0,0,0,.7); }
.iexel-pitch-slot__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; max-width: 82px; margin-top: 1px; }
.iexel-pitch-slot__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 16px; padding: 0 5px; border-radius: 6px; font-size: .55rem; font-weight: 900; }
.iexel-pitch-slot__badge.is-captain { background: var(--iexel-gold, #cba135); color: #0b1f3a; }
.iexel-pitch-slot__badge.is-vc { background: #93c5fd; color: #1e3a5f; }
.iexel-pitch-slot__badge.is-gk { background: #86efac; color: #14532d; }
.iexel-pitch-slot.is-filled .iexel-pitch-slot__label { color: var(--iexel-gold, #cba135); }
.iexel-pitch--readonly .iexel-pitch-slot { cursor: default; }
.iexel-pitch--readonly .iexel-pitch-slot:hover, .iexel-pitch--readonly .iexel-pitch-slot:focus-visible { transform: translate(-50%, -50%); filter: none; }
.iexel-pitch--compact { width: 100%; max-width: 420px; margin: 0 auto; }
.iexel-pitch--compact .iexel-pitch-slot { max-width: 84px; }
.iexel-pitch--compact .iexel-pitch-slot__label { font-size: .52rem; font-weight: 900; max-width: 60px; min-width: 2em; min-height: 1.5em; padding: 1px 5px; }
.iexel-pitch--compact .iexel-pitch-slot__number { min-width: 22px; height: 16px; font-size: .58rem; padding: 0 4px; }
.iexel-pitch--compact .iexel-pitch-slot__name { font-size: .58rem; font-weight: 800; max-width: 80px; }
.iexel-pitch--compact .iexel-pitch-slot__empty { width: 30px; height: 30px; font-size: .58rem; }
.iexel-pitch--compact .iexel-pitch-slot__badge { min-width: 15px; height: 13px; font-size: .48rem; padding: 0 3px; }

/* Editable Lineup Builder pitch only (never ReadonlyLineupPitch, which has
   no #iexel-pitch-container and is therefore unaffected) -- the general
   .iexel-pitch--compact rules above never resize the 40px avatar, which is
   the single largest fixed-size element in a marker and the main
   contributor to collisions between adjacent markers in a 4-wide formation
   line at narrow viewports. Player identity remains visible (a real,
   shortened name, not a hover-only tooltip) and the full name remains
   reachable via title/aria-label regardless of viewport. */
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot { max-width: 64px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot { gap: 1px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__avatar { width: 30px; height: 30px; border-width: 1px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__player { gap: 1px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__number { min-width: 19px; height: 14px; margin-top: -9px; position: relative; z-index: 2; font-size: .52rem; padding: 0 3px; line-height: 14px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__name { max-width: 62px; font-size: .52rem; line-height: 1.15; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__label { max-width: 52px; font-size: .48rem; min-height: 1.35em; padding: 0 4px; line-height: 1.1; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__badges { margin-top: 0; gap: 2px; }
#iexel-pitch-container.iexel-pitch--compact .iexel-pitch-slot__badge { min-width: 14px; height: 12px; font-size: .44rem; padding: 0 2px; line-height: 12px; }
@media (max-width: 480px) {
	#iexel-pitch-container #iexel-pitch-surface {
		padding-top: 190%;
	}
}

/* Edge containment for compact read-only pitch */
.iexel-pitch--compact .iexel-pitch-slot.is-edge-left { transform: translate(-20%, -50%); }
.iexel-pitch--compact .iexel-pitch-slot.is-edge-left .iexel-pitch-slot__player { align-items: flex-start; text-align: left; }
.iexel-pitch--compact .iexel-pitch-slot.is-edge-left .iexel-pitch-slot__badges { justify-content: flex-start; }
.iexel-pitch--readonly .iexel-pitch-slot.is-edge-left:hover, .iexel-pitch--readonly .iexel-pitch-slot.is-edge-left:focus-visible { transform: translate(-20%, -50%); filter: none; }

.iexel-pitch--compact .iexel-pitch-slot.is-edge-right { transform: translate(-80%, -50%); }
.iexel-pitch--compact .iexel-pitch-slot.is-edge-right .iexel-pitch-slot__player { align-items: flex-end; text-align: right; }
.iexel-pitch--compact .iexel-pitch-slot.is-edge-right .iexel-pitch-slot__badges { justify-content: flex-end; }
.iexel-pitch--readonly .iexel-pitch-slot.is-edge-right:hover, .iexel-pitch--readonly .iexel-pitch-slot.is-edge-right:focus-visible { transform: translate(-80%, -50%); filter: none; }

.iexel-pitch-slot.is-draggable { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.iexel-pitch-slot.is-draggable::after { content: '✥'; position: absolute; right: -8px; top: 18px; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; color: #071b36; background: rgba(244,215,126,.96); border: 1px solid #fff0ad; border-radius: 50%; box-shadow: 0 2px 7px rgba(2,6,23,.45); font-size: .7rem; font-weight: 900; line-height: 1; }
.iexel-pitch-slot.is-dragging { cursor: grabbing; z-index: 12; filter: drop-shadow(0 0 12px rgba(244,215,126,.95)); transition: none; }
.iexel-lineup-position-dragging, .iexel-lineup-position-dragging * { user-select: none !important; -webkit-user-select: none !important; }
.iexel-custom-position-controls { display: grid; gap: 8px; padding: 10px 12px; color: #dbeafe; background: rgba(255,255,255,.045); border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 10px; }
.iexel-custom-position-controls p { margin: 0; color: inherit; font-size: .76rem; font-weight: 700; line-height: 1.35; }
.iexel-custom-position-controls .iexel-custom-position-reset { justify-self: start; min-height: 42px; padding: 8px 12px; font-size: .78rem; }
.iexel-lineup-template-manager { display: grid; gap: 9px; min-width: 0; margin-top: 10px; padding: 11px 12px; color: #dbeafe; background: rgba(255,255,255,.045); border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 10px; }
.iexel-lineup-template-manager select, .iexel-lineup-template-manager input { width: 100%; min-width: 0; max-width: 100%; min-height: 44px; box-sizing: border-box; }
.iexel-lineup-template-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; min-width: 0; }
.iexel-lineup-template-actions .iexel-button, .iexel-lineup-template-name-editor .iexel-button { min-width: 0; min-height: 42px; padding: 8px 9px; font-size: .76rem; }
.iexel-lineup-template-actions .iexel-button:disabled { cursor: not-allowed; opacity: .48; }
.iexel-lineup-template-name-editor { display: grid; gap: 8px; padding-top: 2px; }
.iexel-lineup-template-name-editor[hidden] { display: none; }
.iexel-lineup-template-name-editor > div { display: flex; flex-wrap: wrap; gap: 7px; }
.iexel-lineup-template-empty, .iexel-lineup-template-status { margin: 0; color: var(--iexel-muted, #94a3b8); font-size: .75rem; line-height: 1.35; }
.iexel-lineup-template-empty[hidden] { display: none; }
.iexel-lineup-template-status { min-height: 1.1em; color: #86efac; font-weight: 800; }
.iexel-lineup-template-status.is-error { color: #fca5a5; }

/* =====================================================
   Modern Player Cards
   ===================================================== */
.iexel-lineup-validation { display: grid; gap: 8px; padding: 12px 13px; color: #fde7b3; background: rgba(96,64,8,.38); border: 1px solid rgba(203,161,53,.5); border-left: 4px solid rgba(244,215,126,.88); border-radius: 11px; }
.iexel-lineup-validation[hidden] { display: none; }
.iexel-lineup-validation__title { display: flex; align-items: center; gap: 7px; margin: 0; font-size: .84rem; font-weight: 900; line-height: 1.25; color: #fde7b3; }
.iexel-lineup-validation ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.iexel-lineup-validation li { line-height: 1.3; }
/* Bulk Attendance Toolbar in Coach Lineup Builder */
.iexel-lineup-bulk-attendance {
	display: grid;
	gap: 10px;
	padding: 12px 14px;
	margin-bottom: 12px;
	background: rgba(248, 250, 252, 0.05);
	border: 1px solid var(--iexel-border, rgba(126, 156, 196, 0.25));
	border-radius: 10px;
	color: var(--iexel-white, #f8fafc);
	min-width: 0;
	box-sizing: border-box;
}
.iexel-lineup-bulk-attendance__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}
.iexel-lineup-bulk-attendance__title {
	font-size: 0.74rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--iexel-gold, #cba135);
}
.iexel-lineup-bulk-attendance__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 20px;
	padding: 0 8px;
	border-radius: 999px;
	color: #071b36;
	background: rgba(244, 215, 126, 0.96);
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.02em;
}
.iexel-lineup-bulk-attendance__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}
.iexel-lineup-bulk-attendance__selection-actions,
.iexel-lineup-bulk-attendance__apply-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	min-width: 0;
}
.iexel-lineup-bulk-attendance__selection-actions .iexel-button,
.iexel-lineup-bulk-attendance__apply-actions .iexel-button {
	min-height: 36px;
	padding: 6px 12px;
	font-size: 0.74rem;
	font-weight: 700;
	border-radius: 8px;
	white-space: nowrap;
	box-sizing: border-box;
}
.iexel-lineup-bulk-attendance__status {
	min-height: 36px;
	min-width: 110px;
	padding: 6px 28px 6px 10px;
	color: var(--iexel-white, #f8fafc);
	background: var(--iexel-midnight-2, #07152b) url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20fill%3D%22%23cba135%22%20d%3D%22M1.41%200L6%204.58L10.59%200L12%201.41l-6%206-6-6z%22%2F%3E%3C%2Fsvg%3E') no-repeat right 9px center;
	background-size: 10px 7px;
	border: 1px solid var(--iexel-border, rgba(126, 156, 196, 0.25));
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.4;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.iexel-lineup-bulk-attendance__status:focus {
	outline: none;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 2px rgba(203, 161, 53, 0.35);
}
.iexel-lineup-bulk-attendance__status option {
	background: #07152b;
	color: #f8fafc;
}
.iexel-lineup-bulk-attendance__apply:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}
.iexel-lineup-player-groups { display: grid; gap: 12px; }
.iexel-lineup-player-group { display: grid; gap: 8px; min-width: 0; }
.iexel-lineup-player-group__title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; font-size: .74rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--iexel-gold, #cba135); }
.iexel-lineup-player-group__count { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 20px; padding: 0 7px; border-radius: 999px; color: #071b36; background: rgba(244,215,126,.96); font-size: .72rem; font-weight: 900; letter-spacing: .02em; }
.iexel-lineup-players-list { display: grid; gap: 8px; min-width: 0; max-height: 40vh; overflow-y: auto; padding-right: 4px; }
.iexel-lineup-player-store { display: none; }
.iexel-player-card { display: grid; grid-template-columns: 26px 48px 1fr auto; grid-template-rows: auto auto; gap: 7px 8px; padding: 10px 12px; background: rgba(248,250,252,.07); border: 1px solid var(--iexel-border, #1e3a5f); border-left: 3px solid rgba(148,163,184,.55); border-radius: 10px; min-width: 0; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.iexel-player-card.is-bulk-selected { border-color: rgba(203, 161, 53, 0.7); background: rgba(203, 161, 53, 0.08); box-shadow: 0 0 0 1px rgba(203, 161, 53, 0.3); }
.iexel-player-card__bulk-select { grid-row: 1 / 3; display: flex; align-items: center; justify-content: center; min-width: 24px; }
.iexel-player-card__checkbox-label { display: flex; align-items: center; justify-content: center; cursor: pointer; margin: 0; padding: 4px; min-width: 28px; min-height: 28px; box-sizing: border-box; }
.iexel-player-card__bulk-checkbox { width: 18px; height: 18px; margin: 0; accent-color: var(--iexel-gold, #cba135); cursor: pointer; border-radius: 4px; }
.iexel-player-card.has-warning { border-color: rgba(245,158,11,.4); }
.iexel-player-card:hover, .iexel-player-card:focus-within { border-color: rgba(244,215,126,.62); box-shadow: 0 8px 14px rgba(2,6,23,.2); }
.iexel-player-card:focus-visible { outline: 3px solid var(--iexel-white, #f8fafc); outline-offset: 2px; }
.iexel-player-card.is-starter { border-left-color: var(--iexel-gold, #cba135); background: rgba(203,161,53,.1); }
.iexel-player-card.is-assigned { background: rgba(148,163,184,.15); border-left-color: rgba(244,215,126,.85); }
.iexel-player-card[data-availability-status="unavailable"] { opacity: .65; background: rgba(51,65,85,.42); border-color: rgba(248,113,113,.28); }
/* Stronger treatment than the generic amber has-warning above: a selected
   Starter/Substitute whose Attendance is Absent or Excused -- reuses the
   same danger red token as .iexel-avail-badge.is-danger. Declared after
   .is-starter/.is-assigned so the conflict colour wins even for an
   assigned Starter, which is the exact case this batch exists to surface. */
.iexel-player-card.has-attendance-warning { border-color: rgba(239,68,68,.55); background: rgba(239,68,68,.06); }
.iexel-player-card__photo { grid-row: 1 / 3; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; overflow: hidden; background: rgba(255,255,255,.1); flex-shrink: 0; }
.iexel-player-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.iexel-player-card__photo-placeholder { font-size: 1.2rem; font-weight: 900; color: var(--iexel-muted, #94a3b8); }
.iexel-player-card__info { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.iexel-player-card__number { flex-shrink: 0; min-width: 22px; padding: 2px 5px; background: var(--iexel-gold, #cba135); border-radius: 5px; font-size: .72rem; font-weight: 900; color: #0b1f3a; text-align: center; }
.iexel-player-card__name { max-width: 100%; font-weight: 800; color: var(--iexel-white, #f8fafc); font-size: .89rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iexel-player-card__pos { font-size: .75rem; color: var(--iexel-muted, #94a3b8); }
.iexel-player-card__icons { display: flex; gap: 4px; align-items: center; flex-shrink: 0; }
.iexel-player-card__icon { display: inline-flex; align-items: center; justify-content: center; padding: 2px 6px; border-radius: 4px; font-size: .7rem; font-weight: 900; }
.iexel-player-card__icon.is-captain { background: var(--iexel-gold, #cba135); color: #0b1f3a; }
.iexel-player-card__icon.is-vc { background: #93c5fd; color: #1e3a5f; }
.iexel-player-card__icon.is-gk { background: #86efac; color: #14532d; }
.iexel-player-card__assignment { grid-column: 2 / -1; font-size: .74rem; color: var(--iexel-muted, #94a3b8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iexel-player-card__assignment strong { color: var(--iexel-white, #f8fafc); }
.iexel-player-card__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; min-width: 0; padding-top: 2px; }
.iexel-match-lineup .iexel-player-card__action { flex: 1 1 120px; min-width: 0; min-height: 42px; padding: 8px 10px; font-size: .74rem; overflow-wrap: anywhere; }

/* Availability / Attendance badges -- shared compact badge style, reused for
   both statuses on a player card so their tones stay visually consistent. */
.iexel-avail-badge { display: inline-block; padding: 2px 7px; border-radius: 10px; font-size: .72rem; font-weight: 800; }
.iexel-avail-badge.is-success { background: rgba(34,197,94,.15); color: #4ade80; }
.iexel-avail-badge.is-danger { background: rgba(239,68,68,.15); color: #f87171; }
.iexel-avail-badge.is-warning { background: rgba(245,158,11,.15); color: #fbbf24; }
.iexel-avail-badge.is-muted { background: rgba(148,163,184,.14); color: var(--iexel-muted, #94a3b8); }

/* Secondary/de-emphasised status badge (Attendance/Availability hierarchy):
   reuses the exact same muted token as .iexel-avail-badge.is-muted above,
   deliberately toned down regardless of the underlying status' own colour --
   whichever of Attendance/Availability is NOT the current primary signal
   must read as quiet context, never compete visually with the primary
   badge, and never mislead with its own bright success/danger tone. */
.iexel-player-card__badge--secondary { display: inline-block; padding: 1px 6px; border-radius: 10px; font-size: .66rem; font-weight: 700; background: rgba(148,163,184,.12); color: var(--iexel-muted, #94a3b8); }

/* Attendance conflict line -- reuses the same danger token as
   .iexel-avail-badge.is-danger; only rendered for a selected Player whose
   Attendance is Absent or Excused. */
.iexel-player-card__attendance-warning { grid-column: 2 / -1; margin: 0; font-size: .74rem; font-weight: 700; line-height: 1.35; color: #f87171; }

/* Inline "Change Attendance" control -- polished Club OS form-control styling
   matching filter selects (dark/midnight blue, gold focus, contained). */
.iexel-player-card__attendance-change {
	grid-column: 2 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	width: 100%;
	min-width: 0;
}
.iexel-player-card__attendance-change select {
	flex: 1 1 110px;
	min-width: 0;
	max-width: 100%;
	min-height: 36px;
	padding: 6px 28px 6px 10px;
	color: var(--iexel-white, #f8fafc);
	background: var(--iexel-midnight-2, #07152b) url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20fill%3D%22%23cba135%22%20d%3D%22M1.41%200L6%204.58L10.59%200L12%201.41l-6%206-6-6z%22%2F%3E%3C%2Fsvg%3E') no-repeat right 9px center;
	background-size: 10px 7px;
	border: 1px solid var(--iexel-border, rgba(126, 156, 196, 0.25));
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.4;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.iexel-player-card__attendance-change select:focus {
	outline: none;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 2px rgba(203, 161, 53, 0.35);
}
.iexel-player-card__attendance-change select option {
	background: #07152b;
	color: #f8fafc;
}
.iexel-player-card__attendance-change-submit {
	flex: 0 0 auto;
	min-height: 36px;
	padding: 6px 10px;
	font-size: 0.74rem;
	font-weight: 700;
	border-radius: 8px;
	white-space: nowrap;
	box-sizing: border-box;
}

/* =====================================================
   Lineup responsive breakpoints
   ===================================================== */
/* Tablet: pitch | players | settings */
@media (max-width: 1100px) {
	.iexel-lineup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; }
	.iexel-lineup-col--pitch { grid-column: 1 / -1; grid-row: 1; }
	.iexel-lineup-col--players { grid-column: 1; grid-row: 2; }
	.iexel-lineup-col--settings { grid-column: 2; grid-row: 2; }
	.iexel-pitch { max-width: 100%; }
}
/* Mobile: formation | pitch | players | bench | settings */
@media (max-width: 700px) {
	.iexel-lineup-grid { grid-template-columns: 1fr; gap: 14px; }
	.iexel-lineup-col--pitch { grid-column: 1; grid-row: 1; }
	.iexel-lineup-col--players { grid-column: 1; grid-row: 2; }
	.iexel-lineup-col--settings { grid-column: 1; grid-row: 3; }
	.iexel-lineup-players-list { max-height: none; }
	.iexel-lineup-panel { padding: 14px; border-radius: 14px; }
	.iexel-lineup-mobile-formation-host { display: grid; gap: 10px; margin-bottom: 8px; }
	.iexel-pitch { max-width: 100%; }
	.iexel-pitch-slot__label { min-width: 2.2em; font-size: .6rem; padding: 1px 5px; }
	.iexel-pitch-slot__tooltip { max-width: min(140px, 56vw); font-size: .63rem; }
	.iexel-pitch-slot.is-draggable::after { right: -10px; width: 22px; height: 22px; }
	.iexel-match-lineup__actions { flex-direction: column; }
	.iexel-match-lineup__actions .iexel-button { width: 100%; }
	.iexel-match-lineup__back { width: fit-content; min-height: 42px; padding: 9px 12px; font-size: .82rem; }
	.iexel-lineup-template-actions { grid-template-columns: 1fr; }
	.iexel-lineup-template-actions .iexel-button, .iexel-lineup-template-name-editor .iexel-button { width: 100%; min-height: 44px; }
	.iexel-lineup-template-name-editor > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Custom formation picker */
.iexel-custom-format-picker { padding: 8px 0 0; }
.iexel-custom-format-picker[hidden] { display: none; }
.iexel-formation-option.is-custom span { font-style: italic; }

.iexel-pitch-slots[hidden] { display: none; }

.iexel-lineup-dialog-backdrop { position: fixed; inset: 0; background: rgba(2,6,23,.78); backdrop-filter: blur(2px); z-index: 1200; }
.iexel-lineup-dialog { position: fixed; inset: 0; display: grid; place-items: center; padding: 14px; z-index: 1201; }
.iexel-lineup-dialog[hidden], .iexel-lineup-dialog-backdrop[hidden] { display: none; }
.iexel-lineup-dialog__card { display: grid; gap: 12px; width: min(820px, 100%); max-height: min(90vh, 920px); padding: 18px; overflow: hidden; color: var(--iexel-white, #f8fafc); background: linear-gradient(180deg, #08172f, #071429); border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 16px; box-shadow: 0 20px 44px rgba(2,6,23,.52); }
.iexel-lineup-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; }
.iexel-lineup-dialog__heading { display: grid; gap: 3px; min-width: 0; }
.iexel-lineup-dialog__header h2 { margin: 0 0 4px; color: var(--iexel-white, #f8fafc); }
.iexel-lineup-dialog__header p { margin: 0; color: var(--iexel-gold, #cba135); font-weight: 800; }
.iexel-lineup-dialog__count { color: var(--iexel-muted, #94a3b8) !important; font-size: .79rem; letter-spacing: .01em; }
.iexel-lineup-dialog__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; border-radius: 10px; border: 1px solid #3b4f6d; color: #f8fafc; background: rgba(248,250,252,.05); font-size: 1.25rem; line-height: 1; cursor: pointer; }
.iexel-lineup-dialog__close:hover, .iexel-lineup-dialog__close:focus-visible { border-color: var(--iexel-gold, #cba135); background: rgba(203,161,53,.16); outline: none; }
.iexel-lineup-dialog__search, .iexel-lineup-dialog__filters label { display: grid; gap: 6px; color: var(--iexel-muted, #94a3b8); font-size: .8rem; font-weight: 800; }
.iexel-lineup-dialog__search input, .iexel-lineup-dialog__filters select { width: 100%; min-height: 44px; box-sizing: border-box; border-radius: 10px; }
.iexel-lineup-dialog__results { display: grid; gap: 8px; min-height: 140px; max-height: 48vh; overflow-y: auto; padding-right: 4px; }
.iexel-lineup-dialog__empty { margin: 0; color: var(--iexel-muted, #94a3b8); }
.iexel-lineup-dialog-player { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; padding: 11px; border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 10px; background: rgba(255,255,255,.03); }
.iexel-lineup-dialog-player__identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.iexel-lineup-dialog-player__identity > div { min-width: 0; }
.iexel-lineup-dialog-player__identity strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--iexel-white, #f8fafc); }
.iexel-lineup-dialog-player__identity small { color: var(--iexel-muted, #94a3b8); }
.iexel-lineup-dialog-player__photo { width: 42px; height: 42px; border-radius: 50%; overflow: hidden; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 900; }
.iexel-lineup-dialog-player__photo img { width: 100%; height: 100%; object-fit: cover; }
.iexel-lineup-dialog-player__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: flex-end; }
.iexel-lineup-dialog-player__assigned { grid-column: 1 / -1; margin: 0; color: var(--iexel-muted, #94a3b8); font-size: .75rem; }
/* Reuses the same danger-red token as .iexel-avail-badge.is-danger; replaces
   the Assign button for a Player whose Attendance is Absent or Excused --
   remains visible in the results list, but not offered as assignable. */
.iexel-lineup-dialog-player__attendance-blocked { grid-column: 1 / -1; margin: 0; color: #f87171; font-size: .75rem; font-weight: 700; }
.iexel-lineup-dialog-player .iexel-button { grid-column: 2; align-self: center; min-height: 44px; padding: 8px 14px; }
.iexel-lineup-dialog-slot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; align-items: center; min-width: 0; padding: 11px; border: 1px solid var(--iexel-border, #1e3a5f); border-radius: 10px; background: rgba(255,255,255,.03); }
.iexel-lineup-dialog-slot__identity { display: flex; align-items: center; gap: 8px; min-width: 0; }
.iexel-lineup-dialog-slot__identity strong { min-width: 0; color: var(--iexel-white, #f8fafc); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iexel-lineup-dialog-slot__identity small { flex-shrink: 0; color: var(--iexel-gold, #cba135); font-weight: 900; }
.iexel-lineup-dialog-slot p { grid-column: 1; margin: 0; color: var(--iexel-muted, #94a3b8); font-size: .75rem; overflow-wrap: anywhere; }
.iexel-lineup-dialog-slot .iexel-button { grid-column: 2; grid-row: 1 / 3; min-width: 0; min-height: 44px; padding: 8px 14px; }
.iexel-lineup-dialog__actions { display: flex; justify-content: flex-end; }

.iexel-lineup-slot-menu { position: absolute; display: grid; gap: 4px; min-width: 220px; padding: 8px; background: #08172f; border: 1px solid #334155; border-radius: 10px; box-shadow: 0 10px 24px rgba(2,6,23,.45); z-index: 1210; }
.iexel-lineup-slot-menu[hidden] { display: none; }
.iexel-lineup-slot-menu button { display: flex; align-items: center; gap: 8px; border: 1px solid transparent; border-radius: 8px; min-height: 44px; padding: 9px 10px; color: var(--iexel-white, #f8fafc); background: rgba(255,255,255,.04); font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.iexel-lineup-slot-menu button:hover, .iexel-lineup-slot-menu button:focus-visible, .iexel-lineup-slot-menu button.is-active { border-color: var(--iexel-gold, #cba135); background: rgba(203,161,53,.16); outline: none; }
.iexel-lineup-slot-menu button.is-destructive { color: #fecaca; border-color: rgba(248,113,113,.35); }
.iexel-lineup-slot-menu button.is-destructive:hover, .iexel-lineup-slot-menu button.is-destructive:focus-visible { color: #fff1f2; background: rgba(190,24,93,.23); border-color: rgba(248,113,113,.75); }
.iexel-lineup-slot-menu__icon { width: 20px; text-align: center; flex-shrink: 0; font-size: .74rem; color: var(--iexel-gold, #cba135); }
.iexel-lineup-slot-menu button.is-destructive .iexel-lineup-slot-menu__icon { color: #fda4af; }

.iexel-match-lineup__actions .iexel-button { min-height: 46px; }
.iexel-match-lineup__save { min-width: 152px; }
.iexel-match-lineup__start { min-width: 132px; }
.iexel-match-lineup__back { min-height: 40px; padding: 8px 12px; font-size: .84rem; font-weight: 800; color: #dbeafe; border-color: #52637e; background: rgba(11,31,58,.6); }
.iexel-match-lineup .iexel-button-secondary.iexel-match-lineup__start { color: #f8fafc; background: #102949; border-color: #4a5f7d; }

.iexel-lineup-modal-open { overflow: hidden; }

@media (max-width: 920px) {
	.iexel-lineup-dialog-player { grid-template-columns: 1fr; }
	.iexel-lineup-dialog-player .iexel-button { grid-column: 1; width: 100%; }
	.iexel-lineup-dialog-slot { grid-template-columns: 1fr; }
	.iexel-lineup-dialog-slot p, .iexel-lineup-dialog-slot .iexel-button { grid-column: 1; grid-row: auto; }
	.iexel-lineup-dialog-slot .iexel-button { width: 100%; }
	.iexel-lineup-dialog__actions .iexel-button { width: 100%; }
}

@media (max-width: 520px) {
	.iexel-lineup-dialog { padding: 10px; }
	/* Mobile-only: the desktop grid (base rule above) relies on
	   .iexel-lineup-dialog__results' own fixed max-height to stay within the
	   card. At narrow/short viewports that fixed height doesn't account for
	   how much room the header/search/filters actually take, so the results
	   list and the actions row below it could be pushed past the card's
	   max-height and clipped by its overflow:hidden -- unreachable, not just
	   unscrollable. Switching to a column flex layout with only the results
	   region flexible (flex:1; min-height:0) makes it take exactly the
	   remaining space and scroll within it, so the header, search, filters
	   and actions/Close stay reliably visible and reachable. Desktop is
	   untouched -- this block only fires at 520px and below. */
	.iexel-lineup-dialog__card {
		width: 100%;
		max-height: 92vh;
		padding: 14px;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}
	.iexel-lineup-dialog__header,
	.iexel-lineup-dialog__search,
	.iexel-lineup-dialog__filters,
	.iexel-lineup-dialog__actions { flex-shrink: 0; }
	.iexel-lineup-dialog__results { flex: 1 1 auto; min-height: 0; max-height: none; }
	.iexel-lineup-dialog__header h2 { font-size: 1.08rem; }
	.iexel-lineup-dialog__count { font-size: .74rem; }
	.iexel-player-card__actions { flex-direction: column; }
	.iexel-match-lineup .iexel-player-card__action { flex-basis: auto; width: 100%; }
	.iexel-lineup-slot-menu { min-width: 200px; }
}

@media (prefers-reduced-motion: reduce) {
	.iexel-match-lineup *,
	.iexel-lineup-dialog *,
	.iexel-lineup-slot-menu * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.iexel-goal-attribution, .iexel-goal-attribution__grid { min-width: 0; }
/* Focused-action hero polish: without align-items: start, this grid's
   default stretch makes the score card's OUTER box match the tall form
   column's height; .iexel-match-mode-score's own place-content: center
   then centres the card's actual content within that stretched box,
   producing the reported large blank area above (and below) the score.
   align-items: start lets the card size to its own natural content
   height instead, matching the already-correct .iexel-match-mode-grid
   (live Match Mode) behaviour. */
.iexel-goal-attribution__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: 20px; }
.iexel-goal-attribution-card h1 { margin: 6px 0 10px; color: var(--iexel-white); }
.iexel-goal-attribution-card .iexel-match-mode-help strong { color: var(--iexel-gold); }
.iexel-goal-attribution-card [hidden] { display: none !important; }
.iexel-goal-attribution-form { display: grid; gap: 16px; min-width: 0; }
.iexel-goal-field-group { display: grid; gap: 7px; min-width: 0; color: var(--iexel-color-on-dark, #ffffff); font-weight: 800; }
.iexel-goal-field-group[hidden] { display: none !important; }
.iexel-goal-field-group > label { min-width: 0; color: var(--iexel-color-on-dark, #ffffff); font-weight: 800; }
.iexel-goal-attribution-form label small { color: var(--iexel-muted); }
.iexel-goal-attribution-form select, .iexel-goal-attribution-form input[type="number"], .iexel-goal-attribution-form input[type="text"] { width: 100%; max-width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; box-sizing: border-box; color: var(--iexel-white); background: #0b1f3a; border: 1px solid var(--iexel-border); border-radius: 10px; font: inherit; }
.iexel-goal-attribution-form select option { color: #111827; background: #ffffff; }
.iexel-goal-field-group > label > span b { color: var(--iexel-gold); }
.iexel-goal-mode-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }
.iexel-goal-mode-cards legend { grid-column: 1 / -1; margin-bottom: 2px; color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; }
.iexel-goal-mode-card { position: relative; display: flex; min-width: 0; min-height: 104px; cursor: pointer; }
.iexel-goal-mode-card input { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; }
.iexel-goal-mode-card > span { display: grid; align-content: center; gap: 5px; width: 100%; min-width: 0; padding: 16px; box-sizing: border-box; color: var(--iexel-white); background: #0b1f3a; border: 2px solid #64748b; border-radius: 13px; transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.iexel-goal-mode-card strong { color: inherit; font-size: 1rem; }
.iexel-goal-mode-card small { color: #cbd5e1; line-height: 1.35; overflow-wrap: anywhere; }
.iexel-goal-mode-card:hover > span { border-color: var(--iexel-gold); transform: translateY(-1px); }
.iexel-goal-mode-card input:checked + span { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; box-shadow: 0 8px 22px rgba(203,161,53,.22); }
.iexel-goal-mode-card input:checked + span small { color: #26364f; }
.iexel-goal-mode-card input:focus-visible + span { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.45); }
.iexel-goal-penalty-option { display: flex !important; align-items: center; gap: 10px !important; min-height: 48px; padding: 10px 13px; box-sizing: border-box; color: var(--iexel-white) !important; background: rgba(255,255,255,.045); border: 1px solid var(--iexel-border); border-radius: 10px; }
.iexel-goal-penalty-option input { width: 20px; height: 20px; accent-color: var(--iexel-gold); }
.iexel-goal-mode-update { width: 100%; min-height: 48px; }
.iexel-goal-attribution-form__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.iexel-goal-attribution-form__actions .iexel-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 50px; padding: 11px 18px; box-sizing: border-box; border: 2px solid transparent; border-radius: 10px; font: inherit; font-weight: 900; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; }
.iexel-goal-attribution-form__actions .iexel-button-primary { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; }
.iexel-goal-attribution-form__actions .iexel-button-secondary { color: #f8fafc; background: #0b1f3a; border-color: #64748b; }
.iexel-goal-attribution-form__actions .iexel-button:disabled { color: #cbd5e1; background: #334155; border-color: #64748b; cursor: not-allowed; opacity: .72; }
.iexel-goal-attribution-form__actions .iexel-button:focus-visible { outline: 3px solid #f8fafc; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(203,161,53,.45); }
.iexel-incident-assist, .iexel-incident-award { color: var(--iexel-gold) !important; }
.iexel-incident-substitution-player { color: var(--iexel-gold) !important; font-weight: 900; }
.iexel-substitution-page, .iexel-substitution-page__grid { min-width: 0; }
/* Focused-action hero polish: same fix, same reasoning as
   .iexel-goal-attribution__grid above -- this grid is shared by both
   Substitution and Change Goalkeeper (MatchGoalkeeperChangePage reuses
   this exact class). */
.iexel-substitution-page__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: 20px; }
.iexel-substitution-form-card h1 { margin: 6px 0 10px; color: var(--iexel-white); }
.iexel-substitution-form-card .iexel-match-mode-help strong { color: var(--iexel-gold); }
.iexel-substitution-form { display: grid; gap: 16px; min-width: 0; }
.iexel-substitution-form > label { display: grid; gap: 7px; min-width: 0; color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; }
.iexel-substitution-form select, .iexel-substitution-form input[type="number"] { width: 100%; max-width: 100%; min-width: 0; min-height: 52px; padding: 11px 12px; box-sizing: border-box; color: var(--iexel-white); background: #0b1f3a; border: 2px solid #64748b; border-radius: 11px; font: inherit; }
.iexel-substitution-form select:focus, .iexel-substitution-form input[type="number"]:focus { border-color: var(--iexel-gold); outline: 3px solid rgba(203,161,53,.28); }
.iexel-substitution-form select option { color: #111827; background: #ffffff; }
.iexel-substitution-form__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.iexel-substitution-form__actions .iexel-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 54px; padding: 12px 18px; box-sizing: border-box; border: 2px solid transparent; border-radius: 10px; font: inherit; font-weight: 900; text-align: center; text-decoration: none; }
.iexel-substitution-form__actions .iexel-button-primary, .iexel-live-control-button--substitution { color: #071d49; background: var(--iexel-gold); border-color: #f4d77e; }
.iexel-substitution-form__actions .iexel-button-secondary { color: #f8fafc; background: #0b1f3a; border-color: #64748b; }
.iexel-substitution-form__actions .iexel-button:disabled { color: #cbd5e1; background: #334155; border-color: #64748b; cursor: not-allowed; opacity: .72; }
.iexel-substitution-warning { display: grid; gap: 10px; min-width: 0; padding: 16px 18px; color: #fff7ed; background: linear-gradient(180deg, rgba(127,29,29,.42), rgba(74,22,7,.94)); border: 2px solid #fb923c; border-left-width: 5px; border-radius: 13px; box-sizing: border-box; overflow-wrap: anywhere; }
.iexel-substitution-warning strong { color: #ffffff; font-size: 1rem; }
.iexel-substitution-warning ul { display: grid; gap: 6px; margin: 0; padding-left: 20px; }
.iexel-match-lineup__players.is-read-only .iexel-match-lineup-player { grid-template-columns: minmax(0, 1fr); }
.iexel-match-lineup__players.is-read-only .iexel-match-lineup-player p { margin: 0; color: var(--iexel-muted); }

/* Shared lifecycle cancellation state for portal alerts and event lists. */
.iexel-experience-alert.is-cancelled,
.iexel-experience-item.is-cancelled,
.iexel-event-card.is-cancelled,
.iexel-team-event-card.is-cancelled {
	background: linear-gradient(150deg, rgba(127, 29, 29, .28), rgba(69, 10, 10, .18));
	border-color: rgba(252, 165, 165, .48);
	border-left: 4px solid #ef4444;
}

.iexel-team-event-card.is-cancelled {
	border-top-color: #ef4444;
}

.iexel-experience-status.is-cancelled,
.iexel-experience-status.is-state-cancelled {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 3px 9px;
	color: #fff1f2;
	background: rgba(190, 24, 93, .35);
	border: 1px solid rgba(253, 164, 175, .72);
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.iexel-experience-alert.is-cancelled .iexel-experience-status {
	margin: 8px 0 0;
}

@media (max-width: 520px) {
	.iexel-experience-alert.is-cancelled,
	.iexel-experience-item.is-cancelled,
	.iexel-event-card.is-cancelled,
	.iexel-team-event-card.is-cancelled {
		border-left-width: 4px;
	}
}

@media (max-width: 1100px) {
	.iexel-match-mode-lineups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
	.iexel-match-mode-hero-row { grid-template-columns: 1fr; }
	.iexel-match-mode-hero-actions { position: static; grid-template-columns: minmax(0, 1fr) minmax(0, 220px); width: 100%; min-width: 0; }
	.iexel-match-mode-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.iexel-match-mode-hero-actions { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.iexel-match-mode-hero-row, .iexel-match-mode-hero, .iexel-match-mode-grid, .iexel-goal-attribution__grid, .iexel-substitution-page__grid { grid-template-columns: 1fr; }
	.iexel-match-mode-hero-actions { position: static; width: 100%; min-width: 0; }
	.iexel-match-mode-hero { padding: 22px; }
	.iexel-match-mode-card--wide { grid-column: auto; }
	.iexel-match-mode-lineups { grid-column: auto; grid-template-columns: 1fr; }
	.iexel-live-goal-actions { grid-template-columns: 1fr; }
	.iexel-live-control-fields { grid-template-columns: 1fr; }
	.iexel-substitution-form__actions { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.iexel-match-mode-card-heading, .iexel-incident-timeline-heading { align-items: flex-start; flex-direction: column; }
	/* Card heading stacks to a column here; align-self centres just the
	   circular count badge under the (left-aligned) title instead of it
	   sitting flush against the left edge looking unintentional. */
	.iexel-match-mode-count { min-width: 0; align-self: center; }
	.iexel-match-mode-score__value { width: 100%; box-sizing: border-box; }
}
@media (max-width: 440px) {
	.iexel-match-mode-hero dl, .iexel-match-mode-actions { grid-template-columns: 1fr; }
	/* CMC-003 v1 final polish: a genuine 2-column football grid, not a
	   single-column stack -- Home/Away Team names keep their own side (row
	   1), the score centres beneath spanning both (row 2), and the Club
	   scorer summary keeps its --left/--right column assignment (row 3, via
	   normal grid auto-placement) instead of visually reading as belonging
	   to whichever Team happens to sit above it in document order. */
	/* align-items: start (not the base rule's center) so the HOME/AWAY
	   eyebrow labels stay level with each other regardless of whether one
	   Team name wraps to two lines and the other stays on one -- centring
	   would otherwise vertically offset the shorter name by half the
	   height difference, misaligning the two sides. Only the Team-name row
	   has more than one item per row here, so this cannot misalign the
	   single-item score/scorer rows below it. */
	.iexel-match-mode-scoreboard { grid-template-columns: 1fr 1fr; align-items: start; column-gap: 12px; row-gap: 4px; }
	.iexel-match-mode-score__value { grid-column: 1 / -1; grid-row: 2; align-self: center; }
	.iexel-match-mode-score__scorers--right { grid-column: 2; }
	/* Long-name mobile resilience: at this width each Team column is only
	   ~116px (measured against the real ancestor chain -- .iexel-portal-wrap
	   20px padding, this card's own 18px padding, and the 12px column-gap
	   above -- all either side of the viewport). The base desktop clamp
	   floors at a flat 20px here (3.2vw is below its 1.25rem minimum down to
	   ~625px), and at 20px a 9-letter single word like "ROCHESTER" no longer
	   fits that column on its own line, so the browser hard-breaks the WORD
	   itself ("ROCHEST" / "ER CITY") instead of wrapping at the natural
	   space before "CITY". Empirically verified (not guessed) against that
	   exact 116px column: 17px is the first size at which "ROCHESTER CITY"
	   wraps cleanly at the word boundary; this clamp keeps the whole 320-
	   440px range at or below that, with headroom, while still scaling up
	   as the column widens and never shrinking short names like "U7 GOLD"
	   below a comfortably strong size. No name is targeted -- every Team
	   name uses the same rule regardless of length. text-wrap: balance is
	   additive (ignored by unsupported browsers, falling back to normal
	   wrapping); overflow-wrap: break-word keeps the same overflow
	   guarantee as the desktop rule's overflow-wrap: anywhere without its
	   min-content side effects. */
	.iexel-match-score-team strong { font-size: clamp(.95rem, 5vw, 1.375rem); text-wrap: balance; overflow-wrap: break-word; }
	/* One scorer entry per line at this width -- the desktop compact
	   wrapped/bulleted presentation can stagger awkwardly this narrow;
	   grouping/consolidation itself is unaffected, purely a layout switch. */
	.iexel-match-goal-scorers { display: grid; gap: 3px; }
	.iexel-match-goal-scorers li:not(:first-child)::before { content: none; }
	.iexel-match-mode-card { padding: 18px; }
	.iexel-incident-timeline-heading { align-items: flex-start; flex-direction: column; }
	.iexel-match-score-team .iexel-kit-shirt { width: 34px; height: 34px; margin: 1px 0; }
	.iexel-live-control-button { min-height: 58px; }
	.iexel-incident-timeline li { grid-template-columns: 44px minmax(0, 1fr); }
	.iexel-match-lineup__header { align-items: stretch; flex-direction: column; padding: 20px; }
	.iexel-match-lineup-player, .iexel-match-lineup-player__fields { grid-template-columns: 1fr; }
	.iexel-match-lineup-player__warning, .iexel-match-lineup-player__fields, .iexel-match-lineup-player__markers { grid-column: auto; }
	.iexel-match-lineup__actions > *, .iexel-match-lineup__clear .iexel-button { width: 100%; }
	.iexel-goal-attribution-form__actions { grid-template-columns: 1fr; }
	.iexel-goal-mode-cards { grid-template-columns: 1fr; }
	.iexel-match-correction-form fieldset.iexel-goal-mode-cards { grid-template-columns: 1fr; }
}

/* Match Reports */
.iexel-match-report { display: grid; gap: 24px; min-width: 0; container: iexel-match-report / inline-size; }
.iexel-match-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; min-width: 0; }
.iexel-match-report-form { display: contents; }
/* Final MVP polish: converted the Final Score module's own gold accent
   from a 5px BOTTOM edge to the same stronger 4px TOP edge + thin
   remaining border already established as the primary-module convention
   elsewhere in Club OS (Team Events, Event Detail). This is the
   Final-Score-specific ".iexel-match-report-hero" module -- NOT the
   shared, unrelated ".iexel-os-hero"/Common\Hero banner component used
   across many other pages, which is completely untouched. Exclusive to
   MatchReportHeroCard.php, so edited directly -- no scoping wrapper
   needed. */
.iexel-match-report-hero { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: 24px; padding: 30px; color: #fff; background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-top: 4px solid var(--iexel-gold); border-radius: 22px; box-shadow: var(--iexel-shadow-medium); }
.iexel-match-report-score { display: grid; place-content: center; min-width: 0; text-align: center; }
.iexel-match-report-score span, .iexel-match-report-kicker { color: var(--iexel-gold); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.iexel-match-report-score strong { color: #fff; font-size: clamp(3.4rem, 9vw, 6.8rem); line-height: 1; }
.iexel-match-report-score small { margin-top: 8px; color: var(--iexel-muted); font-weight: 800; word-break: normal; overflow-wrap: break-word; }
.iexel-match-report-hero dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-match-report-hero dl div { display: grid; grid-template-rows: auto 1fr; min-width: 0; padding: 13px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.11); border-radius: 11px; }
/* Final MVP polish: Competition/Opponent/Date/Kick Off stay the existing
   2-column metadata tiles (DOM reordered in MatchReportHeroCard.php to
   Competition, Opponent, Date, Kick Off, Venue); Venue -- previously a
   half-width tile a long name like "Springhead Home Ground" wrapped
   excessively inside -- now spans both columns, giving it roughly double
   the horizontal room without changing the tile's own padding/background.
   Long values still wrap naturally via the existing overflow-wrap/
   word-break on .iexel-match-report-hero dd above; nothing is truncated. */
.iexel-match-report-hero-venue { grid-column: 1 / -1; }
.iexel-match-report-hero dt, .iexel-match-report-rating-list dt { color: var(--iexel-muted); font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.iexel-match-report-hero dd { min-width: 0; margin: 4px 0 0; color: #fff; font-weight: 800; word-break: normal; overflow-wrap: break-word; }
.iexel-match-report-card { min-width: 0; padding: 26px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid var(--iexel-border); border-left: 4px solid var(--iexel-gold); border-radius: 18px; box-shadow: var(--iexel-shadow-small); overflow: hidden; }
.iexel-match-report-card--wide { grid-column: 1 / -1; }
.iexel-match-report-card h2 { margin: 6px 0 18px; color: #fff; }
.iexel-match-report-card h3 { color: var(--iexel-gold); }
.iexel-match-report-card p { color: var(--iexel-muted); }
/* Final MVP polish: primary-card gold-top hierarchy for the standalone
   Match Report page. .iexel-match-report-card is the shared base for
   Match Summary, Player Ratings, Match Review and Report Status (all
   four MatchReport components render it as their own root), and
   .iexel-incident-timeline-card (shared with the live Match Mode page,
   via .iexel-match-mode-card) is Match Incident Timeline's root -- both
   currently only carry a thin gold LEFT rail by default. Scoped here
   under .iexel-match-report (the outer page wrapper exclusive to
   MatchReportPage.php -- confirmed no other page renders it) rather than
   editing either shared base rule directly, so Match Mode's own live page
   and Event Detail's already-established, separately-scoped
   ".iexel-event-detail" overrides for these same two classes are
   completely unaffected. Nested content -- individual metric tiles,
   Captain/Goalkeeper/Attendance tiles, lineup rows, individual Player
   Rating cards, Match Review fields, individual incident rows -- is not
   touched by this selector and keeps its existing quieter treatment. */
.iexel-match-report .iexel-match-report-card {
	border: 1px solid var(--iexel-border);
	border-top: 4px solid var(--iexel-gold);
}
.iexel-match-report .iexel-incident-timeline-card {
	border: 1px solid var(--iexel-border);
	border-top: 4px solid var(--iexel-gold);
}
.iexel-match-report-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.iexel-match-report-metrics div, .iexel-match-report-leaders div { display: grid; gap: 4px; min-width: 0; padding: 15px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-match-report-metrics strong { color: #fff; font-size: 2rem; }
.iexel-match-report-metrics span, .iexel-match-report-leaders span { color: var(--iexel-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.iexel-match-report-context { margin: 2px 0 14px; color: var(--iexel-muted); font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.iexel-match-report-leaders { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.iexel-match-report-leaders strong { color: #fff; overflow-wrap: anywhere; }
.iexel-match-report-lineups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.iexel-match-report-lineups > div { min-width: 0; padding: 18px; background: rgba(255,255,255,.035); border-radius: 12px; }
.iexel-match-report-lineups ol { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.iexel-match-report-lineups li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 2px 10px; align-items: center; padding: 9px; background: rgba(255,255,255,.05); border-radius: 9px; }
.iexel-match-report-lineups li > span { grid-row: 1 / 3; padding: 7px 3px; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 7px; font-weight: 900; text-align: center; }
.iexel-match-report-lineups strong { color: #fff; overflow-wrap: anywhere; }
.iexel-match-report-lineups small { color: var(--iexel-muted); }
.iexel-match-report-timeline { display: grid; grid-column: 1 / -1; min-width: 0; width: 100%; }
.iexel-match-report-timeline > .iexel-incident-timeline-card { width: 100%; box-sizing: border-box; }
.iexel-match-report-timeline .iexel-incident-timeline, .iexel-match-report-timeline .iexel-incident-timeline li { width: 100%; max-width: 100%; box-sizing: border-box; }
.iexel-completed-match-record, .iexel-completed-match-history { display: grid; gap: 22px; min-width: 0; }
.iexel-completed-match-record { container: iexel-completed-record / inline-size; }
/* "Match Lineup & Incident History" and its explanatory copy had no card
   chrome of their own -- only ever safe on the accidental ambient dark
   backdrop the unclosed <div> used to provide (see PortalEventDetailPage.php
   Batch 2 notes). Genuinely un-nested now, this reads as one deliberate
   premium post-Match workspace section: MVP surface-hierarchy correction
   promoted it from the flatter single-tone opaque navy to the same richer
   two-stop gradient + gold-top accent as this page's other primary cards
   (Match Report, Match Selection) -- gold kicker, white heading, muted
   explanatory copy. The already-rich MatchSummaryCard (its own distinct
   two-stop-gradient card, gold-left accent) nests inside exactly as
   before, unchanged -- this is the "dark primary record -> dark/rich
   football module" layer of the intended hierarchy; the lighter nested
   data tiles (Goals/Conceded/Assists/Captain/Goalkeeper/lineup rows) live
   one level deeper still, inside MatchSummaryCard, and are untouched. */
.iexel-completed-match-history {
	container: iexel-completed-history / inline-size;
	padding: 24px;
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border: 1px solid rgba(203,161,53,.4);
	border-top: 4px solid var(--iexel-gold);
	box-shadow: var(--iexel-shadow-small);
	box-sizing: border-box;
}
.iexel-participant-match { display: grid; gap: 20px; min-width: 0; }
.iexel-participant-match__hero { position: relative; display: grid; justify-items: center; gap: 16px; min-width: 0; overflow: hidden; padding: clamp(26px, 5vw, 52px); color: #fff; text-align: center; background: radial-gradient(circle at 50% 0, rgba(203,161,53,.2), transparent 46%), linear-gradient(145deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid rgba(203,161,53,.55); border-top: 5px solid var(--iexel-gold); border-radius: 20px; box-sizing: border-box; box-shadow: var(--iexel-shadow-small); }
.iexel-participant-match__state { color: var(--iexel-gold); font-size: .76rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.iexel-participant-match__score { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; width: min(100%, 820px); min-width: 0; gap: clamp(12px, 3vw, 34px); }
.iexel-participant-match__team { min-width: 0; color: #fff; font-size: clamp(1rem, 3vw, 1.55rem); font-weight: 900; line-height: 1.15; overflow-wrap: anywhere; text-transform: uppercase; }
.iexel-participant-match__numbers { display: inline-grid; grid-template-columns: auto auto auto; align-items: center; gap: clamp(7px, 2vw, 16px); white-space: nowrap; }
.iexel-participant-match__numbers b { color: #fff; font-size: clamp(2.6rem, 9vw, 5rem); line-height: .9; font-variant-numeric: tabular-nums; }
.iexel-participant-match__numbers i { color: var(--iexel-gold); font-size: clamp(1.4rem, 4vw, 2.4rem); font-style: normal; }
.iexel-participant-match__result { display: inline-flex; align-items: center; min-height: 38px; padding: 0 19px; color: #fff; font-size: .85rem; font-weight: 900; letter-spacing: .14em; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.26); border-radius: 999px; }
.iexel-participant-match__result.is-win { color: #10271e; background: #9ee6b8; border-color: #c4f3d4; }
.iexel-participant-match__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; color: #dbe5f2; font-size: .85rem; }
.iexel-participant-match__meta span + span::before { content: '\2022'; margin-right: 16px; color: var(--iexel-gold); }
.iexel-participant-match__yours, .iexel-participant-match__story { min-width: 0; padding: clamp(22px, 4vw, 34px); color: #fff; background: linear-gradient(150deg, rgba(15,35,61,.98), rgba(8,21,39,.99)); border: 1px solid rgba(203,161,53,.36); border-radius: 18px; box-sizing: border-box; box-shadow: var(--iexel-shadow-small); }
.iexel-participant-match__yours { border-top: 4px solid var(--iexel-gold); }
.iexel-participant-match__yours h2, .iexel-participant-match__story h2 { margin: 5px 0 7px; color: #fff; font-size: clamp(1.5rem, 4vw, 2.15rem); }
.iexel-participant-match__yours > p { margin: 0; color: #dbe5f2; font-size: 1rem; }
.iexel-participant-match__achievements { display: flex; flex-wrap: wrap; gap: 10px; margin: 21px 0 0; padding: 0; list-style: none; }
.iexel-participant-match__achievements li { display: inline-flex; align-items: center; gap: 9px; min-width: 0; min-height: 44px; padding: 7px 13px; color: #fff; background: rgba(203,161,53,.09); border: 1px solid rgba(203,161,53,.58); border-radius: 999px; box-sizing: border-box; }
.iexel-participant-match__achievements li span { display: inline-grid; place-items: center; width: 25px; height: 25px; flex: 0 0 auto; color: var(--iexel-midnight); font-size: .65rem; font-weight: 950; background: var(--iexel-gold); border-radius: 50%; }
.iexel-participant-match__achievements li strong { min-width: 0; overflow-wrap: anywhere; }
.iexel-participant-match__story-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 10px; margin: 18px 0 22px; }
.iexel-participant-match__story-metrics div { display: grid; grid-template-rows: minmax(1em, auto) auto; align-content: space-between; gap: 3px; min-width: 0; height: 100%; padding: 14px; box-sizing: border-box; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; }
.iexel-participant-match__story-metrics dt { min-width: 0; color: #c9d7e8; font-size: .72rem; font-weight: 800; line-height: 1.2; letter-spacing: .05em; overflow-wrap: anywhere; text-transform: uppercase; }
.iexel-participant-match__story-metrics dd { align-self: end; margin: 0; color: #fff; font-size: 1.7rem; font-weight: 900; line-height: 1; }
.iexel-participant-match__timeline { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.iexel-participant-match__timeline li { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 16px; min-width: 0; padding: 13px 14px; color: #e7eef7; background: linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.035)); border: 1px solid rgba(255,255,255,.12); border-left: 3px solid var(--iexel-gold); border-radius: 13px; box-sizing: border-box; }
.iexel-participant-match__timeline-visuals { display: flex; align-items: center; justify-content: center; min-width: 0; }
.iexel-participant-match__timeline-visuals > * + * { margin-left: -22px; }
.iexel-participant-match__timeline-avatar, .iexel-participant-match__timeline-team { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; flex: 0 0 64px; overflow: hidden; color: var(--iexel-midnight); font-size: 1.55rem; background: var(--iexel-gold); border: 2px solid #fff; border-radius: 50%; box-sizing: border-box; }
.iexel-participant-match__timeline-avatar img, .iexel-participant-match__timeline-team img { display: block; width: 100%; height: 100%; object-fit: cover; }
.iexel-participant-match__timeline-team .iexel-club-mark img { object-fit: contain; }
.iexel-participant-match__timeline-team.has-club-mark { background: rgba(255,255,255,.08); }
.iexel-participant-match__timeline-team.is-opponent { color: #fff; background: #344765; border-color: rgba(255,255,255,.75); }
.iexel-participant-match__timeline-content { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; min-width: 0; }
.iexel-participant-match__timeline-meta { display: contents; }
.iexel-participant-match__timeline time { display: inline-flex; align-items: center; justify-self: start; min-height: 26px; padding: 0 9px; color: var(--iexel-midnight); font-size: .78rem; font-weight: 950; background: var(--iexel-gold); border-radius: 999px; }
.iexel-participant-match__timeline-meta strong { display: inline-flex; grid-column: 3; align-items: center; justify-content: center; min-width: 52px; min-height: 36px; padding: 0 11px; color: var(--iexel-color-on-accent, #000); font-size: 1.2rem; font-weight: 950; line-height: 1; font-variant-numeric: tabular-nums; background: var(--iexel-gold); border: 1px solid color-mix(in srgb, var(--iexel-gold) 75%, #fff); border-radius: 999px; box-sizing: border-box; }
.iexel-participant-match__timeline p { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; color: #e7eef7; line-height: 1.4; overflow-wrap: anywhere; }
.iexel-completed-match-record > .iexel-match-mode-score-card { width: 100%; box-sizing: border-box; }
.iexel-completed-match-history__heading { min-width: 0; padding: 0 2px; }
.iexel-completed-match-history__heading h2 { margin: 5px 0 4px; color: var(--iexel-color-on-dark, #fff); }
.iexel-completed-match-history__heading p { margin: 0; color: var(--iexel-muted); }
.iexel-completed-match-actions { display: grid; gap: 14px; min-width: 0; padding: 24px; color: var(--iexel-color-on-dark, #fff); background: linear-gradient(145deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid rgba(203,161,53,.4); border-top: 4px solid var(--iexel-gold); border-radius: 18px; box-shadow: var(--iexel-shadow-small); box-sizing: border-box; }
.iexel-completed-match-actions h2 { margin: 0; color: #fff; }
.iexel-completed-match-actions p { margin: 0; color: var(--iexel-muted); }
.iexel-completed-match-actions__primary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.iexel-completed-match-actions__primary .iexel-button, .iexel-completed-match-actions__recovery .iexel-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 48px; box-sizing: border-box; text-align: center; overflow-wrap: anywhere; }
.iexel-completed-match-actions__recovery { padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); }
.iexel-completed-match-actions__recovery summary { color: #dbeafe; font-weight: 800; cursor: pointer; }
.iexel-completed-match-actions__recovery p { margin: 10px 0; }
.iexel-completed-match-actions__recovery-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.iexel-match-correction { display: grid; gap: 22px; min-width: 0; container: iexel-match-correction / inline-size; }
.iexel-match-correction-hero, .iexel-match-correction-card { min-width: 0; padding: 24px; color: var(--iexel-color-on-dark, #fff); background: linear-gradient(145deg, var(--iexel-navy), var(--iexel-midnight)); border: 1px solid rgba(203,161,53,.4); border-radius: 18px; box-shadow: var(--iexel-shadow-small); box-sizing: border-box; }
.iexel-match-correction-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: center; border-top: 4px solid var(--iexel-gold); }
.iexel-match-correction-hero h1, .iexel-match-correction-card h2 { margin: 4px 0 8px; color: #fff; }
.iexel-match-correction-hero p, .iexel-match-correction-card p { margin: 0; color: var(--iexel-muted); }
.iexel-match-correction-score { display: grid; gap: 5px; min-width: 0; text-align: center; }
.iexel-match-correction-score strong { color: #fff; font-size: clamp(2.8rem, 8vw, 5.2rem); line-height: 1; }
.iexel-match-correction-score span { color: var(--iexel-muted); font-weight: 800; overflow-wrap: anywhere; }
.iexel-match-correction-goals { display: grid; gap: 10px; margin-top: 18px; }
.iexel-match-correction-goal { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; min-width: 0; padding: 14px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; box-sizing: border-box; }
.iexel-match-correction-goal__minute { min-width: 48px; color: var(--iexel-gold); font-size: 1.25rem; font-weight: 900; text-align: center; }
.iexel-match-correction-goal__detail { display: grid; gap: 3px; min-width: 0; }
.iexel-match-correction-goal__detail strong { color: #fff; overflow-wrap: anywhere; }
.iexel-match-correction-goal__detail span { color: var(--iexel-muted); font-size: .84rem; }
.iexel-match-correction-goal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; min-width: 0; }
.iexel-match-correction .iexel-button--danger-secondary { color: #fecaca; background: rgba(127,29,29,.18); border-color: rgba(248,113,113,.7); }
.iexel-match-correction .iexel-button--danger-secondary:hover { color: #fff; background: rgba(153,27,27,.55); border-color: #fca5a5; }
.iexel-match-correction-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 18px; min-width: 0; }
.iexel-match-correction-form label, .iexel-match-correction-form fieldset { display: grid; gap: 7px; min-width: 0; margin: 0; color: #fff; font-weight: 800; }
.iexel-match-correction-form label small { color: var(--iexel-muted); font-weight: 700; }
.iexel-match-correction-form select, .iexel-match-correction-form input[type="number"], .iexel-match-correction-form textarea { width: 100%; max-width: 100%; min-width: 0; min-height: 48px; padding: 11px 12px; box-sizing: border-box; color: #fff; background: #0b1f3a; border: 2px solid #64748b; border-radius: 10px; font: inherit; }
.iexel-match-correction-form select option { color: #111827; background: #fff; }
.iexel-match-correction-form select:focus, .iexel-match-correction-form input:focus, .iexel-match-correction-form textarea:focus { border-color: var(--iexel-gold); outline: 3px solid rgba(245,195,66,.55); outline-offset: 2px; }
.iexel-match-correction-form fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; }
.iexel-match-correction-form fieldset legend { padding: 0 5px; }
.iexel-match-correction-form fieldset label { display: flex; align-items: center; gap: 8px; }
.iexel-match-correction-form fieldset.iexel-goal-mode-cards { border: 0; padding: 0; }
.iexel-match-correction-form fieldset label.iexel-goal-mode-card { align-items: stretch; gap: 0; }
.iexel-match-correction-form .is-wide, .iexel-match-correction-form__actions { grid-column: 1 / -1; }
.iexel-match-correction-form__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.iexel-match-correction-form__actions > * { min-height: 48px; }
.iexel-match-correction .iexel-button-danger { color: #fff7f7; background: #7f1d1d; border-color: #f87171; }
.iexel-match-correction .iexel-button-danger:hover { color: #fff; background: #991b1b; border-color: #fca5a5; }
.iexel-match-correction-impact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.iexel-match-correction-impact > div { display: grid; gap: 5px; min-width: 0; padding: 14px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; box-sizing: border-box; }
.iexel-match-correction-impact span { color: var(--iexel-muted); font-size: .78rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.iexel-match-correction-impact strong { color: #fff; overflow-wrap: anywhere; }
.iexel-match-correction-warning { padding: 13px 14px; color: #fee2e2 !important; background: rgba(127,29,29,.24); border-left: 4px solid #f87171; border-radius: 8px; }
@container iexel-match-correction (max-width: 600px) {
	.iexel-match-correction-hero, .iexel-match-correction-form, .iexel-match-correction-impact { grid-template-columns: minmax(0, 1fr); }
	.iexel-match-correction-score { text-align: left; }
	.iexel-match-correction-form .is-wide, .iexel-match-correction-form__actions { grid-column: auto; }
}
@container iexel-match-correction (max-width: 390px) {
	.iexel-match-correction-hero, .iexel-match-correction-card { padding: 18px; }
	.iexel-match-correction-goal { grid-template-columns: 44px minmax(0, 1fr); }
	.iexel-match-correction-goal__actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
	.iexel-match-correction-goal__actions .iexel-button { width: 100%; box-sizing: border-box; text-align: center; }
	.iexel-match-correction-form__actions { display: grid; grid-template-columns: 1fr; }
	.iexel-match-correction-form__actions > * { width: 100%; box-sizing: border-box; text-align: center; }
	.iexel-completed-match-actions__recovery-buttons { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
	.iexel-completed-match-actions { padding: 18px; }
	.iexel-completed-match-actions__primary { grid-template-columns: 1fr; }
	.iexel-completed-match-actions__recovery { text-align: center; }
	.iexel-completed-match-actions__recovery-buttons { grid-template-columns: 1fr; }
}
.iexel-match-report-note-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.iexel-match-report-note-grid .is-wide { grid-column: 1 / -1; }
.iexel-match-report-note-grid label, .iexel-match-report-potm label, .iexel-match-report-rating-fields label { display: grid; gap: 7px; color: #fff; font-weight: 850; }
.iexel-match-report-note-grid textarea, .iexel-match-report-note-grid input, .iexel-match-report-rating-fields textarea { width: 100%; max-width: 100%; min-width: 0; min-height: 48px; padding: 11px 12px; box-sizing: border-box; color: #fff; background: rgba(255,255,255,.07); border: 1px solid var(--iexel-border); border-radius: 9px; font: inherit; }
.iexel-match-report-rating-fields select, .iexel-match-report-potm select { width: 100%; max-width: 100%; min-width: 0; min-height: 48px; padding: 11px 38px 11px 12px; box-sizing: border-box; color: #f8fafc; background-color: #0b1f3a; border: 2px solid #64748b; border-radius: 10px; font: inherit; font-weight: 700; }
.iexel-match-report-rating-fields select option, .iexel-match-report-potm select option { color: #111827; background-color: #ffffff; }
.iexel-match-report-rating-fields select:disabled, .iexel-match-report-potm select:disabled { color: #e2e8f0; background-color: #132a47; border-color: #475569; opacity: 1; }
.iexel-match-report-note-grid textarea:focus, .iexel-match-report-note-grid input:focus, .iexel-match-report-rating-fields textarea:focus { border-color: var(--iexel-gold); outline: 2px solid rgba(245,195,66,.3); outline-offset: 2px; }
.iexel-match-report-rating-fields select:focus, .iexel-match-report-rating-fields select:focus-visible, .iexel-match-report-potm select:focus, .iexel-match-report-potm select:focus-visible { border-color: var(--iexel-gold); outline: 3px solid rgba(245,195,66,.55); outline-offset: 2px; }
.iexel-match-report-note-grid p { min-height: 44px; margin: 0; padding: 12px; white-space: normal; overflow-wrap: anywhere; background: rgba(255,255,255,.04); border-radius: 9px; }
.iexel-match-report-rating-list { display: grid; gap: 14px; }
.iexel-match-report-rating-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: stretch; min-width: 0; padding: 16px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 13px; }
.iexel-match-report-player { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 14px; align-items: center; min-width: 0; }
.iexel-match-report-player > span { padding: 10px 4px; color: var(--iexel-midnight); background: var(--iexel-gold); border-radius: 8px; font-weight: 900; text-align: center; }
.iexel-match-report-player > div { min-width: 0; }
.iexel-match-report-player strong, .iexel-match-report-rating-fields strong, .iexel-match-report-potm strong { display: block; color: #fff; overflow-wrap: anywhere; }
.iexel-match-report-stat-label-short { display: none; }
.iexel-match-report-player small, .iexel-match-report-rating-fields span { color: var(--iexel-muted); }
.iexel-match-report-rating-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 8px; min-width: 0; margin: 0; }
.iexel-match-report-rating-stats div { display: grid; grid-template-rows: minmax(2.5em, auto) auto; align-content: space-between; min-width: 0; height: 100%; padding: 10px 8px; box-sizing: border-box; text-align: center; background: rgba(255,255,255,.04); border-radius: 8px; }
.iexel-match-report-rating-list dt { align-self: start; font-size: .64rem; line-height: 1.25; letter-spacing: .035em; overflow-wrap: normal; word-break: normal; hyphens: none; }
.iexel-match-report-rating-list dd { align-self: end; margin: 5px 0 0; color: #fff; font-weight: 900; line-height: 1.2; overflow-wrap: anywhere; }
.iexel-match-report-rating-fields { display: grid; grid-template-columns: minmax(130px, 170px) minmax(0, 1fr); align-items: stretch; gap: 12px; min-width: 0; height: 100%; }
.iexel-match-report-rating-field { min-width: 0; }
/* Coach Workspace MVP visual close-out (A1): the read-only numeric Rating
   value (e.g. "8") previously inherited the same plain white
   ".iexel-match-report-rating-fields strong" treatment as every other bold
   label on this card (Player name, POTM name), so it visually blended in.
   Only the VALUE gets emphasis -- the "Rating" label text itself, and every
   other label on the card, is untouched. Compound selector (0,2,1) to
   safely outrank the existing ".iexel-match-report-rating-fields strong"
   rule (0,1,1) regardless of source order. The empty/"Not recorded" state
   (rendered as an em dash, see MatchRatingsCard.php) is deliberately kept
   in the ordinary white/muted treatment via .is-not-recorded, not accented
   -- there is no rating value to emphasise. */
.iexel-match-report-rating-fields strong.iexel-match-report-rating-value {
	color: var(--iexel-gold-bright);
	font-size: 1.5rem;
}
.iexel-match-report-rating-fields strong.iexel-match-report-rating-value.is-not-recorded {
	color: var(--iexel-muted);
	font-size: 1rem;
	font-weight: 700;
}
.iexel-match-report-rating-field--note { min-width: 0; }
.iexel-match-report-rating-field--note textarea { min-height: 96px; resize: none; }
.iexel-match-report-potm { display: grid; grid-template-columns: minmax(180px, .4fr) minmax(240px, 1fr); gap: 14px; align-items: center; margin-top: 18px; padding: 18px; background: rgba(245,195,66,.08); border: 1px solid rgba(245,195,66,.32); border-radius: 12px; }
.iexel-match-report-potm label small { color: var(--iexel-muted); font-size: .75rem; font-weight: 700; text-transform: none; }
.iexel-match-report-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.iexel-match-report-actions h2 { margin-bottom: 4px; }
.iexel-match-report-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.iexel-match-report-buttons button, .iexel-match-report-buttons a { min-height: 48px; padding: 12px 18px; border: 1px solid var(--iexel-gold); border-radius: 10px; color: var(--iexel-midnight); background: var(--iexel-gold); font: inherit; font-weight: 900; text-decoration: none; cursor: pointer; }
.iexel-match-report-buttons .is-secondary { color: #fff; background: transparent; }
.iexel-match-report-empty { padding: 18px; border: 1px dashed var(--iexel-border); border-radius: 10px; }
.iexel-match-report-notice-list { margin: 0; padding-left: 20px; }
.iexel-match-report-notice-list li + li { margin-top: 5px; }

@media (max-width: 1100px) {
	.iexel-match-report-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@container iexel-match-report (max-width: 760px) {
	.iexel-match-report-hero { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 680px) {
	.iexel-event-hero-card > .iexel-countdown-card strong { display: block; width: 100%; max-width: 100%; font-size: clamp(1rem, 7.2vw, 1.85rem); line-height: 1.05; letter-spacing: 0; overflow-wrap: anywhere; text-align: center; }
	.iexel-participant-match__hero { padding: 25px 15px; }
	.iexel-participant-match__score { gap: 8px; }
	.iexel-participant-match__numbers { gap: 5px; }
	.iexel-participant-match__numbers b { font-size: clamp(2.1rem, 12vw, 3.1rem); }
	.iexel-participant-match__team { font-size: clamp(.78rem, 3.8vw, 1rem); }
	.iexel-participant-match__story-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iexel-participant-match__story-metrics div { padding: 11px 2px; text-align: center; }
	.iexel-participant-match__story-metrics dt { font-size: clamp(.46rem, 2.15vw, .62rem); letter-spacing: 0; overflow-wrap: normal; white-space: nowrap; }
	.iexel-participant-match__story-metrics dd { font-size: clamp(1.4rem, 7vw, 1.7rem); }
	.iexel-participant-match__timeline li { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 5px 8px; padding: 11px 10px; }
	.iexel-participant-match__timeline-visuals { grid-column: 1; grid-row: 1; }
	.iexel-participant-match__timeline-avatar, .iexel-participant-match__timeline-team { width: 42px; height: 42px; flex-basis: 42px; font-size: 1.1rem; }
	.iexel-participant-match__timeline-visuals > * + * { margin-left: -17px; }
	.iexel-participant-match__timeline-content { display: contents; }
	.iexel-participant-match__timeline time { grid-column: 2; grid-row: 1; padding: 0 7px; }
	.iexel-participant-match__timeline-meta strong { grid-column: 3; grid-row: 1; min-width: 42px; min-height: 30px; padding: 0 7px; font-size: 1rem; }
	.iexel-participant-match__timeline p { grid-column: 2 / -1; grid-row: 2; }
	.iexel-participant-match__achievements li { flex: 1 1 145px; border-radius: 13px; }
	.iexel-match-report-grid, .iexel-match-report-hero, .iexel-match-report-note-grid, .iexel-match-report-lineups, .iexel-match-report-rating-card, .iexel-match-report-potm { grid-template-columns: 1fr; }
	.iexel-match-report-card--wide, .iexel-match-report-note-grid .is-wide, .iexel-match-report-rating-fields { grid-column: auto; }
	.iexel-match-report-hero { padding: 22px; }
	/* Coach Workspace MVP visual close-out, Batch A final polish (A-F1):
	   at this breakpoint each of the two .iexel-match-report-hero dl tiles
	   is only ~150px wide inside the dl's own max-width:340px box (see the
	   later @media (max-width:680px) block below) -- too narrow for values
	   like "EBBSFLEET UNITED" or "Tuesday, 1 September 2026" to wrap by
	   whole word, so the existing overflow-wrap:break-word safety net on
	   .iexel-match-report-hero dd (needed so an unexpectedly long single
	   value never overflows the card) was forced to break "EBBSFLEET" and
	   "September" mid-word instead. Collapsing to one column gives each
	   tile the tile's full ~300px width, which is enough room for every
	   real Competition/Opponent/Date/Kick Off value in this dataset to wrap
	   by whole word -- word-break/overflow-wrap themselves are untouched,
	   this only changes how much width each value has to work with. */
	.iexel-match-report-hero dl { grid-template-columns: 1fr; }
	.iexel-match-report-hero-venue { grid-column: auto; }
	.iexel-match-report-leaders { grid-template-columns: 1fr; }
	.iexel-match-report-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-match-report-rating-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-match-report-player > div { margin-left: 8px; }
	.iexel-match-report-stat-label-full { display: none; }
	.iexel-match-report-stat-label-short { display: inline; }
	.iexel-match-report-rating-fields { grid-template-columns: 1fr; }
	.iexel-match-report-actions { align-items: stretch; flex-direction: column; }
	.iexel-match-report-buttons { justify-content: stretch; }
	.iexel-match-report-buttons > * { flex: 1 1 100%; text-align: center; }
}

@media (max-width: 360px) {
	.iexel-participant-match__story { padding: 18px 12px; }
}

@media print {
	.iexel-match-report, .iexel-match-report-card, .iexel-match-report-hero { color: #111; background: #fff !important; box-shadow: none; }
	.iexel-match-report-card, .iexel-match-report-hero { break-inside: avoid; border: 1px solid #888; }
	.iexel-match-report-card h2, .iexel-match-report-card h3, .iexel-match-report-card strong, .iexel-match-report-hero dd, .iexel-match-report-score strong { color: #111; }
	.iexel-match-report-buttons, .iexel-match-mode-action-menu, .iexel-match-mode-lineup-shortcut { display: none !important; }
}
.iexel-match-details-form-card { max-width: 760px; margin: 0 auto; }
.iexel-match-details-form-card h1 { margin: 7px 0 20px; color: var(--iexel-white); }
.iexel-match-details-form { display: grid; gap: 18px; }
.iexel-match-details-form > label { display: grid; gap: 7px; }
.iexel-match-details-form label > span, .iexel-match-details-form legend { color: var(--iexel-color-on-dark, #ffffff); font-weight: 800; }
.iexel-match-details-form input[type="text"] { width: 100%; min-height: 46px; padding: 11px 13px; box-sizing: border-box; color: var(--iexel-white); background: rgba(255,255,255,.055); border: 1px solid var(--iexel-border); border-radius: 10px; font: inherit; }
.iexel-match-details-form fieldset { display: flex; flex-wrap: wrap; gap: 14px; padding: 16px; border: 1px solid var(--iexel-border); border-radius: 12px; }
.iexel-match-details-form fieldset label { display: flex; align-items: center; gap: 7px; color: var(--iexel-white); }
.iexel-match-details-errors { padding: 14px 16px; margin-bottom: 18px; color: #fecaca; background: rgba(239,68,68,.13); border: 1px solid rgba(239,68,68,.45); border-radius: 11px; }
.iexel-team-match-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.iexel-team-match-details-grid label { display: grid; gap: 8px; }
.iexel-team-match-location { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; color: var(--iexel-color-on-dark, #ffffff); }
.iexel-team-match-location > strong { flex-basis: 100%; color: var(--iexel-white); }
.iexel-team-match-location label { display: flex; align-items: center; gap: 7px; padding: 10px 12px; background: rgba(255,255,255,.04); border: 1px solid var(--iexel-border); border-radius: 10px; }
@media (max-width: 680px) { .iexel-team-match-details-grid { grid-template-columns: 1fr; } }
/* Batch 1A: greater visual authority for the fixture identity -- the
   dominant piece of information in the hero -- plus a distinct pill
   treatment for "vs" so it reads as a genuine fixture marker rather than
   plain text, per Product Owner direction ("more imposing... a football
   fixture, not a generic information card"). Still content-safe: font-size
   is fluid (clamp), not a fixed oversized value, and the existing
   max-width:560px stacked/inline breakpoint is unchanged. */
.iexel-event-hero-fixture { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 16px; margin: 10px 0 16px; text-align: center; overflow-wrap: anywhere; }
.iexel-event-hero-fixture-team { color: var(--iexel-white); font-size: clamp(1.2rem, 3.4vw, 2rem); font-weight: 900; line-height: 1.15; letter-spacing: .01em; overflow-wrap: break-word; word-break: normal; }
.iexel-event-hero-fixture-vs { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 2.1em; padding: .2em .55em; border: 1px solid var(--iexel-gold-bright, var(--iexel-gold)); border-radius: 999px; background: rgba(203,161,53,.16); color: var(--iexel-gold-bright, var(--iexel-gold)); font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

/* Compact metadata strip: a real grid (not flex-wrap) so narrow widths
   consistently pair Date+Meet on one row and Kick-off+Venue on the next,
   rather than each value forming its own tall block. auto-fit lets wider
   viewports use more than two columns without a second breakpoint. */
.iexel-event-hero-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px 20px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(203,161,53,.28); }
.iexel-event-hero-info-item { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.iexel-event-hero-info-label { color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.iexel-event-hero-info-value { color: var(--iexel-white); font-size: .92rem; font-weight: 800; overflow-wrap: anywhere; }
.iexel-event-hero-info-value.is-date { white-space: nowrap; }

/* Batch 2: Venue gets its own full-width row below Date/Meet/Kick-off
   rather than competing for a quarter of a grid cell -- long Venue names
   now have the full hero width to wrap into, with room for the existing
   View Map/Get Directions actions alongside. */
.iexel-event-hero-venue { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(203,161,53,.28); min-width: 0; }
.iexel-event-hero-venue-name { color: var(--iexel-white); font-size: 1rem; font-weight: 850; overflow-wrap: anywhere; }
.iexel-event-hero-venue-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.iexel-event-hero-venue-actions .iexel-button { min-height: 40px; padding: 8px 14px; }

/* Future Match composition refinement: the Coach's own response to a
   future Match now renders inline here (immediately below Venue, above
   the countdown/status badge) rather than as a second, now-removed
   standalone "Your Response" card further down the page -- see
   EventHeroCard::response_block() and EventResponseActionsCard's new
   $compact parameter. Borrows the exact same "collar divider" pattern
   .iexel-event-hero-venue above already established (border-top/gap/
   margin-top/padding-top), so no new visual language is introduced. Only
   .iexel-response-actions' default full-width stacked button layout is
   overridden, scoped to this hero instance via the descendant selector --
   the pre-existing standalone Parent/Player response card elsewhere on
   the page keeps its original stacked layout untouched. */
.iexel-event-hero-response { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(203,161,53,.28); min-width: 0; }
.iexel-event-hero-response .iexel-response-actions { flex-direction: row; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
.iexel-event-hero-response .iexel-response-actions form { flex: 1 1 140px; margin: 0; }

@media (max-width: 560px) {
	.iexel-event-hero-response { text-align: center; }
	.iexel-event-hero-fixture { flex-direction: column; gap: 6px; }
	/* Final acceptance correction: this strip carries exactly three items
	   (Date / Meet-Arrive / Kick-off -- Venue is its own full-width block
	   below). A forced 2-column grid left Kick-off orphaned alone on its
	   own row; a real 3-column grid keeps them balanced on one row at
	   every width down to 320px, wrapping each value's own text rather
	   than orphaning a whole item. */
	.iexel-event-hero-info { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 10px; text-align: center; }
	.iexel-event-hero-info.has-2-items,
	.iexel-event-hero-info.is-non-match { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
	.iexel-event-hero-info-item { align-items: center; }
	.iexel-event-hero-venue { text-align: center; align-items: center; }
	.iexel-event-hero-venue-actions { justify-content: center; }
}
.iexel-event-card-match { display: grid; gap: 8px; margin: 10px 0 14px; padding: 12px 14px; background: rgba(255,255,255,.045); border: 1px solid var(--iexel-border); border-radius: 11px; }
.iexel-event-card-match > strong { color: var(--iexel-white); font-size: 1.02rem; overflow-wrap: anywhere; }
.iexel-event-card-match > div { display: flex; flex-wrap: wrap; gap: 7px; }
.iexel-event-card-match span { padding: 4px 8px; color: var(--iexel-gold); border: 1px solid var(--iexel-border); border-radius: 999px; font-size: .72rem; font-weight: 850; }
.iexel-portal-notice { width: 100%; padding: 14px 16px; margin: 0 0 16px; box-sizing: border-box; border: 2px solid; border-radius: 11px; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; box-shadow: 0 8px 20px rgba(0,0,0,.16); }
.iexel-portal-notice.is-success { color: #f0fdf4; background: #14532d; border-color: #4ade80; }
.iexel-portal-notice.is-error { color: #fff1f2; background: #4c0519; border-color: #fb7185; }
.iexel-portal-notice.is-warning { color: #fffbeb; background: #451a03; border-color: #fbbf24; }
.iexel-portal-notice:focus-visible { outline: 3px solid var(--iexel-gold); outline-offset: 3px; }
/* Batch 1B: same asymmetric-border-left-inset-4px-further-left issue
   confirmed and fixed on .iexel-os-card in Batch 1A, found here on this
   separate card (CoachAvailabilityUpdateForm's own wrapper, used by the
   Team Availability section) during the lower-card gutter re-audit --
   fixed the same way, an inset box-shadow instead of a wider left border. */
.iexel-coach-availability-update { display: grid; gap: 16px; margin-bottom: 18px; padding: 18px; background: rgba(255,255,255,.035); border: 1px solid var(--iexel-border); border-radius: 13px; box-shadow: inset 4px 0 0 0 var(--iexel-gold); }
.iexel-coach-availability-update h3 { margin: 4px 0 6px; color: var(--iexel-white); }
.iexel-coach-availability-update p { margin: 0; color: var(--iexel-muted); }
.iexel-coach-availability-fields { display: grid; grid-template-columns: minmax(180px,1.4fr) minmax(180px,1fr) auto; align-items: end; gap: 12px; min-width: 0; }
.iexel-coach-availability-fields label { display: grid; gap: 7px; min-width: 0; }
.iexel-coach-availability-fields label > span { color: var(--iexel-color-on-dark, #ffffff); font-size: 12px; font-weight: 900; }
/* Batch 1B: native <select> mobile containment -- a bare <select> with no
   explicit width commonly renders at its content's (the longest option's)
   intrinsic width in several browsers rather than filling its grid cell,
   which is what let the closed control spill past the card edge at 320px.
   Still a plain <select>, per explicit product direction -- a reusable
   OS-themed replacement is tracked separately, not built here. */
.iexel-coach-availability-fields select { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; min-height: 46px; padding: 10px 12px; color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.06); border: 1px solid var(--iexel-border); border-radius: 8px; }
/* Coach Workspace Batch B, Product Owner acceptance fix (Fix 1): the closed
   select's own light text (var(--iexel-color-on-dark)) is correct against
   its own dark translucent background above, but <option> elements inherit
   that same light `color` while the native option/listbox POPUP itself
   always renders on the browser/OS's own light system background,
   regardless of any styling on the closed <select> -- producing white text
   on a white popup, unreadable until hovered/selected (the browser's own
   highlight colour is what restores contrast on hover). This exact
   foreground/background pairing for <option> is already the established
   Club OS fix for every other dark-surface native select in this file
   (.iexel-live-control-field, .iexel-goal-attribution-form,
   .iexel-substitution-form, .iexel-match-correction-form,
   .iexel-match-report-rating-fields/.iexel-match-report-potm,
   .iexel-team-player-selector) -- reused verbatim here, not invented, and
   scoped to this one existing class rather than a global <select> rule. */
.iexel-coach-availability-fields select option { color: #111827; background: #ffffff; }
.iexel-coach-availability-fields .iexel-button { justify-content: center; min-height: 46px; }
.iexel-event-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 10px; min-width: 0; }
.iexel-event-rsvp-form { display: flex; min-width: 0; margin: 0; }
.iexel-event-actions .iexel-event-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 11px 14px; box-sizing: border-box; border: 1px solid transparent; border-radius: 10px; font: inherit; font-weight: 800; line-height: 1.2; text-align: center; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.iexel-event-actions .iexel-event-button.secondary { color: var(--iexel-white); background: rgba(255,255,255,.055); border-color: var(--iexel-border); }
.iexel-event-actions .iexel-event-button:hover { transform: translateY(-1px); border-color: var(--iexel-gold); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
.iexel-event-actions .iexel-event-button:focus-visible { outline: 3px solid var(--iexel-gold); outline-offset: 3px; }
.iexel-event-actions .iexel-event-button.is-selected { color: var(--iexel-midnight); background: var(--iexel-gold); border-color: var(--iexel-gold); }
.iexel-event-lifecycle-card { display: grid; gap: 10px; padding: 18px; color: var(--iexel-white); background: rgba(255,255,255,.04); border: 1px solid var(--iexel-border); border-radius: 14px; }
.iexel-event-lifecycle-card h3, .iexel-event-lifecycle-card p { margin: 0; }
.iexel-event-lifecycle-card p { color: var(--iexel-muted); }
.iexel-event-lifecycle-actions { display: grid; gap: 10px; }
.iexel-event-lifecycle-confirmation { padding: 12px; background: rgba(3,14,31,.36); border: 1px solid var(--iexel-border); border-radius: 10px; }
.iexel-event-lifecycle-confirmation summary { color: var(--iexel-color-on-dark, #ffffff); font-weight: 900; cursor: pointer; }
.iexel-event-lifecycle-confirmation[open] { display: grid; gap: 10px; }
.iexel-event-lifecycle-confirmation form, .iexel-event-lifecycle-confirmation label { display: grid; gap: 7px; }
.iexel-event-lifecycle-confirmation label > span { color: var(--iexel-color-on-dark, #ffffff); font-size: 12px; font-weight: 900; }
.iexel-event-lifecycle-confirmation textarea { width: 100%; min-height: 84px; box-sizing: border-box; resize: vertical; }
@media (max-width: 760px) { .iexel-coach-availability-fields { grid-template-columns: 1fr; } .iexel-coach-availability-fields .iexel-button { width: 100%; } }
@media (max-width: 620px) { .iexel-event-actions { grid-template-columns: 1fr; } .iexel-portal-notice { padding: 13px 14px; } .iexel-coach-availability-update { padding: 15px; } }

/* ==================================================
PLAYER STATISTICS
================================================== */

.iexel-player-statistics-page { display: grid; gap: 22px; min-width: 0; container-type: inline-size; }
.iexel-player-statistics-hero,
.iexel-player-statistics-section,
.iexel-player-statistics-filters,
.iexel-player-statistics-quality { min-width: 0; padding: 28px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-left: 5px solid var(--iexel-gold); border-radius: 20px; box-shadow: var(--iexel-shadow-medium); box-sizing: border-box; }
.iexel-player-statistics-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 24px; align-items: start; }
/* Final density + visual consistency polish: bring Coach Player Statistics
   primary outer modules (Hero, Filters) into the same gold-TOP hierarchy
   already established on Team Statistics/Event Detail -- ".iexel-player-
   statistics-section" is never actually rendered by any component (dead
   selector in the shared base rule above) so it's deliberately omitted
   here. Data Quality gets its own equivalent fix further down (it has its
   own dedicated warning-palette override rule, not this shared one). */
.iexel-player-statistics-hero,
.iexel-player-statistics-filters {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}
.iexel-player-statistics-hero h1 { margin: 8px 0 10px; color: var(--iexel-white); font-size: clamp(2rem, 5vw, 3.7rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-player-statistics-hero p { color: var(--iexel-muted); line-height: 1.6; }
.iexel-player-statistics-back { display: inline-flex; margin-bottom: 20px; color: var(--iexel-gold-bright); font-weight: 850; text-decoration: none; }
.iexel-player-statistics-back:hover { text-decoration: underline; }
.iexel-player-statistics-identity { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-player-statistics-identity div { min-width: 0; padding: 14px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-player-statistics-identity dt { color: var(--iexel-muted); font-size: .72rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.iexel-player-statistics-identity dd { margin: 6px 0 0; color: var(--iexel-white); font-weight: 850; overflow-wrap: anywhere; }
.iexel-player-statistics-context-note { grid-column: 1 / -1; margin: 0; font-size: .82rem; }
.iexel-player-statistics-section h2,
.iexel-player-statistics-filters h2,
.iexel-player-statistics-quality h2 { margin: 5px 0 20px; color: var(--iexel-white); }
.iexel-player-statistics-section h3 { margin: 28px 0 14px; color: var(--iexel-white); }
.iexel-player-statistics-headlines { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.iexel-player-statistics-metric { min-width: 0; padding: 18px 12px; text-align: center; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; }
.iexel-player-statistics-metric span { display: block; min-height: 2.4em; color: var(--iexel-muted); font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.iexel-player-statistics-metric strong { display: block; margin-top: 7px; color: var(--iexel-gold-bright); font-size: clamp(1.45rem, 3vw, 2rem); overflow-wrap: anywhere; }
.iexel-player-statistics-metric.is-average-rating strong { font-size: clamp(1rem, 2.2vw, 1.45rem); }
.iexel-player-statistics-additional { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-player-statistics-additional div { min-width: 0; padding: 14px 10px; text-align: center; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; }
.iexel-player-statistics-additional dt { min-height: 2.5em; color: var(--iexel-muted); font-size: .7rem; font-weight: 800; }
.iexel-player-statistics-additional dd { margin: 8px 0 0; color: var(--iexel-white); font-size: 1.4rem; font-weight: 900; }
.iexel-player-statistics-attendance-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.iexel-player-statistics-attendance-grid > div { min-width: 0; padding: 16px 10px; text-align: center; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-player-statistics-attendance-grid span { display: block; min-height: 2.4em; color: var(--iexel-muted); font-size: .72rem; font-weight: 850; }
.iexel-player-statistics-attendance-grid strong { display: block; margin-top: 7px; color: var(--iexel-gold-bright); font-size: 1.55rem; overflow-wrap: anywhere; }
.iexel-player-statistics-help { margin: 15px 0 0; color: var(--iexel-muted); font-size: .85rem; line-height: 1.55; }
.iexel-player-statistics-filters form { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); gap: 12px; align-items: end; }
.iexel-player-statistics-filters label { display: grid; min-width: 0; gap: 7px; }
.iexel-player-statistics-filters label > span { color: var(--iexel-color-on-dark, #ffffff); font-size: .78rem; font-weight: 850; }
.iexel-player-statistics-filters input,
.iexel-player-statistics-filters select { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; box-sizing: border-box; color: var(--iexel-white); background: var(--iexel-midnight-2); border: 1px solid var(--iexel-border); border-radius: 10px; font: inherit; }
.iexel-player-statistics-filter-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; }
.iexel-player-statistics-filter-actions .iexel-button { min-height: 44px; box-sizing: border-box; }
.iexel-player-statistics-history { display: grid; gap: 14px; min-width: 0; }
.iexel-player-statistics-match { min-width: 0; padding: 18px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.1); border-radius: 15px; }
.iexel-player-statistics-match header { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; min-width: 0; }
.iexel-player-statistics-match header > div { min-width: 0; }
.iexel-player-statistics-match time { color: var(--iexel-gold-bright); font-size: .78rem; font-weight: 850; }
.iexel-player-statistics-match h3 { margin: 5px 0; overflow-wrap: anywhere; }
.iexel-player-statistics-potm { flex: 0 1 auto; padding: 7px 10px; color: var(--iexel-midnight); background: var(--iexel-gold-bright); border-radius: 999px; font-size: .7rem; font-weight: 900; text-align: center; }
.iexel-player-statistics-match-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }
.iexel-player-statistics-match-meta span { max-width: 100%; padding: 5px 8px; color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.05); border-radius: 999px; font-size: .72rem; overflow-wrap: anywhere; }
.iexel-player-statistics-match-stats { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; margin: 0; }
.iexel-player-statistics-match-stats div { min-width: 0; padding: 10px 7px; text-align: center; background: rgba(0,0,0,.14); border-radius: 9px; }
.iexel-player-statistics-match-stats dt { color: var(--iexel-muted); font-size: .66rem; font-weight: 800; overflow-wrap: anywhere; }
.iexel-player-statistics-match-stats dd { margin: 5px 0 0; color: var(--iexel-white); font-weight: 900; overflow-wrap: anywhere; }
.iexel-player-statistics-report-link { display: inline-flex; margin-top: 14px; color: var(--iexel-gold-bright); font-weight: 850; }
.iexel-player-statistics-empty { margin: 0; padding: 18px; color: var(--iexel-muted); background: rgba(255,255,255,.035); border-radius: 12px; }
/* Final density + visual consistency polish: gold-top frame, same as
   Team Statistics' equivalent fix -- warning colour palette untouched. */
.iexel-player-statistics-quality { color: #fff7d6; background: #3b2603; border: 2px solid #fbbf24; border-top-width: 4px; }
.iexel-player-statistics-quality .iexel-section-kicker,
.iexel-player-statistics-quality h2 { color: #fde68a; }
.iexel-player-statistics-quality ul { margin: 0; padding-left: 20px; }
.iexel-player-statistics-quality li { overflow-wrap: anywhere; }
.iexel-player-statistics-quality li + li { margin-top: 8px; }
/* Product Owner Data Quality reconciliation: warnings are grouped by
   canonical Match -- human match identity first (reused from Team
   Statistics' matchIdentity(), now resolved from the authorised Team
   Match context, not this player's own filtered history), one set of
   contextual recovery actions per group (rendered inline in the header
   row, same placement as Team Statistics) rather than per warning, and
   NO raw machine code or Match ID rendered anywhere in this card --
   codes stay internal-only. Mirrors the established, already-accepted
   Team Statistics Data Quality grouped-card visual language (same
   structure/values, this page's own class prefix). */
.iexel-player-statistics-quality-groups { display: grid; gap: 14px; margin-top: 16px; }
.iexel-player-statistics-quality-group { padding: 14px 16px; background: rgba(0,0,0,.16); border: 1px solid rgba(251,191,36,.32); border-radius: 12px; overflow: hidden; }
.iexel-player-statistics-quality-group-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; }
.iexel-player-statistics-quality-match { display: block; color: #fde68a; overflow-wrap: anywhere; }
.iexel-player-statistics-quality-count { display: block; margin-top: 2px; color: #fff7d6; opacity: .78; font-size: .78rem; font-weight: 700; }
.iexel-player-statistics-quality-group ul { margin: 12px 0 0; }
.iexel-player-statistics-quality-actions { display: flex; flex-wrap: wrap; flex: 0 0 auto; gap: 8px; }
.iexel-player-statistics-quality-action { display: inline-flex; flex: 0 0 auto; padding: 7px 13px; color: #3b2603; background: #fbbf24; border-radius: 999px; font-size: .72rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
.iexel-player-statistics-quality-action:hover,
.iexel-player-statistics-quality-action:focus-visible { background: #fde68a; }
.iexel-team-member-statistics { margin-left: auto; padding: 8px 10px; color: var(--iexel-gold-bright); border: 1px solid var(--iexel-border); border-radius: 9px; font-size: .75rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.iexel-player-statistics-page a:focus-visible,
.iexel-player-statistics-page button:focus-visible,
.iexel-player-statistics-page input:focus-visible,
.iexel-player-statistics-page select:focus-visible,
.iexel-team-member-statistics:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }

@media (max-width: 1100px) {
	.iexel-player-statistics-headlines { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iexel-player-statistics-additional { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.iexel-player-statistics-attendance-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iexel-player-statistics-filters form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iexel-player-statistics-match-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
	.iexel-player-statistics-hero { grid-template-columns: 1fr; padding: 22px; }
	.iexel-player-statistics-context-note { grid-column: auto; }
	.iexel-player-statistics-additional { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-player-statistics-filters form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-player-statistics-section,
	.iexel-player-statistics-filters,
	.iexel-player-statistics-quality { padding: 20px; }
	.iexel-team-member-row { flex-wrap: wrap; }
	.iexel-team-member-statistics { flex-basis: 100%; margin-left: 0; text-align: center; }
}

@media (max-width: 520px) {
	.iexel-player-statistics-headlines,
	.iexel-player-statistics-attendance-grid,
	.iexel-player-statistics-filters form,
	.iexel-player-statistics-match-stats,
	.iexel-player-statistics-identity { grid-template-columns: 1fr; }
	.iexel-player-statistics-filter-actions { flex-direction: column; }
	.iexel-player-statistics-filter-actions > * { width: 100%; text-align: center; }
	.iexel-player-statistics-match header { flex-direction: column; }
	.iexel-player-statistics-potm { align-self: flex-start; }
}

/* Player Statistics dashboard polish */
.iexel-player-statistics-page,
.iexel-player-statistics-page * { min-width: 0; box-sizing: border-box; }

/* Team Statistics */
.iexel-team-statistics-page,
.iexel-team-statistics-page * { min-width: 0; box-sizing: border-box; }
.iexel-team-statistics-page { display: grid; gap: 22px; width: 100%; overflow: hidden; container-type: inline-size; }
.iexel-team-statistics-hero,
.iexel-team-statistics-section,
.iexel-team-statistics-quality { width: 100%; padding: 28px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-left: 5px solid var(--iexel-gold); border-radius: 20px; box-shadow: var(--iexel-shadow-medium); overflow: hidden; }
.iexel-team-statistics-section { box-sizing: border-box; min-width: 0; max-width: 100%; }
/* Final MVP polish: the hero's accepted gold "performance" glow was a
   hardcoded rgba() triplet, not derived from a canonical brand/accent
   token. color-mix() is already an established technique in this
   codebase (see member-experience.css) -- using it here to derive the
   same visual tint from var(--iexel-gold-bright) (the closest existing
   token to the original hardcoded value) costs nothing visually and
   removes the hardcoded colour, without inventing any new branding
   architecture. The base gradient's #07192f is left untouched: it is a
   long-established, widely-shared hero constant (Team Events Next,
   Player Statistics heroes, etc.) well outside this batch's scope.
   Final hero frame correction: the shared base rule above (line 5561)
   still gives every one of .iexel-team-statistics-hero/-section/-quality
   a heavy 5px gold LEFT rail; Section and Quality were already converted
   to a gold-TOP frame by earlier scoped rules further down this
   stylesheet, but the Hero itself was never touched -- this was a real
   gap, not intentional. ".iexel-team-statistics-hero" is exclusive to
   TeamStatisticsHeroCard.php (confirmed: no other component renders this
   class -- the Player/Parent "Team Stats" hero uses an entirely separate
   class, ".iexel-player-team-statistics-heading", with its own
   independent rule), so no role-marker scoping is needed here at all.
   Border-only change: the tint/background above is untouched. */
.iexel-team-statistics-hero {
	background: radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--iexel-gold-bright) 16%, transparent), transparent 28%), linear-gradient(135deg, #07192f, var(--iexel-navy));
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

/* Restrained performance/achievement tint extended to the PRIMARY
   statistical insight modules only (Completed match record, Match
   Breakdown, Players in this scope, Ratings) -- roughly half the hero's
   own intensity, so midnight/navy stays clearly dominant. Deliberately
   excludes Filter Scope (.iexel-team-statistics-filters), Attendance &
   availability (2nd child of the insights grid), Latest Completed
   Matches (.iexel-team-statistics-result, a different class entirely)
   and Data Quality (.iexel-team-statistics-quality, its own warning
   language -- see Section H). Scoped to ".iexel-team-statistics-page
   :not(.iexel-player-team-statistics-page)" because the Player-facing
   "Team Stats" page (PlayerTeamStatisticsPage.php) reuses these exact
   same shared grid/section classes and must not receive this Coach-only
   Statistics-tab treatment.
   Acceptance correction: the tint alone read as insufficient without the
   established Team Workspace primary-card gold-TOP hierarchy already
   applied everywhere else (hero/nav/Overview/Squad/Attendance/
   Availability) -- so these same 4 modules now also drop the shared
   heavy gold LEFT rail (inherited from the base .iexel-team-statistics-
   section/.iexel-team-statistics-hero/.iexel-team-statistics-quality
   rule) in favour of a stronger 4px gold TOP edge, on this identical
   scoped selector. The Hero keeps its own, separate, brighter tint
   (Section A of the prior batch) and is not touched here -- Filters/
   Attendance/Latest-Matches/Data-Quality get the SAME gold-top frame via
   a separate rule immediately below (border only, no tint -- see the
   "Final visual consistency polish" comment there), since the Product
   Owner explicitly wants the frame standardised everywhere without
   spreading the achievement tint to modules that never had it. */
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-summary-grid > .iexel-team-statistics-section,
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-players,
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-insights-grid > .iexel-team-statistics-section:first-child {
	background:
		radial-gradient(circle at 94% 3%, color-mix(in srgb, var(--iexel-gold-bright) 8%, transparent), transparent 30%),
		linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy));
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

/* Final visual consistency polish: complete the gold-top frame across the
   remaining Statistics top-level/utility modules (Refine statistics,
   Attendance & availability, Latest completed matches) -- border/frame
   only, no background change, so their existing accepted (untinted)
   surfaces are preserved exactly as-is. Attendance & availability is now
   included (previously excluded from the block above only because that
   block also carries the achievement tint, which Attendance never had
   and still doesn't). Latest Completed Matches' outer section carries no
   distinguishing class of its own, so it's targeted by its existing,
   already-unique aria-labelledby id rather than adding a new class.
   Data Quality's own frame conversion is a separate, smaller edit to its
   existing dedicated rule (see .iexel-team-statistics-quality below) so
   its distinct warning colour palette is untouched. */
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-filters,
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-insights-grid > .iexel-team-statistics-section:last-child,
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) [aria-labelledby="iexel-team-recent-results-title"] {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}

.iexel-team-statistics-back { display: inline-flex; margin-bottom: 18px; color: var(--iexel-gold-bright); font-weight: 850; text-decoration: none; }
.iexel-team-statistics-back:hover { text-decoration: underline; }
.iexel-team-statistics-hero-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.iexel-team-statistics-hero h1 { margin: 7px 0 8px; color: var(--iexel-white); font-size: clamp(2.2rem, 6vw, 4.4rem); line-height: .98; overflow-wrap: anywhere; }
.iexel-team-statistics-hero-heading p { margin: 0; color: var(--iexel-muted); overflow-wrap: anywhere; }
.iexel-team-statistics-scope { display: grid; flex: 0 1 320px; gap: 5px; padding: 13px 15px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.11); border-radius: 12px; }
.iexel-team-statistics-scope strong { color: var(--iexel-gold-bright); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.iexel-team-statistics-hero-metrics { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
.iexel-team-statistics-hero-metrics > div { display: grid; align-content: space-between; gap: 8px; min-height: 100px; padding: 14px 11px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.11); border-radius: 13px; }
.iexel-team-statistics-hero-metrics span { color: var(--iexel-muted); font-size: .67rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; overflow-wrap: anywhere; }
.iexel-team-statistics-hero-metrics strong { color: var(--iexel-gold-bright); font-size: clamp(1.45rem, 3vw, 2.15rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-team-statistics-section > h2,
.iexel-team-statistics-quality > h2 { margin: 5px 0 20px; color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-team-statistics-summary-grid,
.iexel-team-statistics-insights-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.iexel-team-statistics-summary-grid > *,
.iexel-team-statistics-insights-grid > * { height: 100%; }
.iexel-team-statistics-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.iexel-team-statistics-metric-grid.is-compact { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.iexel-team-statistics-metric-grid > div { padding: 15px 10px; text-align: center; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.iexel-team-statistics-metric-grid dt { min-height: 2.4em; color: var(--iexel-muted); font-size: .7rem; font-weight: 800; overflow-wrap: anywhere; }
.iexel-team-statistics-metric-grid dd { margin: 7px 0 0; color: var(--iexel-gold-bright); font-size: 1.45rem; font-weight: 900; overflow-wrap: anywhere; }
.iexel-team-statistics-help { margin: 15px 0 0; color: var(--iexel-muted); font-size: .82rem; line-height: 1.55; }
.iexel-team-statistics-empty { margin: 0 0 16px; padding: 14px; color: var(--iexel-muted); background: rgba(255,255,255,.04); border-radius: 11px; line-height: 1.5; }
.iexel-team-statistics-filters form { display: grid; grid-template-columns: repeat(4, minmax(145px, 1fr)); gap: 12px; align-items: end; }
.iexel-team-statistics-filters label { display: grid; gap: 7px; }
.iexel-team-statistics-filters label > span { color: var(--iexel-color-on-dark, #ffffff); font-size: .76rem; font-weight: 850; }
.iexel-team-statistics-filters input,
.iexel-team-statistics-filters select { width: 100%; min-height: 46px; padding: 10px 12px; color: var(--iexel-white); background: var(--iexel-midnight-2); border: 1px solid var(--iexel-border); border-radius: 10px; font: inherit; }
.iexel-team-statistics-filter-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; }
.iexel-team-statistics-player-table { width: 100%; }
.iexel-team-statistics-player-table table { width: 100%; table-layout: fixed; border-collapse: collapse; color: var(--iexel-color-on-dark, #ffffff); }
.iexel-team-statistics-player-table th,
.iexel-team-statistics-player-table td { padding: 13px 8px; border-bottom: 1px solid rgba(255,255,255,.09); text-align: center; vertical-align: top; overflow-wrap: anywhere; }
.iexel-team-statistics-player-table th:first-child { width: 19%; text-align: left; }
.iexel-team-statistics-player-table th:nth-child(2) { width: 10%; }
.iexel-team-statistics-player-table thead th { color: var(--iexel-muted); font-size: .67rem; letter-spacing: .035em; text-transform: uppercase; }
.iexel-team-statistics-player-table tbody th { color: var(--iexel-white); font-weight: 850; }
.iexel-team-statistics-player-table a,
.iexel-team-statistics-report-link { color: var(--iexel-gold-bright); font-weight: 850; }
/* Final MVP polish: "overflow-wrap: anywhere" on a flex item with no
   guaranteed width is exactly what let "Active" break internally into
   "Activ/e" once its siblings (avatar/name/chevron) compressed its
   available space on mobile. A status pill is a short, indivisible label,
   not free-flowing text -- it must hold its own shape and let the player
   name (which DOES need to wrap) take the flexible remaining width. */
.iexel-team-statistics-status { display: inline-flex; flex: 0 0 auto; max-width: 100%; padding: 5px 8px; border: 1px solid; border-radius: 999px; font-size: .68rem; font-weight: 900; white-space: nowrap; }
.iexel-team-statistics-status.is-active { color: #bbf7d0; background: rgba(34,197,94,.12); border-color: rgba(74,222,128,.55); }
.iexel-team-statistics-status.is-historical { color: #e2e8f0; background: rgba(148,163,184,.12); border-color: rgba(148,163,184,.45); }
.iexel-team-statistics-status.is-guest { color: #bfdbfe; background: rgba(59,130,246,.12); border-color: rgba(96,165,250,.5); }
.iexel-team-statistics-status.is-deleted { color: #fecaca; background: rgba(239,68,68,.12); border-color: rgba(248,113,113,.5); }
.iexel-team-statistics-player-details { margin-top: 8px; color: var(--iexel-muted); font-size: .72rem; font-weight: 500; }
.iexel-team-statistics-player-details summary { color: var(--iexel-gold-bright); cursor: pointer; font-weight: 800; }
.iexel-team-statistics-player-details dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 10px 0 0; }
.iexel-team-statistics-player-details dl div { padding: 7px; background: rgba(255,255,255,.04); border-radius: 7px; }
.iexel-team-statistics-player-details dt { color: var(--iexel-muted); }
.iexel-team-statistics-player-details dd { margin: 3px 0 0; color: var(--iexel-white); font-weight: 850; }
.iexel-team-statistics-player-cards { display: none; }
.iexel-team-statistics-list { display: grid; gap: 0; margin: 0; }
.iexel-team-statistics-list > div { display: flex; justify-content: space-between; gap: 15px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.iexel-team-statistics-list dt { color: var(--iexel-muted); overflow-wrap: anywhere; }
.iexel-team-statistics-list dd { flex: none; margin: 0; color: var(--iexel-gold-bright); font-weight: 900; text-align: right; overflow-wrap: anywhere; }
.iexel-team-statistics-attendance-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.iexel-team-statistics-attendance-columns h3 { margin: 0 0 14px; color: var(--iexel-white); }
.iexel-team-statistics-results-list { display: grid; gap: 13px; }
.iexel-team-statistics-result { padding: 18px; background: linear-gradient(120deg, rgba(255,255,255,.05), rgba(255,255,255,.025)); border: 1px solid rgba(255,255,255,.1); border-left: 3px solid var(--iexel-gold); border-radius: 14px; overflow: hidden; }

/* Final visual consistency polish: individual "Latest completed matches"
   result cards move from the older gold-LEFT accent to a gold-TOP accent,
   consistent with the broader Club OS semantic hierarchy (outer
   Statistics module = primary card; each match record = meaningful
   nested operational record, still visually distinguished from quiet
   chips/pills, just via the top edge now instead of the left one).
   Scoped to ".iexel-team-statistics-page:not(.iexel-player-team-
   statistics-page)" because PlayerTeamStatisticsPage.php independently
   reuses this exact ".iexel-team-statistics-result" class for its own,
   unrelated match rows and must not be affected. Content/badges/score/
   pills/View Match Report inside are untouched -- only the card's own
   border changes. */
.iexel-team-statistics-page:not(.iexel-player-team-statistics-page) .iexel-team-statistics-result {
	border-left-width: 1px;
	border-top: 3px solid var(--iexel-gold);
}
.iexel-team-statistics-result header { display: flex; justify-content: space-between; gap: 15px; align-items: flex-start; }
.iexel-team-statistics-result time { color: var(--iexel-gold-bright); font-size: .76rem; font-weight: 850; }
.iexel-team-statistics-result h3 { margin: 5px 0 0; color: var(--iexel-white); overflow-wrap: anywhere; }
.iexel-team-statistics-result-badge { flex: none; padding: 6px 10px; border-radius: 999px; font-size: .7rem; font-weight: 900; }
.iexel-team-statistics-result-badge.is-win { color: #bbf7d0; background: rgba(34,197,94,.15); }
.iexel-team-statistics-result-badge.is-draw { color: #e2e8f0; background: rgba(148,163,184,.15); }
.iexel-team-statistics-result-badge.is-loss { color: #fecaca; background: rgba(239,68,68,.15); }
.iexel-team-statistics-score { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 15px; align-items: center; margin: 16px 0; color: var(--iexel-color-on-dark, #ffffff); }
.iexel-team-statistics-score span { overflow-wrap: anywhere; }
.iexel-team-statistics-score span:last-child { text-align: right; }
.iexel-team-statistics-score strong { color: var(--iexel-white); font-size: clamp(1.35rem, 4vw, 2rem); white-space: nowrap; }
.iexel-team-statistics-result-meta { display: flex; flex-wrap: wrap; gap: 7px; }
.iexel-team-statistics-result-meta span { max-width: 100%; padding: 5px 8px; color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.055); border-radius: 999px; font-size: .7rem; overflow-wrap: anywhere; }
.iexel-team-statistics-result-meta .is-clean-sheet { color: #fde68a; background: rgba(245,195,66,.13); }
.iexel-team-statistics-report-link { display: inline-flex; margin-top: 13px; }
/* Final visual consistency polish: Data Quality's own heavy gold-LEFT
   accent (7px) becomes a gold-TOP accent (4px), matching every other
   primary module's frame -- its distinct warning colour palette
   (#fff7d6 / #3b2603 / #fbbf24) is completely untouched, per explicit
   instruction to keep the accepted warning colour treatment. */
.iexel-team-statistics-quality { color: #fff7d6; background: #3b2603; border: 2px solid #fbbf24; border-top-width: 4px; }
.iexel-team-statistics-quality .iexel-section-kicker,
.iexel-team-statistics-quality h2 { color: #fde68a; }
.iexel-team-statistics-quality summary { color: #fde68a; cursor: pointer; font-weight: 900; }
.iexel-team-statistics-quality ul { margin: 16px 0 0; padding-left: 20px; }
.iexel-team-statistics-quality li + li { margin-top: 12px; }
.iexel-team-statistics-quality li strong { display: block; overflow-wrap: anywhere; }

/* Final MVP polish: warnings grouped by canonical Match, human match
   identity first, readable issue message only, contextual recovery
   actions. Deliberately keeps the existing brown/gold warning language (Section H)
   -- no achievement/performance tint here, this must read as a distinct
   exception state, not the same "bling" as the Statistics insight cards. */
.iexel-team-statistics-quality-groups { display: grid; gap: 14px; margin-top: 16px; }
.iexel-team-statistics-quality-group { padding: 14px 16px; background: rgba(0,0,0,.16); border: 1px solid rgba(251,191,36,.32); border-radius: 12px; overflow: hidden; }
.iexel-team-statistics-quality-group-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; }
.iexel-team-statistics-quality-group-header strong { display: block; color: #fde68a; overflow-wrap: anywhere; }
.iexel-team-statistics-quality-group-header > div > span { display: block; margin-top: 2px; color: #fff7d6; opacity: .78; font-size: .78rem; font-weight: 700; }
.iexel-team-statistics-quality-group ul { margin: 12px 0 0; }
.iexel-team-statistics-quality-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.iexel-team-statistics-quality-actions a { display: inline-flex; flex: 0 0 auto; padding: 7px 13px; color: #3b2603; background: #fbbf24; border-radius: 999px; font-size: .72rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
.iexel-team-statistics-quality-actions a:hover,
.iexel-team-statistics-quality-actions a:focus-visible { background: #fde68a; }
.iexel-team-statistics-quality-more { margin-top: 14px; }
.iexel-team-statistics-quality-more > summary { font-size: .85rem; }
.iexel-team-statistics-quality-more .iexel-team-statistics-quality-groups { margin-top: 14px; }

.iexel-team-statistics-page a:focus-visible,
.iexel-team-statistics-page button:focus-visible,
.iexel-team-statistics-page input:focus-visible,
.iexel-team-statistics-page select:focus-visible,
.iexel-team-statistics-page summary:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }

@media (max-width: 1100px) {
	.iexel-team-statistics-hero-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.iexel-team-statistics-filters form { grid-template-columns: repeat(3, minmax(145px, 1fr)); }
	.iexel-team-statistics-player-table { font-size: .82rem; }
	.iexel-team-statistics-player-table th,
	.iexel-team-statistics-player-table td { padding-inline: 5px; }
}

@media (max-width: 760px) {
	.iexel-team-statistics-hero,
	.iexel-team-statistics-section,
	.iexel-team-statistics-quality { padding: 21px; }
	.iexel-team-statistics-hero-heading,
	.iexel-team-statistics-summary-grid,
	.iexel-team-statistics-insights-grid,
	.iexel-team-statistics-attendance-columns { grid-template-columns: 1fr; }
	.iexel-team-statistics-hero-heading { display: grid; }
	.iexel-team-statistics-scope { width: 100%; }
	.iexel-team-statistics-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-team-statistics-metric-grid.is-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iexel-team-statistics-filters form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-team-statistics-player-table { display: none; }
	.iexel-team-statistics-player-cards { display: grid; gap: 12px; }

	/* Mobile progressive disclosure for "Players in this scope" -- see the
	   long comment in TeamStatisticsPlayersCard.php for the full rationale.
	   Native <details>/<summary>: no JS, keyboard-operable, expanded state
	   exposed via the [open] attribute, and every player's disclosure is
	   independent so multiple can stay open at once for comparison. */
	.iexel-team-statistics-player-disclosure { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 13px; overflow: hidden; }
	.iexel-team-statistics-player-disclosure[open] { background: rgba(255,255,255,.06); }

	/*
	 * Acceptance correction A: real Dev-site review found ordinary
	 * two-word names (e.g. "Declan Rogers") wrapping to three lines,
	 * because avatar + name + status + chevron all competed for width on
	 * one visual row. Restructured into a compact left identity rail
	 * (avatar above status) + a main column (name above snapshot) +
	 * a right-aligned chevron, purely with CSS Grid -- no markup change
	 * needed. ".iexel-team-statistics-player-summary-row" (which still
	 * wraps avatar/name/status/chevron in the DOM, unchanged) is set to
	 * "display: contents" so its children become direct grid items of
	 * <summary> itself, sitting alongside the already-sibling ".player-
	 * snapshot" element in the same 2-row grid. "display: contents" is
	 * an established technique already used elsewhere in this stylesheet.
	 */
	.iexel-team-statistics-player-summary {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		column-gap: 12px;
		row-gap: 4px;
		min-height: 44px;
		padding: 14px 16px;
		cursor: pointer;
		list-style: none;
	}
	.iexel-team-statistics-player-summary::-webkit-details-marker { display: none; }
	.iexel-team-statistics-player-summary::marker { content: ''; }

	.iexel-team-statistics-player-summary-row { display: contents; }

	.iexel-team-statistics-player-avatar { grid-column: 1; grid-row: 1; align-self: start; }

	/* Status pill now sits directly beneath the avatar, in its own left
	   rail column/row -- still the same shared .iexel-team-statistics-
	   status rule (flex: 0 0 auto; white-space: nowrap; never shrinks or
	   breaks internally), just repositioned. */
	.iexel-team-statistics-player-summary-row > .iexel-team-statistics-status { grid-column: 1; grid-row: 2; justify-self: start; margin-top: 2px; }

	/* Acceptance correction B: bring mobile player names into the same
	   established brand/accent token already used for desktop player-name
	   links (.iexel-team-statistics-player-table a -- var(--iexel-gold-
	   bright), the existing canonical Club OS gold-accent token, not a
	   new hard-coded colour), instead of the previous plain white. Name
	   now owns the full recovered content-column width (freed from
	   sharing a row with the avatar/status), so ordinary two-word names
	   fit in two lines at 320px instead of three. */
	.iexel-team-statistics-player-name { grid-column: 2; grid-row: 1; min-width: 0; color: var(--iexel-gold-bright); font-weight: 900; overflow-wrap: anywhere; }
	.iexel-team-statistics-player-name a { color: inherit; text-decoration: none; }
	.iexel-team-statistics-player-name a:hover,
	.iexel-team-statistics-player-name a:focus-visible { text-decoration: underline; }

	.iexel-team-statistics-player-chevron { grid-column: 3; grid-row: 1 / span 2; align-self: center; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; color: var(--iexel-muted); transition: transform .2s ease, color .2s ease; }
	.iexel-team-statistics-player-chevron::before { content: '\203a'; font-size: 1.35rem; line-height: 1; }
	.iexel-team-statistics-player-disclosure[open] .iexel-team-statistics-player-chevron { color: var(--iexel-gold-bright); transform: rotate(90deg); }

	/* Acceptance correction: the snapshot container may still wrap between
	   pairs (display: flex; flex-wrap: wrap), but each individual pair
	   (.player-snapshot-pair, see TeamStatisticsPlayersCard.php) carries
	   "white-space: nowrap" so a number can never be stranded apart from
	   its own label ("...3 / assists"). The middot separator is rendered
	   here in CSS, after every pair but the last, so it is never itself a
	   line-break opportunity that could visually detach from either pair. */
	.iexel-team-statistics-player-snapshot { grid-column: 2; grid-row: 2; align-self: start; display: flex; flex-wrap: wrap; column-gap: 6px; row-gap: 2px; color: var(--iexel-muted); font-size: .72rem; font-weight: 700; }
	.iexel-team-statistics-player-snapshot-pair { white-space: nowrap; }
	.iexel-team-statistics-player-snapshot-pair:not(:last-child)::after { content: ' ·'; }

	.iexel-team-statistics-player-expanded { padding: 0 16px 16px; }
	.iexel-team-statistics-player-expanded .iexel-team-statistics-metric-grid { margin: 2px 0 0; }
	.iexel-team-statistics-player-expanded .iexel-team-statistics-player-details { margin-top: 12px; }

	/*
	 * Acceptance correction D: when a player disclosure is open, it
	 * becomes the Coach's focused performance record -- give it a very
	 * restrained version of the same Statistics achievement tint (half
	 * the intensity already used for the outer Players module, itself
	 * already half the hero's), token-derived, no new hard-coded gold.
	 * Individual metric tiles inside are deliberately NOT tinted
	 * (.iexel-team-statistics-metric-grid > div keeps its own quiet,
	 * unmodified background) so they remain readable subordinate
	 * surfaces -- only the open disclosure's own surface changes.
	 */
	.iexel-team-statistics-player-disclosure[open] {
		background:
			radial-gradient(circle at 96% 2%, color-mix(in srgb, var(--iexel-gold-bright) 4%, transparent), transparent 32%),
			rgba(255,255,255,.06);
	}
}

@media (max-width: 520px) {
	.iexel-team-statistics-hero-metrics,
	.iexel-team-statistics-filters form { grid-template-columns: 1fr; }
	.iexel-team-statistics-filter-actions { flex-direction: column; }
	.iexel-team-statistics-filter-actions > * { width: 100%; text-align: center; }
	.iexel-team-statistics-metric-grid.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-team-statistics-score { grid-template-columns: 1fr; gap: 7px; text-align: center; }
	.iexel-team-statistics-score span:last-child { text-align: center; }
}

/* Player Team Hub statistics */
.iexel-player-team-statistics-page { min-width: 0; }
.iexel-player-team-statistics-heading { min-width: 0; padding: clamp(22px, 5vw, 34px); color: var(--iexel-color-on-dark, #ffffff); background: radial-gradient(circle at 92% 4%, rgba(245,195,66,.16), transparent 30%), linear-gradient(135deg, #07192f, var(--iexel-navy)); border: 1px solid var(--iexel-border); border-left: 5px solid var(--iexel-gold); border-radius: 20px; box-shadow: var(--iexel-shadow-medium); overflow: hidden; }
.iexel-player-team-statistics-heading h2 { margin: 6px 0 8px; color: var(--iexel-white); font-size: clamp(2rem, 6vw, 3.7rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-player-team-statistics-heading p { margin: 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-weight: 750; overflow-wrap: anywhere; }
.iexel-player-team-statistics-distribution dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.iexel-player-team-statistics-distribution dl > div { padding: 16px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-top: 3px solid var(--iexel-gold); border-radius: 12px; text-align: center; }
.iexel-player-team-statistics-distribution dt { color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.iexel-player-team-statistics-distribution dd { margin: 7px 0 0; color: var(--iexel-white); font-size: 1.65rem; font-weight: 950; }
.iexel-player-team-statistics-distribution .is-win { border-top-color: #4ade80; }
.iexel-player-team-statistics-distribution .is-draw { border-top-color: #94a3b8; }
.iexel-player-team-statistics-distribution .is-loss { border-top-color: #f87171; }
.iexel-player-team-statistics-results .iexel-team-statistics-result-meta:first-of-type { margin-top: 13px; }
.iexel-player-team-statistics-history { display: grid; gap: 16px; }
.iexel-player-team-statistics-count { margin: 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .8rem; font-weight: 750; }
.iexel-player-team-statistics-show-more,
.iexel-player-team-statistics-show-less { justify-self: center; min-width: min(100%, 220px); }
.iexel-player-team-statistics-show-more[hidden],
.iexel-player-team-statistics-show-less[hidden] { display: none; }
.iexel-player-team-statistics-noscript { margin: 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .8rem; }

@media (max-width: 390px) {
	.iexel-player-team-statistics-heading,
	.iexel-player-team-statistics-page .iexel-team-statistics-section { padding: 18px; }
	.iexel-player-team-statistics-distribution dl { grid-template-columns: 1fr; }
	.iexel-player-team-statistics-results .iexel-team-statistics-result { padding: 15px; }
	.iexel-player-team-statistics-show-more,
	.iexel-player-team-statistics-show-less { width: 100%; }
}
.iexel-player-statistics-hero { display: block; padding: clamp(22px, 4vw, 38px); overflow: hidden; background: radial-gradient(circle at 92% 4%, rgba(245,195,66,.14), transparent 28%), linear-gradient(135deg, #07192f, var(--iexel-navy)); }
.iexel-player-statistics-hero-main { display: flex; justify-content: space-between; gap: 22px; align-items: flex-start; }
/* Final density + visual consistency polish: the large circular avatar
   (.iexel-person-avatar.is-hero, up to 150px) sat flush against the
   hero's own edge padding with no additional intentional breathing room.
   Scoped to desktop/tablet widths only (min-width: 681px, the existing
   breakpoint immediately above the established 680px mobile-stacked
   hero layout) so the centred mobile composition is completely
   unaffected. */
@media (min-width: 681px) {
	.iexel-player-statistics-profile-image { margin-right: clamp(8px, 2vw, 28px); }
}
.iexel-player-statistics-player { max-width: 100%; }
.iexel-player-statistics-name-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.iexel-player-statistics-name-row h1 { max-width: 100%; margin: 7px 0; font-size: clamp(2.2rem, 6vw, 4.8rem); line-height: .98; overflow-wrap: anywhere; }
.iexel-player-statistics-shirt { flex: none; padding: 7px 11px; color: var(--iexel-midnight); background: var(--iexel-gold-bright); border-radius: 10px; font-size: 1rem; font-weight: 950; }
.iexel-player-statistics-player-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-top: 12px; color: var(--iexel-color-on-dark-muted, #c8d3e3); }
.iexel-player-statistics-player-meta span { overflow-wrap: anywhere; }
.iexel-player-statistics-player-meta strong { color: var(--iexel-muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.iexel-player-statistics-status { padding: 5px 9px; border: 1px solid; border-radius: 999px; font-size: .72rem; font-weight: 900; }
.iexel-player-statistics-status.is-active { color: #bbf7d0; background: rgba(34,197,94,.12); border-color: rgba(74,222,128,.55); }
.iexel-player-statistics-status.is-inactive { color: #e2e8f0; background: rgba(148,163,184,.12); border-color: rgba(148,163,184,.45); }
.iexel-player-statistics-age-group { margin: 8px 0 0; font-size: .84rem; }
.iexel-player-statistics-hero-headlines { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
.iexel-player-statistics-hero-metric { display: grid; align-content: space-between; gap: 7px; min-height: 106px; padding: 15px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; }
.iexel-player-statistics-hero-metric > span { color: var(--iexel-muted); font-size: .7rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; overflow-wrap: anywhere; }
.iexel-player-statistics-hero-metric strong { color: var(--iexel-gold-bright); font-size: clamp(1.55rem, 4vw, 2.25rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-player-statistics-context-note { margin: 18px 0 0 !important; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.09); }
.iexel-player-statistics-summary,
.iexel-player-statistics-history-section { min-width: 0; padding: 28px; color: var(--iexel-color-on-dark, #ffffff); background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy)); border: 1px solid var(--iexel-border); border-left: 5px solid var(--iexel-gold); border-radius: 20px; box-shadow: var(--iexel-shadow-medium); }
/* Final density + visual consistency polish: Football Summary ("At a
   glance") and Match History ("Eligible matches") outer modules move to
   the gold-TOP frame. Nested .iexel-player-statistics-summary-card tiles
   already carry their own quieter, established 3px gold-top accent (see
   below) -- deliberately untouched -- and individual
   .iexel-player-statistics-match history cards remain subordinate with no
   border-top of their own. */
.iexel-player-statistics-summary,
.iexel-player-statistics-history-section {
	border-left-width: 1px;
	border-top: 4px solid var(--iexel-gold);
}
.iexel-player-statistics-summary > h2,
.iexel-player-statistics-history-section > h2 { margin: 5px 0 20px; color: var(--iexel-white); }
.iexel-player-statistics-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.iexel-player-statistics-summary-card { display: flex; flex-direction: column; min-width: 0; padding: 20px; background: linear-gradient(160deg, rgba(255,255,255,.065), rgba(255,255,255,.025)); border: 1px solid rgba(255,255,255,.11); border-top: 3px solid var(--iexel-gold); border-radius: 15px; }
.iexel-player-statistics-summary-card h3 { margin: 0 0 14px; color: var(--iexel-white); font-size: 1.05rem; }
.iexel-player-statistics-summary-card dl { display: grid; gap: 0; margin: 0; }
.iexel-player-statistics-summary-card dl div { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.iexel-player-statistics-summary-card dt { color: var(--iexel-muted); font-size: .78rem; overflow-wrap: anywhere; }
.iexel-player-statistics-summary-card dd { flex: none; margin: 0; color: var(--iexel-white); font-size: 1.05rem; font-weight: 900; overflow-wrap: anywhere; }
.iexel-player-statistics-summary-card .is-emphasis dd { color: var(--iexel-gold-bright); }
.iexel-player-statistics-summary-card > p { margin: auto 0 0; padding-top: 13px; color: var(--iexel-muted); font-size: .78rem; line-height: 1.45; }
.iexel-player-statistics-summary-card > .iexel-player-statistics-coverage { margin-top: 8px; }
/* Final density + visual consistency polish: Attendance previously sat
   alone under column 1 of the 4-column "At a glance" grid, leaving a
   large empty area beside it. It now spans the full grid width beneath
   the 4 football-stat cards -- "grid-column: 1 / -1" works unchanged
   whether the grid is currently 4-column (>1040px), 2-column (521-
   1040px) or 1-column (<=520px), so no extra breakpoint-specific rule is
   needed for the spanning itself. At >=640px there is enough width to
   lay the five existing values (Present/Late/Absent/Excused/Attendance %)
   out as a horizontal stat row instead of a stacked list -- purely
   presentational, using the identical existing <dl> markup/labels/
   values; below that it keeps the same stacked-list treatment every
   other summary card already uses. */
.iexel-player-statistics-summary-card.is-attendance { grid-column: 1 / -1; }
@media (min-width: 640px) {
	.iexel-player-statistics-summary-card.is-attendance dl {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 12px;
	}
	.iexel-player-statistics-summary-card.is-attendance dl div {
		flex-direction: column;
		align-items: center;
		gap: 6px;
		padding: 14px 10px;
		text-align: center;
		background: rgba(255,255,255,.04);
		border: 1px solid rgba(255,255,255,.08);
		border-bottom: 1px solid rgba(255,255,255,.08);
		border-radius: 10px;
	}
	.iexel-player-statistics-summary-card.is-attendance dd { font-size: 1.3rem; }
	.iexel-player-statistics-summary-card.is-attendance > p,
	.iexel-player-statistics-summary-card.is-attendance > .iexel-player-statistics-coverage { margin-top: 14px; }
}
.iexel-player-statistics-history { gap: 24px; }
/* Final density polish: month groups are now native <details>/<summary>
   disclosures (see PlayerStatisticsMatchHistoryCard.php) -- the month
   heading moved from a direct <h3> child of ".iexel-player-statistics-
   month" to living inside its <summary>, so the heading colour/size rule
   is updated to match (selector updated, not deleted; the visual result
   is identical to before). The summary itself carries the clickable
   affordance, count and chevron; ".iexel-player-statistics-month-
   matches" and every match card inside are completely unchanged. */
.iexel-player-statistics-month { border-bottom: 1px solid rgba(255,255,255,.08); }
.iexel-player-statistics-month:last-child { border-bottom: 0; }
.iexel-player-statistics-month summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 4px 0 14px;
	cursor: pointer;
	list-style: none;
}
.iexel-player-statistics-month summary::-webkit-details-marker { display: none; }
.iexel-player-statistics-month summary::marker { content: ''; }
.iexel-player-statistics-month summary h3 { flex: 1 1 auto; min-width: 0; margin: 0; color: var(--iexel-gold-bright); font-size: 1.05rem; overflow-wrap: anywhere; }
.iexel-player-statistics-month-count { flex: 0 0 auto; color: var(--iexel-muted); font-size: .78rem; font-weight: 800; white-space: nowrap; }
.iexel-player-statistics-month-chevron { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; color: var(--iexel-muted); transition: transform .2s ease, color .2s ease; }
.iexel-player-statistics-month-chevron::before { content: '\203a'; font-size: 1.3rem; line-height: 1; }
.iexel-player-statistics-month[open] .iexel-player-statistics-month-chevron { color: var(--iexel-gold-bright); transform: rotate(90deg); }
.iexel-player-statistics-month[open] summary { padding-bottom: 14px; }
.iexel-player-statistics-month:not([open]) summary { padding-bottom: 4px; }
.iexel-player-statistics-month > .iexel-player-statistics-month-matches { padding-bottom: 20px; }
.iexel-player-statistics-month-matches { display: grid; gap: 12px; }
.iexel-player-statistics-match { padding: 20px; overflow: hidden; background: linear-gradient(120deg, rgba(255,255,255,.05), rgba(255,255,255,.025)); border-left: 3px solid var(--iexel-gold); }
/* Product Owner acceptance correction: individual Eligible Matches fixture
   cards still used the old heavy gold-LEFT rail, conflicting with the
   quieter gold-TOP hierarchy already established (and accepted) on this
   page's outer modules and on Team Statistics' own individual "Latest
   completed matches" result cards -- same technique, same 3px value, as
   that already-accepted precedent. .iexel-player-statistics-match is
   exclusive to this Coach-only component (confirmed by repo-wide grep),
   so no extra page-scoping is required. Content/badges/score/report-link
   inside each card, and the month summary/chevron/count row, are
   untouched -- only the card's own border changes. */
.iexel-player-statistics-match {
	border-left-width: 1px;
	border-top: 3px solid var(--iexel-gold);
}
.iexel-player-statistics-match .iexel-player-statistics-fixture { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: start; }
.iexel-player-statistics-fixture-copy time { color: var(--iexel-gold-bright); font-size: .74rem; font-weight: 850; }
.iexel-player-statistics-fixture-copy h4 { display: flex; flex-wrap: wrap; gap: 7px; align-items: baseline; margin: 7px 0 5px; color: var(--iexel-white); font-size: clamp(1rem, 2.5vw, 1.25rem); line-height: 1.35; }
.iexel-player-statistics-fixture-copy h4 span { max-width: 100%; overflow-wrap: anywhere; }
.iexel-player-statistics-fixture-copy h4 strong { flex: none; color: var(--iexel-gold-bright); font-size: 1.2em; white-space: nowrap; }
.iexel-player-statistics-versus { color: var(--iexel-muted); font-size: .72em; text-transform: uppercase; }
.iexel-player-statistics-fixture-copy p { margin: 0; color: var(--iexel-muted); font-size: .82rem; overflow-wrap: anywhere; }
.iexel-player-statistics-primary-badges,
.iexel-player-statistics-match-badges { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.iexel-player-statistics-primary-badges { justify-content: flex-end; }
.iexel-player-statistics-match-badges { margin-top: 15px; }
.iexel-player-statistics-badge { display: inline-flex; max-width: 100%; gap: 4px; align-items: center; padding: 6px 9px; color: var(--iexel-text); background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; font-size: .72rem; font-weight: 800; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; }
.iexel-player-statistics-badge.is-location { color: var(--iexel-midnight); background: var(--iexel-gold-bright); border-color: var(--iexel-gold-bright); }
.iexel-player-statistics-badge.is-role { color: #bfdbfe; border-color: rgba(96,165,250,.45); }
.iexel-player-statistics-badge.is-rating { color: #fde68a; border-color: rgba(245,195,66,.38); }
.iexel-player-statistics-badge.is-potm { color: var(--iexel-midnight); background: #fde68a; border-color: #fde68a; }
.iexel-player-statistics-badge.is-warning { color: #fecaca; border-color: rgba(248,113,113,.45); }
.iexel-player-statistics-report-link { gap: 6px; align-items: center; overflow-wrap: anywhere; }
.iexel-player-statistics-empty { border: 1px dashed rgba(255,255,255,.16); line-height: 1.5; }
.iexel-player-statistics-quality { padding: 0; overflow: hidden; }
.iexel-player-statistics-quality summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px 22px; color: #fff7d6; cursor: pointer; }
.iexel-player-statistics-quality summary span { font-size: 1rem; font-weight: 900; }
.iexel-player-statistics-quality summary strong { color: #fde68a; font-size: .78rem; }
.iexel-player-statistics-quality[open] summary strong { font-size: 0; }
.iexel-player-statistics-quality[open] summary strong::after { content: "Hide Details"; font-size: .78rem; }
.iexel-player-statistics-quality > div { padding: 0 22px 20px; border-top: 1px solid rgba(253,230,138,.28); }
.iexel-player-statistics-quality > div p { margin: 16px 0 10px; }
.iexel-team-member-statistics { display: inline-flex; gap: 6px; align-items: center; justify-content: center; color: var(--iexel-midnight); background: var(--iexel-gold-bright); border-color: var(--iexel-gold-bright); }
.iexel-player-statistics-quality summary:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: -4px; }

@media (max-width: 1040px) {
	.iexel-player-statistics-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-player-statistics-hero-headlines { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
	.iexel-player-statistics-summary,
	.iexel-player-statistics-history-section { padding: 20px; }
	.iexel-player-statistics-hero-headlines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iexel-player-statistics-match .iexel-player-statistics-fixture { grid-template-columns: 1fr; }
	.iexel-player-statistics-primary-badges { justify-content: flex-start; }
}

@media (max-width: 520px) {
	.iexel-player-statistics-summary-grid,
	.iexel-player-statistics-hero-headlines { grid-template-columns: 1fr; }
	.iexel-player-statistics-hero-metric { min-height: 0; }
	.iexel-player-statistics-name-row { align-items: flex-start; }
	.iexel-player-statistics-match { padding: 16px; }
	.iexel-player-statistics-fixture-copy h4 { display: grid; gap: 3px; }
	.iexel-player-statistics-versus { margin: 2px 0; }
	.iexel-player-statistics-badge { border-radius: 9px; }
	.iexel-player-statistics-quality summary { align-items: flex-start; padding: 16px; }
	.iexel-player-statistics-quality > div { padding: 0 16px 16px; }
}

.iexel-my-teams-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1rem;
}

/* Coach Workspace MVP visual close-out (A7): My Teams cards previously
   relied entirely on the shared, club-wide light .iexel-os-card (white
   background, 5px legacy LEFT gold rail) -- the same base every ordinary
   admin-style card on the site uses. Team-selection cards are a premium,
   immersive Team-identity surface (matching Team Workspace/Matchday's own
   midnight/navy language), so this card gets its own stronger background
   and swaps the legacy left rail for the established .iexel-accent-top-
   module top trim (border-left explicitly zeroed so the two treatments
   never show at once). Scoped entirely to .iexel-my-team-card -- the
   shared .iexel-os-card base rule itself, used club-wide, is untouched. */
.iexel-my-team-card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	color: var(--iexel-white);
	background: linear-gradient(145deg, var(--iexel-midnight), var(--iexel-navy));
	border: 1px solid rgba(203, 161, 53, .4);
	border-left: 0;
}

.iexel-my-team-card.iexel-accent-top-module {
	border-top: 4px solid var(--iexel-gold);
}

.iexel-my-team-card h2 {
	margin: 6px 0 0;
	color: var(--iexel-white);
	font-size: 1.5rem;
	overflow-wrap: anywhere;
}

.iexel-my-team-card > div[role="alert"] {
	padding: 10px 12px;
	border: 1px solid rgba(248, 113, 113, .4);
	border-radius: 10px;
	background: rgba(127, 29, 29, .22);
	color: var(--iexel-white);
}

.iexel-my-team-card dl {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
	margin: 0;
}

.iexel-my-team-card dt { color: var(--iexel-muted, #667085); font-size: .8rem; }
.iexel-my-team-card dd { margin: .15rem 0 0; color: var(--iexel-white); font-weight: 800; }

/* Mobile Team-identity hierarchy (A7): small age-group kicker -> prominent
   Team name -> season, centred as a deliberate identity block at narrow
   widths -- matching the same centring mechanism already established for
   .iexel-os-hero at this breakpoint, not a new pattern. */
@media (max-width: 480px) {
	.iexel-my-team-identity {
		text-align: center;
	}
}

.iexel-team-navigation-link { flex-wrap: wrap; }
.iexel-team-navigation-link.is-planned { opacity: .72; }
.iexel-team-navigation-link.is-active { opacity: 1; }
.iexel-team-navigation-status { flex-basis: 100%; color: inherit; font-size: .62rem; line-height: 1.2; }
.iexel-team-navigation-link:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }
@media (max-width: 64rem) { .iexel-team-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 42rem) { .iexel-team-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 64rem) { .iexel-team-navigation.is-player-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 42rem) { .iexel-team-navigation.is-player-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.iexel-person-role-option { display: block; }
.iexel-coach-workspace-page { display: grid; gap: 1.25rem; min-width: 0; }
.iexel-coach-dashboard-section { display: grid; gap: .85rem; min-width: 0; }
.iexel-coach-dashboard-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.iexel-coach-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.iexel-coach-team-grid article { min-width: 0; }
.iexel-coach-team-grid h3, .iexel-coach-next-match h3 { overflow-wrap: anywhere; }
.iexel-coach-action-list { display: grid; gap: .75rem; }
.iexel-coach-action-list article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 1fr) auto; gap: 1rem; align-items: center; }
.iexel-coach-action-list span { display: block; color: var(--iexel-muted); }
.iexel-coach-next-match { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.iexel-coach-quick-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.iexel-coach-quick-actions a { padding: .85rem; color: var(--iexel-gold-bright); background: var(--iexel-navy); border: 1px solid var(--iexel-border); border-radius: .7rem; font-weight: 800; text-align: center; text-decoration: none; }
.iexel-coach-quick-actions a:focus-visible, .iexel-coach-dashboard-section a:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }
@media (max-width: 48rem) { .iexel-coach-action-list article, .iexel-coach-next-match { grid-template-columns: 1fr; } .iexel-coach-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 680px) {
	.iexel-portal-hero,
	.iexel-os-hero {
		text-align: center;
	}

	.iexel-portal-eyebrow {
		margin: 0 auto 12px;
	}

	.iexel-portal-hero > p:last-child {
		max-width: 300px;
		margin: 16px auto 0;
	}

	.iexel-os-hero > div {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.iexel-os-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	/* Coach Workspace MVP visual close-out (A2): the shared .iexel-os-hero
	   already centres its eyebrow/subtitle at this breakpoint via the
	   flex-column + align-items:center rule above (each <p> shrinks to its
	   own content width and is centred as a whole block). The <h1> does
	   not benefit from that trick the same way once a long, user-entered
	   Event title wraps to two lines -- the h1's own box is centred, but
	   TEXT WITHIN it still reads left because .iexel-responsive-banner's
	   unconditional `text-align:var(--iexel-banner-align,left)` (same
	   0,1,0 specificity, later in source order) wins the cascade over the
	   .iexel-os-hero rule above. Scoped to .iexel-match-report specifically
	   -- Hero.php/.iexel-os-hero is reused by many unrelated admin/portal
	   pages this batch must not touch -- and left inside this existing
	   680px breakpoint only, matching where the rest of this hero is
	   already centred; MatchReportHeroCard.php never passes a profile
	   image, so this is always a single centred text column on this page. */
	.iexel-match-report .iexel-os-hero h1 {
		text-align: center;
	}

	.iexel-team-attendance-hero {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 22px 26px 22px 22px;
		text-align: center;
	}

	.iexel-team-attendance-hero > div:first-child {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-team-attendance-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-team-attendance-hero-metrics {
		width: 100%;
		max-width: none;
		margin-top: 28px;
	}

	.iexel-player-statistics-hero {
		padding: 22px 26px 22px 22px;
		text-align: center;
	}

	.iexel-player-statistics-back {
		display: flex;
		justify-content: center;
	}

	.iexel-player-statistics-hero-main {
		justify-content: center;
	}

	.iexel-player-statistics-player {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-player-statistics-name-row,
	.iexel-player-statistics-player-meta {
		justify-content: center;
		align-items: center;
	}

	.iexel-player-statistics-age-group,
	.iexel-player-statistics-context-note {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-player-statistics-hero-headlines {
		width: 100%;
		max-width: 340px;
		margin: 28px auto 0;
	}

	.iexel-player-statistics-hero-metric {
		text-align: center;
	}

	.iexel-player-statistics-context-note {
		margin: 18px auto 0 !important;
	}

	.iexel-team-statistics-hero {
		padding: 21px 25px 21px 21px;
		text-align: center;
	}

	.iexel-team-statistics-back {
		display: flex;
		justify-content: center;
	}

	.iexel-team-statistics-hero-heading {
		justify-items: center;
		text-align: center;
	}

	.iexel-team-statistics-hero-heading > div {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-team-statistics-hero-heading > div > p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-team-statistics-scope {
		width: 100%;
		max-width: 340px;
		justify-self: center;
	}

	.iexel-team-statistics-hero-metrics {
		margin-inline: auto;
		text-align: center;
	}

	.iexel-matchday-hero {
		text-align: center;
	}

	.iexel-matchday-hero__main {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.iexel-matchday-hero__main > p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-matchday-hero__match-info,
	.iexel-matchday-hero__meta,
	.iexel-matchday-hero__side {
		width: 100%;
		max-width: 340px;
		margin-inline: auto;
	}

	.iexel-matchday-hero__meta {
		justify-content: center;
	}

	.iexel-match-mode-hero {
		text-align: center;
	}

	.iexel-match-mode-hero > div {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.iexel-match-mode-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-match-mode-hero dl,
	.iexel-match-report-hero dl {
		width: 100%;
		max-width: 340px;
		justify-self: center;
		text-align: center;
	}

	.iexel-match-report-hero {
		text-align: center;
	}

	.iexel-team-events-next {
		padding: 20px 24px 20px 20px;
		text-align: center;
	}

	.iexel-team-events-next-heading {
		justify-items: center;
	}

	.iexel-team-events-next-heading > div {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-team-events-next-heading p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-team-event-badges {
		justify-content: center;
	}

	.iexel-team-events-next-details {
		text-align: center;
	}

	.iexel-event-hero-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.iexel-event-hero-card > div:first-child {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	/* The rule above only reaches the title's copy block when that block is
	   literally the hero's first child — but ResponsiveBannerPicture::render()
	   outputs a <picture> before it whenever the Event has a configured banner
	   image, so :first-child silently stops matching for any branded Event and
	   the copy block is left as a plain shrink-to-fit flex item with no visible
	   width for a wrapped title to centre within. Target the title directly and
	   unambiguously instead of depending on sibling order or shrink-to-fit
	   sizing — this is correct whether or not a banner image is present, and
	   whether the title wraps onto one line or several. */
	.iexel-event-hero-card h1 {
		text-align: center;
		width: 100%;
	}

	.iexel-event-hero-tags,
	.iexel-attendance-hero-meta {
		justify-content: center;
	}

	.iexel-event-hero-card > .iexel-countdown-card {
		width: 86%;
		max-width: 340px;
		min-width: 0;
		margin: 4px auto 0;
		box-sizing: border-box;
	}

	.iexel-attendance-hero-card {
		text-align: center;
	}

	.iexel-attendance-hero-card > p {
		max-width: 300px;
		margin-inline: auto;
	}
}

/* Parent Portal announcements */
.iexel-portal-announcements{margin-bottom:18px}.iexel-portal-announcements-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.iexel-portal-announcements-heading h2{margin:4px 0}.iexel-portal-announcement{align-items:center;border-top:1px solid rgba(15,23,42,.1);display:flex;gap:20px;justify-content:space-between;padding:17px 0}.iexel-portal-announcement h3{margin:5px 0}.iexel-portal-announcement p{margin:0}.iexel-portal-announcement time,.iexel-portal-announcement-full time{color:#64748b;font-size:12px}.iexel-portal-announcement-full>a{display:inline-block;margin-bottom:18px}.iexel-portal-announcement-full h2{margin:6px 0 18px}.iexel-portal-announcement-full div{font-size:16px;line-height:1.65}.iexel-portal-announcement-full li{margin-bottom:8px}@media(max-width:768px){.iexel-portal-announcements-heading,.iexel-portal-announcement{align-items:stretch;flex-direction:column}.iexel-portal-announcement .button{min-height:44px;text-align:center;width:100%}}

/* Club branding is limited to validated custom properties emitted by BrandingService. */
:root{--iexel-brand-primary:#071d49;--iexel-brand-secondary:#10285d;--iexel-brand-accent:#cba135;--iexel-brand-page:#f4f6fa;--iexel-brand-card:#fff;--iexel-brand-text:#16213e;--iexel-brand-muted:#697386;--iexel-brand-success:#2e7d32;--iexel-brand-warning:#9a6700;--iexel-brand-danger:#b32d2e}
.iexel-portal-shell{background:var(--iexel-brand-page);color:var(--iexel-brand-text)}.iexel-portal-topbar,.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{background-color:var(--iexel-brand-primary)}.iexel-club-logo img{display:block;height:auto;max-height:52px;max-width:180px;width:auto}.iexel-generated-logo{align-items:center;background:var(--iexel-brand-accent);border-radius:50%;color:var(--iexel-brand-primary);display:flex;font-weight:900;height:44px;justify-content:center;width:44px}.iexel-avatar img,.iexel-team-member-avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}.has-brand-image{background-position:center;background-repeat:no-repeat;background-size:cover;color:#fff;isolation:isolate}.has-brand-image h1,.has-brand-image h2,.has-brand-image p,.has-brand-image span,.has-brand-image strong{color:inherit}.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{min-height:clamp(210px,28vw,390px)}
@media(max-width:600px){.iexel-club-logo img{max-height:44px;max-width:52px}.iexel-club-title h2{font-size:14px}.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{min-height:210px;background-position:center}.iexel-topbar-right{min-width:0}.iexel-topbar-user>div:last-child{display:none}}
@media(prefers-reduced-data:reduce){.has-brand-image{background-image:none!important}}
@media print{.has-brand-image{background-image:none!important;color:#000!important}.iexel-portal-topbar{background:#fff!important;color:#000!important}}

/* Responsive Media System: images stay decorative while readable content remains above a generated overlay. */
.iexel-responsive-banner{align-items:center;background:linear-gradient(135deg,var(--iexel-brand-primary,#071d49),var(--iexel-brand-secondary,#10285d));color:var(--iexel-banner-foreground,#fff);isolation:isolate;min-height:min(var(--iexel-banner-height,320px),calc(100svh - 5rem));overflow:hidden;position:relative;text-align:var(--iexel-banner-align,left)}
.iexel-responsive-banner>.iexel-responsive-banner-picture{display:block;inset:0;position:absolute;z-index:-2}
.iexel-responsive-banner>.iexel-responsive-banner-picture img{display:block;height:100%;max-width:none;object-fit:cover;object-position:var(--iexel-banner-desktop-position,50% 50%);width:100%}
.iexel-responsive-banner:after{background:linear-gradient(var(--iexel-banner-gradient,to bottom),var(--iexel-banner-overlay,rgba(3,14,31,.62)),var(--iexel-banner-overlay,rgba(3,14,31,.62)));content:"";inset:0;pointer-events:none;position:absolute;z-index:-1}
.iexel-responsive-banner h1,.iexel-responsive-banner h2,.iexel-responsive-banner p,.iexel-responsive-banner strong,.iexel-responsive-banner span,.iexel-responsive-banner a{text-shadow:var(--iexel-banner-shadow,0 2px 8px rgba(0,0,0,.72))}
@media(max-width:1024px){.iexel-responsive-banner>.iexel-responsive-banner-picture img{object-position:var(--iexel-banner-tablet-position,50% 50%)}}
@media(max-width:600px){.iexel-responsive-banner{min-height:min(var(--iexel-banner-height,320px),calc(100svh - 4rem))}.iexel-responsive-banner>.iexel-responsive-banner-picture img{object-position:var(--iexel-banner-mobile-position,50% 50%)}}
@media(prefers-reduced-data:reduce){.iexel-responsive-banner>.iexel-responsive-banner-picture{display:none}}
@media print{.iexel-responsive-banner{background:#fff!important;color:#000!important;min-height:0!important}.iexel-responsive-banner>.iexel-responsive-banner-picture,.iexel-responsive-banner:after{display:none!important}.iexel-responsive-banner *{text-shadow:none!important}}
.iexel-my-team-image{aspect-ratio:16/9;border-radius:12px;display:block;height:auto;margin:0 0 16px;object-fit:cover;width:100%}.iexel-portal-topbar .iexel-avatar img{display:block;height:40px;object-fit:cover;width:40px}.iexel-portal-topbar .iexel-avatar>span{align-items:center;display:flex;height:40px;justify-content:center;width:40px}
.iexel-person-avatar{align-items:center;background:var(--iexel-brand-secondary,#10285d);border:2px solid rgba(255,255,255,.7);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 auto;justify-content:center;overflow:hidden}.iexel-person-avatar img{display:block;height:100%;object-fit:cover;width:100%}.iexel-person-avatar-initials{align-items:center;display:inline-flex;font-weight:850;justify-content:center;letter-spacing:.02em;line-height:1;text-align:center;user-select:none}.iexel-person-avatar.is-hero{height:clamp(96px,12vw,150px);width:clamp(96px,12vw,150px)}.iexel-person-avatar.is-hero .iexel-person-avatar-initials{font-size:clamp(2.2rem,4vw,3.2rem)}.iexel-person-avatar.is-card{height:64px;width:64px}.iexel-person-avatar.is-card .iexel-person-avatar-initials{font-size:1.45rem}.iexel-person-avatar.is-squad{height:48px;width:48px}.iexel-person-avatar.is-squad .iexel-person-avatar-initials{font-size:1.1rem}.iexel-person-avatar.is-compact{height:36px;width:36px}.iexel-person-avatar.is-compact .iexel-person-avatar-initials{font-size:.85rem}.iexel-person-avatar.is-timeline{height:34px;width:34px}.iexel-person-avatar.is-timeline .iexel-person-avatar-initials{font-size:.8rem}.iexel-person-avatar.is-inline{height:22px;vertical-align:middle;width:22px}.iexel-person-avatar.is-inline .iexel-person-avatar-initials{font-size:.55rem}.iexel-os-hero-profile{align-self:center;margin-left:auto}.iexel-player-statistics-profile-image{align-self:center;margin-left:auto}.iexel-player-statistics-hero-main{align-items:center}.iexel-incident-timeline li{grid-template-columns:52px auto minmax(0,1fr)}.iexel-incident-substitution-avatars{display:flex;flex-direction:column}.iexel-incident-substitution-avatars .iexel-person-avatar+.iexel-person-avatar{margin-left:14px;margin-top:-10px}.iexel-match-report-player{grid-template-columns:42px 36px minmax(0,1fr)}.iexel-match-report-potm .iexel-person-avatar{margin-right:8px;vertical-align:middle}@media(max-width:600px){.iexel-os-hero-profile{margin:12px auto 0}.iexel-player-statistics-profile-image{margin:0 auto}.iexel-person-avatar.is-hero{height:96px;width:96px}.iexel-person-avatar.is-hero .iexel-person-avatar-initials{font-size:2.2rem}.iexel-incident-timeline li{grid-template-columns:44px 34px minmax(0,1fr);padding:10px}.iexel-incident-substitution-avatars{max-width:40px}}
.iexel-team-member-avatar .iexel-person-avatar.is-squad{height:40px;width:40px}
.iexel-coach-hero-mark{align-items:center;background:rgba(7,29,73,.34);border:1px solid rgba(255,255,255,.34);border-radius:24px;box-shadow:0 12px 30px rgba(2,6,23,.36),0 0 22px rgba(203,161,53,.2);box-sizing:border-box;color:var(--iexel-color-gold,#cba135)!important;display:inline-flex;flex:0 0 auto;font-size:clamp(2.4rem,5vw,3.4rem)!important;font-weight:850;height:120px;justify-content:center;letter-spacing:.02em;line-height:1;overflow:hidden;padding:0;text-align:center;user-select:none;width:120px}
.iexel-coach-hero-mark img{border-radius:22px;display:block;height:100%;object-fit:contain;width:100%}
.iexel-experience-brand>.iexel-experience-brand-mark,.iexel-experience-brand-mark{align-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(203,161,53,.75);border-radius:12px;box-shadow:0 4px 12px rgba(2,6,23,.24);box-sizing:border-box;color:#fff!important;display:inline-flex;font-size:1.35rem!important;font-weight:850;height:46px;justify-content:center;line-height:1;overflow:hidden;padding:0;text-align:center;user-select:none;width:46px}
.iexel-experience-brand-mark img{border-radius:10px;display:block;height:100%;object-fit:contain;width:100%}
@media(max-width:600px){.iexel-coach-hero-mark{border-radius:18px;font-size:2.4rem!important;height:88px;width:88px}.iexel-coach-hero-mark img{border-radius:16px}}

/* Player Workspace overview */
.iexel-player-workspace{display:grid;gap:24px;max-width:100%;min-width:0;width:100%}
.iexel-player-workspace-grid{display:grid;gap:24px;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);min-width:0}
.iexel-player-workspace-hero{align-items:center;background:linear-gradient(135deg,var(--iexel-midnight),var(--iexel-navy));border:1px solid var(--iexel-border);border-radius:var(--iexel-radius-large);box-shadow:var(--iexel-shadow-medium);color:var(--iexel-white);display:flex;gap:24px;min-width:0;padding:clamp(22px,4vw,38px)}
.iexel-player-workspace-hero__avatar{display:flex;flex:0 0 auto}
.iexel-player-workspace-hero__copy{min-width:0}
.iexel-player-workspace-hero__title{align-items:center;display:flex;flex-wrap:wrap;gap:12px}
.iexel-player-workspace-hero h1{color:var(--iexel-white);font-size:clamp(2rem,5vw,3.5rem);line-height:1.05;margin:8px 0;overflow-wrap:anywhere}
.iexel-player-workspace-hero p{color:var(--iexel-muted);font-weight:700;margin:4px 0;overflow-wrap:anywhere}
.iexel-player-workspace-hero__number{display:block;margin-top:14px;overflow-wrap:anywhere}
.iexel-player-workspace-overview,.iexel-player-workspace-registration,.iexel-player-workspace-medical-safety{background:var(--iexel-brand-card);color:var(--iexel-brand-text);min-width:0}
.iexel-player-workspace-overview .iexel-section-card-header h3,.iexel-player-workspace-registration .iexel-section-card-header h3,.iexel-player-workspace-medical-safety .iexel-section-card-header h3{color:var(--iexel-brand-text)}
.iexel-player-workspace-details{display:grid;gap:0;margin:0}
.iexel-player-workspace-details>div{align-items:center;border-top:1px solid var(--iexel-border);display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);padding:14px 0}
.iexel-player-workspace-details>div:first-child{border-top:0;padding-top:0}
.iexel-player-workspace-details>div:last-child{padding-bottom:0}
.iexel-player-workspace-details dt{color:var(--iexel-brand-muted);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.iexel-player-workspace-details dd{color:var(--iexel-brand-text);font-weight:750;margin:0;min-width:0;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-family-contacts,.iexel-player-workspace .iexel-player-workspace-emergency-contact{background:var(--iexel-brand-card);color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-family-contacts .iexel-section-card-header h3,.iexel-player-workspace .iexel-player-workspace-emergency-contact .iexel-section-card-header h3,.iexel-player-workspace .iexel-player-workspace-contact h4{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-contact-list{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.iexel-player-workspace .iexel-player-workspace-contact{border-top:1px solid var(--iexel-border);color:var(--iexel-brand-text);min-width:0;padding-top:16px}
.iexel-player-workspace .iexel-player-workspace-contact-list .iexel-player-workspace-contact:first-child,.iexel-player-workspace .iexel-player-workspace-emergency-contact .iexel-player-workspace-contact{border-top:0;padding-top:0}
.iexel-player-workspace .iexel-player-workspace-contact h4{font-size:1.05rem;margin:0 0 12px;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-contact dl{display:grid;gap:10px;margin:0}
.iexel-player-workspace .iexel-player-workspace-contact dl>div{display:grid;gap:4px;min-width:0}
.iexel-player-workspace .iexel-player-workspace-contact dt{color:var(--iexel-brand-text);font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.iexel-player-workspace .iexel-player-workspace-contact dd{color:var(--iexel-brand-text);font-weight:750;margin:0;min-width:0;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-contact a{align-items:center;color:var(--iexel-brand-text);display:inline-flex;font-weight:850;min-height:44px;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.iexel-player-workspace .iexel-player-workspace-contact a:hover{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-contact a:focus-visible{border-radius:4px;color:var(--iexel-brand-text);outline:3px solid var(--iexel-gold);outline-offset:3px}
.iexel-player-workspace .iexel-player-workspace-contact-empty{color:var(--iexel-brand-text);font-weight:700;margin:0}
.iexel-player-workspace-registration__status{margin:0;overflow-wrap:anywhere}
.iexel-player-workspace-safety-details{display:grid;gap:16px;margin:0;min-width:0}
.iexel-player-workspace-safety-details>div{border-top:1px solid var(--iexel-border);display:grid;gap:6px;min-width:0;padding-top:16px}
.iexel-player-workspace-safety-details>div:first-child{border-top:0;padding-top:0}
.iexel-player-workspace-safety-details dt{color:var(--iexel-brand-muted);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.iexel-player-workspace-safety-details dd{color:var(--iexel-brand-text);font-weight:700;line-height:1.55;margin:0;overflow-wrap:anywhere;white-space:normal}
.iexel-player-workspace .iexel-player-workspace-football-tools{background:var(--iexel-brand-card);color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-football-tools .iexel-section-card-header h3{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-football-tools__intro{color:var(--iexel-brand-muted);font-weight:650;margin:0 0 18px}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));min-width:0}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions a{align-items:flex-start;background:var(--iexel-navy);border:2px solid var(--iexel-gold);border-radius:var(--iexel-radius-medium);box-sizing:border-box;color:var(--iexel-white);display:flex;flex-direction:column;justify-content:center;min-height:76px;min-width:0;padding:14px 16px;text-decoration:none}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions strong,.iexel-player-workspace .iexel-player-workspace-football-tools__actions span{color:inherit;max-width:100%;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions strong{font-size:.95rem}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions span{font-size:.78rem;font-weight:650;line-height:1.45;margin-top:4px}
	}

	.iexel-team-statistics-scope {
		width: 100%;
		max-width: 340px;
		justify-self: center;
	}

	.iexel-team-statistics-hero-metrics {
		margin-inline: auto;
		text-align: center;
	}

	.iexel-matchday-hero {
		text-align: center;
	}

	.iexel-matchday-hero__main {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.iexel-matchday-hero__main > p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-matchday-hero__match-info,
	.iexel-matchday-hero__meta,
	.iexel-matchday-hero__side {
		width: 100%;
		max-width: 340px;
		margin-inline: auto;
	}

	.iexel-matchday-hero__meta {
		justify-content: center;
	}

	.iexel-match-mode-hero {
		text-align: center;
	}

	.iexel-match-mode-hero > div {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.iexel-match-mode-hero p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-match-mode-hero dl,
	.iexel-match-report-hero dl {
		width: 100%;
		max-width: 340px;
		justify-self: center;
		text-align: center;
	}

	.iexel-match-report-hero {
		text-align: center;
	}

	.iexel-team-events-next {
		padding: 20px 24px 20px 20px;
		text-align: center;
	}

	.iexel-team-events-next-heading {
		justify-items: center;
	}

	.iexel-team-events-next-heading > div {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.iexel-team-events-next-heading p {
		max-width: 300px;
		margin-inline: auto;
	}

	.iexel-team-event-badges {
		justify-content: center;
	}

	.iexel-team-events-next-details {
		text-align: center;
	}

	.iexel-event-hero-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.iexel-event-hero-card > div:first-child {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	/* The rule above only reaches the title's copy block when that block is
	   literally the hero's first child — but ResponsiveBannerPicture::render()
	   outputs a <picture> before it whenever the Event has a configured banner
	   image, so :first-child silently stops matching for any branded Event and
	   the copy block is left as a plain shrink-to-fit flex item with no visible
	   width for a wrapped title to centre within. Target the title directly and
	   unambiguously instead of depending on sibling order or shrink-to-fit
	   sizing — this is correct whether or not a banner image is present, and
	   whether the title wraps onto one line or several. */
	.iexel-event-hero-card h1 {
		text-align: center;
		width: 100%;
	}

	.iexel-event-hero-tags,
	.iexel-attendance-hero-meta {
		justify-content: center;
	}

	.iexel-event-hero-card > .iexel-countdown-card {
		width: 86%;
		max-width: 340px;
		min-width: 0;
		margin: 4px auto 0;
		box-sizing: border-box;
	}

	.iexel-attendance-hero-card {
		text-align: center;
	}

	.iexel-attendance-hero-card > p {
		max-width: 300px;
		margin-inline: auto;
	}
}

/* Parent Portal announcements */
.iexel-portal-announcements{margin-bottom:18px}.iexel-portal-announcements-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.iexel-portal-announcements-heading h2{margin:4px 0}.iexel-portal-announcement{align-items:center;border-top:1px solid rgba(15,23,42,.1);display:flex;gap:20px;justify-content:space-between;padding:17px 0}.iexel-portal-announcement h3{margin:5px 0}.iexel-portal-announcement p{margin:0}.iexel-portal-announcement time,.iexel-portal-announcement-full time{color:#64748b;font-size:12px}.iexel-portal-announcement-full>a{display:inline-block;margin-bottom:18px}.iexel-portal-announcement-full h2{margin:6px 0 18px}.iexel-portal-announcement-full div{font-size:16px;line-height:1.65}.iexel-portal-announcement-full li{margin-bottom:8px}@media(max-width:768px){.iexel-portal-announcements-heading,.iexel-portal-announcement{align-items:stretch;flex-direction:column}.iexel-portal-announcement .button{min-height:44px;text-align:center;width:100%}}

/* Shared Messages month navigation: reuses the month-disclosure
   primitive/markup and MonthDisclosureGrouping helper defined above
   verbatim (already shared by Main/Team Past Events and Team Completed
   Registers) -- .iexel-os-card (this page's own wrapper) is ALSO one of
   the premium dark immersive surfaces (see its own later, more specific
   definition further up this file: dark gradient background, white
   on-dark text, the same inset gold accent stripe used elsewhere), not
   the legacy plain-white card its very first, superseded declaration
   might suggest -- confirmed by direct contrast measurement against real
   rendered output, so the primitive's own --iexel-gold-bright/
   --iexel-muted tokens already apply correctly here with zero colour
   overrides needed. Only a spacing adjustment is added: gap:0 on the
   body replaces the primitive's own 12px grid gap, which would otherwise
   double up with each .iexel-portal-announcement row's own existing
   border-top+padding spacing model (unrelated to surface colour). */
.iexel-portal-announcements .iexel-month-disclosure-body { gap: 0; }

/* Product Owner acceptance fix: Messages now carries the same restrained
   club-accent TOP trim every other primary Club OS module uses (reusing
   the established .iexel-accent-top-module primitive verbatim -- see its
   own definition and the compound-selector rationale at the top of this
   file -- not a new component, still var(--iexel-gold), never a hardcoded
   hex). The compound selector is required, not optional: .iexel-os-card's
   own shared rule already sets a full 1px border (which itself implies a
   border-top) at equal (0,1,0) specificity, so a bare .iexel-accent-top-
   module rule would silently lose to source order; pairing it with
   .iexel-portal-announcements raises specificity to (0,2,0), guaranteed
   to win. .iexel-os-card's shared box-shadow (the inset 4px LEFT gold
   stripe -- the "legacy" rail style this exact primitive was created to
   replace elsewhere) is overridden here too, scoped to Messages only --
   .iexel-os-card itself is completely untouched, so every OTHER consumer
   of that shared class is unaffected. The individual-announcement view
   (full()) renders inside this exact same <section>, so it receives the
   identical treatment automatically -- no separate rule needed.

   Follow-up Product Owner acceptance fix: .iexel-os-card's own shared
   background (a 92%-opacity var(--iexel-card) tint, blended with the
   light body.iexel-portal page behind it) reads as a muted/slate navy
   next to the flat, fully-opaque var(--iexel-midnight) the Club OS
   topbar/nav uses immediately above Messages. Rather than inventing a new
   colour, this reuses the exact same fully-opaque
   "linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight))"
   background already established on .iexel-match-mode-card -- itself the
   reference "vivid premium card, gold TOP edge, no left rail" pattern
   this Messages treatment was already modelled on. Both existing tokens,
   no new hex; scoped to this one compound selector, so .iexel-os-card's
   shared rule (and every other card using it) is completely untouched. */
.iexel-portal-announcements.iexel-accent-top-module {
	background: linear-gradient(180deg, var(--iexel-navy), var(--iexel-midnight));
	border-top: 4px solid var(--iexel-gold);
	box-shadow: 0 22px 60px rgba(0,0,0,.38);
}

/* Product Owner acceptance fix: the list preview now renders each
   meaningful body line as its own <p> (see
   PortalAnnouncementsPage::preview_lines()) rather than one concatenated
   run-on string. .iexel-portal-announcement p already sets margin:0
   (correct for the single-paragraph case elsewhere); a small top margin
   on every paragraph after the first restores readable line separation
   without the large gap a full paragraph margin would reintroduce. */
.iexel-portal-announcement p + p { margin-top: 6px; }

/* Follow-up Product Owner acceptance fix: .iexel-portal-announcement time's
   own pre-existing colour (#64748b, from the original light-surface
   "Parent Portal announcements" rule above -- untouched by any Messages
   batch until now) measured at only ~3.4:1 against the new, richer navy
   background, below the 4.5:1 WCAG AA threshold for this 12px text (it
   was already below AA -- ~2.8:1 -- against the previous, lighter
   background too; the darker background makes an existing gap newly
   worth closing rather than a regression this batch introduces). Reusing
   var(--iexel-muted) -- the existing dark-surface muted-text token this
   same navy/midnight family already uses elsewhere (month count, chevron)
   -- restores strong contrast (~6:1+) with no new colour and no change
   to font-size/weight/layout. Scoped via the .iexel-portal-announcements
   ancestor for safe specificity over the shared base rule; that base
   rule itself is untouched. */
.iexel-portal-announcements .iexel-portal-announcement time,
.iexel-portal-announcements .iexel-portal-announcement-full time { color: var(--iexel-muted); }

/* Club branding is limited to validated custom properties emitted by BrandingService. */
:root{--iexel-brand-primary:#071d49;--iexel-brand-secondary:#10285d;--iexel-brand-accent:#cba135;--iexel-brand-page:#f4f6fa;--iexel-brand-card:#fff;--iexel-brand-text:#16213e;--iexel-brand-muted:#697386;--iexel-brand-success:#2e7d32;--iexel-brand-warning:#9a6700;--iexel-brand-danger:#b32d2e}
.iexel-portal-shell{background:var(--iexel-brand-page);color:var(--iexel-brand-text)}.iexel-portal-topbar,.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{background-color:var(--iexel-brand-primary)}.iexel-club-logo img{display:block;height:auto;max-height:52px;max-width:180px;width:auto}.iexel-generated-logo{align-items:center;background:var(--iexel-brand-accent);border-radius:50%;color:var(--iexel-brand-primary);display:flex;font-weight:900;height:44px;justify-content:center;width:44px}.iexel-avatar img,.iexel-team-member-avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}.has-brand-image{background-position:center;background-repeat:no-repeat;background-size:cover;color:#fff;isolation:isolate}.has-brand-image h1,.has-brand-image h2,.has-brand-image p,.has-brand-image span,.has-brand-image strong{color:inherit}.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{min-height:clamp(210px,28vw,390px)}
@media(max-width:600px){.iexel-club-logo img{max-height:44px;max-width:52px}.iexel-club-title h2{font-size:14px}.iexel-team-workspace-hero,.iexel-event-hero-card,.iexel-experience-hero{min-height:210px;background-position:center}.iexel-topbar-right{min-width:0}.iexel-topbar-user>div:last-child{display:none}}
@media(prefers-reduced-data:reduce){.has-brand-image{background-image:none!important}}
@media print{.has-brand-image{background-image:none!important;color:#000!important}.iexel-portal-topbar{background:#fff!important;color:#000!important}}

/* Responsive Media System: images stay decorative while readable content remains above a generated overlay. */
.iexel-responsive-banner{align-items:center;background:linear-gradient(135deg,var(--iexel-brand-primary,#071d49),var(--iexel-brand-secondary,#10285d));color:var(--iexel-banner-foreground,#fff);isolation:isolate;min-height:min(var(--iexel-banner-height,320px),calc(100svh - 5rem));overflow:hidden;position:relative;text-align:var(--iexel-banner-align,left)}
.iexel-responsive-banner>.iexel-responsive-banner-picture{display:block;inset:0;position:absolute;z-index:-2}
.iexel-responsive-banner>.iexel-responsive-banner-picture img{display:block;height:100%;max-width:none;object-fit:cover;object-position:var(--iexel-banner-desktop-position,50% 50%);width:100%}
.iexel-responsive-banner:after{background:linear-gradient(var(--iexel-banner-gradient,to bottom),var(--iexel-banner-overlay,rgba(3,14,31,.62)),var(--iexel-banner-overlay,rgba(3,14,31,.62)));content:"";inset:0;pointer-events:none;position:absolute;z-index:-1}
.iexel-responsive-banner h1,.iexel-responsive-banner h2,.iexel-responsive-banner p,.iexel-responsive-banner strong,.iexel-responsive-banner span,.iexel-responsive-banner a{text-shadow:var(--iexel-banner-shadow,0 2px 8px rgba(0,0,0,.72))}
@media(max-width:1024px){.iexel-responsive-banner>.iexel-responsive-banner-picture img{object-position:var(--iexel-banner-tablet-position,50% 50%)}}
@media(max-width:600px){.iexel-responsive-banner{min-height:min(var(--iexel-banner-height,320px),calc(100svh - 4rem))}.iexel-responsive-banner>.iexel-responsive-banner-picture img{object-position:var(--iexel-banner-mobile-position,50% 50%)}}
@media(prefers-reduced-data:reduce){.iexel-responsive-banner>.iexel-responsive-banner-picture{display:none}}
@media print{.iexel-responsive-banner{background:#fff!important;color:#000!important;min-height:0!important}.iexel-responsive-banner>.iexel-responsive-banner-picture,.iexel-responsive-banner:after{display:none!important}.iexel-responsive-banner *{text-shadow:none!important}}
.iexel-my-team-image{aspect-ratio:16/9;border-radius:12px;display:block;height:auto;margin:0 0 16px;object-fit:cover;width:100%}.iexel-portal-topbar .iexel-avatar img{display:block;height:40px;object-fit:cover;width:40px}.iexel-portal-topbar .iexel-avatar>span{align-items:center;display:flex;height:40px;justify-content:center;width:40px}
.iexel-person-avatar{align-items:center;background:var(--iexel-brand-secondary,#10285d);border:2px solid rgba(255,255,255,.7);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 auto;justify-content:center;overflow:hidden}.iexel-person-avatar img{display:block;height:100%;object-fit:cover;width:100%}.iexel-person-avatar-initials{align-items:center;display:inline-flex;font-weight:850;justify-content:center;letter-spacing:.02em;line-height:1;text-align:center;user-select:none}.iexel-person-avatar.is-hero{height:clamp(96px,12vw,150px);width:clamp(96px,12vw,150px)}.iexel-person-avatar.is-hero .iexel-person-avatar-initials{font-size:clamp(2.2rem,4vw,3.2rem)}.iexel-person-avatar.is-card{height:64px;width:64px}.iexel-person-avatar.is-card .iexel-person-avatar-initials{font-size:1.45rem}.iexel-person-avatar.is-squad{height:48px;width:48px}.iexel-person-avatar.is-squad .iexel-person-avatar-initials{font-size:1.1rem}.iexel-person-avatar.is-compact{height:36px;width:36px}.iexel-person-avatar.is-compact .iexel-person-avatar-initials{font-size:.85rem}.iexel-person-avatar.is-timeline{height:34px;width:34px}.iexel-person-avatar.is-timeline .iexel-person-avatar-initials{font-size:.8rem}.iexel-person-avatar.is-inline{height:22px;vertical-align:middle;width:22px}.iexel-person-avatar.is-inline .iexel-person-avatar-initials{font-size:.55rem}.iexel-os-hero-profile{align-self:center;margin-left:auto}.iexel-player-statistics-profile-image{align-self:center;margin-left:auto}.iexel-player-statistics-hero-main{align-items:center}.iexel-incident-timeline li{grid-template-columns:52px auto minmax(0,1fr)}.iexel-incident-substitution-avatars{display:flex;flex-direction:column}.iexel-incident-substitution-avatars .iexel-person-avatar+.iexel-person-avatar{margin-left:14px;margin-top:-10px}.iexel-match-report-player{grid-template-columns:42px 36px minmax(0,1fr)}.iexel-match-report-potm .iexel-person-avatar{margin-right:8px;vertical-align:middle}@media(max-width:600px){.iexel-os-hero-profile{margin:12px auto 0}.iexel-player-statistics-profile-image{margin:0 auto}.iexel-person-avatar.is-hero{height:96px;width:96px}.iexel-person-avatar.is-hero .iexel-person-avatar-initials{font-size:2.2rem}.iexel-incident-timeline li{grid-template-columns:44px 34px minmax(0,1fr);padding:10px}.iexel-incident-substitution-avatars{max-width:40px}}
.iexel-team-member-avatar .iexel-person-avatar.is-squad{height:40px;width:40px}
.iexel-coach-hero-mark{align-items:center;background:rgba(7,29,73,.34);border:1px solid rgba(255,255,255,.34);border-radius:24px;box-shadow:0 12px 30px rgba(2,6,23,.36),0 0 22px rgba(203,161,53,.2);box-sizing:border-box;color:var(--iexel-color-gold,#cba135)!important;display:inline-flex;flex:0 0 auto;font-size:clamp(2.4rem,5vw,3.4rem)!important;font-weight:850;height:120px;justify-content:center;letter-spacing:.02em;line-height:1;overflow:hidden;padding:0;text-align:center;user-select:none;width:120px}
.iexel-coach-hero-mark img{border-radius:22px;display:block;height:100%;object-fit:contain;width:100%}
.iexel-experience-brand>.iexel-experience-brand-mark,.iexel-experience-brand-mark{align-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(203,161,53,.75);border-radius:12px;box-shadow:0 4px 12px rgba(2,6,23,.24);box-sizing:border-box;color:#fff!important;display:inline-flex;font-size:1.35rem!important;font-weight:850;height:46px;justify-content:center;line-height:1;overflow:hidden;padding:0;text-align:center;user-select:none;width:46px}
.iexel-experience-brand-mark img{border-radius:10px;display:block;height:100%;object-fit:contain;width:100%}
@media(max-width:600px){.iexel-coach-hero-mark{border-radius:18px;font-size:2.4rem!important;height:88px;width:88px}.iexel-coach-hero-mark img{border-radius:16px}}

/* Player Workspace overview */
.iexel-player-workspace{display:grid;gap:24px;min-width:0}
.iexel-player-workspace-hero{align-items:center;background:linear-gradient(135deg,var(--iexel-midnight),var(--iexel-navy));border:1px solid var(--iexel-border);border-radius:var(--iexel-radius-large);box-shadow:var(--iexel-shadow-medium);color:var(--iexel-white);display:flex;gap:24px;min-width:0;padding:clamp(22px,4vw,38px)}
.iexel-player-workspace-hero__avatar{display:flex;flex:0 0 auto}
.iexel-player-workspace-hero__copy{min-width:0}
.iexel-player-workspace-hero__title{align-items:center;display:flex;flex-wrap:wrap;gap:12px}
.iexel-player-workspace-hero h1{color:var(--iexel-white);font-size:clamp(2rem,5vw,3.5rem);line-height:1.05;margin:8px 0;overflow-wrap:anywhere}
.iexel-player-workspace-hero p{color:var(--iexel-muted);font-weight:700;margin:4px 0;overflow-wrap:anywhere}
.iexel-player-workspace-hero__number{display:block;margin-top:14px;overflow-wrap:anywhere}
.iexel-player-workspace-overview{background:var(--iexel-brand-card);color:var(--iexel-brand-text)}
.iexel-player-workspace-overview .iexel-section-card-header h3{color:var(--iexel-brand-text)}
.iexel-player-workspace-details{display:grid;gap:0;margin:0}
.iexel-player-workspace-details>div{align-items:center;border-top:1px solid var(--iexel-border);display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);padding:14px 0}
.iexel-player-workspace-details>div:first-child{border-top:0;padding-top:0}
.iexel-player-workspace-details>div:last-child{padding-bottom:0}
.iexel-player-workspace-details dt{color:var(--iexel-brand-muted);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.iexel-player-workspace-details dd{color:var(--iexel-brand-text);font-weight:750;margin:0;min-width:0;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-family-contacts,.iexel-player-workspace .iexel-player-workspace-emergency-contact{background:var(--iexel-brand-card);color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-family-contacts .iexel-section-card-header h3,.iexel-player-workspace .iexel-player-workspace-emergency-contact .iexel-section-card-header h3,.iexel-player-workspace .iexel-player-workspace-contact h4{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-contact-list{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.iexel-player-workspace .iexel-player-workspace-contact{border-top:1px solid var(--iexel-border);color:var(--iexel-brand-text);min-width:0;padding-top:16px}
.iexel-player-workspace .iexel-player-workspace-contact-list .iexel-player-workspace-contact:first-child,.iexel-player-workspace .iexel-player-workspace-emergency-contact .iexel-player-workspace-contact{border-top:0;padding-top:0}
.iexel-player-workspace .iexel-player-workspace-contact h4{font-size:1.05rem;margin:0 0 12px;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-contact dl{display:grid;gap:10px;margin:0}
.iexel-player-workspace .iexel-player-workspace-contact dl>div{display:grid;gap:4px;min-width:0}
.iexel-player-workspace .iexel-player-workspace-contact dt{color:var(--iexel-brand-text);font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.iexel-player-workspace .iexel-player-workspace-contact dd{color:var(--iexel-brand-text);font-weight:750;margin:0;min-width:0;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-contact a{color:var(--iexel-brand-text);font-weight:850;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.iexel-player-workspace .iexel-player-workspace-contact a:hover{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-contact a:focus-visible{border-radius:4px;color:var(--iexel-brand-text);outline:3px solid var(--iexel-gold);outline-offset:3px}
.iexel-player-workspace .iexel-player-workspace-contact-empty{color:var(--iexel-brand-text);font-weight:700;margin:0}
.iexel-player-workspace .iexel-player-workspace-football-tools{background:var(--iexel-brand-card);color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-football-tools .iexel-section-card-header h3{color:var(--iexel-brand-text)}
.iexel-player-workspace .iexel-player-workspace-football-tools__intro{color:var(--iexel-brand-muted);font-weight:650;margin:0 0 18px}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));min-width:0}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions a{align-items:flex-start;background:var(--iexel-navy);border:2px solid var(--iexel-gold);border-radius:var(--iexel-radius-medium);box-sizing:border-box;color:var(--iexel-white);display:flex;flex-direction:column;justify-content:center;min-height:76px;min-width:0;padding:14px 16px;text-decoration:none}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions strong,.iexel-player-workspace .iexel-player-workspace-football-tools__actions span{color:inherit;max-width:100%;overflow-wrap:anywhere}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions strong{font-size:.95rem}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions span{font-size:.78rem;font-weight:650;line-height:1.45;margin-top:4px}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions a:hover{background:var(--iexel-gold);color:var(--iexel-navy)}
.iexel-player-workspace .iexel-player-workspace-football-tools__actions a:focus-visible{background:var(--iexel-navy);color:var(--iexel-white);outline:3px solid var(--iexel-gold);outline-offset:3px}
.iexel-player-workspace-actions{display:flex;justify-content:flex-start}
.iexel-player-workspace-actions .iexel-button-secondary{background:transparent;border-color:var(--iexel-gold);color:var(--iexel-navy)}
.iexel-player-workspace-actions .iexel-button-secondary:hover{background:var(--iexel-gold);border-color:var(--iexel-gold);color:var(--iexel-navy)}
.iexel-player-workspace-actions .iexel-button-secondary:focus-visible{background:var(--iexel-brand-card);border-color:var(--iexel-gold);color:var(--iexel-navy);outline:3px solid var(--iexel-gold);outline-offset:3px}
@media(max-width:600px){.iexel-player-workspace{gap:18px}.iexel-player-workspace-grid{gap:18px;grid-template-columns:1fr}.iexel-player-workspace-hero{align-items:flex-start;flex-direction:column;padding:22px}.iexel-player-workspace-hero__avatar{align-self:center}.iexel-player-workspace-hero__copy{width:100%}.iexel-player-workspace-details>div{align-items:start;gap:6px;grid-template-columns:1fr}.iexel-player-workspace .iexel-player-workspace-football-tools__actions{grid-template-columns:1fr}.iexel-player-workspace .iexel-player-workspace-football-tools__actions a{width:100%}.iexel-player-workspace-actions .iexel-button{justify-content:center;min-height:44px;width:100%}}
@media(max-width:390px){.iexel-player-workspace-hero{gap:18px;padding:18px}.iexel-player-workspace-hero h1{font-size:clamp(1.75rem,10vw,2.35rem)}.iexel-player-workspace-hero__title{align-items:flex-start;flex-direction:column}.iexel-player-workspace .iexel-section-card{padding-inline:16px}}

.iexel-player-workspace .iexel-player-personal-targets { background: var(--iexel-brand-card); color: var(--iexel-brand-text); box-sizing: border-box; max-width: 100%; min-width: 0; }
.iexel-player-workspace .iexel-player-personal-targets .iexel-section-card-header h3 { color: var(--iexel-brand-text); }
.iexel-player-personal-targets .iexel-button { box-sizing: border-box; max-width: 100%; }
.iexel-player-personal-targets input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); cursor: pointer; }
.iexel-player-personal-targets__intro { color: var(--iexel-brand-muted); font-weight: 650; margin: 0 0 16px; }
.iexel-player-personal-targets__feedback { margin-bottom: 16px; box-sizing: border-box; max-width: 100%; }
.iexel-player-personal-targets__header-action { margin-bottom: 20px; box-sizing: border-box; max-width: 100%; }
.iexel-target-empty-state { text-align: center; padding: 24px 16px; border: 1px dashed rgba(203, 161, 53, 0.4); border-radius: var(--iexel-radius-medium); margin-bottom: 20px; background: rgba(10, 31, 73, 0.5); box-sizing: border-box; max-width: 100%; }
.iexel-target-empty-mark { font-size: 2rem; display: block; margin-bottom: 8px; }
.iexel-target-empty-title { color: var(--iexel-white); font-size: 1.15rem; font-weight: 800; margin: 0 0 6px; }
.iexel-target-empty-copy { color: var(--iexel-brand-muted); margin: 0; font-weight: 600; }
.iexel-target-create-disclosure { margin-bottom: 16px; box-sizing: border-box; max-width: 100%; }
.iexel-target-create-disclosure > summary { list-style: none; display: inline-flex; cursor: pointer; box-sizing: border-box; max-width: 100%; }
.iexel-target-create-disclosure > summary::-webkit-details-marker { display: none; }
.iexel-target-form { display: grid; gap: 14px; background: var(--iexel-navy); border: 1px solid rgba(203, 161, 53, 0.35); border-radius: var(--iexel-radius-medium); padding: 18px; margin-top: 12px; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.iexel-target-form-field { display: grid; gap: 6px; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.iexel-target-form-field label { color: var(--iexel-gold); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.iexel-target-form-field input[type="text"], .iexel-target-form-field input[type="date"] { background: var(--iexel-midnight-2, #071d49); border: 2px solid #64748b; border-radius: 8px; color: var(--iexel-white); font: inherit; min-height: 44px; padding: 8px 12px; box-sizing: border-box; width: 100%; max-width: 100%; }
.iexel-target-form-field input:focus, .iexel-target-form-field input:focus-visible { border-color: var(--iexel-gold); outline: 3px solid rgba(203, 161, 53, 0.45); outline-offset: 2px; }
.iexel-target-form-hint { color: var(--iexel-brand-muted); font-size: 0.78rem; font-weight: 600; line-height: 1.4; }
.iexel-target-form-actions { display: flex; gap: 10px; margin-top: 4px; box-sizing: border-box; max-width: 100%; }
.iexel-target-group { margin-bottom: 24px; box-sizing: border-box; max-width: 100%; min-width: 0; }
.iexel-target-group-title { display: flex; align-items: center; gap: 10px; color: var(--iexel-brand-text, #16213e); font-size: 1.05rem; font-weight: 800; margin: 0 0 12px; }
.iexel-target-group-count { display: inline-flex; align-items: center; justify-content: center; background: rgba(203, 161, 53, 0.2); color: var(--iexel-brand-text, #16213e); border: 1px solid rgba(203, 161, 53, 0.4); font-size: 0.78rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; line-height: 1.2; }
.iexel-target-no-active { color: var(--iexel-brand-muted); font-weight: 650; margin: 0 0 18px; }
.iexel-target-list { display: grid; gap: 12px; box-sizing: border-box; max-width: 100%; min-width: 0; }
.iexel-target-card { background: var(--iexel-navy); border: 1px solid rgba(203, 161, 53, 0.25); border-radius: var(--iexel-radius-medium); padding: 16px; display: grid; gap: 12px; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.iexel-target-card.is-active { border-left: 4px solid var(--iexel-gold); }
.iexel-target-card.is-completed { border-left: 4px solid #4ade80; opacity: 0.95; }
.iexel-target-card.is-archived { border-left: 4px solid #94a3b8; opacity: 0.8; }
.iexel-target-card__header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; box-sizing: border-box; max-width: 100%; min-width: 0; }
.iexel-target-card__identity { display: grid; gap: 6px; min-width: 0; max-width: 100%; flex: 1 1 240px; justify-items: start; align-items: start; }
.iexel-target-card__title { color: var(--iexel-white); font-size: 1.02rem; font-weight: 750; margin: 0; line-height: 1.4; overflow-wrap: anywhere; }
.iexel-target-card__date { font-size: 0.8rem; font-weight: 700; color: var(--iexel-brand-muted); display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.iexel-target-date-label { text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.05em; color: var(--iexel-gold); }
.iexel-target-badge { display: inline-flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; width: auto; max-width: fit-content; align-self: flex-start; justify-self: start; flex: 0 0 auto; line-height: 1.3; }
.iexel-target-badge.is-active { background: rgba(203, 161, 53, 0.2); color: var(--iexel-gold); border: 1px solid rgba(203, 161, 53, 0.4); }
.iexel-target-badge.is-completed { background: rgba(74, 222, 128, 0.15); color: #86efac; border: 1px solid rgba(74, 222, 128, 0.35); }
.iexel-target-badge.is-archived { background: rgba(148, 163, 184, 0.15); color: #cbd5e1; border: 1px solid rgba(148, 163, 184, 0.3); }
.iexel-target-card__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.08); box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.iexel-target-inline-disclosure { display: inline-block; box-sizing: border-box; max-width: 100%; }
.iexel-target-inline-disclosure > summary { list-style: none; display: inline-flex; cursor: pointer; box-sizing: border-box; max-width: 100%; }
.iexel-target-inline-disclosure > summary::-webkit-details-marker { display: none; }
.iexel-button-subtle { background: transparent !important; color: #94a3b8 !important; border-color: #64748b !important; }
.iexel-button-subtle:hover { background: rgba(148, 163, 184, 0.2) !important; color: #fff !important; }
.iexel-target-inline-panel { margin-top: 10px; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.iexel-target-action-confirm { background: var(--iexel-midnight-2, #071d49); border: 1px solid rgba(203, 161, 53, 0.35); border-radius: 8px; padding: 14px; display: grid; gap: 10px; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.iexel-target-confirm-copy { color: var(--iexel-white); font-size: 0.9rem; font-weight: 700; margin: 0; }
.iexel-button-warning { background: #991b1b !important; border-color: #f87171 !important; color: #fff !important; }
.iexel-button-warning:hover { background: #b91c1c !important; }
.iexel-target-archived-disclosure { margin-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 14px; box-sizing: border-box; max-width: 100%; }
.iexel-target-archived-summary { cursor: pointer; font-size: 0.92rem; font-weight: 800; color: var(--iexel-brand-muted); padding: 8px 0; box-sizing: border-box; max-width: 100%; }
.iexel-target-archived-summary:hover { color: var(--iexel-white); }
.iexel-target-archived-summary:focus-visible { outline: 3px solid var(--iexel-gold); outline-offset: 2px; }
@media(max-width:600px){
.iexel-target-card__header { flex-direction: column; align-items: flex-start; gap: 8px; }
.iexel-target-card__identity { flex: 1 1 auto; width: 100%; max-width: 100%; }
.iexel-target-card__actions { flex-direction: column; width: 100%; max-width: 100%; }
.iexel-target-card__actions .iexel-target-inline-disclosure { width: 100%; max-width: 100%; }
.iexel-target-card__actions .iexel-target-inline-disclosure > summary { width: 100%; max-width: 100%; box-sizing: border-box; justify-content: center; min-height: 44px; }
.iexel-target-form-actions { flex-direction: column; width: 100%; max-width: 100%; }
.iexel-target-form-actions .iexel-button { width: 100%; max-width: 100%; box-sizing: border-box; justify-content: center; min-height: 44px; }
.iexel-target-create-disclosure > summary { width: 100%; max-width: 100%; box-sizing: border-box; justify-content: center; min-height: 44px; }
.iexel-target-action-confirm form { width: 100%; max-width: 100%; margin: 0; }
.iexel-target-action-confirm .iexel-button { width: 100%; max-width: 100%; box-sizing: border-box; justify-content: center; min-height: 44px; }
}
@media(max-width:390px){
.iexel-target-card { padding: 12px; }
.iexel-target-form { padding: 12px; }
.iexel-target-action-confirm { padding: 10px; }
}

.iexel-event-eligible-children { display: flex; align-items: center; gap: 8px; margin: 10px 0 12px; flex-wrap: wrap; }
.iexel-team-player-selector { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; margin: 0 0 14px; }
.iexel-team-player-selector label { color: var(--iexel-muted, #667085); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.iexel-team-player-selector select { box-sizing: border-box; min-width: 180px; max-width: 100%; min-height: 40px; padding: 7px 34px 7px 12px; border: 2px solid #64748b; border-radius: 10px; background: var(--iexel-midnight-2, #0a1f49); color: var(--iexel-color-on-dark, #fff); font: inherit; font-weight: 800; }
.iexel-team-player-selector select option { background: #fff; color: var(--iexel-ink, #18233a); }
.iexel-team-player-selector select:focus, .iexel-team-player-selector select:focus-visible { border-color: var(--iexel-gold, #cba135); outline: 3px solid rgba(203, 161, 53, .45); outline-offset: 2px; }
.iexel-team-player-selector select:disabled { border-color: #64748b; background: #334155; color: #cbd5e1; cursor: not-allowed; opacity: 1; }
.iexel-team-player-selector button { min-height: 40px; padding: 7px 14px; border: 1px solid var(--iexel-gold, #cba135); border-radius: 10px; background: transparent; color: var(--iexel-gold, #cba135); font-weight: 800; cursor: pointer; }
.iexel-event-family-responses { display: grid; grid-column: 1 / -1; width: 100%; flex: 1 1 100%; gap: 8px; }
.iexel-event-family-response { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border: 1px solid var(--iexel-border, rgba(255, 255, 255, .14)); border-radius: 10px; background: rgba(255, 255, 255, .035); }
.iexel-event-family-response > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.iexel-event-family-response strong { font-size: .84rem; }
.iexel-event-rsvp-form { display: inline-flex; margin: 0; }
.iexel-eligible-label { font-size: .6875rem; font-weight: 850; letter-spacing: .06em; color: var(--iexel-gold, #cba135); text-transform: uppercase; }
.iexel-eligible-children-list { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.iexel-eligible-child-pill { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; background: rgba(255, 255, 255, .06); border: 1px solid var(--iexel-border, rgba(255, 255, 255, .14)); border-radius: 999px; }
.iexel-child-avatar-img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; display: inline-block; }
.iexel-child-avatar-initials { width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, #1e3a8a, #1d4ed8); color: #ffffff; font-size: .8rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 1; text-align: center; }
.iexel-child-pill-meta { display: flex; flex-direction: column; gap: 2px; }
.iexel-child-name { font-size: .85rem; font-weight: 750; color: var(--iexel-white, #ffffff); white-space: nowrap; }
.iexel-child-status-badge { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.iexel-child-status-badge.is-available { color: #10b981; }
.iexel-child-status-badge.is-unavailable { color: #f87171; }
.iexel-child-status-badge.is-pending { color: #cba135; }
.iexel-eligible-child-overflow { font-size: .75rem; font-weight: 800; color: var(--iexel-gold, #cba135); padding: 2px 8px; background: rgba(203, 161, 53, .15); border-radius: 999px; }

/* Main Events cards: Team Hub visual language with persona-specific content. */
.iexel-event-card,
.iexel-event-card * { box-sizing: border-box; min-width: 0; }
.iexel-event-card {
	display: grid;
	gap: 20px;
	padding: clamp(18px, 3vw, 24px);
	color: var(--iexel-color-on-dark, #ffffff);
	background: radial-gradient(circle at 94% 0, rgba(203,161,53,.13), transparent 31%), linear-gradient(150deg, #07192f, var(--iexel-navy));
	border: 1px solid rgba(255,255,255,.13);
	border-top: 4px solid var(--iexel-gold);
	border-left-width: 1px;
	border-radius: 16px;
	box-shadow: 0 16px 36px rgba(0,0,0,.28);
	overflow: hidden;
	scroll-margin-top: clamp(70px, 8vw, 100px);
}
.iexel-event-card:target {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 3px;
	box-shadow: 0 0 0 4px rgba(203, 161, 53, .2), 0 16px 36px rgba(0, 0, 0, .35);
}
.iexel-event-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.iexel-event-card-date {
	display: grid;
	flex: 0 0 92px;
	width: 92px;
	padding: 11px 12px;
	text-align: center;
	text-decoration: none;
	background: rgba(0,0,0,.2);
	border: 1px solid rgba(203,161,53,.44);
	border-radius: 12px;
}
.iexel-event-card-date span,
.iexel-event-card-date small { color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.iexel-event-card-date strong { margin: 2px 0; color: var(--iexel-gold-bright); font-size: 2rem; font-weight: 950; line-height: 1; }
.iexel-event-card-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.iexel-event-state-badge,
.iexel-event-type-badge { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .04em; line-height: 1.2; text-transform: uppercase; }
.iexel-event-state-badge.is-upcoming { color: #fef3c7; background: rgba(203,161,53,.17); border-color: rgba(242,179,27,.52); }
.iexel-event-state-badge.is-today { color: #dcfce7; background: rgba(22,101,52,.5); border-color: rgba(134,239,172,.62); }
/* Coach Workspace MVP visual close-out (A5): Completed is a lifecycle
   success/informational state, not disabled content -- the previous
   slate-grey treatment (rgba(71,85,105,...) background, rgba(203,213,225,
   ...) border) read as muted/disabled. Restyled to the same restrained,
   translucent semantic-success green already established across the
   codebase for positive/win states (.iexel-team-event-score .is-win,
   .iexel-match-result-badge.is-win, .iexel-team-statistics-result-badge.
   is-win, .iexel-avail-badge.is-success), using a distinctly lighter green
   than .is-today's own darker green immediately above so Completed and
   Today remain visually distinguishable at a glance. .is-upcoming and
   .is-cancelled (and every other Event/Match lifecycle surface) are
   untouched. */
.iexel-event-state-badge.is-completed { color: #bbf7d0; background: rgba(34,197,94,.17); border-color: rgba(74,222,128,.48); }
.iexel-event-state-badge.is-cancelled { color: #ffe4e6; background: rgba(159,18,57,.48); border-color: rgba(253,164,175,.64); }
.iexel-event-type-badge { color: #fde68a; background: rgba(245,195,66,.12); border-color: rgba(245,195,66,.38); }
.iexel-event-card-content { display: grid; gap: 14px; }
.iexel-event-card-content h3 { margin: 0; color: var(--iexel-white); font-size: clamp(1.3rem, 3vw, 1.65rem); line-height: 1.18; overflow-wrap: anywhere; }
.iexel-event-card .iexel-event-lifecycle-banner { margin: 0; color: var(--iexel-color-on-dark, #ffffff); }
.iexel-event-card .iexel-event-lifecycle-banner p { color: inherit; }
.iexel-event-card-match { margin: 0; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); }
.iexel-event-card-match span { color: #fde68a; border-color: rgba(245,195,66,.42); }
.iexel-event-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 9px; margin: 0; }
.iexel-event-meta > div { display: grid; gap: 4px; padding: 11px 12px; background: rgba(0,0,0,.16); border: 1px solid rgba(255,255,255,.09); border-radius: 10px; }
.iexel-event-meta dt { color: var(--iexel-color-on-dark-muted, #c8d3e3); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.iexel-event-meta dd { margin: 0; color: var(--iexel-color-on-dark, #ffffff); font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.iexel-event-card .iexel-event-notes { margin: 0; padding: 12px 14px; color: var(--iexel-color-on-dark-muted, #c8d3e3); background: rgba(255,255,255,.045); border-left: 3px solid var(--iexel-gold); border-radius: 8px; line-height: 1.5; }
.iexel-event-card .iexel-event-availability-summary { margin: 0; }
.iexel-event-card .iexel-event-availability-summary .available { color: #86efac; }
.iexel-event-card .iexel-event-response { margin: 0; color: var(--iexel-color-on-dark, #ffffff); font-weight: 850; }
.iexel-event-card .iexel-event-eligible-children { margin: 0; }
.iexel-event-card .iexel-child-status-badge.is-available { color: #86efac; }
.iexel-event-card .iexel-child-status-badge.is-unavailable { color: #fda4af; }
.iexel-event-card .iexel-child-status-badge.is-pending { color: #fcd34d; }
.iexel-event-card.is-state-completed { background: linear-gradient(150deg, #0f2038, #17243a); border-top-color: #94a3b8; }
.iexel-event-card.is-state-cancelled { background: linear-gradient(150deg, rgba(92,18,32,.9), #201528 62%, #101c31); border-color: rgba(253,164,175,.48); border-top-color: #ef4444; border-left: 4px solid #ef4444; }
.iexel-event-card.is-state-cancelled .iexel-event-card-date { border-color: rgba(253,164,175,.48); }
.iexel-event-card.is-state-cancelled .iexel-event-card-date strong { color: #fecdd3; }
.iexel-event-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); align-items: stretch; gap: 10px; margin-top: 0; }
.iexel-event-actions .iexel-event-button { color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.24); text-decoration: none; }
.iexel-event-actions .iexel-event-button.secondary { color: var(--iexel-color-on-dark, #ffffff); background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.2); }
.iexel-event-actions .iexel-event-button--view { color: var(--iexel-midnight); background: var(--iexel-gold); border-color: #f4d77e; font-weight: 900; }
.iexel-event-actions .iexel-event-button--view:hover { color: var(--iexel-midnight); background: var(--iexel-gold-bright); }
.iexel-event-actions .iexel-event-button:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }
.iexel-event-actions .iexel-event-button.is-selected { color: #dcfce7; background: rgba(22,101,52,.5); border-color: #86efac; }
.iexel-event-actions .iexel-event-button.secondary.is-selected { color: #ffe4e6; background: rgba(159,18,57,.5); border-color: #fda4af; }
/* RSVP subject labels may contain a child's full name. Keep the existing controls. */
.iexel-event-actions > .iexel-response-guidance { grid-column: 1 / -1; margin: 0; }
.iexel-response-actions .iexel-button,
.iexel-event-rsvp-form .iexel-event-button { white-space: normal; overflow-wrap: anywhere; min-width: 0; max-width: 100%; }
.iexel-coach-bulk-availability { scroll-margin-top: 80px; }
.iexel-coach-bulk-players { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 10px; }
.iexel-coach-bulk-players li { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 12px; border: 1px solid var(--iexel-border); border-radius: 12px; }
.iexel-coach-bulk-players label, .iexel-coach-bulk-players small { display: block; }
.iexel-coach-bulk-availability :is(label, li, p, button) { overflow-wrap: anywhere; }
.iexel-coach-bulk-players select { min-height: 44px; max-width: 100%; color: var(--iexel-white); background: var(--iexel-midnight); }
.iexel-coach-bulk-players option { color: #16213e; background: #fff; }
.iexel-coach-bulk-confirm { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0; }
.iexel-coach-bulk-availability :is(button, a, select, input):focus-visible { outline: 3px solid var(--iexel-gold); outline-offset: 3px; }
@media (max-width: 430px) { .iexel-coach-bulk-players li { display: grid; grid-template-columns: minmax(0, 1fr); } .iexel-coach-bulk-players select { width: 100%; } .iexel-coach-bulk-availability .iexel-button { max-width: 100%; white-space: normal; min-height: 44px; } }
.iexel-event-card-notice { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 8px; font-size: .82rem; font-weight: 800; grid-column: 1 / -1; width: 100%; }
.iexel-event-card-notice.is-success { color: #dcfce7; background: rgba(22,101,52,.4); border: 1px solid rgba(74,222,128,.5); }
.iexel-event-card-notice.is-error { color: #ffe4e6; background: rgba(159,18,57,.4); border: 1px solid rgba(253,164,175,.5); }

@media (max-width: 430px) {
	.iexel-team-player-selector { align-items: stretch; display: grid; grid-template-columns: 1fr auto; }
	.iexel-team-player-selector label { grid-column: 1 / -1; }
	.iexel-team-player-selector select { min-width: 0; width: 100%; }
	.iexel-event-card { gap: 16px; padding: 16px; }
	.iexel-event-card-header { display: grid; gap: 11px; }
	.iexel-event-card-date { grid-template-columns: auto auto minmax(0, 1fr); align-items: baseline; gap: 8px; width: 100%; padding: 9px 11px; text-align: left; }
	.iexel-event-card-date strong { font-size: 1.45rem; }
	.iexel-event-card-date small { text-align: right; }
	.iexel-event-card-badges { justify-content: flex-start; }
	.iexel-event-meta { grid-template-columns: 1fr; }
	.iexel-event-actions { grid-template-columns: 1fr; }
	.iexel-event-actions .iexel-event-button { min-height: 48px; }
	.iexel-event-family-response { align-items: flex-start; flex-direction: column; width: 100%; }
	.iexel-event-family-response > div { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.iexel-event-rsvp-form { width: 100%; }
	.iexel-event-rsvp-form .iexel-event-button { width: 100%; min-height: 48px; }
	.iexel-eligible-child-pill { max-width: 100%; }
	.iexel-child-name { white-space: normal; overflow-wrap: anywhere; }
}

/* Events workspace shell. Event card presentation remains independently owned. */
.iexel-events-workspace,
.iexel-events-workspace * { box-sizing: border-box; min-width: 0; }
.iexel-events-workspace { display: grid; gap: 22px; width: 100%; max-width: 1120px; margin-inline: auto; }
/* Design-system consistency: this header now also carries
   .iexel-accent-top-module in its own markup (EventsWorkspace.php) --
   the shared restrained club-accent top-edge treatment already used by
   the .iexel-event-card cards immediately below it (see "Main Events
   cards: Team Hub visual language" nearby) and by every other primary
   Club OS module. Its own legacy 5px LEFT rail is removed here so the
   header shows the top trim only, not both. Everything else (background,
   radius, padding, side/bottom border, shadow) is unchanged. */
.iexel-events-workspace-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 24px;
	padding: clamp(22px, 4vw, 36px);
	color: var(--iexel-color-on-dark, #ffffff);
	background: radial-gradient(circle at 92% 0, rgba(245,195,66,.17), transparent 30%), linear-gradient(135deg, #07192f, var(--iexel-navy));
	border: 1px solid rgba(255,255,255,.13);
	border-radius: 20px;
	box-shadow: 0 16px 36px rgba(7,25,47,.18);
}
.iexel-events-workspace-heading { display: grid; gap: 7px; }
.iexel-events-workspace-heading h1 { margin: 0; color: var(--iexel-white); font-size: clamp(2rem, 5vw, 3.35rem); line-height: 1; overflow-wrap: anywhere; }
.iexel-events-workspace-heading p { max-width: 690px; margin: 0; color: var(--iexel-color-on-dark-muted, #c8d3e3); font-weight: 700; line-height: 1.5; }
.iexel-events-workspace-modes { display: grid; grid-template-columns: repeat(2, minmax(132px, 1fr)); gap: 8px; padding: 5px; background: rgba(0,0,0,.2); border: 1px solid rgba(255,255,255,.15); border-radius: 13px; }
.iexel-events-workspace-modes a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 13px; color: var(--iexel-color-on-dark, #ffffff); border: 1px solid transparent; border-radius: 9px; font-weight: 850; line-height: 1.25; text-align: center; text-decoration: none; }
.iexel-events-workspace-modes a:hover { color: var(--iexel-white); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); }
.iexel-events-workspace-modes a[aria-current="page"] { color: var(--iexel-midnight); background: var(--iexel-gold); border-color: var(--iexel-gold-bright); }
.iexel-events-workspace-modes a:focus-visible { outline: 3px solid var(--iexel-gold-bright); outline-offset: 3px; }
.iexel-events-disclosure { display: grid; gap: 16px; }
.iexel-events-list { display: grid; gap: 18px; }
.iexel-events-list-item { display: block; }
.iexel-events-list-item[hidden] { display: none; }
.iexel-events-disclosure-count { margin: 0; color: var(--iexel-muted); font-size: .82rem; font-weight: 750; }
.iexel-events-disclosure-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.iexel-events-disclosure-controls .iexel-button { min-width: min(100%, 220px); }
.iexel-events-disclosure-controls .iexel-button[hidden] { display: none; }
.iexel-events-noscript { margin: 0; color: var(--iexel-muted); font-size: .82rem; font-weight: 700; }
.iexel-events-workspace-empty { display: grid; gap: 7px; padding: clamp(22px, 4vw, 32px); background: var(--iexel-surface, #ffffff); border: 1px dashed #aab8ca; border-radius: 16px; }
.iexel-events-workspace-empty h2 { margin: 0; color: var(--iexel-midnight); font-size: clamp(1.3rem, 4vw, 1.7rem); }
.iexel-events-workspace-empty p { margin: 0; color: var(--iexel-muted); line-height: 1.55; }

/* Secretary Event Attendee Management — long-list scalability. One canonical
   $attendee_rows list always renders in full (no repository pagination);
   this is presentation only. Reuses the SAME data-progressive-disclosure/
   data-progressive-item/-more/-less/-count mechanism as .iexel-events-*
   above (see initProgressiveDisclosure() in app.js) — no new JS pattern.
   Below the 901px breakpoint (matching this page's own .iexel-experience-grid
   collapse point) that mechanism drives a genuine mobile Show More/Show
   Less. At and above it, the panel instead becomes one contained,
   internally-scrollable list via CSS alone: the count/controls are hidden
   and any row the JS capped via [hidden] is forced back to visible, so
   desktop/tablet always shows the complete list without a giant page. */
.iexel-attendee-list-panel { display: grid; gap: 10px; }
.iexel-attendee-list { display: flex; flex-direction: column; gap: 8px; }
.iexel-attendee-row[hidden] { display: none; }
.iexel-attendee-list-count { margin: 0; color: var(--iexel-muted); font-size: .82rem; font-weight: 750; }
.iexel-attendee-list-controls { display: flex; flex-wrap: wrap; gap: 10px; }
.iexel-attendee-list-controls .iexel-experience-button[hidden] { display: none; }
.iexel-attendee-list-noscript { margin: 0; color: var(--iexel-muted); font-size: .82rem; font-weight: 700; }

@media (min-width: 901px) {
	.iexel-attendee-list-panel {
		max-height: 480px;
		overflow-y: auto;
		padding-right: 4px;
	}
	.iexel-attendee-row[hidden] {
		display: flex; /* desktop/tablet shows the complete list via internal scroll, not the mobile batch reveal */
	}
	.iexel-attendee-list-count,
	.iexel-attendee-list-controls,
	.iexel-attendee-list-noscript {
		display: none;
	}
}

@media (max-width: 760px) {
	.iexel-events-workspace-header { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
	.iexel-events-workspace-modes { width: 100%; }
}

@media (max-width: 390px) {
	.iexel-events-workspace { gap: 16px; }
	.iexel-events-workspace-header { gap: 18px; padding: 19px 17px; border-radius: 16px; }
	.iexel-events-workspace-modes { grid-template-columns: minmax(0, 1fr); }
	.iexel-events-disclosure-controls { display: grid; grid-template-columns: minmax(0, 1fr); }
	.iexel-events-disclosure-controls .iexel-button { width: 100%; }
	.iexel-attendee-list-controls { display: grid; grid-template-columns: minmax(0, 1fr); }
	.iexel-attendee-list-controls .iexel-experience-button { width: 100%; }
}

.iexel-response-child-header { display: flex; align-items: center; gap: 12px; margin: 8px 0 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(15, 23, 42, .08); }
.iexel-response-child-info { display: flex; flex-direction: column; gap: 2px; }
.iexel-response-child-info h3 { margin: 0; font-size: 1.1rem; line-height: 1.2; color: var(--iexel-midnight, #071d49); }
.iexel-child-avatar-img.is-card-avatar, .iexel-child-avatar-initials.is-card-avatar { width: 36px; height: 36px; }

/* ==========================================================
   PLAYER STATS POLISH & BRAND-AWARE HERO ALIGNMENT
========================================================== */
.iexel-player-stats { display: flex; flex-direction: column; gap: 24px; max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box; }
.iexel-player-stats__hero { display: grid; grid-template-columns: minmax(0, 1fr) 150px; align-items: center; column-gap: 40px; width: 100%; max-width: 100%; background: var(--iexel-midnight, var(--iexel-color-primary, #071d49)); color: var(--iexel-white, var(--iexel-color-white, #ffffff)); border-radius: var(--iexel-radius-large, 20px); padding: 36px 44px; border-bottom: 6px solid var(--iexel-gold, var(--iexel-color-gold, #cba135)); box-shadow: var(--iexel-shadow-large, 0 10px 25px rgba(0,0,0,.15)); min-height: 180px; box-sizing: border-box; }
.iexel-player-stats__hero-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; text-align: left; }
.iexel-player-stats__eyebrow { font-size: 0.82rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--iexel-gold, var(--iexel-color-gold, #cba135)); }
.iexel-player-stats__hero-copy h1 { margin: 6px 0 10px; font-size: clamp(1.8rem, 3.2vw, 2.5rem); font-weight: 850; color: var(--iexel-white, #ffffff); line-height: 1.1; letter-spacing: -0.01em; word-break: break-word; }
.iexel-player-stats__hero-meta { margin: 0; font-size: 1.05rem; font-weight: 500; opacity: .92; color: var(--iexel-color-border-subtle, #e2e8f0); }
.iexel-player-stats__hero-avatar { width: 150px; height: 150px; display: flex; align-items: center; justify-content: center; justify-self: end; align-self: center; }
.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 150px !important; height: 150px !important; border-radius: 50%; border: 4px solid var(--iexel-gold, var(--iexel-color-gold, #cba135)); box-shadow: 0 8px 24px rgba(0,0,0,.35); overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--iexel-midnight-2, #1e293b); flex-shrink: 0; box-sizing: border-box; }
.iexel-player-stats__hero-avatar .iexel-person-avatar img { width: 100%; height: 100%; object-fit: cover; }
.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { width: 100%; height: 100%; background: linear-gradient(135deg, var(--iexel-midnight, #071d49), var(--iexel-midnight-2, #10285d)); color: var(--iexel-white, #ffffff); font-size: 2.85rem; font-weight: 850; display: inline-flex; align-items: center; justify-content: center; }

.iexel-player-stats__section-title { font-size: 1.35rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, var(--iexel-midnight, #071d49))); margin: 0 0 14px; }
.iexel-player-stats__snapshot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.iexel-player-stats__snapshot-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: var(--iexel-radius-card, 14px); padding: 20px; box-shadow: var(--iexel-shadow-small, 0 2px 6px rgba(0,0,0,0.04)); display: flex; flex-direction: column; justify-content: space-between; }
.iexel-player-stats__card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.iexel-stats-card-label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); text-transform: uppercase; }
.iexel-stats-card-value { font-size: 2.1rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); line-height: 1; }
.iexel-stats-card-sub { font-size: 0.8rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin-top: 4px; }

.iexel-stats-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.iexel-stats-dot.is-navy { background: var(--iexel-color-primary, var(--iexel-midnight, #071d49)); }
.iexel-stats-dot.is-green { background: var(--iexel-color-success, #16a34a); }
.iexel-stats-dot.is-purple { background: #7c3aed; }
.iexel-stats-dot.is-gold { background: var(--iexel-gold, var(--iexel-color-gold, #ca8a04)); }

.iexel-player-stats__visual-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.iexel-player-stats__visual-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: var(--iexel-radius-card, 16px); padding: 24px; box-shadow: var(--iexel-shadow-small, 0 2px 8px rgba(0,0,0,0.04)); display: flex; flex-direction: column; }
.iexel-player-stats__visual-header h3 { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__visual-header p { margin: 2px 0 16px; font-size: 0.82rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); }
.iexel-player-stats__visual-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.iexel-center-content { align-items: center; text-align: center; }

/* Line Chart SVG */
.iexel-svg-chart-wrap { width: 100%; display: flex; flex-direction: column; gap: 8px; }
.iexel-line-chart-svg { width: 100%; height: 110px; overflow: visible; }
.iexel-chart-labels { display: flex; justify-content: space-between; min-width: 0; font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); padding: 0 10px; }
.iexel-chart-label { min-width: 0; text-align: center; white-space: nowrap; }
.iexel-chart-label:not(.is-compact-visible) { display: none; }
@media (max-width: 480px) {
	.iexel-chart-labels { padding: 0; font-size: .7rem; }
	.iexel-chart-label.is-compact-visible:not(.is-mobile-visible) { display: none; }
}

/* Gauge SVG */
.iexel-gauge-wrap { position: relative; width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.iexel-gauge-svg { width: 100%; height: 100%; }
.iexel-gauge-text { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.iexel-gauge-text strong { font-size: 1.4rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); line-height: 1; }
.iexel-gauge-text span { font-size: 0.68rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin-top: 2px; }

/* Donut SVG */
.iexel-donut-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.iexel-donut-chart { position: relative; width: 100px; height: 100px; display: flex; align-items: center; justify-content: center; }
.iexel-donut-svg { width: 100%; height: 100%; }
.iexel-donut-number { position: absolute; font-size: 1.6rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-donut-legend { display: flex; gap: 16px; font-size: 0.8rem; font-weight: 750; color: var(--iexel-brand-text, var(--iexel-color-text, #475569)); }
.iexel-donut-legend div { display: flex; align-items: center; gap: 6px; }
.iexel-donut-note { font-size: 0.78rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin: 0; background: var(--iexel-color-surface-muted, #f8fafc); padding: 6px 12px; border-radius: 999px; }

/* Bottom Grid */
.iexel-player-stats__bottom-grid { display: grid; gap: 20px; }
.iexel-player-stats__bottom-grid.has-goalkeeper { grid-template-columns: 2fr 1fr; }
.iexel-player-stats__bottom-grid.single-col { grid-template-columns: 1fr; }
@media (min-width: 768px) {
	.iexel-player-stats__bottom-grid.has-goalkeeper { align-items: start; }
	.iexel-player-stats__goalkeeper-card { align-self: start; }
	.iexel-player-stats__goalkeeper-card .iexel-player-stats__visual-body { flex: 0 0 auto; justify-content: flex-start; }
}

/* Horizontal Timeline */
.iexel-player-stats__horizontal-timeline { display: flex; gap: 24px; overflow-x: auto; padding-bottom: 12px; list-style: none; margin: 0; padding-left: 0; }
.iexel-player-stats__horizontal-timeline li { display: flex; flex-direction: column; gap: 4px; min-width: 110px; border-left: 2px solid var(--iexel-color-border-subtle, #cbd5e1); padding-left: 10px; }
.iexel-player-stats__timeline-node { width: 8px; height: 8px; border-radius: 50%; background: var(--iexel-color-primary, var(--iexel-midnight, #071d49)); margin-left: -15px; margin-bottom: 4px; }
.iexel-player-stats__horizontal-timeline time { font-size: 0.78rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__timeline-fixture { font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iexel-player-stats__season-story { gap: 16px; }
.iexel-player-stats__season-story .iexel-month-disclosure { border-color: var(--iexel-color-border); }
.iexel-player-stats__season-story .iexel-month-disclosure > summary h3 { color: var(--iexel-brand-text, var(--iexel-color-text)); }
.iexel-player-stats__season-story .iexel-month-disclosure-count,
.iexel-player-stats__season-story .iexel-month-disclosure-chevron { color: var(--iexel-brand-muted, var(--iexel-color-text-muted)); }
.iexel-player-stats__season-story .iexel-month-disclosure[open] .iexel-month-disclosure-chevron { color: var(--iexel-color-primary, var(--iexel-midnight)); }
.iexel-player-stats__season-story-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.iexel-player-stats__season-story-entry { display: grid; grid-template-columns: minmax(84px, auto) minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px; border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: 10px; background: var(--iexel-color-surface-muted, #f8fafc); }
.iexel-player-stats__season-story-entry time { color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); font-size: .78rem; font-weight: 800; }
.iexel-player-stats__season-story-entry strong { display: block; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); overflow-wrap: anywhere; }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li { padding: 3px 7px; border-radius: 6px; background: var(--iexel-brand-card, #ffffff); color: var(--iexel-brand-text, #334155); font-size: .72rem; font-weight: 800; }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li.is-appearance { background: var(--iexel-status-info-bg, #e8f1fb); color: var(--iexel-color-primary, var(--iexel-midnight, #071d49)); }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li.is-goal { background: var(--iexel-status-success-bg, #e3f4e9); color: var(--iexel-status-success-text, #175c38); }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li.is-assist { background: color-mix(in srgb, #7c3aed 12%, var(--iexel-brand-card, #ffffff)); color: #6d28d9; }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li.is-clean-sheet { background: color-mix(in srgb, var(--iexel-color-success, #22c55e) 14%, var(--iexel-status-info-bg, #e8f1fb)); color: var(--iexel-status-success-text, #175c38); }
.iexel-player-stats__season-story-entry .iexel-player-stats__contribution-list li.is-goalkeeper { background: var(--iexel-color-surface-muted, #f1f5f9); color: var(--iexel-brand-text, #334155); }
@media (max-width: 480px) {
	.iexel-player-stats__season-story-entry { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}

/* Goalkeeper Summary */
.iexel-player-stats__gk-metrics { display: flex; flex-direction: column; gap: 12px; }
.iexel-player-stats__gk-subcard { background: var(--iexel-color-surface-muted, #f8fafc); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.iexel-player-stats__gk-subcard span { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); text-transform: uppercase; }
.iexel-player-stats__gk-subcard strong { font-size: 1.6rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }

/* Match Cards & POTM Badges */
.iexel-player-stats__matches-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.iexel-player-stats__match-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: 14px; padding: 18px; box-shadow: var(--iexel-shadow-small, 0 2px 6px rgba(0,0,0,0.03)); display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.iexel-player-stats__match-header h3 { margin: 0; font-size: 0.95rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__match-header p { margin: 2px 0 0; font-size: 0.78rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); }
.iexel-player-stats__match-header time { font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, #94a3b8); }
.iexel-player-stats__match-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.iexel-player-stats__match-tags li { font-size: 0.72rem; font-weight: 800; background: var(--iexel-color-surface-muted, #f1f5f9); color: var(--iexel-brand-text, #334155); padding: 3px 8px; border-radius: 6px; }
.iexel-player-stats__match-tags li.is-potm { background: #fef08a; color: #854d0e; }

.iexel-player-stats__potm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.iexel-player-stats__potm-badge-card { background: #fefce8; border: 1px solid #fef08a; border-radius: 12px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.iexel-player-stats__potm-badge-icon { font-size: 1.4rem; color: var(--iexel-gold, #ca8a04); }
.iexel-player-stats__potm-badge-card strong { display: block; font-size: 0.88rem; color: #854d0e; }
.iexel-player-stats__potm-badge-card time { font-size: 0.75rem; color: #a16207; }
.iexel-player-stats__potm-badge-label { margin-left: auto; font-size: 0.7rem; font-weight: 850; background: var(--iexel-gold, #ca8a04); color: var(--iexel-white, #ffffff); padding: 2px 8px; border-radius: 999px; }

.iexel-player-stats__empty { font-size: 0.9rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin: 0; }
.iexel-player-stats__empty-chart { font-size: 0.85rem; color: var(--iexel-brand-muted, #94a3b8); margin: 0; text-align: center; }

@media (max-width: 1023px) and (min-width: 768px) {
	.iexel-player-stats__hero { grid-template-columns: minmax(0, 1fr) 110px; padding: 24px 28px; column-gap: 20px; }
	.iexel-player-stats__hero-avatar { width: 110px; height: 110px; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 110px !important; height: 110px !important; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { font-size: 2.2rem; }
}

@media (max-width: 767px) {
	.iexel-player-stats__hero { display: flex; flex-direction: column; align-items: stretch; grid-template-columns: none; padding: 20px 16px; gap: 16px; min-height: auto; }
	.iexel-player-stats__hero-copy { width: 100%; max-width: 100%; text-align: left; }
	.iexel-player-stats__hero-avatar { width: 92px; height: 92px; align-self: center; justify-self: center; margin: 8px auto 0; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 92px !important; height: 92px !important; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { font-size: 1.8rem; }
	.iexel-player-stats__bottom-grid.has-goalkeeper { grid-template-columns: 1fr; }
}

/* My Season Journey & Progress Visual Polish */
.iexel-player-my-season__journey-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0 6px; }
.iexel-player-my-season__milestone-badge { font-size: 0.8rem; font-weight: 800; background: var(--iexel-color-surface-muted, #f1f5f9); color: var(--iexel-brand-text, #0f172a); padding: 5px 12px; border-radius: 999px; border: 1px solid var(--iexel-color-border, #cbd5e1); }
.iexel-player-my-season__next-milestone { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8rem; background: #fefce8; border: 1px solid #fef08a; padding: 5px 12px; border-radius: 999px; }
.iexel-player-my-season__next-label { font-weight: 700; color: #a16207; }
.iexel-player-my-season__next-title { font-weight: 850; color: #854d0e; }

@media (max-width: 767px) {
	.iexel-player-my-season__journey-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
	.iexel-player-progress__milestones { grid-template-columns: 1fr; gap: 14px; }
	.iexel-player-progress__hero { padding: 20px 16px; gap: 16px; }
}

/* Parent Family Finance Workspace Styles */
.iexel-parent-finance { display: flex; flex-direction: column; gap: 24px; padding-top: 16px; }
.iexel-parent-finance__summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.iexel-parent-finance__card { background: #ffffff; border: 1px solid var(--iexel-color-border-subtle, #e2e8f0); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.iexel-parent-finance__card.is-outstanding { border-left: 4px solid var(--iexel-color-primary, #071d49); background: #f8fafc; }
.iexel-parent-finance__card.is-overdue { border-left: 4px solid #d97706; background: #fffbeb; }
.iexel-parent-finance__card-label { font-size: 0.85rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--iexel-color-text-subtle, #64748b); }
.iexel-parent-finance__card-value { font-size: 1.75rem; font-weight: 800; color: var(--iexel-color-text, #0f172a); line-height: 1.2; }
.iexel-parent-finance__card-value.is-small { font-size: 1.2rem; }
.iexel-parent-finance__card-subtext { font-size: 0.8rem; color: #64748b; }

.iexel-parent-finance__section { background: #ffffff; border: 1px solid var(--iexel-color-border-subtle, #e2e8f0); border-radius: 12px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.iexel-parent-finance__section-title { font-size: 1.25rem; font-weight: 700; color: var(--iexel-color-text, #0f172a); margin: 0 0 16px 0; }

.iexel-parent-finance__children-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.iexel-parent-finance__child-card { border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.04); height: 100%; }
.iexel-parent-finance__child-header { background: linear-gradient(145deg, var(--iexel-midnight, #071d49), var(--iexel-navy, #10285d)); border-bottom: 3px solid var(--iexel-gold, #cba135); padding: 16px; display: flex; align-items: center; gap: 16px; min-height: 182px; }
.iexel-parent-finance__child-avatar { flex-shrink: 0; }
.iexel-parent-finance__child-avatar .iexel-person-avatar { width: 150px; height: 150px; flex-shrink: 0; }
.iexel-parent-finance__child-avatar .iexel-person-avatar-initials { font-size: 3.5rem; }
.iexel-parent-finance__child-header > div:last-child { min-width: 0; flex: 1; }
.iexel-parent-finance__child-header h3 { margin: 0; font-size: 1.1rem; font-weight: 700; color: var(--iexel-color-on-dark, #ffffff); overflow-wrap: break-word; word-break: break-word; }
.iexel-parent-finance__child-role { font-size: 0.8rem; color: var(--iexel-color-on-dark-muted, #c8d3e3); display: block; }
.iexel-parent-finance__child-metrics { display: flex; justify-content: flex-start; padding: 16px; gap: 12px; background: #ffffff; flex-grow: 1; }
.iexel-parent-finance__child-metrics div { display: flex; flex-direction: column; gap: 2px; }
.iexel-parent-finance__child-metrics span { font-size: 0.75rem; color: #64748b; text-transform: uppercase; font-weight: 600; }
.iexel-parent-finance__child-metrics strong { font-size: 1.1rem; font-weight: 700; color: #0f172a; }
.iexel-parent-finance__child-metrics strong.has-balance { color: var(--iexel-midnight, #071d49); }
.iexel-parent-finance__child-metrics strong.is-clear { color: #16a34a; }
@media (max-width: 350px) {
    .iexel-parent-finance__child-header { min-height: 116px; padding: 10px; gap: 10px; }
    .iexel-parent-finance__child-avatar .iexel-person-avatar { width: 96px; height: 96px; }
    .iexel-parent-finance__child-avatar .iexel-person-avatar-initials { font-size: 2.2rem; }
}

.iexel-parent-finance__invoices-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.iexel-parent-finance__invoice-card { border: 1px solid #e2e8f0; border-radius: 10px; padding: 18px; background: #ffffff; display: flex; flex-direction: column; gap: 14px; }
.iexel-parent-finance__invoice-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.iexel-parent-finance__invoice-header h3 { margin: 0; font-size: 1.1rem; font-weight: 700; color: #0f172a; }
.iexel-parent-finance__invoice-header time { font-size: 0.8rem; color: #64748b; }

.iexel-parent-finance__badge { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.iexel-parent-finance__badge.is-issued { background: #e0f2fe; color: #0369a1; }
.iexel-parent-finance__badge.is-part_paid { background: #fef3c7; color: #b45309; }
.iexel-parent-finance__badge.is-paid { background: #dcfce7; color: #15803d; }
.iexel-parent-finance__badge.is-overdue { background: #fee2e2; color: #b91c1c; }
.iexel-parent-finance__badge.is-cancelled { background: #f1f5f9; color: #64748b; }

.iexel-parent-finance__invoice-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.iexel-parent-finance__tag { background: #f1f5f9; color: #475569; font-size: 0.75rem; font-weight: 600; padding: 2px 8px; border-radius: 4px; }

.iexel-parent-finance__invoice-figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; border-top: 1px solid #f1f5f9; border-bottom: 1px solid #f1f5f9; padding: 12px 0; }
.iexel-parent-finance__invoice-figures div { display: flex; flex-direction: column; gap: 2px; }
.iexel-parent-finance__invoice-figures span { font-size: 0.75rem; color: #64748b; }
.iexel-parent-finance__invoice-figures strong { font-size: 1rem; font-weight: 700; }

.iexel-parent-finance__invoice-footer { display: flex; justify-content: flex-end; }
.iexel-parent-finance__btn { display: inline-flex; align-items: center; gap: 6px; font-size: 0.85rem; font-weight: 700; color: var(--iexel-color-primary, #071d49); text-decoration: none; padding: 6px 12px; border-radius: 6px; background: #f8fafc; border: 1px solid #cbd5e1; transition: all 0.15s ease; }
.iexel-parent-finance__btn:hover { background: #f1f5f9; color: #0284c7; }

.iexel-parent-finance__payment-card { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; }
.iexel-parent-finance__empty { font-size: 0.9rem; color: #64748b; font-style: italic; margin: 0; padding: 12px 0; }

.iexel-parent-finance__detail-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.iexel-eligible-children-list { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.iexel-eligible-child-pill { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; background: rgba(255, 255, 255, .06); border: 1px solid var(--iexel-border, rgba(255, 255, 255, .14)); border-radius: 999px; }
.iexel-child-avatar-img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; display: inline-block; }
.iexel-child-avatar-initials { width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, #1e3a8a, #1d4ed8); color: #ffffff; font-size: .8rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 1; text-align: center; }
.iexel-child-pill-meta { display: flex; flex-direction: column; gap: 2px; }
.iexel-child-name { font-size: .85rem; font-weight: 750; color: var(--iexel-white, #ffffff); white-space: nowrap; }
.iexel-child-status-badge { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.iexel-child-status-badge.is-available { color: #10b981; }
.iexel-child-status-badge.is-unavailable { color: #f87171; }
.iexel-child-status-badge.is-pending { color: #cba135; }
.iexel-eligible-child-overflow { font-size: .75rem; font-weight: 800; color: var(--iexel-gold, #cba135); padding: 2px 8px; background: rgba(203, 161, 53, .15); border-radius: 999px; }

.iexel-response-child-header { display: flex; align-items: center; gap: 12px; margin: 8px 0 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(15, 23, 42, .08); }
.iexel-response-child-info { display: flex; flex-direction: column; gap: 2px; }
.iexel-response-child-info h3 { margin: 0; font-size: 1.1rem; line-height: 1.2; color: var(--iexel-midnight, #071d49); }
.iexel-child-avatar-img.is-card-avatar, .iexel-child-avatar-initials.is-card-avatar { width: 36px; height: 36px; }

/* ==========================================================
   PLAYER STATS POLISH & BRAND-AWARE HERO ALIGNMENT
========================================================== */
.iexel-player-stats { display: flex; flex-direction: column; gap: 24px; max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box; }
.iexel-player-stats__hero { display: grid; grid-template-columns: minmax(0, 1fr) 150px; align-items: center; column-gap: 40px; width: 100%; max-width: 100%; background: var(--iexel-midnight, var(--iexel-color-primary, #071d49)); color: var(--iexel-white, var(--iexel-color-white, #ffffff)); border-radius: var(--iexel-radius-large, 20px); padding: 36px 44px; border-bottom: 6px solid var(--iexel-gold, var(--iexel-color-gold, #cba135)); box-shadow: var(--iexel-shadow-large, 0 10px 25px rgba(0,0,0,.15)); min-height: 180px; box-sizing: border-box; }
.iexel-player-stats__hero-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; text-align: left; }
.iexel-player-stats__eyebrow { font-size: 0.82rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--iexel-gold, var(--iexel-color-gold, #cba135)); }
.iexel-player-stats__hero-copy h1 { margin: 6px 0 10px; font-size: clamp(1.8rem, 3.2vw, 2.5rem); font-weight: 850; color: var(--iexel-white, #ffffff); line-height: 1.1; letter-spacing: -0.01em; word-break: break-word; }
.iexel-player-stats__hero-meta { margin: 0; font-size: 1.05rem; font-weight: 500; opacity: .92; color: var(--iexel-color-border-subtle, #e2e8f0); }
.iexel-player-stats__hero-avatar { width: 150px; height: 150px; display: flex; align-items: center; justify-content: center; justify-self: end; align-self: center; }
.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 150px !important; height: 150px !important; border-radius: 50%; border: 4px solid var(--iexel-gold, var(--iexel-color-gold, #cba135)); box-shadow: 0 8px 24px rgba(0,0,0,.35); overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--iexel-midnight-2, #1e293b); flex-shrink: 0; box-sizing: border-box; }
.iexel-player-stats__hero-avatar .iexel-person-avatar img { width: 100%; height: 100%; object-fit: cover; }
.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { width: 100%; height: 100%; background: linear-gradient(135deg, var(--iexel-midnight, #071d49), var(--iexel-midnight-2, #10285d)); color: var(--iexel-white, #ffffff); font-size: 2.85rem; font-weight: 850; display: inline-flex; align-items: center; justify-content: center; }

.iexel-player-stats__section-title { font-size: 1.35rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, var(--iexel-midnight, #071d49))); margin: 0 0 14px; }
.iexel-player-stats__snapshot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.iexel-player-stats__snapshot-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: var(--iexel-radius-card, 14px); padding: 20px; box-shadow: var(--iexel-shadow-small, 0 2px 6px rgba(0,0,0,0.04)); display: flex; flex-direction: column; justify-content: space-between; }
.iexel-player-stats__card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.iexel-stats-card-label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); text-transform: uppercase; }
.iexel-stats-card-value { font-size: 2.1rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); line-height: 1; }
.iexel-stats-card-sub { font-size: 0.8rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin-top: 4px; }

.iexel-stats-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.iexel-stats-dot.is-navy { background: var(--iexel-color-primary, var(--iexel-midnight, #071d49)); }
.iexel-stats-dot.is-green { background: var(--iexel-color-success, #16a34a); }
.iexel-stats-dot.is-purple { background: #7c3aed; }
.iexel-stats-dot.is-gold { background: var(--iexel-gold, var(--iexel-color-gold, #ca8a04)); }

.iexel-player-stats__visual-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.iexel-player-stats__visual-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: var(--iexel-radius-card, 16px); padding: 24px; box-shadow: var(--iexel-shadow-small, 0 2px 8px rgba(0,0,0,0.04)); display: flex; flex-direction: column; }
.iexel-player-stats__visual-header h3 { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__visual-header p { margin: 2px 0 16px; font-size: 0.82rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); }
.iexel-player-stats__visual-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.iexel-center-content { align-items: center; text-align: center; }

/* Line Chart SVG */
.iexel-svg-chart-wrap { width: 100%; display: flex; flex-direction: column; gap: 8px; }
.iexel-line-chart-svg { width: 100%; height: 110px; overflow: visible; }
.iexel-chart-labels { display: flex; justify-content: space-between; font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); padding: 0 10px; }

/* Gauge SVG */
.iexel-gauge-wrap { position: relative; width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.iexel-gauge-svg { width: 100%; height: 100%; }
.iexel-gauge-text { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.iexel-gauge-text strong { font-size: 1.4rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); line-height: 1; }
.iexel-gauge-text span { font-size: 0.68rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin-top: 2px; }

/* Donut SVG */
.iexel-donut-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.iexel-donut-chart { position: relative; width: 100px; height: 100px; display: flex; align-items: center; justify-content: center; }
.iexel-donut-svg { width: 100%; height: 100%; }
.iexel-donut-number { position: absolute; font-size: 1.6rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-donut-legend { display: flex; gap: 16px; font-size: 0.8rem; font-weight: 750; color: var(--iexel-brand-text, var(--iexel-color-text, #475569)); }
.iexel-donut-legend div { display: flex; align-items: center; gap: 6px; }
.iexel-donut-note { font-size: 0.78rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin: 0; background: var(--iexel-color-surface-muted, #f8fafc); padding: 6px 12px; border-radius: 999px; }

/* Bottom Grid */
.iexel-player-stats__bottom-grid { display: grid; gap: 20px; }
.iexel-player-stats__bottom-grid.has-goalkeeper { grid-template-columns: 2fr 1fr; }
.iexel-player-stats__bottom-grid.single-col { grid-template-columns: 1fr; }

/* Horizontal Timeline */
.iexel-player-stats__horizontal-timeline { display: flex; gap: 24px; overflow-x: auto; padding-bottom: 12px; list-style: none; margin: 0; padding-left: 0; }
.iexel-player-stats__horizontal-timeline li { display: flex; flex-direction: column; gap: 4px; min-width: 110px; border-left: 2px solid var(--iexel-color-border-subtle, #cbd5e1); padding-left: 10px; }
.iexel-player-stats__timeline-node { width: 8px; height: 8px; border-radius: 50%; background: var(--iexel-color-primary, var(--iexel-midnight, #071d49)); margin-left: -15px; margin-bottom: 4px; }
.iexel-player-stats__horizontal-timeline time { font-size: 0.78rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__timeline-fixture { font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Goalkeeper Summary */
.iexel-player-stats__gk-metrics { display: flex; flex-direction: column; gap: 12px; }
.iexel-player-stats__gk-subcard { background: var(--iexel-color-surface-muted, #f8fafc); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.iexel-player-stats__gk-subcard span { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); text-transform: uppercase; }
.iexel-player-stats__gk-subcard strong { font-size: 1.6rem; font-weight: 850; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }

/* Match Cards & POTM Badges */
.iexel-player-stats__matches-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.iexel-player-stats__match-card { background: var(--iexel-brand-card, var(--iexel-color-card, #ffffff)); border: 1px solid var(--iexel-color-border, #e2e8f0); border-radius: 14px; padding: 18px; box-shadow: var(--iexel-shadow-small, 0 2px 6px rgba(0,0,0,0.03)); display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.iexel-player-stats__match-header h3 { margin: 0; font-size: 0.95rem; font-weight: 800; color: var(--iexel-brand-text, var(--iexel-color-text, #0f172a)); }
.iexel-player-stats__match-header p { margin: 2px 0 0; font-size: 0.78rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); }
.iexel-player-stats__match-header time { font-size: 0.75rem; font-weight: 700; color: var(--iexel-brand-muted, #94a3b8); }
.iexel-player-stats__match-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.iexel-player-stats__match-tags li { font-size: 0.72rem; font-weight: 800; background: var(--iexel-color-surface-muted, #f1f5f9); color: var(--iexel-brand-text, #334155); padding: 3px 8px; border-radius: 6px; }
.iexel-player-stats__match-tags li.is-potm { background: #fef08a; color: #854d0e; }

.iexel-player-stats__potm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.iexel-player-stats__potm-badge-card { background: #fefce8; border: 1px solid #fef08a; border-radius: 12px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.iexel-player-stats__potm-badge-icon { font-size: 1.4rem; color: var(--iexel-gold, #ca8a04); }
.iexel-player-stats__potm-badge-card strong { display: block; font-size: 0.88rem; color: #854d0e; }
.iexel-player-stats__potm-badge-card time { font-size: 0.75rem; color: #a16207; }
.iexel-player-stats__potm-badge-label { margin-left: auto; font-size: 0.7rem; font-weight: 850; background: var(--iexel-gold, #ca8a04); color: var(--iexel-white, #ffffff); padding: 2px 8px; border-radius: 999px; }

.iexel-player-stats__empty { font-size: 0.9rem; color: var(--iexel-brand-muted, var(--iexel-color-text-muted, #64748b)); margin: 0; }
.iexel-player-stats__empty-chart { font-size: 0.85rem; color: var(--iexel-brand-muted, #94a3b8); margin: 0; text-align: center; }

@media (max-width: 1023px) and (min-width: 768px) {
	.iexel-player-stats__hero { grid-template-columns: minmax(0, 1fr) 110px; padding: 24px 28px; column-gap: 20px; }
	.iexel-player-stats__hero-avatar { width: 110px; height: 110px; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 110px !important; height: 110px !important; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { font-size: 2.2rem; }
}

@media (max-width: 767px) {
	.iexel-player-stats__hero { display: flex; flex-direction: column; align-items: stretch; grid-template-columns: none; padding: 20px 16px; gap: 16px; min-height: auto; }
	.iexel-player-stats__hero-copy { width: 100%; max-width: 100%; text-align: left; }
	.iexel-player-stats__hero-avatar { width: 92px; height: 92px; align-self: center; justify-self: center; margin: 8px auto 0; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar { width: 92px !important; height: 92px !important; }
	.iexel-player-stats__hero-avatar .iexel-person-avatar-initials { font-size: 1.8rem; }
	.iexel-player-stats__bottom-grid.has-goalkeeper { grid-template-columns: 1fr; }
}

/* My Season Journey & Progress Visual Polish */
.iexel-player-my-season__journey-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0 6px; }
.iexel-player-my-season__milestone-badge { font-size: 0.8rem; font-weight: 800; background: var(--iexel-color-surface-muted, #f1f5f9); color: var(--iexel-brand-text, #0f172a); padding: 5px 12px; border-radius: 999px; border: 1px solid var(--iexel-color-border, #cbd5e1); }
.iexel-player-my-season__next-milestone { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8rem; background: #fefce8; border: 1px solid #fef08a; padding: 5px 12px; border-radius: 999px; }
.iexel-player-my-season__next-label { font-weight: 700; color: #a16207; }
.iexel-player-my-season__next-title { font-weight: 850; color: #854d0e; }

@media (max-width: 767px) {
	.iexel-player-my-season__journey-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
	.iexel-player-progress__milestones { grid-template-columns: 1fr; gap: 14px; }
	.iexel-player-progress__hero { padding: 20px 16px; gap: 16px; }
}

/* Parent Family Finance Workspace Styles */
.iexel-parent-finance { display: flex; flex-direction: column; gap: 24px; padding-top: 16px; }
.iexel-parent-finance__summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.iexel-parent-finance__card { background: #ffffff; border: 1px solid var(--iexel-color-border-subtle, #e2e8f0); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.iexel-parent-finance__card.is-outstanding { border-left: 4px solid var(--iexel-color-primary, #071d49); background: #f8fafc; }
.iexel-parent-finance__card.is-overdue { border-left: 4px solid #d97706; background: #fffbeb; }
.iexel-parent-finance__card-label { font-size: 0.85rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--iexel-color-text-subtle, #64748b); }
.iexel-parent-finance__card-value { font-size: 1.75rem; font-weight: 800; color: var(--iexel-color-text, #0f172a); line-height: 1.2; }
.iexel-parent-finance__card-value.is-small { font-size: 1.2rem; }
.iexel-parent-finance__card-subtext { font-size: 0.8rem; color: #64748b; }

.iexel-parent-finance__section { background: #ffffff; border: 1px solid var(--iexel-color-border-subtle, #e2e8f0); border-radius: 12px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.iexel-parent-finance__section-title { font-size: 1.25rem; font-weight: 700; color: var(--iexel-color-text, #0f172a); margin: 0 0 16px 0; }

.iexel-parent-finance__children-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.iexel-parent-finance__child-card { border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.04); height: 100%; }
.iexel-parent-finance__child-header { background: linear-gradient(145deg, var(--iexel-midnight, #071d49), var(--iexel-navy, #10285d)); border-bottom: 3px solid var(--iexel-gold, #cba135); padding: 16px; display: flex; align-items: center; gap: 16px; min-height: 182px; }
.iexel-parent-finance__child-avatar { flex-shrink: 0; }
.iexel-parent-finance__child-avatar .iexel-person-avatar { width: 150px; height: 150px; flex-shrink: 0; }
.iexel-parent-finance__child-avatar .iexel-person-avatar-initials { font-size: 3.5rem; }
.iexel-parent-finance__child-header > div:last-child { min-width: 0; flex: 1; }
.iexel-parent-finance__child-header h3 { margin: 0; font-size: 1.1rem; font-weight: 700; color: var(--iexel-color-on-dark, #ffffff); overflow-wrap: break-word; word-break: break-word; }
.iexel-parent-finance__child-role { font-size: 0.8rem; color: var(--iexel-color-on-dark-muted, #c8d3e3); display: block; }
.iexel-parent-finance__child-metrics { display: flex; justify-content: flex-start; padding: 16px; gap: 12px; background: #ffffff; flex-grow: 1; }
.iexel-parent-finance__child-metrics div { display: flex; flex-direction: column; gap: 2px; }
.iexel-parent-finance__child-metrics span { font-size: 0.75rem; color: #64748b; text-transform: uppercase; font-weight: 600; }
.iexel-parent-finance__child-metrics strong { font-size: 1.1rem; font-weight: 700; color: #0f172a; }
.iexel-parent-finance__child-metrics strong.has-balance { color: var(--iexel-midnight, #071d49); }
.iexel-parent-finance__child-metrics strong.is-clear { color: #16a34a; }
@media (max-width: 350px) {
    .iexel-parent-finance__child-header { min-height: 116px; padding: 10px; gap: 10px; }
    .iexel-parent-finance__child-avatar .iexel-person-avatar { width: 96px; height: 96px; }
    .iexel-parent-finance__child-avatar .iexel-person-avatar-initials { font-size: 2.2rem; }
}

.iexel-parent-finance__invoices-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.iexel-parent-finance__invoice-card { border: 1px solid #e2e8f0; border-radius: 10px; padding: 18px; background: #ffffff; display: flex; flex-direction: column; gap: 14px; }
.iexel-parent-finance__invoice-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.iexel-parent-finance__invoice-header h3 { margin: 0; font-size: 1.1rem; font-weight: 700; color: #0f172a; }
.iexel-parent-finance__invoice-header time { font-size: 0.8rem; color: #64748b; }

.iexel-parent-finance__badge { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.iexel-parent-finance__badge.is-issued { background: #e0f2fe; color: #0369a1; }
.iexel-parent-finance__badge.is-part_paid { background: #fef3c7; color: #b45309; }
.iexel-parent-finance__badge.is-paid { background: #dcfce7; color: #15803d; }
.iexel-parent-finance__badge.is-overdue { background: #fee2e2; color: #b91c1c; }
.iexel-parent-finance__badge.is-cancelled { background: #f1f5f9; color: #64748b; }

.iexel-parent-finance__invoice-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.iexel-parent-finance__tag { background: #f1f5f9; color: #475569; font-size: 0.75rem; font-weight: 600; padding: 2px 8px; border-radius: 4px; }

.iexel-parent-finance__invoice-figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; border-top: 1px solid #f1f5f9; border-bottom: 1px solid #f1f5f9; padding: 12px 0; }
.iexel-parent-finance__invoice-figures div { display: flex; flex-direction: column; gap: 2px; }
.iexel-parent-finance__invoice-figures span { font-size: 0.75rem; color: #64748b; }
.iexel-parent-finance__invoice-figures strong { font-size: 1rem; font-weight: 700; }

.iexel-parent-finance__invoice-footer { display: flex; justify-content: flex-end; }
.iexel-parent-finance__btn { display: inline-flex; align-items: center; gap: 6px; font-size: 0.85rem; font-weight: 700; color: var(--iexel-color-primary, #071d49); text-decoration: none; padding: 6px 12px; border-radius: 6px; background: #f8fafc; border: 1px solid #cbd5e1; transition: all 0.15s ease; }
.iexel-parent-finance__btn:hover { background: #f1f5f9; color: var(--iexel-color-navy-deep, #0b1f4d); }

.iexel-parent-finance__payment-card { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; }
.iexel-parent-finance__empty { font-size: 0.9rem; color: #64748b; font-style: italic; margin: 0; padding: 12px 0; }

.iexel-parent-finance__detail-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.iexel-parent-finance__detail-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.iexel-parent-finance__detail-header h1 { margin: 4px 0 2px 0; font-size: 1.5rem; font-weight: 800; color: #0f172a; }
.iexel-parent-finance__detail-amounts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; background: #f8fafc; padding: 16px; border-radius: 8px; }
.iexel-parent-finance__detail-amounts div { display: flex; flex-direction: column; gap: 4px; }
.iexel-parent-finance__detail-amounts span { font-size: 0.8rem; color: #64748b; font-weight: 600; text-transform: uppercase; }
.iexel-parent-finance__detail-amounts strong { font-size: 1.3rem; font-weight: 800; }
.iexel-parent-finance__detail-number { font-size: 1.5rem; font-weight: 800; color: #0f172a; margin: 4px 0 0 0; }
.iexel-parent-finance__state-banner { padding: 14px 18px; border-radius: 8px; font-size: 0.9rem; font-weight: 600; line-height: 1.4; border-left: 4px solid #071d49; background: #f8fafc; }
.iexel-parent-finance__state-banner p { margin: 0; }
.iexel-parent-finance__state-banner.is-paid { border-left-color: #16a34a; background: #f0fdf4; color: #166534; }
.iexel-parent-finance__state-banner.is-part_paid { border-left-color: #d97706; background: #fffbeb; color: #92400e; }
.iexel-parent-finance__state-banner.is-overdue { border-left-color: #dc2626; background: #fef2f2; color: #991b1b; }
.iexel-parent-finance__state-banner.is-cancelled { border-left-color: #64748b; background: #f8fafc; color: #475569; }

.iexel-parent-finance__table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.iexel-parent-finance__instructions { font-size: 0.9rem; color: #475569; line-height: 1.5; margin: 0; overflow-wrap: break-word; word-break: break-word; max-width: 100%; }
.iexel-parent-finance__reference-box { background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 8px; padding: 14px 16px; margin-top: 14px; max-width: 100%; box-sizing: border-box; }
.iexel-parent-finance__reference-label { display: block; font-size: 0.8rem; font-weight: 700; color: #475569; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 6px; }
.iexel-parent-finance__reference-value { display: inline-block; font-size: 1.15rem; font-weight: 800; color: var(--iexel-color-primary, #071d49); background: #ffffff; border: 1px solid #94a3b8; border-radius: 6px; padding: 6px 12px; letter-spacing: 0.04em; word-break: break-all; overflow-wrap: break-word; max-width: 100%; box-sizing: border-box; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.iexel-parent-finance__reference-help { font-size: 0.85rem; color: #64748b; margin: 8px 0 0 0; line-height: 1.4; max-width: 100%; overflow-wrap: break-word; word-break: break-word; }
.iexel-finance-instructions-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; width: 100%; max-width: 100%; box-sizing: border-box; }
.iexel-finance-instructions-card .iexel-finance-portal-form { display: flex; flex-direction: column; gap: 14px; width: 100%; max-width: 100%; box-sizing: border-box; }
.iexel-finance-instructions-card .iexel-finance-portal-form label,
.iexel-finance-instructions-card .iexel-finance-portal-form label.is-wide { display: flex; flex-direction: column; gap: 8px; width: 100%; max-width: 100%; box-sizing: border-box; font-weight: 700; color: var(--iexel-midnight, #071d49); font-size: 0.95rem; }
.iexel-finance-instructions-card .iexel-finance-portal-form label span { display: block; font-weight: 700; color: var(--iexel-midnight, #071d49); }
.iexel-finance-instructions-card .iexel-finance-portal-form textarea { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; min-height: 120px; padding: 12px; font: inherit; font-size: 0.95rem; line-height: 1.5; color: #0f172a; background: #ffffff; border: 1px solid rgba(15, 23, 42, 0.25); border-radius: 10px; resize: vertical; }
.iexel-finance-instructions-card .iexel-finance-portal-form textarea:focus { border-color: var(--iexel-midnight, #071d49); box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.35); outline: 0; }
.iexel-finance-instructions-card .iexel-finance-help { font-size: 0.85rem; color: #526075; line-height: 1.45; margin: 0; max-width: 100%; overflow-wrap: break-word; word-break: break-word; }
.iexel-finance-instructions-card .iexel-finance-actions-row { display: flex; align-items: center; margin-top: 4px; max-width: 100%; }
.iexel-finance-instructions-display { font-size: 0.92rem; color: #334155; line-height: 1.6; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 14px 16px; white-space: pre-line; text-align: left; word-break: break-word; overflow-wrap: break-word; width: 100%; max-width: 100%; box-sizing: border-box; }
.iexel-experience-hero-id { font-size: 0.95rem; color: rgba(255, 255, 255, 0.88); margin: 2px 0 6px !important; letter-spacing: 0.02em; overflow-wrap: anywhere; word-break: break-word; max-width: 100%; }
.iexel-experience-hero-id strong { color: #f4d77e; font-family: var(--iexel-font-mono, monospace); font-weight: 700; letter-spacing: 0.05em; margin-left: 2px; }
@media (max-width: 520px) {
	.iexel-finance-instructions-card { padding: 16px; }
	.iexel-finance-instructions-card .iexel-finance-actions-row button { width: 100%; justify-content: center; }
}

.iexel-parent-finance__table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.iexel-parent-finance__table th, .iexel-parent-finance__table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; font-size: 0.9rem; }
.iexel-parent-finance__table th { background: #f8fafc; font-weight: 700; color: #475569; text-transform: uppercase; font-size: 0.75rem; }
.iexel-parent-finance__table th.is-num, .iexel-parent-finance__table td.is-num { text-align: right; }
.iexel-parent-finance__discount-text { color: #991b1b; font-weight: 700; }
.iexel-discount-text { color: #991b1b; font-weight: 700; }

@media (max-width: 900px) {
	.iexel-parent-finance__summary-grid { grid-template-columns: repeat(2, 1fr); }
	.iexel-parent-finance__children-grid, .iexel-parent-finance__invoices-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.iexel-parent-finance__table-wrapper { overflow-x: visible; }
	.iexel-parent-finance__table,
	.iexel-parent-finance__table thead,
	.iexel-parent-finance__table tbody,
	.iexel-parent-finance__table tr,
	.iexel-parent-finance__table th,
	.iexel-parent-finance__table td { display: block; }
	.iexel-parent-finance__table thead { display: none; }
	.iexel-parent-finance__table tr { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
	.iexel-parent-finance__table tr:last-child { margin-bottom: 0; }
	.iexel-parent-finance__table tr.is-discount { background: #fffcfc; border-color: #fecaca; }
	.iexel-parent-finance__table td { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed #f1f5f9; text-align: right; font-size: 0.88rem; box-sizing: border-box; }
	.iexel-parent-finance__table td:last-child { border-bottom: none; padding-bottom: 0; }
	.iexel-parent-finance__table td[data-label="Description"] { display: block; text-align: left; font-size: 1rem; padding-top: 0; padding-bottom: 10px; border-bottom: 1px solid #e2e8f0; margin-bottom: 4px; }
	.iexel-parent-finance__table td[data-label]::before { content: attr(data-label); font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.04em; text-align: left; padding-right: 12px; }
	.iexel-parent-finance__table td[data-label="Description"]::before { display: none; }
	.iexel-parent-finance__table td.is-num { text-align: right; }
	.iexel-parent-finance__table td.iexel-parent-finance__hide-on-mobile { display: none; }
}

@media (max-width: 480px) {
	.iexel-parent-finance__summary-grid { grid-template-columns: 1fr; }
	.iexel-parent-finance__detail-amounts { grid-template-columns: 1fr; }
}

/* Current operational Medical & Safety */
.iexel-medical-safety-editor { max-width: 920px; margin-inline: auto; }
.iexel-medical-safety-form { display: flex; flex-direction: column; gap: 20px; margin-top: 20px; }
.iexel-medical-safety-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.iexel-medical-safety-field { display: flex; min-width: 0; flex-direction: column; gap: 8px; color: #334155; font-size: 0.9rem; font-weight: 700; }
.iexel-medical-safety-field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; resize: vertical; border: 1px solid #cbd5e1; border-radius: 8px; padding: 12px; color: #0f172a; background: #fff; font: inherit; font-weight: 400; line-height: 1.5; }
.iexel-medical-safety-field textarea:focus { outline: 3px solid rgba(2, 132, 199, 0.18); border-color: #0284c7; }
.iexel-medical-safety-note, .iexel-medical-safety-context, .iexel-medical-safety-updated { color: #64748b; font-size: 0.85rem; line-height: 1.5; }
.iexel-medical-safety-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.iexel-medical-safety-details { display: grid; grid-template-columns: minmax(140px, 0.4fr) minmax(0, 1fr); gap: 10px 16px; margin: 16px 0; }
.iexel-medical-safety-details dt { color: #475569; font-size: 0.85rem; font-weight: 700; }
.iexel-medical-safety-details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #0f172a; font-size: 0.9rem; line-height: 1.5; }
.iexel-medical-safety-summary-action { margin-top: 16px; }

@media (max-width: 600px) {
	.iexel-medical-safety-fields { grid-template-columns: minmax(0, 1fr); }
	.iexel-medical-safety-details { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.iexel-medical-safety-details dd { margin-bottom: 12px; }
	.iexel-medical-safety-actions { align-items: stretch; flex-direction: column-reverse; }
	.iexel-medical-safety-actions .iexel-experience-button { justify-content: center; width: 100%; box-sizing: border-box; text-align: center; }
}

/* Shared keyboard-only skip link treatment. Higher specificity overrides theme/member defaults. */
.iexel-portal .iexel-experience-skip {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	left: 12px;
	overflow: hidden;
	padding: 0;
	position: fixed;
	top: 12px;
	white-space: nowrap;
	width: 1px;
	z-index: 9999;
}
.iexel-portal.is-keyboard-navigation .iexel-experience-skip:focus {
	background: #fff;
	border: 3px solid var(--iexel-gold);
	box-shadow: 0 0 0 3px var(--iexel-midnight);
	clip: auto;
	clip-path: none;
	color: var(--iexel-midnight);
	font-weight: 900;
	height: auto;
	outline: 3px solid #fff;
	outline-offset: 6px;
	overflow: visible;
	padding: 12px 16px;
	text-decoration: none;
	width: auto;
}

/* Coach-authoritative Match Incident Timeline: preserve full detail while reflowing narrow cards. */
@media (max-width: 600px) {
	.iexel-incident-timeline-card,
	.iexel-incident-timeline {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-incident-timeline li {
		display: grid;
		grid-template-columns: 38px 38px minmax(0, 1fr);
		grid-template-rows: auto auto;
		align-items: center;
		gap: 6px 8px;
		min-width: 0;
		max-width: 100%;
		padding: 10px;
		box-sizing: border-box;
	}

	.iexel-incident-sequence {
		grid-column: 1;
		grid-row: 1;
		width: 38px;
		min-height: 34px;
		box-sizing: border-box;
	}

	.iexel-incident-timeline li > .iexel-person-avatar,
	.iexel-incident-substitution-avatars {
		grid-column: 2;
		grid-row: 1;
		justify-self: start;
	}

	.iexel-incident-timeline li > .iexel-incident-body {
		display: contents;
	}

	.iexel-incident-meta {
		grid-column: 3;
		grid-row: 1;
		min-width: 0;
		line-height: 1.3;
	}

	.iexel-incident-title,
	.iexel-incident-body > small:not(.iexel-incident-meta) {
		grid-column: 1 / -1;
		min-width: 0;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.iexel-incident-title {
		grid-row: 2;
		line-height: 1.35;
	}

	.iexel-incident-substitution-player {
		font-weight: 800;
	}
}

/* Completed Coach history follows its actual content width, including docked-DevTools layouts. */
@container iexel-completed-history (max-width: 760px) {
	.iexel-completed-match-history .iexel-match-report-metrics {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@container iexel-completed-history (max-width: 560px) {
	.iexel-completed-match-history .iexel-incident-timeline-card,
	.iexel-completed-match-history .iexel-incident-timeline {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-completed-match-history .iexel-incident-timeline li {
		display: grid;
		grid-template-columns: 38px 38px minmax(0, 1fr);
		grid-template-rows: auto auto;
		align-items: center;
		gap: 6px 8px;
		min-width: 0;
		max-width: 100%;
		padding: 10px;
		box-sizing: border-box;
	}

	.iexel-completed-match-history .iexel-incident-sequence {
		grid-column: 1;
		grid-row: 1;
		width: 38px;
		min-height: 34px;
		box-sizing: border-box;
	}

	.iexel-completed-match-history .iexel-incident-timeline li > .iexel-person-avatar,
	.iexel-completed-match-history .iexel-incident-substitution-avatars {
		grid-column: 2;
		grid-row: 1;
		justify-self: start;
	}

	.iexel-completed-match-history .iexel-incident-timeline li > .iexel-incident-body {
		display: contents;
	}

	.iexel-completed-match-history .iexel-incident-meta {
		grid-column: 3;
		grid-row: 1;
		min-width: 0;
		line-height: 1.3;
	}

	.iexel-completed-match-history .iexel-incident-title,
	.iexel-completed-match-history .iexel-incident-body > small:not(.iexel-incident-meta) {
		grid-column: 1 / -1;
		min-width: 0;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.iexel-completed-match-history .iexel-incident-title {
		grid-row: 2;
		line-height: 1.35;
	}

	.iexel-completed-match-history .iexel-incident-substitution-player {
		font-weight: 800;
	}

	.iexel-completed-match-history .iexel-match-report-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.iexel-completed-match-history .iexel-match-report-leaders,
	.iexel-completed-match-history .iexel-match-report-lineups {
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-completed-match-history .iexel-match-report-leaders strong,
	.iexel-completed-match-history .iexel-match-report-lineups strong,
	.iexel-completed-match-history .iexel-match-report-lineups small {
		min-width: 0;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}
}

@container iexel-completed-history (max-width: 340px) {
	.iexel-completed-match-history .iexel-match-report-card,
	.iexel-completed-match-history .iexel-incident-timeline-card {
		padding: 18px 14px;
	}

	.iexel-completed-match-history .iexel-incident-timeline li {
		grid-template-columns: 38px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
	}

	.iexel-completed-match-history .iexel-incident-meta {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.iexel-completed-match-history .iexel-incident-title {
		grid-row: 3;
	}

	.iexel-completed-match-history .iexel-match-report-metrics {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
	}

	.iexel-completed-match-history .iexel-match-report-metrics div {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		padding: 10px 12px;
	}

	.iexel-completed-match-history .iexel-match-report-metrics strong {
		grid-column: 2;
		grid-row: 1;
		font-size: 1.4rem;
		line-height: 1;
	}

	.iexel-completed-match-history .iexel-match-report-metrics span {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
		word-break: normal;
		overflow-wrap: normal;
		white-space: normal;
	}
}

@container iexel-completed-record (max-width: 440px) {
	.iexel-completed-match-record > .iexel-match-mode-score-card {
		padding: 18px;
	}

	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-score-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-score-badges {
		justify-content: flex-start;
	}

	/* CMC-003 v1 final polish: same genuine 2-column football grid as the
	   live Match Mode 440px breakpoint above -- see that rule's comment
	   (align-items: start keeps the HOME/AWAY eyebrow labels level when
	   one Team name wraps to two lines and the other does not). */
	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-mode-scoreboard {
		grid-template-columns: 1fr 1fr;
		align-items: start;
		column-gap: 12px;
		row-gap: 4px;
	}

	/* Long-name mobile resilience: same fix, same reasoning and the same
	   empirically-verified 17px word-break threshold as the live Match Mode
	   440px breakpoint above -- see that rule's comment. cqi (this
	   container's own inline size) is used here instead of vw so the curve
	   tracks the actual .iexel-completed-match-record box rather than
	   assuming its ancestor padding matches the live page's exactly. */
	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-score-team strong {
		font-size: clamp(.95rem, 5.7cqi, 1.375rem);
		text-wrap: balance;
		overflow-wrap: break-word;
	}

	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-mode-score__value {
		grid-column: 1 / -1;
		grid-row: 2;
		align-self: center;
		width: 100%;
		gap: clamp(10px, 5cqi, 18px);
		padding: 14px;
		box-sizing: border-box;
		font-size: clamp(2.6rem, 18cqi, 4rem);
	}

	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-mode-score__scorers--right {
		grid-column: 2;
	}

	/* Same mobile scorer-list cleanup as the live Match Mode breakpoint --
	   one entry per line, bullet separator suppressed. */
	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-goal-scorers {
		display: grid;
		gap: 3px;
	}
	.iexel-completed-match-record > .iexel-match-mode-score-card .iexel-match-goal-scorers li:not(:first-child)::before {
		content: none;
	}
}

/* Product Owner acceptance correction: mobile Player Statistics hero
   avatar collided with / was clipped by the hero's right edge. Root
   cause -- at <=680px .iexel-player-statistics-player is forced to
   width: 100% (the existing mobile breakpoint below) while remaining a
   flex ROW sibling of .iexel-player-statistics-profile-image inside
   .iexel-player-statistics-hero-main, which never received a
   flex-direction change for mobile. The two competed for the same row,
   pushing/clipping the avatar against the right edge. Appended at the
   end of the stylesheet so it reliably wins over the earlier
   unconditional/600px legacy rules for this same selector (align-self,
   margin-left/margin) without touching or reordering them. Stacking into
   a column at the SAME existing mobile breakpoint matches the
   already-intended "centred/stacked" mobile composition and gives the
   avatar its own centred row with deliberate, symmetric breathing room.
   Desktop (>680px) hero placement, and the existing >=681px breathing-
   room rule, are completely untouched -- this block only ever applies at
   <=680px. Avatar size itself is not touched. */
@media (max-width: 680px) {
	.iexel-player-statistics-hero-main {
		flex-direction: column;
		align-items: center;
	}
	.iexel-player-statistics-profile-image {
		margin: 20px 0 0;
		align-self: center;
	}
}

/*==================================================
PERSONAL TARGETS BATCH 3D: SAFEGUARDED TARGET LIBRARY & MY CHALLENGES
==================================================*/

/* Coach UI: Library challenge picker, template selector & parameter fields */
.iexel-target-form-guidance,
.iexel-target-guidance-notice {
	background: rgba(203, 161, 53, 0.12);
	border: 1px solid rgba(203, 161, 53, 0.35);
	border-radius: 8px;
	padding: 12px 16px;
	color: var(--iexel-color-on-dark, #ffffff);
	font-size: 0.88rem;
	line-height: 1.5;
	font-weight: 500;
	margin: 0 0 16px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-player-personal-targets .iexel-button-primary {
	background: var(--iexel-gold, #cba135);
	color: #071d49 !important;
	font-weight: 800;
	border: 1px solid #f4d77e;
	min-height: 44px;
	padding: 10px 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	box-sizing: border-box;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.iexel-player-personal-targets .iexel-button-primary:hover {
	background: #e0bc5a;
	color: #071d49 !important;
	border-color: #ffffff;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(203, 161, 53, 0.35);
}

.iexel-player-personal-targets .iexel-button-primary:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(203, 161, 53, 0.45);
}

/* Challenge Picker Layout */
.iexel-target-picker {
	display: grid;
	gap: 12px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-target-picker__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-target-picker__label {
	color: var(--iexel-gold, #cba135);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.iexel-target-picker__tabs {
	display: flex;
	gap: 6px;
	background: rgba(255, 255, 255, 0.06);
	padding: 4px;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-target-picker__tab {
	background: transparent;
	border: none;
	color: var(--iexel-brand-muted, #94a3b8);
	font: inherit;
	font-size: 0.82rem;
	font-weight: 700;
	padding: 8px 14px;
	border-radius: 6px;
	cursor: pointer;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.15s ease, color 0.15s ease;
	box-sizing: border-box;
}

.iexel-target-picker__tab:hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.05);
}

.iexel-target-picker__tab.is-active {
	background: var(--iexel-midnight-2, #071d49);
	color: var(--iexel-gold, #cba135);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	font-weight: 800;
}

.iexel-target-picker__tab:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

/* Category Disclosures */
.iexel-target-picker__categories {
	display: grid;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

details.iexel-target-picker__category {
	background: var(--iexel-midnight-2, #071d49);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 8px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

details.iexel-target-picker__category[open] {
	border-color: rgba(203, 161, 53, 0.3);
}

summary.iexel-target-picker__category-summary {
	list-style: none;
	cursor: pointer;
	padding: 10px 14px;
	min-height: 44px;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	user-select: none;
}

summary.iexel-target-picker__category-summary::-webkit-details-marker {
	display: none;
}

.iexel-target-picker__category-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-target-picker__category-title {
	color: #ffffff;
	font-size: 0.92rem;
	font-weight: 750;
	line-height: 1.3;
}

.iexel-target-picker__category-count {
	background: rgba(203, 161, 53, 0.15);
	color: var(--iexel-gold, #cba135);
	border: 1px solid rgba(203, 161, 53, 0.35);
	font-size: 0.75rem;
	font-weight: 800;
	padding: 2px 8px;
	border-radius: 999px;
	line-height: 1.2;
}

summary.iexel-target-picker__category-summary:hover .iexel-target-picker__category-title {
	color: var(--iexel-gold, #cba135);
}

summary.iexel-target-picker__category-summary:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: -2px;
}

/* Challenge Options & Cards */
.iexel-target-picker__options {
	display: grid;
	gap: 8px;
	padding: 8px 12px 12px;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-target-picker.is-recommended-view .iexel-target-picker__option[data-recommended="0"] {
	display: none;
}

/* Radio Control: Accessible Visually Hidden (eliminates duplicate stray radio dot) */
.iexel-target-picker__radio,
.screen-reader-text,
.sr-only {
	border: 0 !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	white-space: nowrap !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.iexel-target-picker__option {
	display: block;
	position: relative;
	cursor: pointer;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
}

.iexel-target-picker__card {
	background: rgba(255, 255, 255, 0.035);
	border: 1.5px solid rgba(255, 255, 255, 0.1);
	border-radius: 8px;
	padding: 10px 12px;
	min-height: 44px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.iexel-target-picker__card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(203, 161, 53, 0.4);
}

.iexel-target-picker__card-main {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-target-picker__indicator {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid #64748b;
	flex-shrink: 0;
	margin-top: 2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.iexel-target-picker__title {
	color: #ffffff;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.4;
	overflow-wrap: anywhere;
	flex: 1 1 auto;
}

.iexel-target-picker__tags {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	padding-left: 28px;
}

.iexel-target-tag {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 2px 6px;
	border-radius: 4px;
	line-height: 1.2;
}

.iexel-target-tag.is-position {
	background: rgba(59, 130, 246, 0.15);
	color: #93c5fd;
	border: 1px solid rgba(59, 130, 246, 0.35);
}

.iexel-target-tag.is-context {
	background: rgba(245, 158, 11, 0.15);
	color: #fcd34d;
	border: 1px solid rgba(245, 158, 11, 0.35);
}

/* Checked state */
.iexel-target-picker__radio:checked + .iexel-target-picker__card,
.iexel-target-picker__card.is-selected {
	background: rgba(203, 161, 53, 0.12);
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 1px var(--iexel-gold, #cba135);
}

.iexel-target-picker__radio:checked + .iexel-target-picker__card .iexel-target-picker__indicator,
.iexel-target-picker__card.is-selected .iexel-target-picker__indicator {
	border-color: var(--iexel-gold, #cba135);
	background: var(--iexel-gold, #cba135);
}

.iexel-target-picker__radio:checked + .iexel-target-picker__card .iexel-target-picker__indicator::after,
.iexel-target-picker__card.is-selected .iexel-target-picker__indicator::after {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #071d49;
}

.iexel-target-picker__radio:focus-visible + .iexel-target-picker__card {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

/* Selected Challenge Panel (Assignment Controls) */
.iexel-selected-challenge-panel {
	background: var(--iexel-midnight-2, #071d49);
	border: 1.5px solid rgba(203, 161, 53, 0.4);
	border-radius: 10px;
	padding: 16px;
	display: grid;
	gap: 14px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 8px;
}

.iexel-selected-challenge-header {
	display: grid;
	gap: 4px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-selected-challenge-kicker {
	color: var(--iexel-gold, #cba135);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.iexel-selected-challenge-title {
	color: #ffffff;
	font-size: 1.05rem;
	font-weight: 750;
	margin: 0;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.iexel-selected-challenge-cue {
	color: #cbd5e1;
	font-size: 0.85rem;
	font-weight: 500;
	line-height: 1.45;
	margin: 4px 0 0;
	font-style: italic;
	overflow-wrap: anywhere;
}

@media(max-width:600px){
	.iexel-target-picker__header {
		flex-direction: column;
		align-items: stretch;
	}
	.iexel-target-picker__tabs {
		display: grid;
		grid-template-columns: 1fr 1fr;
		width: 100%;
	}
	.iexel-target-picker__tab {
		width: 100%;
		text-align: center;
	}
}

@media(max-width:390px){
	.iexel-target-picker__tabs {
		grid-template-columns: 1fr;
	}
	.iexel-target-picker__options {
		padding: 6px 8px 10px;
	}
	.iexel-selected-challenge-panel {
		padding: 12px;
	}
}

.iexel-target-form-field select {
	background: var(--iexel-midnight-2, #071d49);
	border: 2px solid #64748b;
	border-radius: 8px;
	color: var(--iexel-white, #fff);
	font: inherit;
	min-height: 44px;
	padding: 8px 12px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-target-form-field select:focus,
.iexel-target-form-field select:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	outline: 3px solid rgba(203, 161, 53, 0.45);
	outline-offset: 2px;
}

.iexel-target-form-field select optgroup {
	background: #18233a;
	color: var(--iexel-gold, #cba135);
	font-weight: 800;
}

.iexel-target-form-field select option {
	background: #fff;
	color: #18233a;
	font-weight: 500;
}

.iexel-target-form-field input[type="number"] {
	background: var(--iexel-midnight-2, #071d49);
	border: 2px solid #64748b;
	border-radius: 8px;
	color: var(--iexel-white, #fff);
	font: inherit;
	min-height: 44px;
	padding: 8px 12px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-target-form-field input[type="number"]:focus,
.iexel-target-form-field input[type="number"]:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	outline: 3px solid rgba(203, 161, 53, 0.45);
	outline-offset: 2px;
}

.iexel-target-context-tag {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.3;
}

.iexel-target-context-tag.is-match {
	background: rgba(59, 130, 246, 0.15);
	color: #93c5fd;
	border: 1px solid rgba(59, 130, 246, 0.35);
}

.iexel-target-context-tag.is-training {
	background: rgba(168, 85, 247, 0.15);
	color: #d8b4fe;
	border: 1px solid rgba(168, 85, 247, 0.35);
}

.iexel-target-static-field {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 8px;
	padding: 10px 12px;
	color: var(--iexel-white, #fff);
	font-size: 0.92rem;
	line-height: 1.4;
}

/* Player / Parent Progress: My Challenges Section */
.iexel-player-challenges {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-challenge-group {
	margin: 0;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-challenge-group__title {
	font-size: 0.95rem;
	font-weight: 850;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--iexel-progress-anchor, var(--iexel-midnight, #071d49));
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	line-height: 1.3;
}

.iexel-challenge-group__subtitle {
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--iexel-progress-muted, var(--iexel-muted, #697386));
	margin: 2px 0 12px;
	line-height: 1.4;
}

.iexel-challenge-group.is-achieved {
	margin-top: 8px;
}

.iexel-challenge-group.is-achieved .iexel-challenge-group__title {
	color: var(--iexel-brand-success, #166534);
}

.iexel-challenge-cards {
	display: grid;
	gap: 14px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

/* Challenge Cards: Active Disclosure */
details.iexel-challenge-card {
	background: linear-gradient(110deg, color-mix(in srgb, var(--iexel-progress-anchor, var(--iexel-midnight, #071d49)) 94%, #000), var(--iexel-progress-anchor-deep, #041029));
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-left: 4px solid var(--iexel-color-gold, #cba135);
	border-radius: 14px;
	padding: 0;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 4px 16px rgba(7, 29, 73, 0.08);
}

details.iexel-challenge-card[open] {
	background: linear-gradient(110deg, color-mix(in srgb, var(--iexel-progress-anchor, var(--iexel-midnight, #071d49)) 88%, #000), var(--iexel-progress-anchor-deep, #041029));
	border-color: rgba(203, 161, 53, 0.45);
	box-shadow: 0 8px 24px rgba(7, 29, 73, 0.16);
}

summary.iexel-challenge-card__summary {
	list-style: none;
	cursor: pointer;
	padding: 16px 18px;
	display: grid;
	gap: 8px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 44px;
	outline: none;
}

summary.iexel-challenge-card__summary::-webkit-details-marker {
	display: none;
}

summary.iexel-challenge-card__summary:focus-visible {
	outline: 3px solid var(--iexel-color-gold, #cba135);
	outline-offset: -2px;
}

.iexel-challenge-card__header {
	display: flex;
	align-items: center;
	gap: 8px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-challenge-card__icon {
	font-size: 1.15rem;
	line-height: 1;
	flex: 0 0 auto;
	transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

details.iexel-challenge-card[open] .iexel-challenge-card__icon {
	transform: scale(1.15);
}

.iexel-challenge-card__tag {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: rgba(59, 130, 246, 0.15);
	color: #93c5fd;
	border: 1px solid rgba(59, 130, 246, 0.35);
	line-height: 1.3;
}

.iexel-challenge-card__chevron {
	margin-left: auto;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--iexel-progress-on-anchor-muted, #c8d3e3);
	border-bottom: 2px solid var(--iexel-progress-on-anchor-muted, #c8d3e3);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	flex: 0 0 auto;
}

details.iexel-challenge-card[open] .iexel-challenge-card__chevron {
	transform: rotate(-135deg);
}

.iexel-challenge-card__title {
	font-size: 1.02rem;
	font-weight: 750;
	color: var(--iexel-progress-on-anchor, #f8fafc);
	margin: 0;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.iexel-challenge-card__review {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
	margin: 0;
}

.iexel-challenge-card__body {
	padding: 0 18px 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-challenge-card__cue {
	margin-top: 14px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-left: 3px solid var(--iexel-color-gold, #cba135);
	border-radius: 0 10px 10px 0;
	padding: 12px 16px;
	display: grid;
	gap: 5px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-challenge-card__cue-label {
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--iexel-color-gold, #cba135);
	line-height: 1.2;
}

.iexel-challenge-card__cue p {
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--iexel-progress-on-anchor, #f8fafc);
	margin: 0;
	overflow-wrap: anywhere;
}

/* Challenge Cards: Achieved */
article.iexel-challenge-card.is-achieved {
	background: linear-gradient(110deg, color-mix(in srgb, var(--iexel-progress-anchor, var(--iexel-midnight, #071d49)) 94%, #000), var(--iexel-progress-anchor-deep, #041029));
	border: 1px solid rgba(74, 222, 128, 0.25);
	border-left: 4px solid #4ade80;
	border-radius: 14px;
	padding: 16px 18px;
	display: grid;
	gap: 8px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-shadow: 0 4px 16px rgba(7, 29, 73, 0.08);
}

.iexel-challenge-card__tag.is-achieved {
	background: rgba(74, 222, 128, 0.15);
	color: #86efac;
	border: 1px solid rgba(74, 222, 128, 0.35);
}

.iexel-challenge-card__context {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.iexel-challenge-card__completed-date {
	font-size: 0.82rem;
	font-weight: 600;
	color: #86efac;
	margin: 0;
}

article.iexel-challenge-card.is-achieved .iexel-challenge-card__cue {
	margin-top: 8px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-left: 3px solid rgba(74, 222, 128, 0.5);
	border-radius: 0 10px 10px 0;
	padding: 10px 14px;
}

article.iexel-challenge-card.is-achieved .iexel-challenge-card__cue p {
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
}

/* Zero-active Positive Empty State */
.iexel-challenge-empty-state {
	text-align: center;
	padding: clamp(24px, 4vw, 36px) 20px;
	background: rgba(7, 29, 73, 0.02);
	border: 1.5px dashed rgba(7, 29, 73, 0.15);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-challenge-empty-icon {
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 10px;
}

.iexel-challenge-empty-title {
	font-size: 1.08rem;
	font-weight: 800;
	color: var(--iexel-progress-anchor, var(--iexel-midnight, #071d49));
	margin: 0 0 6px;
}

.iexel-challenge-empty-copy {
	font-size: 0.92rem;
	color: var(--iexel-progress-muted, var(--iexel-muted, #697386));
	margin: 0;
	max-width: 480px;
	line-height: 1.5;
}

/* Mobile responsive constraints at 390px and 320px */
@media (max-width: 600px) {
	.iexel-challenge-cards {
		gap: 10px;
	}
	summary.iexel-challenge-card__summary {
		padding: 14px 16px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 14px 16px;
	}
	.iexel-challenge-card__body {
		padding: 0 16px 14px;
	}
}

@media (max-width: 390px) {
	summary.iexel-challenge-card__summary {
		padding: 12px 14px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 12px 14px;
	}
	.iexel-challenge-card__body {
		padding: 0 14px 12px;
	}
	.iexel-challenge-card__cue {
		padding: 10px 12px;
	}
	.iexel-challenge-card__title {
		font-size: 0.96rem;
	}
}

@media (max-width: 320px) {
	summary.iexel-challenge-card__summary {
		padding: 10px 12px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 10px 12px;
	}
	.iexel-challenge-card__body {
		padding: 0 12px 10px;
	}
	.iexel-challenge-card__cue {
		padding: 8px 10px;
	}
	.iexel-challenge-card__title {
		font-size: 0.92rem;
	}
	.iexel-challenge-card__tag {
		font-size: 0.68rem;
		padding: 1px 6px;
	}
}
	font-size: 1.02rem;
	font-weight: 750;
	color: var(--iexel-progress-on-anchor, #f8fafc);
	margin: 0;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.iexel-challenge-card__review {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
	margin: 0;
}

.iexel-challenge-card__body {
	padding: 0 18px 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-challenge-card__cue {
	margin-top: 14px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-left: 3px solid var(--iexel-color-gold, #cba135);
	border-radius: 0 10px 10px 0;
	padding: 12px 16px;
	display: grid;
	gap: 5px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-challenge-card__cue-label {
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--iexel-color-gold, #cba135);
	line-height: 1.2;
}

.iexel-challenge-card__cue p {
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--iexel-progress-on-anchor, #f8fafc);
	margin: 0;
	overflow-wrap: anywhere;
}

/* Challenge Cards: Achieved */
article.iexel-challenge-card.is-achieved {
	background: linear-gradient(110deg, color-mix(in srgb, var(--iexel-progress-anchor, var(--iexel-midnight, #071d49)) 94%, #000), var(--iexel-progress-anchor-deep, #041029));
	border: 1px solid rgba(74, 222, 128, 0.25);
	border-left: 4px solid #4ade80;
	border-radius: 14px;
	padding: 16px 18px;
	display: grid;
	gap: 8px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-shadow: 0 4px 16px rgba(7, 29, 73, 0.08);
}

.iexel-challenge-card__tag.is-achieved {
	background: rgba(74, 222, 128, 0.15);
	color: #86efac;
	border: 1px solid rgba(74, 222, 128, 0.35);
}

.iexel-challenge-card__context {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.iexel-challenge-card__completed-date {
	font-size: 0.82rem;
	font-weight: 600;
	color: #86efac;
	margin: 0;
}

article.iexel-challenge-card.is-achieved .iexel-challenge-card__cue {
	margin-top: 8px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-left: 3px solid rgba(74, 222, 128, 0.5);
	border-radius: 0 10px 10px 0;
	padding: 10px 14px;
}

article.iexel-challenge-card.is-achieved .iexel-challenge-card__cue p {
	color: var(--iexel-progress-on-anchor-muted, #c8d3e3);
}

/* Zero-active Positive Empty State */
.iexel-challenge-empty-state {
	text-align: center;
	padding: clamp(24px, 4vw, 36px) 20px;
	background: rgba(7, 29, 73, 0.02);
	border: 1.5px dashed rgba(7, 29, 73, 0.15);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-challenge-empty-icon {
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 10px;
}

.iexel-challenge-empty-title {
	font-size: 1.08rem;
	font-weight: 800;
	color: var(--iexel-progress-anchor, var(--iexel-midnight, #071d49));
	margin: 0 0 6px;
}

.iexel-challenge-empty-copy {
	font-size: 0.92rem;
	color: var(--iexel-progress-muted, var(--iexel-muted, #697386));
	margin: 0;
	max-width: 480px;
	line-height: 1.5;
}

/* Mobile responsive constraints at 390px and 320px */
@media (max-width: 600px) {
	.iexel-challenge-cards {
		gap: 10px;
	}
	summary.iexel-challenge-card__summary {
		padding: 14px 16px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 14px 16px;
	}
	.iexel-challenge-card__body {
		padding: 0 16px 14px;
	}
}

@media (max-width: 390px) {
	summary.iexel-challenge-card__summary {
		padding: 12px 14px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 12px 14px;
	}
	.iexel-challenge-card__body {
		padding: 0 14px 12px;
	}
	.iexel-challenge-card__cue {
		padding: 10px 12px;
	}
	.iexel-challenge-card__title {
		font-size: 0.96rem;
	}
}

@media (max-width: 320px) {
	summary.iexel-challenge-card__summary {
		padding: 10px 12px;
	}
	article.iexel-challenge-card.is-achieved {
		padding: 10px 12px;
	}
	.iexel-challenge-card__body {
		padding: 0 12px 10px;
	}
	.iexel-challenge-card__cue {
		padding: 8px 10px;
	}
	.iexel-challenge-card__title {
		font-size: 0.92rem;
	}
	.iexel-challenge-card__tag {
		font-size: 0.68rem;
		padding: 1px 6px;
	}
}

/* ==========================================================================
   Treasurer Finance: Billing Run Outcomes & Item Audit (Canonical Disclosures)
   ========================================================================== */

/* Disclosures container */
.iexel-portal .iexel-billing-run-items-card .iexel-billing-run-disclosures {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

/* Family outcome disclosure card */
.iexel-billing-run-outcome-disclosure {
	background: #ffffff;
	border: 1px solid rgba(7, 29, 73, 0.12);
	border-radius: 12px;
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.03);
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.iexel-billing-run-outcome-disclosure:hover {
	border-color: rgba(7, 29, 73, 0.2);
}

.iexel-billing-run-outcome-disclosure[open] {
	border-color: rgba(7, 29, 73, 0.25);
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

/* Summary row: desktop grid columns */
.iexel-billing-run-outcome-summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 140px 130px 110px auto;
	align-items: center;
	gap: 16px;
	padding: 12px 18px;
	cursor: pointer;
	user-select: none;
	list-style: none;
	transition: background-color 0.15s ease;
}

.iexel-billing-run-outcome-summary::-webkit-details-marker {
	display: none;
}

.iexel-billing-run-outcome-summary:focus-visible {
	outline: 3px solid var(--iexel-focus, #2563eb);
	outline-offset: -2px;
}

.iexel-billing-run-outcome-summary:hover {
	background: rgba(15, 23, 42, 0.015);
}

.iexel-billing-run-outcome-disclosure[open] > .iexel-billing-run-outcome-summary {
	border-bottom: 1px solid rgba(7, 29, 73, 0.08);
	background: rgba(15, 23, 42, 0.02);
}

/* Header container and meta act as transparent layout containers on desktop */
.iexel-billing-run-summary-header,
.iexel-billing-run-summary-meta {
	display: contents;
}

/* Column 1: Identity (Family name + badge/tag) */
.iexel-billing-run-summary-identity {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	justify-self: start;
}

.iexel-billing-run-summary-name {
	font-size: 0.98rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Columns 2, 3, 4: Status, Invoice, Amount — stable desktop columns, left-aligned */
.iexel-billing-run-summary-col {
	display: flex;
	align-items: center;
	justify-self: start;
	text-align: left;
	min-width: 0;
}

.iexel-billing-run-summary-col--status {
	width: 140px;
}

.iexel-billing-run-summary-col--invoice {
	width: 130px;
}

.iexel-billing-run-summary-col--amount {
	width: 110px;
}

/* Separator dots hidden on desktop */
.iexel-billing-summary-sep {
	display: none;
}

.iexel-billing-summary-inv {
	font-weight: 700;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.86rem;
}

.iexel-billing-summary-amount {
	font-size: 0.96rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
}

.iexel-billing-summary-empty {
	color: var(--iexel-muted, #667085);
	font-weight: 600;
}

/* Column 5: Action (aligned to far right) */
.iexel-billing-run-summary-action {
	display: flex;
	align-items: center;
	gap: 6px;
	justify-self: end;
	flex-shrink: 0;
	font-size: 0.78rem;
	font-weight: 750;
	color: var(--iexel-color-gold-text, #715514);
}

.iexel-billing-run-summary-cta .is-open-text { display: none; }
.iexel-billing-run-summary-cta .is-closed-text { display: inline; }
.iexel-billing-run-outcome-disclosure[open] .iexel-billing-run-summary-cta .is-open-text { display: inline; }
.iexel-billing-run-outcome-disclosure[open] .iexel-billing-run-summary-cta .is-closed-text { display: none; }

.iexel-billing-run-summary-chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-size: 1.25rem;
	line-height: 1;
	transition: transform 0.2s ease, color 0.2s ease;
}

.iexel-billing-run-summary-chevron::before {
	content: '\203a';
}

.iexel-billing-run-outcome-disclosure[open] .iexel-billing-run-summary-chevron {
	transform: rotate(90deg);
	color: var(--iexel-midnight, #071d49);
}

/* Expanded audit panel */
.iexel-billing-run-outcome-expanded {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px 20px;
	padding: 18px 20px;
	background: #ffffff;
}

.iexel-audit-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	min-width: 0;
	overflow-wrap: anywhere;
}

.iexel-audit-block--contact {
	grid-column: span 1;
}

.iexel-audit-block--player {
	grid-column: 1 / -1;
}

.iexel-audit-block--status {
	grid-column: span 1;
}

.iexel-audit-block--invoice {
	grid-column: span 1;
}

.iexel-audit-block--amount {
	grid-column: span 1;
}

.iexel-audit-block--diagnostic {
	grid-column: 1 / -1;
}

.iexel-audit-label {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--iexel-color-gold-text, #715514);
}

.iexel-billing-run-outcome-expanded .iexel-family-audit-summary,
.iexel-billing-run-outcome-expanded .iexel-family-audit-breakdown {
	width: 100%;
	max-width: 100%;
}

.iexel-billing-run-outcome-expanded .iexel-family-audit-breakdown {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 8px;
	margin-top: 8px;
}

.iexel-billing-run-outcome-expanded .iexel-family-player-card {
	width: 100%;
	box-sizing: border-box;
}

.iexel-billing-run-outcome-expanded .iexel-family-player-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 4px 8px;
}

.iexel-billing-run-outcome-expanded .iexel-family-player-financials {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	align-items: center;
}

.iexel-billing-run-outcome-expanded .iexel-family-players-list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.iexel-billing-run-outcome-expanded .iexel-family-player-tag {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.iexel-billing-run-outcome-expanded .iexel-billing-status {
	align-self: flex-start;
}

/* Tablet & Mobile Breakpoint (<= 768px): Reflow summary and expanded panel vertically */
@media (max-width: 768px) {
	.iexel-billing-run-outcome-summary {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		padding: 14px 16px;
	}

	.iexel-billing-run-summary-header {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		width: 100%;
	}

	.iexel-billing-run-summary-identity {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
		width: 100%;
	}

	.iexel-billing-run-summary-meta {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		margin-left: 0;
		width: 100%;
		gap: 6px 8px;
		font-size: 0.85rem;
		color: var(--iexel-muted, #667085);
	}

	.iexel-billing-run-summary-col {
		display: inline-flex;
		align-items: center;
		width: auto;
	}

	.iexel-billing-run-summary-col.is-empty {
		display: none;
	}

	.iexel-billing-summary-sep {
		display: inline;
		color: rgba(7, 29, 73, 0.25);
		font-weight: 700;
		margin-right: 6px;
	}

	.iexel-billing-run-summary-action {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding-top: 6px;
		margin-top: 2px;
		border-top: 1px dashed rgba(7, 29, 73, 0.08);
		width: 100%;
	}

	.iexel-billing-run-outcome-expanded {
		display: flex;
		flex-direction: column;
		gap: 14px;
		padding: 16px;
	}

	.iexel-audit-block--contact {
		padding-bottom: 10px;
		border-bottom: 1px solid rgba(7, 29, 73, 0.06);
	}

	.iexel-billing-run-outcome-expanded .iexel-family-audit-breakdown {
		grid-template-columns: 1fr;
	}
}

/* 320px narrow mobile refinement */
@media (max-width: 360px) {
	.iexel-billing-run-outcome-summary {
		padding: 12px;
		gap: 8px;
	}

	.iexel-billing-run-outcome-expanded {
		padding: 12px;
		gap: 12px;
	}

	.iexel-billing-run-outcome-expanded .iexel-family-player-financials {
		flex-direction: column;
		align-items: flex-start;
		gap: 3px;
	}

	.iexel-billing-run-outcome-expanded .iexel-family-player-financials .iexel-net-text {
		margin-left: 0;
	}
}

/* ==========================================================================
   Treasurer Finance: Invoice Detail Itemised Charges & Discounts Mobile Reflow
   ========================================================================== */

/* Desktop default: keep table, hide mobile cards */
.iexel-invoice-lines-desktop {
	display: block;
}

.iexel-invoice-lines-mobile {
	display: none;
}

/* Mobile Breakpoint (<= 768px): hide wide table, display vertical line cards */
@media (max-width: 768px) {
	.iexel-invoice-lines-desktop {
		display: none;
	}

	.iexel-invoice-lines-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-invoice-line-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
	}

	.iexel-invoice-line-card {
		display: flex;
		flex-direction: column;
		gap: 12px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
	}

	.iexel-invoice-line-card.is-discount {
		border-left: 3px solid #dc2626;
		background: rgba(254, 242, 242, 0.35);
	}

	.iexel-invoice-line-card-header {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: space-between;
		gap: 8px;
		padding-bottom: 10px;
		border-bottom: 1px solid rgba(7, 29, 73, 0.08);
	}

	.iexel-invoice-line-card-heading {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
		flex: 1 1 auto;
	}

	.iexel-invoice-line-card-desc {
		font-size: 0.95rem;
		font-weight: 750;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.iexel-invoice-line-card-provenance {
		font-size: 0.76rem;
		color: var(--iexel-muted, #667085);
		font-weight: 500;
	}

	.iexel-invoice-line-card-player {
		align-self: flex-start;
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.iexel-invoice-line-card-details {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px 12px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-invoice-line-card-col {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-width: 0;
	}

	.iexel-invoice-line-card-label {
		font-size: 0.68rem;
		font-weight: 800;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--iexel-color-gold-text, #715514);
	}

	.iexel-invoice-line-card-value {
		font-size: 0.88rem;
		font-weight: 600;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: anywhere;
	}

	.iexel-invoice-line-card-col--subtotal .iexel-invoice-line-card-value {
		font-size: 0.98rem;
		font-weight: 800;
	}

	.iexel-invoice-line-mobile-totals {
		display: flex;
		flex-direction: column;
		gap: 8px;
		padding: 14px 16px;
		background: rgba(15, 23, 42, 0.03);
		border: 1px solid rgba(7, 29, 73, 0.1);
		border-radius: 12px;
		margin-top: 4px;
		box-sizing: border-box;
		width: 100%;
	}

	.iexel-invoice-line-mobile-total-row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		font-size: 0.88rem;
		color: var(--iexel-midnight, #071d49);
	}

	.iexel-invoice-line-mobile-total-row span {
		font-weight: 600;
	}

	.iexel-invoice-line-mobile-total-row strong {
		font-weight: 800;
		font-size: 0.95rem;
	}

	.iexel-invoice-line-mobile-total-row.is-net {
		padding-top: 8px;
		border-top: 1px solid rgba(7, 29, 73, 0.12);
		font-size: 0.98rem;
	}

	.iexel-invoice-line-mobile-total-row.is-net strong {
		font-size: 1.1rem;
		color: var(--iexel-midnight, #071d49);
	}
}

/* Narrow mobile refinement (<= 480px and <= 360px) */
@media (max-width: 480px) {
	.iexel-invoice-line-card-details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 14px;
	}
}

@media (max-width: 360px) {
	.iexel-invoice-line-card {
		padding: 12px;
		gap: 10px;
	}

	.iexel-invoice-line-mobile-totals {
		padding: 12px;
		gap: 6px;
	}

	.iexel-invoice-line-card-desc {
		font-size: 0.88rem;
	}
}

/* ==========================================================================
   Treasurer Finance Recent Payments Responsive Presentation (T2)
   Desktop: Dense table view
   Mobile (<= 768px): Compact stacked payment cards
   ========================================================================== */
.iexel-payments-desktop {
	display: block;
}

.iexel-payments-mobile {
	display: none;
}

.iexel-experience-section > .iexel-finance-section-title {
	margin-bottom: 20px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
}

.iexel-finance-month-form {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.iexel-finance-month-form label {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--iexel-midnight, #071d49);
	white-space: nowrap;
}

.iexel-finance-month-form select {
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font: inherit;
	font-size: 0.9rem;
	background: #ffffff;
	color: #0f172a;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-finance-filter-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	width: 100%;
	margin-top: 4px;
	box-sizing: border-box;
}

.iexel-finance-filter-form .iexel-filter-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.iexel-finance-filter-form .iexel-filter-search {
	flex: 1 1 200px;
	min-width: 180px;
}

.iexel-finance-filter-form .iexel-filter-field select,
.iexel-finance-filter-form .iexel-filter-field input[type="search"] {
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font: inherit;
	font-size: 0.9rem;
	background: #ffffff;
	color: #0f172a;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-finance-filter-form .iexel-filter-field select:focus,
.iexel-finance-filter-form .iexel-filter-field input[type="search"]:focus {
	outline: 2px solid var(--iexel-primary, #172554);
	outline-offset: 1px;
	border-color: var(--iexel-primary, #172554);
}

.iexel-finance-filter-form .iexel-filter-field label {
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	white-space: nowrap;
}

.iexel-finance-filter-form .iexel-filter-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
}

.iexel-finance-filter-form .iexel-filter-actions button,
.iexel-finance-filter-form .iexel-filter-actions .iexel-experience-button {
	min-height: 40px;
	padding: 8px 16px;
	white-space: nowrap;
	border-radius: 8px;
	cursor: pointer;
}

.iexel-finance-filter-form .iexel-filter-clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 14px;
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	border-radius: 8px;
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	box-sizing: border-box;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iexel-finance-filter-form .iexel-filter-clear:hover {
	background: #f1f5f9;
	border-color: var(--iexel-color-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
	text-decoration: none;
}

.iexel-finance-filter-form .iexel-filter-clear:focus-visible {
	outline: 2px solid var(--iexel-color-gold, #cba135);
	outline-offset: 2px;
}

.iexel-finance-empty .iexel-button-secondary {
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 14px;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iexel-finance-empty .iexel-button-secondary:hover {
	background: #f1f5f9;
	border-color: var(--iexel-color-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
	text-decoration: none;
}

.iexel-finance-empty .iexel-button-secondary:focus-visible {
	outline: 2px solid var(--iexel-color-gold, #cba135);
	outline-offset: 2px;
}


.iexel-finance-empty {
	color: #64748b;
	padding: 24px 16px;
	text-align: center;
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	border-radius: 12px;
	margin: 16px 0;
}

.iexel-finance-empty p {
	margin: 0 0 10px;
	color: #64748b;
	font-size: 0.95rem;
}

.iexel-finance-empty p:last-child {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.iexel-payments-desktop {
		display: none;
	}

	.iexel-payments-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-finance-month-form {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		gap: 8px;
		margin-top: 6px;
	}

	.iexel-finance-month-form label {
		font-size: 0.9rem;
	}

	.iexel-finance-month-form select {
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-finance-month-form .iexel-experience-button,
	.iexel-finance-month-form button {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
		text-align: center;
	}

	.iexel-finance-filter-form {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		gap: 10px;
		margin-top: 6px;
	}

	.iexel-finance-filter-form .iexel-filter-field {
		width: 100%;
	}

	.iexel-finance-filter-form .iexel-filter-search {
		flex: none;
		min-width: 0;
		width: 100%;
	}

	.iexel-finance-filter-form .iexel-filter-field select,
	.iexel-finance-filter-form .iexel-filter-field input[type="search"] {
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-finance-filter-form .iexel-filter-actions {
		display: flex;
		flex-direction: column;
		width: 100%;
		gap: 8px;
	}

	.iexel-finance-filter-form .iexel-filter-actions button,
	.iexel-finance-filter-form .iexel-filter-actions .iexel-experience-button,
	.iexel-finance-filter-form .iexel-filter-clear {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
		text-align: center;
	}

	.iexel-payment-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-payment-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-payment-card-header {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		min-width: 0;
	}

	.iexel-payment-card-heading {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}

	.iexel-payment-card-ref {
		font-size: 1rem;
		color: var(--iexel-navy, #0b2559);
		font-weight: 700;
	}

	.iexel-payment-card-payer {
		font-size: 0.92rem;
		color: #1e293b;
		font-weight: 500;
		overflow-wrap: break-word;
	}

	.iexel-payment-card-meta {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 6px 8px;
		font-size: 0.82rem;
		color: #64748b;
	}

	.iexel-payment-card-financials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 10px 12px;
		background: #f8fafc;
		border-radius: 8px;
		margin-top: 4px;
		box-sizing: border-box;
	}

	.iexel-payment-card-metric {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}

	.iexel-payment-card-label {
		font-size: 0.75rem;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #64748b;
		font-weight: 600;
	}

	.iexel-payment-card-value {
		font-size: 1rem;
		color: #0f172a;
		font-weight: 700;
		overflow-wrap: break-word;
	}

	.iexel-payment-card-action {
		display: flex;
		justify-content: flex-end;
		margin-top: 4px;
	}

	.iexel-payment-card-action .iexel-button {
		min-height: 38px;
		font-size: 0.85rem;
		font-weight: 750;
		padding: 6px 14px;
		text-decoration: none;
		box-sizing: border-box;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: #ffffff;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		border-radius: 8px;
		color: var(--iexel-midnight, #071d49);
	}

	.iexel-payment-card-action .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
		color: var(--iexel-midnight, #071d49);
	}

	.iexel-payment-card-action .iexel-button:focus-visible {
		outline: 3px solid var(--iexel-color-gold, #cba135);
		outline-offset: 2px;
	}

	.iexel-payment-card-action .iexel-button:active {
		background: #e2e8f0;
		color: var(--iexel-midnight, #071d49);
	}
}

@media (max-width: 360px) {
	.iexel-payment-card {
		padding: 10px 12px;
		gap: 8px;
	}

	.iexel-payment-card-financials {
		padding: 8px 10px;
		gap: 8px;
	}

	.iexel-payment-card-ref {
		font-size: 0.94rem;
	}

	.iexel-payment-card-payer {
		font-size: 0.88rem;
	}
}

/* T2-R1: Treasurer Finance Detail Contrast & Payer Identity Repair */

/* 1. Payment Detail dark hero metadata value contrast (matches Invoice Detail dark card) */
.iexel-finance-payment-detail .iexel-billing-run-meta dd {
	color: var(--iexel-color-on-dark, #ffffff);
}
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-invoice-link,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-payment-link {
	color: var(--iexel-color-on-dark, #ffffff);
}
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-invoice-link:hover,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-invoice-link:focus-visible,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-payment-link:hover,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-payment-link:focus-visible {
	color: var(--iexel-color-gold, #cba135);
}

/* 2. Top-right hero action/back button high-contrast repair on dark summary cards */
.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions a,
.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions a,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary {
	background: #ffffff;
	border: 2px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	border-radius: 12px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 9px 14px;
	font-weight: 750;
	text-decoration: none;
}

.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions a:hover,
.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary:hover,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions a:hover,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-color-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
	transform: none;
}

.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions a:focus-visible,
.iexel-finance-invoice-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary:focus-visible,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions a:focus-visible,
.iexel-finance-payment-detail .iexel-billing-run-summary-card .iexel-finance-actions .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-color-gold, #cba135);
	outline-offset: 2px;
}

/* ==========================================================================
   Treasurer Payment Detail — Payment Allocations Responsive Presentation (T2-R1.1 / T2-R1.2)
   Desktop: Dense table view (.iexel-allocations-desktop)
   Mobile (<= 768px): Stacked allocation cards (.iexel-allocations-mobile)
   ========================================================================== */
.iexel-allocations-desktop {
	display: block;
}

.iexel-allocations-desktop .iexel-invoice-link,
.iexel-allocations-mobile .iexel-invoice-link,
.iexel-allocation-card-ref-link {
	color: var(--iexel-midnight, #071d49) !important;
	text-decoration: underline;
	text-decoration-color: var(--iexel-color-gold, #cba135);
	text-underline-offset: 3px;
	font-weight: 750;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.iexel-allocations-desktop .iexel-invoice-link:hover,
.iexel-allocations-desktop .iexel-invoice-link:focus-visible,
.iexel-allocations-mobile .iexel-invoice-link:hover,
.iexel-allocations-mobile .iexel-invoice-link:focus-visible,
.iexel-allocation-card-ref-link:hover,
.iexel-allocation-card-ref-link:focus-visible {
	color: var(--iexel-color-gold, #cba135) !important;
	text-decoration-color: currentColor;
}

.iexel-allocations-mobile {
	display: none;
}

@media (max-width: 768px) {
	.iexel-allocations-desktop {
		display: none;
	}

	.iexel-allocations-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-allocation-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-allocation-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-allocation-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		flex-wrap: wrap;
		min-width: 0;
	}

	.iexel-allocation-card-ref-link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		text-decoration: underline;
		text-decoration-color: var(--iexel-color-gold, #cba135);
		text-underline-offset: 3px;
	}

	.iexel-allocation-card-ref {
		font-size: 1.05rem;
		color: var(--iexel-midnight, #071d49) !important;
		font-weight: 750;
	}

	.iexel-allocation-card-ref-link:hover .iexel-allocation-card-ref,
	.iexel-allocation-card-ref-link:focus-visible .iexel-allocation-card-ref {
		color: var(--iexel-color-gold, #cba135) !important;
	}

	.iexel-allocation-card-financials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 10px 12px;
		background: #f8fafc;
		border-radius: 8px;
		margin-top: 2px;
		box-sizing: border-box;
	}

	.iexel-allocation-card-metric {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-width: 0;
	}

	.iexel-allocation-card-label {
		font-size: 0.75rem;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #64748b;
		font-weight: 600;
	}

	.iexel-allocation-card-date {
		font-size: 0.95rem;
		color: #1e293b;
		font-weight: 600;
	}

	.iexel-allocation-card-value {
		font-size: 1.05rem;
		color: var(--iexel-midnight, #071d49);
		font-weight: 750;
		overflow-wrap: break-word;
	}

	.iexel-allocation-card-action {
		display: flex;
		margin-top: 6px;
		width: 100%;
	}

	.iexel-allocation-card-action .iexel-button {
		width: 100%;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 10px 16px;
		border-radius: 10px;
		border: 2px solid var(--iexel-midnight, #071d49);
		background: #ffffff;
		color: var(--iexel-midnight, #071d49) !important;
		font-weight: 750;
		font-size: 0.9rem;
		text-decoration: none;
		text-align: center;
		box-sizing: border-box;
		transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	}

	.iexel-allocation-card-action .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
		color: var(--iexel-midnight, #071d49) !important;
		transform: none;
	}

	.iexel-allocation-card-action .iexel-button:focus-visible {
		outline: 3px solid var(--iexel-color-gold, #cba135);
		outline-offset: 2px;
	}
	.iexel-allocation-card-heading {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 8px;
		min-width: 0;
	}

	.iexel-allocation-card-method {
		font-size: 0.82rem;
		color: #475467;
		font-weight: 600;
		background: #f1f5f9;
		padding: 2px 8px;
		border-radius: 6px;
	}

	.iexel-allocation-card-details {
		display: flex;
		flex-direction: column;
		gap: 4px;
		padding-top: 4px;
		border-top: 1px solid rgba(7, 29, 73, 0.08);
	}

	.iexel-allocation-card-note {
		margin: 2px 0 0;
		color: #1e293b;
		font-size: 0.88rem;
		line-height: 1.4;
		overflow-wrap: break-word;
	}

	.iexel-allocation-card-actions {
		display: flex;
		flex-direction: column;
		gap: 6px;
		margin-top: 6px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-allocation-card-actions .iexel-button {
		width: 100%;
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 8px 14px;
		border-radius: 8px;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		background: #ffffff;
		color: var(--iexel-midnight, #071d49) !important;
		font-weight: 750;
		font-size: 0.88rem;
		text-decoration: none;
		text-align: center;
		box-sizing: border-box;
	}

	.iexel-allocation-card-actions .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
	}
}

@media (max-width: 360px) {
	.iexel-allocation-card {
		padding: 10px 12px;
		gap: 8px;
	}

	.iexel-allocation-card-financials {
		padding: 8px 10px;
		gap: 8px;
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-allocation-card-ref {
		font-size: 0.95rem;
	}

	.iexel-allocation-card-value {
		font-size: 0.95rem;
	}
}

/* ==========================================================================
   Treasurer Finance Accounts / Invoices Responsive Presentation
   Desktop: Dense table view (.iexel-accounts-desktop)
   Mobile (<= 768px): Stacked account cards (.iexel-accounts-mobile)
   ========================================================================== */
.iexel-accounts-desktop {
	display: block;
}

.iexel-accounts-mobile {
	display: none;
}

@media (max-width: 768px) {
	.iexel-accounts-desktop {
		display: none;
	}

	.iexel-accounts-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-account-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-account-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-account-card.is-overdue {
		border-left: 4px solid #dc2626;
	}

	.iexel-account-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		flex-wrap: wrap;
		min-width: 0;
	}

	.iexel-account-card-ref-link {
		display: inline-flex;
		align-items: center;
		min-height: 36px;
		color: var(--iexel-midnight, #071d49) !important;
		text-decoration: underline;
		text-decoration-color: var(--iexel-color-gold, #cba135);
		text-underline-offset: 3px;
		font-weight: 750;
	}

	.iexel-account-card-ref-link:hover,
	.iexel-account-card-ref-link:focus-visible {
		color: var(--iexel-color-gold, #cba135) !important;
	}

	.iexel-account-card-ref {
		font-size: 1.05rem;
		color: var(--iexel-midnight, #071d49);
		font-weight: 750;
	}

	.iexel-account-card-recipient {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}

	.iexel-account-card-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: #64748b;
		font-weight: 700;
	}

	.iexel-account-card-name {
		font-size: 1rem;
		color: #1e293b;
		font-weight: 700;
		overflow-wrap: break-word;
	}

	.iexel-account-card-financials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 10px 12px;
		background: #f8fafc;
		border-radius: 8px;
		margin-top: 2px;
		box-sizing: border-box;
	}

	.iexel-account-card-metric {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-width: 0;
	}

	.iexel-account-card-value {
		font-size: 1.1rem;
		font-weight: 800;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: break-word;
	}

	.iexel-account-card-date {
		font-size: 0.95rem;
		color: #1e293b;
		font-weight: 600;
	}

	.iexel-account-card-date.is-overdue {
		color: #dc2626;
		font-weight: 700;
	}

	.iexel-account-card-actions {
		display: flex;
		margin-top: 4px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-account-card-actions .iexel-button {
		width: 100%;
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 8px 14px;
		font-weight: 750;
		font-size: 0.88rem;
		box-sizing: border-box;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		border-radius: 8px;
		background: #ffffff;
		color: var(--iexel-midnight, #071d49);
		text-decoration: none;
	}

	.iexel-account-card-actions .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
	}
}

@media (max-width: 360px) {
	.iexel-account-card {
		padding: 10px 12px;
		gap: 8px;
	}

	.iexel-account-card-financials {
		padding: 8px 10px;
		gap: 8px;
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-account-card-ref {
		font-size: 0.95rem;
	}

	.iexel-account-card-value {
		font-size: 1rem;
	}
}

/* ==========================================================================
   Treasurer Finance Invoice Adjustments Responsive Presentation
   Desktop: Dense table view (.iexel-adjustments-desktop)
   Mobile (<= 768px): Stacked adjustment cards (.iexel-adjustments-mobile)
   ========================================================================== */
.iexel-adjustments-desktop {
	display: block;
}

.iexel-adjustments-mobile {
	display: none;
}

@media (max-width: 768px) {
	.iexel-adjustments-desktop {
		display: none;
	}

	.iexel-adjustments-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-adjustment-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-adjustment-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-adjustment-card-header {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 10px;
		flex-wrap: wrap;
		min-width: 0;
	}

	.iexel-adjustment-card-heading {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 8px;
		min-width: 0;
	}

	.iexel-adjustment-card-ref {
		font-size: 1.05rem;
		color: var(--iexel-midnight, #071d49);
		font-weight: 750;
	}

	.iexel-adjustment-card-financials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 10px 12px;
		background: #f8fafc;
		border-radius: 8px;
		margin-top: 2px;
		box-sizing: border-box;
	}

	.iexel-adjustment-card-metric {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-width: 0;
	}

	.iexel-adjustment-card-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: #64748b;
		font-weight: 700;
	}

	.iexel-adjustment-card-value {
		font-size: 1.1rem;
		font-weight: 800;
		overflow-wrap: break-word;
	}

	.iexel-adjustment-card-text {
		font-size: 0.92rem;
		color: #1e293b;
		font-weight: 600;
		overflow-wrap: break-word;
	}

	.iexel-adjustment-card-meta {
		display: flex;
		align-items: center;
		gap: 6px;
		font-size: 0.85rem;
		color: #64748b;
	}

	.iexel-adjustment-card-date {
		font-weight: 600;
		color: #334155;
	}

	.iexel-adjustment-card-audit {
		display: flex;
		flex-direction: column;
		gap: 6px;
		padding-top: 8px;
		border-top: 1px solid rgba(7, 29, 73, 0.08);
		font-size: 0.85rem;
	}

	.iexel-adjustment-card-note {
		margin: 2px 0 0;
		color: #1e293b;
		line-height: 1.4;
		overflow-wrap: break-word;
	}

	.iexel-adjustment-card-actions {
		padding-top: 8px;
		border-top: 1px solid rgba(7, 29, 73, 0.08);
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-adjustment-reversal-form {
		display: flex;
		flex-direction: column;
		gap: 8px;
		width: 100%;
		box-sizing: border-box;
		margin: 0;
	}

	.iexel-adjustment-reversal-input {
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
		min-height: 40px;
		padding: 8px 10px;
		font: inherit;
		font-size: 0.88rem;
		border: 1px solid #98a2b3;
		border-radius: 8px;
		background: #ffffff;
	}

	.iexel-adjustment-reversal-btn {
		width: 100%;
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 8px 14px;
		font-weight: 750;
		font-size: 0.88rem;
		box-sizing: border-box;
		cursor: pointer;
	}
}

@media (max-width: 360px) {
	.iexel-adjustment-card {
		padding: 10px 12px;
		gap: 8px;
	}

	.iexel-adjustment-card-financials {
		padding: 8px 10px;
		gap: 8px;
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-adjustment-card-ref {
		font-size: 0.95rem;
	}

	.iexel-adjustment-card-value {
		font-size: 1rem;
	}
}

/* ==========================================================================
   Treasurer Payment Automation & Correction (T2-R2)
   Status badges, reversal forms, inline action menus, and Account Credit
   ========================================================================== */
.iexel-billing-status.is-reversed {
	background: #fee2e2;
	border-color: #fca5a5;
	color: #991b1b;
}

.iexel-billing-status.is-skipped,
.iexel-billing-status.is-excluded {
	background: #f1f5f9;
	border-color: #cbd5e1;
	color: #475569;
}

.iexel-parent-finance__card.is-credit {
	border-left: 4px solid #16a34a;
	background: #f0fdf4;
}

.iexel-inline-action-menu {
	position: relative;
	display: inline-block;
}

.iexel-inline-action-menu summary {
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.iexel-inline-action-menu summary::-webkit-details-marker {
	display: none;
}

.iexel-inline-action-panel {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	z-index: 50;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	padding: 12px;
	min-width: 220px;
	box-sizing: border-box;
}

.iexel-finance-danger-action {
	color: #991b1b !important;
	border-color: #fca5a5 !important;
}

.iexel-finance-danger-action:hover {
	background: #fef2f2 !important;
	border-color: #ef4444 !important;
	color: #7f1d1d !important;
}

.iexel-button-danger {
	background: #dc2626 !important;
	border-color: #dc2626 !important;
	color: #ffffff !important;
}

.iexel-button-danger:hover {
	background: #b91c1c !important;
	border-color: #b91c1c !important;
	color: #ffffff !important;
}

.iexel-button-sm {
	min-height: 32px !important;
	padding: 4px 10px !important;
	font-size: 0.8rem !important;
}

@media (max-width: 768px) {
	.iexel-allocation-card-action .iexel-inline-action-menu {
		width: 100%;
	}

	.iexel-allocation-card-action .iexel-inline-action-panel {
		position: static;
		width: 100%;
		margin-top: 6px;
		box-shadow: none;
		border: 1px solid #e2e8f0;
	}

	.iexel-finance-payment-detail .iexel-finance-actions .iexel-inline-action-menu {
		width: 100%;
	}

	.iexel-finance-payment-detail .iexel-finance-actions .iexel-inline-action-panel {
		position: static;
		width: 100%;
		margin-top: 6px;
		box-shadow: none;
	}
}

/* ==========================================================================
   T2-R2.1: Finance UX Repairs
   1. Treasurer Invoice Detail — Payment Allocations payment reference link contrast
   2. Record Payment field helper text
   3. Parent Family Finance Latest Payment presentation
   ========================================================================== */

/* 1. Treasurer Invoice Detail payment reference link on light allocation surface */
.iexel-finance-invoice-detail .iexel-payment-link,
.iexel-finance-invoice-detail .iexel-finance-table-scroll table td .iexel-payment-link {
	color: var(--iexel-midnight, #071d49) !important;
	text-decoration: underline;
	text-decoration-color: var(--iexel-color-gold, #cba135);
	text-underline-offset: 3px;
	font-weight: 750;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.iexel-finance-invoice-detail .iexel-payment-link:hover,
.iexel-finance-invoice-detail .iexel-payment-link:focus-visible,
.iexel-finance-invoice-detail .iexel-finance-table-scroll table td .iexel-payment-link:hover,
.iexel-finance-invoice-detail .iexel-finance-table-scroll table td .iexel-payment-link:focus-visible {
	color: var(--iexel-color-gold, #cba135) !important;
	text-decoration-color: currentColor;
}

/* 2. Record Payment form helper text */
.iexel-finance-portal-form .iexel-field-help {
	display: block;
	font-size: 0.82rem;
	font-weight: 400;
	line-height: 1.4;
	color: #526075;
	margin-top: 2px;
}

/* 3. Parent Family Finance Latest Payment presentation without separator */
.iexel-parent-finance__latest-amount {
	display: block;
}

.iexel-parent-finance__latest-date {
	display: block;
	font-size: 0.92rem;
	font-weight: 600;
	color: #526075;
	margin-top: 3px;
}

/* ==========================================================================
   Treasurer Finance Forms — Light-Surface Secondary Action & Charge Lines (T2-R2.2B)
   ========================================================================== */
.iexel-invoice-edit-workspace .iexel-button-secondary,
.iexel-finance-portal-form .iexel-button-secondary {
	background: #ffffff;
	border: 2px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	border-radius: 12px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 9px 14px;
	font-weight: 750;
	text-decoration: none;
	cursor: pointer;
}

.iexel-invoice-edit-workspace .iexel-button-secondary:hover,
.iexel-finance-portal-form .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-color-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
	transform: none;
}

.iexel-invoice-edit-workspace .iexel-button-secondary:focus-visible,
.iexel-finance-portal-form .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-color-gold, #cba135);
	outline-offset: 2px;
}

.iexel-finance-line {
	grid-template-columns: minmax(130px, 0.8fr) minmax(200px, 2fr) minmax(80px, 0.6fr) minmax(110px, 0.8fr) auto;
}

.iexel-finance-line-remove {
	display: flex;
	align-items: flex-end;
	padding-bottom: 2px;
}

.iexel-remove-line-btn {
	min-height: 44px !important;
	padding: 8px 12px !important;
	font-size: 0.85rem !important;
	white-space: nowrap;
	color: #991b1b !important;
	border-color: #fca5a5 !important;
}

.iexel-remove-line-btn:hover {
	background: #fef2f2 !important;
	border-color: #ef4444 !important;
	color: #7f1d1d !important;
}

.iexel-add-charge-btn {
	font-size: 0.9rem;
}

@media (max-width: 768px) {
	.iexel-finance-line {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.iexel-finance-line-remove {
		grid-column: 1 / -1;
		justify-content: flex-end;
	}
}

@media (max-width: 520px) {
	.iexel-finance-line {
		grid-template-columns: minmax(0, 1fr);
	}
	.iexel-finance-line-remove {
		grid-column: auto;
		justify-content: stretch;
	}
	.iexel-remove-line-btn {
		width: 100%;
	}
}

/* ==========================================================================
   T2-R2.2C: Treasurer Invoice Detail — Mobile Outstanding Balance Hierarchy
   ========================================================================== */
@media (max-width: 520px) {
	.iexel-finance-invoice-detail .iexel-experience-metrics .iexel-experience-metric.is-outstanding {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   T2-R2: Unified Treasurer Billing Creation — Guided Workspace & Responsive Styles
   ========================================================================== */
.iexel-guided-step {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 20px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-recipient-mode-selector {
	margin-bottom: 18px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-recipient-mode-options {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-recipient-mode-options label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-size: 0.95rem;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-group-scope-wrapper,
.iexel-entire-club-notice,
#iexel-recurring-options,
.iexel-recurring-preview-notice,
.iexel-family-audit-breakdown {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-group-scope-options {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-group-scope-options label {
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-family-audit-breakdown {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 8px;
	width: 100%;
}

.iexel-fee-rules-disclosure,
.iexel-discount-policies-disclosure {
	margin-bottom: 16px;
	padding: 14px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	background: #fafbfc;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-fee-rules-disclosure summary,
.iexel-discount-policies-disclosure summary {
	cursor: pointer;
	font-weight: 600;
	color: #0f2756;
	outline-offset: 2px;
}

.iexel-fee-rule-selectors,
.iexel-discount-policy-selectors {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 8px;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-fee-rule-selectors label,
.iexel-discount-policy-selectors label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.85rem;
	padding: 8px 10px;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	min-height: 44px;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	word-break: break-word;
	overflow-wrap: break-word;
}

.iexel-review-card {
	padding: 16px;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 6px;
	margin-bottom: 16px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-create-invoice-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-preview-detailed-lines .iexel-finance-table-scroll {
	margin-inline: 0;
	max-width: 100%;
}

@media (max-width: 600px) {
	.iexel-guided-step {
		padding: 14px;
	}
	.iexel-recipient-mode-options {
		flex-direction: column;
		gap: 10px;
	}
	.iexel-recipient-mode-options label {
		width: 100%;
		padding: 6px 0;
	}
	.iexel-group-scope-options {
		flex-direction: column;
		gap: 8px;
	}
	.iexel-group-scope-options label {
		width: 100%;
		padding: 4px 0;
	}
	.iexel-fee-rule-selectors,
	.iexel-discount-policy-selectors,
	.iexel-family-audit-breakdown {
		grid-template-columns: 1fr;
	}
	.iexel-create-invoice-actions {
		flex-direction: column;
		width: 100%;
	}
	.iexel-create-invoice-actions .iexel-button {
		width: 100%;
		text-align: center;
		justify-content: center;
	}
}

@media (max-width: 390px) {
	.iexel-guided-step h3 {
		font-size: 1.1rem;
	}
	.iexel-recipient-mode-label {
		font-size: 0.9rem;
	}
	.iexel-fee-rules-disclosure,
	.iexel-discount-policies-disclosure {
		padding: 10px;
	}
	.iexel-fee-rule-selectors label,
	.iexel-discount-policy-selectors label {
		font-size: 0.8rem;
		padding: 6px 8px;
	}
}

@media (max-width: 320px) {
	.iexel-guided-step {
		padding: 10px;
		border-radius: 4px;
	}
	.iexel-recipient-mode-options label {
		font-size: 0.85rem;
	}
	.iexel-create-invoice-actions .iexel-button {
		font-size: 0.85rem;
		padding: 10px 12px;
	}
}

/* Unified Treasurer Billing: Schedule UX Simplification */
.iexel-schedule-section {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid rgba(15, 23, 42, 0.1);
}
.iexel-schedule-section:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}
.iexel-schedule-section-heading {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
	margin: 0 0 8px 0;
}
.iexel-schedule-summary-badge,
.iexel-schedule-timing-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	background: #f1f5f9;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 0.88rem;
	color: var(--iexel-midnight, #071d49);
	margin-bottom: 8px;
}
.iexel-schedule-summary-badge strong,
.iexel-schedule-timing-summary strong {
	color: var(--iexel-midnight, #071d49);
}
.iexel-schedule-progressive-disclosure {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 10px 14px;
	margin-top: 8px;
}
.iexel-schedule-progressive-disclosure > summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--iexel-navy, #071d49);
}
.iexel-selected-policies-list {
	display: grid;
	gap: 8px;
	margin-bottom: 8px;
}
.iexel-selected-policy-card {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 10px;
	padding: 10px 14px;
}
.iexel-policy-card-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}
.iexel-policy-card-title strong {
	color: #166534;
	font-size: 0.95rem;
}
.iexel-policy-card-rate {
	background: #dcfce7;
	color: #15803d;
	font-weight: 800;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 0.8rem;
}
.iexel-policy-card-note {
	margin: 4px 0 0 0;
	font-size: 0.82rem;
	color: #15803d;
}
.iexel-no-discount-notice {
	font-size: 0.9rem;
	color: var(--iexel-muted, #64748b);
	margin: 0 0 8px 0;
	font-style: italic;
}

/* Preview Metrics & Banners */
.iexel-preview-metrics-primary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}
.iexel-preview-metrics-primary .is-total strong {
	color: #15803d;
}
.iexel-preview-metrics-primary .iexel-discount-value {
	color: #16a34a;
}
.iexel-preview-info-disclosure.is-secondary-metrics {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 10px 14px;
	margin-bottom: 16px;
}
.iexel-preview-info-disclosure.is-secondary-metrics > summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--iexel-navy, #071d49);
}
.iexel-preview-metrics-secondary {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
}
.iexel-preview-info-banner {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	border-radius: 10px;
	padding: 12px 16px;
	margin-bottom: 16px;
	color: #1e40af;
}
.iexel-preview-info-banner p {
	margin: 0 0 6px 0;
}
.iexel-preview-info-banner details summary {
	cursor: pointer;
	font-weight: 600;
	color: #1d4ed8;
}
.iexel-preview-info-banner ul {
	margin: 8px 0 0 0;
	padding-left: 20px;
}
.iexel-preview-attention-banner {
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 10px;
	padding: 12px 16px;
	margin-bottom: 16px;
	color: #92400e;
}
.iexel-preview-attention-banner h3 {
	margin: 0 0 8px 0;
	font-size: 1rem;
	color: #92400e;
}
.iexel-preview-attention-banner ul {
	margin: 0;
	padding-left: 20px;
}

/* Family Preview Cards */
.iexel-family-preview-list {
	display: grid;
	gap: 14px;
	margin-bottom: 20px;
}
.iexel-family-preview-card {
	background: #ffffff;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 12px;
	padding: 16px;
	box-shadow: 0 2px 8px rgba(7, 29, 73, 0.04);
}
.iexel-family-preview-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	gap: 12px;
}
.iexel-family-recipient-info {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.iexel-family-recipient-name {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
	margin: 0;
}
.iexel-family-player-count {
	background: #e8edf4;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.78rem;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
}
.iexel-family-invoice-total {
	text-align: right;
}
.iexel-family-total-label {
	display: block;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--iexel-muted, #64748b);
	font-weight: 700;
}
.iexel-family-total-value {
	display: block;
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
}
.iexel-family-preview-body {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 12px;
}
.iexel-family-charge-lines h4,
.iexel-family-discount-lines h4 {
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--iexel-muted, #64748b);
	margin: 0 0 8px 0;
}
.iexel-family-charge-lines ul,
.iexel-family-discount-lines ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 6px;
}
.iexel-family-charge-lines li,
.iexel-family-discount-lines li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	font-size: 0.9rem;
}
.iexel-line-desc {
	overflow-wrap: anywhere;
}
.iexel-line-amount {
	white-space: nowrap;
	font-weight: 700;
}
.iexel-discount-text {
	color: #16a34a;
}
.iexel-no-discount-note {
	font-size: 0.85rem;
	color: var(--iexel-muted, #64748b);
	margin: 0;
	font-style: italic;
}
.iexel-preview-detailed-lines {
	margin-top: 16px;
}

@media (max-width: 600px) {
	.iexel-preview-metrics-primary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.iexel-preview-metrics-secondary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.iexel-family-preview-body {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.iexel-family-preview-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.iexel-family-invoice-total {
		text-align: left;
	}
}

@media (max-width: 390px) {
	.iexel-preview-metrics-primary {
		grid-template-columns: 1fr;
	}
	.iexel-preview-metrics-secondary {
		grid-template-columns: 1fr;
	}
	.iexel-family-preview-card {
		padding: 12px;
	}
	.iexel-family-recipient-name {
		font-size: 1rem;
	}
	.iexel-family-total-value {
		font-size: 1.1rem;
	}
}

@media (max-width: 320px) {
	.iexel-family-preview-card {
		padding: 10px;
	}
	.iexel-schedule-summary-badge,
	.iexel-schedule-timing-summary {
		font-size: 0.8rem;
		padding: 6px 8px;
	}
}

/* Unified Treasurer Billing: Unified Audience Expansion */
.iexel-group-scope-wrapper {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 12px 14px;
	margin-bottom: 18px;
}
.iexel-group-scope-options {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.iexel-group-scope-options label {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-size: 0.9rem;
}
.iexel-age-groups-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 8px;
	margin-top: 6px;
}
.iexel-age-group-chip {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 7px 10px;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--iexel-midnight, #071d49);
	transition: background-color 0.15s ease, border-color 0.15s ease;
	user-select: none;
	box-sizing: border-box;
}
.iexel-age-group-chip input,
.iexel-age-group-input,
.iexel-finance-form-grid .iexel-age-group-chip input {
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	min-height: 16px !important;
	max-width: 16px !important;
	max-height: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #94a3b8 !important;
	border-radius: 3px !important;
	flex: 0 0 16px !important;
	box-sizing: border-box !important;
	accent-color: #2563eb;
	cursor: pointer;
	appearance: auto;
	-webkit-appearance: checkbox;
}
.iexel-age-group-chip input:focus-visible,
.iexel-age-group-input:focus-visible {
	outline: 2px solid #2563eb !important;
	outline-offset: 2px !important;
}
.iexel-age-group-chip:hover {
	border-color: #94a3b8;
	background: #f8fafc;
}
.iexel-age-group-chip:has(input:checked) {
	background: #eff6ff;
	border-color: #3b82f6;
	color: #1d4ed8;
	font-weight: 700;
}
.iexel-age-group-shortcuts {
	margin-top: 10px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	font-size: 0.82rem;
}
.iexel-age-group-shortcuts .iexel-button-link {
	background: none;
	border: none;
	padding: 0;
	color: #1e40af;
	cursor: pointer;
	text-decoration: underline;
	font-size: 0.82rem;
	font-family: inherit;
}
.iexel-age-group-shortcuts .iexel-button-link:hover {
	color: #1d4ed8;
}
.iexel-entire-club-notice {
	padding: 14px 16px;
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 8px;
	margin-bottom: 16px;
}

/* Expected Exclusions & Detailed Lines presentation */
.iexel-preview-expected-exclusions {
	margin-top: 12px;
	padding: 12px 16px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.88rem;
}
.iexel-preview-expected-exclusions summary {
	font-weight: 600;
	color: #475569;
	cursor: pointer;
}
.iexel-preview-expected-exclusions ul {
	margin: 10px 0 0 0;
	padding-left: 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.iexel-expected-exclusion-item {
	color: #334155;
	line-height: 1.4;
}
.iexel-expected-exclusion-summary-text {
	font-weight: 500;
}
.iexel-exclusion-diagnostic-disclosure {
	margin-top: 4px;
	font-size: 0.8rem;
	color: #64748b;
}
.iexel-exclusion-diagnostic-disclosure summary {
	cursor: pointer;
	color: #2563eb;
	font-weight: 500;
}
.iexel-exclusion-diagnostic-text {
	margin: 4px 0 0 0;
	padding: 6px 10px;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	font-size: 0.78rem;
	line-height: 1.4;
	color: #475569;
}

/* Detailed Line Items Responsive Layout */
.iexel-preview-detailed-lines__mobile {
	display: none;
}
.iexel-preview-detailed-lines__desktop {
	display: block;
}

@media (max-width: 600px) {
	.iexel-group-scope-options {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	.iexel-age-groups-grid {
		grid-template-columns: repeat(auto-fill, minmax(62px, 1fr));
		gap: 6px;
	}
	.iexel-age-group-chip {
		padding: 6px 8px;
		font-size: 0.82rem;
	}
	.iexel-preview-detailed-lines__desktop {
		display: none !important;
	}
	.iexel-preview-detailed-lines__mobile {
		display: flex !important;
		flex-direction: column;
		gap: 10px;
		margin-top: 10px;
		width: 100%;
		box-sizing: border-box;
	}
	.iexel-preview-line-card {
		background: #ffffff;
		border: 1px solid #e2e8f0;
		border-radius: 8px;
		padding: 12px 14px;
		display: flex;
		flex-direction: column;
		gap: 8px;
		box-sizing: border-box;
		width: 100%;
	}
	.iexel-preview-line-card.is-discount {
		background: #f8fafc;
		border-left: 3px solid #16a34a;
	}
	.iexel-preview-line-card-header {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 10px;
		padding-bottom: 6px;
		border-bottom: 1px solid #f1f5f9;
	}
	.iexel-preview-line-player {
		font-size: 0.95rem;
		font-weight: 700;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: anywhere;
	}
	.iexel-preview-line-amount {
		font-size: 1rem;
		font-weight: 800;
		color: var(--iexel-midnight, #071d49);
		white-space: nowrap;
	}
	.iexel-preview-line-amount.iexel-discount-value {
		color: #16a34a;
	}
	.iexel-preview-line-card-body {
		display: flex;
		flex-direction: column;
		gap: 4px;
	}
	.iexel-preview-line-meta-row {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 8px;
		font-size: 0.82rem;
	}
	.iexel-preview-line-label {
		color: #64748b;
		flex-shrink: 0;
	}
	.iexel-preview-line-value {
		color: #1e293b;
		font-weight: 600;
		text-align: right;
		overflow-wrap: anywhere;
	}
}
@media (max-width: 390px) {
	.iexel-group-scope-options {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.iexel-age-groups-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 6px;
	}
	.iexel-age-group-shortcuts {
		gap: 8px;
	}
	.iexel-preview-line-card {
		padding: 10px 12px;
	}
	.iexel-preview-line-player {
		font-size: 0.9rem;
	}
	.iexel-preview-line-amount {
		font-size: 0.95rem;
	}
	.iexel-preview-line-meta-row {
		font-size: 0.78rem;
	}
}
@media (max-width: 320px) {
	.iexel-group-scope-wrapper {
		padding: 10px;
	}
	.iexel-age-groups-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.iexel-entire-club-notice {
		padding: 10px 12px;
	}
	.iexel-preview-line-card {
		padding: 8px 10px;
	}
	.iexel-preview-line-meta-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 1px;
	}
	.iexel-preview-line-value {
		text-align: left;
	}
}

/* ==========================================================================
   Treasurer Person Financial Profile (Operational Account View)
   ========================================================================== */
.iexel-person-finance-section {
	margin-top: 24px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.iexel-person-finance-summary-card {
	box-sizing: border-box;
}

.iexel-person-finance-summary-dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 16px;
	align-items: baseline;
	margin: 0;
	padding: 0;
}

.iexel-person-finance-summary-dl dt {
	color: #64748b;
	font-weight: 600;
	font-size: 0.88rem;
}

.iexel-person-finance-summary-dl dd {
	margin: 0;
	font-size: 1rem;
	color: #1e293b;
}

.iexel-person-finance-summary-dl dd strong.is-outstanding {
	color: var(--iexel-midnight, #071d49);
	font-weight: 800;
}

.iexel-person-finance-summary-dl dd strong.is-overdue {
	color: #dc2626;
	font-weight: 800;
}

.iexel-payment-link .iexel-payment-purpose-label {
	display: inline-block;
	white-space: nowrap;
}

/* Invoices, Payments, Adjustments Desktop & Mobile Switching */
.iexel-person-invoices-desktop,
.iexel-person-payments-desktop,
.iexel-person-adjustments-desktop {
	display: block;
}

.iexel-person-invoices-mobile,
.iexel-person-payments-mobile,
.iexel-person-adjustments-mobile {
	display: none;
}

@media (max-width: 768px) {
	.iexel-person-invoices-desktop,
	.iexel-person-payments-desktop,
	.iexel-person-adjustments-desktop {
		display: none;
	}

	.iexel-person-invoices-mobile,
	.iexel-person-payments-mobile,
	.iexel-person-adjustments-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-person-invoice-cards,
	.iexel-person-payment-cards,
	.iexel-person-adjustment-cards {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-person-invoice-card,
	.iexel-person-payment-card,
	.iexel-person-adjustment-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 14px 16px;
		background: #ffffff;
		border: 1px solid rgba(7, 29, 73, 0.12);
		border-radius: 12px;
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-person-invoice-card.is-overdue {
		border-left: 4px solid #dc2626;
	}

	.iexel-person-payment-card.is-reversed,
	.iexel-person-adjustment-card.is-reversed {
		opacity: 0.75;
		background: #fafafa;
	}

	.iexel-person-invoice-card-header,
	.iexel-person-payment-card-header,
	.iexel-person-adjustment-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		flex-wrap: wrap;
		min-width: 0;
	}

	.iexel-person-invoice-card-ref,
	.iexel-person-payment-card-ref,
	.iexel-person-adjustment-card-ref {
		font-size: 1.05rem;
		color: var(--iexel-midnight, #071d49);
		font-weight: 750;
	}

	.iexel-person-card-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: #64748b;
		font-weight: 700;
	}

	.iexel-person-invoice-card-related,
	.iexel-person-adjustment-card-reason,
	.iexel-person-payment-card-date {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}

	.iexel-person-invoice-card-related-names,
	.iexel-person-adjustment-card-reason-text {
		font-size: 0.95rem;
		color: #1e293b;
		overflow-wrap: break-word;
	}

	.iexel-person-invoice-card-financials,
	.iexel-person-payment-card-financials,
	.iexel-person-adjustment-card-financials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding: 10px 12px;
		background: #f8fafc;
		border-radius: 8px;
		margin-top: 2px;
		box-sizing: border-box;
	}

	.iexel-person-card-metric {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-width: 0;
	}

	.iexel-person-card-value {
		font-size: 1.05rem;
		font-weight: 800;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: break-word;
	}

	.iexel-person-card-date {
		font-size: 0.95rem;
		color: #1e293b;
		font-weight: 600;
	}

	.iexel-person-card-date.is-overdue {
		color: #dc2626;
		font-weight: 700;
	}

	.iexel-person-invoice-card-actions,
	.iexel-person-payment-card-actions,
	.iexel-person-adjustment-card-actions {
		display: flex;
		margin-top: 4px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-person-invoice-card-actions .iexel-button,
	.iexel-person-payment-card-actions .iexel-button,
	.iexel-person-adjustment-card-actions .iexel-button {
		width: 100%;
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 8px 14px;
		font-weight: 750;
		font-size: 0.88rem;
		box-sizing: border-box;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		border-radius: 8px;
		background: #ffffff;
		color: var(--iexel-midnight, #071d49);
		text-decoration: none;
	}

	.iexel-person-invoice-card-actions .iexel-button:hover,
	.iexel-person-payment-card-actions .iexel-button:hover,
	.iexel-person-adjustment-card-actions .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
	}
}

@media (max-width: 360px) {
	.iexel-person-invoice-card,
	.iexel-person-payment-card,
	.iexel-person-adjustment-card {
		padding: 10px 12px;
		gap: 8px;
	}

	.iexel-person-invoice-card-financials,
	.iexel-person-payment-card-financials,
	.iexel-person-adjustment-card-financials {
		padding: 8px 10px;
		gap: 8px;
		grid-template-columns: minmax(0, 1fr);
	}

	.iexel-person-invoice-card-ref,
	.iexel-person-payment-card-ref,
	.iexel-person-adjustment-card-ref {
		font-size: 0.95rem;
	}

	.iexel-person-card-value {
		font-size: 1rem;
	}
}

/* Operational Timeline Styles */
.iexel-person-finance-timeline {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 12px;
}

.iexel-timeline-list {
	list-style: none;
	margin: 0;
	padding: 0 0 0 18px;
	position: relative;
	border-left: 2px solid rgba(7, 29, 73, 0.12);
}

.iexel-timeline-item {
	position: relative;
	margin-bottom: 20px;
	padding-left: 14px;
	box-sizing: border-box;
}

.iexel-timeline-item:last-child {
	margin-bottom: 0;
}

.iexel-timeline-marker {
	position: absolute;
	left: -24px;
	top: 4px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--iexel-midnight, #071d49);
	border: 2px solid #ffffff;
	box-shadow: 0 0 0 2px rgba(7, 29, 73, 0.2);
}

.iexel-timeline-content {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.iexel-timeline-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.iexel-timeline-title {
	font-size: 0.95rem;
	font-weight: 750;
	color: var(--iexel-midnight, #071d49);
}

.iexel-timeline-date {
	font-size: 0.8rem;
	color: #64748b;
	font-weight: 600;
}

.iexel-timeline-desc {
	margin: 0;
	font-size: 0.9rem;
	color: #334155;
	line-height: 1.45;
	overflow-wrap: break-word;
}

.iexel-timeline-chip {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-top: 4px;
	padding: 3px 8px;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--iexel-midnight, #071d49);
	background: #f1f5f9;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.iexel-timeline-chip:hover {
	background: #e2e8f0;
	border-color: var(--iexel-color-gold, #cba135);
}

/* Person Financial Profile — Light Surface Button Styling */
.iexel-person-finance-summary-card .iexel-button-secondary,
.iexel-person-finance-section .iexel-button-secondary {
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
}

.iexel-person-finance-summary-card .iexel-button-secondary:hover,
.iexel-person-finance-section .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
}

.iexel-person-finance-summary-card .iexel-button-secondary:focus-visible,
.iexel-person-finance-section .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

/* Person Financial Profile — Month Disclosures */
.iexel-person-finance-section .iexel-month-disclosure {
	border-bottom: 1px solid #e2e8f0;
}

.iexel-person-finance-section .iexel-month-disclosure:last-child {
	border-bottom: none;
}

.iexel-person-finance-section .iexel-month-disclosure > summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0 14px;
	cursor: pointer;
	list-style: none;
}

.iexel-person-finance-section .iexel-month-disclosure > summary::-webkit-details-marker {
	display: none;
}

.iexel-person-finance-section .iexel-month-disclosure > summary::marker {
	content: '';
}

.iexel-person-finance-section .iexel-month-disclosure > summary:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 3px;
	border-radius: 4px;
}

.iexel-person-finance-section .iexel-month-disclosure > summary h3 {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	color: var(--iexel-midnight, #071d49);
	font-size: 1.05rem;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.iexel-person-finance-section .iexel-month-disclosure-count {
	flex: 0 0 auto;
	color: #64748b;
	font-size: 0.82rem;
	font-weight: 700;
	white-space: nowrap;
}

.iexel-person-finance-section .iexel-month-disclosure-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: #64748b;
	transition: transform 0.2s ease, color 0.2s ease;
}

.iexel-person-finance-section .iexel-month-disclosure[open] .iexel-month-disclosure-chevron {
	color: var(--iexel-gold, #cba135);
	transform: rotate(90deg);
}

.iexel-person-finance-section .iexel-month-disclosure > .iexel-month-disclosure-body {
	padding-top: 8px;
	padding-bottom: 20px;
}

/* ==========================================================================
   BANK STATEMENT RECONCILIATION WORKSPACE
   ========================================================================== */

.iexel-finance-reconciliation {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-header {
	margin-bottom: 4px;
}

.iexel-reconciliation-subtitle {
	color: #64748b;
	font-size: 0.95rem;
	margin: 6px 0 0 0;
	line-height: 1.4;
}

/* Upload Card */
.iexel-reconciliation-upload-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 20px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.iexel-reconciliation-card-title {
	margin: 0 0 14px 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-upload-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.iexel-reconciliation-file-picker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.iexel-reconciliation-file-input {
	flex: 1 1 240px;
	min-width: 0;
	max-width: 100%;
	padding: 10px;
	border: 1px dashed #cbd5e1;
	border-radius: 8px;
	background: #f8fafc;
	font-size: 0.88rem;
	cursor: pointer;
	box-sizing: border-box;
}

.iexel-reconciliation-upload-hint {
	font-size: 0.8rem;
	color: #64748b;
	line-height: 1.4;
	margin: 0;
}

/* Active Session Card */
.iexel-reconciliation-active-session {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 20px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.iexel-reconciliation-session-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid #f1f5f9;
}

.iexel-reconciliation-session-title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
	overflow-wrap: anywhere;
}

.iexel-reconciliation-session-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 0.82rem;
	color: #64748b;
	margin-top: 4px;
}

.iexel-reconciliation-session-actions {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Sessions Picker */
.iexel-reconciliation-sessions {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 14px 18px;
	margin-top: 14px;
}

.iexel-reconciliation-session-picker-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.iexel-reconciliation-session-picker-form label {
	font-weight: 600;
	font-size: 0.88rem;
	color: #334155;
}

.iexel-reconciliation-session-select {
	flex: 1 1 200px;
	min-width: 0;
	max-width: 100%;
	padding: 8px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	font-size: 0.85rem;
	background: #ffffff;
}

/* Status Badges */
.iexel-reconciliation-status-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.iexel-reconciliation-status-badge.is-matched {
	background: #ecfdf5;
	color: #065f46;
	border: 1px solid #a7f3d0;
}

.iexel-reconciliation-status-badge.is-needs-review {
	background: #fffbeb;
	color: #92400e;
	border: 1px solid #fde68a;
}

.iexel-reconciliation-status-badge.is-unmatched {
	background: #f1f5f9;
	color: #475569;
	border: 1px solid #cbd5e1;
}

.iexel-reconciliation-status-badge.is-duplicate {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

.iexel-reconciliation-status-badge.is-excluded {
	background: #f8fafc;
	color: #94a3b8;
	border: 1px solid #e2e8f0;
}

.iexel-reconciliation-confidence-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 7px;
	border-radius: 4px;
	font-size: 0.72rem;
	font-weight: 700;
}

.iexel-reconciliation-confidence-badge.is-high {
	background: #dcfce7;
	color: #166534;
}

.iexel-reconciliation-confidence-badge.is-medium {
	background: #fef3c7;
	color: #92400e;
}

.iexel-reconciliation-confidence-badge.is-none {
	background: #f1f5f9;
	color: #64748b;
}

/* Summary Grid */
.iexel-reconciliation-summary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 12px;
	margin-top: 16px;
	margin-bottom: 20px;
}

.iexel-reconciliation-summary-card {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.iexel-reconciliation-summary-card.is-matched {
	border-left: 4px solid #10b981;
	background: #f0fdf4;
}

.iexel-reconciliation-summary-card.is-review {
	border-left: 4px solid #f59e0b;
	background: #fffdf5;
}

.iexel-reconciliation-summary-card.is-unmatched {
	border-left: 4px solid #64748b;
}

.iexel-reconciliation-summary-card.is-excluded {
	border-left: 4px solid #94a3b8;
	opacity: 0.85;
}

.iexel-reconciliation-summary-value {
	font-size: 1.45rem;
	font-weight: 800;
	color: var(--iexel-midnight, #071d49);
	line-height: 1.1;
}

.iexel-reconciliation-summary-label {
	font-size: 0.78rem;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* Filter Tabs */
.iexel-reconciliation-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
	border-bottom: 2px solid #e2e8f0;
	padding-bottom: 8px;
}

.iexel-reconciliation-filter-tab {
	padding: 7px 14px;
	border-radius: 6px;
	font-size: 0.85rem;
	font-weight: 700;
	color: #475569;
	text-decoration: none;
	background: transparent;
	transition: all 0.15s ease;
}

.iexel-reconciliation-filter-tab:hover {
	background: #e2e8f0;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-filter-tab.is-active {
	background: var(--iexel-midnight, #071d49);
	color: #ffffff;
}

/* Content Container */
.iexel-reconciliation-content {
	width: 100%;
	box-sizing: border-box;
}

/* Desktop Table View */
.iexel-reconciliation-desktop {
	display: block;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	background: #ffffff;
}

.iexel-reconciliation-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
	text-align: left;
}

.iexel-reconciliation-table th {
	background: #f8fafc;
	color: #475569;
	font-weight: 700;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 12px 14px;
	border-bottom: 1px solid #e2e8f0;
	white-space: nowrap;
}

.iexel-reconciliation-table td {
	padding: 12px 14px;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
}

.iexel-reconciliation-row:last-child td {
	border-bottom: none;
}

.iexel-reconciliation-row.is-needs-review {
	background: #fffdf5;
}

.iexel-reconciliation-row.is-duplicate {
	background: #fff8f8;
}

.iexel-reconciliation-col-amount {
	font-weight: 800;
	white-space: nowrap;
}

.iexel-reconciliation-col-amount.is-credit {
	color: #059669;
}

.iexel-reconciliation-col-amount.is-debit {
	color: #dc2626;
}

.iexel-reconciliation-raw-ref {
	font-size: 0.82rem;
	color: #475569;
	line-height: 1.3;
	max-width: 260px;
	overflow-wrap: anywhere;
}

.iexel-reconciliation-raw-ref small {
	display: block;
	color: #94a3b8;
	font-size: 0.75rem;
	margin-top: 2px;
}

.iexel-reconciliation-target {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.iexel-reconciliation-target strong {
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-target small {
	color: #64748b;
	font-size: 0.78rem;
}

.iexel-reconciliation-override-form {
	margin-top: 6px;
}

.iexel-reconciliation-override-row {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
}

.iexel-reconciliation-override-select {
	font-size: 0.78rem;
	padding: 4px 6px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	max-width: 180px;
	background: #ffffff;
}

.iexel-reconciliation-empty {
	text-align: center;
	color: #64748b;
	padding: 36px 16px !important;
	font-style: italic;
}

/* Mobile Card View */
.iexel-reconciliation-mobile {
	display: none;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 14px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.iexel-reconciliation-card.is-needs-review {
	border-left: 4px solid #f59e0b;
}

.iexel-reconciliation-card.is-matched {
	border-left: 4px solid #10b981;
}

.iexel-reconciliation-card.is-duplicate {
	border-left: 4px solid #ef4444;
}

.iexel-reconciliation-card.is-unmatched {
	border-left: 4px solid #94a3b8;
}

.iexel-reconciliation-card-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.iexel-reconciliation-card-date {
	font-size: 0.8rem;
	color: #64748b;
	font-weight: 600;
}

.iexel-reconciliation-card-amount {
	font-size: 1.15rem;
	font-weight: 800;
}

.iexel-reconciliation-card-amount.is-credit {
	color: #059669;
}

.iexel-reconciliation-card-amount.is-debit {
	color: #dc2626;
}

.iexel-reconciliation-card-ref {
	font-size: 0.85rem;
	color: #334155;
	background: #f8fafc;
	padding: 8px 10px;
	border-radius: 6px;
	overflow-wrap: anywhere;
	word-break: break-word;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-card-ref small {
	display: block;
	color: #94a3b8;
	font-size: 0.75rem;
	margin-top: 2px;
}

.iexel-reconciliation-card-match {
	padding: 10px;
	background: #f1f5f9;
	border-radius: 6px;
	font-size: 0.82rem;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-reconciliation-card-override {
	margin-top: 6px;
}

.iexel-reconciliation-card-override .iexel-reconciliation-override-select {
	max-width: 100%;
	width: 100%;
	box-sizing: border-box;
	margin-bottom: 6px;
}

.iexel-reconciliation-card-override .iexel-reconciliation-override-row {
	flex-direction: column;
	align-items: stretch;
}

/* Responsive Media Query Breakpoints */
@media (max-width: 768px) {
	.iexel-reconciliation-desktop {
		display: none;
	}

	.iexel-reconciliation-mobile {
		display: flex;
	}

	.iexel-reconciliation-summary-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.iexel-reconciliation-summary-grid {
		grid-template-columns: 1fr;
	}

	.iexel-reconciliation-file-picker {
		flex-direction: column;
		align-items: stretch;
	}

	.iexel-reconciliation-session-picker-form {
		flex-direction: column;
		align-items: stretch;
	}

	.iexel-reconciliation-session-select {
		width: 100%;
	}
}

/* Bank Statement Column Mapping UI */
.iexel-reconciliation-mapping-workspace {
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-mapping-card {
	background: #ffffff;
	border: 1px solid #dfe3e9;
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 24px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-reconciliation-mapping-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-top: 20px;
	margin-bottom: 24px;
	box-sizing: border-box;
}

.iexel-reconciliation-mapping-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-reconciliation-mapping-field label {
	font-size: 14px;
	font-weight: 700;
	color: var(--iexel-midnight, #071d49);
	word-break: break-word;
	overflow-wrap: break-word;
}

.iexel-reconciliation-mapping-field .iexel-required-star {
	color: #dc2626;
	margin-left: 2px;
}

.iexel-reconciliation-mapping-field .iexel-optional-label {
	font-size: 12px;
	font-weight: 400;
	color: #64748b;
	margin-left: 4px;
}

.iexel-reconciliation-mapping-field .iexel-field-hint {
	font-size: 12px;
	color: #64748b;
	margin: 0 0 4px 0;
	line-height: 1.4;
	word-break: break-word;
	overflow-wrap: break-word;
}

.iexel-reconciliation-mapping-field select,
.iexel-reconciliation-mapping-field .iexel-select-full {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid #cbd5e1;
	background-color: #ffffff;
	color: #1e293b;
	font-size: 14px;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}

.iexel-reconciliation-mapping-field select:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

.iexel-reconciliation-mapping-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #e2e8f0;
	flex-wrap: wrap;
	box-sizing: border-box;
}

.iexel-reconciliation-mapping-actions .iexel-button-primary {
	background: var(--iexel-midnight, #071d49);
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: #ffffff;
	font-weight: 700;
	border-radius: 8px;
	padding: 10px 18px;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.iexel-reconciliation-mapping-actions .iexel-button-primary:hover {
	background: #102d62;
	border-color: var(--iexel-gold, #cba135);
	color: #ffffff;
}

.iexel-reconciliation-mapping-actions .iexel-button-secondary {
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
	border-radius: 8px;
	padding: 10px 18px;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.iexel-reconciliation-mapping-actions .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-mapping-actions .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

@media (max-width: 768px) {
	.iexel-reconciliation-mapping-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

@media (max-width: 480px) {
	.iexel-reconciliation-mapping-card {
		padding: 16px;
	}

	.iexel-reconciliation-mapping-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.iexel-reconciliation-mapping-actions .iexel-button,
	.iexel-reconciliation-mapping-actions button,
	.iexel-reconciliation-mapping-actions a {
		width: 100%;
		text-align: center;
		justify-content: center;
		box-sizing: border-box;
	}
}

/* Mobile containment rules for reconciliation forms and selects */
.iexel-reconciliation-workspace,
.iexel-reconciliation-upload-card,
.iexel-reconciliation-summary-section,
.iexel-reconciliation-list-section,
.iexel-reconciliation-mobile,
.iexel-reconciliation-card,
.iexel-reconciliation-confirmation-workspace,
.iexel-reconciliation-confirm-card,
.iexel-confirm-bulk-desktop,
.iexel-confirm-bulk-mobile,
.iexel-confirm-bulk-card,
.iexel-confirm-bulk-disclosure,
.iexel-billing-runs-desktop,
.iexel-billing-runs-mobile,
.iexel-billing-run-card,
.iexel-billing-run-disclosure {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-reconciliation-session-picker {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #f1f5f9;
}

.iexel-reconciliation-session-picker label {
	display: block;
	font-weight: 600;
	font-size: 0.88rem;
	color: #334155;
	margin-bottom: 6px;
	word-break: break-word;
	overflow-wrap: break-word;
}

.iexel-reconciliation-workspace select,
.iexel-reconciliation-session-picker select,
#import_session_select {
	display: block;
	max-width: 100%;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	padding: 8px 12px;
	min-height: 40px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background-color: #ffffff;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.85rem;
	line-height: 1.4;
	cursor: pointer;
}

.iexel-reconciliation-session-picker select:focus,
#import_session_select:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

.iexel-reconciliation-desktop-only {
	display: block;
}

.iexel-reconciliation-mobile-only {
	display: none;
}

/* Mobile Contained Import Session Picker */
.iexel-reconciliation-mobile-session-picker {
	margin-top: 14px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-reconciliation-mobile-session-label {
	display: block;
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	margin-bottom: 4px;
}

.iexel-reconciliation-mobile-session-details {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	overflow: hidden;
}

.iexel-reconciliation-mobile-session-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 12px;
	min-height: 40px;
	cursor: pointer;
	user-select: none;
	background: #ffffff;
	list-style: none;
	box-sizing: border-box;
}

.iexel-reconciliation-mobile-session-summary::-webkit-details-marker {
	display: none;
}

.iexel-reconciliation-mobile-session-summary:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: -2px;
}

.iexel-mobile-session-summary-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	overflow: hidden;
}

.iexel-mobile-session-summary-title {
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.iexel-mobile-session-summary-meta {
	font-size: 0.76rem;
	color: #64748b;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.iexel-mobile-session-chevron {
	font-size: 0.85rem;
	color: #64748b;
	transition: transform 0.2s ease;
	margin-left: 8px;
	flex-shrink: 0;
}

.iexel-reconciliation-mobile-session-details[open] .iexel-mobile-session-chevron {
	transform: rotate(180deg);
}

.iexel-reconciliation-mobile-session-panel {
	border-top: 1px solid #e2e8f0;
	max-height: 220px;
	overflow-y: auto;
	overflow-x: hidden;
	background: #fafafa;
}

.iexel-reconciliation-mobile-session-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.iexel-reconciliation-mobile-session-item {
	border-bottom: 1px solid #e2e8f0;
}

.iexel-reconciliation-mobile-session-item:last-child {
	border-bottom: none;
}

.iexel-reconciliation-mobile-session-link {
	display: block;
	padding: 10px 12px;
	text-decoration: none;
	color: var(--iexel-midnight, #071d49);
	transition: background 0.15s ease;
}

.iexel-reconciliation-mobile-session-link:hover,
.iexel-reconciliation-mobile-session-link:focus {
	background: #f1f5f9;
	color: var(--iexel-midnight, #071d49);
	outline: none;
}

.iexel-reconciliation-mobile-session-item.is-active .iexel-reconciliation-mobile-session-link {
	background: #eff6ff;
	border-left: 3px solid #3b82f6;
}

.iexel-mobile-session-item-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
}

.iexel-mobile-session-item-title {
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--iexel-midnight, #071d49);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.iexel-mobile-session-item-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	font-size: 0.75rem;
	color: #64748b;
	margin-top: 2px;
}

/* Mobile Contained Manual Override Member Chooser */
.iexel-mobile-override-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	min-height: 40px;
	padding: 8px 10px;
	border-radius: 6px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.88rem;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.iexel-mobile-override-trigger:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

.iexel-mobile-override-trigger-text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
	font-weight: 500;
}

.iexel-mobile-override-trigger-icon {
	font-size: 0.85rem;
	color: #64748b;
	margin-left: 8px;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.iexel-mobile-override-trigger[aria-expanded="true"] .iexel-mobile-override-trigger-icon {
	transform: rotate(180deg);
}

.iexel-mobile-override-panel {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 8px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.iexel-mobile-override-search-row {
	width: 100%;
	margin-bottom: 6px;
}

.iexel-mobile-override-search {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	min-height: 36px;
	padding: 6px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	font-size: 0.85rem;
	background: #f8fafc;
	color: var(--iexel-midnight, #071d49);
}

.iexel-mobile-override-search:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	background: #ffffff;
}

.iexel-mobile-override-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 180px;
	overflow-y: auto;
	overflow-x: hidden;
	border: 1px solid #e2e8f0;
	border-radius: 4px;
	background: #ffffff;
}

.iexel-mobile-override-option {
	border-bottom: 1px solid #f1f5f9;
}

.iexel-mobile-override-option:last-child {
	border-bottom: none;
}

.iexel-mobile-override-option-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 8px 10px;
	border: none;
	background: transparent;
	text-align: left;
	cursor: pointer;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	box-sizing: border-box;
	min-height: 36px;
	transition: background 0.1s ease;
}

.iexel-mobile-override-option-btn:hover,
.iexel-mobile-override-option-btn:focus-visible {
	background: #f1f5f9;
	outline: none;
}

.iexel-mobile-override-option.is-selected .iexel-mobile-override-option-btn {
	background: #eff6ff;
	font-weight: 700;
	color: #1e40af;
}

.iexel-mobile-override-option-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.iexel-mobile-override-option-id {
	font-size: 0.78rem;
	color: #64748b;
	margin-left: 6px;
	flex-shrink: 0;
}

.iexel-mobile-override-option.is-selected .iexel-mobile-override-option-id {
	color: #3b82f6;
}

.iexel-reconciliation-card-override {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-reconciliation-assign-form-mobile {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.iexel-reconciliation-card-override select,
.iexel-reconciliation-assign-form-mobile select {
	display: block;
	max-width: 100%;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	padding: 8px 10px;
	min-height: 40px;
	border-radius: 6px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.88rem;
	cursor: pointer;
}

.iexel-reconciliation-card-override select:focus,
.iexel-reconciliation-assign-form-mobile select:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

.iexel-reconciliation-header-row h2 {
	word-break: break-word;
	overflow-wrap: break-word;
	max-width: 100%;
}

/* Scoped Reconciliation Button & Interaction Styling */
.iexel-reconciliation-assign-fields {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: stretch;
	min-width: 200px;
	max-width: 280px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-assign-fields .iexel-mobile-override-trigger {
	width: 100%;
	min-height: 34px;
	padding: 6px 10px;
	font-size: 0.82rem;
}

.iexel-reconciliation-assign-fields .iexel-mobile-override-panel {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-assign-fields select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	font-size: 0.82rem;
	padding: 5px 8px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-assign-fields select:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

/* Save Match buttons: high-contrast dark midnight on crisp white */
.iexel-reconciliation-save-match-btn,
.iexel-reconciliation-assign-form .iexel-button-secondary,
.iexel-reconciliation-card-override .iexel-button-secondary {
	background: #ffffff !important;
	border: 1.5px solid var(--iexel-midnight, #071d49) !important;
	color: var(--iexel-midnight, #071d49) !important;
	font-weight: 700;
	border-radius: 6px;
	padding: 6px 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
	font-size: 0.82rem;
	line-height: 1.3;
	box-sizing: border-box;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iexel-reconciliation-save-match-btn:hover,
.iexel-reconciliation-assign-form .iexel-button-secondary:hover,
.iexel-reconciliation-card-override .iexel-button-secondary:hover {
	background: #eef2f7 !important;
	border-color: var(--iexel-gold, #cba135) !important;
	color: var(--iexel-midnight, #071d49) !important;
}

.iexel-reconciliation-save-match-btn:focus-visible,
.iexel-reconciliation-assign-form .iexel-button-secondary:focus-visible,
.iexel-reconciliation-card-override .iexel-button-secondary:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-reconciliation-save-match-btn:disabled,
.iexel-reconciliation-save-match-btn[aria-disabled="true"] {
	background: #f1f5f9 !important;
	border-color: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: not-allowed;
}

/* Upload & Preview button */
.iexel-reconciliation-upload-row .iexel-button-primary {
	background: var(--iexel-gold, #cba135);
	border: 1.5px solid var(--iexel-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
	border-radius: 8px;
	padding: 10px 18px;
	cursor: pointer;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.iexel-reconciliation-upload-row .iexel-button-primary:hover {
	background: #dfb547;
	border-color: #dfb547;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-upload-row .iexel-button-primary:focus-visible {
	outline: 3px solid var(--iexel-midnight, #071d49);
	outline-offset: 2px;
}

/* Cancel Import action button */
.iexel-reconciliation-header-actions .iexel-button-secondary,
.iexel-reconciliation-header-actions .iexel-button-danger-outline {
	background: #ffffff !important;
	border: 1.5px solid #dc2626 !important;
	color: #dc2626 !important;
	font-weight: 700;
	border-radius: 6px;
	padding: 6px 12px;
	font-size: 0.82rem;
	cursor: pointer;
	transition: all 0.15s ease;
}

.iexel-reconciliation-header-actions .iexel-button-secondary:hover,
.iexel-reconciliation-header-actions .iexel-button-danger-outline:hover {
	background: #fee2e2 !important;
	border-color: #b91c1c !important;
	color: #991b1b !important;
}

.iexel-reconciliation-header-actions .iexel-button-secondary:focus-visible,
.iexel-reconciliation-header-actions .iexel-button-danger-outline:focus-visible {
	outline: 2px solid #dc2626;
	outline-offset: 2px;
}

/* Status Badge: Manually Matched distinct treatment */
.iexel-billing-status.is-manual {
	background: #e0e7ff;
	border: 1px solid #818cf8;
	color: #312e81;
}

/* Status Badge: Name Match distinct treatment */
.iexel-billing-status.is-name-match {
	background: #ecfdf5;
	border: 1px solid #6ee7b7;
	color: #065f46;
}

/* Status Badge: Fundraising Match distinct treatment */
.iexel-billing-status.is-fundraising-match {
	background: #fdf2f8;
	border: 1px solid #f472b6;
	color: #9d174d;
}

.iexel-badge.is-manual-badge {
	background: #e0e7ff;
	color: #3730a3;
	font-weight: 700;
	font-size: 0.72rem;
	padding: 2px 6px;
	border-radius: 4px;
	margin-left: 6px;
}

.iexel-reconciliation-suggestions {
	margin-top: 4px;
	padding: 4px 6px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 4px;
	font-size: 0.8rem;
}

.iexel-reconciliation-suggestion-label {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #64748b;
	display: block;
	margin-bottom: 2px;
}

.iexel-reconciliation-suggestion-item {
	color: #0f172a;
	line-height: 1.3;
}

/* Mobile viewport refinement (600px, 390px, 320px) */
@media (max-width: 600px) {
	.iexel-reconciliation-desktop-only {
		display: none !important;
	}

	.iexel-reconciliation-mobile-only {
		display: block !important;
	}

	/* Reconciliation Filter Grid (2 columns x 3 rows) */
	.iexel-reconciliation-filters {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-reconciliation-filter-tab {
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
		min-height: 38px;
		padding: 6px 6px;
		font-size: 0.8rem;
		font-weight: 700;
		line-height: 1.25;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.iexel-reconciliation-upload-row {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-reconciliation-upload-row .iexel-button-primary {
		width: 100%;
		min-height: 40px;
		font-size: 0.9rem;
		justify-content: center;
		box-sizing: border-box;
	}

	.iexel-reconciliation-file-picker {
		display: flex;
		flex-direction: column;
		gap: 6px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-reconciliation-file-picker input[type="file"],
	.iexel-file-input,
	#statement_file {
		display: block;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
		padding: 8px 10px;
		border: 1px dashed #cbd5e1;
		border-radius: 6px;
		background: #f8fafc;
		font-size: 0.85rem;
		cursor: pointer;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.iexel-reconciliation-card-override {
		margin-top: 10px;
		padding-top: 8px;
		border-top: 1px solid #f1f5f9;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-reconciliation-assign-form-mobile {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-reconciliation-card-override .iexel-reconciliation-save-match-btn {
		width: 100%;
		min-height: 40px;
		font-size: 0.9rem;
		box-sizing: border-box;
	}

	.iexel-reconciliation-card-override select,
	.iexel-reconciliation-assign-form-mobile select {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-height: 40px;
		font-size: 0.88rem;
		box-sizing: border-box;
		text-overflow: ellipsis;
		overflow: hidden;
		white-space: nowrap;
	}

	.iexel-reconciliation-card-explanation p,
	.iexel-reconciliation-card-payer,
	.iexel-reconciliation-card-member {
		overflow-wrap: anywhere;
		word-break: break-word;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-reconciliation-card {
		min-width: 0;
		max-width: 100%;
		width: 100%;
		box-sizing: border-box;
		overflow: hidden;
	}
}

@media (max-width: 480px) {
	.iexel-reconciliation-upload-card,
	.iexel-reconciliation-summary-section,
	.iexel-reconciliation-list-section {
		padding: 14px 12px;
	}

	.iexel-reconciliation-card {
		padding: 12px 10px;
	}

	.iexel-reconciliation-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
}

/* ==========================================================================
   Bank Statement Reconciliation — Batch 2: Canonical Payment Confirmation
   ========================================================================== */

.iexel-billing-status.is-recorded {
	background-color: #dcfce7;
	color: #166534;
	border: 1px solid #86efac;
}

.iexel-billing-status.is-voided {
	background-color: #f1f5f9;
	color: #64748b;
	border: 1px solid #cbd5e1;
	text-decoration: line-through;
}

.iexel-badge.is-voided-badge {
	background-color: #f1f5f9;
	color: #64748b;
	border: 1px solid #cbd5e1;
	font-size: 0.78rem;
	padding: 2px 6px;
	border-radius: 4px;
}

.iexel-reconciliation-bulk-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #f0fdf4;
	border: 1px solid #86efac;
	border-radius: 10px;
	padding: 12px 18px;
	margin-bottom: 16px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-reconciliation-bulk-info {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 0.95rem;
	color: #166534;
}

.iexel-bulk-separator {
	color: #86efac;
}

.iexel-bulk-amount {
	font-weight: 700;
	color: #15803d;
}

.iexel-reconciliation-confirm-card {
	max-width: 900px;
	margin: 0 auto;
	box-sizing: border-box;
}

.iexel-reconciliation-confirm-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 20px 0;
	box-sizing: border-box;
}

.iexel-confirm-panel {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 16px;
	box-sizing: border-box;
}

.iexel-confirm-panel-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 12px 0;
	padding-bottom: 8px;
	border-bottom: 1px solid #e2e8f0;
}

.iexel-confirm-dl {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 8px 12px;
	margin: 0;
	font-size: 0.88rem;
}

.iexel-confirm-dl dt {
	color: #64748b;
	font-weight: 600;
}

.iexel-confirm-dl dd {
	color: #0f172a;
	margin: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.iexel-reconciliation-preview-table,
.iexel-reconciliation-bulk-preview-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: 0.88rem;
}

/* Projected Allocations Breakdown — Responsive Display */
.iexel-confirm-allocations-desktop {
	display: block;
	width: 100%;
}

.iexel-confirm-allocations-mobile {
	display: none;
}

/* Bulk Payment Confirmation — Responsive Display */
.iexel-confirm-bulk-desktop {
	display: block;
	width: 100%;
}

.iexel-confirm-bulk-mobile {
	display: none;
}

/* Invoice reference badges */
.iexel-invoice-badge {
	display: inline-block;
	background: #eff6ff;
	color: #1d4ed8;
	border: 1px solid #bfdbfe;
	border-radius: 4px;
	padding: 2px 6px;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

/* Reconciliation informational banners */
.iexel-reconciliation-banner {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 8px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	margin: 14px 0;
	font-size: 0.88rem;
	color: #334155;
	box-sizing: border-box;
	min-width: 0;
}

.iexel-reconciliation-banner.is-info {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1e40af;
}

.iexel-reconciliation-banner.is-warning {
	background: #fffbeb;
	border-color: #fde68a;
	color: #92400e;
}

.iexel-confirm-bulk-table-container {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-top: 14px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
}

.iexel-confirm-bulk-table-container table {
	min-width: 600px;
}

.iexel-reconciliation-confirm-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #e2e8f0;
}

/* Reconciliation secondary action controls on light surfaces */
.iexel-reconciliation-workspace .iexel-button-secondary,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary,
.iexel-reconciliation-confirm-actions .iexel-button-secondary {
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iexel-reconciliation-workspace .iexel-button-secondary:visited,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary:visited,
.iexel-reconciliation-confirm-actions .iexel-button-secondary:visited {
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-workspace .iexel-button-secondary:hover,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary:hover,
.iexel-reconciliation-confirm-actions .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-workspace .iexel-button-secondary:focus-visible,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary:focus-visible,
.iexel-reconciliation-confirm-actions .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-reconciliation-workspace .iexel-button-secondary:active,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary:active,
.iexel-reconciliation-confirm-actions .iexel-button-secondary:active {
	background: #e2e8f0;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-workspace .iexel-button-secondary:disabled,
.iexel-reconciliation-workspace .iexel-button-secondary[aria-disabled="true"],
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary:disabled,
.iexel-reconciliation-confirmation-workspace .iexel-button-secondary[aria-disabled="true"],
.iexel-reconciliation-confirm-actions .iexel-button-secondary:disabled,
.iexel-reconciliation-confirm-actions .iexel-button-secondary[aria-disabled="true"] {
	background: #f1f5f9 !important;
	border-color: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: not-allowed !important;
}

.iexel-reconciliation-recorded-cell {
	font-size: 0.85rem;
}

.iexel-reconciliation-allocations-summary {
	color: #64748b;
	font-size: 0.78rem;
	margin-top: 3px;
	line-height: 1.3;
}

.iexel-reconciliation-card-recorded-block {
	margin: 10px 0;
	padding: 8px 10px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	box-sizing: border-box;
}

.iexel-reconciliation-card-allocations {
	font-size: 0.78rem;
	color: #64748b;
	margin-top: 4px;
	line-height: 1.3;
}

.iexel-reconciliation-reassign-details {
	margin-top: 6px;
	font-size: 0.8rem;
}

.iexel-reconciliation-reassign-summary {
	cursor: pointer;
	color: #0284c7;
	text-decoration: underline;
	font-weight: 500;
}

.iexel-reconciliation-record-btn {
	white-space: nowrap;
	font-weight: 700;
}

.iexel-reconciliation-row.is-recorded-row {
	background-color: #fafdfb;
}

.iexel-reconciliation-card.is-recorded-card {
	border-left: 4px solid #22c55e;
}

.iexel-reconciliation-row.is-just-matched {
	background-color: #f0fdf4;
	outline: 2px solid #22c55e;
	outline-offset: -2px;
}

.iexel-reconciliation-card.is-just-matched {
	border-left: 4px solid #22c55e !important;
	background-color: #f0fdf4;
}

.iexel-reconciliation-mobile-reassign-details {
	margin-top: 8px;
	font-size: 0.85rem;
}

.iexel-reconciliation-mobile-reassign-details summary {
	cursor: pointer;
	color: #0284c7;
	text-decoration: underline;
	font-weight: 500;
	padding: 4px 0;
}

.iexel-reconciliation-post-match-banner {
	margin-bottom: 16px;
	scroll-margin-top: 80px;
}

.iexel-reconciliation-target-anchor {
	display: block;
	position: relative;
	top: -80px;
	visibility: hidden;
}

.iexel-reconciliation-post-match-banner .iexel-portal-notice {
	background: #ecfdf5;
	border-left: 4px solid #10b981;
	color: #065f46;
	padding: 14px 18px;
	border-radius: 8px;
	box-sizing: border-box;
}

.iexel-reconciliation-mobile .iexel-reconciliation-record-btn {
	display: flex;
	width: 100%;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 0.95rem;
	font-weight: 700;
	box-sizing: border-box;
	line-height: 1.3;
	white-space: normal;
	padding: 10px 14px;
}

@media (max-width: 640px) {
	.iexel-reconciliation-bulk-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		text-align: center;
	}

	.iexel-reconciliation-bulk-info {
		justify-content: center;
	}

	.iexel-reconciliation-bulk-action .iexel-button-primary {
		width: 100%;
		text-align: center;
	}

	.iexel-reconciliation-confirm-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.iexel-reconciliation-confirm-actions {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.iexel-reconciliation-confirm-actions .iexel-button {
		width: 100%;
		text-align: center;
		box-sizing: border-box;
		justify-content: center;
		min-height: 44px;
		white-space: normal;
		line-height: 1.35;
		padding: 10px 14px;
	}

	.iexel-reconciliation-post-match-banner .iexel-button {
		width: 100%;
		text-align: center;
		min-height: 44px;
		justify-content: center;
		box-sizing: border-box;
	}

	.iexel-confirm-allocations-desktop {
		display: none;
	}

	.iexel-confirm-allocations-mobile {
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-top: 12px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-confirm-allocation-card {
		background: #f8fafc;
		border: 1px solid #e2e8f0;
		border-radius: 8px;
		padding: 12px 14px;
		box-sizing: border-box;
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 8px;
	}

	.iexel-confirm-allocation-card.is-credit-card {
		background: #f0fdf4;
		border-color: #bbf7d0;
	}

	.iexel-confirm-alloc-field {
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	.iexel-confirm-alloc-field--priority {
		padding-top: 6px;
		border-top: 1px dashed #e2e8f0;
	}

	.iexel-confirm-alloc-field--amount {
		padding-top: 6px;
		border-top: 1px dashed #e2e8f0;
	}

	.iexel-confirm-alloc-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: #64748b;
		font-weight: 700;
	}

	.iexel-confirm-alloc-value {
		font-size: 0.95rem;
		color: #071d49;
		word-break: break-word;
	}

	.iexel-confirm-alloc-desc {
		display: block;
		font-size: 0.82rem;
		color: #475569;
		margin-top: 1px;
	}

	.iexel-confirm-alloc-field--priority .iexel-badge,
	.iexel-confirm-alloc-value .iexel-badge {
		white-space: normal;
		line-height: 1.35;
		text-align: center;
		padding: 4px 8px;
		font-size: 0.8rem;
		max-width: 100%;
		box-sizing: border-box;
		display: inline-block;
	}

	.iexel-confirm-alloc-amount {
		font-size: 1.1rem;
		font-weight: 800;
		color: #166534;
	}

	.iexel-confirm-allocations-mobile-total {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 12px 14px;
		background: #ffffff;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		border-radius: 8px;
		margin-top: 6px;
		box-sizing: border-box;
		font-size: 0.92rem;
		color: #071d49;
		gap: 8px;
	}

	.iexel-confirm-allocations-mobile-total strong {
		font-size: 1.05rem;
		font-weight: 800;
		color: #071d49;
	}

	/* Bulk Payment Confirmation — Mobile Cards (<=600px) */
	.iexel-confirm-bulk-desktop {
		display: none;
	}

	.iexel-confirm-bulk-mobile {
		display: flex;
		flex-direction: column;
		gap: 12px;
		margin-top: 14px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-confirm-bulk-card {
		background: #f8fafc;
		border: 1px solid #e2e8f0;
		border-radius: 8px;
		padding: 12px 14px;
		box-sizing: border-box;
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 8px;
		min-width: 0;
	}

	.iexel-confirm-bulk-disclosure {
		background: #f8fafc;
		border: 1px solid #e2e8f0;
		border-radius: 8px;
		padding: 0;
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
		overflow: hidden;
		display: block;
		transition: border-color 0.15s ease, box-shadow 0.15s ease;
	}

	.iexel-confirm-bulk-disclosure[open] {
		background: #ffffff;
		border-color: #cbd5e1;
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
	}

	.iexel-confirm-bulk-summary {
		display: block;
		cursor: pointer;
		padding: 12px 14px;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
		box-sizing: border-box;
		min-height: 48px;
	}

	.iexel-confirm-bulk-summary::-webkit-details-marker,
	.iexel-confirm-bulk-summary::marker {
		display: none;
	}

	.iexel-confirm-bulk-summary:focus-visible {
		outline: 2px solid var(--iexel-gold, #cba135);
		outline-offset: -2px;
		border-radius: 8px;
	}

	.iexel-confirm-bulk-summary-content {
		display: flex;
		flex-direction: column;
		gap: 6px;
		width: 100%;
		min-width: 0;
	}

	.iexel-confirm-bulk-summary-content .iexel-confirm-bulk-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-bottom: 6px;
		border-bottom: 1px solid #f1f5f9;
		gap: 8px;
	}

	.iexel-confirm-bulk-summary-row {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 10px;
		width: 100%;
		min-width: 0;
	}

	.iexel-confirm-bulk-summary-identity {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
		flex: 1 1 auto;
	}

	.iexel-confirm-bulk-summary-payer {
		font-size: 0.95rem;
		color: #071d49;
		overflow-wrap: break-word;
		word-break: break-word;
		line-height: 1.3;
	}

	.iexel-confirm-bulk-summary-ref {
		font-size: 0.8rem;
		color: #64748b;
		overflow-wrap: break-word;
		word-break: break-word;
		line-height: 1.25;
	}

	.iexel-confirm-bulk-summary-amount-col {
		display: flex;
		align-items: center;
		gap: 6px;
		flex-shrink: 0;
		padding-top: 1px;
	}

	.iexel-confirm-bulk-summary-amount {
		font-size: 1.1rem;
		font-weight: 800;
		color: #166534;
		white-space: nowrap;
	}

	.iexel-confirm-bulk-chevron {
		font-size: 0.85rem;
		color: #64748b;
		transition: transform 0.2s ease;
		display: inline-block;
		line-height: 1;
	}

	.iexel-confirm-bulk-disclosure[open] .iexel-confirm-bulk-chevron {
		transform: rotate(180deg);
	}

	.iexel-confirm-bulk-disclosure-body {
		padding: 10px 14px 14px;
		border-top: 1px solid #e2e8f0;
		background: #f8fafc;
		display: flex;
		flex-direction: column;
		gap: 8px;
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
	}

	.iexel-confirm-bulk-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-bottom: 8px;
		border-bottom: 1px solid #e2e8f0;
		gap: 8px;
	}

	.iexel-confirm-bulk-card-header .iexel-badge {
		white-space: nowrap;
	}

	.iexel-confirm-bulk-date {
		font-size: 0.85rem;
		color: #64748b;
		font-weight: 500;
	}

	.iexel-confirm-bulk-field {
		display: flex;
		flex-direction: column;
		gap: 2px;
		padding-top: 6px;
		border-top: 1px dashed #e2e8f0;
		min-width: 0;
	}

	.iexel-confirm-bulk-field:first-of-type {
		padding-top: 0;
		border-top: none;
	}

	.iexel-confirm-bulk-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: #64748b;
		font-weight: 700;
	}

	.iexel-confirm-bulk-value {
		font-size: 0.95rem;
		color: #071d49;
		min-width: 0;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.iexel-confirm-bulk-amount {
		font-size: 1.15rem;
		font-weight: 800;
		color: #166534;
	}

	.iexel-confirm-bulk-subtext {
		display: block;
		font-size: 0.82rem;
		color: #64748b;
		margin-top: 1px;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.iexel-confirm-bulk-field--invoice .iexel-invoice-badge {
		max-width: 100%;
		box-sizing: border-box;
	}

	.iexel-confirm-bulk-alloc-list {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		align-items: center;
	}

	.iexel-confirm-bulk-alloc-item {
		display: inline-block;
		background: #ffffff;
		border: 1px solid #cbd5e1;
		border-radius: 4px;
		padding: 2px 6px;
		font-size: 0.82rem;
		color: #0f172a;
		font-weight: 600;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: break-word;
		line-height: 1.35;
	}

	.iexel-reconciliation-banner {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
}

@media (max-width: 390px) {
	.iexel-confirm-dl {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.iexel-confirm-dl dd {
		margin-bottom: 6px;
	}

	.iexel-reconciliation-metrics {
		grid-template-columns: 1fr;
	}
}

.iexel-billing-status.is-duplicate-dismissed {
	background: #f1f5f9;
	color: #64748b;
	border: 1px solid #cbd5e1;
}

.iexel-reconciliation-duplicate-details {
	margin-top: 6px;
	font-size: 0.8125rem;
	position: relative;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-reconciliation-duplicate-details summary {
	cursor: pointer;
	list-style: none;
	display: inline-block;
}

.iexel-reconciliation-duplicate-details summary::-webkit-details-marker {
	display: none;
}

.iexel-reconciliation-duplicate-details summary.iexel-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
	cursor: pointer;
	list-style: none;
	user-select: none;
	white-space: normal;
	line-height: 1.3;
}

.iexel-reconciliation-duplicate-details summary.iexel-button-secondary,
.iexel-duplicate-actions .iexel-button-secondary {
	background: #ffffff;
	border: 1.5px solid var(--iexel-midnight, #071d49);
	color: var(--iexel-midnight, #071d49);
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iexel-reconciliation-duplicate-details summary.iexel-button-secondary:hover,
.iexel-duplicate-actions .iexel-button-secondary:hover {
	background: #eef2f7;
	border-color: var(--iexel-gold, #cba135);
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-duplicate-details summary.iexel-button-secondary:focus-visible,
.iexel-duplicate-actions .iexel-button-secondary:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-reconciliation-duplicate-details summary.iexel-button-secondary:active,
.iexel-duplicate-actions .iexel-button-secondary:active {
	background: #e2e8f0;
	color: var(--iexel-midnight, #071d49);
}

.iexel-reconciliation-duplicate-details summary.iexel-button-secondary:disabled,
.iexel-reconciliation-duplicate-details summary.iexel-button-secondary[aria-disabled="true"],
.iexel-duplicate-actions .iexel-button-secondary:disabled,
.iexel-duplicate-actions .iexel-button-secondary[aria-disabled="true"] {
	background: #f1f5f9 !important;
	border-color: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: not-allowed !important;
}

.iexel-duplicate-review-box {
	margin-top: 8px;
	padding: 10px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 0.8125rem;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.iexel-duplicate-evidence {
	margin-bottom: 8px;
}

.iexel-duplicate-reason {
	margin: 4px 0;
	color: #475569;
	line-height: 1.35;
}

.iexel-duplicate-warning-note {
	margin-top: 6px;
	padding: 6px 8px;
	background: #fef2f2;
	border-left: 3px solid #ef4444;
	border-radius: 4px;
	line-height: 1.35;
}

.iexel-duplicate-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	margin-top: 8px;
}

.iexel-duplicate-form {
	display: inline-block;
	margin: 0;
}

@media (max-width: 640px) {
	.iexel-reconciliation-duplicate-details summary.iexel-button-full {
		display: flex;
		width: 100%;
		justify-content: center;
		box-sizing: border-box;
		min-height: 38px;
	}

	.iexel-duplicate-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.iexel-duplicate-actions .iexel-duplicate-form {
		width: 100%;
	}

	.iexel-duplicate-actions .iexel-button {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
		min-height: 38px;
		white-space: normal;
		line-height: 1.3;
	}
}

/* ==========================================================================
   Cross-Workspace Polish: Shared Global Back-to-Top Control
   ========================================================================== */

.iexel-back-to-top {
	position: fixed;
	bottom: calc(28px + env(safe-area-inset-bottom, 0px));
	right: calc(28px + env(safe-area-inset-right, 0px));
	z-index: 990;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	border-radius: 50%;
	background: var(--iexel-midnight, #06142f);
	color: var(--iexel-gold, #cba135);
	border: 1.5px solid var(--iexel-gold, #cba135);
	box-shadow: 0 4px 14px rgba(6, 20, 47, 0.35);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.iexel-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.iexel-back-to-top:hover {
	background: var(--iexel-midnight-2, #0a1f49);
	border-color: var(--iexel-gold, #cba135);
	color: var(--iexel-gold, #cba135);
	box-shadow: 0 6px 20px rgba(6, 20, 47, 0.45);
}

.iexel-back-to-top:focus-visible {
	outline: 3px solid var(--iexel-gold, #cba135);
	outline-offset: 3px;
	box-shadow: 0 0 0 2px var(--iexel-midnight, #06142f), 0 6px 20px rgba(6, 20, 47, 0.45);
}

.iexel-back-to-top:active {
	transform: translateY(2px) scale(0.96);
}

.iexel-back-to-top__icon {
	width: 20px;
	height: 20px;
	display: block;
	flex-shrink: 0;
}

@media (max-width: 640px) {
	.iexel-back-to-top {
		bottom: calc(20px + env(safe-area-inset-bottom, 0px));
		right: calc(16px + env(safe-area-inset-right, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.iexel-back-to-top {
		transition: none !important;
		transform: none !important;
	}
}

/* ==========================================================================
   Treasurer Responsive Polish (Fix Batch 3)
   ========================================================================== */

/* Task 1: Billing Runs Responsive Display */
.iexel-billing-runs-desktop {
	display: block;
	width: 100%;
}

.iexel-billing-runs-mobile {
	display: none;
}

@media (max-width: 600px) {
	.iexel-billing-runs-desktop {
		display: none;
	}

	.iexel-billing-runs-mobile {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		margin-top: 14px;
		box-sizing: border-box;
	}

	.iexel-billing-run-card {
		background: #ffffff;
		border: 1px solid var(--iexel-border, rgba(7, 29, 73, 0.12));
		border-radius: 10px;
		padding: 0;
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
		overflow: hidden;
		display: block;
		transition: border-color 0.15s ease, box-shadow 0.15s ease;
	}

	.iexel-billing-run-card[open] {
		border-color: #cbd5e1;
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
	}

	.iexel-billing-run-summary {
		display: block;
		cursor: pointer;
		padding: 12px 14px;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
		box-sizing: border-box;
		min-height: 48px;
		background: #ffffff;
	}

	.iexel-billing-run-summary::-webkit-details-marker,
	.iexel-billing-run-summary::marker {
		display: none;
	}

	.iexel-billing-run-summary:focus-visible {
		outline: 2px solid var(--iexel-color-gold, #cba135);
		outline-offset: -2px;
		border-radius: 10px;
	}

	.iexel-billing-run-summary-content {
		display: flex;
		flex-direction: column;
		gap: 6px;
		width: 100%;
		min-width: 0;
	}

	.iexel-billing-run-summary-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-bottom: 6px;
		border-bottom: 1px solid #f1f5f9;
		gap: 8px;
	}

	.iexel-billing-run-summary-row {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-width: 0;
	}

	.iexel-billing-run-summary-info {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
		flex: 1 1 auto;
	}

	.iexel-billing-run-summary-schedule {
		font-size: 0.95rem;
		color: var(--iexel-midnight, #071d49);
		overflow-wrap: break-word;
		word-break: break-word;
		line-height: 1.3;
		font-weight: 700;
	}

	.iexel-billing-run-summary-period {
		font-size: 0.8rem;
		color: var(--iexel-muted, #64748b);
		overflow-wrap: break-word;
		word-break: break-word;
		line-height: 1.25;
	}

	.iexel-billing-run-summary-chevron-wrap {
		display: flex;
		align-items: center;
		flex-shrink: 0;
		width: auto;
	}

	.iexel-billing-run-chevron {
		font-size: 0.85rem;
		color: var(--iexel-muted, #64748b);
		transition: transform 0.2s ease;
		display: inline-block;
		line-height: 1;
	}

	.iexel-billing-run-card[open] .iexel-billing-run-chevron {
		transform: rotate(180deg);
	}

	.iexel-billing-run-disclosure-body {
		padding: 10px 14px 14px;
		border-top: 1px solid #e2e8f0;
		background: #f8fafc;
		display: flex;
		flex-direction: column;
		gap: 8px;
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
	}

	.iexel-billing-run-field {
		display: flex;
		flex-direction: column;
		gap: 2px;
		padding-top: 6px;
		border-top: 1px dashed #e2e8f0;
		min-width: 0;
	}

	.iexel-billing-run-field:first-of-type {
		padding-top: 0;
		border-top: none;
	}

	.iexel-billing-run-label {
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--iexel-muted, #64748b);
		font-weight: 700;
	}

	.iexel-billing-run-value {
		font-size: 0.92rem;
		color: var(--iexel-midnight, #071d49);
		min-width: 0;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.iexel-billing-run-actions {
		margin-top: 6px;
		padding-top: 8px;
		border-top: 1px dashed #e2e8f0;
	}

	.iexel-billing-run-actions .iexel-button {
		width: 100%;
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-weight: 750;
		font-size: 0.88rem;
		box-sizing: border-box;
		border: 1.5px solid var(--iexel-midnight, #071d49);
		border-radius: 8px;
		background: #ffffff;
		color: var(--iexel-midnight, #071d49);
		text-decoration: none;
	}

	.iexel-billing-run-actions .iexel-button:hover {
		background: #eef2f7;
		border-color: var(--iexel-color-gold, #cba135);
		color: var(--iexel-midnight, #071d49);
	}
}

/* Task 3: Month Disclosures in Finance Workspace (no literal hex for rule 20 compliance) */
.iexel-finance-workspace .iexel-month-disclosure {
	border-bottom: 1px solid var(--iexel-border);
}

.iexel-finance-workspace .iexel-month-disclosure:last-child {
	border-bottom: 0;
}

.iexel-finance-workspace .iexel-month-disclosure > summary {
	padding: 8px 0 16px;
}

.iexel-finance-workspace .iexel-month-disclosure > summary h3 {
	color: var(--iexel-midnight);
	font-weight: 750;
}

.iexel-finance-workspace .iexel-month-disclosure-count {
	color: var(--iexel-muted);
	background: var(--iexel-surface-alt, rgba(7, 29, 73, 0.04));
	border: 1px solid var(--iexel-border);
	border-radius: 999px;
	padding: 2px 8px;
}

.iexel-finance-workspace .iexel-month-disclosure-chevron {
	color: var(--iexel-muted);
}

.iexel-finance-workspace .iexel-month-disclosure[open] .iexel-month-disclosure-chevron {
	color: var(--iexel-gold);
}

.iexel-finance-workspace .iexel-month-disclosure-body {
	padding-bottom: 16px;
}

/* Task 4: Treasurer Dashboard & Finance Overview Metric Responsiveness */
.iexel-experience-dashboard--treasurer .iexel-experience-metric strong,
.iexel-finance-workspace .iexel-experience-metric strong {
	white-space: nowrap !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
}

@media (max-width: 480px) {
	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metrics,
	.iexel-experience-dashboard--treasurer .iexel-experience-metrics,
	.iexel-finance-workspace .iexel-experience-metrics {
		grid-template-columns: 1fr !important;
		gap: 8px;
	}

	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metric,
	.iexel-experience-dashboard--treasurer .iexel-experience-metric,
	.iexel-finance-workspace .iexel-experience-metric {
		display: flex !important;
		justify-content: space-between !important;
		align-items: center !important;
		gap: 8px;
		padding: 10px 12px;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metric span,
	.iexel-experience-dashboard--treasurer .iexel-experience-metric span,
	.iexel-finance-workspace .iexel-experience-metric span {
		margin: 0;
		font-size: 0.72rem;
		letter-spacing: 0.02em;
		flex: 1 1 auto;
		min-width: 0;
		line-height: 1.25;
		overflow-wrap: normal;
		word-break: normal;
	}

	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metric strong,
	.iexel-experience-dashboard--treasurer .iexel-experience-metric strong,
	.iexel-finance-workspace .iexel-experience-metric strong {
		margin: 0 !important;
		font-size: 0.96rem;
		font-weight: 800;
		flex: 0 0 auto !important;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
		text-align: right;
		line-height: 1.2;
	}
}

/* ==========================================================================
   Treasurer Mobile Sweep: Contained Person Selectors & Identity Containment
   ========================================================================== */

/* Person Field Desktop vs Mobile Switching: Searchable Person Picker across viewports */
.iexel-person-field-desktop {
	display: none !important;
}

.iexel-person-field-mobile {
	display: block !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-person-field-mobile > label {
	display: block;
	margin-bottom: 6px;
}

.iexel-person-field-mobile > label span {
	display: block;
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--iexel-navy, #0f2756);
}

.iexel-finance-form-grid .iexel-mobile-person-picker-trigger {
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid rgba(15, 23, 42, 0.25);
	font: inherit;
}

/* Reusable Mobile Person Picker */
.iexel-mobile-person-picker-wrapper {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-mobile-person-picker-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	min-height: 40px;
	padding: 8px 10px;
	border-radius: 6px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	color: var(--iexel-midnight, #071d49);
	font-size: 0.88rem;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.iexel-mobile-person-picker-trigger:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
}

.iexel-mobile-person-picker-trigger[disabled],
.iexel-mobile-person-picker-trigger.is-locked {
	background: #f8fafc;
	color: #64748b;
	cursor: not-allowed;
	border-color: #cbd5e1;
	opacity: 0.95;
}

.iexel-mobile-person-picker-trigger[disabled] .iexel-mobile-person-picker-trigger-icon,
.iexel-mobile-person-picker-trigger.is-locked .iexel-mobile-person-picker-trigger-icon {
	display: none;
}

.iexel-mobile-person-picker-trigger-text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
	font-weight: 500;
}

.iexel-mobile-person-picker-trigger-icon {
	font-size: 0.85rem;
	color: #64748b;
	margin-left: 8px;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.iexel-mobile-person-picker-trigger[aria-expanded="true"] .iexel-mobile-person-picker-trigger-icon {
	transform: rotate(180deg);
}

.iexel-mobile-person-picker-panel {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 8px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.iexel-mobile-person-picker-search-row {
	width: 100%;
	margin-bottom: 6px;
}

.iexel-mobile-person-picker-search {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	min-height: 36px;
	padding: 6px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	font-size: 0.85rem;
	background: #f8fafc;
	color: var(--iexel-midnight, #071d49);
}

.iexel-mobile-person-picker-search:focus {
	border-color: var(--iexel-gold, #cba135);
	outline: 2px solid var(--iexel-gold, #cba135);
	background: #ffffff;
}

.iexel-mobile-person-picker-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 180px;
	overflow-y: auto;
	overflow-x: hidden;
	border: 1px solid #e2e8f0;
	border-radius: 4px;
	background: #ffffff;
}

.iexel-mobile-person-picker-option {
	border-bottom: 1px solid #f1f5f9;
}

.iexel-mobile-person-picker-option:last-child {
	border-bottom: none;
}

.iexel-mobile-person-picker-option-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 8px 10px;
	border: none;
	background: transparent;
	text-align: left;
	cursor: pointer;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	box-sizing: border-box;
	min-height: 36px;
	transition: background 0.1s ease;
}

.iexel-mobile-person-picker-option-btn:hover,
.iexel-mobile-person-picker-option-btn:focus-visible {
	background: #f1f5f9;
	outline: none;
}

.iexel-mobile-person-picker-option.is-selected .iexel-mobile-person-picker-option-btn {
	background: #eff6ff;
	font-weight: 700;
	color: #1e40af;
}

.iexel-mobile-person-picker-option-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.iexel-mobile-person-picker-option-id {
	font-size: 0.78rem;
	color: #64748b;
	margin-left: 6px;
	flex-shrink: 0;
}

.iexel-mobile-person-picker-option.is-selected .iexel-mobile-person-picker-option-id {
	color: #3b82f6;
}

/* Treasurer Person Profile Hero & Contact Identity Containment */
.iexel-experience-dashboard--treasurer .iexel-treasurer-person-summary-grid dl,
.iexel-treasurer-person-summary-grid dl {
	margin: 0;
	padding: 0;
	min-width: 0;
	max-width: 100%;
}

.iexel-treasurer-person-summary-grid dl dt {
	color: #64748b;
	font-weight: 600;
	font-size: 0.88rem;
	margin-top: 10px;
}

.iexel-treasurer-person-summary-grid dl dt:first-child {
	margin-top: 0;
}

.iexel-treasurer-person-summary-grid dl dd {
	margin: 2px 0 0 0;
	font-size: 0.95rem;
	color: #1e293b;
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.iexel-experience-hero {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-experience-hero .iexel-experience-hero-copy {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.iexel-experience-hero h1 {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Mobile Breakpoint Overrides (<= 600px) */
@media (max-width: 600px) {
	.iexel-person-field-desktop {
		display: none !important;
	}

	.iexel-person-field-mobile {
		display: block !important;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.iexel-person-field-mobile > label {
		display: block;
		margin-bottom: 6px;
	}

	.iexel-person-field-mobile > label span {
		display: block;
		font-weight: 600;
		font-size: 0.88rem;
		color: var(--iexel-navy, #0f2756);
	}

	.iexel-experience-hero {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.iexel-experience-hero .iexel-experience-button {
		align-self: flex-start;
	}
}

/* Multi-Role Event Communications Bridge (Batch 1) */
.iexel-announcement-context-badge {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.3;
	padding: 3px 8px;
	border-radius: 4px;
	background: rgba(203, 161, 53, 0.15);
	color: #f4d77e;
	border: 1px solid rgba(203, 161, 53, 0.35);
	margin-left: 8px;
	vertical-align: middle;
	word-break: break-word;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-announcement-context-pill {
	display: inline-block;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.35;
	padding: 4px 10px;
	border-radius: 6px;
	background: rgba(203, 161, 53, 0.15);
	color: #f4d77e;
	border: 1px solid rgba(203, 161, 53, 0.35);
	margin: 8px 0 12px;
	word-break: break-word;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-event-action-block {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--iexel-border, rgba(255, 255, 255, 0.1));
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-event-action-block .iexel-button {
	cursor: pointer;
	border: none;
	font-family: inherit;
}

.iexel-event-switch-form {
	display: inline-block;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-event-action-heading {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--iexel-muted, #94a3b8);
	margin-bottom: 8px;
}

.iexel-event-switch-options {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-event-action-muted {
	font-size: 0.875rem;
	color: var(--iexel-muted, #94a3b8);
	font-style: italic;
	margin: 0;
	max-width: 100%;
	word-break: break-word;
}

.iexel-event-access-recovery {
	margin-top: 16px;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-event-access-recovery p {
	margin-bottom: 16px;
	max-width: 100%;
	word-break: break-word;
}

.iexel-event-access-recovery .iexel-button {
	cursor: pointer;
	border: none;
	font-family: inherit;
}

@media (max-width: 600px) {
	.iexel-portal-announcement .iexel-announcement-context-badge {
		display: block;
		margin-left: 0;
		margin-top: 4px;
		width: fit-content;
		max-width: 100%;
	}

	.iexel-event-switch-options {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}

	.iexel-event-action-block .iexel-button,
	.iexel-event-access-recovery .iexel-button {
		width: 100%;
		justify-content: center;
		text-align: center;
		box-sizing: border-box;
	}

	.iexel-event-switch-form {
		width: 100%;
	}
}

/* ==================================================
   PARENT DEDICATED MY CHILDREN PAGE
   ================================================== */

.iexel-parent-children-page {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-parent-children-hero {
	margin-bottom: 24px;
}

.iexel-parent-children-main {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-parent-children-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 16px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-parent-child-card {
	background: var(--iexel-white, #ffffff);
	border: 1px solid var(--iexel-border, #e2e8f0);
	border-radius: 16px;
	padding: 20px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 14px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05);
	min-width: 0;
}

.iexel-parent-child-card.has-media {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	align-items: start;
	gap: 16px;
}

.iexel-parent-child-card .iexel-experience-item-actions {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid var(--iexel-border, #f1f5f9);
}

.iexel-parent-child-card .iexel-experience-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	font-size: 0.85rem;
	font-weight: 700;
	border-radius: 8px;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
	min-height: 38px;
	box-sizing: border-box;
}

.iexel-parent-child-card .iexel-experience-button.is-primary {
	background-color: var(--iexel-navy, #0f172a);
	color: #ffffff;
	border: 1px solid var(--iexel-navy, #0f172a);
}

.iexel-parent-child-card .iexel-experience-button.is-primary:hover {
	background-color: var(--iexel-midnight, #020617);
}

.iexel-parent-child-card .iexel-experience-button.is-secondary {
	background-color: #f8fafc;
	color: var(--iexel-navy, #0f172a);
	border: 1px solid var(--iexel-border, #cbd5e1);
}

.iexel-parent-child-card .iexel-experience-button.is-secondary:hover {
	background-color: #f1f5f9;
}

@media (max-width: 480px) {
	.iexel-parent-children-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.iexel-parent-child-card {
		padding: 16px;
	}

	.iexel-parent-child-card.has-media {
		grid-template-columns: 48px minmax(0, 1fr);
		gap: 12px;
	}

	.iexel-parent-child-card .iexel-experience-item-actions {
		flex-direction: column;
	}

	.iexel-parent-child-card .iexel-experience-button {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   Fixture Kit Colours V1
   ========================================================================== */

/* Canonical Football Shirt SVG */
.iexel-kit-shirt {
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
	transition: transform 0.15s ease;
}

.iexel-kit-shirt--small {
	width: 18px;
	height: 18px;
}

.iexel-kit-shirt--medium {
	width: 24px;
	height: 24px;
}

.iexel-kit-shirt--large {
	width: 36px;
	height: 36px;
}

.iexel-kit-shirt--hero {
	width: 40px;
	height: 40px;
}

.iexel-kit-shirt__body {
	stroke: rgba(15, 23, 42, 0.28);
	stroke-width: 1.2px;
	stroke-linejoin: round;
	paint-order: stroke fill;
	transition: fill 0.15s ease;
}

.iexel-kit-shirt.is-empty .iexel-kit-shirt__body {
	stroke: rgba(15, 23, 42, 0.55);
	stroke-width: 1.2px;
	fill: #eaedf1;
}

.iexel-kit-shirt__collar {
	fill: none;
	stroke: rgba(15, 23, 42, 0.32);
	stroke-width: 1.2px;
	stroke-linecap: round;
}

.iexel-kit-shirt.is-empty .iexel-kit-shirt__collar {
	stroke: rgba(15, 23, 42, 0.55);
}

.iexel-kit-shirt__crease {
	fill: none;
	stroke: rgba(15, 23, 42, 0.18);
	stroke-width: 1px;
	stroke-linecap: round;
}

.iexel-kit-shirt.is-empty .iexel-kit-shirt__crease {
	stroke: rgba(15, 23, 42, 0.35);
	display: block;
}

/* Hero card shirt contrast on midnight dark surfaces */
.iexel-event-hero-card .iexel-kit-shirt__body,
.iexel-matchday-hero .iexel-kit-shirt__body,
.iexel-match-mode-score-card .iexel-kit-shirt__body {
	stroke: rgba(255, 255, 255, 0.45);
	stroke-width: 1.2px;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.iexel-event-hero-card .iexel-kit-shirt__collar,
.iexel-matchday-hero .iexel-kit-shirt__collar,
.iexel-match-mode-score-card .iexel-kit-shirt__collar {
	stroke: rgba(255, 255, 255, 0.55);
}

.iexel-event-hero-card .iexel-kit-shirt__crease,
.iexel-matchday-hero .iexel-kit-shirt__crease,
.iexel-match-mode-score-card .iexel-kit-shirt__crease {
	stroke: rgba(255, 255, 255, 0.3);
}

/* Event Detail Match Hero composition pass */
.iexel-event-hero-fixture-team .iexel-kit-shirt {
	margin-top: -1px;
	flex-shrink: 0;
}

/* Match Context Header: competition and squad */
.iexel-event-hero-context-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	margin: 12px auto 6px;
	width: 100%;
}

.iexel-event-hero-context-competition {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
	font-size: clamp(0.78rem, 1.2vw, 0.95rem);
	font-weight: 850;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.2;
}

.iexel-event-hero-context-competition::before,
.iexel-event-hero-context-competition::after {
	content: "";
	display: inline-block;
	width: clamp(20px, 4vw, 44px);
	height: 1px;
	background: color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 55%, transparent);
}

.iexel-event-hero-context-team {
	display: block;
	color: var(--iexel-color-on-dark-muted, #c8d3e3);
	font-size: clamp(0.7rem, 1vw, 0.82rem);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-top: 3px;
}

/* Home / Away Matchup sub-labels */
.iexel-event-hero-fixture-role {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
	font-size: clamp(0.68rem, 0.9vw, 0.78rem);
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin: 6px auto 0;
	line-height: 1.2;
	text-align: center;
}

.iexel-event-hero-fixture-role::before,
.iexel-event-hero-fixture-role::after {
	content: "";
	display: inline-block;
	width: 14px;
	height: 1px;
	background: color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 45%, transparent);
}

.iexel-event-hero-fixture-name {
	display: block;
	text-align: center;
	overflow-wrap: break-word;
	word-break: normal;
}

/* Mobile metadata baseline alignment fix: consistent label block height across all 3 columns */
.iexel-event-hero-info-label {
	min-height: 2.6em;
	line-height: 1.3;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	text-align: center;
}

/* Mobile & narrow viewports: preserve accepted stacked architecture */
@media (max-width: 640px) {
	.iexel-event-hero-logistics {
		display: contents;
	}

	.iexel-event-hero-logistics-icon {
		display: none;
	}

	.iexel-event-hero-logistics-text {
		display: contents;
	}

	.iexel-event-hero-context-header { order: 1; }
	.iexel-event-hero-fixture { order: 2; }
	.iexel-event-hero-tags { order: 3; }
	.iexel-event-hero-info { order: 4; }
	.iexel-event-hero-venue { order: 5; }
	.iexel-event-hero-response { order: 6; }

	.iexel-event-hero-fixture {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 6px;
		margin: 14px 0 16px;
		text-align: center;
	}

	.iexel-event-hero-fixture-team {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 10px;
		width: 100%;
		text-align: center;
	}

	.iexel-event-hero-fixture-team .iexel-kit-shirt-spacer {
		display: block;
		width: clamp(40px, 9vw, 46px);
		height: clamp(40px, 9vw, 46px);
		flex-shrink: 0;
		pointer-events: none;
	}

	.iexel-event-hero-fixture-text {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		width: fit-content;
		max-width: clamp(118px, 31vw, 124px);
		min-width: min-content;
		flex: 0 1 auto;
	}

	.iexel-event-hero-fixture-name {
		width: 100%;
		max-width: 100%;
		text-align: center;
		font-size: clamp(1.1rem, 4.4vw, 1.65rem);
		line-height: 1.15;
		word-break: normal;
		overflow-wrap: break-word;
		text-wrap: balance;
	}

	/* Stacked mobile: Away row has [spacer (40px)] [gap 10px] [text] [gap 10px] [shirt (40px)] */
	.iexel-event-hero-fixture-team.iexel-event-hero-fixture-opponent {
		flex-direction: row;
		justify-content: center;
		text-align: center;
	}

	.iexel-event-hero-card .iexel-kit-shirt--hero {
		width: clamp(40px, 9vw, 46px);
		height: clamp(40px, 9vw, 46px);
	}

	.iexel-event-hero-fixture-vs {
		display: inline-block;
		font-size: 1.5rem;
		font-weight: 900;
		font-style: italic;
		color: var(--iexel-gold-bright, var(--iexel-gold, #f59e0b));
		margin: 2px 0;
		padding: 0 8px;
		background: none;
		-webkit-text-fill-color: initial;
		filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.4));
	}

	/* 3-column mobile timing strip with consistent baselines */
	.iexel-event-hero-info {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		width: 100%;
		max-width: 480px;
		margin: 14px auto 0;
		gap: 8px 10px;
		text-align: center;
	}

	.iexel-event-hero-info-item {
		align-items: center;
		text-align: center;
	}

	.iexel-event-hero-venue-actions {
		display: flex;
		justify-content: center;
		gap: 10px;
		margin-top: 10px;
		width: 100%;
	}
}

/* Desktop viewport (>= 641px): deliberate horizontal match composition */
@media (min-width: 641px) {
	.iexel-kit-shirt-spacer {
		display: none;
	}

	.iexel-event-hero-info-label {
		min-height: auto;
	}

	/* Layout order on desktop: Context Header (1) -> Matchup (2) -> Logistics Strip (3) -> Badges (4) -> Response (5) */
	.iexel-event-hero-context-header { order: 1; }
	.iexel-event-hero-fixture { order: 2; }
	.iexel-event-hero-logistics { order: 3; }
	.iexel-event-hero-tags { order: 4; }
	.iexel-event-hero-response { order: 5; }

	/* 1. WHO IS PLAYING: 3-track grid with true centred VS axis */
	.iexel-event-hero-fixture {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		width: 100%;
		max-width: 1100px;
		margin: 28px auto 34px;
		gap: 16px clamp(14px, 2vw, 28px);
		text-align: initial;
	}

	.iexel-event-hero-fixture-team {
		color: var(--iexel-white);
		font-size: clamp(1.35rem, 2.2vw, 2.15rem);
		font-weight: 900;
		line-height: 1.15;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		min-width: 0;
	}

	/* Left team: compact intrinsic unit resolving towards center (VS) with outward shirt framing */
	.iexel-event-hero-fixture-team:first-of-type {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: flex-end;
		justify-self: end;
		width: fit-content;
		max-width: 100%;
		gap: clamp(12px, 1.6vw, 18px);
		min-width: 0;
	}

	/* Right team: compact intrinsic unit resolving towards center (VS) with outward shirt framing */
	.iexel-event-hero-fixture-team.iexel-event-hero-fixture-opponent {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		justify-self: start;
		width: fit-content;
		max-width: 100%;
		gap: clamp(12px, 1.6vw, 18px);
		min-width: 0;
	}

	/* Content-sized text container: centered two-line team name bounded without intra-word breaks */
	.iexel-event-hero-fixture-text {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		min-width: min-content;
		flex: 0 1 auto;
		width: fit-content;
		max-width: clamp(200px, 20vw, 260px);
	}

	/* Dominant VS: imposing display gold typography on true central axis */
	.iexel-event-hero-fixture-vs {
		justify-self: center;
		margin: 0;
		min-width: 0;
		padding: 0 8px;
		border: none;
		background: linear-gradient(
			180deg,
			color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 25%, #ffffff) 0%,
			var(--iexel-gold-bright, var(--iexel-gold, #cba135)) 45%,
			var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 80%,
			color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 65%, #000000) 100%
		);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
		font-size: clamp(3.6rem, 6.2vw, 5.5rem);
		font-weight: 950;
		letter-spacing: 0.03em;
		line-height: 0.92;
		text-transform: uppercase;
		font-style: italic;
		transform: translateX(-4px);
		filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.8)) drop-shadow(0 0 32px color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 45%, transparent));
	}

	/* Team name: wraps naturally onto balanced lines without overflowing or colliding with shirt */
	.iexel-event-hero-fixture-name {
		width: 100%;
		max-width: 100%;
		line-height: 1.15;
		word-break: normal;
		overflow-wrap: break-word;
		text-wrap: balance;
		text-align: center;
	}

	/* Desktop imposing hero shirt scale: responsive framing without crowding long team names */
	.iexel-event-hero-card .iexel-kit-shirt--hero {
		width: clamp(92px, 8.5vw, 136px);
		height: clamp(92px, 8.5vw, 136px);
		filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.5));
		flex-shrink: 0;
	}

	/* 2. MATCH LOGISTICS RAIL: expanded desktop span integrated with hero span */
	.iexel-event-hero-logistics {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.4fr);
		align-items: center;
		width: 100%;
		max-width: 1100px;
		margin: 28px auto 0;
		padding: 14px 22px;
		background: rgba(255, 255, 255, 0.03);
		border-top: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 35%, transparent);
		border-bottom: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 35%, transparent);
		border-left: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 15%, transparent);
		border-right: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 15%, transparent);
		border-radius: 12px;
		box-sizing: border-box;
	}

	/* Graceful fallback when venue is absent */
	.iexel-event-hero-logistics:not(:has(.iexel-event-hero-venue)) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 820px;
	}
	.iexel-event-hero-logistics:not(:has(.iexel-event-hero-venue)) .iexel-event-hero-info-item:last-child {
		border-right: none;
	}

	.iexel-event-hero-logistics .iexel-event-hero-info.is-match {
		display: contents;
	}

	.iexel-event-hero-logistics .iexel-event-hero-venue {
		display: contents;
	}

	.iexel-event-hero-logistics .iexel-event-hero-info-item,
	.iexel-event-hero-logistics .iexel-event-hero-venue-details {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		text-align: left;
		padding: 4px 14px;
		border-right: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 22%, transparent);
		box-sizing: border-box;
		gap: 12px;
		min-width: 0;
	}

	.iexel-event-hero-logistics .iexel-event-hero-venue-details {
		border-right: none;
	}

	.iexel-event-hero-logistics-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 38px;
		height: 38px;
		min-width: 38px;
		border-radius: 50%;
		background: color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 12%, transparent);
		border: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 35%, transparent);
		color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
		flex-shrink: 0;
	}

	.iexel-event-hero-logistics-icon svg {
		width: 18px;
		height: 18px;
	}

	.iexel-event-hero-logistics-text {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		min-width: 0;
		gap: 2px;
	}

	.iexel-event-hero-logistics-text .iexel-event-hero-info-label {
		min-height: auto;
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
		line-height: 1.2;
		display: block;
		text-align: left;
	}

	.iexel-event-hero-logistics-text .iexel-event-hero-info-value,
	.iexel-event-hero-logistics-text .iexel-event-hero-venue-name {
		color: var(--iexel-white, #ffffff);
		font-size: 1.02rem;
		font-weight: 850;
		line-height: 1.25;
		overflow-wrap: anywhere;
		text-align: left;
	}

	.iexel-event-hero-venue-actions {
		display: flex;
		align-items: center;
		gap: 6px;
		margin-top: 6px;
		flex-wrap: wrap;
	}

	.iexel-event-hero-venue-btn {
		padding: 3px 9px !important;
		font-size: 0.74rem !important;
		min-height: 24px !important;
		height: 24px !important;
		line-height: 1 !important;
		border-radius: 6px !important;
	}

	/* Non-match fallback when outside match logistics strip */
	.iexel-event-hero-info.is-non-match {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
		width: 100%;
		max-width: 680px;
		margin: 20px auto 0;
		padding-top: 20px;
		gap: 16px 28px;
		border-top: 1px solid color-mix(in srgb, var(--iexel-gold, var(--iexel-brand-accent, #cba135)) 28%, transparent);
		text-align: center;
		box-sizing: border-box;
	}

	/* 3. MATCH CONTEXT: secondary badges row below logistics strip */
	.iexel-event-hero-tags {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 10px 14px;
		width: 100%;
		max-width: 960px;
		margin: 22px auto 0;
	}

	.iexel-event-hero-tags .iexel-badge {
		font-size: 0.82rem;
		padding: 8px 16px;
		letter-spacing: 0.02em;
	}

	/* 4. HERO RESPONSE: modest desktop scale refinement */
	.iexel-event-hero-response {
		order: 5;
		margin-top: 24px;
		padding-top: 20px;
		max-width: 580px;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}

	.iexel-event-hero-response .iexel-section-kicker {
		font-size: 0.76rem;
		letter-spacing: 0.14em;
		font-weight: 850;
		color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
		text-transform: uppercase;
	}

	.iexel-event-hero-response h3 {
		font-size: 1.25rem;
		font-weight: 850;
		color: var(--iexel-white, #ffffff);
		margin: 4px 0 0;
		letter-spacing: 0.01em;
	}

	.iexel-event-hero-response .iexel-response-child-header {
		justify-content: center;
	}
}

/* Equal-height and footprint parity for hero RSVP buttons */
.iexel-event-hero-response .iexel-response-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 12px;
	max-width: 460px;
	margin: 8px auto 0;
	width: 100%;
}

.iexel-event-hero-response .iexel-response-actions form {
	flex: 1 1 160px;
	max-width: 210px;
	margin: 0;
	display: flex;
}

.iexel-event-hero-response .iexel-response-actions .iexel-button {
	width: 100%;
	min-height: 44px;
	height: 44px;
	padding: 10px 18px;
	font-size: 0.9rem;
	font-weight: 700;
	border-radius: 8px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Matchday Hub Hero header row */
.iexel-matchday-hero__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}
.iexel-matchday-hero__view-event {
	font-size: 0.78rem;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: 8px;
	white-space: nowrap;
}

/* Matchday Hub Hero versus line */
.iexel-matchday-hero__versus {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin: 12px 0 18px;
}

.iexel-matchday-hero__versus-team {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.iexel-matchday-hero__versus-name {
	color: var(--iexel-white, #fff);
	font-size: clamp(1.15rem, 2.2vw, 1.55rem);
	font-weight: 850;
	line-height: 1.2;
}

.iexel-matchday-hero__versus-kit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.iexel-matchday-hero .iexel-kit-shirt {
	width: clamp(32px, 4.5vw, 42px);
	height: clamp(32px, 4.5vw, 42px);
	filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.35));
}

.iexel-matchday-hero__versus-sep {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 10px;
	color: var(--iexel-gold-bright, var(--iexel-gold, #cba135));
	border: 1px solid rgba(203, 161, 53, 0.4);
	border-radius: 999px;
	background: rgba(203, 161, 53, 0.12);
	font-size: 0.74rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

@media (max-width: 600px) {
	.iexel-matchday-hero__versus {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 6px;
		margin: 12px 0 18px;
		text-align: center;
		width: 100%;
	}
	.iexel-matchday-hero__versus-team {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 4px;
		width: 100%;
	}
	.iexel-matchday-hero__versus-name {
		font-size: clamp(1.15rem, 4.2vw, 1.45rem);
		text-align: center;
	}
	.iexel-matchday-hero__versus-sep {
		margin: 2px 0;
	}
}

/* Match Event Form Match Kits Section */
.iexel-team-match-kits {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.iexel-match-kits {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: linear-gradient(180deg, #091c38 0%, #07152b 100%);
	border: 1px solid rgba(203, 161, 53, 0.28);
	border-top: 3px solid var(--iexel-gold, #cba135);
	border-radius: 14px;
	padding: 16px 18px;
	box-shadow: 0 8px 24px rgba(2, 6, 23, 0.35);
}

.iexel-match-kits__header {
	display: flex;
	align-items: center;
	gap: 12px;
}

.iexel-match-kits__header-icon {
	width: 36px;
	height: 36px;
	border-radius: 8px;
	background: rgba(203, 161, 53, 0.12);
	border: 1px solid rgba(203, 161, 53, 0.28);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.iexel-match-kits__title {
	margin: 0;
	color: #f8fafc;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.iexel-match-kits__desc {
	margin: 2px 0 0;
	color: #94a3b8;
	font-size: 0.8rem;
	line-height: 1.35;
}

.iexel-match-kits__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (max-width: 768px) {
	.iexel-match-kits__grid {
		grid-template-columns: 1fr;
	}
}

/* Closed-state Kit Row */
.iexel-kit-picker {
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(148, 163, 184, 0.16);
	border-radius: 12px;
	padding: 12px 14px;
	transition: border-color 0.15s ease;
}

.iexel-kit-picker__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.iexel-kit-picker__label {
	color: #f8fafc;
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.01em;
}

.iexel-kit-picker__hint {
	color: #94a3b8;
	font-size: 0.76rem;
}

.iexel-kit-picker__control-row {
	display: flex;
	align-items: center;
	gap: 12px;
}

/* Shirt Trigger with Corner Pencil Badge */
.iexel-kit-shirt-trigger {
	position: relative;
	width: 54px;
	height: 54px;
	min-width: 54px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(148, 163, 184, 0.22);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.iexel-kit-shirt-trigger:hover {
	border-color: var(--iexel-gold, #cba135);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(2, 6, 23, 0.4);
}

.iexel-kit-shirt-trigger:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-kit-shirt-trigger__shirt {
	display: flex;
	align-items: center;
	justify-content: center;
}

.iexel-kit-shirt-trigger__badge {
	position: absolute;
	right: -4px;
	bottom: -4px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #071731;
	border: 1.5px solid var(--iexel-gold, #cba135);
	color: var(--iexel-gold, #cba135);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
}

/* Recessed Status Pill */
.iexel-kit-status-pill {
	flex: 1;
	min-width: 0;
	height: 46px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(148, 163, 184, 0.16);
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 14px;
	color: #94a3b8;
	font-size: 0.86rem;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.iexel-kit-status-pill:hover {
	border-color: rgba(203, 161, 53, 0.45);
	background: rgba(255, 255, 255, 0.05);
}

.iexel-kit-status-pill:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-kit-status-pill.is-set {
	color: #f8fafc;
	font-weight: 600;
}

.iexel-kit-status-pill__dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--dot-colour);
	border: 1px solid rgba(255, 255, 255, 0.35);
	flex-shrink: 0;
}

.iexel-kit-status-pill__label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Match Kits Tip Callout */
.iexel-match-kits__tip {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 14px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid rgba(148, 163, 184, 0.12);
	color: #94a3b8;
	font-size: 0.78rem;
	line-height: 1.4;
}

.iexel-match-kits__tip-icon {
	color: var(--iexel-gold, #cba135);
	flex-shrink: 0;
	margin-top: 1px;
	display: flex;
}

.iexel-match-kits__tip-title {
	color: #f8fafc;
	margin-right: 4px;
}

/* Modal Dialog Backdrop & Container */
.iexel-kit-dialog-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(2, 6, 23, 0.78);
	backdrop-filter: blur(4px);
	z-index: 1200;
}

.iexel-kit-dialog {
	position: fixed;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 14px;
	z-index: 1201;
}

.iexel-kit-dialog[hidden],
.iexel-kit-dialog-backdrop[hidden] {
	display: none;
}

/* Modal Dialog Card */
.iexel-kit-dialog__card {
	width: min(420px, 100%);
	max-height: min(92vh, 640px);
	overflow-y: auto;
	background: linear-gradient(180deg, #0a1b36 0%, #071428 100%);
	border: 1px solid rgba(203, 161, 53, 0.35);
	border-top: 3px solid var(--iexel-gold, #cba135);
	border-radius: 16px;
	box-shadow: 0 24px 50px rgba(2, 6, 23, 0.65);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: #f8fafc;
}

.iexel-kit-dialog__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.iexel-kit-dialog__title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	color: #f8fafc;
}

.iexel-kit-dialog__close {
	width: 36px;
	height: 36px;
	min-width: 36px;
	border-radius: 8px;
	border: 1px solid rgba(148, 163, 184, 0.2);
	background: rgba(255, 255, 255, 0.04);
	color: #f8fafc;
	font-size: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.iexel-kit-dialog__close:hover,
.iexel-kit-dialog__close:focus-visible {
	border-color: var(--iexel-gold, #cba135);
	background: rgba(203, 161, 53, 0.16);
	outline: none;
}

/* Modal Hero Preview */
.iexel-kit-dialog__hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 6px 0 10px;
}

.iexel-kit-dialog__hero-shirt .iexel-kit-shirt {
	width: 56px;
	height: 56px;
	filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.35));
}

.iexel-kit-dialog__hero-name {
	font-size: 0.95rem;
	font-weight: 700;
	color: #f8fafc;
	letter-spacing: 0.02em;
}

/* Modal Tabs */
.iexel-kit-dialog__tabs {
	display: flex;
	background: rgba(2, 6, 23, 0.5);
	border: 1px solid rgba(148, 163, 184, 0.18);
	border-radius: 10px;
	padding: 3px;
	gap: 4px;
}

.iexel-kit-dialog__tab {
	flex: 1;
	min-height: 36px;
	border: none;
	border-radius: 7px;
	background: none;
	color: #94a3b8;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.iexel-kit-dialog__tab:hover {
	color: #f8fafc;
}

.iexel-kit-dialog__tab.is-active {
	background: rgba(203, 161, 53, 0.2);
	color: var(--iexel-gold, #cba135);
	font-weight: 700;
}

/* Presets Panel Swatches */
.iexel-kit-dialog__swatches {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	padding: 4px 0;
}

.iexel-kit-swatch {
	position: relative;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: none;
	padding: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.12s ease, box-shadow 0.12s ease;
	outline: none;
	flex-shrink: 0;
}

.iexel-kit-swatch:hover {
	transform: scale(1.15);
	z-index: 2;
}

.iexel-kit-swatch:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 3px;
	z-index: 4;
}

.iexel-kit-swatch.is-selected {
	box-shadow: 0 0 0 2px #0a1b36, 0 0 0 4.5px var(--iexel-gold, #cba135);
	transform: scale(1.12);
	border-color: transparent;
	z-index: 3;
}

.iexel-kit-swatch__fill {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background-color: var(--swatch-colour);
}

.iexel-kit-swatch.is-none {
	background: #ffffff;
	color: #dc2626;
	border: 1px solid rgba(220, 38, 38, 0.4);
}

.iexel-kit-swatch.is-none:hover {
	border-color: #dc2626;
}

.iexel-kit-swatch.is-none.is-selected {
	box-shadow: 0 0 0 2px #0a1b36, 0 0 0 4.5px var(--iexel-gold, #cba135);
}

/* Custom Colour Panel */
.iexel-kit-dialog__panel[hidden] {
	display: none;
}

.iexel-kit-dialog__custom-header {
	color: #94a3b8;
	font-size: 0.8rem;
	font-weight: 600;
	margin-bottom: 8px;
	text-align: center;
}

.iexel-kit-dialog__custom-control {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
	padding: 4px 0;
}

.iexel-kit-dialog__field-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.iexel-kit-dialog__field {
	width: 100%;
	height: 128px;
	border-radius: 10px;
	position: relative;
	cursor: crosshair;
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	background:
		linear-gradient(to top, #ffffff 0%, transparent 100%),
		linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.iexel-kit-dialog__field:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-kit-dialog__field-thumb {
	position: absolute;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2.5px solid #ffffff;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.65), inset 0 0 2px rgba(0, 0, 0, 0.4);
	transform: translate(-50%, -50%);
	pointer-events: none;
	background-color: var(--thumb-colour, #2563EB);
	left: 61.4%;
	top: 17%;
}

.iexel-kit-dialog__field-hint {
	font-size: 0.75rem;
	color: #94a3b8;
	text-align: center;
	margin-top: 5px;
	font-weight: 500;
}

.iexel-kit-dialog__tone-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 2px;
}

.iexel-kit-dialog__tone-labels {
	display: flex;
	justify-content: space-between;
	font-size: 0.7rem;
	color: #94a3b8;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 0 2px;
}

.iexel-kit-dialog__tone-track-wrap {
	position: relative;
	width: 100%;
	height: 28px;
	display: flex;
	align-items: center;
}

.iexel-kit-dialog__tone-slider {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 14px;
	border-radius: 7px;
	outline: none;
	cursor: pointer;
	background: var(--tone-gradient, linear-gradient(to right, #000000 0%, #2563EB 50%, #ffffff 100%));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
	touch-action: none;
	margin: 0;
}

.iexel-kit-dialog__tone-slider:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

.iexel-kit-dialog__tone-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #ffffff;
	border: 2.5px solid #0f172a;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
	cursor: pointer;
}

.iexel-kit-dialog__tone-slider::-moz-range-thumb {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #ffffff;
	border: 2.5px solid #0f172a;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
	cursor: pointer;
}

.iexel-kit-dialog__custom-preview {
	display: flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(148, 163, 184, 0.2);
	border-radius: 8px;
	padding: 6px 14px;
}

.iexel-kit-dialog__custom-dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.4);
}

.iexel-kit-dialog__custom-hex {
	font-family: monospace;
	font-size: 0.95rem;
	font-weight: 700;
	color: #f8fafc;
}

/* Modal Actions Footer */
.iexel-kit-dialog__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(148, 163, 184, 0.15);
}

.iexel-kit-dialog__btn-clear {
	background: none;
	border: 1px solid rgba(220, 38, 38, 0.35);
	color: #f87171;
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 0.82rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.iexel-kit-dialog__btn-clear:hover,
.iexel-kit-dialog__btn-clear:focus-visible {
	background: rgba(220, 38, 38, 0.12);
	border-color: #f87171;
	outline: none;
}

.iexel-kit-dialog__actions-right {
	display: flex;
	align-items: center;
	gap: 8px;
}

.iexel-kit-dialog__btn-cancel {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(148, 163, 184, 0.2);
	color: #94a3b8;
	border-radius: 8px;
	padding: 8px 14px;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.iexel-kit-dialog__btn-cancel:hover,
.iexel-kit-dialog__btn-cancel:focus-visible {
	color: #f8fafc;
	border-color: rgba(148, 163, 184, 0.4);
	outline: none;
}

.iexel-kit-dialog__btn-apply {
	background: var(--iexel-gold, #cba135);
	border: 1px solid var(--iexel-gold, #cba135);
	color: #071d49;
	border-radius: 8px;
	padding: 8px 16px;
	font-size: 0.82rem;
	font-weight: 700;
	cursor: pointer;
	transition: filter 0.15s ease;
}

.iexel-kit-dialog__btn-apply:hover,
.iexel-kit-dialog__btn-apply:focus-visible {
	filter: brightness(1.1);
	outline: none;
}

/* Ultra-narrow 320px responsive refinements */
@media (max-width: 380px) {
	.iexel-match-kits {
		padding: 12px 10px;
		gap: 10px;
	}

	.iexel-kit-picker {
		padding: 10px;
	}

	.iexel-kit-shirt-trigger {
		width: 48px;
		height: 48px;
		min-width: 48px;
	}

	.iexel-kit-status-pill {
		height: 44px;
		padding: 0 10px;
		font-size: 0.82rem;
	}

	.iexel-kit-dialog__card {
		padding: 14px 12px;
		gap: 12px;
	}

	.iexel-kit-swatch {
		width: 32px;
		height: 32px;
	}

	.iexel-kit-dialog__swatches {
		gap: 8px;
	}

	.iexel-kit-dialog__btn-clear {
		padding: 7px 8px;
		font-size: 0.78rem;
	}

	.iexel-kit-dialog__btn-cancel {
		padding: 7px 10px;
		font-size: 0.78rem;
	}

	.iexel-kit-dialog__btn-apply {
		padding: 7px 12px;
		font-size: 0.78rem;
	}
}

/* ==========================================================================
   Welfare Workspace — Mobile Form Control Containment & Premium Polish
   Targeted styling for Welfare Concern creation, management & directory filters.
   Preserves native select & datetime-local semantics while enforcing full
   containment and premium Club OS navy/gold visual design across breakpoints
   (320px, 390px, 600px, and desktop).
   ========================================================================== */

.is-welfare-concern-form,
.is-welfare-concern-manage,
.is-welfare-concern-updates,
.is-welfare-filter-form,
.is-welfare-filter-section {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.is-welfare-concern-form .iexel-experience-section,
.is-welfare-concern-manage,
.is-welfare-concern-updates,
.is-welfare-filter-section {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
}

.is-welfare-concern-form .iexel-experience-form-grid,
.is-welfare-concern-form .iexel-experience-field,
.is-welfare-concern-manage .iexel-experience-workflow-grid,
.is-welfare-concern-manage .iexel-experience-field,
.is-welfare-concern-updates .iexel-experience-field,
.is-welfare-filter-form .iexel-experience-form-grid,
.is-welfare-filter-form .iexel-experience-field {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	width: 100%;
}

/* Premium Welfare Native Select Controls */
.is-welfare-concern-form select,
.is-welfare-concern-manage select,
.is-welfare-filter-form select,
.is-welfare-filter-section select {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 44px;
	box-sizing: border-box;
	padding: 10px 38px 10px 14px;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--iexel-midnight, #071d49);
	background-color: #ffffff;
	background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20fill%3D%22%23071d49%22%20d%3D%22M1.41%200L6%204.58L10.59%200L12%201.41l-6%206-6-6z%22%2F%3E%3C%2Fsvg%3E');
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 11px 7px;
	border: 1.5px solid #cbd5e1;
	border-radius: 10px;
	appearance: none;
	-webkit-appearance: none;
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.is-welfare-concern-form select:hover,
.is-welfare-concern-manage select:hover,
.is-welfare-filter-form select:hover,
.is-welfare-filter-section select:hover {
	border-color: var(--iexel-midnight, #071d49);
}

.is-welfare-concern-form select:focus,
.is-welfare-concern-form select:focus-visible,
.is-welfare-concern-manage select:focus,
.is-welfare-concern-manage select:focus-visible,
.is-welfare-filter-form select:focus,
.is-welfare-filter-form select:focus-visible,
.is-welfare-filter-section select:focus,
.is-welfare-filter-section select:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.22);
}

.is-welfare-concern-form select:disabled,
.is-welfare-concern-manage select:disabled,
.is-welfare-filter-form select:disabled,
.is-welfare-filter-section select:disabled {
	background-color: #f8fafc;
	color: #94a3b8;
	cursor: not-allowed;
	border-color: #e2e8f0;
	background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20fill%3D%22%2394a3b8%22%20d%3D%22M1.41%200L6%204.58L10.59%200L12%201.41l-6%206-6-6z%22%2F%3E%3C%2Fsvg%3E');
}

.is-welfare-concern-form select option,
.is-welfare-concern-manage select option,
.is-welfare-filter-form select option,
.is-welfare-filter-section select option {
	color: #071d49;
	background-color: #ffffff;
	font-weight: 500;
	padding: 6px 8px;
}

/* Welfare Occurred Date/Time input containment & polish */
.is-welfare-concern-form input[type="datetime-local"] {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 44px;
	box-sizing: border-box;
	padding: 10px 12px;
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--iexel-midnight, #071d49);
	background-color: #ffffff;
	border: 1.5px solid #cbd5e1;
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.is-welfare-concern-form input[type="datetime-local"]:hover {
	border-color: var(--iexel-midnight, #071d49);
}

.is-welfare-concern-form input[type="datetime-local"]:focus,
.is-welfare-concern-form input[type="datetime-local"]:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.22);
}

/* Welfare Text & Textarea fields polish */
.is-welfare-concern-form input[type="text"],
.is-welfare-concern-form textarea,
.is-welfare-filter-form input[type="search"],
.is-welfare-filter-section input[type="search"],
.is-welfare-concern-updates textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: 10px 12px;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--iexel-midnight, #071d49);
	background-color: #ffffff;
	border: 1.5px solid #cbd5e1;
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.is-welfare-concern-form input[type="text"]:hover,
.is-welfare-concern-form textarea:hover,
.is-welfare-filter-form input[type="search"]:hover,
.is-welfare-filter-section input[type="search"]:hover,
.is-welfare-concern-updates textarea:hover {
	border-color: var(--iexel-midnight, #071d49);
}

.is-welfare-concern-form input[type="text"]:focus,
.is-welfare-concern-form input[type="text"]:focus-visible,
.is-welfare-concern-form textarea:focus,
.is-welfare-concern-form textarea:focus-visible,
.is-welfare-filter-form input[type="search"]:focus,
.is-welfare-filter-form input[type="search"]:focus-visible,
.is-welfare-filter-section input[type="search"]:focus,
.is-welfare-filter-section input[type="search"]:focus-visible,
.is-welfare-concern-updates textarea:focus,
.is-welfare-concern-updates textarea:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.22);
}

/* Error state alignment */
.is-welfare-concern-form .iexel-experience-field.has-error select,
.is-welfare-concern-form .iexel-experience-field.has-error input,
.is-welfare-concern-form .iexel-experience-field.has-error textarea,
.is-welfare-concern-form .iexel-experience-field.has-error .iexel-searchable-person-trigger,
.is-welfare-concern-form .iexel-searchable-person-trigger[aria-invalid="true"] {
	border-color: #b42318;
}

/* Welfare Searchable Person Picker Controls */
.is-welfare-concern-form div.iexel-experience-field {
	display: grid;
	gap: 7px;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	width: 100%;
}

.is-welfare-concern-form .iexel-searchable-person-picker {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.is-welfare-concern-form .iexel-searchable-person-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 44px;
	box-sizing: border-box;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1.5px solid #cbd5e1;
	background: #ffffff;
	color: var(--iexel-midnight, #071d49);
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.is-welfare-concern-form .iexel-searchable-person-trigger:hover {
	border-color: var(--iexel-midnight, #071d49);
}

.is-welfare-concern-form .iexel-searchable-person-trigger:focus,
.is-welfare-concern-form .iexel-searchable-person-trigger:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
	border-color: var(--iexel-gold, #cba135);
	box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.22);
}

.is-welfare-concern-form .iexel-searchable-person-trigger-text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
	font-weight: 600;
}

.is-welfare-concern-form .iexel-searchable-person-trigger-icon {
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	margin-left: 8px;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.is-welfare-concern-form .iexel-searchable-person-trigger[aria-expanded="true"] .iexel-searchable-person-trigger-icon {
	transform: rotate(180deg);
}

.is-welfare-concern-form .iexel-searchable-person-panel {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 8px;
	border: 1.5px solid #cbd5e1;
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 4px 16px rgba(7, 29, 73, 0.10);
}

.is-welfare-concern-form .iexel-searchable-person-search-row {
	width: 100%;
	margin-bottom: 6px;
}

.is-welfare-concern-form .iexel-searchable-person-search {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	min-height: 38px;
	padding: 6px 12px;
	border: 1.5px solid #cbd5e1;
	border-radius: 8px;
	font-size: 0.88rem;
	background: #f8fafc;
	color: var(--iexel-midnight, #071d49);
}

.is-welfare-concern-form .iexel-searchable-person-search:focus {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 1px;
	border-color: var(--iexel-gold, #cba135);
	background: #ffffff;
}

.is-welfare-concern-form .iexel-searchable-person-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 200px;
	overflow-y: auto;
	overflow-x: hidden;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #ffffff;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option {
	border-bottom: 1px solid #f1f5f9;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option:last-child {
	border-bottom: none;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 8px 10px;
	border: none;
	background: transparent;
	text-align: left;
	cursor: pointer;
	font-size: 0.85rem;
	color: var(--iexel-midnight, #071d49);
	box-sizing: border-box;
	min-height: 38px;
	transition: background 0.1s ease;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-btn:hover,
.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-btn:focus-visible {
	background: #f1f5f9;
	outline: none;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option.is-selected .iexel-mobile-person-picker-option-btn {
	background: #eff6ff;
	font-weight: 700;
	color: #1e40af;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
	flex: 1 1 auto;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-id {
	font-size: 0.78rem;
	color: #64748b;
	margin-left: 6px;
	flex-shrink: 0;
}

.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option.is-selected .iexel-mobile-person-picker-option-id {
	color: #3b82f6;
}

/* Responsive grid containment (<= 640px ensures tablet/large mobile collapse) */
@media (max-width: 640px) {
	.is-welfare-concern-form .iexel-experience-form-grid,
	.is-welfare-filter-form .iexel-experience-form-grid,
	.is-welfare-filter-section .iexel-experience-form-grid,
	.is-welfare-concern-manage .iexel-experience-workflow-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 390px (standard mobile) touch target & spacing comfort */
@media (max-width: 420px) {
	.is-welfare-concern-form .iexel-experience-section,
	.is-welfare-concern-manage,
	.is-welfare-concern-updates,
	.is-welfare-filter-section {
		padding: 14px 12px;
	}

	.is-welfare-concern-form select,
	.is-welfare-concern-manage select,
	.is-welfare-filter-form select,
	.is-welfare-filter-section select {
		padding: 10px 34px 10px 12px;
		background-position: right 12px center;
	}
}

/* 320px ultra-narrow mobile containment */
@media (max-width: 360px) {
	.is-welfare-concern-form .iexel-experience-section,
	.is-welfare-concern-manage,
	.is-welfare-concern-updates,
	.is-welfare-filter-section {
		padding: 12px 10px;
	}

	.is-welfare-concern-form select,
	.is-welfare-concern-manage select,
	.is-welfare-filter-form select,
	.is-welfare-filter-section select {
		font-size: 0.84rem;
		padding: 9px 30px 9px 10px;
		background-position: right 10px center;
		background-size: 10px 6px;
	}

	.is-welfare-concern-form .iexel-searchable-person-trigger {
		font-size: 0.84rem;
		padding: 9px 10px;
	}

	.is-welfare-concern-form .iexel-searchable-person-search {
		font-size: 0.82rem;
		padding: 6px 8px;
	}

	.is-welfare-concern-form .iexel-searchable-person-list .iexel-mobile-person-picker-option-btn {
		font-size: 0.82rem;
		padding: 6px 8px;
	}

	.is-welfare-concern-form input[type="datetime-local"] {
		font-size: 0.8rem;
		padding: 8px 8px;
	}

	.is-welfare-concern-form input[type="text"],
	.is-welfare-concern-form textarea,
	.is-welfare-filter-form input[type="search"],
	.is-welfare-filter-section input[type="search"],
	.is-welfare-concern-updates textarea {
		font-size: 0.84rem;
		padding: 8px 10px;
	}
}

/* Welfare Overview: Emergency Contacts Progressive Disclosure */
.iexel-experience-disclosure-controls {
	margin-top: 14px;
	display: flex;
	gap: 10px;
}

.iexel-experience-disclosure-controls .iexel-experience-button.is-text {
	background: transparent;
	border: 1px solid #dfe3e9;
	color: var(--iexel-midnight, #0b1528);
	cursor: pointer;
	border-radius: 8px;
	font-weight: 700;
	padding: 8px 16px;
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.iexel-experience-disclosure-controls .iexel-experience-button.is-text:hover {
	background: #f0f2f5;
}

.iexel-experience-disclosure-controls .iexel-experience-button.is-text:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

[data-emergency-contacts-disclosure] [data-progressive-item][hidden] {
	display: none !important;
}

.iexel-experience-disclosure-controls [hidden] {
	display: none !important;
}

/* Welfare Overview: Interactive Missing Information Metrics */
a.iexel-experience-metric.is-interactive {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	cursor: pointer;
	border: 1px solid transparent;
	transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

a.iexel-experience-metric.is-interactive:hover {
	background: #edf1f7;
	border-color: #cbd5e1;
}

a.iexel-experience-metric.is-interactive:focus-visible {
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px #2271b1;
	outline: 0;
}

.iexel-experience-metric-action {
	font-size: 11px;
	font-weight: 800;
	color: var(--iexel-midnight, #0b1528);
	margin-top: 8px;
	display: inline-flex;
	align-items: center;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* Welfare People Directory: Active Filter Banner */
.iexel-experience-filter-banner {
	background: #f0f4f9;
	border: 1px solid #d0d7de;
	border-left: 4px solid var(--iexel-gold, #cba135);
	border-radius: 8px;
	padding: 10px 14px;
	margin-bottom: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.iexel-experience-filter-banner span {
	font-size: 13px;
	color: var(--iexel-midnight, #0b1528);
}

.iexel-experience-filter-banner a {
	font-size: 12px;
	font-weight: 700;
	color: #0b1528;
	text-decoration: none;
	padding: 6px 12px;
	border-radius: 6px;
	border: 1px solid #d0d7de;
	background: #fff;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	min-height: 36px;
}

.iexel-experience-filter-banner a:hover {
	background: #f6f8fa;
	border-color: #bec8d2;
}

.iexel-experience-filter-banner a:focus-visible {
	outline: 2px solid var(--iexel-gold, #cba135);
	outline-offset: 2px;
}

@media (max-width: 520px) {
	.iexel-experience-filter-banner {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.iexel-experience-filter-banner a {
		min-height: 44px;
		width: 100%;
		justify-content: center;
	}

	.iexel-experience-disclosure-controls .iexel-experience-button.is-text {
		width: 100%;
		min-height: 44px;
		justify-content: center;
	}
}

/* Welfare Overview: Concern Summary vertical baseline alignment */
.iexel-experience-dashboard--welfare .is-concern-summary .iexel-experience-metrics {
	align-items: stretch;
}

.iexel-experience-dashboard--welfare .is-concern-summary .iexel-experience-metric {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.iexel-experience-dashboard--welfare .is-concern-summary .iexel-experience-metric span {
	display: block;
	min-height: 2.7em;
	line-height: 1.35;
	flex: 1 0 auto;
}

.iexel-experience-dashboard--welfare .is-concern-summary .iexel-experience-metric strong {
	margin-top: auto;
	line-height: 1.15;
}

/* Welfare Overview: Outstanding Work label/count containment */
.iexel-experience-dashboard--welfare .is-outstanding-work .iexel-experience-item h3 {
	overflow-wrap: break-word;
	word-break: normal;
}

/* ==========================================================================
   Club OS Canonical Auto-Grow Textarea Interaction Contract
   ========================================================================== */

textarea[data-iexel-autogrow],
textarea.iexel-autogrow {
	resize: none !important;
	overflow-y: hidden;
	min-height: var(--iexel-autogrow-min, 72px);
	max-height: var(--iexel-autogrow-max, 280px);
	box-sizing: border-box;
	transition: height 0.08s ease-out;
}

textarea[data-iexel-autogrow="draft"],
textarea[data-iexel-autogrow-variant="draft"],
textarea.iexel-autogrow--draft {
	min-height: var(--iexel-autogrow-draft-min, 200px);
	max-height: var(--iexel-autogrow-draft-max, 560px);
}

textarea[data-iexel-autogrow].is-overflowing,
textarea.iexel-autogrow.is-overflowing {
	overflow-y: auto !important;
}

.iexel-ai-assistant-widget textarea {
	resize: none !important;
}

/* ==========================================================================
   Communications Hero Primary CTA (Secretary & Committee)
   ========================================================================== */

body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary,
body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary:visited {
	background: var(--iexel-gold, #cba135);
	border: 1.5px solid var(--iexel-gold-bright, #f2b31b);
	color: var(--iexel-midnight, #06142f);
	font-weight: 800;
	font-size: 0.9375rem;
	padding: 10px 22px;
	border-radius: var(--iexel-radius-small, 10px);
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	box-sizing: border-box;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary:hover,
body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary:active {
	background: var(--iexel-gold-bright, #f2b31b);
	border-color: #ffffff;
	color: var(--iexel-midnight, #06142f);
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(203, 161, 53, 0.4);
}

body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(203, 161, 53, 0.5);
}

@media (max-width: 520px) {
	body.iexel-portal .iexel-experience-shell .iexel-committee-communications-hero > .iexel-experience-button.is-primary {
		width: 100%;
		justify-content: center;
		min-height: 48px;
		font-size: 1rem;
	}
}

/* ==========================================================================
   Secretary Person Profile Details Mobile Containment
   ========================================================================== */

.iexel-person-profile-details {
	display: grid;
	grid-template-columns: minmax(110px, 140px) minmax(0, 1fr);
	row-gap: 8px;
	column-gap: 12px;
	margin: 0;
	font-size: 0.9rem;
	min-width: 0;
	max-width: 100%;
}

.iexel-person-profile-details dt {
	font-weight: 600;
	color: #475569;
	min-width: 0;
}

.iexel-person-profile-details dd {
	margin: 0;
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.iexel-secretary-person-profile-grid {
	min-width: 0;
	max-width: 100%;
}

@media (max-width: 480px) {
	.iexel-person-profile-details {
		grid-template-columns: minmax(95px, 120px) minmax(0, 1fr);
		column-gap: 10px;
	}
}

/* Staff Compliance Context Return Anchor Positioning & In-Form Notice */
.iexel-experience-workflow,
#staff-compliance-form,
[id^="compliance-credential-"] {
	scroll-margin-top: 80px;
}

.iexel-experience-workflow .iexel-experience-notice {
	background: #ecfdf5;
	border: 1px solid #10b981;
	border-radius: 8px;
	color: #065f46;
	margin-bottom: 20px;
	padding: 12px 16px;
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-experience-workflow .iexel-experience-notice.is-error {
	background: #fef2f2;
	border-color: #ef4444;
	color: #991b1b;
}

.iexel-experience-workflow .iexel-experience-notice.is-success {
	background: #ecfdf5;
	border-color: #10b981;
	color: #065f46;
}

/* ==========================================================
   TREASURER DASHBOARD DESKTOP FINANCE OVERVIEW CONTAINMENT
========================================================== */

@media (min-width: 901px) {
	.iexel-experience-dashboard--treasurer .iexel-experience-grid > .is-finance-overview {
		grid-column: 1 / -1;
	}

	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metrics {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 901px) and (max-width: 1100px) {
	.iexel-experience-dashboard--treasurer .is-finance-overview .iexel-experience-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ==========================================================
   TREASURER DASHBOARD PRIORITY ALERTS MOBILE CONTAINMENT
========================================================== */

.iexel-experience-dashboard--treasurer .iexel-experience-priority {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-section,
.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-items {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-alert {
	min-width: 0;
	max-width: 100%;
	width: 100%;
	box-sizing: border-box;
}

.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-alert.is-critical {
	border-left-color: #b42318;
}

.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-alert > div {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

@media (max-width: 600px) {
	.iexel-experience-dashboard--treasurer .iexel-experience-priority {
		padding: 16px;
	}

	.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-alert {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		padding: 13px;
		gap: 10px;
	}

	.iexel-experience-dashboard--treasurer .iexel-experience-priority .iexel-experience-alert > a {
		white-space: normal;
		word-break: normal;
		overflow-wrap: break-word;
		max-width: 100%;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		line-height: 1.35;
	}
}

/* ==========================================================================
   Fundraising Domain Foundation & Appeals (F1 MVP)
   ========================================================================== */

.iexel-fundraising-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
	margin-top: 24px;
}

.iexel-fundraising-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-radius: 12px;
	padding: 24px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.iexel-fundraising-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.iexel-fundraising-thermometer {
	margin: 24px 0 28px;
	padding: 20px;
	background: #f8fafc;
	border-radius: 10px;
	border: 1px solid #e2e8f0;
}

.iexel-tier-selector {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-bottom: 12px;
}

.iexel-tier-button {
	padding: 10px;
	font-weight: 700;
	border: 1px solid #cbd5e1;
	background: #f8fafc;
	border-radius: 6px;
	cursor: pointer;
	color: #0f172a;
	transition: all 0.2s ease;
}

.iexel-tier-button:hover,
.iexel-tier-button:focus {
	border-color: #d97706;
	background: #fef3c7;
	color: #92400e;
}

.iexel-fundraising-appeal-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 32px;
	align-items: start;
}

@media (max-width: 768px) {
	.iexel-fundraising-appeal-layout {
		grid-template-columns: 1fr;
	}
	.iexel-tier-selector {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================
   MEMBER EXPERIENCE DESKTOP NAVIGATION SCROLL / CONTAINMENT
========================================================== */

@media (min-width: 901px) {
	.iexel-experience-nav > div {
		flex-wrap: nowrap;
		overflow-x: auto;
		column-gap: 4px;
		scroll-padding-inline: 12px;
		scrollbar-width: thin;
	}

	.iexel-experience-nav a {
		flex: 0 0 auto;
		padding: 8px 11px;
	}
}

/* ==========================================================
   FUNDRAISING RESPONSIVE GRIDS & MOBILE CONTAINMENT
========================================================== */

.iexel-fundraising-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 24px;
}

.iexel-fundraising-form-grid > div {
	min-width: 0;
}

.iexel-fundraising-detail-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 24px;
	margin-bottom: 28px;
}

.iexel-fundraising-detail-grid > div {
	min-width: 0;
}

/* Spot the Ball & Fundraising Form Responsive Layout */
.iexel-os-card.iexel-fundraising-form-card {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-stb-form-card input[type="text"],
.iexel-stb-form-card input[type="number"],
.iexel-stb-form-card input[type="date"],
.iexel-stb-form-card select,
.iexel-stb-form-card textarea {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
}

.iexel-stb-form-section-title {
	text-align: left;
}

.stb-offer-row {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.stb-offer-row input {
	box-sizing: border-box;
}

@media (max-width: 768px) {
	.iexel-fundraising-detail-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.iexel-fundraising-form-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.iexel-os-card.iexel-fundraising-form-card {
		padding: 20px !important;
	}

	.iexel-stb-form-section-title {
		text-align: center;
	}
}

@media (max-width: 480px) {
	.iexel-os-card.iexel-fundraising-form-card {
		padding: 16px !important;
	}

	.stb-offer-row {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 8px 10px !important;
		padding: 10px !important;
	}

	.stb-offer-row > div:nth-child(1) {
		grid-column: 1;
		display: flex;
		align-items: center;
		gap: 6px;
	}

	.stb-offer-row > div:nth-child(2) {
		grid-column: 2;
		display: flex;
		align-items: center;
		gap: 6px;
	}

	.stb-offer-row .stb-form-offer-qty,
	.stb-offer-row .stb-form-offer-price {
		width: 100% !important;
		min-width: 0 !important;
	}

	.stb-offer-row .stb-form-offer-rate {
		grid-column: 1;
		min-width: 0 !important;
		font-size: 0.8rem;
	}

	.stb-offer-row .stb-form-remove-offer-btn {
		grid-column: 2;
		justify-self: end;
		margin-left: 0 !important;
	}

	#stb_comp_image_select_btn,
	#stb_hero_image_select_btn {
		width: 100%;
		text-align: center;
		justify-content: center;
		white-space: normal;
		box-sizing: border-box;
	}

	.iexel-fundraising-form-card button[type="submit"] {
		width: 100%;
		justify-content: center;
		text-align: center;
		white-space: normal;
	}
}

@media (max-width: 340px) {
	.iexel-os-card.iexel-fundraising-form-card {
		padding: 12px !important;
	}
}

/* Spot the Ball Adjudication & Winner Result Cards */
.iexel-stb-closed-operational-panel,
.iexel-stb-winner-result-card,
.iexel-stb-winner-entry-panel {
	box-sizing: border-box;
	max-width: 100%;
}

.iexel-stb-winner-result-card code {
	word-break: break-all;
}

@media (max-width: 640px) {
	.iexel-stb-winner-result-card {
		padding: 18px !important;
	}

	.iexel-stb-closed-operational-panel {
		padding: 18px !important;
	}
}

@media (max-width: 480px) {
	.iexel-stb-winner-result-card {
		padding: 14px !important;
	}

	.iexel-stb-closed-operational-panel {
		padding: 14px !important;
	}

	.iexel-stb-closed-operational-panel button[type="submit"],
	.iexel-stb-closed-operational-panel form {
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-stb-closed-operational-panel button[type="submit"] {
		justify-content: center;
		text-align: center;
		white-space: normal;
	}

	.iexel-stb-closed-operational-panel div[style*="display: grid"],
	.iexel-stb-winner-result-card div[style*="display: grid"] {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 340px) {
	.iexel-stb-winner-result-card,
	.iexel-stb-closed-operational-panel {
		padding: 10px !important;
	}
}

.iexel-fundraising-single-wrapper {
	width: 100%;
}

.iexel-fundraising-card--featured {
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 640px) {
	.iexel-fundraising-card--featured {
		padding: 20px !important;
	}
}

@media (max-width: 390px) {
	.iexel-fundraising-card--featured {
		padding: 16px !important;
	}
}

/* ============================================================
   F1 Fundraising Mobile Responsiveness & Cards (320px / 390px)
   ============================================================ */

/* 1. Member Appeal Detail Layout */
.iexel-fundraising-appeal-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 32px;
	align-items: start;
	width: 100%;
	box-sizing: border-box;
}

.iexel-tier-selector {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-bottom: 12px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-fundraising-payment-ref {
	word-break: break-all;
	overflow-wrap: anywhere;
}

@media (max-width: 768px) {
	.iexel-fundraising-appeal-layout {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

@media (max-width: 640px) {
	.iexel-fundraising-appeal-layout .iexel-os-card {
		padding: 20px !important;
	}
	.iexel-fundraising-thermometer {
		padding: 16px !important;
	}
}

@media (max-width: 390px) {
	.iexel-fundraising-appeal-layout .iexel-os-card {
		padding: 16px !important;
	}
	.iexel-fundraising-thermometer {
		padding: 12px !important;
	}
	.iexel-tier-selector {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 320px) {
	.iexel-fundraising-appeal-layout .iexel-os-card {
		padding: 12px !important;
	}
	.iexel-fundraising-appeal-layout h1 {
		font-size: 1.5rem !important;
	}
}

/* 2. Operational Responsive Tables vs Mobile Cards (Secretary & Treasurer) */
.iexel-fundraising-orders-desktop,
.iexel-fundraising-treasurer-desktop {
	display: block;
	width: 100%;
}

.iexel-fundraising-orders-mobile,
.iexel-fundraising-treasurer-mobile {
	display: none;
}

@media (max-width: 640px) {
	.iexel-fundraising-orders-desktop,
	.iexel-fundraising-treasurer-desktop {
		display: none !important;
	}

	.iexel-fundraising-orders-mobile,
	.iexel-fundraising-treasurer-mobile {
		display: flex !important;
		flex-direction: column;
		gap: 12px;
		width: 100%;
		box-sizing: border-box;
	}

	.iexel-fundraising-order-card,
	.iexel-treasurer-order-card {
		background: #ffffff;
		border: 1px solid #e2e8f0;
		border-radius: 8px;
		padding: 14px;
		display: flex;
		flex-direction: column;
		gap: 8px;
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.iexel-order-card-header,
	.iexel-treasurer-card-header {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 8px;
		flex-wrap: wrap;
	}

	.iexel-order-card-payer,
	.iexel-treasurer-card-payer {
		font-size: 0.95rem;
		font-weight: 700;
		color: #0f172a;
		word-break: break-word;
	}

	.iexel-order-card-amount,
	.iexel-treasurer-card-amount {
		font-size: 1.05rem;
		font-weight: 800;
		color: #0f172a;
	}

	.iexel-order-card-badges,
	.iexel-treasurer-card-status {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		align-items: center;
	}

	.iexel-order-card-meta,
	.iexel-treasurer-card-meta {
		display: flex;
		flex-direction: column;
		gap: 4px;
		font-size: 0.85rem;
		color: #64748b;
		padding: 8px 0;
		border-top: 1px solid #f1f5f9;
		border-bottom: 1px solid #f1f5f9;
	}

	.iexel-treasurer-meta-item {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 8px;
	}

	.iexel-treasurer-meta-label {
		color: #64748b;
		font-weight: 500;
		font-size: 0.82rem;
		flex-shrink: 0;
	}

	.iexel-treasurer-meta-value {
		color: #1e293b;
		font-weight: 600;
		text-align: right;
		word-break: break-word;
	}

	.iexel-order-card-notes {
		font-size: 0.85rem;
		color: #475569;
		font-style: italic;
		background: #f8fafc;
		padding: 8px 10px;
		border-radius: 6px;
		border-left: 3px solid #cbd5e1;
		word-break: break-word;
	}

	.iexel-order-card-actions,
	.iexel-treasurer-card-actions {
		padding-top: 4px;
	}

	.iexel-treasurer-mobile-action-fields {
		display: flex;
		flex-direction: column;
		gap: 6px;
		width: 100%;
	}
}

@media (max-width: 390px) {
	.iexel-fundraising-order-card,
	.iexel-treasurer-order-card {
		padding: 12px;
	}

	.iexel-experience-dashboard--treasurer .iexel-stats-grid,
	.iexel-stats-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 320px) {
	.iexel-fundraising-order-card,
	.iexel-treasurer-order-card {
		padding: 10px;
	}

	.iexel-treasurer-card-payer,
	.iexel-order-card-payer {
		font-size: 0.9rem;
	}

	.iexel-treasurer-card-amount,
	.iexel-order-card-amount {
		font-size: 0.95rem;
	}
}

/* 3. Member Hub Personalised Contribution Acknowledgement & Responsive Hub Cards */
.iexel-fundraising-single-wrapper {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 24px;
}

.iexel-fundraising-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-radius: 12px;
	padding: 24px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: break-word;
	word-break: break-word;
	color: #1e293b;
}

.iexel-fundraising-card--featured {
	border-radius: 14px;
	padding: 32px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
}

.iexel-fundraising-featured-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	box-sizing: border-box;
	align-items: stretch;
}

.iexel-fundraising-card-badge-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
	flex-wrap: wrap;
	gap: 8px;
}

.iexel-fundraising-card-kind {
	font-size: 0.8rem;
	color: #64748b;
	font-weight: 500;
}

.iexel-fundraising-card-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #0f172a !important;
	margin: 0 0 10px;
	line-height: 1.3;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-card-title a,
.iexel-fundraising-featured-title a {
	color: #0f172a !important;
	text-decoration: none;
}

.iexel-fundraising-featured-title {
	font-size: 1.6rem;
	font-weight: 800;
	color: #0f172a !important;
	margin: 0 0 14px;
	line-height: 1.25;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-story-wrap {
	margin: 0 0 20px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-fundraising-story-excerpt {
	color: #334155 !important;
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-card-description {
	color: #334155 !important;
	font-size: 0.925rem;
	line-height: 1.55;
	margin: 0 0 18px;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-featured-description {
	color: #334155 !important;
	font-size: 1.05rem;
	line-height: 1.65;
	margin: 0 0 24px;
	max-width: 800px;
	overflow-wrap: break-word;
	word-break: break-word;
}


.iexel-fundraising-featured-action {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 24px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.iexel-fundraising-progress {
	margin-bottom: 16px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-fundraising-progress-stats {
	display: flex;
	justify-content: space-between;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 6px;
	flex-wrap: wrap;
	gap: 6px;
}

.iexel-fundraising-progress-stats--featured {
	align-items: baseline;
	font-weight: 700;
	margin-bottom: 8px;
	gap: 8px;
}

.iexel-fundraising-progress-raised {
	color: #0f172a;
}

.iexel-fundraising-progress-raised--featured {
	font-size: 1.4rem;
}

.iexel-fundraising-progress-label {
	font-weight: 400;
	color: #64748b;
	font-size: 0.85rem;
}

.iexel-fundraising-progress-target {
	color: #64748b;
}

.iexel-fundraising-progress-target--featured {
	font-size: 1.1rem;
	color: #d97706;
}

.iexel-fundraising-progress-track {
	width: 100%;
	height: 10px;
	background: #e2e8f0;
	border-radius: 9999px;
	overflow: hidden;
	box-sizing: border-box;
}

.iexel-fundraising-progress-track--featured {
	height: 14px;
}

.iexel-fundraising-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, #d97706, #f59e0b);
	border-radius: 9999px;
}

.iexel-fundraising-featured-cta {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	box-sizing: border-box;
}

.iexel-fundraising-featured-cta .iexel-experience-button {
	display: inline-block;
	text-align: center;
	text-decoration: none;
	padding: 12px 24px;
	font-weight: 700;
	font-size: 1rem;
	border-radius: 8px;
	box-sizing: border-box;
}

.iexel-fundraising-cta {
	display: block;
	text-align: center;
	width: 100%;
	box-sizing: border-box;
	text-decoration: none;
	padding: 10px 16px;
	font-weight: 600;
}

.iexel-fundraising-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 24px;
	margin-top: 24px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-fundraising-grid--single {
	grid-template-columns: 1fr;
}

@media (min-width: 641px) and (max-width: 900px) {
	.iexel-fundraising-grid:not(.iexel-fundraising-grid--single) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 901px) {
	.iexel-fundraising-grid:not(.iexel-fundraising-grid--single) {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	}
	.iexel-fundraising-grid:not(.iexel-fundraising-grid--single):has(> :nth-child(3)) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 769px) {
	.iexel-fundraising-grid--single .iexel-fundraising-grid-card {
		display: grid;
		grid-template-columns: minmax(0, 1.4fr) minmax(280px, 340px);
		gap: 32px;
		align-items: center;
		padding: 28px 32px;
	}

	.iexel-fundraising-grid--single .iexel-fundraising-card-media {
		grid-column: 1 / -1;
		margin-bottom: 12px;
		max-height: 280px;
		overflow: hidden;
		border-radius: 8px;
	}

	.iexel-fundraising-grid--single .iexel-fundraising-card-top {
		min-width: 0;
	}

	.iexel-fundraising-grid--single .iexel-fundraising-card-bottom {
		border-left: 1px solid #e2e8f0;
		padding-left: 32px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-width: 0;
	}
}

.iexel-fundraising-member-support-status {
	margin-bottom: 16px;
	padding: 12px 16px;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 8px;
	font-size: 0.875rem;
	line-height: 1.45;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-member-support-status.is-pending-only {
	background: #fffbeb;
	border-color: #fde68a;
}

.iexel-fundraising-support-ack-heading {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #14532d;
	font-weight: 700;
	font-size: 0.9rem;
	margin-bottom: 2px;
	flex-wrap: wrap;
}

.iexel-fundraising-support-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #22c55e;
	color: #ffffff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	flex-shrink: 0;
}

.iexel-fundraising-support-ack-detail {
	color: #166534;
	font-weight: 500;
	padding-left: 22px;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-pending-note {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #92400e;
	font-size: 0.835rem;
	font-weight: 500;
	flex-wrap: wrap;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-fundraising-pending-clock {
	font-size: 13px;
	line-height: 1;
	flex-shrink: 0;
}

.iexel-fundraising-member-support-status:not(.is-pending-only) .iexel-fundraising-pending-note {
	margin-top: 8px;
	padding-top: 8px;
	padding-left: 22px;
	border-top: 1px dashed #bbf7d0;
}

@media (max-width: 640px) {
	.iexel-fundraising-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.iexel-fundraising-card {
		padding: 18px !important;
	}
	.iexel-fundraising-card--featured {
		padding: 20px !important;
	}
	.iexel-fundraising-featured-action {
		padding: 16px;
		border-radius: 10px;
	}
	.iexel-fundraising-featured-cta {
		justify-content: stretch;
	}
	.iexel-fundraising-featured-cta .iexel-experience-button {
		width: 100%;
		display: block;
		padding: 10px 16px;
	}
}

@media (max-width: 390px) {
	.iexel-fundraising-card {
		padding: 14px !important;
	}
	.iexel-fundraising-card--featured {
		padding: 16px !important;
	}
	.iexel-fundraising-featured-action {
		padding: 14px;
	}
	.iexel-fundraising-featured-title {
		font-size: 1.35rem;
	}
	.iexel-fundraising-progress-raised--featured {
		font-size: 1.2rem;
	}
	.iexel-fundraising-progress-target--featured {
		font-size: 1rem;
	}
	.iexel-fundraising-member-support-status {
		padding: 10px 12px;
		font-size: 0.825rem;
	}
	.iexel-fundraising-support-ack-heading {
		font-size: 0.85rem;
	}
	.iexel-fundraising-support-ack-detail,
	.iexel-fundraising-member-support-status:not(.is-pending-only) .iexel-fundraising-pending-note {
		padding-left: 0;
	}
}

@media (max-width: 320px) {
	.iexel-fundraising-card {
		padding: 12px !important;
	}
	.iexel-fundraising-card--featured {
		padding: 12px !important;
	}
	.iexel-fundraising-featured-action {
		padding: 10px;
	}
	.iexel-fundraising-featured-title {
		font-size: 1.25rem;
	}
	.iexel-fundraising-featured-cta .iexel-experience-button {
		padding: 9px 12px;
		font-size: 0.9rem;
	}
	.iexel-fundraising-member-support-status {
		padding: 8px 10px;
		font-size: 0.8rem;
	}
	.iexel-fundraising-support-ack-heading {
		font-size: 0.82rem;
	}
}

/* 4. Secretary Fundraising Mobile All Campaigns Cards */
.iexel-fundraising-campaigns-desktop {
	display: block;
	width: 100%;
}

.iexel-fundraising-campaigns-mobile {
	display: none;
}

.iexel-campaign-mgmt-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 16px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-campaign-mgmt-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
	flex-wrap: wrap;
	gap: 6px;
}

.iexel-campaign-mgmt-status-badge {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 9999px;
	font-size: 0.725rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.iexel-campaign-mgmt-card-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 12px;
	line-height: 1.35;
	overflow-wrap: break-word;
	word-break: break-word;
}

.iexel-campaign-mgmt-card-title a {
	color: inherit;
	text-decoration: none;
}

.iexel-campaign-mgmt-stats-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 10px;
	background: #f8fafc;
	border-radius: 6px;
	margin-bottom: 12px;
	box-sizing: border-box;
}

.iexel-campaign-mgmt-stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.iexel-campaign-mgmt-stat-label {
	font-size: 0.75rem;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 600;
}

.iexel-campaign-mgmt-stat-val {
	font-size: 0.95rem;
	font-weight: 700;
	color: #0f172a;
}

.iexel-campaign-mgmt-stat-val.is-raised {
	color: #059669;
}

.iexel-campaign-mgmt-progress-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	box-sizing: border-box;
}

.iexel-campaign-mgmt-progress-track {
	flex: 1;
	height: 6px;
	background: #e2e8f0;
	border-radius: 9999px;
	overflow: hidden;
}

.iexel-campaign-mgmt-progress-bar {
	height: 100%;
	background: #d97706;
	border-radius: 9999px;
}

.iexel-campaign-mgmt-progress-pct {
	font-size: 0.8rem;
	font-weight: 700;
	color: #64748b;
	min-width: 32px;
	text-align: right;
}

.iexel-campaign-mgmt-actions {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.iexel-campaign-mgmt-btn {
	flex: 1;
	text-align: center;
	text-decoration: none;
	padding: 8px 12px;
	font-size: 0.85rem;
	font-weight: 600;
	border-radius: 6px;
	box-sizing: border-box;
	min-height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* 5. Campaign Hero Image Presentation */
.iexel-fundraising-card-media {
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 200px;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 16px;
	background: #0f172a;
	box-sizing: border-box;
}

.iexel-fundraising-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.iexel-fundraising-featured-media {
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 280px;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 20px;
	background: #0f172a;
	box-sizing: border-box;
}

.iexel-fundraising-featured-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Keep Spot the Ball promotional artwork fully visible in desktop Hub cards. */
@media (min-width: 641px) {
	.iexel-fundraising-card[data-campaign-type="spot_the_ball"] .iexel-fundraising-card-img,
	.iexel-fundraising-card[data-campaign-type="spot_the_ball"] .iexel-fundraising-featured-img {
		object-fit: contain;
	}
}

.iexel-fundraising-appeal-hero-media {
	width: 100%;
	aspect-ratio: 21 / 9;
	max-height: 380px;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 24px;
	background: #0f172a;
	box-sizing: border-box;
}

.iexel-fundraising-appeal-hero-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.iexel-fundraising-story-heading {
	font-size: 1.25rem;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 12px;
}

.iexel-campaign-image-preview.has-image {
	border-color: #94a3b8;
}

@media (max-width: 640px) {
	.iexel-fundraising-campaigns-desktop {
		display: none !important;
	}
	.iexel-fundraising-campaigns-mobile {
		display: flex !important;
		flex-direction: column;
		gap: 14px;
		width: 100%;
		box-sizing: border-box;
	}
	.iexel-fundraising-appeal-hero-media {
		aspect-ratio: 16 / 9;
		max-height: 240px;
		margin-bottom: 16px;
	}
	.iexel-fundraising-card-media {
		max-height: 180px;
		margin-bottom: 14px;
	}
	.iexel-fundraising-featured-media {
		max-height: 220px;
		margin-bottom: 16px;
	}
}

@media (max-width: 320px) {
	.iexel-campaign-mgmt-card {
		padding: 12px;
	}
	.iexel-campaign-mgmt-stats-grid {
		grid-template-columns: 1fr;
		gap: 6px;
	}
	.iexel-campaign-mgmt-actions {
		flex-direction: column;
	}
	.iexel-campaign-mgmt-btn {
		width: 100%;
	}
	.iexel-fundraising-appeal-hero-media {
		max-height: 180px;
		margin-bottom: 12px;
	}
	.iexel-fundraising-card-media {
		max-height: 150px;
		margin-bottom: 10px;
	}
	.iexel-fundraising-featured-media {
		max-height: 160px;
		margin-bottom: 12px;
	}
}

/* Spot the Ball - F2 Management & Judging */
.iexel-stb-canvas-container {
	position: relative;
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	border: 2px solid #cbd5e1;
	background: #0f172a;
	cursor: crosshair;
	user-select: none;
	touch-action: manipulation;
}

.iexel-stb-canvas-image {
	width: 100%;
	height: auto;
	display: block;
	pointer-events: none;
}

.iexel-stb-marker {
	position: absolute;
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 20;
}

.iexel-stb-marker--judge {
	width: 32px;
	height: 32px;
}

.iexel-stb-marker--sealed {
	width: 36px;
	height: 36px;
}

@media (max-width: 640px) {
	.iexel-stb-canvas-container {
		border-width: 1px;
	}
	.iexel-stb-marker--judge {
		width: 28px;
		height: 28px;
	}
	.iexel-stb-marker--sealed {
		width: 30px;
		height: 30px;
	}
}

@media (max-width: 320px) {
	.iexel-stb-canvas-container {
		border-radius: 6px;
	}
	#stb-confirm-dialog {
		width: 96% !important;
		padding: 16px !important;
	}
}

/* Spot the Ball & Experience Hero Text Contrast */
.iexel-experience-hero .iexel-experience-hero-copy h1,
.iexel-experience-hero h1 {
	color: #ffffff;
}
.iexel-experience-hero .iexel-experience-hero-copy p,
.iexel-experience-hero p {
	color: rgba(255, 255, 255, 0.88);
}

/* Specific People Picker - Portal / Public Support & Containment */
.iexel-specific-people-picker {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	background: #fcfdfe;
	border: 1px solid #c7ced8;
	border-radius: 12px;
	padding: 16px;
	margin-top: 6px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	overflow: hidden;
}

.iexel-specific-people-picker * {
	box-sizing: border-box;
}

.iexel-specific-people-picker__search-wrap {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
}

.iexel-specific-people-picker__search-label {
	font-weight: 700;
	font-size: 13px;
	color: #071d49;
}

.iexel-specific-people-picker__search {
	width: 100%;
	max-width: 100% !important;
	min-height: 40px;
	border: 1px solid #c7ced8;
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 14px;
	background: #ffffff;
	box-sizing: border-box;
}

.iexel-specific-people-picker__search:focus {
	border-color: #071d49;
	box-shadow: 0 0 0 2px rgba(7, 29, 115, 0.15);
	outline: none;
}

.iexel-specific-people-picker__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
	flex-wrap: wrap;
	gap: 6px;
}

.iexel-specific-people-picker__subheading {
	font-weight: 700;
	font-size: 13px;
	color: #071d49;
	display: block;
}

.iexel-specific-people-picker__count {
	font-size: 12px;
	font-weight: 600;
	color: #505a69;
	background: #eef2f7;
	padding: 3px 8px;
	border-radius: 12px;
}

.iexel-specific-people-picker__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-height: 38px;
	padding: 8px;
	background: #ffffff;
	border: 1px dashed #d1d7e0;
	border-radius: 8px;
	align-items: center;
	overflow-wrap: anywhere;
}

.iexel-specific-people-picker__chips:empty::before {
	content: "No people selected";
	color: #8c97a8;
	font-size: 13px;
	font-style: italic;
}

.iexel-person-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #071d49;
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 16px;
	line-height: 1.4;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.iexel-person-chip__remove {
	background: transparent;
	border: none;
	color: #ffffff;
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	line-height: 1;
	padding: 0 2px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0.8;
	flex-shrink: 0;
}

.iexel-person-chip__remove:hover,
.iexel-person-chip__remove:focus {
	opacity: 1;
	background: rgba(255, 255, 255, 0.2);
	outline: none;
}

.iexel-specific-people-picker__list-container {
	max-height: 220px;
	overflow-y: auto;
	border: 1px solid #c7ced8;
	border-radius: 8px;
	background: #ffffff;
	width: 100%;
}

.iexel-specific-people-picker__list {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.iexel-specific-people-picker__item {
	margin: 0;
	border-bottom: 1px solid #edf1f5;
	width: 100%;
}

.iexel-specific-people-picker__item:last-child {
	border-bottom: none;
}

.iexel-specific-people-picker__label {
	display: flex !important;
	align-items: center;
	gap: 10px;
	padding: 8px 12px;
	cursor: pointer;
	margin: 0 !important;
	font-weight: normal !important;
	user-select: none;
	width: 100%;
	box-sizing: border-box;
	overflow-wrap: anywhere;
}

.iexel-specific-people-picker__label:hover {
	background: #f4f7fa;
}

.iexel-specific-people-picker__label input[type="checkbox"],
.iexel-specific-people-picker__label input[type="radio"] {
	margin: 0 !important;
	width: 18px;
	height: 18px;
	cursor: pointer;
	accent-color: #071d49;
	flex-shrink: 0;
}

.iexel-specific-people-picker__person-name {
	font-weight: 600;
	color: #071d49;
	font-size: 14px;
	overflow-wrap: anywhere;
	word-break: break-word;
	min-width: 0;
}

.iexel-specific-people-picker__person-id {
	font-size: 12px;
	color: #697386;
	background: #f0f3f7;
	padding: 2px 6px;
	border-radius: 4px;
	margin-left: auto;
	flex-shrink: 0;
}

@media (max-width: 390px) {
	.iexel-specific-people-picker {
		padding: 10px;
		border-radius: 8px;
	}
	.iexel-specific-people-picker__label {
		padding: 8px 6px;
		gap: 8px;
	}
	.iexel-specific-people-picker__person-name {
		font-size: 13px;
	}
	.iexel-specific-people-picker__person-id {
		font-size: 11px;
		padding: 1px 4px;
	}
}

/* Spot the Ball - Scoped Media Modal Responsive Overlap Fix */
@media (max-width: 640px) {
	.media-modal .iexel-stb-media-modal .media-frame-title,
	.iexel-stb-media-modal .media-frame-title {
		height: 40px !important;
	}
	.media-modal .iexel-stb-media-modal .media-frame-title h1,
	.iexel-stb-media-modal .media-frame-title h1 {
		font-size: 14px !important;
		line-height: 40px !important;
		height: 40px !important;
		padding: 0 44px 0 14px !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		margin: 0 !important;
	}
	.media-modal .iexel-stb-media-modal .media-frame-router,
	.iexel-stb-media-modal .media-frame-router {
		top: 40px !important;
		left: 0 !important;
		right: 0 !important;
		height: 36px !important;
	}
	.media-modal .iexel-stb-media-modal .media-frame-content,
	.iexel-stb-media-modal .media-frame-content {
		top: 76px !important;
	}
}

/* Spot the Ball - Judging Panel Responsive Presentation */
.iexel-stb-judging-mobile-cards {
	display: none;
}

@media (max-width: 640px) {
	.iexel-stb-judging-table-wrap {
		display: none !important;
	}
	.iexel-stb-judging-mobile-cards {
		display: flex !important;
		flex-direction: column;
		gap: 12px;
	}
	.iexel-stb-assign-wrap {
		padding: 12px !important;
	}
	.iexel-stb-assign-submit-btn {
		width: 100% !important;
		text-align: center !important;
		justify-content: center !important;
	}
}

@media (min-width: 641px) {
	.iexel-stb-judging-table-wrap {
		display: block !important;
	}
	.iexel-stb-judging-mobile-cards {
		display: none !important;
	}
}

/* Spot the Ball - Member Experience */
.iexel-stb-member-container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.iexel-stb-member-hero {
	background: #071d49;
	border-radius: 12px;
	padding: 24px;
	color: #ffffff;
	margin-bottom: 20px;
}

.iexel-stb-member-rules {
	border-radius: 12px;
	padding: 20px 24px;
	margin-bottom: 24px;
}

.iexel-stb-member-rules-title {
	font-size: 16px;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 12px;
}

.iexel-stb-member-rules-list {
	margin: 0;
	padding-left: 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #475569;
	font-size: 14px;
	line-height: 1.5;
}

.iexel-stb-member-flow {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.iexel-stb-member-step-wrap {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.iexel-stb-member-step-header {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 18px;
}

.iexel-stb-member-step-number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	min-width: 32px;
	border-radius: 50%;
	background: #0f2744;
	color: #ffffff;
	font-size: 14px;
	font-weight: 800;
}

.iexel-stb-member-step-title {
	font-size: 18px;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 4px;
}

.iexel-stb-member-step-desc {
	font-size: 14px;
	color: #64748b;
	margin: 0;
}

/* Quantity Selection */
.iexel-stb-member-qty-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}

.iexel-stb-member-qty-pill {
	padding: 10px 20px;
	border-radius: 10px;
	border: 2px solid #cbd5e1;
	background: #ffffff;
	color: #1e293b;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: all 0.15s ease-in-out;
}

.iexel-stb-member-qty-pill:hover {
	border-color: #94a3b8;
	background: #f1f5f9;
}

.iexel-stb-member-qty-pill.is-active {
	border-color: #cba135;
	background: #0f2744;
	color: #ffffff;
	box-shadow: 0 0 0 3px rgba(203, 161, 53, 0.25);
}

.iexel-stb-member-pricing-summary {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 14px 18px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	color: #475569;
	font-size: 14px;
}

.iexel-stb-member-pricing-total {
	color: #0f172a;
	font-size: 18px;
}

/* Canvas & Photo Area */
.iexel-stb-member-status-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 18px;
	background: #0f2744;
	border-radius: 10px 10px 0 0;
	color: #ffffff;
}

.iexel-stb-member-status-text {
	font-size: 14px;
	font-weight: 700;
	color: #fce99f;
}

.iexel-stb-member-canvas-wrap {
	position: relative;
	background: #06142f;
	border: 2px solid #0f2744;
	border-radius: 0 0 12px 12px;
	overflow: hidden;
	user-select: none;
	touch-action: pan-y;
	cursor: crosshair;
}

.iexel-stb-member-image {
	display: block;
	width: 100%;
	height: auto;
	max-height: 75vh;
	object-fit: contain;
	user-select: none;
	-webkit-user-drag: none;
}

/* Interactive Pins */
.iexel-stb-member-pin {
	position: absolute;
	width: 30px;
	height: 30px;
	margin: 0 !important;
	transform: translate(-50%, -50%);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: grab;
	z-index: 15;
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: auto;
	transition: transform 0.08s ease;
}

.iexel-stb-member-pin:active,
.iexel-stb-member-pin.is-dragging {
	cursor: grabbing;
	z-index: 50 !important;
}

.iexel-stb-member-pin.is-selected,
.iexel-stb-member-pin.is-active {
	z-index: 25;
}

/* Touch hit target expansion: 44px hit area centered on marker without visual bloat */
.iexel-stb-member-pin::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	pointer-events: auto;
}

/* Cardinal reticle micro-ticks pointing to exact center */
.iexel-stb-member-pin::after {
	content: '';
	position: absolute;
	top: -4px;
	left: -4px;
	right: -4px;
	bottom: -4px;
	border-radius: 50%;
	pointer-events: none;
	background:
		linear-gradient(#38bdf8, #38bdf8) no-repeat top center / 2px 4px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat bottom center / 2px 4px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat left center / 4px 2px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat right center / 4px 2px;
	transition: all 0.15s ease;
}

.iexel-stb-member-pin.is-selected::after,
.iexel-stb-member-pin.is-active::after {
	background:
		linear-gradient(#f59e0b, #f59e0b) no-repeat top center / 2px 4px,
		linear-gradient(#f59e0b, #f59e0b) no-repeat bottom center / 2px 4px,
		linear-gradient(#f59e0b, #f59e0b) no-repeat left center / 4px 2px,
		linear-gradient(#f59e0b, #f59e0b) no-repeat right center / 4px 2px;
}

.iexel-stb-member-pin .iexel-stb-member-pin-inner {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

.iexel-stb-member-pin-reticle {
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 2px dashed rgba(255, 255, 255, 0.85);
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.6);
	pointer-events: none;
}

.iexel-stb-member-pin.is-active .iexel-stb-member-pin-reticle {
	border: 2px solid #fce99f;
	box-shadow: 0 0 10px #cba135, inset 0 0 6px #cba135;
}

.iexel-stb-member-pin-badge {
	position: absolute;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #0f2744;
	color: #ffffff;
	border: 2px solid #ffffff;
	font-size: 11px;
	font-weight: 900;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
	pointer-events: none;
}

.iexel-stb-member-pin.is-active .iexel-stb-member-pin-badge {
	background: #cba135;
	color: #06142f;
	border-color: #ffffff;
	transform: scale(1.15);
}

/* Nudge & Fine-tune Controls */
.iexel-stb-member-controls-panel {
	margin-top: 16px;
	padding: 16px 20px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
}

.iexel-stb-member-nudge-wrap {
	display: flex;
	align-items: center;
	gap: 14px;
}

.iexel-stb-member-nudge-grid {
	display: inline-grid;
	grid-template-columns: repeat(3, 40px);
	grid-template-rows: repeat(2, 36px);
	gap: 4px;
}

.iexel-stb-member-nudge-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	color: #1e293b;
	font-size: 16px;
	cursor: pointer;
	transition: all 0.12s;
}

.iexel-stb-member-nudge-btn:hover {
	background: #0f2744;
	color: #ffffff;
	border-color: #0f2744;
}

.iexel-stb-member-nudge-btn--up {
	grid-column: 2;
	grid-row: 1;
}

.iexel-stb-member-nudge-btn--left {
	grid-column: 1;
	grid-row: 2;
}

.iexel-stb-member-nudge-btn--down {
	grid-column: 2;
	grid-row: 2;
}

.iexel-stb-member-nudge-btn--right {
	grid-column: 3;
	grid-row: 2;
}

/* Review Section & Checklist */
.iexel-stb-member-spots-checklist {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
	margin-bottom: 24px;
}

.iexel-stb-member-checklist-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
	background: #f8fafc;
}

.iexel-stb-member-checklist-item.is-active {
	border-color: #cba135;
	background: rgba(203, 161, 53, 0.08);
}

.iexel-stb-member-checklist-badge {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #0f2744;
	color: #ffffff;
	font-size: 12px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}

.iexel-stb-member-checklist-coords {
	font-size: 13px;
	color: #334155;
	font-family: monospace;
}

/* Modal Boundary Preview Dialog */
.iexel-stb-member-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(6, 20, 47, 0.75);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	z-index: 99999;
}

.iexel-stb-member-modal {
	background: #ffffff;
	border-radius: 16px;
	max-width: 520px;
	width: 100%;
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.35);
	border: 1px solid #cbd5e1;
	border-top: 5px solid #cba135;
	overflow: hidden;
}

.iexel-stb-member-modal-header {
	padding: 20px 24px 14px;
	border-bottom: 1px solid #f1f5f9;
}

.iexel-stb-member-modal-header h3 {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: #0f172a;
}

.iexel-stb-member-modal-body {
	padding: 20px 24px;
	font-size: 14px;
	line-height: 1.6;
	color: #334155;
}

.iexel-stb-member-modal-notice {
	background: #f8fafc;
	border-left: 4px solid #cba135;
	padding: 12px 16px;
	border-radius: 0 8px 8px 0;
	margin: 16px 0 0;
	font-size: 13px;
	color: #1e293b;
}

.iexel-stb-member-modal-actions {
	padding: 14px 24px 20px;
	background: #f8fafc;
	border-top: 1px solid #f1f5f9;
	display: flex;
	justify-content: flex-end;
	gap: 12px;
}

/* Spot the Ball Mobile Responsive Polish */
@media (max-width: 640px) {
	.iexel-stb-how-to-card > div {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.iexel-stb-how-to-title {
		text-align: center;
	}
	.iexel-stb-how-to-card p {
		text-align: left;
	}
	.iexel-stb-step-header {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 12px;
	}
	.iexel-stb-step-title-wrap {
		text-align: center;
		width: 100%;
	}
	.iexel-stb-step-title {
		text-align: center;
	}
	.iexel-stb-qty-pills {
		justify-content: center;
		width: 100%;
	}
	.iexel-stb-pricing-row {
		justify-content: center;
		text-align: center;
	}
	.iexel-stb-spot-controls {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 14px;
	}
	.iexel-stb-active-spot-group {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		width: 100%;
	}
	.iexel-stb-spot-pills {
		justify-content: center;
		width: 100%;
	}
	.iexel-stb-fine-tune {
		justify-content: center;
		width: 100%;
	}
	/* Marker mobile responsive precision sizing (24px) */
	.iexel-stb-member-pin {
		width: 24px !important;
		height: 24px !important;
		margin: 0 !important;
	}
	.iexel-stb-member-pin::after {
		top: -3.5px !important;
		left: -3.5px !important;
		right: -3.5px !important;
		bottom: -3.5px !important;
		background:
			linear-gradient(#38bdf8, #38bdf8) no-repeat top center / 1.5px 3.5px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat bottom center / 1.5px 3.5px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat left center / 3.5px 1.5px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat right center / 3.5px 1.5px !important;
	}
	.iexel-stb-member-pin.is-selected::after,
	.iexel-stb-member-pin.is-active::after {
		background:
			linear-gradient(#f59e0b, #f59e0b) no-repeat top center / 1.5px 3.5px,
			linear-gradient(#f59e0b, #f59e0b) no-repeat bottom center / 1.5px 3.5px,
			linear-gradient(#f59e0b, #f59e0b) no-repeat left center / 3.5px 1.5px,
			linear-gradient(#f59e0b, #f59e0b) no-repeat right center / 3.5px 1.5px !important;
	}
	.iexel-stb-member-pin .iexel-stb-member-pin-inner {
		font-size: 11px !important;
		border-width: 1.5px !important;
	}
	.iexel-stb-member-pin.is-selected .iexel-stb-member-pin-inner {
		transform: scale(1.08) !important;
		border-width: 2px !important;
		box-shadow: 0 0 0 2.5px rgba(245, 158, 11, 0.45), 0 3px 8px rgba(0, 0, 0, 0.6) !important;
	}

	/* Read-Only Pin mobile sizing (22px) */
	.iexel-stb-readonly-pin {
		width: 22px !important;
		height: 22px !important;
		margin: 0 !important;
	}
	.iexel-stb-readonly-pin::after {
		top: -3px !important;
		left: -3px !important;
		right: -3px !important;
		bottom: -3px !important;
		background:
			linear-gradient(#38bdf8, #38bdf8) no-repeat top center / 1.5px 3px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat bottom center / 1.5px 3px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat left center / 3px 1.5px,
			linear-gradient(#38bdf8, #38bdf8) no-repeat right center / 3px 1.5px !important;
	}
	.iexel-stb-readonly-pin .iexel-stb-readonly-pin-inner {
		font-size: 10px !important;
		border-width: 1.5px !important;
	}

	/* Campaign hero mobile identity centering across full mobile range */
	.iexel-stb-hero-meta {
		justify-content: center;
	}
	.iexel-stb-hero-title {
		text-align: center;
	}
	.iexel-stb-hero-desc {
		text-align: center;
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.iexel-stb-hero-stats {
		justify-content: center;
	}

	/* Success Panel ("Your Spots are Ready") mobile centering & one-line heading */
	#stb-review-section,
	.iexel-stb-review-panel {
		padding: 16px 14px !important;
		text-align: center;
	}
	#stb-review-section > div,
	.iexel-stb-review-content {
		flex-direction: column;
		align-items: center;
		text-align: center;
		justify-content: center;
		gap: 14px;
	}
	#stb-review-section .iexel-stb-review-copy,
	.iexel-stb-review-copy {
		text-align: center;
		width: 100%;
	}
	#stb-review-section h3,
	.iexel-stb-review-title {
		text-align: center;
		font-size: 1.05rem !important;
		margin: 0 0 6px !important;
		line-height: 1.3;
	}
	#stb-review-section p,
	.iexel-stb-review-desc {
		text-align: center;
		font-size: 0.9rem !important;
		line-height: 1.45;
		margin: 0 auto !important;
		max-width: 440px;
	}
	#stb-review-section .iexel-stb-review-actions,
	.iexel-stb-review-actions {
		display: flex;
		justify-content: center;
		width: 100%;
	}
	#stb-continue-btn,
	.iexel-stb-continue-btn {
		width: 100%;
		max-width: 320px;
		text-align: center;
		justify-content: center;
		margin: 0 auto;
	}
}

/* Narrow mobile hero refinement (~320px - 480px) */
@media (max-width: 480px) {
	.iexel-stb-hero-title {
		font-size: 1.5rem !important;
	}
	#stb-review-section,
	.iexel-stb-review-panel {
		padding: 14px 10px !important;
	}
	#stb-review-section h3,
	.iexel-stb-review-title {
		font-size: 1rem !important;
		letter-spacing: -0.01em;
	}
}

/* Ultra-narrow mobile refinement (320px) */
@media (max-width: 360px) {
	#stb-review-section,
	.iexel-stb-review-panel {
		padding: 12px 8px !important;
	}
	#stb-review-section h3,
	.iexel-stb-review-title {
		font-size: 0.92rem !important;
		letter-spacing: -0.02em;
	}
	#stb-review-section p,
	.iexel-stb-review-desc {
		font-size: 0.85rem !important;
	}
}

/* ==========================================================================
   Spot the Ball F3 Batch 2A: Immutable Entry Sets, Review & My Entries
   ========================================================================== */

/* Locked Success Panel */
.iexel-stb-locked-success-panel {
	border-left: 6px solid #16a34a !important;
}

/* My Entries List & Cards */
.iexel-stb-my-entries-section {
	border-top: 3px solid #071d49 !important;
}
.iexel-stb-entry-card {
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.iexel-stb-entry-card:hover {
	border-color: #cbd5e1;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
}

/* Dialog Box-Sizing & Layout Centering */
.iexel-stb-review-dialog,
.iexel-stb-review-dialog *,
.iexel-stb-readonly-dialog,
.iexel-stb-readonly-dialog * {
	box-sizing: border-box;
}
.iexel-stb-review-dialog > div,
.iexel-stb-readonly-dialog > div {
	width: 100%;
	max-width: 100%;
}

/* Review Dialog & Read-Only Dialog Backdrops */
.iexel-stb-review-dialog::backdrop {
	background: rgba(15, 23, 42, 0.65);
	backdrop-filter: blur(4px);
}
.iexel-stb-readonly-dialog::backdrop {
	background: rgba(15, 23, 42, 0.75);
	backdrop-filter: blur(4px);
}

/* Read-Only Pin Visual Styling */
.iexel-stb-readonly-pin {
	position: absolute;
	width: 26px;
	height: 26px;
	margin: 0 !important;
	transform: translate(-50%, -50%);
	box-sizing: border-box;
	touch-action: none;
	user-select: none;
	pointer-events: none;
}
.iexel-stb-readonly-pin::after {
	content: '';
	position: absolute;
	top: -4px;
	left: -4px;
	right: -4px;
	bottom: -4px;
	border-radius: 50%;
	pointer-events: none;
	background:
		linear-gradient(#38bdf8, #38bdf8) no-repeat top center / 2px 4px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat bottom center / 2px 4px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat left center / 4px 2px,
		linear-gradient(#38bdf8, #38bdf8) no-repeat right center / 4px 2px;
}
.iexel-stb-readonly-pin .iexel-stb-readonly-pin-inner {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

/* Spot the Ball Success & Locked Panels */
.iexel-stb-paid-success-panel,
.iexel-stb-locked-success-panel {
	margin-bottom: 24px;
	padding: 22px 24px;
	border-radius: 12px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
	box-sizing: border-box;
}

.iexel-stb-paid-success-panel {
	background: #f0fdf4;
	border: 2px solid #86efac;
}

.iexel-stb-locked-success-panel {
	background: #f8fafc;
	border: 2px solid #a5b4fc;
}

.iexel-stb-success-container {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	box-sizing: border-box;
}

.iexel-stb-success-icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #dcfce7;
	color: #166534;
	font-size: 22px;
	font-weight: 800;
	flex-shrink: 0;
}

.iexel-stb-success-body {
	flex: 1;
	min-width: 0;
	box-sizing: border-box;
}

.iexel-stb-success-title {
	font-size: 1.35rem;
	font-weight: 800;
	margin: 4px 0 6px;
}

.iexel-stb-success-desc {
	margin: 0 0 14px;
	font-size: 0.98rem;
	line-height: 1.45;
}

.iexel-stb-success-meta-box {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	align-items: center;
	padding: 10px 14px;
	background: #ffffff;
	border-radius: 8px;
	border: 1px solid #bbf7d0;
	margin-bottom: 12px;
	font-size: 0.92rem;
	box-sizing: border-box;
}

.iexel-stb-locked-success-panel .iexel-stb-success-meta-box {
	border-color: #c7d2fe;
}

.iexel-stb-meta-item {
	display: flex;
	align-items: center;
	gap: 6px;
}

.iexel-stb-meta-label {
	color: #64748b;
}

.iexel-stb-meta-code {
	font-family: monospace;
	font-size: 1.02rem;
	color: #0f172a;
}

.iexel-stb-success-actions {
	margin-top: 14px;
}

.iexel-stb-payment-instructions-dialog {
	box-sizing: border-box;
}

.iexel-stb-payment-instructions-dialog * {
	box-sizing: border-box;
}

.iexel-stb-payment-instructions-dialog::backdrop {
	background: rgba(15, 23, 42, 0.75);
	backdrop-filter: blur(4px);
}

@media (max-width: 640px) {
	.iexel-stb-review-dialog {
		width: calc(100% - 24px) !important;
		max-width: 520px !important;
		padding: 20px 16px !important;
		margin: auto !important;
	}
	.iexel-stb-readonly-dialog,
	.iexel-stb-payment-instructions-dialog {
		width: calc(100% - 24px) !important;
		max-width: 720px !important;
		padding: 20px 16px !important;
		margin: auto !important;
	}
	.iexel-stb-paid-success-panel,
	.iexel-stb-locked-success-panel {
		padding: 20px 14px !important;
		text-align: center !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-container,
	.iexel-stb-locked-success-panel .iexel-stb-success-container {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center !important;
		gap: 14px !important;
		width: 100% !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-icon-wrap,
	.iexel-stb-locked-success-panel .iexel-stb-success-icon-wrap {
		margin: 0 auto !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-body,
	.iexel-stb-locked-success-panel .iexel-stb-success-body {
		width: 100% !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		text-align: center !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-title,
	.iexel-stb-locked-success-panel .iexel-stb-success-title {
		text-align: center !important;
		margin: 4px 0 8px !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-desc,
	.iexel-stb-locked-success-panel .iexel-stb-success-desc {
		text-align: center !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-meta-box,
	.iexel-stb-locked-success-panel .iexel-stb-success-meta-box {
		width: 100% !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 8px !important;
		padding: 12px 14px !important;
		box-sizing: border-box !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-meta-item,
	.iexel-stb-locked-success-panel .iexel-stb-meta-item {
		justify-content: center !important;
		width: 100% !important;
	}
	.iexel-stb-locked-success-panel .iexel-stb-bank-details-card {
		width: 100% !important;
		box-sizing: border-box !important;
		text-align: left !important;
		padding: 14px 12px !important;
	}
	.iexel-stb-locked-success-panel .iexel-stb-bank-row {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 2px !important;
	}
	.iexel-stb-locked-success-panel .iexel-stb-bank-row.is-reference {
		align-items: center !important;
		text-align: center !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-success-actions,
	.iexel-stb-locked-success-panel .iexel-stb-success-actions {
		width: 100% !important;
		display: flex !important;
		justify-content: center !important;
	}
	.iexel-stb-paid-success-panel .iexel-stb-view-spots-btn,
	.iexel-stb-locked-success-panel .iexel-stb-view-spots-btn {
		width: auto !important;
		min-width: 140px !important;
		margin: 0 auto !important;
	}
	.iexel-stb-entry-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.iexel-stb-entry-actions {
		width: 100%;
	}
	.iexel-stb-entry-actions button {
		width: 100%;
		text-align: center;
	}
}


/* ==================================================
SPOT THE BALL CAMPAIGN INSIGHT & FINANCIAL OPERATIONS (BATCH 1D-B)
================================================== */

.iexel-stb-performance-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
	margin-bottom: 28px;
}

.iexel-stb-notice-box {
	margin-bottom: 28px;
	padding: 12px 18px;
	border-radius: 8px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.5;
}

.iexel-treasurer-campaign-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	align-items: center;
}

@media (max-width: 768px) {
	.iexel-stb-performance-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
}

@media (max-width: 480px) {
	.iexel-stb-performance-grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.iexel-stb-notice-box {
		padding: 10px 14px;
		font-size: 0.8rem;
	}
	.iexel-treasurer-campaign-badges {
		gap: 6px;
	}
}

@media (max-width: 375px) {
	.iexel-stb-performance-grid .iexel-os-card {
		padding: 14px;
	}
	.iexel-stb-performance-grid strong {
		font-size: 1.5rem;
	}
}

@media (max-width: 320px) {
	.iexel-stb-performance-grid strong {
		font-size: 1.35rem;
	}
}


/* ==================================================
SPOT THE BALL RESULT REVEAL & JUDGING PRIVACY HARDENING
================================================== */

.iexel-stb-result-image-wrap {
	touch-action: manipulation;
}

.iexel-stb-result-marker {
	position: absolute;
	transform: translate(-50%, -50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 10;
	pointer-events: none;
}

.iexel-stb-result-marker-label {
	font-size: 0.68rem;
	font-weight: 700;
	color: #ffffff;
	padding: 2px 7px;
	border-radius: 4px;
	white-space: nowrap;
	margin-bottom: 4px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.iexel-stb-result-marker-dot {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 2px #ffffff, 0 2px 6px rgba(0, 0, 0, 0.5);
}

.iexel-stb-result-marker--target .iexel-stb-result-marker-label {
	background: rgba(7, 29, 73, 0.94);
}

.iexel-stb-result-marker--target .iexel-stb-result-marker-dot {
	background: #071d49;
	border: 2px solid #ffffff;
}

.iexel-stb-result-marker--winner .iexel-stb-result-marker-label {
	background: rgba(180, 83, 9, 0.94);
}

.iexel-stb-result-marker--winner .iexel-stb-result-marker-dot {
	background: #f59e0b;
	border: 2px solid #ffffff;
}

.iexel-stb-audit-details {
	max-width: 100%;
}

.iexel-stb-audit-details code {
	word-break: break-all;
	overflow-wrap: anywhere;
}

@media (max-width: 768px) {
	.iexel-stb-result-marker-dot {
		width: 24px;
		height: 24px;
	}

	.iexel-stb-result-marker-label {
		font-size: 0.62rem;
		padding: 2px 6px;
	}
}

@media (max-width: 390px) {
	.iexel-stb-result-marker-dot {
		width: 20px;
		height: 20px;
	}

	.iexel-stb-result-marker-label {
		font-size: 0.58rem;
		padding: 1px 5px;
		margin-bottom: 3px;
	}
}

@media (max-width: 360px) {
	.iexel-stb-winner-result-card {
		padding: 16px !important;
	}

	.iexel-stb-winner-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 320px) {
	.iexel-stb-result-marker-dot {
		width: 18px;
		height: 18px;
	}

	.iexel-stb-result-marker-label {
		font-size: 0.54rem;
		padding: 1px 4px;
	}

	.iexel-stb-audit-details summary {
		font-size: 0.76rem !important;
	}
}

/* Club Shop member checkout: explicit light/dark boundaries, scoped to the saved-order journey. */
.iexel-shop-workspace { min-width: 0; color: var(--iexel-midnight); }
.iexel-shop-workspace.iexel-shop-product .iexel-os-card .iexel-shop-product-price { color: color-mix(in srgb, var(--iexel-gold) 55%, white); }
.iexel-shop-workspace.iexel-shop-product .iexel-page-header .iexel-eyebrow { color: var(--iexel-white); }
.iexel-shop-workspace.iexel-shop-product .iexel-os-card :is(input,select,button):focus-visible { outline-color: var(--iexel-white); }
.iexel-shop-workspace *, .iexel-experience-alert.is-shop_saved_order * { box-sizing: border-box; }
.iexel-shop-workspace .iexel-shop-hero {
	background: linear-gradient(135deg, var(--iexel-midnight), var(--iexel-navy));
	color: var(--iexel-white); border-bottom: 3px solid var(--iexel-gold);
	border-radius: var(--iexel-radius-medium); padding: 24px; margin-bottom: 20px;
	display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; min-height: 0;
}
.iexel-shop-workspace .iexel-shop-hero > div { min-width: 0; flex: 1 1 240px; }
.iexel-shop-workspace .iexel-shop-hero h1 { color: var(--iexel-white); font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.iexel-shop-workspace .iexel-shop-hero p { color: var(--iexel-white); margin: 8px 0 0; line-height: 1.5; }
.iexel-shop-workspace .iexel-shop-hero .iexel-eyebrow { color: var(--iexel-white); margin: 0 0 6px; }
.iexel-shop-workspace .iexel-shop-card {
	background: var(--iexel-white); color: var(--iexel-midnight); border: 1px solid #dce3ee;
	border-radius: var(--iexel-radius-medium); padding: 22px; margin: 0;
	box-shadow: var(--iexel-shadow-small); min-width: 0; overflow-wrap: anywhere;
}
.iexel-shop-workspace .iexel-shop-card :is(h2,h3,p,dt,dd,th,td,a) { color: var(--iexel-midnight); }
.iexel-shop-workspace .iexel-shop-card-title { font-size: 1.15rem; margin: 0 0 18px; border-bottom: 1px solid #dce3ee; padding-bottom: 12px; }
.iexel-shop-confirmation { max-width: 720px; margin-inline: auto; }
.iexel-shop-confirmation .iexel-shop-hero { display: block; }
.iexel-shop-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-bottom: 24px; align-items: start; }
.iexel-shop-payment-column { min-width: 0; }
.iexel-shop-payment-totals { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 0 0 20px; }
.iexel-shop-workspace .iexel-shop-payment-totals dt { font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.iexel-shop-workspace .iexel-shop-payment-totals dd { margin: 8px 0 0; font-size: clamp(1.2rem,3vw,1.6rem); font-weight: 800; overflow-wrap: anywhere; }
.iexel-shop-payment-state { display: flex; gap: 12px; padding: 16px; border-radius: var(--iexel-radius-small); background: #fff8e1; margin-bottom: 18px; min-width: 0; }
.iexel-shop-payment-state > div { min-width: 0; }
.iexel-shop-workspace .iexel-shop-payment-state h2 { font-size: 1rem; margin: 0 0 5px; }
.iexel-shop-workspace .iexel-shop-payment-state p { font-size: .92rem; margin: 0; line-height: 1.5; }
.iexel-shop-state-icon { font-size: 1.7rem; flex: 0 0 auto; line-height: 1; color: var(--iexel-midnight); }
.iexel-shop-payment-state.is-paid { background: #eaf7ef; }
.iexel-shop-payment-state:is(.is-checking,.is-cancelled,.is-review) { background: #edf3fa; }
.iexel-shop-workspace .iexel-shop-action {
	display: inline-flex; justify-content: center; align-items: center; gap: 8px;
	min-height: 44px; padding: 12px 18px; max-width: 100%; border-radius: var(--iexel-radius-small);
	font-weight: 800; line-height: 1.4; text-align: center; text-decoration: none; white-space: normal; overflow-wrap: anywhere;
}
body.iexel-portal .iexel-experience-shell .iexel-shop-workspace .iexel-shop-action.is-primary,
body.iexel-portal .iexel-experience-shell .iexel-shop-workspace .iexel-shop-action.is-primary:hover {
	background: var(--iexel-gold); color: var(--iexel-color-on-accent, #000); border: 1px solid var(--iexel-gold);
}
body.iexel-portal .iexel-experience-shell .iexel-shop-workspace .iexel-shop-action.is-secondary {
	background: var(--iexel-white); color: var(--iexel-midnight); border: 1px solid var(--iexel-midnight);
}
body.iexel-portal .iexel-experience-shell .iexel-shop-workspace .iexel-shop-hero .iexel-shop-action.is-secondary { background: transparent; color: var(--iexel-white); border-color: var(--iexel-white); }
.iexel-shop-workspace .iexel-shop-action:hover { filter: brightness(.96); }
.iexel-shop-workspace :is(a,button,summary,input):focus-visible { outline: 3px solid var(--iexel-midnight); outline-offset: 3px; }
.iexel-shop-workspace .iexel-shop-hero a:focus-visible { outline-color: var(--iexel-white); }
.iexel-shop-payment-form { margin: 0; }
.iexel-shop-payment-form .iexel-shop-action { width: 100%; }
.iexel-shop-workspace .iexel-shop-reassurance { text-align: center; font-size: .85rem; margin: 12px 0 0; color: var(--iexel-midnight); }
.iexel-shop-secondary-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.iexel-shop-summary { margin: 0; }
.iexel-shop-summary > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 12px; align-items: start; border-bottom: 1px solid #e3e9f2; padding: 12px 0; }
.iexel-shop-summary > div:last-child { border: 0; }
.iexel-shop-summary dt { font-size: .88rem; }
.iexel-shop-summary dd { font-size: .9rem; font-weight: 700; margin: 0; text-align: right; min-width: 0; }
.iexel-shop-badge { display: inline-flex; border: 1px solid #c8d4e5; border-radius: 999px; padding: 4px 10px; color: var(--iexel-midnight); background: #edf3fa; font-size: .75rem; font-weight: 800; max-width: 100%; white-space: normal; }
.iexel-shop-badge.is-awaiting, .iexel-shop-badge.is-failed { background: #fff8e1; border-color: #d2b04c; }
.iexel-shop-badge.is-paid { background: #eaf7ef; border-color: #87b799; }
.iexel-shop-cancel { background: var(--iexel-white); color: var(--iexel-midnight); border: 1px solid #dce3ee; border-radius: var(--iexel-radius-small); padding: 14px; margin-top: 16px; min-width: 0; }
.iexel-shop-cancel summary { cursor: pointer; font-weight: 700; min-height: 32px; padding: 4px; }
.iexel-shop-cancel p { color: var(--iexel-midnight); font-size: .9rem; line-height: 1.5; }
.iexel-shop-workspace .iexel-shop-cancel label { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; margin: 16px 0; line-height: 1.5; }
.iexel-shop-cancel input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; margin: 0; }
.iexel-shop-workspace .iexel-shop-danger { border-color: var(--iexel-danger); width: 100%; }
.iexel-shop-operation-notice { color: var(--iexel-midnight); background: #fff8e1; border-radius: 10px; padding: 16px; line-height: 1.5; }
.iexel-shop-table { border-collapse: collapse; width: 100%; table-layout: fixed; margin: 0; font-size: .9rem; }
.iexel-shop-table th, .iexel-shop-table td { padding: 14px 10px; border-bottom: 1px solid #e3e9f2; text-align: left; overflow-wrap: anywhere; vertical-align: top; }
.iexel-shop-table th { background: #edf3fa; text-transform: uppercase; font-size: .7rem; letter-spacing: .04em; }
.iexel-shop-table td > a:not(.iexel-shop-action) { font-weight: 800; text-decoration: underline; }
.iexel-shop-order-actions .iexel-shop-action { width: 100%; font-size: .85rem; padding: 10px; }
.iexel-shop-order-actions > * + * { margin-top: 8px; }
.iexel-shop-order-actions .iexel-shop-cancel { padding: 8px; margin-top: 8px; }
.iexel-shop-reminder { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid #c8d8eb; background: #edf3fa; color: var(--iexel-midnight); padding: 18px; border-radius: var(--iexel-radius-medium); margin-bottom: 24px; }
.iexel-shop-reminder > div { flex: 1 1 220px; min-width: 0; }
.iexel-shop-workspace .iexel-shop-reminder h2 { color: var(--iexel-midnight); font-size: 1rem; margin: 0 0 6px; }
.iexel-shop-workspace .iexel-shop-reminder p { color: var(--iexel-midnight); margin: 0; overflow-wrap: anywhere; font-size: .9rem; }
.iexel-experience-alert.is-information.is-shop_saved_order { background: #edf3fa; color: var(--iexel-midnight); border-left-color: var(--iexel-navy); }
.iexel-experience-alert.is-shop_saved_order :is(h3,p,span) { color: var(--iexel-midnight); }
.iexel-experience-alert.is-shop_saved_order > a { background: var(--iexel-gold); color: var(--iexel-color-on-accent, #000); border: 1px solid var(--iexel-gold); border-radius: 10px; min-height: 44px; padding: 12px 16px; font-weight: 800; text-decoration: none; }
@media (max-width: 900px) {
	.iexel-shop-workspace .iexel-shop-card { padding: 18px; }
	.iexel-shop-detail-grid { grid-template-columns: minmax(0,1fr); }
	.iexel-shop-table, .iexel-shop-table tbody, .iexel-shop-table tr, .iexel-shop-table td { display: block; width: 100%; }
	.iexel-shop-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.iexel-shop-table tr { padding: 14px 0; border-bottom: 2px solid #dce3ee; }
	.iexel-shop-table td { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 12px; padding: 10px 0; text-align: right; }
	.iexel-shop-table td::before { content: attr(data-label); font-weight: 700; text-align: left; }
	.iexel-shop-table .iexel-shop-order-actions { display: flex; flex-direction: column; gap: 8px; }
	.iexel-shop-order-actions::before { display: none; }
	.iexel-shop-order-actions > * + * { margin-top: 0; }
}
.iexel-secretary-shop-order-items .iexel-shop-item-cards { display: none; }
@media (max-width: 600px) {
	.iexel-secretary-shop-order-items .iexel-shop-items-desktop { display: none; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards > li { min-width: 0; padding: var(--iexel-space-standard, 16px); border: 1px solid var(--iexel-color-border, #dfe3e9); border-radius: var(--iexel-radius-small); background: var(--iexel-surface-muted, #f6f7f9); }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards h3 { margin: 0; font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
	.iexel-secretary-shop-order-items .iexel-shop-item-variant { margin: 6px 0 0; font-size: .88rem; line-height: 1.5; overflow-wrap: anywhere; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards dl { margin: 16px 0 0; display: grid; gap: 8px; font-size: .9rem; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards dl > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: baseline; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards dt,
	.iexel-secretary-shop-order-items .iexel-shop-item-cards dd { margin: 0; white-space: nowrap; overflow-wrap: normal; }
	.iexel-secretary-shop-order-items .iexel-shop-item-cards dd { text-align: right; font-weight: 700; }
}
@media (max-width: 420px) {
	.iexel-shop-workspace .iexel-shop-hero { padding: 20px 16px; }
	.iexel-shop-payment-totals { gap: 12px; }
	.iexel-shop-secondary-actions { grid-template-columns: minmax(0,1fr); }
	.iexel-shop-summary > div { grid-template-columns: minmax(0,1fr); gap: 6px; }
	.iexel-shop-summary dd { text-align: left; }
	.iexel-shop-reminder .iexel-shop-action { width: 100%; }
}

/* Secretary destinations fill balanced rows according to the authorised link count. */
@media (min-width: 901px) {
	.iexel-experience-shell--secretary > .iexel-experience-nav > div {
		box-sizing: border-box;
		display: grid;
		grid-template-columns: repeat(var(--iexel-secretary-nav-columns), minmax(0, 1fr));
		overflow: visible;
		gap: 6px;
		padding-block: 10px;
	}
	.iexel-experience-shell--secretary > .iexel-experience-nav a {
		align-items: center;
		display: flex;
		justify-content: center;
		min-height: 44px;
		min-width: 0;
		text-align: center;
		white-space: normal;
	}
}
@media (min-width: 901px) and (max-width: 1099px) {
	.iexel-experience-shell--secretary > .iexel-experience-nav > div {
		grid-template-columns: repeat(var(--iexel-secretary-nav-compact-columns), minmax(0, 1fr));
	}
}

/* Permission feedback reuses the member shell and identity/action tokens. */
.iexel-portal-access-denied .iexel-experience-main { max-width: 1100px; }
.iexel-access-denied-hero { margin-top: 20px; }
.iexel-access-denied-next p { color: var(--iexel-color-text-muted, var(--iexel-muted)); line-height: 1.6; max-width: 70ch; }
.iexel-access-denied-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.iexel-access-denied-actions .iexel-experience-button { box-sizing: border-box; cursor: pointer; font: inherit; justify-content: center; min-height: 44px; }
.iexel-access-denied-actions .is-primary { background: var(--iexel-midnight); border-color: var(--iexel-midnight); color: var(--iexel-color-on-primary, #fff); }
.iexel-access-denied-actions form { margin: 0; }
@media (max-width: 600px) {
	.iexel-access-denied-actions { flex-direction: column; }
	.iexel-access-denied-actions .iexel-experience-button, .iexel-access-denied-actions form { width: 100%; }
	.iexel-access-denied-hero h1 { font-size: clamp(26px, 7vw, 34px); }
}
