.fp-auth-shell {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 70vh;
	padding: 32px 16px;
	background:
		linear-gradient(135deg, rgba(6, 49, 31, 0.92), rgba(18, 111, 72, 0.78)),
		var(--fp-auth-bg-image, radial-gradient(circle at top, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 42%)),
		var(--fp-auth-bg-color, #0f6a43);
	background-position: center;
	background-size: cover;
	border-radius: 24px;
	overflow: hidden;
}

body.fp-modal-open {
	overflow: hidden;
	overscroll-behavior: none;
}

.fp-auth-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(0, 0, 0, 0.16));
}

.fp-auth-card {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 640px;
	padding: 28px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.16);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	box-shadow: 0 24px 60px rgba(4, 30, 20, 0.25);
	color: #fff;
}

.fp-auth-card-header {
	margin-bottom: 20px;
}

.fp-auth-toggle {
	display: flex;
	gap: 10px;
	margin-bottom: 18px;
}

.fp-auth-toggle-button {
	flex: 1 1 0;
	padding: 12px 16px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.fp-auth-toggle-button.is-active {
	background: #fff;
	color: #11452c;
}

.fp-auth-panel[hidden] {
	display: none !important;
}

.fp-auth-card-header h2,
.fp-auth-card-header p,
.fp-auth-card-header .fp-auth-kicker {
	color: inherit;
}

.fp-auth-kicker {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.82;
}

.fp-auth-form,
.fp-profile-form {
	margin: 0;
}

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

.fp-auth-field {
	margin-bottom: 16px;
}

.fp-auth-field label,
.fp-auth-section-title {
	display: block;
	margin-bottom: 8px;
	font-weight: 700;
	color: #fff;
}

.fp-auth-field input,
.fp-auth-field select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	box-shadow: none;
}

.fp-auth-field input::placeholder {
	color: rgba(255, 255, 255, 0.82);
}

.fp-auth-field option {
	color: #153222;
}

.fp-auth-help {
	margin: 8px 0 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.86);
}

.fp-auth-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	color: #fff;
}

.fp-auth-checkbox input {
	margin: 0;
}

.fp-auth-submit,
.fp-dashboard-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 18px;
	border: none;
	border-radius: 14px;
	background: #fff;
	color: #11452c;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.fp-dashboard-button.secondary {
	background: rgba(17, 69, 44, 0.08);
	color: #11452c;
}

.fp-auth-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 18px;
}

.fp-auth-links.single {
	justify-content: flex-start;
}

.fp-auth-links a,
.fp-auth-guest-prompt a {
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
}

.fp-auth-message {
	padding: 12px 14px;
	border-radius: 14px;
	margin-bottom: 14px;
}

.fp-auth-message.error {
	background: rgba(136, 11, 28, 0.74);
	color: #fff;
}

.fp-auth-message.success {
	background: rgba(14, 94, 60, 0.74);
	color: #fff;
}

.fp-auth-guest-prompt,
.fp-dashboard-panel,
.fp-user-summary-card {
	padding: 20px;
	border: 1px solid rgba(15, 70, 44, 0.1);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 14px 36px rgba(11, 49, 32, 0.08);
}

.fp-dashboard {
	display: grid;
	gap: 22px;
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
	box-sizing: border-box;
}

.fp-dashboard *,
.fp-dashboard *::before,
.fp-dashboard *::after {
	box-sizing: border-box;
	max-width: 100%;
}

.fp-dashboard-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 24px;
	border-radius: 24px;
	background: linear-gradient(135deg, rgba(10, 93, 59, 0.08), rgba(24, 132, 84, 0.16));
}

.fp-dashboard-identity,
.fp-user-inline,
.fp-user-summary-card {
	display: flex;
	align-items: center;
	gap: 14px;
}

.fp-dashboard-avatar .avatar,
.fp-user-summary-avatar .avatar,
.fp-user-inline .avatar,
.fp-podium-avatar .avatar {
	border-radius: 50%;
	object-fit: cover;
}

.fp-dashboard-profile-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}

.fp-dashboard-profile-head h3,
.fp-dashboard-profile-head p {
	margin: 0;
}

.fp-dashboard-panel .fp-auth-field label,
.fp-dashboard-panel .fp-auth-section-title,
.fp-dashboard-panel .fp-auth-checkbox,
.fp-dashboard-panel .fp-dashboard-kicker,
.fp-dashboard-panel .fp-dashboard-copy h3,
.fp-dashboard-panel .fp-dashboard-copy p {
	color: #23344d;
}

.fp-dashboard-panel .fp-auth-help {
	color: #5b7064;
}

.fp-dashboard-panel .fp-auth-field input,
.fp-dashboard-panel .fp-auth-field select {
	border: 1px solid rgba(15, 70, 44, 0.16);
	background: #fff;
	color: #23344d;
}

