.sailing-calendar,
.sailing-my-account,
.sailing-season-standings {
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: #021c37;
	font-size: 16px;
	line-height: 1.5;
}

.sailing-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 1em;
}

.sailing-table-scroll table {
	margin-bottom: 0;
}

.sailing-calendar h2,
.sailing-calendar h3,
.sailing-calendar h4,
.sailing-calendar h5,
.sailing-my-account h2,
.sailing-my-account h3,
.sailing-my-account h4,
.sailing-my-account h5,
.sailing-season-standings h3 {
	color: #021c37;
	font-weight: 600;
}

.sailing-calendar-section-heading {
	margin-top: 1.75em;
	padding-bottom: 0.4em;
	border-bottom: 2px solid #021c37;
}

.sailing-calendar .sailing-regatta-card,
.sailing-my-account .sailing-account-regatta,
.sailing-my-account .sailing-waiver-block,
.sailing-my-account .sailing-my-event-card {
	border: 1px solid #e2e6ea;
	border-radius: 10px;
	padding: 1.5em;
	margin-bottom: 1.5em;
	background: #fff;
	box-shadow: 0 2px 8px rgba(2, 28, 55, 0.06);
}

.sailing-regatta-card-compact {
	padding-bottom: 1em;
}

.sailing-status {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 999px;
	background: #eee;
	vertical-align: middle;
	margin-left: 0.5em;
}

