.ge-public {
	--ge-primary: #355f49;
	--ge-primary-dark: #244333;
	--ge-border: #d9e0dc;
	--ge-muted: #66736c;
	--ge-soft: #f5f8f6;
	--ge-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: #1f2924;
	font-family: var(--ge-font-family) !important;
	font-size: 16px;
	line-height: 1.5;
	margin: 24px auto 96px;
	box-sizing: border-box;
	max-width: none;
	width: 100%;
}

.ge-overview-action-body .ge-public-fields > :only-child {
	grid-column: 1 / -1;
}

/* La typographie du portail reste indépendante du thème WordPress (Divi, etc.). */
.ge-public h1,
.ge-public h2,
.ge-public h3,
.ge-public h4,
.ge-public h5,
.ge-public h6,
.ge-public p,
.ge-public a,
.ge-public label,
.ge-public legend,
.ge-public summary,
.ge-public button,
.ge-public input,
.ge-public select,
.ge-public textarea,
.ge-public table,
.ge-public th,
.ge-public td {
	font-family: var(--ge-font-family) !important;
}

.ge-accommodation-stats {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0 0 24px;
}

.ge-accommodation-stats > div {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 130px;
	padding: 20px;
	text-align: center;
}

.ge-accommodation-stats strong { color: var(--ge-primary); font-size: 28px; }
.ge-accommodation-stats span { color: var(--ge-muted); font-size: 13px; font-weight: 700; }
.ge-accommodation-stats.ge-pension-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ge-accommodation-list { display: grid; gap: 18px; margin-bottom: 24px; }
.ge-accommodation-card { overflow: hidden; padding: 0 !important; }
.ge-location-accordion.ge-public-card {
	border-radius: 12px;
	margin: 0 0 14px;
	max-width: none;
	overflow: hidden;
	padding: 0 !important;
	width: 100%;
}
.ge-accommodation-list .ge-location-accordion { margin-bottom: 0; }
.ge-location-accordion > summary {
	min-height: 72px;
	padding: 14px 16px;
}
.ge-location-accordion[open] > summary {
	margin: 0;
	padding-bottom: 14px;
}
.ge-accommodation-card > .ge-public-accordion-body { padding: 22px; }
.ge-accommodation-card .ge-account-overview-list { background: #f8faf9; border: 1px solid var(--ge-border); border-radius: 12px; gap: 16px 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 24px; padding: 16px 18px; }
.ge-accommodation-card h4 { border-top: 1px solid #e5ebe7; color: var(--ge-primary-dark); font-size: 18px; margin: 24px 0 8px; padding-top: 22px; }
.ge-accommodation-card .ge-account-overview-list + h4 { border-top: 0; margin-top: 0; padding-top: 0; }
.ge-accommodation-period-help { align-items: center; background: #edf5f0; border-left: 4px solid var(--ge-primary); border-radius: 8px; display: flex; margin: 10px 0 16px; min-height: 42px; padding: 9px 13px; }
.ge-accommodation-service-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 18px; }
.ge-completed-by { display:block; margin-top:3px; color:#64748b; font-weight:500; }
.ge-full-course-list { margin-top:20px; display:grid; gap:10px; }
.ge-full-course-list h4 { margin:0; }
.ge-full-course { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid #f0c36b; border-radius:10px; background:#fffaf0; }
.ge-full-course > span { display:grid; gap:3px; }
.ge-full-course form { margin:0; }
.ge-accommodation-stats [title] { cursor:help; }
.ge-accommodation-stats .dashicons { width:16px; height:16px; font-size:16px; vertical-align:text-bottom; }
.ge-service-choice { align-items: center; background: #fff; border: 1px solid var(--ge-border); border-radius: 12px; cursor: pointer; display: flex !important; gap: 13px; min-height: 72px; padding: 13px 15px; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.ge-service-choice:hover { background: #f8fbf9; border-color: #9db8a8; }
.ge-service-choice:has(input:checked) { background: #edf6f0; border-color: #79a087; box-shadow: inset 4px 0 0 var(--ge-primary); }
.ge-public .ge-service-choice input[type="checkbox"] { -webkit-appearance: none !important; appearance: none !important; background-color: #fff; background-position: center; background-repeat: no-repeat; background-size: 14px 14px; border: 2px solid #9aa8a0 !important; border-radius: 6px !important; box-shadow: none !important; box-sizing: border-box; flex: 0 0 24px; height: 24px !important; margin: 0 !important; min-height: 0 !important; opacity: 1 !important; padding: 0 !important; position: static !important; width: 24px !important; }
.ge-public .ge-service-choice input[type="checkbox"]:checked { background-color: var(--ge-primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.8' d='m4 10 4 4 8-9'/%3E%3C/svg%3E"); border-color: var(--ge-primary) !important; }
.ge-public .ge-service-choice input[type="checkbox"]:focus-visible { outline: 3px solid rgba(53, 95, 73, .22) !important; outline-offset: 2px; }
.ge-service-choice span { display: grid; flex: 1 1 auto; gap: 3px; min-width: 0; }
.ge-service-choice strong { color: #203229; font-size: 15px; line-height: 1.3; }
.ge-service-choice small { font-size: 13px; font-weight: 650; }
.ge-accommodation-services-form > .ge-public-button { min-width: 230px; }
.ge-service-choice small, .ge-public-help { color: var(--ge-muted); }
.ge-occasional-service-picker { border: 0; margin: 18px 0 0; padding: 0; }
.ge-occasional-service-picker legend { color: #203229; font-size: 14px; font-weight: 700; margin-bottom: 10px; padding: 0; }

@media (max-width: 1050px) {
	.ge-accommodation-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ge-accommodation-stats.ge-pension-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ge-accommodation-card .ge-account-overview-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
	.ge-accommodation-stats,
	.ge-accommodation-stats.ge-pension-stats,
	.ge-accommodation-service-grid { grid-template-columns: 1fr; }
	.ge-full-course { align-items:stretch; flex-direction:column; }
	.ge-accommodation-card .ge-account-overview-list { grid-template-columns: 1fr 1fr; }
	.ge-accommodation-card > .ge-public-accordion-body { padding: 16px; }
	.ge-accommodation-services-form > .ge-public-button { width: 100%; }
}

@media (max-width: 520px) {
	.ge-accommodation-card .ge-account-overview-list { grid-template-columns: 1fr; }
	.ge-service-choice { min-height: 64px; padding: 11px 12px; }
}

.ge-staff-payment-allocation {
	border: 1px solid #d6e2da;
	border-radius: 10px;
	display: grid;
	gap: 8px;
	margin: 12px 0;
	padding: 12px;
}

.ge-staff-searchable-select {
	display: grid;
	gap: 0;
	position: relative;
}

.ge-staff-search-field {
	align-items: center;
	background: #fff;
	border: 1px solid #aabbb1;
	border-radius: 10px;
	display: flex;
	min-height: 44px;
	padding: 0 12px;
}

.ge-staff-search-field .dashicons {
	color: #527060;
	flex: 0 0 auto;
	margin-right: 7px;
}

.ge-staff-search-field input[type="search"] {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin: 0;
	min-height: 42px;
	padding: 8px 0;
	width: 100%;
}

.ge-staff-search-field input[type="search"]:focus {
	box-shadow: none;
	outline: 0;
}

.ge-staff-search-arrow {
	color: #3e5e4c;
	flex: 0 0 auto;
}

.ge-staff-rider-results {
	background: #fff;
	border: 1px solid #aabbb1;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 12px 28px rgba(29, 58, 42, .14);
	left: 0;
	max-height: 290px;
	overflow-y: auto;
	position: absolute;
	right: 0;
	top: 43px;
	z-index: 30;
}

.ge-staff-rider-result {
	align-items: center;
	background: #fff;
	border: 0;
	border-bottom: 1px solid #edf1ef;
	color: #14241b;
	cursor: pointer;
	display: flex;
	font: inherit;
	justify-content: space-between;
	min-height: 52px;
	padding: 9px 12px;
	text-align: left;
	width: 100%;
}

.ge-staff-rider-result:last-child {
	border-bottom: 0;
}

.ge-staff-rider-result:hover,
.ge-staff-rider-result:focus {
	background: #edf6f0;
	outline: 0;
}

.ge-staff-rider-result small {
	color: #65766c;
	font-size: 11px;
	margin-left: 14px;
	text-align: right;
}

.ge-staff-rider-result-empty {
	color: #66756d;
	margin: 0;
	padding: 13px;
}

.ge-staff-payment-payer {
	align-items: center;
	background: #edf6f0;
	border: 1px solid #d3e4d9;
	border-radius: 8px;
	color: #365b47;
	display: flex;
	font-size: 12px;
	font-weight: 700;
	margin-top: 8px;
	min-height: 35px;
	padding: 7px 10px;
}

.ge-staff-payment-payer:empty {
	display: none;
}

.ge-staff-payment-amount {
	align-items: center;
	background: #eef6f1;
	border: 1px solid #d2e3d8;
	border-radius: 10px;
	display: flex;
	justify-content: space-between;
	min-height: 48px;
	padding: 9px 13px;
}

.ge-staff-payment-amount strong {
	color: #285941;
	font-size: 18px;
}

.ge-staff-payment-entry {
	align-items: stretch;
	display: grid;
	gap: 20px;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
	padding: 20px;
}

.ge-staff-payment-form-card,
.ge-staff-payment-help {
	border: 1px solid #dbe6df;
	border-radius: 13px;
	min-width: 0;
	padding: 18px;
}

.ge-staff-payment-form-card {
	background: #fff;
}

.ge-staff-payment-intro {
	align-items: center;
	background: #f3f8f5;
	border-left: 4px solid var(--ge-primary);
	border-radius: 9px;
	display: flex;
	gap: 11px;
	margin-bottom: 18px;
	padding: 11px 13px;
}

.ge-staff-payment-intro > .dashicons {
	color: var(--ge-primary);
	flex: 0 0 21px;
}

.ge-staff-payment-intro strong,
.ge-staff-payment-intro small {
	display: block;
}

.ge-staff-payment-intro small {
	color: var(--ge-muted);
	font-size: 12px;
	margin-top: 2px;
}

.ge-staff-rider-payment-form {
	display: grid;
	gap: 15px;
}

.ge-staff-rider-payment-form > label,
.ge-staff-payment-fields label {
	display: grid;
	gap: 7px;
	min-width: 0;
}

.ge-staff-payment-fields {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ge-staff-rider-payment-form select,
.ge-staff-rider-payment-form input {
	max-width: 100%;
	width: 100%;
}

.ge-staff-payment-note {
	margin-top: 1px;
}

.ge-staff-rider-payment-form > .ge-public-button {
	justify-self: start;
	margin-top: 0;
}

.ge-staff-payment-empty {
	background: #fff8df;
	border-left: 4px solid #b88914;
	border-radius: 8px;
	margin: 0;
	padding: 13px 15px;
}

.ge-staff-payment-help {
	align-self: stretch;
	background: linear-gradient(145deg, #f7faf8 0%, #edf5f0 100%);
}

.ge-staff-payment-help-title {
	align-items: center;
	display: flex;
	gap: 11px;
}

.ge-staff-payment-help-title > .dashicons {
	align-items: center;
	background: var(--ge-primary);
	border-radius: 9px;
	color: #fff;
	display: inline-flex;
	flex: 0 0 38px;
	height: 38px;
	justify-content: center;
	width: 38px;
}

.ge-staff-payment-help-title h3 {
	font-size: 19px;
	line-height: 1.2;
	margin: 0 !important;
}

.ge-staff-payment-help-title small {
	color: var(--ge-muted);
	display: block;
	font-size: 12px;
	margin-top: 2px;
}

.ge-staff-payment-help-list {
	display: grid;
	gap: 9px;
	list-style: none;
	margin: 18px 0;
	padding: 0;
}

.ge-staff-payment-help-list li {
	align-items: flex-start;
	background: rgba(255, 255, 255, .78);
	border: 1px solid #dbe6df;
	border-radius: 9px;
	display: flex;
	gap: 9px;
	line-height: 1.4;
	padding: 10px 11px;
}

.ge-staff-payment-help-list .dashicons {
	color: var(--ge-primary);
	flex: 0 0 19px;
	font-size: 18px;
	height: 19px;
	margin-top: 1px;
	width: 19px;
}

.ge-staff-payment-help .ge-payment-rule-note {
	font-size: 13px;
	margin: 0;
}

.ge-staff-payment-help .ge-payment-rule-note a {
	color: #745406;
	font-weight: 800;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 1050px) {
	.ge-staff-payment-entry {
		grid-template-columns: 1fr;
	}

	.ge-staff-payment-help {
		align-self: auto;
	}
}

@media (max-width: 640px) {
	.ge-staff-payment-entry {
		gap: 12px;
		padding: 12px;
	}

	.ge-staff-payment-form-card,
	.ge-staff-payment-help {
		border-radius: 10px;
		padding: 13px;
	}

	.ge-staff-payment-fields {
		grid-template-columns: 1fr;
	}

	.ge-staff-rider-payment-form > .ge-public-button {
		justify-self: stretch;
		width: 100%;
	}

	.ge-staff-payment-intro {
		align-items: flex-start;
		margin-bottom: 15px;
	}
}

.ge-staff-payment-allocation > label {
	align-items: center;
	background: #f7faf8;
	border-radius: 8px;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	padding: 8px 10px;
}

.ge-staff-payment-allocation input {
	max-width: 82px;
}

.ge-staff-allocation-total.is-valid {
	color: #276749;
}

.ge-staff-allocation-total.is-invalid {
	color: #b42318;
}

.ge-rider-switcher {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0;
}

.ge-rider-switcher > span {
	color: var(--ge-muted);
	font-size: 13px;
	font-weight: 700;
}

.ge-rider-chip {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 999px;
	color: var(--ge-primary-dark);
	font-size: 13px;
	font-weight: 700;
	padding: 6px 12px;
	text-decoration: none;
}

.ge-rider-chip.is-active {
	background: var(--ge-primary);
	border-color: var(--ge-primary);
	color: #fff;
}

.ge-course-allocation,
.ge-horse-riders {
	border: 1px solid var(--ge-border);
	border-radius: 10px;
	display: grid;
	gap: 8px;
	margin: 12px 0;
	padding: 12px;
}

.ge-course-allocation legend,
.ge-horse-riders legend {
	font-weight: 750;
	padding: 0 6px;
}

.ge-course-allocation label {
	align-items: center;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(0, 1fr) 74px;
}

.ge-course-allocation input {
	min-width: 0;
	width: 100%;
}

.ge-allocation-total {
	border-radius: 6px;
	display: block;
	font-weight: 700;
	padding: 6px 8px;
}

.ge-allocation-total.is-valid {
	background: #e9f7ee;
	color: #24623d;
}

.ge-allocation-total.is-invalid {
	background: #fff2ef;
	color: #9f2f24;
}

.ge-public-accordion {
	margin-top: 18px;
	width: 100%;
}

.ge-public-accordion > summary {
	cursor: pointer;
	font-size: 18px;
	font-weight: 750;
	list-style-position: inside;
}

.ge-public-accordion[open] > summary {
	border-bottom: 1px solid var(--ge-border);
	margin-bottom: 18px;
	padding-bottom: 14px;
}

.ge-horse-list {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.ge-horse-card {
	background: var(--ge-soft);
	border: 1px solid var(--ge-border);
	border-radius: 11px;
	padding: 16px;
}

.ge-horse-card h4 {
	font-size: 19px;
	margin: 4px 0;
}

.ge-horse-card p {
	color: var(--ge-muted);
	margin: 0 0 10px;
}

.ge-user-overview {
	display: grid;
	gap: 24px;
}

.ge-user-overview-layout {
	align-items: start;
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 1fr) minmax(310px, 360px);
}

.ge-user-overview-main {
	display: grid;
	gap: 24px;
	min-width: 0;
}

.ge-user-overview-sidebar {
	min-width: 0;
	position: static;
}

.ge-account-overview-card {
	background: linear-gradient(135deg, #fff 0%, #f3f8f5 100%);
	border-color: #cbdcd2;
}

.ge-account-overview-list,
.ge-rider-overview-list {
	display: grid;
	gap: 14px 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 20px 0 0;
}

.ge-account-overview-list > div,
.ge-rider-overview-list > div {
	min-width: 0;
}

.ge-account-overview-list dt,
.ge-rider-overview-list dt {
	color: var(--ge-muted);
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 2px;
	text-transform: uppercase;
}

.ge-account-overview-list dd,
.ge-rider-overview-list dd {
	font-weight: 650;
	margin: 0;
	overflow-wrap: anywhere;
}

.ge-overview-section {
	display: grid;
	gap: 14px;
}

.ge-overview-module-section {
	background: #f7faf8;
	border: 1px solid var(--ge-border);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(31, 41, 36, 0.04);
	gap: 10px;
	padding: 10px;
}

.ge-overview-section-heading {
	align-items: end;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.ge-overview-section-heading h2 {
	font-size: 24px;
	margin: 3px 0 0;
}

.ge-overview-module-heading {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 12px;
	box-shadow: 0 3px 12px rgba(31, 41, 36, 0.04);
	padding: 14px 16px;
}

.ge-overview-module-heading .ge-course-card-heading h2 {
	font-size: 17px;
	font-weight: 750;
	line-height: 1.25;
	margin: 0;
}

.ge-overview-count {
	align-items: center;
	background: #e8f2ec;
	border: 1px solid #cadfd2;
	border-radius: 999px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	font-weight: 800;
	height: 34px;
	justify-content: center;
	min-width: 34px;
	padding: 0 10px;
}

.ge-overview-rider-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr;
}

.ge-overview-rider-card {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(31, 41, 36, 0.05);
	display: block;
	min-width: 0;
	overflow: clip;
	padding: 0;
}

.ge-horse-summary {
	align-items: center;
	display: grid;
	gap: 14px;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	padding: 18px 20px;
}

.ge-overview-horse-card .ge-rider-summary-icon {
	font-size: 21px;
}

.ge-overview-rider-accordion > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 14px;
	grid-template-columns: 38px minmax(0, 1fr) minmax(170px, auto) auto auto;
	list-style: none;
	padding: 18px 20px;
}

.ge-overview-rider-accordion > summary::-webkit-details-marker {
	display: none;
}

.ge-overview-rider-accordion > summary:focus-visible {
	box-shadow: inset 0 0 0 3px rgba(53, 95, 73, 0.18);
	outline: 0;
}

.ge-overview-rider-accordion[open] > summary {
	background: #fff;
	border-bottom: 1px solid var(--ge-border);
}

.ge-overview-rider-accordion[open] > summary .ge-public-accordion-arrow {
	transform: rotate(180deg);
}

.ge-rider-summary-icon {
	align-items: center;
	background: #eaf4ee;
	border-radius: 9px;
	color: var(--ge-primary);
	display: inline-flex;
	height: 38px;
	justify-content: center;
	width: 38px;
}

.ge-rider-summary-identity {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.ge-rider-summary-identity > strong {
	font-size: 19px;
	overflow-wrap: anywhere;
}

.ge-rider-summary-identity > small {
	color: var(--ge-muted);
}

.ge-rider-summary-disciplines {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
}

.ge-rider-discipline-tag {
	align-items: center;
	background: #eef5f1;
	border: 1px solid #d3e2d9;
	border-radius: 999px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	font-size: 12px;
	gap: 5px;
	padding: 6px 9px;
	white-space: nowrap;
}

.ge-rider-discipline-tag small {
	color: var(--ge-muted);
	font-size: 11px;
}

.ge-rider-discipline-tag.is-empty {
	background: #fff6d8;
	border-color: #ead994;
	color: #765817;
}

.ge-rider-summary-edit.ge-public-button {
	margin: 0;
	min-height: 40px;
	padding: 8px 14px;
}

.ge-overview-rider-body {
	padding: 0 20px 20px;
}

.ge-overview-rider-card header {
	align-items: flex-start;
	display: flex;
	gap: 14px;
	justify-content: space-between;
}

.ge-overview-rider-card h3 {
	border: 0;
	font-size: 21px;
	margin: 3px 0 0;
	padding: 0;
}

.ge-overview-rider-card header small {
	color: var(--ge-muted);
}

.ge-overview-rider-card .ge-card-title-actions {
	margin-bottom: 0;
}

.ge-rider-status {
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
	padding: 5px 9px;
	white-space: nowrap;
}

.ge-rider-status-approved {
	background: #e9f7ee;
	border-color: #c5e6d0;
	color: #24623d;
}

.ge-rider-status-pending {
	background: #fff6d8;
	border-color: #ead994;
	color: #765817;
}

.ge-rider-status-inactive {
	background: #f1f2f1;
	border-color: #d9ddda;
	color: #626b66;
}

.ge-rider-overview-list {
	border-bottom: 1px solid #edf1ef;
	border-top: 1px solid #edf1ef;
	margin: 16px 0;
	padding: 14px 0;
}

.ge-rider-level-overview {
	padding: 12px 14px 14px;
}

.ge-rider-level-overview > p {
	color: var(--ge-muted);
	margin: 6px 0 0;
}

.ge-rider-level-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 9px;
}

.ge-rider-level-tags a {
	background: #eef5f1;
	border: 1px solid #d3e2d9;
	border-radius: 9px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	flex-direction: column;
	font-size: 12px;
	line-height: 1.25;
	padding: 7px 10px;
	text-decoration: none;
}

.ge-rider-level-tags a:hover,
.ge-rider-level-tags a:focus-visible {
	border-color: var(--ge-primary);
}

.ge-rider-level-accordion {
	border: 1px solid #d3e2d9;
	border-radius: 10px;
	margin-top: auto;
	overflow: clip;
}

.ge-rider-level-accordion > summary {
	align-items: center;
	background: #f3f8f5;
	color: var(--ge-primary-dark);
	cursor: pointer;
	display: grid;
	gap: 8px;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	list-style: none;
	padding: 10px 12px;
}

.ge-rider-level-accordion > summary::-webkit-details-marker {
	display: none;
}

.ge-rider-level-accordion > summary > .dashicons:first-child {
	color: var(--ge-primary);
}

.ge-rider-level-accordion[open] > summary {
	border-bottom: 1px solid #d3e2d9;
}

.ge-rider-level-accordion[open] > summary .ge-public-accordion-arrow {
	transform: rotate(180deg);
}

.ge-rider-level-count {
	align-items: center;
	background: #fff;
	border: 1px solid #cadfd2;
	border-radius: 999px;
	display: inline-flex;
	font-size: 11px;
	font-weight: 800;
	height: 24px;
	justify-content: center;
	min-width: 24px;
	padding: 0 7px;
}

.ge-rider-validation-note {
	background: #fff6d8;
	border-radius: 7px;
	color: #765817 !important;
	font-weight: 700;
	padding: 8px 10px;
}

.ge-overview-rider-card footer {
	margin-top: 16px;
}

.ge-overview-actions {
	gap: 10px;
}

.ge-overview-actions-heading {
	align-items: center;
	padding: 2px 2px 4px;
}

.ge-overview-actions-heading .ge-course-card-heading h2 {
	font-size: 18px;
	font-weight: 750;
	line-height: 1.2;
	margin: 0;
}

.ge-user-overview-sidebar .ge-overview-action-body .ge-public-fields {
	grid-template-columns: 1fr;
}

.ge-user-overview-sidebar .ge-dashboard-invoice-form {
	max-width: none;
}

.ge-overview-action.ge-public-card {
	margin: 0;
	padding: 0;
}

.ge-overview-action[open] > summary {
	margin: 0;
}

.ge-overview-action-body {
	border-top: 1px solid var(--ge-border);
	padding: 18px;
}

.ge-dashboard-invoice-form {
	max-width: 760px;
}

.ge-invoice-share-control {
	align-items: center;
	background: #f3f8f5;
	border: 1px solid #cfddd5;
	border-radius: 9px;
	display: flex !important;
	gap: 10px;
	margin: 14px 0;
	padding: 11px 13px;
}

.ge-invoice-share-control input[type="checkbox"] {
	accent-color: var(--ge-primary);
	flex: 0 0 auto;
	margin: 0;
	min-height: 18px;
	padding: 0;
	width: 18px;
}

.ge-invoice-share-control[hidden],
.ge-invoice-rider-control[hidden],
.ge-course-allocation[hidden] {
	display: none !important;
}

.ge-allocation-eligibility-note {
	align-items: flex-start;
	color: var(--ge-muted);
	display: flex;
	font-size: 12px;
	gap: 6px;
	line-height: 1.35;
	margin: 2px 0 12px;
}

.ge-allocation-eligibility-note .dashicons {
	color: var(--ge-primary);
	flex: 0 0 16px;
	font-size: 16px;
	height: 16px;
	width: 16px;
}

.ge-overview-history > .ge-public-card {
	margin: 0;
}

.ge-overview-history {
	display: grid;
	gap: 10px;
}

.ge-payment-pending-banner {
	align-items: center;
	background: #fff4dc;
	border: 1px solid #edc96f;
	border-left: 5px solid #d58a00;
	border-radius: 10px;
	color: #704b00;
	display: flex;
	gap: 12px;
	padding: 13px 16px;
}

.ge-payment-pending-banner > .dashicons {
	flex: 0 0 24px;
	font-size: 24px;
	height: 24px;
	width: 24px;
}

.ge-payment-pending-banner div {
	display: grid;
	gap: 2px;
}

.ge-payment-pending-banner strong {
	font-size: 15px;
}

.ge-payment-pending-banner span:not(.dashicons) {
	font-size: 13px;
}

.ge-payment-history.ge-public-card {
	margin: 0;
	padding: 0;
}

.ge-payment-history[open] > summary {
	margin: 0;
}

.ge-payment-history-body > p:first-child {
	margin-top: 0;
}

.ge-public *,
.ge-public *::before,
.ge-public *::after {
	box-sizing: border-box;
}

.ge-public .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.ge-dashboard-grid {
	display: grid;
	grid-template-columns: minmax(480px, 1.5fr);
	gap: 24px;
	align-items: start;
}

.ge-public-auth-shell {
	background: linear-gradient(145deg, #ffffff 0%, #f3f8f5 100%);
	border: 1px solid #cadbd1;
	border-radius: 16px;
	box-shadow: 0 14px 38px rgba(36, 67, 51, 0.09);
	margin: 0 auto;
	max-width: none;
	width: 100%;
	padding: 26px;
}

.ge-auth-tabs {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ge-auth-tab {
	align-items: center;
	background: #eaf2ed;
	border: 1px solid transparent;
	border-radius: 9px;
	color: var(--ge-primary-dark);
	display: flex;
	font-weight: 750;
	justify-content: center;
	min-height: 48px;
	padding: 10px 16px;
	text-decoration: none;
}

.ge-auth-tab:hover,
.ge-auth-tab:focus-visible {
	background: #dfece4;
	color: var(--ge-primary-dark);
	outline: 0;
}

.ge-auth-tab.is-active {
	background: var(--ge-primary);
	box-shadow: 0 5px 14px rgba(53, 95, 73, 0.2);
	color: #fff;
}

.ge-auth-card {
	background: rgba(255, 255, 255, 0.88);
	box-shadow: none;
	margin-top: 18px;
	padding: 34px 38px;
}

.ge-auth-heading {
	margin: 0 auto 28px;
	max-width: 700px;
	text-align: center;
}

.ge-auth-heading > .dashicons {
	align-items: center;
	background: #e8f2ec;
	border-radius: 50%;
	color: var(--ge-primary);
	display: inline-flex;
	font-size: 23px;
	height: 44px;
	justify-content: center;
	margin-bottom: 9px;
	width: 44px;
}

.ge-auth-heading h2 {
	color: var(--ge-primary);
	font-size: clamp(27px, 4vw, 36px);
	line-height: 1.15;
	margin: 0;
}

.ge-auth-heading p {
	color: var(--ge-muted);
	margin: 9px 0 0;
}

.ge-auth-form {
	display: grid;
	gap: 18px;
}

.ge-auth-form input:not([type="checkbox"]) {
	border-color: #c6d5cd;
	border-radius: 8px;
	margin: 0;
	min-height: 52px;
	padding: 11px 13px;
}

.ge-auth-remember {
	align-items: center;
	cursor: pointer;
	display: inline-flex !important;
	font-weight: 500 !important;
	gap: 10px;
	justify-self: start;
	margin: 0 !important;
	position: relative;
}

.ge-auth-remember > input {
	height: 1px !important;
	margin: 0 !important;
	min-height: 1px !important;
	opacity: 0;
	position: absolute;
	width: 1px !important;
}

.ge-auth-toggle {
	align-items: center;
	background: #b9c2bd;
	border-radius: 999px;
	box-sizing: border-box;
	display: inline-flex;
	flex: 0 0 40px;
	height: 22px;
	padding: 3px;
	transition: background 160ms ease;
	width: 40px;
}

.ge-auth-toggle > span {
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	display: block;
	height: 16px;
	transition: transform 160ms ease;
	width: 16px;
}

.ge-auth-remember > input:checked + .ge-auth-toggle {
	background: var(--ge-primary);
}

.ge-auth-remember > input:checked + .ge-auth-toggle > span {
	transform: translateX(18px);
}

.ge-auth-remember > input:focus-visible + .ge-auth-toggle {
	box-shadow: 0 0 0 3px rgba(53, 95, 73, 0.2);
}

.ge-auth-submit {
	margin: 2px 0 0;
	width: 100%;
}

.ge-auth-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 26px;
}

.ge-auth-footer-start {
	justify-content: flex-start;
}

.ge-auth-footer a {
	color: var(--ge-primary);
	font-weight: 650;
}

.ge-registration-form {
	display: grid;
	gap: 16px;
}

.ge-registration-section {
	background: var(--ge-soft);
	border: 1px solid var(--ge-border);
	border-radius: 10px;
	padding: 17px 18px 20px;
}

.ge-registration-card .ge-registration-section h3 {
	border: 0;
	color: var(--ge-primary-dark);
	font-size: 17px;
	margin: 0 0 6px;
	padding: 0;
}

.ge-registration-access {
	background: #edf5f0;
	border-color: #c8dacf;
}

.ge-public-card,
.ge-dashboard-card {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 14px;
	box-shadow: 0 8px 30px rgba(31, 41, 36, 0.06);
	padding: 26px;
}

.ge-public-card h2,
.ge-public-card h3 {
	margin-top: 0;
}

.ge-public-card h3 {
	border-top: 1px solid var(--ge-border);
	font-size: 17px;
	margin-top: 24px;
	padding-top: 20px;
}

.ge-public label {
	display: block;
	font-weight: 650;
	margin: 13px 0 6px;
}

.ge-public input,
.ge-public select,
.ge-public textarea {
	background: #fff;
	border: 1px solid #aebbb4;
	border-radius: 7px;
	font: inherit;
	min-height: 44px;
	padding: 9px 11px;
	width: 100%;
}

.ge-public input:focus,
.ge-public select:focus,
.ge-public textarea:focus {
	border-color: var(--ge-primary);
	box-shadow: 0 0 0 3px rgba(53, 95, 73, 0.14);
	outline: 0;
}

.ge-public .iti {
	display: block;
	width: 100%;
}

.iti__country-selector .iti__search-input {
	padding-left: 42px !important;
	padding-right: 36px !important;
}

.ge-public-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(180px, 1fr));
	gap: 0 16px;
}

.ge-public-button {
	background: var(--ge-primary);
	border: 0;
	border-radius: 7px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	margin-top: 20px;
	min-height: 44px;
	padding: 10px 18px;
}

.ge-public-button:hover,
.ge-public-button:focus {
	background: var(--ge-primary-dark);
	color: #fff;
}

.ge-public-button-secondary {
	background: #fff;
	border: 1px solid var(--ge-primary);
	color: var(--ge-primary);
	margin: 0;
}

.ge-public-button-icon {
	align-items: center;
	display: inline-flex;
	gap: 8px;
	justify-content: center;
}

.ge-public-button-icon .dashicons {
	font-size: 18px;
	height: 18px;
	width: 18px;
}

.ge-public-notice {
	border-left: 4px solid;
	border-radius: 8px;
	margin-bottom: 20px;
	padding: 14px 16px;
}

.ge-public-notice[data-ge-dismissible] {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	transition: opacity .2s ease, transform .2s ease;
}

.ge-public-notice[data-ge-dismissible].is-hiding {
	opacity: 0;
	transform: translateY(-5px);
}

.ge-public-notice-close {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: currentColor;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 32px;
	height: 32px;
	justify-content: center;
	margin: -7px -8px -7px 0;
	padding: 0;
	width: 32px;
}

.ge-public-notice-close:hover,
.ge-public-notice-close:focus-visible {
	background: rgba(0, 0, 0, .07);
	outline: 0;
}

.ge-public-notice-close .dashicons {
	font-size: 20px;
	height: 20px;
	width: 20px;
}

.ge-public-notice p {
	margin: 5px 0 0;
}

.ge-public-success {
	background: #edf8f0;
	border-color: #2d8a46;
}

.ge-public-error {
	background: #fff0f0;
	border-color: #c43d3d;
}

.ge-public-pending {
	background: #fff8df;
	border-color: #b88914;
}

.ge-public-schedule-info {
	background: #eef5ff;
	border-color: #4678ad;
	padding: 0;
}

.ge-public-schedule-info summary {
	cursor: pointer;
	font-weight: 700;
	padding: 14px 16px;
}

.ge-public-schedule-info[open] summary {
	border-bottom: 1px solid rgba(70, 120, 173, 0.25);
}

.ge-closure-list {
	padding: 0 16px 14px;
}

.ge-closure-item {
	border-top: 1px solid rgba(70, 120, 173, 0.25);
	margin-top: 10px;
	padding-top: 10px;
}

.ge-closure-item:first-child {
	border-top: 0;
}

.ge-closure-item > span,
.ge-closure-item > small {
	display: block;
}

.ge-dashboard-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 22px;
}

.ge-dashboard-head h2 {
	margin: 3px 0 0;
}

.ge-dashboard-actions {
	align-items: center;
	display: flex;
	gap: 10px;
}

.ge-dashboard-actions form {
	margin: 0;
}

.ge-mobile-account-menu {
	display: none;
}

.ge-public-module-nav-desktop {
	display: none;
}

.ge-mobile-module-nav {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
	margin: 8px 0 26px;
	position: relative;
	z-index: 20;
}

.ge-mobile-module-link {
	align-items: center;
	background: #fff;
	border: 1px solid #a9b4ae;
	border-radius: 11px;
	color: #26342d;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	font-size: 14px;
	font-weight: 750;
	gap: 6px;
	justify-content: center;
	line-height: 1.15;
	min-height: 72px;
	padding: 10px 8px;
	text-align: center;
	text-decoration: none;
}

.ge-mobile-module-link > .dashicons:first-child {
	color: var(--ge-primary);
	font-size: 23px;
	height: 23px;
	width: 23px;
}

.ge-mobile-module-link:hover,
.ge-mobile-module-link:focus,
.ge-mobile-module-link.is-active {
	background: var(--ge-primary);
	border-color: var(--ge-primary);
	color: #fff;
}

.ge-mobile-module-link:hover > .dashicons,
.ge-mobile-module-link:focus > .dashicons,
.ge-mobile-module-link.is-active > .dashicons {
	color: #fff;
}

.ge-mobile-course-menu {
	min-width: 0;
}

.ge-mobile-course-menu > summary {
	box-sizing: border-box;
	list-style: none;
	width: 100%;
}

.ge-mobile-course-menu > summary::-webkit-details-marker {
	display: none;
}

.ge-mobile-nav-arrow {
	display: none;
}

.ge-mobile-course-panel {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 13px;
	box-shadow: 0 16px 38px rgba(24, 49, 37, 0.2);
	left: 0;
	max-height: min(440px, 62vh);
	overflow: auto;
	padding: 14px;
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
}

.ge-mobile-course-panel > strong {
	display: block;
	font-size: 15px;
	margin: 0 0 11px;
}

.ge-mobile-course-grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ge-mobile-rider-link {
	align-items: center;
	background: #f7f9f8;
	border: 1px solid #dbe3df;
	border-radius: 10px;
	color: #1f2924;
	display: grid;
	font-weight: 750;
	gap: 2px 8px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 54px;
	padding: 9px 10px;
	text-decoration: none;
}

.ge-mobile-rider-link small {
	color: var(--ge-muted);
	font-size: 12px;
	font-weight: 600;
	grid-column: 1;
}

.ge-mobile-rider-link > .dashicons {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.ge-mobile-rider-link:hover,
.ge-mobile-rider-link:focus,
.ge-mobile-rider-link.is-active {
	background: var(--ge-soft);
	border-color: var(--ge-primary);
	color: var(--ge-primary);
}

.ge-eyebrow {
	color: var(--ge-primary);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ge-dashboard-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 20px;
}

.ge-dashboard-card {
	padding: 20px;
}

.ge-dashboard-card span,
.ge-dashboard-card strong {
	display: block;
}

.ge-dashboard-card span {
	color: var(--ge-muted);
	font-size: 14px;
}

.ge-dashboard-card strong {
	font-size: 23px;
	margin-top: 5px;
}

.ge-dashboard-grid {
	grid-template-columns: repeat(2, minmax(260px, 1fr));
}

.ge-upcoming-card {
	grid-column: 1 / -1;
}

.ge-upcoming-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--ge-border);
	gap: 16px;
	padding: 13px 0;
}

.ge-upcoming-row span {
	display: block;
	color: var(--ge-muted);
	font-size: 14px;
	margin-top: 2px;
}

.ge-course-action {
	align-items: center;
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	text-align: right;
}

.ge-course-action form {
	margin: 0;
}

.ge-course-action-list {
	display: grid;
	gap: 7px;
	min-width: 285px;
}

.ge-course-action-button {
	align-items: center;
	background: #f7faf8;
	border: 1px solid #cbd9d1;
	border-radius: 9px;
	color: var(--ge-primary);
	cursor: pointer;
	display: grid;
	font: inherit;
	gap: 9px;
	grid-template-columns: 32px minmax(0, 1fr);
	min-height: 50px;
	padding: 7px 10px;
	text-align: left;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
	width: 100%;
}

.ge-course-action-button:hover,
.ge-course-action-button:focus {
	background: #edf5f0;
	border-color: var(--ge-primary);
	transform: translateY(-1px);
}

.ge-course-action-button > .dashicons {
	align-items: center;
	background: #e4f0e9;
	border-radius: 8px;
	display: flex;
	font-size: 18px;
	height: 32px;
	justify-content: center;
	width: 32px;
}

.ge-course-action-button span {
	color: inherit;
	display: block;
	font-size: inherit;
	margin: 0;
}

.ge-course-action-button strong,
.ge-course-action-button small {
	display: block;
}

.ge-course-action-button strong {
	font-size: 14px;
	line-height: 1.25;
}

.ge-course-action-button small {
	color: var(--ge-muted);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
	margin-top: 2px;
}

.ge-course-action-button.is-stop {
	background: #fffafa;
	border-color: #ead0d0;
	color: #9b3030;
}

.ge-course-action-button.is-stop > .dashicons {
	background: #faeaea;
}

.ge-course-action-button.is-stop:hover,
.ge-course-action-button.is-stop:focus {
	background: #fff2f2;
	border-color: #c95a5a;
}

.ge-link-button {
	background: transparent;
	border: 0;
	color: var(--ge-primary);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	padding: 4px 0;
}

.ge-course-state {
	color: #2d7441 !important;
	font-weight: 700;
}

.ge-course-closed {
	align-items: center;
	background: #fff3cd;
	border: 1px solid #edcf72;
	border-radius: 999px;
	color: #765400 !important;
	display: inline-flex !important;
	font-size: 13px !important;
	font-weight: 700;
	gap: 6px;
	padding: 5px 10px;
}

.ge-course-closed > .dashicons {
	font-size: 16px;
	height: 16px;
	margin: 0;
	width: 16px;
}

.ge-upcoming-row .ge-course-state {
	align-items: center;
	background: #e7f5eb;
	border: 1px solid #b9dfc3;
	border-radius: 999px;
	display: inline-flex;
	font-size: 13px;
	flex: 0 0 auto;
	margin: 0;
	padding: 5px 10px;
}

.ge-upcoming-row .ge-course-state.ge-course-cancelled {
	background: #fdeaea;
	border-color: #efbcbc;
	color: #a32d2d !important;
}

.ge-upcoming-row .ge-course-state-mobile {
	display: none;
}

.ge-upcoming-row .ge-course-cancel-reason {
	background: #f3f5f4;
	border-radius: 7px;
	font-size: 12px;
	margin-top: 5px;
	padding: 5px 8px;
}

.ge-roster-table-wrap {
	overflow-x: auto;
}

.ge-roster-table {
	border-collapse: collapse;
	min-width: 720px;
	width: 100%;
}

.ge-roster-table th,
.ge-roster-table td {
	border-bottom: 1px solid var(--ge-border);
	padding: 9px;
	text-align: left;
}

.ge-roster-table th small {
	display: block;
}

.ge-payment-rule-note {
	background: #fff8df;
	border-left: 4px solid #b88914;
	border-radius: 7px;
	padding: 12px 14px;
}

.ge-public-accordion {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 10px;
	margin-top: 14px;
	overflow: clip;
}

.ge-public-accordion > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 10px;
	grid-template-columns: auto 1fr auto;
	list-style: none;
	padding: 14px 16px;
}

.ge-public-accordion > summary::-webkit-details-marker {
	display: none;
}

.ge-public-accordion > summary > .dashicons:first-child {
	align-items: center;
	background: #edf5f0;
	border-radius: 7px;
	color: var(--ge-primary);
	display: inline-flex;
	height: 31px;
	justify-content: center;
	width: 31px;
}

.ge-public-accordion > summary small {
	color: var(--ge-muted);
	display: block;
	font-size: 12px;
	font-weight: 400;
	margin-top: 2px;
}

.ge-public-accordion-arrow {
	color: var(--ge-muted);
	transition: transform 160ms ease;
}

.ge-public-accordion[open] > summary .ge-public-accordion-arrow {
	transform: rotate(180deg);
}

.ge-public-accordion > summary:focus-visible {
	box-shadow: inset 0 0 0 3px rgba(53, 95, 73, 0.18);
	outline: 0;
}

.ge-public-summary-has-count {
	grid-template-columns: auto 1fr auto auto !important;
}

.ge-public-summary-count {
	align-items: center;
	background: #eaf2ed;
	border-radius: 999px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	height: 28px;
	justify-content: center;
	min-width: 28px;
	padding: 0 8px;
}

.ge-public-accordion-body {
	border-top: 1px solid var(--ge-border);
	padding: 16px;
}

.ge-staff-payment-accordion h3 {
	border: 0;
	margin-top: 0;
	padding-top: 0;
}

.ge-staff-payment-table {
	min-width: 1180px;
}

.ge-staff-payment-table .ge-payment-method-select {
	min-height: 36px;
	min-width: 125px;
	padding: 6px 9px;
	width: 140px;
}

.ge-staff-payment-table td small {
	color: var(--ge-muted);
	display: block;
	font-size: 12px;
	margin-top: 3px;
}

.ge-staff-payment-list-body {
	padding: 16px;
}

.ge-staff-payment-filters {
	align-items: center;
	background: #f7f9f8;
	border: 1px solid #e1e8e4;
	border-radius: 9px;
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	margin-bottom: 12px;
	padding: 8px 10px;
}

.ge-staff-payment-filters label {
	display: block;
	flex: 0 1 300px;
	margin: 0 !important;
	min-width: 0;
}

.ge-staff-payment-filters select {
	margin: 0;
	max-width: 100%;
	min-height: 36px;
	padding-bottom: 5px;
	padding-top: 5px;
	width: 100%;
}

.ge-staff-payment-filter-reset.ge-public-icon-button {
	flex: 0 0 36px;
	height: 36px;
	margin: 0;
	min-height: 36px;
	width: 36px;
}

.ge-staff-payment-filter-count {
	color: var(--ge-muted);
	font-size: 12px;
	margin: 0 0 0 auto;
	order: 3;
	white-space: nowrap;
}

.ge-staff-payment-filter-reset {
	order: 4;
}

.ge-staff-payment-filter-empty td {
	color: var(--ge-muted);
	padding: 24px 12px;
	text-align: center;
}

.ge-staff-payment-row[hidden],
.ge-staff-payment-filter-empty[hidden] {
	display: none !important;
}

.ge-staff-course-summary {
	padding: 16px;
}

.ge-staff-course-summary-filters {
	align-items: center;
	background: #f7f9f8;
	border: 1px solid #e1e8e4;
	border-radius: 9px;
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	margin-bottom: 12px;
	padding: 8px 10px;
}

.ge-staff-course-summary-filters label {
	display: block;
	flex: 0 1 300px;
	margin: 0 !important;
	min-width: 0;
}

.ge-staff-course-summary-filters select {
	margin: 0;
	max-width: 100%;
	min-height: 36px;
	padding-bottom: 5px;
	padding-top: 5px;
	width: 100%;
}

.ge-staff-course-summary-count {
	color: var(--ge-muted);
	font-size: 12px;
	margin: 0 0 0 auto;
	white-space: nowrap;
}

.ge-staff-course-summary-reset.ge-public-icon-button {
	flex: 0 0 36px;
	height: 36px;
	margin: 0;
	min-height: 36px;
	width: 36px;
}

.ge-staff-course-summary-table th:nth-child(n + 3),
.ge-staff-course-summary-table td:nth-child(n + 3) {
	text-align: center;
}

.ge-staff-course-summary-sort {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 5px;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: inherit;
	gap: 5px;
	justify-content: center;
	margin: -4px;
	padding: 4px;
}

.ge-staff-course-summary-sort span::before {
	color: #8a9890;
	content: '↕';
	font-size: 12px;
}

.ge-staff-course-summary-sort:hover,
.ge-staff-course-summary-sort:focus-visible,
.ge-staff-course-summary-sort.is-active {
	background: #edf4ef;
	color: var(--ge-primary);
	outline: 0;
}

.ge-staff-course-summary-sort.is-ascending span::before {
	color: currentColor;
	content: '↑';
}

.ge-staff-course-summary-sort.is-descending span::before {
	color: currentColor;
	content: '↓';
}

.ge-staff-course-summary-row td {
	background: #fff;
}

.ge-staff-course-summary-row.ge-summary-group-even td {
	background: #f7faf8;
}

.ge-staff-course-summary-row.ge-summary-group-start td {
	border-top: 2px solid #b9cdc1;
}

.ge-staff-course-summary-row.ge-summary-group-start td:first-child {
	box-shadow: inset 3px 0 0 var(--ge-primary);
}

.ge-staff-course-summary-rider {
	font-weight: 700;
}

.ge-staff-course-summary-rider-cell {
	vertical-align: middle;
}

.ge-staff-course-summary-rider-cell[hidden] {
	display: none !important;
}

.ge-staff-course-summary-discipline,
.ge-staff-course-summary-balance {
	align-items: center;
	background: #eef4f0;
	border: 1px solid #d9e5dd;
	border-radius: 999px;
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-width: 42px;
	padding: 4px 8px;
}

.ge-staff-course-summary-balance-positive {
	background: #e9f7ed;
	border-color: #cce8d4;
	color: #147531;
}

.ge-staff-course-summary-balance-negative {
	background: #fff0f1;
	border-color: #f4cdd1;
	color: #b4232d;
}

.ge-staff-course-summary-balance-neutral {
	color: var(--ge-muted);
}

.ge-staff-course-summary-empty td {
	color: var(--ge-muted);
	padding: 24px 12px;
	text-align: center;
}

.ge-staff-course-summary-more-wrap {
	display: flex;
	justify-content: center;
	padding-top: 14px;
}

.ge-staff-course-summary-more {
	min-width: 150px;
}

.ge-staff-course-summary-row[hidden],
.ge-staff-course-summary-empty[hidden],
.ge-staff-course-summary-more[hidden] {
	display: none !important;
}

@media (max-width: 760px) {
	.ge-staff-payment-filters,
	.ge-staff-course-summary-filters {
		flex-wrap: wrap;
	}

	.ge-staff-payment-filters label,
	.ge-staff-course-summary-filters label {
		flex: 1 1 calc(50% - 44px);
	}
}

@media (max-width: 560px) {
	.ge-staff-payment-list-body,
	.ge-staff-course-summary {
		padding: 12px;
	}

	.ge-staff-payment-filters,
	.ge-staff-course-summary-filters {
		gap: 8px;
		padding: 9px;
	}

	.ge-staff-payment-filters label,
	.ge-staff-course-summary-filters label {
		flex: 1 1 100%;
	}

	.ge-staff-payment-filter-count,
	.ge-staff-course-summary-count {
		margin-left: 0;
	}
}

.ge-payment-origin,
.ge-payment-status {
	background: #f0f2f1;
	border: 1px solid #d8ddda;
	border-radius: 999px;
	display: inline-flex;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	padding: 4px 8px;
	white-space: nowrap;
}

.ge-payment-origin-rider,
.ge-payment-status-pending {
	background: #fff4ce;
	border-color: #e6ce77;
	color: #785400;
}

.ge-payment-origin-staff,
.ge-payment-status-paid {
	background: #edf8f0;
	border-color: #b8d8c0;
	color: #276339;
}

.ge-payment-origin-wp {
	background: #eef5ff;
	border-color: #c5d8ee;
	color: #31536f;
}

.ge-payment-status-cancelled,
.ge-payment-status-refunded {
	background: #f0f2f1;
	border-color: #d8ddda;
	color: #56615b;
}

.ge-payment-request-row td {
	background: #fffdf4;
}

.ge-payment-request-row td:first-child {
	box-shadow: inset 3px 0 #dba617;
}

.ge-staff-payment-actions form {
	display: inline-block;
	margin: 0 10px 0 0;
}

.ge-staff-payment-actions .ge-link-button {
	display: inline-block;
	margin-right: 10px;
	text-decoration: none;
}

.ge-public-icon-actions {
	display: flex;
	gap: 6px;
	white-space: nowrap;
}

.ge-public-icon-actions form {
	margin: 0;
}

.ge-public-icon-button {
	align-items: center;
	background: #fff;
	border: 1px solid #b9c4be;
	border-radius: 6px;
	color: var(--ge-primary);
	cursor: pointer;
	display: inline-flex;
	height: 32px;
	justify-content: center;
	margin: 0;
	padding: 0;
	text-decoration: none;
	width: 32px;
}

.ge-public-icon-button:hover,
.ge-public-icon-button:focus-visible {
	background: #edf5f0;
	border-color: var(--ge-primary);
	color: var(--ge-primary-dark);
	outline: 0;
}

.ge-public-icon-button .dashicons {
	font-size: 17px;
	height: 17px;
	width: 17px;
}

.ge-public-icon-button-danger {
	color: #a52d2d;
}

.ge-public-icon-button-danger:hover,
.ge-public-icon-button-danger:focus-visible {
	background: #fff0f0;
	border-color: #c43d3d;
	color: #842020;
}

/* Keep text buttons and icon-only actions optically centred on every public view. */
.ge-public-button-icon > .dashicons,
.ge-public-icon-button > .dashicons {
	align-items: center;
	display: inline-flex;
	flex: 0 0 18px;
	font-size: 18px;
	height: 18px;
	justify-content: center;
	line-height: 1;
	margin: 0;
	position: static;
	vertical-align: middle;
	width: 18px;
}

.ge-public-button-icon > .dashicons::before,
.ge-public-icon-button > .dashicons::before {
	display: block;
	line-height: 18px;
}

.ge-upcoming-row-cancelled {
	background: #fff4f4;
	margin: 0 -10px;
	padding-left: 10px;
	padding-right: 10px;
}

.ge-course-cancelled {
	color: #b52d2d !important;
}

.ge-course-cancel-reason {
	max-width: 280px;
}

.ge-level-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ge-level-list li {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid var(--ge-border);
	padding: 11px 0;
}

.ge-course-history-card .ge-level-list li > strong {
	box-sizing: border-box;
	flex: 0 0 190px;
	text-align: left;
}

.ge-payment-history-more {
	display: flex;
	justify-content: center;
	padding-top: 18px;
}

.ge-payment-history [hidden] {
	display: none !important;
}

.ge-course-movements [hidden] {
	display: none !important;
}

.ge-payment-history-more .ge-public-button {
	min-width: 180px;
}

.ge-payment-history-list {
	display: grid;
	gap: 10px;
}

.ge-level-list .ge-payment-history-item {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ge-border);
	border-left: 4px solid #cfd8d2;
	border-radius: 10px;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 13px 14px;
}

.ge-level-list .ge-payment-history-item.ge-payment-history-pending {
	background: #fffdf7;
	border-left-color: #d79a16;
}

.ge-level-list .ge-payment-history-item.ge-payment-history-paid {
	border-left-color: #43935d;
}

.ge-level-list .ge-payment-history-item.ge-payment-history-cancelled,
.ge-level-list .ge-payment-history-item.ge-payment-history-refunded {
	background: #fafbfa;
	border-left-color: #9ca8a1;
}

.ge-payment-history-main {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.ge-payment-number {
	color: var(--ge-primary-dark);
	font-size: 14px;
}

.ge-payment-description {
	font-size: 14px;
	line-height: 1.45;
}

.ge-payment-history-main small {
	color: var(--ge-muted);
	line-height: 1.4;
}

.ge-payment-history-actions {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 92px;
}

.ge-payment-history-actions .ge-payment-status {
	font-size: 12px;
	padding: 5px 10px;
}

.ge-payment-invoice-button.ge-public-button {
	gap: 6px;
	margin: 0;
	min-height: 34px;
	padding: 6px 11px;
	width: auto;
}

.ge-payment-invoice-button .dashicons {
	font-size: 17px;
	height: 17px;
	width: 17px;
}

@media (max-width: 680px) {
	.ge-level-list .ge-payment-history-item {
		align-items: stretch;
		gap: 12px;
		grid-template-columns: 1fr;
	}

	.ge-payment-history-actions {
		align-items: center;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
	}
}

.ge-service-history-sections {
	display: grid;
	gap: 18px;
}

.ge-service-history-section {
	border: 1px solid var(--ge-border);
	border-radius: 12px;
	overflow: hidden;
}

.ge-service-history-section > header {
	align-items: center;
	background: #f5f8f6;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 14px 16px;
}

.ge-service-history-section > header > span:first-child {
	display: grid;
	gap: 2px;
}

.ge-service-history-section > header small {
	color: var(--ge-muted);
}

.ge-service-history-section .ge-level-list {
	margin: 0;
	padding: 0 16px;
}

.ge-service-history-section .ge-level-list li > strong {
	box-sizing: border-box;
	flex: 0 0 120px;
	text-align: right;
}

.ge-service-history-section .ge-level-list li > strong .ge-completed-by {
	text-align: right;
}

.ge-service-history-section [hidden] {
	display: none !important;
}

.ge-service-request-actions {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	gap: 8px;
}

.ge-service-request-actions form {
	margin: 0;
}

.ge-service-load-more {
	display: flex;
	justify-content: center;
	padding: 12px 16px 16px;
}

.ge-service-load-more .ge-public-button {
	min-width: 160px;
}

@media (max-width: 640px) {
	.ge-service-history-section > header {
		align-items: flex-start;
	}

	.ge-service-history-section .ge-level-list li {
		gap: 8px;
	}

	.ge-service-history-section .ge-level-list li > strong {
		flex-basis: 112px;
	}

	.ge-course-history-card .ge-level-list li > strong {
		flex-basis: 150px;
	}
}

.ge-payment-information-note {
	color: #526d5e;
	font-weight: 700;
}

.ge-payment-information-tag {
	background: #eaf2ed;
	border: 1px solid #c9dacf;
	border-radius: 999px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	font-size: 11px;
	font-weight: 750;
	margin-top: 5px;
	padding: 3px 8px;
}

.ge-profile-list {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 9px 14px;
	margin: 0;
}

.ge-profile-list dt {
	color: var(--ge-muted);
}

.ge-profile-list dd {
	margin: 0;
}

.ge-card-title-actions {
	align-items: flex-start;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 20px;
}

.ge-card-title-actions h2 {
	margin-bottom: 0;
}

.ge-card-title-actions .ge-public-button {
	flex: 0 0 auto;
	margin: 0;
}

.ge-profile-card {
	grid-column: 1 / -1;
}

.ge-profile-card .ge-profile-list {
	grid-template-columns: minmax(130px, auto) 1fr minmax(130px, auto) 1fr;
}

.ge-profile-edit-card {
	margin: 0 auto;
	max-width: none;
	width: 100%;
}

.ge-profile-context {
	display: block;
	padding-bottom: 34px;
	width: 100%;
}

.ge-profile-main-accordion.ge-public-card {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

.ge-profile-main-accordion[open] > summary {
	margin: 0;
}

.ge-profile-data-form > h3 {
	border-top: 1px solid var(--ge-border);
	margin: 24px 0 5px;
	padding-top: 20px;
}

.ge-profile-data-form > h3:first-of-type {
	border-top: 0;
	margin-top: 0;
	padding-top: 0;
}

.ge-profile-data-form > .ge-public-button {
	margin-top: 18px;
}

.ge-profile-password-accordion.ge-public-card {
	margin: 18px 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

.ge-profile-password-accordion[open] > summary {
	margin: 0;
}

.ge-profile-password-accordion .ge-public-button {
	margin-top: 16px;
}

.ge-profile-password-subsection {
	background: #f8fbf9;
	border: 1px solid var(--ge-border);
	box-shadow: none;
	margin: 26px 0 0;
	width: 100%;
}

.ge-profile-password-subsection > summary {
	padding: 16px 18px;
}

.ge-profile-rider-accordion.ge-public-card {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

.ge-profile-riders-list {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}

.ge-profile-rider-accordion[open] > summary {
	margin: 0;
}

.ge-profile-rider-actions {
	display: flex;
	justify-content: flex-end;
}

.ge-profile-rider-actions .ge-public-button {
	margin: 0;
}

.ge-staff-login {
	margin: 0 auto;
	max-width: 480px;
}

.ge-staff-public {
	max-width: none;
	width: 100%;
	padding: 0 14px;
}

.ge-staff-welcome {
	max-width: 660px;
}

.ge-staff-welcome p {
	color: var(--ge-muted);
	margin: 6px 0 0;
}

.ge-staff-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.ge-staff-summary-row {
	align-items: center;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	margin: -7px 0 25px;
}

.ge-staff-daily-services-shortcut {
	flex: 0 0 auto;
	margin: 0;
}

#ge-staff-daily-services {
	scroll-margin-top: 24px;
}

.ge-staff-summary-tag {
	align-items: center;
	background: #edf5f0;
	border: 1px solid #c9dacf;
	border-radius: 999px;
	color: var(--ge-primary-dark);
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	gap: 6px;
	min-height: 30px;
	padding: 4px 10px;
}

.ge-staff-summary-tag .dashicons {
	font-size: 16px;
	height: 16px;
	width: 16px;
}

.ge-staff-section-stack {
	background: var(--ge-soft);
	border: 1px solid var(--ge-border);
	border-radius: 14px;
	box-shadow: 0 8px 30px rgba(31, 41, 36, 0.045);
	margin: 0 0 22px;
	padding: 18px;
}

.ge-staff-section-heading {
	align-items: center;
	display: flex;
	gap: 12px;
	padding: 0 2px 2px;
}

.ge-staff-section-heading > .dashicons {
	align-items: center;
	background: var(--ge-primary);
	border-radius: 9px;
	color: #fff;
	display: inline-flex;
	flex: 0 0 38px;
	font-size: 20px;
	height: 38px;
	justify-content: center;
	width: 38px;
}

.ge-staff-section-heading h2 {
	font-size: 20px;
	line-height: 1.2;
	margin: 0;
}

.ge-staff-section-heading p {
	color: var(--ge-muted);
	font-size: 13px;
	margin: 2px 0 0;
}

.ge-staff-main-accordion {
	box-shadow: 0 3px 12px rgba(31, 41, 36, 0.04);
}

.ge-staff-main-accordion > summary,
.ge-staff-payment-accordion > summary {
	min-height: 68px;
}

.ge-staff-guided-body {
	background: #fff;
}

.ge-staff-help {
	align-items: flex-start;
	background: #edf5f0;
	border-radius: 8px;
	color: var(--ge-primary-dark);
	display: flex;
	font-size: 13px;
	gap: 8px;
	margin: 0 0 16px;
	padding: 11px 12px;
}

.ge-staff-help .dashicons {
	flex: 0 0 18px;
	font-size: 18px;
	height: 18px;
	margin-top: 1px;
	width: 18px;
}

.ge-staff-form-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(280px, 1.4fr) minmax(190px, 0.6fr);
}

.ge-staff-step {
	align-items: center;
	background: var(--ge-primary);
	border-radius: 50%;
	color: #fff;
	display: inline-flex;
	font-size: 11px;
	height: 21px;
	justify-content: center;
	margin-right: 7px;
	vertical-align: 1px;
	width: 21px;
}

.ge-staff-validation-list {
	display: grid;
	gap: 12px;
}

.ge-staff-validation-card {
	align-items: end;
	background: #fff;
	border: 1px solid var(--ge-border);
	border-left: 4px solid #d6a821;
	border-radius: 10px;
	display: grid;
	gap: 16px;
	grid-template-columns: minmax(190px, .75fr) minmax(320px, 1.5fr) auto;
	padding: 15px;
}

.ge-staff-validation-identity {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.ge-staff-validation-identity strong {
	font-size: 16px;
}

.ge-staff-validation-identity small,
.ge-staff-rider-number {
	color: var(--ge-muted);
	font-size: 12px;
	overflow-wrap: anywhere;
}

.ge-staff-rider-number {
	color: #8a6710;
	font-weight: 750;
	text-transform: uppercase;
}

.ge-staff-validation-levels {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.ge-staff-validation-levels label {
	margin: 0;
}

.ge-staff-validation-levels label > span {
	display: block;
	font-size: 12px;
	font-weight: 750;
	margin-bottom: 5px;
}

.ge-staff-validation-levels select {
	margin: 0;
	width: 100%;
}

.ge-staff-validation-submit {
	white-space: nowrap;
}

.ge-staff-rider-level-search {
	display: grid;
	font-weight: 750;
	gap: 7px;
	margin: 0 0 8px;
	max-width: 620px;
}

.ge-staff-search-input {
	align-items: center;
	border: 1px solid var(--ge-border);
	border-radius: 8px;
	display: flex;
	gap: 8px;
	padding: 0 12px;
}

.ge-staff-search-input:focus-within {
	border-color: var(--ge-primary);
	box-shadow: 0 0 0 2px rgba(47, 103, 76, .12);
}

.ge-staff-search-input .dashicons {
	color: var(--ge-primary);
	flex: 0 0 auto;
}

.ge-staff-search-input input[type="search"] {
	border: 0;
	box-shadow: none !important;
	margin: 0;
	min-height: 44px;
	outline: 0 !important;
	padding: 8px 0;
	width: 100%;
	-webkit-box-shadow: none !important;
}

.ge-public .ge-staff-search-input input[type="search"]:focus,
.ge-public .ge-staff-search-input input[type="search"]:focus-visible {
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
	-webkit-box-shadow: none !important;
}

.ge-staff-rider-search-feedback {
	color: var(--ge-muted);
	font-size: 13px;
	margin: 0 0 14px;
}

.ge-staff-existing-rider-card {
	border-left-color: var(--ge-primary);
}

.ge-staff-validation-list [data-ge-rider-edit-card][hidden] {
	display: none !important;
}

.ge-staff-empty-state {
	align-items: center;
	color: var(--ge-primary-dark);
	display: flex;
	gap: 9px;
	justify-content: center;
	padding: 18px;
}

.ge-staff-empty-state p {
	margin: 0;
}

.ge-staff-field-help {
	color: var(--ge-muted);
	display: block;
	font-size: 12px;
	font-weight: 500;
	margin-top: 5px;
}

.ge-staff-field-help.is-error {
	color: #a52d2d;
	font-weight: 700;
}

.ge-public .ge-session-date-picker[readonly] {
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23505a52' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") no-repeat right 10px center;
	cursor: pointer;
	padding-right: 38px;
}

.ge-public .ge-session-date-picker:disabled {
	background-color: #f0f2f1;
	cursor: not-allowed;
}

/* Calendrier des séances, limité au jour du cours sélectionné. */
.ui-datepicker {
	background: #fff;
	border: 1px solid #c3cbc6;
	border-radius: 9px;
	box-shadow: 0 8px 24px rgba(31, 41, 36, 0.18);
	box-sizing: border-box;
	display: none;
	font-family: inherit;
	font-size: 14px;
	max-width: calc(100vw - 24px);
	padding: 10px;
	width: 290px;
	z-index: 100100 !important;
}

.ui-datepicker-header {
	align-items: center;
	display: flex;
	gap: 5px;
	justify-content: space-between;
	padding: 2px 0 9px;
	position: relative;
}

.ui-datepicker-prev,
.ui-datepicker-next {
	align-items: center;
	border-radius: 5px;
	cursor: pointer;
	display: flex;
	height: 30px;
	justify-content: center;
	order: 1;
	width: 30px;
}

.ui-datepicker-next {
	order: 3;
}

.ui-datepicker-prev:hover,
.ui-datepicker-next:hover,
.ui-datepicker-prev:focus-visible,
.ui-datepicker-next:focus-visible {
	background: #edf5f0;
	outline: 0;
}

.ui-datepicker-prev span,
.ui-datepicker-next span {
	font-size: 0;
}

.ui-datepicker-prev span::before,
.ui-datepicker-next span::before {
	color: var(--ge-primary, #355f49);
	content: '\2039';
	font-size: 24px;
	line-height: 1;
}

.ui-datepicker-next span::before {
	content: '\203a';
}

.ui-datepicker-title {
	display: flex;
	flex: 1 1 auto;
	gap: 5px;
	justify-content: center;
	order: 2;
}

.ui-datepicker-title select {
	background: #fff;
	border: 1px solid #aebbb4;
	border-radius: 5px;
	color: #1f2924;
	font: inherit;
	font-size: 12px;
	min-height: 30px;
	padding: 0 24px 0 8px;
}

.ui-datepicker table {
	border-collapse: collapse;
	width: 100%;
}

.ui-datepicker th {
	color: #66736c;
	font-size: 11px;
	font-weight: 700;
	padding: 6px 2px;
	text-align: center;
}

.ui-datepicker td {
	padding: 2px;
	text-align: center;
}

.ui-datepicker td a,
.ui-datepicker td span {
	align-items: center;
	border-radius: 5px;
	box-sizing: border-box;
	display: flex;
	height: 32px;
	justify-content: center;
	text-decoration: none;
	width: 100%;
}

.ui-datepicker td a {
	background: #edf5f0;
	color: #244333;
	font-weight: 750;
}

.ui-datepicker td a:hover,
.ui-datepicker td a:focus-visible,
.ui-datepicker td a.ui-state-active {
	background: #355f49;
	color: #fff;
	outline: 0;
}

.ui-datepicker td.ui-state-disabled span {
	color: #b4bbb7;
}

.ui-datepicker .ui-datepicker-other-month span {
	color: #d5dad7;
}

.ge-staff-inline-button {
	margin: 0;
	min-height: 38px;
	padding: 7px 12px;
}

.ge-staff-daily-service-groups {
	display: grid;
	gap: 14px;
}

.ge-staff-daily-horse {
	border: 1px solid #d7e2dc;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
}

.ge-staff-daily-horse > header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: #f1f7f3;
	border-bottom: 1px solid #d7e2dc;
}

.ge-staff-daily-horse > header > .dashicons {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	color: #286347;
	background: #fff;
}

.ge-staff-daily-horse > header > span:nth-child(2) {
	display: grid;
	gap: 2px;
	min-width: 0;
	flex: 1;
}

.ge-staff-daily-horse > header strong {
	font-size: 17px;
}

.ge-staff-daily-horse > header small {
	color: #66756d;
}

.ge-staff-daily-service-list {
	display: grid;
}

.ge-staff-daily-service {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 13px 16px;
	border-bottom: 1px solid #edf1ef;
}

.ge-staff-daily-service:last-child {
	border-bottom: 0;
}

.ge-staff-daily-service > span:first-child {
	display: grid;
	gap: 3px;
}

.ge-staff-daily-service small {
	color: #66756d;
}

.ge-staff-daily-service-action {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
}

.ge-staff-daily-service-action form {
	margin: 0;
}

.ge-staff-service-type {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	color: #285941;
	background: #e8f4ec;
}

.ge-staff-service-type.is-pending {
	color: #815b00;
	background: #fff2c9;
}

.ge-staff-service-type.is-completed {
	color: #166534;
	background: #e4f6e9;
}

@media (max-width: 640px) {
	.ge-staff-daily-service {
		align-items: flex-start;
		flex-direction: column;
	}

	.ge-staff-daily-service-action {
		width: 100%;
		justify-content: space-between;
	}
}

.ge-staff-tools {
	grid-template-columns: minmax(300px, 0.8fr) minmax(380px, 1.2fr);
}

.ge-staff-cancellation-row {
	align-items: center;
	border-bottom: 1px solid var(--ge-border);
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding: 12px 0;
}

.ge-staff-cancellation-row span,
.ge-staff-cancellation-row small {
	display: block;
}

.ge-staff-cancellation-row small {
	color: var(--ge-muted);
}

.ge-staff-cancellation-row form {
	margin: 0;
}

.ge-staff-course-list {
	display: grid;
	gap: 10px;
}

.ge-staff-roster-course-filter {
	display: flex;
	justify-content: flex-start;
}

.ge-staff-roster-course-filter label {
	align-items: center;
	display: inline-flex;
	gap: 7px;
	margin: 0;
	position: relative;
	width: min(440px, 100%);
}

.ge-staff-roster-course-filter .dashicons {
	color: var(--ge-primary);
	font-size: 17px;
	height: 17px;
	margin-left: 10px;
	position: absolute;
	z-index: 2;
	width: 17px;
}

.ge-staff-roster-course-filter .ge-rider-combobox-input {
	background: #f7f9f8;
	border: 1px solid #dce5e0;
	min-height: 38px;
	padding-left: 36px !important;
}

.ge-staff-roster-filter-empty {
	background: #f7f9f8;
	border-radius: 8px;
	margin: 0;
	padding: 12px;
	text-align: center;
}

@media (max-width: 560px) {
	.ge-staff-roster-course-filter,
	.ge-staff-roster-course-filter label {
		width: 100%;
	}
}

.ge-staff-course-accordion {
	background: #fff;
	border: 1px solid var(--ge-border);
	border-radius: 9px;
	overflow: clip;
}

.ge-staff-course-accordion > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(170px, 1fr) auto auto auto auto;
	list-style: none;
	min-height: 58px;
	padding: 10px 13px;
}

.ge-staff-course-accordion > summary::-webkit-details-marker {
	display: none;
}

.ge-staff-course-accordion > summary:hover {
	background: #f9fbfa;
}

.ge-staff-course-accordion > summary:focus-visible {
	box-shadow: inset 0 0 0 3px rgba(53, 95, 73, 0.18);
	outline: 0;
}

.ge-staff-course-accordion > summary small {
	color: var(--ge-muted);
	display: block;
	font-size: 12px;
	font-weight: 500;
}

.ge-staff-course-accordion[open] > summary .ge-public-accordion-arrow {
	transform: rotate(180deg);
}

.ge-staff-course-body {
	border-top: 1px solid var(--ge-border);
	padding: 13px;
}

.ge-staff-level-tag,
.ge-staff-rider-count,
.ge-roster-state {
	border: 1px solid #d7ddda;
	border-radius: 999px;
	display: inline-flex;
	font-size: 11px;
	font-weight: 750;
	justify-content: center;
	line-height: 1.25;
	padding: 4px 8px;
	white-space: nowrap;
}

.ge-staff-level-debutant {
	background: #e7f4ea;
	border-color: #c4dfca;
	color: #276339;
}

.ge-staff-level-moyen {
	background: #fff3cf;
	border-color: #ead99f;
	color: #765500;
}

.ge-staff-level-avance {
	background: #f0e5f6;
	border-color: #dac5e6;
	color: #6d3a82;
}

.ge-staff-rider-count {
	background: #f0f2f1;
	color: #526059;
}

.ge-roster-state-enrolled {
	background: #e7f4ea;
	border-color: #c4dfca;
	color: #276339;
}

.ge-roster-state-excused {
	background: #fff3cf;
	border-color: #ead99f;
	color: #765500;
}

.ge-roster-state-cancelled {
	background: #fff0f0;
	border-color: #efc3c3;
	color: #942a2a;
}

.ge-roster-state-none {
	background: #f0f2f1;
	color: #66736c;
}

.ge-staff-empty-note {
	color: var(--ge-muted);
	margin: 0;
}

.ge-dashboard-home {
	color: inherit;
	text-decoration: none;
}

.ge-public-module-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin: 8px 0 26px;
}

.ge-module-link {
	align-items: center;
	background: #fff;
	border: 1px solid #9eaaa4;
	border-radius: 10px;
	color: #1f2924;
	display: flex;
	justify-content: center;
	min-height: 58px;
	padding: 10px 14px;
	text-align: center;
	text-decoration: none;
}

.ge-module-link:hover,
.ge-module-link:focus,
.ge-module-link.is-active {
	background: var(--ge-primary);
	border-color: var(--ge-primary);
	color: #fff;
}

.ge-public-pension-list {
	display: grid;
	gap: 18px;
}

.ge-public-pension-card {
	display: grid;
	gap: 18px;
}

.ge-public-pension-heading,
.ge-public-pension-footer {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.ge-public-pension-heading h3 {
	font-size: 24px;
	margin: 3px 0;
}

.ge-public-pension-heading p,
.ge-public-pension-plan,
.ge-public-pension-footer {
	margin: 0;
}

.ge-public-pension-plan {
	background: #f3f8f5;
	border-left: 4px solid var(--ge-primary);
	border-radius: 8px;
	display: grid;
	gap: 3px;
	padding: 12px 14px;
}

.ge-public-pension-plan small,
.ge-public-pension-footer small {
	color: var(--ge-muted);
}

.ge-public-pension-rights {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ge-public-pension-rights > div {
	align-items: center;
	background: #f8faf9;
	border: 1px solid #dce6e0;
	border-radius: 10px;
	display: flex;
	gap: 12px;
	padding: 14px;
}

.ge-public-pension-rights strong {
	align-items: center;
	background: #e4f2e8;
	border-radius: 50%;
	color: var(--ge-primary);
	display: flex;
	font-size: 22px;
	height: 46px;
	justify-content: center;
	width: 46px;
}

.ge-public-pension-footer {
	border-top: 1px solid var(--ge-border);
	flex-direction: column;
	padding-top: 14px;
}

.ge-course-page-title {
	margin: 24px 0 12px;
}

.ge-course-summary-grid {
	background: #edf5fc;
	border-radius: 16px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 24px;
	padding: 16px;
}

.ge-course-summary,
.ge-course-invoice-card {
	background: #fff;
	border: 1px solid #dbe6ef;
	border-radius: 14px;
	min-height: 160px;
	padding: 20px;
}

.ge-course-summary {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.ge-course-summary strong {
	align-items: center;
	background: #e9f4ff;
	border-radius: 50%;
	color: #1266a3;
	display: flex;
	font-size: 30px;
	height: 76px;
	justify-content: center;
	margin-bottom: 12px;
	width: 76px;
}

.ge-course-summary span {
	font-weight: 700;
}

.ge-course-invoice-card h3,
.ge-course-next-card h3,
.ge-course-enroll-card h3 {
	border: 0;
	margin: 0;
	padding: 0;
}

.ge-course-card-heading {
	align-items: center;
	display: flex;
	gap: 11px;
	min-width: 0;
}

.ge-course-card-heading > .dashicons {
	align-items: center;
	background: #edf5f0;
	border-radius: 7px;
	color: var(--ge-primary);
	display: inline-flex;
	flex: 0 0 31px;
	height: 31px;
	justify-content: center;
	width: 31px;
}

.ge-course-card-heading > div {
	display: grid;
	gap: 2px;
}

.ge-course-card-heading h3 {
	font-size: 17px;
	font-weight: 750;
	line-height: 1.25;
}

.ge-course-card-heading small {
	color: var(--ge-muted);
	font-size: 12px;
	font-weight: 400;
}

.ge-course-enroll-card > .ge-course-card-heading {
	margin-bottom: 14px;
}

.ge-course-invoice-card > .ge-course-card-heading {
	margin-bottom: 14px;
}

.ge-course-invoice-card label {
	font-size: 14px;
}

.ge-course-invoice-card .ge-public-button {
	margin-top: 10px;
	width: 100%;
}

.ge-discipline-not-validated {
	color: #a52626;
	font-weight: 700;
}

.ge-course-content-grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
	gap: 24px;
	align-items: start;
}

.ge-course-side-column {
	display: grid;
	gap: 24px;
	min-width: 0;
}

.ge-course-movements {
	margin: 0;
}

.ge-course-movements > .ge-public-accordion-body {
	border-top: 0;
}

.ge-horse-edit-accordion > .ge-public-accordion-body {
	border-top: 0;
}

.ge-course-movement-table-wrap {
	overflow-x: auto;
}

.ge-course-movement-table {
	border-collapse: collapse;
	font-size: 14px;
	width: 100%;
}

.ge-course-movement-table th,
.ge-course-movement-table td {
	border-bottom: 1px solid var(--ge-border);
	padding: 10px 8px;
	text-align: left;
	vertical-align: top;
}

.ge-course-movement-table th:nth-child(2),
.ge-course-movement-table th:nth-child(3),
.ge-course-movement-table td:nth-child(2),
.ge-course-movement-table td:nth-child(3) {
	text-align: right;
	white-space: nowrap;
}

.ge-course-movement-table td small {
	color: var(--ge-muted);
	display: block;
	font-size: 11px;
	font-weight: 400;
	margin-top: 2px;
}

.ge-course-movement-quantity {
	font-weight: 800;
}

.ge-course-movement-quantity.is-positive {
	color: #23713f;
}

.ge-course-movement-quantity.is-negative {
	color: #a52a2a;
}

.ge-course-movement-balance {
	font-weight: 800;
}

.ge-section-heading {
	align-items: flex-start;
	display: flex;
	gap: 18px;
	justify-content: space-between;
}

.ge-section-heading p {
	color: #c62828;
	font-size: 13px;
	font-weight: 700;
	margin: 0;
	max-width: 360px;
}

.ge-enrollment-mode {
	border: 1px solid var(--ge-border);
	border-radius: 8px;
	margin-top: 18px;
	padding: 10px 14px;
}

.ge-enrollment-mode legend {
	font-weight: 700;
	padding: 0 5px;
}

.ge-enrollment-mode label {
	align-items: flex-start;
	display: flex;
	font-weight: 500;
	gap: 8px;
}

.ge-enrollment-mode input[type="radio"] {
	min-height: auto;
	margin-top: 5px;
	width: auto;
}

.ge-module-empty-page {
	min-height: 420px;
	padding-top: 10px;
}

@media (max-width: 1100px) {
	.ge-user-overview-layout {
		grid-template-columns: 1fr;
	}

	.ge-user-overview-sidebar {
		order: -1;
		position: static;
	}
}

@media (max-width: 960px) {
	.ge-staff-public {
		padding-left: 12px;
		padding-right: 12px;
	}

	.ge-staff-dashboard-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.ge-staff-dashboard-head .ge-dashboard-actions {
		flex-wrap: wrap;
	}

	.ge-staff-payment-accordion .ge-dashboard-grid,
	.ge-staff-form-grid {
		grid-template-columns: 1fr;
	}

	.ge-staff-validation-card {
		align-items: stretch;
		grid-template-columns: 1fr;
	}

	.ge-staff-validation-submit {
		width: 100%;
	}

	.ge-staff-payment-table {
		min-width: 1050px;
	}
}

@media (max-width: 700px) {
	.ge-horse-summary {
		grid-template-columns: 38px minmax(0, 1fr) auto;
		padding: 15px;
	}

	.ge-overview-horse-card .ge-rider-summary-edit.ge-public-button {
		font-size: 13px;
		padding: 7px 10px;
	}

	.ge-course-movement-table th,
	.ge-course-movement-table td {
		padding-left: 6px;
		padding-right: 6px;
	}
}

@media (max-width: 860px) {
	.ge-dashboard-grid,
	.ge-dashboard-cards,
	.ge-public-fields,
	.ge-overview-rider-grid,
	.ge-account-overview-list,
	.ge-rider-overview-list {
		grid-template-columns: 1fr;
	}

	.ge-overview-section-heading {
		align-items: flex-start;
	}

	.ge-overview-module-section {
		padding: 8px;
	}

	.ge-overview-rider-card header {
		flex-wrap: wrap;
	}

	.ge-overview-rider-accordion > summary {
		gap: 8px;
		grid-template-columns: 34px minmax(0, 1fr) auto auto;
		padding: 14px;
	}

	.ge-rider-summary-icon {
		height: 34px;
		width: 34px;
	}

	.ge-rider-summary-disciplines {
		grid-column: 2 / -1;
		grid-row: 2;
		justify-content: flex-start;
	}

	.ge-rider-summary-edit {
		grid-column: 3;
		grid-row: 1;
	}

	.ge-overview-rider-accordion > summary > .ge-public-accordion-arrow {
		grid-column: 4;
		grid-row: 1;
	}

	.ge-overview-rider-body {
		padding: 0 14px 14px;
	}

	.ge-public-auth-shell {
		border-radius: 12px;
		padding: 13px;
	}

	.ge-auth-card {
		padding: 25px 18px;
	}

	.ge-auth-tab {
		font-size: 14px;
		min-height: 44px;
		padding: 8px;
	}

	.ge-auth-heading {
		margin-bottom: 22px;
	}

	.ge-dashboard-head {
		align-items: center;
		flex-direction: row;
		gap: 12px;
		margin-bottom: 18px;
		position: relative;
	}

	.ge-dashboard-head h2 {
		font-size: clamp(25px, 5vw, 34px);
		line-height: 1.12;
	}

	.ge-dashboard-actions-desktop {
		display: flex;
		margin-left: auto;
		width: auto;
	}

	.ge-dashboard-actions-desktop form {
		display: none;
	}

	.ge-dashboard-actions-desktop .ge-public-button {
		min-height: 46px;
		padding: 10px 16px;
		width: auto;
	}

	.ge-mobile-account-menu {
		display: block;
		margin-left: 0;
		position: relative;
		z-index: 30;
	}

	.ge-mobile-account-menu > summary {
		align-items: center;
		background: #fff;
		border: 1px solid var(--ge-primary);
		border-radius: 10px;
		color: var(--ge-primary);
		cursor: pointer;
		display: flex;
		height: 46px;
		justify-content: center;
		list-style: none;
		width: 46px;
	}

	.ge-mobile-account-menu > summary::-webkit-details-marker,
	.ge-mobile-course-menu > summary::-webkit-details-marker {
		display: none;
	}

	.ge-mobile-account-menu > summary .dashicons {
		font-size: 26px;
		height: 26px;
		width: 26px;
	}

	.ge-mobile-account-menu-panel {
		background: #fff;
		border: 1px solid var(--ge-border);
		border-radius: 12px;
		box-shadow: 0 14px 34px rgba(24, 49, 37, 0.18);
		min-width: 230px;
		overflow: hidden;
		position: absolute;
		right: 0;
		top: calc(100% + 8px);
	}

	.ge-mobile-account-menu-panel a,
	.ge-mobile-account-menu-panel button {
		align-items: center;
		background: #fff;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		color: #1f2924;
		cursor: pointer;
		display: flex;
		font: inherit;
		font-weight: 700;
		gap: 10px;
		justify-content: flex-start;
		min-height: 50px;
		padding: 11px 14px;
		text-align: left;
		text-decoration: none;
		width: 100%;
	}

	.ge-mobile-account-menu-panel form {
		border-top: 1px solid var(--ge-border);
		margin: 0;
	}

	.ge-mobile-account-menu-panel a:hover,
	.ge-mobile-account-menu-panel a:focus,
	.ge-mobile-account-menu-panel button:hover,
	.ge-mobile-account-menu-panel button:focus {
		background: var(--ge-soft);
		color: var(--ge-primary);
	}

	.ge-upcoming-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.ge-staff-tools {
		grid-template-columns: 1fr;
	}

	.ge-staff-cancellation-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.ge-staff-cancellation-row form,
	.ge-staff-cancellation-row .ge-staff-inline-button {
		width: 100%;
	}

	.ge-staff-public {
		font-size: 15px;
		margin-top: 14px;
		padding: 0 8px;
	}

	.ge-staff-summary {
		margin: 0;
	}

	.ge-staff-summary-row {
		align-items: stretch;
		flex-direction: column;
		margin-bottom: 18px;
	}

	.ge-staff-daily-services-shortcut {
		width: 100%;
	}

	.ge-staff-summary-tag {
		font-size: 12px;
	}

	.ge-staff-section-stack {
		border-radius: 11px;
		padding: 11px;
	}

	.ge-staff-section-heading {
		align-items: flex-start;
	}

	.ge-staff-section-heading > .dashicons {
		flex-basis: 34px;
		height: 34px;
		width: 34px;
	}

	.ge-public-accordion > summary {
		gap: 8px;
		padding: 12px;
	}

	.ge-public-accordion > summary small {
		display: none;
	}

	.ge-public-accordion-body {
		padding: 12px;
	}

	.ge-public-summary-count {
		height: 25px;
		min-width: 25px;
		padding: 0 6px;
	}

	.ge-staff-course-accordion > summary {
		grid-template-columns: minmax(130px, 1fr) auto auto auto;
	}

	.ge-staff-course-accordion > summary .ge-staff-rider-count {
		display: none;
	}

	.ge-staff-course-body {
		padding: 10px;
	}

	.ge-staff-public .ge-roster-table-wrap {
		overflow: visible;
	}

	.ge-staff-public .ge-responsive-table,
	.ge-staff-public .ge-responsive-table tbody,
	.ge-staff-public .ge-responsive-table tr,
	.ge-staff-public .ge-responsive-table td {
		display: block;
		min-width: 0;
		width: 100%;
	}

	.ge-staff-public .ge-responsive-table {
		border-collapse: separate;
		border-spacing: 0;
	}

	.ge-staff-public .ge-responsive-table thead {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.ge-staff-public .ge-responsive-table tr {
		background: #fff;
		border: 1px solid var(--ge-border);
		border-radius: 9px;
		margin-bottom: 11px;
		overflow: hidden;
		padding: 3px 11px;
	}

	.ge-staff-public .ge-responsive-table tr:last-child {
		margin-bottom: 0;
	}

	.ge-staff-public .ge-responsive-table td {
		align-items: start;
		border: 0;
		display: grid;
		gap: 10px;
		grid-template-columns: minmax(94px, 0.75fr) minmax(0, 1.25fr);
		padding: 9px 0;
		word-break: break-word;
	}

	.ge-staff-public .ge-responsive-table td + td {
		border-top: 1px solid #edf0ee;
	}

	.ge-staff-public .ge-responsive-table td::before {
		color: var(--ge-muted);
		content: attr(data-label);
		font-size: 12px;
		font-weight: 750;
	}

	.ge-staff-public .ge-responsive-table td[colspan] {
		display: block;
		text-align: center;
	}

	.ge-staff-public .ge-responsive-table td[colspan]::before {
		display: none;
	}

	.ge-staff-public .ge-payment-request-row {
		background: #fffdf4;
		box-shadow: inset 3px 0 #dba617;
	}

	.ge-staff-public .ge-payment-request-row td {
		background: transparent;
	}

	.ge-staff-public .ge-payment-request-row td:first-child {
		box-shadow: none;
	}

	.ge-staff-public .ge-staff-payment-table .ge-payment-method-select {
		min-width: 0;
		width: 100%;
	}

	.ge-staff-public .ge-public-icon-actions {
		flex-wrap: wrap;
	}

	.ge-course-action {
		text-align: left;
	}

	.ge-public-module-nav-desktop,
	.ge-course-summary-grid,
	.ge-course-content-grid,
	.ge-public-pension-rights {
		grid-template-columns: 1fr;
	}

	.ge-public-module-nav-desktop {
		display: none;
	}

	.ge-rider-switcher {
		display: none;
	}

	.ge-mobile-module-nav {
		display: grid;
		gap: 9px;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		margin: 0 0 22px;
		position: relative;
		z-index: 20;
	}

	.ge-mobile-module-link {
		align-items: center;
		background: #fff;
		border: 1px solid #a9b4ae;
		border-radius: 11px;
		color: #26342d;
		cursor: pointer;
		display: flex;
		flex-direction: column;
		font-size: 13px;
		font-weight: 750;
		gap: 5px;
		justify-content: center;
		line-height: 1.15;
		min-height: 64px;
		padding: 8px 6px;
		text-align: center;
		text-decoration: none;
	}

	.ge-mobile-module-link > .dashicons:first-child {
		color: var(--ge-primary);
		font-size: 22px;
		height: 22px;
		width: 22px;
	}

	.ge-mobile-module-link:hover,
	.ge-mobile-module-link:focus,
	.ge-mobile-module-link.is-active {
		background: var(--ge-primary);
		border-color: var(--ge-primary);
		color: #fff;
	}

	.ge-mobile-module-link:hover > .dashicons,
	.ge-mobile-module-link:focus > .dashicons,
	.ge-mobile-module-link.is-active > .dashicons {
		color: #fff;
	}

	.ge-mobile-course-menu {
		min-width: 0;
	}

	.ge-mobile-course-menu > summary {
		box-sizing: border-box;
		list-style: none;
		width: 100%;
	}

	.ge-mobile-nav-arrow {
		display: none;
	}

	.ge-mobile-course-panel {
		background: #fff;
		border: 1px solid var(--ge-border);
		border-radius: 13px;
		box-shadow: 0 16px 38px rgba(24, 49, 37, 0.2);
		left: 0;
		max-height: min(440px, 62vh);
		overflow: auto;
		padding: 14px;
		position: absolute;
		right: 0;
		top: calc(100% + 8px);
	}

	.ge-mobile-course-panel > strong {
		display: block;
		font-size: 15px;
		margin: 0 0 11px;
	}

	.ge-mobile-course-grid {
		display: grid;
		gap: 8px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ge-mobile-rider-link {
		align-items: center;
		background: #f7f9f8;
		border: 1px solid #dbe3df;
		border-radius: 10px;
		color: #1f2924;
		display: grid;
		font-weight: 750;
		gap: 2px 8px;
		grid-template-columns: minmax(0, 1fr) auto;
		min-height: 54px;
		padding: 9px 10px;
		text-decoration: none;
	}

	.ge-mobile-rider-link small {
		color: var(--ge-muted);
		font-size: 12px;
		font-weight: 600;
		grid-column: 1;
	}

	.ge-mobile-rider-link > .dashicons {
		grid-column: 2;
		grid-row: 1 / span 2;
	}

	.ge-mobile-rider-link:hover,
	.ge-mobile-rider-link:focus,
	.ge-mobile-rider-link.is-active {
		background: var(--ge-soft);
		border-color: var(--ge-primary);
		color: var(--ge-primary);
	}

	.ge-public-pension-heading {
		flex-direction: column;
	}

	.ge-section-heading {
		flex-direction: column;
	}

	.ge-card-title-actions {
		flex-direction: column;
	}

	.ge-profile-card .ge-profile-list {
		grid-template-columns: 110px 1fr;
	}
}

@media (max-width: 520px) {
	.ge-mobile-course-grid {
		grid-template-columns: 1fr;
	}

	.ge-mobile-module-nav {
		gap: 7px;
	}

	.ge-mobile-module-link {
		font-size: 12px;
		min-height: 60px;
		padding-left: 4px;
		padding-right: 4px;
	}
}

/* La nouvelle navigation remplace partout l'ancien menu et son sélecteur. */
.ge-public-module-nav.ge-public-module-nav-desktop,
.ge-rider-switcher {
	display: none;
}

@media (max-width: 860px) {
	.ge-course-summary-grid {
		gap: 8px;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding: 8px;
	}

	.ge-course-summary {
		min-height: 118px;
		padding: 9px 5px;
	}

	.ge-course-summary strong {
		font-size: 23px;
		height: 50px;
		margin-bottom: 8px;
		width: 50px;
	}

	.ge-course-summary span {
		font-size: 12px;
		line-height: 1.25;
	}

	.ge-course-invoice-card {
		grid-column: 1 / -1;
		min-height: 0;
		padding: 15px;
	}

	.ge-course-action,
	.ge-course-action-list {
		min-width: 0;
		width: 100%;
	}

	.ge-course-action {
		justify-content: flex-start;
	}

	.ge-course-action-list {
		flex: 1 1 auto;
	}

	.ge-course-action-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ge-course-action-button {
		height: 100%;
		min-height: 58px;
	}
}

@media (max-width: 520px) {
	.ge-course-action-list {
		grid-template-columns: 1fr;
	}

	.ge-upcoming-details {
		align-items: center;
		display: grid;
		gap: 2px 8px;
		grid-template-columns: minmax(0, 1fr) auto;
		width: 100%;
	}

	.ge-upcoming-details > span:not(.ge-course-state-mobile),
	.ge-upcoming-details > small {
		grid-column: 1 / -1;
	}

	.ge-upcoming-row .ge-course-state-mobile {
		display: inline-flex;
		grid-column: 2;
		grid-row: 1;
	}

	.ge-upcoming-row .ge-course-state-action {
		display: none;
	}

	.ge-space-switch-button {
		border-radius: 10px;
		font-size: 13px;
		gap: 6px;
		padding: 8px 10px !important;
		white-space: nowrap;
	}

	.ge-space-switch-button .dashicons {
		font-size: 17px;
		height: 17px;
		width: 17px;
	}

	.ge-staff-welcome p {
		display: none;
	}
}

@media (max-width: 400px) {
	.ge-space-switch-button > span:last-child {
		display: none;
	}

	.ge-space-switch-button::after {
		content: attr(data-short-label);
	}
}
.ge-staff-attendance-link{align-items:center;background:#fff;border:1px solid #a9bdb3;border-radius:7px;color:#315f49;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:700;gap:6px;justify-content:center;line-height:1.2;margin-left:auto;padding:7px 10px;text-decoration:none}.ge-staff-attendance-link:hover,.ge-staff-attendance-link:focus{background:#edf5f0;border-color:#315f49;color:#234b38}.ge-staff-attendance-link .dashicons{font-size:17px;height:17px;line-height:17px;width:17px}
@media (max-width:700px){.ge-staff-attendance-link{padding:7px}.ge-staff-attendance-link span:last-child{display:none}}

.ge-staff-mobile-roster {
	display: none;
}

@media (min-width: 701px) {
	.ge-staff-roster-table {
		table-layout: fixed;
	}

	.ge-staff-occurrence-status {
		display: block;
		font-size: 10px;
		font-weight: 700;
		line-height: 1.2;
		margin-top: 3px;
	}

	.ge-staff-occurrence-status-full {
		color: #9a6500;
	}

	.ge-staff-occurrence-status-cancelled {
		color: #a5282f;
	}

	.ge-staff-roster-table th:first-child,
	.ge-staff-roster-table td:first-child {
		width: 28%;
	}

	.ge-staff-roster-table th:not(:first-child),
	.ge-staff-roster-table td:not(:first-child) {
		text-align: center;
		width: 14.4%;
	}
}

@media (max-width: 700px) {
	.ge-staff-desktop-roster {
		display: none;
	}

	.ge-staff-mobile-roster {
		display: grid;
		gap: 9px;
	}

	.ge-staff-course-body {
		background: #f5f8f6;
	}

	.ge-staff-occurrence-card {
		background: #fff;
		border: 1px solid #d8e2dc;
		border-radius: 9px;
		overflow: hidden;
	}

	.ge-staff-occurrence-card > summary {
		align-items: center;
		cursor: pointer;
		display: grid;
		gap: 8px;
		grid-template-columns: minmax(0, 1fr) auto auto;
		list-style: none;
		min-height: 54px;
		padding: 10px 12px;
	}

	.ge-staff-occurrence-card > summary::-webkit-details-marker {
		display: none;
	}

	.ge-staff-occurrence-card > summary strong {
		display: block;
		font-size: 14px;
		line-height: 1.3;
		text-transform: capitalize;
	}

	.ge-staff-occurrence-card > summary small {
		color: #942a2a;
		display: block;
		font-size: 11px;
		font-weight: 700;
		margin-top: 2px;
	}

	.ge-staff-occurrence-card > summary small.ge-staff-occurrence-status-full {
		color: #9a6500;
	}

	.ge-staff-occurrence-card[open] > summary {
		background: #eef5f1;
		border-bottom: 1px solid #d8e2dc;
	}

	.ge-staff-occurrence-card[open] > summary .ge-public-accordion-arrow {
		transform: rotate(180deg);
	}

	.ge-staff-occurrence-card.is-cancelled > summary {
		background: #fff7f7;
	}

	.ge-staff-occurrence-count {
		align-items: center;
		background: #e8f1ec;
		border-radius: 999px;
		color: #315f49;
		display: inline-flex;
		font-size: 12px;
		font-weight: 800;
		height: 28px;
		justify-content: center;
		min-width: 28px;
		padding: 0 7px;
	}

	.ge-staff-occurrence-riders {
		display: grid;
		padding: 0 12px;
	}

	.ge-staff-occurrence-rider {
		align-items: center;
		border-bottom: 1px solid #e8eeea;
		display: flex;
		gap: 10px;
		justify-content: space-between;
		min-height: 59px;
		padding: 9px 0;
	}

	.ge-staff-occurrence-rider:last-child {
		border-bottom: 0;
	}

	.ge-staff-occurrence-rider > span:first-child {
		min-width: 0;
	}

	.ge-staff-occurrence-rider small,
	.ge-staff-occurrence-rider strong {
		display: block;
	}

	.ge-staff-occurrence-rider small {
		color: var(--ge-muted);
		font-size: 10px;
		line-height: 1.2;
		margin-bottom: 3px;
		text-transform: uppercase;
	}

	.ge-staff-occurrence-rider strong {
		font-size: 14px;
		line-height: 1.3;
		word-break: break-word;
	}

	.ge-staff-occurrence-rider .ge-roster-state {
		flex: 0 0 auto;
	}

	.ge-staff-occurrence-riders .ge-staff-empty-note {
		padding: 14px 0;
		text-align: center;
	}
}
.ge-course-enrollment-form select option.ge-course-option-cancelled {
	color: #7a817e;
	font-style: italic;
}

.ge-duplicate-dialog-backdrop {
	align-items: center;
	background: rgba(20, 39, 30, .58);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 20px;
	position: fixed;
	z-index: 100000;
}

.ge-duplicate-dialog {
	background: #fff;
	border: 1px solid #d5e0da;
	border-radius: 20px;
	box-shadow: 0 24px 70px rgba(17, 42, 29, .28);
	max-height: calc(100vh - 40px);
	overflow: auto;
	padding: 28px;
	position: relative;
	width: min(660px, 100%);
}

.ge-duplicate-dialog-close {
	align-items: center;
	background: #f2f6f3;
	border-radius: 50%;
	color: #315f49;
	display: inline-flex;
	height: 36px;
	justify-content: center;
	position: absolute;
	right: 18px;
	top: 18px;
	width: 36px;
}

.ge-duplicate-dialog-close:hover,
.ge-duplicate-dialog-close:focus {
	background: #e3efe7;
	color: #184c34;
}

.ge-duplicate-dialog-close .dashicons {
	font-size: 22px;
	height: 22px;
	line-height: 22px;
	width: 22px;
}

.ge-duplicate-dialog .ge-course-card-heading {
	align-items: flex-start;
	border-bottom: 1px solid #e1e8e4;
	padding-bottom: 20px;
	padding-right: 44px;
}

.ge-duplicate-dialog-heading > .dashicons {
	flex-basis: 38px;
	height: 38px;
	width: 38px;
}

.ge-duplicate-dialog-heading h2 {
	font-size: 21px;
	line-height: 1.25;
	margin: 0 0 5px;
}

.ge-duplicate-dialog-heading small {
	display: block;
	font-size: 13px;
	line-height: 1.5;
}

.ge-duplicate-match-list {
	display: grid;
	gap: 12px;
	margin: 20px 0 16px;
}

.ge-public label.ge-duplicate-match {
	align-items: center;
	background: #f5f8f6;
	border: 1px solid #d2dfd7;
	border-radius: 14px;
	cursor: pointer;
	display: flex;
	gap: 14px;
	margin: 0;
	min-height: 76px;
	padding: 16px 18px;
	transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ge-duplicate-match:hover {
	background: #f0f7f3;
	border-color: #8fb6a1;
}

.ge-duplicate-match:has(input:checked) {
	background: #edf6f0;
	border-color: #397457;
	box-shadow: 0 0 0 2px rgba(57, 116, 87, .12);
}

.ge-public .ge-duplicate-match input[type="radio"] {
	accent-color: var(--ge-primary);
	flex: 0 0 auto;
	height: 20px;
	margin: 0 !important;
	min-height: 0;
	padding: 0;
	width: 20px;
}

.ge-duplicate-match span,
.ge-duplicate-match small {
	display: block;
}

.ge-duplicate-match strong {
	display: block;
	font-size: 16px;
	line-height: 1.35;
}

.ge-duplicate-match small {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-top: 5px;
}

.ge-duplicate-match small .dashicons {
	font-size: 15px;
	height: 15px;
	width: 15px;
}

.ge-duplicate-match small em {
	background: #fff0cf;
	border-radius: 999px;
	color: #805b00;
	font-style: normal;
	margin-left: 5px;
	padding: 2px 8px;
}

.ge-duplicate-match small,
.ge-duplicate-dialog-help {
	color: var(--ge-muted);
}

.ge-duplicate-dialog-help {
	align-items: flex-start;
	background: #f7f8f7;
	border-left: 3px solid #8aaa99;
	border-radius: 8px;
	display: flex;
	gap: 10px;
	padding: 12px 14px;
}

.ge-duplicate-dialog-help > .dashicons {
	color: var(--ge-primary);
	flex: 0 0 18px;
	font-size: 18px;
	height: 18px;
	margin-top: 1px;
	width: 18px;
}

.ge-duplicate-dialog-help p {
	line-height: 1.55;
	margin: 0;
}

.ge-duplicate-dialog-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.ge-duplicate-dialog-actions form {
	margin: 0;
}

.ge-duplicate-dialog-actions .ge-public-button {
	margin: 0;
	min-height: 46px;
}

@media (max-width: 600px) {
	.ge-duplicate-dialog-backdrop {
		align-items: flex-end;
		padding: 10px;
	}

	.ge-duplicate-dialog {
		border-radius: 18px 18px 12px 12px;
		max-height: calc(100vh - 20px);
		padding: 20px 16px;
	}

	.ge-duplicate-dialog-heading h2 {
		font-size: 18px;
	}

	.ge-duplicate-match {
		padding: 14px;
	}

	.ge-duplicate-dialog-actions,
	.ge-duplicate-dialog-actions form,
	.ge-duplicate-dialog-actions .ge-public-button {
		width: 100%;
	}
}

.ge-horse-rider-assignment {
	background: #f5f8f6;
	border: 1px solid #d6e2db;
	border-radius: 12px;
	box-sizing: border-box;
	margin: 18px 0;
	min-width: 0;
	padding: 14px;
	width: 100%;
}

.ge-horse-rider-assignment legend {
	font-weight: 700;
	padding: 0 6px;
}

.ge-horse-rider-assignment > p,
.ge-course-horse-choice small,
.ge-public-help {
	color: var(--ge-muted);
	display: block;
	font-size: .88em;
}

.ge-horse-rider-options {
	display: grid;
	gap: 8px;
	grid-template-columns: minmax(0, 1fr);
	margin-top: 12px;
	min-width: 0;
	width: 100%;
}

.ge-horse-rider-options label {
	align-items: center;
	background: #fff;
	border: 1px solid #d6e2db;
	border-radius: 9px;
	box-sizing: border-box;
	display: flex;
	gap: 9px;
	margin: 0;
	min-width: 0;
	padding: 10px 12px;
	width: 100%;
}

.ge-public .ge-horse-rider-options input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	background-color: #fff;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 12px 12px;
	border: 2px solid #9aa8a0 !important;
	border-radius: 5px !important;
	box-shadow: none !important;
	box-sizing: border-box;
	flex: 0 0 20px;
	height: 20px !important;
	margin: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	position: static !important;
	width: 20px !important;
}

.ge-public .ge-horse-rider-options input[type="checkbox"]:checked {
	background-color: var(--ge-primary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.8' d='m4 10 4 4 8-9'/%3E%3C/svg%3E");
	border-color: var(--ge-primary) !important;
}

.ge-horse-rider-options span {
	display: block;
	font-size: 14px;
	line-height: 1.35;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: normal;
}

.ge-course-horse-choice {
	display: block;
	margin-top: 14px;
}

.ge-course-horse-choice[hidden] {
	display: none !important;
}

@media (max-width: 700px) {
	.ge-horse-rider-assignment { padding: 12px; }
	.ge-horse-rider-options label { padding: 10px; }
}