.fp-dashboard-panel .fp-auth-field input::placeholder {
	color: #7a8796;
}

.fp-dashboard-panel .fp-auth-checkbox input {
	accent-color: #0f6a43;
}

.fp-dashboard-copy h2,
.fp-dashboard-copy p {
	margin: 0;
}

.fp-dashboard-meta,
.fp-dashboard-actions,
.fp-performance-bars,
.fp-dashboard-grid,
.fp-dashboard-cards {
	gap: 14px;
}

.fp-dashboard-meta,
.fp-performance-bars {
	display: flex;
	flex-wrap: wrap;
	min-width: 0;
}

.fp-dashboard-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}

.fp-dashboard-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	min-width: 0;
}

.fp-stat-card {
	padding: 18px;
	border-radius: 18px;
	background: #f6fbf8;
	border: 1px solid rgba(15, 70, 44, 0.08);
}

.fp-stat-card h3,
.fp-stat-card p {
	margin: 0;
}

.fp-stat-card h3 {
	margin-top: 8px;
	font-size: 24px;
}

.fp-stat-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #256948;
}

.fp-stat-note,
.fp-user-inline-meta {
	font-size: 12px;
	color: #5b7064;
}

.fp-dashboard-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	min-width: 0;
}

.fp-dashboard-panel h3 {
	margin-top: 0;
}

.fp-performance-bars div {
	flex: 1 1 140px;
	min-width: 0;
	padding: 12px 14px;
	border-radius: 14px;
	background: #f6fbf8;
}

.fp-performance-bars span,
.fp-user-inline-copy {
	display: block;
}

.fp-user-inline-copy {
	line-height: 1.3;
}

.fp-dashboard-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 8px;
}

.fp-dashboard-table thead th {
	padding: 0 10px 6px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #557061;
	background: transparent;
}

.fp-dashboard-table tbody td {
	padding: 12px 10px;
	background: #f8fbf9;
	border-top: 1px solid rgba(15, 70, 44, 0.06);
	border-bottom: 1px solid rgba(15, 70, 44, 0.06);
}

.fp-dashboard-table tbody tr td:first-child {
	border-left: 1px solid rgba(15, 70, 44, 0.06);
	border-top-left-radius: 12px;
	border-bottom-left-radius: 12px;
}

.fp-dashboard-table tbody tr td:last-child {
	border-right: 1px solid rgba(15, 70, 44, 0.06);
	border-top-right-radius: 12px;
	border-bottom-right-radius: 12px;
}

.fp-dashboard-table tbody tr.currentuser td {
	background: #eef8f2;
}

.fp-dashboard-inline-action,
.fp-dashboard-next-match {
	margin-top: 16px;
}

.fp-dashboard-panel,
.fp-dashboard-panel > *,
.fp-dashboard-next-match,
.fp-dashboard-flash {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.fp-dashboard-panel .matchinfo,
.fp-dashboard-panel .prediction-table-wrap,
.fp-dashboard-panel .fp-prediction-form,
.fp-dashboard-panel .fp-dashboard-table {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.fp-dashboard-panel#fp-dashboard-predictions .prediction-table-wrap {
	overflow-x: hidden;
}

.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-table-head,
.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-row-main {
	min-width: 0;
	grid-template-columns: minmax(88px, 0.9fr) minmax(62px, 0.7fr) minmax(0, 1.35fr) 54px 28px 54px minmax(0, 1.35fr) minmax(100px, 0.95fr);
}

.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-team .team-name {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	word-break: break-word;
}

.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-score .score-box {
	width: 54px;
	min-width: 54px;
}

.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input input.prediction {
	width: 100%;
	max-width: 100%;
	padding: 0;
	appearance: textfield;
	-moz-appearance: textfield;
}

.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input input.prediction::-webkit-outer-spin-button,
.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input input.prediction::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.fp-dashboard-flash .fp-auth-message {
	margin-bottom: 0;
}

.fp-dashboard-modal {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.fp-dashboard-modal[hidden] {
	display: none !important;
}

.fp-dashboard-modal-backdrop {
	position: absolute;
	inset: 0;
	padding: 0;
	border: 0;
	background: rgba(9, 23, 16, 0.55);
	z-index: 0;
}

.fp-dashboard-modal-dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 760px);
	max-height: min(88vh, 900px);
	overflow-y: auto;
	padding: 24px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 24px 60px rgba(4, 30, 20, 0.25);
}

.fp-dashboard-modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.fp-dashboard-modal-header h3,
.fp-dashboard-modal-header p {
	margin: 0;
	color: #23344d;
}

.fp-dashboard-modal-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #23344d;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
}

