body {
	margin: 0;
	overflow: hidden;
	background: #f6f7f9;
}

.pwa-login-page { min-height: 100vh; min-height: 100dvh; background: #f7f3eb; color: #283645; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.pwa-login { position: relative; display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 100vh; min-height: 100dvh; padding: 24px; overflow: hidden; background: linear-gradient(145deg, #fffaf0 0%, #fff1cd 48%, #f6bd53 130%); }
.pwa-login-glow { position: absolute; border-radius: 50%; pointer-events: none; }
.pwa-login-glow-one { top: -18vh; right: -24vw; width: max(62vw, 280px); height: max(62vw, 280px); background: rgba(255, 197, 82, .44); }
.pwa-login-glow-two { bottom: -20vh; left: -26vw; width: max(54vw, 250px); height: max(54vw, 250px); background: rgba(255, 255, 255, .58); }
.pwa-login-card { position: relative; z-index: 1; width: min(100%, 410px); padding: 34px 28px 25px; background: rgba(255, 255, 255, .92); border: 1px solid rgba(255, 255, 255, .78); border-radius: 28px; box-shadow: 0 20px 50px rgba(126, 82, 17, .18); text-align: center; backdrop-filter: blur(9px); }
.pwa-login-brand { display: flex; align-items: center; justify-content: center; width: 176px; height: 120px; margin: -10px auto 14px; }
.pwa-login-brand img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pwa-login-intro p { margin: 0 0 6px; color: #d88d00; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pwa-login-intro h1 { margin: 0; font-size: 27px; font-weight: 750; letter-spacing: -.03em; }
.pwa-login-intro span { display: block; margin: 9px auto 27px; color: #6f7780; font-size: 15px; line-height: 1.45; }
.pwa-login-form { text-align: left; }
.pwa-login-form label { display: block; margin: 0 0 8px 3px; color: #4d5966; font-size: 14px; font-weight: 700; }
.pwa-pin-field { display: flex; align-items: center; gap: 10px; box-sizing: border-box; width: 100%; padding: 0 15px; background: #fffdf9; border: 1px solid #e7dfd2; border-radius: 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.pwa-pin-field:focus-within { border-color: #eca300; box-shadow: 0 0 0 4px rgba(240, 160, 0, .15); }
.pwa-pin-field svg { flex: 0 0 21px; width: 21px; height: 21px; fill: #d88d00; }
.pwa-pin-field input { min-width: 0; width: 100%; height: 56px; padding: 0; background: transparent; border: 0; outline: 0; color: #283645; font-size: 21px; font-weight: 700; letter-spacing: .38em; text-align: center; }
.pwa-login-error { margin: 12px 0 0; padding: 10px 12px; background: #fff1f0; border-radius: 10px; color: #b23933; font-size: 13px; font-weight: 600; text-align: center; }
.pwa-login-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin-top: 20px; padding: 15px 18px; background: linear-gradient(135deg, #f6bb2d, #e89900); border: 0; border-radius: 14px; box-shadow: 0 8px 16px rgba(218, 139, 0, .26); color: #fff; cursor: pointer; font-size: 16px; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease; }
.pwa-login-submit:hover, .pwa-login-submit:focus { box-shadow: 0 11px 20px rgba(218, 139, 0, .33); transform: translateY(-1px); }
.pwa-login-submit span { font-size: 21px; line-height: .8; }
.pwa-login-help { margin: 22px 0 0; color: #808990; font-size: 13px; }

@media (max-width: 390px) {
	.pwa-login { padding: 16px; }
	.pwa-login-card { padding: 27px 22px 22px; border-radius: 24px; }
	.pwa-login-brand { width: 152px; height: 104px; margin-bottom: 12px; }
}

#body_wrapper {
	display: flex;
	flex-direction: column;
	height: 100vh;
}

.pwa-header {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 74px;
	padding: 7px 20px;
	background: linear-gradient(120deg, #ffffff 0%, #fff1c7 48%, #ffc75a 100%);
	border-bottom: 3px solid #f0a000;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .1);
}

.pwa-brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 82px;
	height: 56px;
}

.pwa-brand img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.pwa-logout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border: 1px solid #f0a000;
	border-radius: 50%;
	color: #d88d00;
	font-size: 20px;
	text-decoration: none;
}

.pwa-logout:hover,
.pwa-logout:focus {
	border-color: #d88d00;
	background: #fff5dc;
	color: #a94442;
}

.pwa-content {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 10px 12px 16px;
}

.pwa-bottom-nav {
	position: sticky;
	bottom: 0;
	z-index: 1030;
	flex: 0 0 auto;
	background: #fff;
	border-top: 1px solid #dedede;
	box-shadow: 0 -2px 8px rgba(0, 0, 0, .08);
}

.pwa-nav {
	display: flex;
	justify-content: space-around;
	max-width: 560px;
	margin: 0 auto;
}

.pwa-nav-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20%;
	height: 64px;
	color: #7b8490;
	font-size: 23px;
	text-decoration: none;
	border-top: 3px solid transparent;
}

.pwa-nav-item:hover,
.pwa-nav-item:focus,
.pwa-nav-item.is-active {
	color: #f0a000;
	background: #fff8e6;
	border-top-color: #f0a000;
}

.pwa-screen-header {
	padding: 16px 6px 14px;
}

.pwa-screen-header p {
	margin: 0 0 3px;
	color: #7b8490;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pwa-screen-header h1 {
	margin: 0;
	color: #283645;
	font-size: 24px;
	font-weight: 700;
}

.pwa-wallet-card {
	display: flex;
	align-items: center;
	gap: 13px;
	margin: 0 0 20px;
	padding: 15px;
	border-radius: 15px;
	background: linear-gradient(135deg, #f5b51f, #dc9000);
	box-shadow: 0 7px 16px rgba(205, 130, 0, .2);
	color: #fff;
	text-decoration: none;
}

.pwa-wallet-card:hover,
.pwa-wallet-card:focus { color: #fff; text-decoration: none; }
.pwa-wallet-card > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; }
.pwa-wallet-card small { font-size: 12px; font-weight: 600; opacity: .88; }
.pwa-wallet-card strong { font-size: 24px; line-height: 1.2; }
.pwa-wallet-icon,
.pwa-wallet-movement-icon { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.pwa-wallet-icon { width: 46px; height: 46px; background: rgba(255, 255, 255, .22); font-size: 21px; }

.pwa-wallet-header { padding-bottom: 10px; }
.pwa-wallet-balance { margin: 0 0 24px; padding: 24px 20px; border-radius: 18px; background: linear-gradient(145deg, #283645, #40566b); box-shadow: 0 8px 18px rgba(31, 45, 57, .16); color: #fff; }
.pwa-wallet-balance span,
.pwa-wallet-balance small { display: block; color: rgba(255, 255, 255, .73); font-size: 13px; font-weight: 600; }
.pwa-wallet-balance strong { display: block; margin: 4px 0 7px; font-size: 34px; letter-spacing: -.03em; }
.pwa-wallet-movements { margin: 0 -12px; border-top: 1px solid #e5e8eb; }
.pwa-wallet-movement { display: flex; align-items: center; gap: 12px; min-height: 74px; padding: 12px; border-bottom: 1px solid #e5e8eb; background: #fff; }
.pwa-wallet-movement-icon { flex: 0 0 40px; width: 40px; height: 40px; font-size: 15px; }
.pwa-wallet-movement-icon.is-credit { background: #e0f4e9; color: #24965d; }
.pwa-wallet-movement-icon.is-debit { background: #fff0e3; color: #d97e00; }
.pwa-wallet-movement-info { display: flex; flex: 1; min-width: 0; flex-direction: column; }
.pwa-wallet-movement-info strong { overflow: hidden; color: #344454; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.pwa-wallet-movement-info small { margin-top: 3px; color: #89929b; font-size: 11px; }
.pwa-wallet-movement-amount { font-size: 14px; white-space: nowrap; }
.pwa-wallet-movement-amount.is-credit { color: #24965d; }
.pwa-wallet-movement-amount.is-debit { color: #c96e00; }

.pwa-mobile-list {
	margin: 0 -12px;
	border-top: 1px solid #e5e8eb;
	background: #fff;
}

.pwa-mobile-list-item {
	display: flex;
	align-items: center;
	min-height: 76px;
	padding: 12px 16px;
	border-bottom: 1px solid #e5e8eb;
}

.pwa-list-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	margin-right: 13px;
	border-radius: 50%;
	font-size: 17px;
}

.pwa-list-icon-success {
	background: #dff0d8;
	color: #3c763d;
}

.pwa-list-icon-info {
	background: #d9edf7;
	color: #31708f;
}

.pwa-list-icon-warning {
	background: #fcf3d6;
	color: #b57900;
}

.pwa-list-body {
	min-width: 0;
	flex: 1 1 auto;
}

.pwa-list-body strong,
.pwa-list-body span {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pwa-list-body strong {
	color: #293847;
	font-size: 16px;
}

.pwa-list-body span {
	margin-top: 2px;
	color: #8a939d;
	font-size: 13px;
}

.pwa-list-amount {
	margin-left: 12px;
	color: #3c763d;
	font-size: 17px;
	font-weight: 700;
	white-space: nowrap;
}

.pwa-list-date {
	margin-left: 12px;
	color: #52606d;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}

.pwa-empty-state {
	padding: 56px 20px;
	color: #89929b;
	text-align: center;
}

.pwa-empty-state i {
	display: block;
	margin-bottom: 14px;
	font-size: 38px;
	color: #c1c8cf;
}

.pwa-empty-state p {
	margin: 0;
}

.pwa-home-section {
	margin: 0 0 24px;
}

.pwa-section-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0 4px 9px;
}

.pwa-section-heading h2 {
	margin: 0;
	color: #344454;
	font-size: 17px;
	font-weight: 700;
}

.pwa-section-heading a {
	color: #b57900;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.pwa-section-empty {
	margin: 0;
	padding: 18px 16px;
	border: 1px solid #e5e8eb;
	border-radius: 8px;
	background: #fff;
	color: #89929b;
	font-size: 14px;
}

.pwa-news-list,
.pwa-form-list {
	overflow: hidden;
	border: 1px solid #e5e8eb;
	border-radius: 9px;
	background: #fff;
}

.pwa-news-card,
.pwa-form-card {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 72px;
	padding: 10px 13px;
	border-bottom: 1px solid #e8ecef;
	color: inherit;
	text-decoration: none;
}

.pwa-news-card:last-child,
.pwa-form-card:last-child {
	border-bottom: 0;
}

.pwa-news-card:hover,
.pwa-news-card:focus,
.pwa-form-card:hover,
.pwa-form-card:focus {
	color: inherit;
	background: #fff8e6;
}

.pwa-news-card > span:not(.pwa-news-icon),
.pwa-form-card-content {
	min-width: 0;
	flex: 1;
}

.pwa-news-card strong,
.pwa-news-card small,
.pwa-form-card strong,
.pwa-form-card small {
	display: block;
}

.pwa-news-card strong,
.pwa-form-card strong {
	color: #293847;
	font-size: 15px;
}

.pwa-news-card small,
.pwa-form-card small {
	margin-top: 2px;
	color: #7b8490;
	font-size: 13px;
}

.pwa-news-status {
	display: block;
	margin-top: 5px;
	color: #3c763d;
	font-size: 12px;
	font-style: normal;
	font-weight: 600;
}

.pwa-news-card > img,
.pwa-news-icon,
.pwa-form-card > img,
.pwa-form-image-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	border-radius: 7px;
	object-fit: cover;
}

.pwa-news-icon,
.pwa-form-image-placeholder {
	background: #fff1c7;
	color: #b57900;
	font-size: 20px;
}

.pwa-news-icon-trophy {
	background: #fcf3d6;
}

.pwa-news-card > .fas,
.pwa-form-card > .fas {
	color: #a2abb4;
	font-size: 13px;
}

.pwa-form-card {
	min-height: 92px;
}

.pwa-form-card em {
	display: inline-block;
	margin-top: 6px;
	color: #3c763d;
	font-size: 12px;
	font-style: normal;
	font-weight: 600;
}

.pwa-form-card .pwa-form-closed {
	color: #a94442;
}

.pwa-form-detail {
	margin-top: 12px;
}

.pwa-form-detail h1 {
	margin: 0 0 8px;
	color: #293847;
	font-size: 25px;
}

.pwa-form-banner {
	display: block;
	width: 100%;
	max-height: 220px;
	margin-bottom: 16px;
	border-radius: 10px;
	object-fit: cover;
}

.pwa-form-description {
	margin: 0 0 20px;
	color: #5e6b77;
}

.pwa-deadline,
.pwa-edit-notice {
	margin: 0 0 15px;
	color: #66727e;
	font-size: 14px;
}

.pwa-edit-notice {
	padding: 10px 12px;
	border-radius: 7px;
	background: #fff1c7;
	color: #805500;
}

.pwa-question-form {
	margin-top: 20px;
	/* Deja recorrido de scroll tras el botón, para que la navegación fija no lo tape. */
	padding-bottom: calc(80px + env(safe-area-inset-bottom));
}

.pwa-question {
	margin: 0 0 16px;
	padding: 15px;
	border: 1px solid #e1e5e8;
	border-radius: 8px;
	background: #fff;
}

.pwa-question legend {
	float: none;
	width: auto;
	margin: 0 0 10px;
	padding: 0;
	color: #344454;
	font-size: 16px;
	font-weight: 600;
}

.pwa-question legend span,
.pwa-field-error {
	color: #a94442;
}

.pwa-question label {
	margin: 0 18px 0 0;
	color: #52606d;
}

.pwa-question input[type="text"] {
	width: 100%;
	padding: 9px 10px;
	border: 1px solid #cbd3da;
	border-radius: 5px;
}

.pwa-question.has-error {
	border-color: #dca7a5;
}

.pwa-field-error {
	display: block;
	margin-top: 7px;
}

.pwa-primary-button {
	width: 100%;
	padding: 12px;
	border: 0;
	border-radius: 7px;
	background: #e99a00;
	color: #fff;
	font-weight: 700;
}

.pwa-submission-success {
	display: flex;
	gap: 12px;
	margin-top: 20px;
	padding: 16px;
	border-radius: 8px;
	background: #dff0d8;
	color: #3c763d;
}

.pwa-submission-success i {
	font-size: 25px;
}

.pwa-submission-success p {
	margin: 3px 0 0;
}

.pwa-answer-summary {
	margin-top: 16px;
	border: 1px solid #e5e8eb;
	border-radius: 8px;
	background: #fff;
}

.pwa-answer-summary div {
	padding: 12px 14px;
	border-bottom: 1px solid #e8ecef;
}

.pwa-answer-summary div:last-child {
	border-bottom: 0;
}

.pwa-answer-summary strong,
.pwa-answer-summary span {
	display: block;
}

.pwa-answer-summary strong {
	color: #52606d;
	font-size: 13px;
}

.pwa-answer-summary span {
	margin-top: 3px;
	color: #293847;
}

.pwa-championship-list {
	margin: 0 -12px;
	border-top: 1px solid #e5e8eb;
	background: #fff;
}

.pwa-championship-item {
	border-bottom: 1px solid #e5e8eb;
}

.pwa-championship-link {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 78px;
	padding: 12px 16px;
	border: 0;
	background: #fff;
	text-align: left;
	color: inherit;
	text-decoration: none;
}

.pwa-championship-link:hover,
.pwa-championship-link:focus {
	color: inherit;
	background: #fafbfc;
	text-decoration: none;
	outline: none;
}

.pwa-championship-link:focus {
	outline: 2px solid #f0a000;
	outline-offset: -2px;
}

.pwa-championship-chevron {
	margin-left: 10px;
	color: #89929b;
	transition: transform .2s ease;
}

.pwa-championship-position {
	margin-left: 10px;
	color: #b57900;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.pwa-championship-summary {
	margin: 0 -12px 20px;
	padding: 0 16px;
	background: #fff;
	border-top: 1px solid #e5e8eb;
	border-bottom: 1px solid #e5e8eb;
}

.pwa-championship-summary-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	color: #52606d;
}


.pwa-championship-summary-row + .pwa-championship-summary-row {
	border-top: 1px solid #e8ecef;
}

.pwa-championship-summary-row strong {
	color: #344454;
	font-size: 17px;
}

.pwa-championship-summary-paid strong {
	color: #3c763d;
}

.pwa-championship-summary-pending strong {
	color: #a94442;
}

.pwa-back-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 8px 0 0;
	color: #66727e;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.pwa-back-link:hover,
.pwa-back-link:focus {
	color: #344454;
	text-decoration: none;
}

.pwa-section-label {
	margin: 0 6px 8px;
	color: #7b8490;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pwa-championship-tabs {
	margin: 16px 0 0;
	padding: 3px;
	border: 0;
	border-radius: 9px;
	background: #eef1f3;
}

.pwa-championship-header h1 {
	font-size: 21px;
}

.pwa-championship-header p {
	margin-top: 5px;
}

.pwa-championship-tabs .nav-item {
	flex: 1 1 0;
}

.pwa-championship-tabs .nav-link {
	width: 100%;
	padding: 8px 3px;
	border: 0;
	border-radius: 7px;
	color: #66727e;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

.pwa-championship-tabs .nav-link.active {
	border: 0;
	box-shadow: 0 1px 3px rgba(44, 62, 80, .12);
	background: #fff;
	color: #283645;
}

.pwa-championship-tab-content {
	padding-top: 16px;
}

.pwa-result-card,
.pwa-form-card {
	margin: 0 0 20px;
	padding: 16px;
	border: 1px solid #e1e6ea;
	border-radius: 10px;
	background: #fff;
}

.pwa-result-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.pwa-result-card span {
	color: #7b8490;
}

.pwa-result-card strong {
	color: #b57900;
	font-size: 18px;
}

.pwa-form-card h2 {
	margin: 0 0 14px;
	font-size: 18px;
}

.pwa-form-card label {
	display: block;
	margin: 12px 0 6px;
	color: #52606d;
	font-size: 14px;
	font-weight: 600;
}

.pwa-form-card .form-check {
	margin: 16px 0 0;
}

.pwa-form-card .form-check label {
	display: inline;
	margin: 0;
}

.pwa-form-card .btn {
	margin-top: 16px;
}

.pwa-proof-link {
	display: inline-block;
	margin-bottom: 4px;
	color: #31708f;
	font-weight: 600;
}

.pwa-companion-item .pwa-list-body span + span {
	margin-top: 1px;
}

.pwa-home {
	max-width: 480px;
	margin: 0 auto;
	padding: 12px 4px 22px;
}

.pwa-home-welcome {
	margin: 0 0 4px;
	color: #7b8490;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pwa-home > h1 {
	margin: 0 0 18px;
	color: #283645;
	font-size: 25px;
	font-weight: 700;
}

.pwa-license {
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(38, 49, 61, .15);
}

.pwa-license-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 18px;
	background: linear-gradient(120deg, #303e4d, #52697d);
	color: #fff;
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.pwa-license-header span {
	color: #ffc24d;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -.08em;
	text-transform: lowercase;
}

.pwa-license-profile {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 18px;
	background: linear-gradient(135deg, #fff8e8, #fff);
}

.pwa-license-profile img,
.pwa-license-photo-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 78px;
	width: 78px;
	height: 78px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: #e2e7eb;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .16);
	object-fit: cover;
}

.pwa-license-photo-placeholder {
	color: #89929b;
	font-size: 29px;
}

.pwa-license-profile p {
	margin: 0 0 3px;
	color: #a36c00;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pwa-license-profile h2 {
	margin: 0 0 5px;
	color: #283645;
	font-size: 20px;
	font-weight: 700;
}

.pwa-license-profile span {
	color: #687581;
	font-size: 14px;
}

.pwa-license-data {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 0;
	padding: 0 18px 18px;
	gap: 8px;
}

.pwa-license-data div {
	padding: 11px 8px;
	border-radius: 8px;
	background: #f5f7f8;
	text-align: center;
}

.pwa-license-data dt {
	margin-bottom: 3px;
	color: #89929b;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.pwa-license-data dd {
	margin: 0;
	color: #344454;
	font-size: 13px;
	font-weight: 700;
}

.pwa-license-footer {
	padding: 11px 18px;
	background: #f0a000;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
}

.pwa-license-footer i {
	margin-right: 6px;
}

.pwa-photo-form {
	margin-top: 18px;
	text-align: center;
}

.pwa-photo-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid #d5dbe0;
	border-radius: 22px;
	background: #fff;
	color: #52606d;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.pwa-photo-button:hover {
	border-color: #f0a000;
	color: #a36c00;
}