.sailing-status-open { background: #e6f4ea; color: #1a7f37; }
.sailing-status-live { background: #fff3cd; color: #8a6d00; }
.sailing-status-completed { background: #e2e6ea; color: #021c37; }
.sailing-status-cancelled { background: #fbe4e6; color: #a5222f; }

.sailing-category-badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 999px;
	background: #eef0f4;
	color: #021c37;
	vertical-align: middle;
	margin-left: 0.4em;
}

.sailing-category-badge-adults { background: #e6eefb; color: #1d4ed8; }
.sailing-category-badge-pro { background: #fdeee0; color: #b45309; }
.sailing-category-badge-kids { background: #f3e8fd; color: #7e22ce; }

.sailing-calendar-page-heading {
	margin-bottom: 0.75em;
}

.sailing-category-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 1.5em;
}

.sailing-app-wrapper .sailing-category-filter-btn {
	display: inline-block;
	padding: 8px 16px;
	background: #fff;
	color: #021c37;
	border: 1px solid #ccd3da;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.sailing-app-wrapper .sailing-category-filter-btn.sailing-active {
	background: #021c37;
	border-color: #021c37;
	color: #fff;
}

.sailing-price-summary {
	color: #021c37;
	font-size: 14px;
	margin: 0.5em 0 1em;
}

.sailing-location {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #021c37;
	font-size: 14px;
	margin: 0.25em 0;
}

.sailing-location-icon {
	display: inline-flex;
	color: #FF8500;
}

.sailing-race-format {
	margin: 0.75em 0;
}

.sailing-race-format h4 {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 0.25em;
}

.sailing-race-format p {
	font-size: 14px;
	color: #021c37;
	margin: 0;
}

/*
 * Every plugin button (primary orange group) is anchored under
 * .sailing-app-wrapper - the shared class every top-level shortcode
 * container carries - so each selector is at least two classes deep and
 * safely beats a theme/plugin reset rule like `button, [type=submit],
 * [type=button] { ... }` (specificity 0-1-0/0-1-1 at most), regardless of
 * which stylesheet loads later. Background/color/border/radius/padding are
 * all set explicitly here rather than left to inherit from anything.
 */
.sailing-app-wrapper .sailing-register-btn,
.sailing-app-wrapper .sailing-show-more-btn,
.sailing-app-wrapper .sailing-apply-btn,
.sailing-app-wrapper .sailing-goto-profile-btn,
.sailing-app-wrapper .sailing-entry-form button[type="submit"],
.sailing-app-wrapper .sailing-apply-form button[type="submit"],
.sailing-app-wrapper .sailing-auth-form button[type="submit"],
.sailing-app-wrapper .sailing-profile-form button[type="submit"],
.sailing-app-wrapper .sailing-waiver-form button[type="submit"] {
	display: inline-block;
	padding: 11px 22px;
	background: #FF8500;
	color: #fff;
	text-decoration: none;
	border: none;
	border-radius: 999px;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.sailing-app-wrapper .sailing-register-btn:hover,
.sailing-app-wrapper .sailing-show-more-btn:hover,
.sailing-app-wrapper .sailing-apply-btn:hover,
.sailing-app-wrapper .sailing-goto-profile-btn:hover,
.sailing-app-wrapper .sailing-entry-form button[type="submit"]:hover,
.sailing-app-wrapper .sailing-apply-form button[type="submit"]:hover,
.sailing-app-wrapper .sailing-auth-form button[type="submit"]:hover,
.sailing-app-wrapper .sailing-profile-form button[type="submit"]:hover,
.sailing-app-wrapper .sailing-waiver-form button[type="submit"]:hover {
	background: #e07800;
	color: #fff;
}

.sailing-app-wrapper .sailing-show-more-btn {
	display: block;
	margin: 1.25em 0;
}

.sailing-past-full {
	margin-top: 1.25em;
}

.sailing-app-wrapper .sailing-cancel-entry,
.sailing-app-wrapper .sailing-apply-cancel-btn {
	display: inline-block;
	margin-top: 0.5em;
	padding: 11px 22px;
	background: transparent;
	color: #021c37;
	border: 1px solid #021c37;
	border-radius: 999px;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
}

.sailing-documents-block {
	margin: 1em 0 1.25em;
}

.sailing-day-block {
	border-top: 1px dashed #d5dbe1;
	margin-top: 1.25em;
	padding-top: 1.25em;
}

.sailing-entry-list h5 {
	color: #021c37;
	font-size: 17px;
	font-weight: 700;
	margin: 0.75em 0 0.5em;
}

.sailing-entry-list > h4,
.sailing-day-scorecard > h4,
.sailing-regatta-scorecard > h4 {
	font-size: 1.3em;
	font-weight: 700;
	margin: 0 0 0.75em;
	padding-bottom: 0.3em;
	border-bottom: 2px solid #FF8500;
	display: inline-block;
}

.sailing-day-heading {
	font-size: 16px;
}

.sailing-documents-list {
	list-style: none;
	margin: 0 0 1em;
	padding: 0;
}

.sailing-documents-list a {
	color: #FF8500;
	font-weight: 600;
	text-decoration: none;
}

.sailing-documents-list a:hover {
	text-decoration: underline;
}

.sailing-empty {
	color: #777;
	font-style: italic;
}

.sailing-entry-status-legend {
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.6;
	color: #777;
}

.sailing-scorecard-table,
.sailing-standings-table,
.sailing-entries-table {
	border-collapse: collapse;
	width: 100%;
	margin-bottom: 1em;
	border-radius: 8px;
	overflow: hidden;
}

.sailing-scorecard-table th,
.sailing-standings-table th,
.sailing-entries-table th {
	background: #021c37;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	text-align: left;
	padding: 0.6em 0.8em;
}

.sailing-scorecard-table td,
.sailing-standings-table td,
.sailing-entries-table td {
	border-bottom: 1px solid #e2e6ea;
	padding: 0.5em 0.8em;
	text-align: left;
	font-size: 14px;
	font-weight: 400;
}

.sailing-discard-value {
	color: #a5222f;
	text-decoration: line-through;
}

.sailing-waiver-block {
	border-color: #FF8500;
}

.sailing-waiver-signed {
	color: #1a7f37;
	font-weight: 600;
}

.sailing-waiver-hint {
	font-size: 12px;
	color: #777;
}

.sailing-entry-form p,
.sailing-apply-form p {
	margin: 0.5em 0;
}

.sailing-auth-form p {
	margin: 18px 0;
}

.sailing-entry-form input[type="text"],
.sailing-entry-form input[type="email"],
.sailing-entry-form select,
.sailing-apply-form input[type="text"],
.sailing-apply-form select,
.sailing-auth-form input[type="text"],
.sailing-auth-form input[type="email"],
.sailing-auth-form input[type="password"] {
	font-family: inherit;
	border: 1px solid #ccd3da;
	border-radius: 6px;
	padding: 0.5em 0.7em;
}

.sailing-auth-form-wrap {
	border: 1px solid #e2e6ea;
	border-radius: 10px;
	padding: 1.5em;
	margin-bottom: 1.5em;
	background: #fff;
	box-shadow: 0 2px 8px rgba(2, 28, 55, 0.06);
	max-width: 420px;
}

.sailing-auth-form label {
	display: block;
	margin-bottom: 0.25em;
	font-weight: 600;
}

.sailing-auth-form input[type="text"],
.sailing-auth-form input[type="email"],
.sailing-auth-form input[type="password"] {
	width: 100%;
}

.sailing-form-message {
	color: #a5222f;
}

.sailing-form-message:not(.sailing-error) {
	color: #1a7f37;
}

.sailing-apply-buttons {
	display: flex;
	align-items: center;
	gap: 0.75em;
	flex-wrap: wrap;
}

.sailing-register-closed,
.sailing-day-full-note {
	display: inline-block;
	padding: 11px 22px;
	background: #e2e6ea;
	color: #021c37;
	border-radius: 999px;
	font-weight: 600;
	font-size: 15px;
}

.sailing-day-full-hint {
	color: #777;
	font-size: 0.9em;
	width: 100%;
}

.sailing-winner {
	font-weight: 600;
	color: #021c37;
	margin: 0.75em 0;
}

.sailing-registration-note {
	margin: 0.5em 0;
}

.sailing-waiver-required-notice {
	margin: 0.5em 0;
}

.sailing-apply-confirm-modal {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(2, 28, 55, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10000;
	padding: 1em;
}

.sailing-apply-confirm-box {
	background: #fff;
	color: #021c37;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(2, 28, 55, 0.25);
	padding: 1.75em;
	max-width: 380px;
	text-align: center;
}

.sailing-apply-confirm-message {
	margin: 0 0 1.25em;
	font-size: 15px;
	line-height: 1.5;
	white-space: pre-line;
}

.sailing-apply-confirm-ok {
	background: #FF8500;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 10px 28px;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
}

.sailing-waiver-required-notice p {
	margin: 0 0 0.5em;
}

.sailing-account-layout {
	display: flex;
	align-items: flex-start;
	gap: 2em;
}

.sailing-account-nav {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	flex: 0 0 200px;
	position: sticky;
	top: 1em;
}

/*
 * This is the exact rule that was losing to the theme's reset.css: a bare
 * single-class selector on a <button> ties in specificity with a reset rule
 * like `[type=button] { ... }` (also one selector unit), so which one wins
 * came down to load order rather than intent - the .sailing-active variant
 * right below has always had two classes, which is why the active tab
 * looked correct while the inactive ones showed the reset's pink border.
 */
.sailing-app-wrapper .sailing-account-nav-btn {
	display: block;
	width: 100%;
	text-align: left;
	padding: 11px 16px;
	background: #fff;
	color: #021c37;
	border: 1px solid #e2e6ea;
	border-radius: 8px;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	text-decoration: none;
	box-sizing: border-box;
}

.sailing-app-wrapper .sailing-account-nav-btn.sailing-active {
	background: #021c37;
	border-color: #021c37;
	color: #fff;
}

.sailing-app-wrapper .sailing-account-nav-btn.sailing-logout-link {
	margin-top: 1em;
	border-color: #a5222f;
	color: #a5222f;
}

.sailing-account-panels {
	flex: 1;
	min-width: 0;
}

.sailing-profile-form label {
	display: block;
	margin-bottom: 0.25em;
	font-weight: 600;
}

.sailing-profile-form input[type="text"],
.sailing-profile-form input[type="email"],
.sailing-profile-form input[type="date"],
.sailing-profile-form select {
	font-family: inherit;
	border: 1px solid #ccd3da;
	border-radius: 6px;
	padding: 0.5em 0.7em;
	width: 100%;
	max-width: 360px;
	box-sizing: border-box;
}

.sailing-nol-member-field {
	margin: 20px 0;
}

label.sailing-radio-inline {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	font-weight: 400;
	margin-right: 1em;
	margin-bottom: 0;
}

.sailing-field-hint {
	display: block;
	font-size: 12px;
	color: #777;
	margin-top: 0.25em;
}

.sailing-entry-status {
	display: inline-block;
	margin-left: 0.5em;
	font-size: 0.9em;
	font-weight: 600;
}

.sailing-entry-status-cancelled {
	color: #a5222f;
}

@media (max-width: 768px) {
	.sailing-calendar *,
	.sailing-my-account *,
	.sailing-season-standings * {
		box-sizing: border-box;
	}

	.sailing-calendar .sailing-regatta-card,
	.sailing-my-account .sailing-account-regatta,
	.sailing-my-account .sailing-waiver-block,
	.sailing-my-account .sailing-my-event-card {
		padding: 1em;
	}

	.sailing-apply-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.sailing-app-wrapper .sailing-register-btn,
	.sailing-app-wrapper .sailing-show-more-btn,
	.sailing-app-wrapper .sailing-apply-btn,
	.sailing-app-wrapper .sailing-cancel-entry,
	.sailing-app-wrapper .sailing-apply-cancel-btn,
	.sailing-app-wrapper .sailing-entry-form button[type="submit"],
	.sailing-app-wrapper .sailing-apply-form button[type="submit"],
	.sailing-app-wrapper .sailing-auth-form button[type="submit"] {
		width: 100%;
		text-align: center;
	}

	.sailing-auth-form-wrap {
		max-width: 100%;
	}

	.sailing-entry-form input[type="text"],
	.sailing-entry-form input[type="email"],
	.sailing-entry-form select,
	.sailing-apply-form input[type="text"],
	.sailing-apply-form select {
		width: 100%;
	}

	.sailing-register-closed,
	.sailing-day-full-note {
		display: block;
		width: 100%;
		text-align: center;
	}

	.sailing-account-layout {
		flex-direction: column;
		gap: 1em;
	}

	.sailing-account-nav {
		flex-direction: row;
		flex-wrap: wrap;
		position: static;
		width: 100%;
		flex-basis: auto;
	}

	.sailing-app-wrapper .sailing-account-nav-btn {
		flex: 1 1 auto;
		text-align: center;
	}

	.sailing-profile-form input[type="text"],
	.sailing-profile-form input[type="email"],
	.sailing-profile-form input[type="date"],
	.sailing-profile-form select {
		max-width: 100%;
	}
}