.fp-dashboard-modal .fp-auth-field label,
.fp-dashboard-modal .fp-auth-section-title,
.fp-dashboard-modal .fp-auth-checkbox,
.fp-dashboard-modal .fp-dashboard-kicker,
.fp-dashboard-modal .fp-auth-help {
	color: #23344d;
}

.fp-dashboard-modal .fp-auth-field input,
.fp-dashboard-modal .fp-auth-field select {
	border: 1px solid rgba(15, 70, 44, 0.16);
	background: #fff;
	color: #23344d;
}

.fp-auth-field-full {
	grid-column: 1 / -1;
}

.fp-dashboard-modal-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 8px;
}

.fp-referral-stack {
	display: grid;
	gap: 12px;
}

.fp-user-summary-card {
	margin: 18px 0 6px;
}

.fp-user-summary-copy {
	display: grid;
	gap: 4px;
}

.fp-inline-avatar-image,
.fp-admin-avatar-image {
	width: 24px;
	height: 24px;
}

.fp-ranking-table .fp-inline-avatar-image {
	width: 34px;
	height: 34px;
}

@media (max-width: 900px) {
	.fp-dashboard-cards,
	.fp-dashboard-grid,
	.fp-auth-grid {
		grid-template-columns: 1fr 1fr;
	}

	.fp-dashboard-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.fp-auth-card,
	.fp-dashboard-hero,
	.fp-dashboard-panel,
	.fp-auth-guest-prompt {
		padding: 18px;
	}

	.fp-dashboard-grid,
	.fp-auth-grid {
		grid-template-columns: 1fr;
	}

	.fp-dashboard-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.fp-stat-card {
		padding: 16px;
		min-width: 0;
	}

	.fp-stat-card h3 {
		font-size: 20px;
		word-break: break-word;
	}

	.fp-dashboard-actions {
		justify-content: flex-start;
	}

	.fp-performance-bars {
		display: grid;
		grid-template-columns: 1fr;
	}

	.fp-performance-bars div {
		flex: none;
	}

	.fp-auth-toggle {
		flex-direction: column;
	}

	.fp-auth-shell {
		min-height: auto;
		border-radius: 18px;
	}

	.fp-dashboard-modal {
		padding: 12px;
	}

	.fp-dashboard-modal-dialog {
		width: 100%;
		max-height: 92vh;
		padding: 18px;
		border-radius: 20px;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-table-head {
		display: none;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-row-main {
		grid-template-columns: minmax(0, 1fr) auto auto auto;
		grid-template-areas:
			"date date time time"
			"home hscore versus ascore"
			"away status status status";
		row-gap: 0.4rem;
		column-gap: 0.45rem;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-date {
		grid-area: date;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-time {
		grid-area: time;
		text-align: right;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-team-home {
		grid-area: home;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-home {
		grid-area: hscore;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-versus {
		grid-area: versus;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-away {
		grid-area: ascore;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-team-away {
		grid-area: away;
		justify-content: flex-start;
		text-align: left;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-team-away .team-name,
	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-team-away .flag-wrap {
		order: initial;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .prediction-status-cell {
		grid-area: status;
		align-items: flex-start;
		text-align: left;
	}

	.fp-dashboard-panel#fp-dashboard-predictions .matchinfo.new-layout.input .match-icons {
		justify-content: flex-start;
	}
}

@media (max-width: 430px) {
	.fp-dashboard-cards,
	.fp-dashboard-grid,
	.fp-auth-grid {
		grid-template-columns: 1fr;
	}

	.fp-dashboard-hero {
		gap: 14px;
	}

	.fp-dashboard-meta {
		gap: 8px;
	}

	.fp-dashboard-actions {
		width: 100%;
	}

	.fp-dashboard-button {
		width: 100%;
	}

	.fp-dashboard-table {
		font-size: 14px;
	}

	.fp-dashboard-table tbody td,
	.fp-dashboard-table thead th {
		padding-left: 8px;
		padding-right: 8px;
	}

	.fp-dashboard-table,
	.fp-dashboard-table thead,
	.fp-dashboard-table tbody,
	.fp-dashboard-table tr,
	.fp-dashboard-table th,
	.fp-dashboard-table td {
		display: block;
	}

	.fp-dashboard-table thead {
		display: none;
	}

	.fp-dashboard-table tbody tr {
		margin-bottom: 10px;
	}

	.fp-dashboard-table tbody td {
		border-left: 1px solid rgba(15, 70, 44, 0.06);
		border-right: 1px solid rgba(15, 70, 44, 0.06);
		border-radius: 0;
	}

	.fp-dashboard-table tbody tr td:first-child {
		border-top-right-radius: 12px;
	}

	.fp-dashboard-table tbody tr td:last-child {
		border-bottom-left-radius: 12px;
	}
}
