.padel-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }
.padel-categories > .padel-category { flex: 0 1 calc((100% - 3rem) / 3); min-width: min(100%, 300px); box-sizing: border-box; }
.padel-category { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 1rem 1.25rem; }
.padel-category h3 { margin: 0 0 .5rem; }
.padel-category__meta { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; font-size: .9rem; margin: 0 0 1rem; }
.padel-badge { border-radius: 999px; padding: .15rem .6rem; font-size: .78rem; background: rgba(0,0,0,.06); }
.padel-badge.is-open { background: #e5f6ea; color: #14602c; }
.padel-badge.is-full { background: #fdeaea; color: #8a1c1c; }

.padel-standings { width: 100%; border-collapse: collapse; font-size: .88rem; margin-bottom: 1rem; }
.padel-standings th, .padel-standings td { padding: .35rem .5rem; border-bottom: 1px solid rgba(0,0,0,.08); text-align: left; }
.padel-standings th { font-weight: 600; }

.padel-match { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: .5rem .75rem; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; margin-bottom: .5rem; }
.padel-match__teams { display: flex; gap: .5rem; align-items: center; flex: 1 1 auto; }
.padel-match__vs { opacity: .5; font-size: .8rem; }
.padel-match__score { font-variant-numeric: tabular-nums; font-weight: 600; }
.padel-match--completed { background: rgba(0,0,0,.02); }

.padel-bracket { display: flex; gap: 1.5rem; overflow-x: auto; padding-bottom: .5rem; }
.padel-bracket__round { min-width: 220px; display: flex; flex-direction: column; justify-content: space-around; }

.padel-registration fieldset { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; margin: 0 0 1rem; padding: .75rem 1rem; }
.padel-registration label { display: block; margin-bottom: .6rem; }
.padel-registration label span { display: block; font-size: .82rem; margin-bottom: .2rem; }
.padel-registration input[type="text"], .padel-registration input[type="email"], .padel-registration input[type="tel"] { width: 100%; }
.padel-consent { display: flex; gap: .5rem; align-items: flex-start; }

.padel-booking__bar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.padel-booking__bar .padel-booking__title { margin: 0; }
.padel-booking__picker { display: inline-flex; align-items: center; gap: .45rem; padding: .25rem .4rem .25rem .8rem; border: 1px solid rgba(0,0,0,.15); border-radius: 999px; }
.padel-booking__picker input { border: 0; background: transparent; font: inherit; color: inherit; min-height: 34px; }
.padel-booking__month { font-weight: 600; opacity: .7; }
.padel-booking__dayswrap { position: relative; display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; }
.padel-booking__days { position: relative; flex: 1; min-width: 0; display: flex; gap: .5rem; overflow-x: auto; overscroll-behavior-x: contain; padding: .3rem .1rem .5rem; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; }
.padel-booking__days::-webkit-scrollbar { display: none; }
.padel-days__nav { flex: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); background: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; color: inherit; display: grid; place-items: center; padding: 0 0 3px; transition: opacity .2s ease; }
.padel-days__nav:disabled { opacity: .3; cursor: default; }
.padel-day.is-newmonth { margin-left: .8rem; }
@media (max-width: 640px) {
	.padel-days__nav { display: none; }
	.padel-booking__dayswrap { margin-inline: -4px; }
	.padel-booking__dayswrap::before, .padel-booking__dayswrap::after { content: ""; position: absolute; top: 0; bottom: 0; width: 28px; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
	.padel-booking__dayswrap::before { left: 0; background: linear-gradient(90deg, var(--padel-strip-fade, #fff), transparent); }
	.padel-booking__dayswrap::after { right: 0; background: linear-gradient(270deg, var(--padel-strip-fade, #fff), transparent); }
	.has-more-left .padel-booking__dayswrap::before, .has-more-right .padel-booking__dayswrap::after { opacity: 1; }
}
.padel-day { flex: 0 0 auto; scroll-snap-align: start; display: grid; justify-items: center; gap: .05rem; min-width: 64px; padding: .55rem .5rem; border: 1px solid rgba(0,0,0,.15); border-radius: 16px; background: #fff; cursor: pointer; font: inherit; line-height: 1.15; }
.padel-day small { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
.padel-day strong { font-size: 1.35rem; }
.padel-day.is-active { background: #10222f; color: #fff; border-color: transparent; }
.padel-booking__legend { display: flex; gap: 1.2rem; margin: .2rem 0 1.2rem; font-size: .82rem; opacity: .8; }
.padel-booking__legend span { display: inline-flex; align-items: center; gap: .4rem; }
.padel-booking__legend span::before { content: ""; width: 12px; height: 12px; border-radius: 4px; border: 1px solid rgba(0,0,0,.3); }
.padel-booking__legend .is-busy::before { background: repeating-linear-gradient(135deg, rgba(0,0,0,.25) 0 2px, transparent 2px 5px); }
.padel-booking__courts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1rem; }
.padel-court { border: 1px solid rgba(0,0,0,.12); border-radius: 18px; padding: 1rem 1.1rem 1.1rem; }
.padel-court__head { display: flex; align-items: center; gap: .9rem; margin-bottom: .9rem; }
.padel-court__map { width: 60px; height: 34px; flex: none; }
.padel-court__surface { fill: #1f5fd6; }
.padel-court.is-outdoor .padel-court__surface { fill: #e2531a; }
.padel-court__info { flex: 1; min-width: 0; }
.padel-court__info h4 { margin: 0; }
.padel-court__meta { margin: .15rem 0 0; font-size: .8rem; opacity: .7; }
.padel-court__side { display: grid; justify-items: end; gap: .2rem; text-align: right; }
.padel-court__price { font-size: 1.05rem; }
.padel-court__count { font-size: .74rem; font-weight: 700; color: #14602c; }
.padel-court__count.is-full { color: #a33; }
.padel-slotgroup { display: grid; gap: .4rem; margin-top: .55rem; }
.padel-slotgroup__label { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; opacity: .6; }
.padel-slotgroup__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: .45rem; }
.padel-slot { display: grid; justify-items: center; gap: .05rem; border: 1px solid rgba(0,0,0,.15); border-radius: 12px; padding: .5rem .3rem; background: #fff; cursor: pointer; font: inherit; line-height: 1.15; }
.padel-slot strong { font-size: 1rem; }
.padel-slot small { font-size: .68rem; opacity: .65; }
.padel-slot.is-free:hover { border-color: #14602c; }
.padel-slot.is-busy { background: repeating-linear-gradient(135deg, rgba(0,0,0,.06) 0 4px, transparent 4px 9px); cursor: not-allowed; opacity: .55; }
.padel-slot.is-busy strong { text-decoration: line-through; }
.padel-slot.is-loading { opacity: .5; }
.padel-court__empty, .padel-court__loading { font-size: .85rem; opacity: .65; }
.padel-feedback { min-height: 1.2em; font-size: .9rem; }

@media (max-width: 600px) {
	.padel-match { font-size: .9rem; }
	.padel-bracket__round { min-width: 180px; }
}

.padel-ranking h3 { margin: 0 0 .75rem; }
.padel-history { list-style: none; margin: .5rem 0 0; padding: 0; }
.padel-history li { display: flex; align-items: center; gap: .6rem; padding: .45rem 0; border-bottom: 1px solid rgba(0,0,0,.08); font-size: .92rem; }
.padel-history li:last-child { border-bottom: none; }
.padel-history__points { margin-left: auto; font-weight: 600; color: #14602c; font-variant-numeric: tabular-nums; }
.padel-player-card h4 { margin: 1.2rem 0 .4rem; font-size: 1rem; }

.padel-availability__hint { font-size: .85rem; color: rgba(0,0,0,.6); margin: 0 0 .75rem; }
.padel-availability__grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.padel-availability__day { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; padding: .6rem .75rem; }
.padel-availability__date { display: block; font-weight: 600; font-size: .85rem; margin-bottom: .35rem; text-transform: capitalize; }
.padel-availability__slot { display: flex; gap: .45rem; align-items: center; font-size: .85rem; margin-bottom: .2rem; }
.padel-availability__slot span { font-size: .85rem; }

.padel-table-scroll { overflow-x: auto; }
.padel-muted { color: rgba(0,0,0,.55); font-size: .9rem; }
.padel-squad__head h3 { margin: 0 0 .25rem; }
.padel-squad__meta { display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: center; font-size: .9rem; margin: 0 0 1rem; }
.padel-matchday h4 { margin: 1rem 0 .5rem; font-size: 1rem; }
.padel-tie { display: grid; grid-template-columns: 1fr auto 1fr; gap: .75rem; align-items: center; padding: .5rem .75rem; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; margin-bottom: .4rem; }
.padel-tie__team { font-size: .95rem; }
.padel-tie__team:last-child { text-align: right; }
.padel-tie__score { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.padel-tie--completed { background: rgba(0,0,0,.02); }
.padel-championship h3 { margin: 1.4rem 0 .6rem; }
.padel-championship h3:first-child { margin-top: 0; }

.padel-captain__head h3 { margin: 0 0 .25rem; }
.padel-captain h4 { margin: 1.4rem 0 .6rem; font-size: 1.05rem; }
.padel-captain__tie { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: .9rem 1rem; margin-bottom: .8rem; }
.padel-captain__row { display: flex; flex-wrap: wrap; gap: .4rem 1rem; justify-content: space-between; align-items: baseline; }
.padel-captain__state { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0; }
.padel-captain__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.padel-captain__panel { margin-top: .9rem; padding-top: .9rem; border-top: 1px dashed rgba(0,0,0,.15); }
.padel-button--ghost { background: transparent; color: inherit; border: 1px solid rgba(0,0,0,.2); }
.padel-sheet h5 { margin: 0 0 .5rem; font-size: 1rem; }
.padel-sheet__rubber { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.padel-sheet__rubber:last-of-type { border-bottom: none; }
.padel-sheet__no { font-weight: 600; font-size: .9rem; min-width: 5.5rem; }
.padel-sheet__pair { flex: 1 1 12rem; font-size: .9rem; }
.padel-sheet__sets { display: flex; gap: .25rem; flex-wrap: wrap; }
.padel-sheet__sets input { width: 2.6rem; text-align: center; }
.padel-sheet__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .8rem; }
.padel-sheet__feedback { margin-top: .6rem; font-size: .9rem; }
.padel-ok { color: #14602c; }
.padel-error { color: #8a1c1c; }
.padel-login-required { padding: 1rem; border: 1px dashed rgba(0,0,0,.2); border-radius: 8px; }

/* ── Stemmi, avatar e identita' visiva ─────────────────────────────── */
.padel-crest { display: inline-flex; align-items: center; justify-content: center; width: var(--padel-crest-size, 28px); height: var(--padel-crest-size, 28px); flex: 0 0 auto; }
.padel-crest img, .padel-crest svg { width: 100%; height: 100%; object-fit: contain; border-radius: 4px; display: block; }
.padel-avatar { display: inline-flex; width: var(--padel-avatar-size, 56px); height: var(--padel-avatar-size, 56px); flex: 0 0 auto; }
.padel-avatar img, .padel-avatar svg { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.padel-team { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.padel-team__name { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.padel-team__full { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.padel-team__short { font-size: .75rem; opacity: .62; display: inline-flex; align-items: center; gap: .3rem; }
.padel-pill { display: inline-flex; align-items: center; gap: .3rem; border-radius: 999px; padding: .12rem .55rem; font-size: .75rem; background: rgba(0,0,0,.06); }
.padel-pill.is-ok { background: #e5f6ea; color: #14602c; }
.padel-pill.is-ko { background: #fdeaea; color: #8a1c1c; }
.padel-pill.is-accent { background: #0f8a5f; color: #fff; }
.padel-pill.is-open { background: #e5f6ea; color: #14602c; }
.padel-small { font-size: .8rem; }
.padel-muted { opacity: .66; }

/* ── Scheda giocatore ──────────────────────────────────────────────── */
.padel-profile { display: flex; gap: 1.4rem; align-items: center; flex-wrap: wrap; margin-bottom: 1.4rem; }
.padel-profile__photo .padel-avatar { --padel-avatar-size: 168px; box-shadow: 0 10px 30px rgba(0,0,0,.18); border-radius: 50%; }
.padel-profile__head { flex: 1 1 260px; min-width: 0; }
.padel-profile__name { margin: 0 0 .5rem; display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.padel-profile__social { display: flex; gap: .45rem; margin: .9rem 0 0; }
.padel-squad__social { margin: .2rem 0 .9rem; }
.padel-social { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(0,0,0,.14); color: inherit; text-decoration: none; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.padel-social:hover { background: #10222f; color: #fff; border-color: transparent; transform: translateY(-2px); }
.padel-social.is-missing { opacity: .45; border-style: dashed; }
.padel-profile__captain { align-self: center; font-family: inherit; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.padel-profile__nick { font-size: .85rem; font-weight: 400; opacity: .6; }
.padel-profile__tags { list-style: none; margin: 0 0 .9rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.padel-profile__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .6rem; }
.padel-profile__stats div { background: rgba(0,0,0,.04); border-radius: 10px; padding: .6rem .7rem; font-size: .76rem; line-height: 1.3; }
.padel-profile__stats span { display: block; font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.padel-profile__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); margin-bottom: 1.2rem; }
.padel-card { border: 1px solid rgba(0,0,0,.1); border-radius: 14px; padding: 1rem 1.1rem; }
.padel-card h4 { margin: 0 0 .7rem; font-size: .95rem; }
.padel-datalist { margin: 0; display: grid; gap: .45rem; }
.padel-datalist > div { display: flex; justify-content: space-between; gap: .8rem; font-size: .85rem; border-bottom: 1px dashed rgba(0,0,0,.08); padding-bottom: .35rem; }
.padel-datalist dt { opacity: .62; margin: 0; }
.padel-datalist dd { margin: 0; text-align: right; font-weight: 500; }
.padel-squadlist { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.padel-squadlist li { display: flex; align-items: center; gap: .6rem; font-size: .85rem; }
.padel-squadlist li span { display: flex; flex-direction: column; }
.padel-gauge { display: inline-block; width: 46px; height: 6px; border-radius: 999px; background: rgba(0,0,0,.1); overflow: hidden; vertical-align: middle; margin-right: .35rem; }
.padel-gauge i { display: block; height: 100%; width: var(--padel-gauge, 0%); background: #0f8a5f; }

/* ── Classifiche con stemmi ────────────────────────────────────────── */
.padel-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.padel-standings--crests td, .padel-standings--players td { vertical-align: middle; }
.padel-standings .col-rank { width: 2.4rem; text-align: center; font-variant-numeric: tabular-nums; }
.padel-standings .col-points, .padel-standings .col-rubbers { text-align: center; font-variant-numeric: tabular-nums; }
.padel-standings tr.is-promo .col-rank { color: #0f8a5f; font-weight: 700; }
.padel-standings .padel-team__short { white-space: nowrap; }

/* ── Giornate ─────────────────────────────────────────────────────── */
.padel-rounds__nav { display: flex; gap: .3rem; overflow-x: auto; padding-bottom: .5rem; margin-bottom: .8rem; -webkit-overflow-scrolling: touch; }
.padel-rounds__tab { border: 1px solid rgba(0,0,0,.14); background: transparent; border-radius: 999px; min-width: 44px; min-height: 36px; padding: 0 .7rem; cursor: pointer; font-size: .82rem; }
.padel-rounds__tab.is-active { background: #0f8a5f; border-color: #0f8a5f; color: #fff; }
.padel-rounds .padel-matchday { display: none; }
.padel-rounds .padel-matchday.is-active { display: block; }
.padel-tie { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .6rem; padding: .55rem .7rem; border: 1px solid rgba(0,0,0,.1); border-radius: 10px; margin-bottom: .45rem; }
.padel-tie__team { display: flex; align-items: center; gap: .45rem; min-width: 0; font-size: .88rem; }
.padel-tie__team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.padel-tie__team--away { justify-content: flex-end; }
.padel-tie__score { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 3.4rem; text-align: center; }
.padel-tie__score small { font-weight: 500; font-size: .76rem; opacity: .7; }

/* ── Competizioni ─────────────────────────────────────────────────── */
.padel-filters { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.padel-filters__btn { display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; text-decoration: none; border: 1px solid rgba(0,0,0,.14); background: transparent; border-radius: 999px; min-height: 40px; padding: 0 1rem; cursor: pointer; font-size: .85rem; }
.padel-filters__btn.is-active { background: #10222f; border-color: #10222f; color: #fff; }
.padel-group { margin-bottom: 2.2rem; }
.padel-group__title { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; }
.padel-cards { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.padel-card--competition { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.padel-card__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #0d3b2e; }
.padel-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.padel-card--competition:hover .padel-card__media img { transform: scale(1.06); }
.padel-card__pattern { position: absolute; inset: 0; background:
	repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 1px, transparent 1px 42px),
	repeating-linear-gradient(0deg, rgba(255,255,255,.08) 0 1px, transparent 1px 42px),
	linear-gradient(135deg, #0f8a5f, #0b3b2c); }
.padel-card__type { position: absolute; left: .7rem; bottom: .7rem; background: rgba(255,255,255,.92); color: #10222f; border-radius: 999px; padding: .2rem .7rem; font-size: .74rem; font-weight: 600; }
.padel-card__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .7rem; flex: 1 1 auto; }
.padel-card__body h4 { margin: 0; font-size: 1.02rem; }
.padel-card__meta { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; font-size: .78rem; opacity: .8; margin: 0; }
.padel-card__cats { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .82rem; }
.padel-card__cats li { display: flex; justify-content: space-between; gap: .6rem; border-bottom: 1px dashed rgba(0,0,0,.08); padding-bottom: .25rem; }
.padel-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 1.1rem; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .86rem; background: #0f8a5f; color: #fff; }
.padel-btn--ghost { background: transparent; color: inherit; border: 1px solid currentColor; margin-top: auto; }
.padel-link-pdf { display: inline-flex; align-items: center; gap: .35rem; font-size: .82rem; min-height: 40px; }
.padel-link-pdf::before { content: "⬇"; }
.padel-captain__downloads { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .5rem; }

/* ── Mobile: le tabelle diventano schede ──────────────────────────── */
@media (max-width: 640px) {
	.padel-profile { gap: 1rem; }
	.padel-profile__photo .padel-avatar { --padel-avatar-size: 104px; }
	.padel-profile__stats { grid-template-columns: repeat(2, 1fr); }
	.padel-datalist > div { font-size: .82rem; }

	/* Classifiche come schede: posizione, squadra e punti in alto, numeri sotto */
	.padel-standings--crests, .padel-standings--players { display: block; border: 0; }
	.padel-standings--crests thead, .padel-standings--players thead { display: none; }
	.padel-standings--crests tbody, .padel-standings--players tbody { display: grid; gap: .5rem; }
	.padel-standings--crests tr, .padel-standings--players tr {
		display: flex; flex-wrap: wrap; align-items: center; column-gap: .9rem; row-gap: .3rem;
		position: relative; border: 1px solid rgba(0,0,0,.1); border-radius: 14px; padding: .65rem .8rem .65rem 2.9rem;
	}
	.padel-standings--crests td, .padel-standings--players td { border: 0 !important; padding: 0 !important; font-size: .78rem; background: none; }
	.padel-standings--crests .col-rank, .padel-standings--players .col-rank { position: absolute; left: .85rem; top: .75rem; width: 1.6rem; font-size: 1.05rem; font-weight: 800; text-align: left; }
	.padel-standings--crests .col-team, .padel-standings--players .col-team { flex: 1 1 0; min-width: 0; font-size: .9rem; }
	.padel-standings--crests .col-points { order: 2; font-size: 1.25rem; text-align: right; }
	.padel-standings--crests .col-points::before { content: none !important; }
	.padel-standings--crests td:not(.col-rank):not(.col-team):not(.col-points),
	.padel-standings--players td:not(.col-rank):not(.col-team) { order: 3; }
	.padel-standings--crests tr::after, .padel-standings--players tr::after { content: ""; order: 2; flex-basis: 100%; height: 0; }
	.padel-standings--crests td:not(.col-rank):not(.col-team):not(.col-points)::before,
	.padel-standings--players td:not(.col-rank):not(.col-team)::before {
		content: attr(data-label) " "; opacity: .55; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em;
	}

	.padel-player-card .padel-standings:not(.padel-standings--crests):not(.padel-standings--players) { display: block; overflow-x: auto; white-space: nowrap; }

	.padel-tie { grid-template-columns: 1fr auto 1fr; gap: .35rem; padding: .5rem .55rem; }
	.padel-tie__team { font-size: .8rem; }
	.padel-cards { grid-template-columns: 1fr; }
	.padel-captain__downloads { flex-direction: column; gap: .4rem; }
}

@media (prefers-reduced-motion: reduce) {
	.padel-card__media img { transition: none; }
}

/* ── Scheda squadra ───────────────────────────────────────────────── */
.padel-squad__hero { display: flex; gap: 1.4rem; align-items: center; flex-wrap: wrap; padding: 1.2rem 1.3rem; border: 1px solid rgba(0,0,0,.1); border-radius: 22px; margin-bottom: 1.6rem; }
.padel-squad__crest .padel-crest { --padel-crest-size: 112px; }
.padel-squad__intro { flex: 1 1 280px; min-width: 0; }
.padel-squad__meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 0 0 .6rem; font-size: .82rem; }
.padel-squad__captain { margin: 0 0 .9rem; font-size: .9rem; }
.padel-squad__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.padel-squad__stats div { border-radius: 12px; padding: .6rem .7rem; background: rgba(0,0,0,.04); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.padel-squad__stats span { display: block; font-size: 1.35rem; font-weight: 800; letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; }

.padel-roster { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin-bottom: 1.8rem; }
.padel-roster__player { display: grid; justify-items: center; text-align: center; gap: .3rem; padding: 1rem .8rem; border: 1px solid rgba(0,0,0,.1); border-radius: 16px; text-decoration: none; color: inherit; transition: transform .25s ease, border-color .25s ease; }
.padel-roster__player:hover { transform: translateY(-3px); }
.padel-roster__player .padel-avatar { --padel-avatar-size: 72px; margin-bottom: .2rem; }
.padel-roster__name { font-weight: 650; }
.padel-roster__meta { font-size: .76rem; opacity: .65; }

.padel-ties { display: grid; gap: .45rem; margin-bottom: 1.6rem; }
a.padel-tie { text-decoration: none; color: inherit; }
.padel-tie__round { font-size: .72rem; opacity: .6; position: absolute; }
.padel-ties .padel-tie { position: relative; }
.padel-tie.is-won { box-shadow: inset 3px 0 0 #0f8a5f, inset -3px 0 0 #0f8a5f; }
.padel-tie.is-lost { box-shadow: inset 3px 0 0 #c0392b, inset -3px 0 0 #c0392b; }
.padel-tie.is-drawn { box-shadow: inset 3px 0 0 #d4a017, inset -3px 0 0 #d4a017; }

/* ── Elenco squadre ───────────────────────────────────────────────── */
.padel-squadgrid { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; }
.padel-squadgrid > * { flex: 0 0 190px; box-sizing: border-box; }
.padel-squads .padel-group__title { justify-content: center; flex-wrap: wrap; }
.padel-squads .padel-filters { justify-content: center; }
.padel-squadcard { display: grid; justify-items: center; text-align: center; gap: .45rem; padding: 1.2rem .8rem 1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 18px; text-decoration: none; color: inherit; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.padel-squadcard:hover { transform: translateY(-4px); }
.padel-squadcard__crest .padel-crest { --padel-crest-size: 72px; transition: transform .4s ease; }
.padel-squadcard:hover .padel-squadcard__crest .padel-crest { transform: scale(1.08) rotate(-4deg); }
.padel-squadcard__name { font-weight: 650; font-size: .92rem; line-height: 1.25; }
.padel-squadcard__meta { font-size: .76rem; opacity: .7; }

/* ── Pagina incontro ──────────────────────────────────────────────── */
.padel-board { border: 1px solid rgba(0,0,0,.1); border-radius: 24px; padding: 1.2rem 1.3rem 1.3rem; margin-bottom: 1.6rem; text-align: center; }
.padel-board__meta { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; align-items: center; font-size: .8rem; margin: 0 0 1rem; }
.padel-board__teams { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; }
.padel-board__team { display: grid; justify-items: center; gap: .4rem; text-decoration: none; color: inherit; }
.padel-board__team .padel-crest { --padel-crest-size: 96px; }
.padel-board__team strong { font-size: 1.05rem; line-height: 1.2; }
.padel-board__team span { font-size: .78rem; }
.padel-board__score { display: grid; justify-items: center; gap: .3rem; min-width: 140px; }
.padel-board__result { display: flex; align-items: center; gap: .5rem; font-size: 3rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.padel-board__result b { opacity: .55; }
.padel-board__result b.is-win { opacity: 1; }
.padel-board__result i { font-style: normal; opacity: .4; font-size: 2rem; }
.padel-board__vs { font-size: 1.6rem; font-weight: 800; opacity: .5; text-transform: uppercase; }
.padel-board__when { font-size: .8rem; opacity: .75; text-transform: capitalize; }
.padel-board__venue { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; font-size: .82rem; margin: 1rem 0 0; opacity: .85; }
.padel-board .padel-captain__downloads { justify-content: center; margin-top: .8rem; }

.padel-rubbers { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); margin-bottom: 1.8rem; }
.padel-rubber { border: 1px solid rgba(0,0,0,.1); border-radius: 18px; padding: .8rem .95rem; }
.padel-rubber__head { display: flex; justify-content: space-between; font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .5rem; }
.padel-rubber__row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .45rem 0; }
.padel-rubber__row + .padel-rubber__row { border-top: 1px dashed rgba(0,0,0,.1); }
.padel-rubber.is-home .padel-rubber__row--away, .padel-rubber.is-away .padel-rubber__row--home { opacity: .55; }
.padel-pair { display: grid; gap: .3rem; min-width: 0; }
.padel-pair__player { display: flex; align-items: center; gap: .5rem; text-decoration: none; color: inherit; font-size: .88rem; }
.padel-pair__player .padel-avatar { --padel-avatar-size: 30px; }
.padel-rubber__sets { display: flex; gap: .3rem; }
.padel-rubber__sets span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: rgba(0,0,0,.05); font-weight: 700; font-variant-numeric: tabular-nums; }
.padel-rubber__sets span.is-win { background: #0f8a5f; color: #fff; }

@media (max-width: 640px) {
	.padel-squad__hero { justify-content: center; text-align: center; }
	.padel-squad__meta { justify-content: center; }
	.padel-squad__stats { grid-template-columns: repeat(2, 1fr); }
	.padel-squad__crest .padel-crest { --padel-crest-size: 88px; }
	.padel-roster { grid-template-columns: repeat(2, 1fr); }
	.padel-squadgrid > * { flex-basis: calc(50% - .45rem); }
	.padel-board__teams { grid-template-columns: 1fr auto 1fr; gap: .4rem; }
	.padel-board__team .padel-crest { --padel-crest-size: 58px; }
	.padel-board__team strong { font-size: .82rem; }
	.padel-board__score { min-width: 0; }
	.padel-board__result { font-size: 2.2rem; }
	.padel-rubbers { grid-template-columns: 1fr; }
	.padel-tie__round { display: none; }
}

/* Competizioni: griglia unica a 4 colonne, le pill filtrano */
.padel-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.padel-cards--4 [hidden] { display: none !important; }
@media (max-width: 1100px) { .padel-cards--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .padel-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .padel-cards--4 { grid-template-columns: 1fr; } }
.padel-card--competition .padel-card__body h4 { font-size: .98rem; }
.padel-rubber__sets span.is-long { width: 36px; font-size: .78rem; }
.padel-rubber__sets span.is-long::before { content: "L "; font-size: .55rem; opacity: .7; }

/* ── Iscrizione squadra ───────────────────────────────────────────── */
.padel-signup fieldset { border: 1px solid rgba(0,0,0,.12); border-radius: 18px; padding: 1.1rem 1.2rem 1.2rem; margin: 0 0 1.1rem; }
.padel-signup legend { font-weight: 800; padding: 0 .4rem; }
.padel-signup label { display: block; margin-bottom: .7rem; }
.padel-signup label > span, .padel-label { display: block; font-size: .78rem; font-weight: 600; margin-bottom: .25rem; opacity: .8; }
.padel-signup input[type="text"], .padel-signup input[type="email"], .padel-signup input[type="tel"], .padel-signup input[type="date"], .padel-signup select { width: 100%; }
.padel-grid2 { display: grid; gap: 0 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.padel-grid3 { display: grid; gap: 0 1rem; grid-template-columns: 2fr .6fr 2fr; }
.padel-grid-venue { display: grid; gap: 0 1rem; grid-template-columns: 1fr auto; align-items: end; }
.padel-radios { display: flex; gap: .8rem; margin-bottom: .7rem; }
.padel-check { display: inline-flex !important; align-items: center; gap: .4rem; font-size: .9rem; margin-right: .8rem; }
.padel-signup__players input, .padel-signup__players select { min-width: 92px; min-height: 40px; padding: .4rem .5rem; }
.padel-signup__players td { padding: .25rem .3rem !important; }
.padel-signup__clauses { margin: .3rem 0 .9rem; padding-left: 1.2rem; font-size: .9rem; }
.padel-signup__errors { border-color: #c0392b !important; margin-bottom: 1rem; }
.padel-signup__errors ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.padel-signup__done { border-color: #0f8a5f !important; }
@media (max-width: 640px) {
	.padel-grid2, .padel-grid3, .padel-grid-venue { grid-template-columns: 1fr; }
}
.padel-tie__score { display: grid; justify-items: center; line-height: 1.15; }
.padel-tie__day { font-size: .62rem; font-weight: 500; opacity: .55; text-transform: uppercase; letter-spacing: .06em; }

/* ── Gironi del campionato nella pagina torneo ───────────────────── */
.padel-areas-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.padel-area { display: flex; flex-direction: column; gap: .9rem; padding: 1.2rem 1.25rem 1.1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 22px; }
.padel-area__head h3 { margin: 0 0 .25rem; font-size: 1.35rem; }
.padel-area__head h3 a { color: inherit; text-decoration: none; }
.padel-area__meta { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; font-size: .8rem; opacity: .7; }
.padel-area__top { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.padel-area__top li { display: grid; grid-template-columns: 1.4rem auto 1fr auto; gap: .55rem; align-items: center; font-size: .88rem; }
.padel-area__top li a { color: inherit; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.padel-area__rank { font-weight: 800; opacity: .6; text-align: center; }
.padel-area__next { margin: 0; font-size: .8rem; opacity: .75; }
.padel-area__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; margin-top: auto; }
.padel-area__links a { display: grid; justify-items: center; gap: .3rem; padding: .7rem .4rem; border-radius: 14px; border: 1px solid rgba(0,0,0,.12); text-decoration: none; color: inherit; font-size: .8rem; font-weight: 600; transition: transform .2s ease, border-color .2s ease; }
.padel-area__links a:hover { transform: translateY(-2px); }
.padel-areanav { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.4rem; }
.padel-areanav a { text-decoration: none; display: inline-flex; align-items: center; }
@media (max-width: 960px) { .padel-areas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Mobile: i gironi diventano un carosello da scorrere col dito (niente barra visibile). */
@media (max-width: 640px) {
	.padel-areas-grid { display: flex; gap: .8rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--ts-gutter, 1rem)); padding: .2rem var(--ts-gutter, 1rem) .8rem; scroll-padding-inline: var(--ts-gutter, 1rem); }
	.padel-areas-grid::-webkit-scrollbar { display: none; }
	.padel-areas-grid > * { flex: 0 0 86%; scroll-snap-align: start; min-width: 0; }
}

/* ── Scheda giocatore: club e storico squadre ────────────────────── */
.padel-profile { align-items: center; }
.padel-profile__club { display: grid; justify-items: center; text-align: center; gap: .3rem; margin-left: auto; padding: 1rem 1.2rem; min-width: 190px; max-width: 240px; border-radius: 18px; border: 1px solid rgba(0,0,0,.1); text-decoration: none; color: inherit; transition: transform .25s ease, border-color .25s ease; }
.padel-profile__club:hover { transform: translateY(-3px); }
.padel-profile__club .padel-crest { --padel-crest-size: 84px; margin-bottom: .2rem; }
.padel-profile__club-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; opacity: .6; }
.padel-profile__club strong { font-size: 1rem; line-height: 1.2; }
.padel-profile__club .padel-muted { font-size: .78rem; }
.padel-profile__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.padel-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.padel-timeline li { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; padding: .6rem .7rem; border-radius: 14px; background: rgba(0,0,0,.03); }
.padel-timeline li.is-past { opacity: .75; }
.padel-timeline__crest .padel-crest { --padel-crest-size: 40px; }
.padel-timeline__body { display: grid; gap: .15rem; min-width: 0; }
.padel-timeline__body a { color: inherit; text-decoration: none; }
.padel-timeline__body .padel-muted { font-size: .78rem; }
.padel-timeline__tags { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .15rem; }
.padel-timeline__stats { display: grid; justify-items: end; line-height: 1.1; }
.padel-timeline__stats strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.padel-timeline__stats span { font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; opacity: .6; }

/* Rosa della squadra su 4 colonne */
.padel-roster { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .padel-roster { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (max-width: 860px) {
	.padel-profile__grid { grid-template-columns: 1fr; }
	.padel-profile__club { margin: 0 auto; max-width: none; width: 100%; grid-template-columns: auto 1fr; justify-items: start; text-align: left; column-gap: .9rem; }
	.padel-profile__club .padel-crest { --padel-crest-size: 56px; grid-row: span 4; margin: 0; }
}
@media (max-width: 640px) {
	.padel-roster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.padel-timeline li { grid-template-columns: auto 1fr; }
	.padel-timeline__stats { grid-column: 2; justify-items: start; }
}

/* ---------------------------------------------------------------- Referto gara */
.padel-pill.is-warn { background: #fff4d6; color: #7a5300; }
.padel-referto { margin-top: 1.4rem; border: 1px solid rgba(0,0,0,.12); border-radius: 14px; padding: 1.1rem 1.2rem; background: rgba(255,255,255,.6); }
.padel-referto.is-compact { margin-top: 1rem; padding: .9rem 1rem; background: transparent; border-style: dashed; }
.padel-referto__head { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .8rem; }
.padel-referto__head h4 { margin: 0 .4rem 0 0; font-size: 1.05rem; }
.padel-referto__state.is-verificato, .padel-referto__state.is-ricevuto { background: #e5f6ea; color: #14602c; }
.padel-referto__state.is-da_correggere { background: #fdeaea; color: #8a1c1c; }
.padel-referto__state.is-da_verificare, .padel-referto__state.is-inviato, .padel-referto__state.is-caricato, .padel-referto__state.is-preparato { background: #fff4d6; color: #7a5300; }
.padel-referto__steps { list-style: none; margin: 0 0 .9rem; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .4rem; counter-reset: rstep; }
.padel-referto__steps li { position: relative; padding: .55rem .5rem .5rem 2rem; border-radius: 10px; background: rgba(0,0,0,.04); font-size: .8rem; line-height: 1.25; counter-increment: rstep; }
.padel-referto__steps li::before { content: counter(rstep); position: absolute; left: .5rem; top: .5rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; display: grid; place-items: center; font-size: .7rem; font-weight: 700; background: rgba(0,0,0,.12); }
.padel-referto__steps li.is-done { background: #e5f6ea; color: #14602c; }
.padel-referto__steps li.is-done::before { content: '✓'; background: #14602c; color: #fff; }
.padel-referto__steps small { display: block; opacity: .75; margin-top: .15rem; }
.padel-referto__note { margin: .4rem 0; padding: .55rem .75rem; border-radius: 8px; background: #fff4d6; font-size: .9rem; }
.padel-referto__note.is-ko { background: #fdeaea; }
.padel-referto__msg { margin: 0 0 .8rem; padding: .55rem .75rem; border-radius: 8px; font-weight: 600; }
.padel-referto__msg.is-ok { background: #e5f6ea; color: #14602c; }
.padel-referto__msg.is-error { background: #fdeaea; color: #8a1c1c; }
.padel-referto__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .7rem 1rem; }
.padel-referto__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem; margin: 0; }
.padel-referto__form textarea { min-width: 240px; flex: 1 1 260px; font: inherit; padding: .45rem .6rem; border-radius: 8px; border: 1px solid rgba(0,0,0,.2); }
.padel-referto__file { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; }
.padel-referto__send, .padel-referto__staff { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; padding: .7rem .8rem; border-radius: 10px; background: rgba(0,0,0,.035); }
.padel-referto__send p { flex: 1 1 100%; margin: 0; }
.padel-referto__staff > strong { flex: 1 1 100%; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
.padel-referto__disclaimer { margin: .9rem 0 0; font-size: .78rem; opacity: .7; }
.padel-referto__history { margin-top: .8rem; font-size: .85rem; }
.padel-referto__history summary { cursor: pointer; font-weight: 600; }
.padel-referto__history ul { list-style: none; margin: .5rem 0 0; padding: 0; }
.padel-referto__history li { display: flex; flex-wrap: wrap; gap: .2rem .7rem; padding: .35rem 0; border-top: 1px solid rgba(0,0,0,.07); }
.padel-referto__history time { min-width: 7.5rem; opacity: .7; font-variant-numeric: tabular-nums; }
.padel-referto__history em { flex: 1 1 100%; opacity: .8; }
.padel-captain__tie--done .padel-tie { margin-bottom: 0; }
@media (max-width: 760px) {
	.padel-referto__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.padel-referto__form, .padel-referto__form textarea { width: 100%; }
	.padel-referto__form .padel-button { width: 100%; justify-content: center; }
}
.padel-referto textarea { min-height: 0 !important; height: auto; resize: vertical; }
.padel-referto__staff textarea { flex: 1 1 100%; width: 100%; font: inherit; padding: .45rem .6rem; border-radius: 8px; border: 1px solid rgba(0,0,0,.2); }
.padel-referto__buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.padel-referto .padel-button--ghost { background: transparent; color: inherit; border: 1px solid currentColor; }

/* Doppi dell'incontro: schede orizzontali su due colonne */
.padel-rubbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.padel-rubber__body { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .9rem; }
.padel-rubber .padel-pair { display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
.padel-rubber .padel-pair--away { align-items: flex-end; text-align: right; }
.padel-rubber .padel-pair--away .padel-pair__player { flex-direction: row-reverse; }
.padel-rubber .padel-pair__player { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.padel-rubber .padel-pair__player span { line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.padel-rubber.is-home .padel-pair--away, .padel-rubber.is-away .padel-pair--home { opacity: .55; }
.padel-rubber__score { display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.padel-set { display: inline-flex; align-items: center; gap: .25rem; font-variant-numeric: tabular-nums; }
.padel-set b { display: grid; place-items: center; min-width: 30px; height: 28px; padding: 0 .3rem; border-radius: 8px; background: rgba(0,0,0,.05); font-weight: 700; }
.padel-set b.is-win { background: #0f8a5f; color: #fff; }
.padel-set i { font-style: normal; opacity: .5; }
.padel-set.is-long b { font-size: .8rem; height: 24px; }
.padel-set.is-long { flex-wrap: wrap; justify-content: center; row-gap: .1rem; }
.padel-set.is-long::after { content: "TB"; flex: 0 0 100%; text-align: center; font-size: .56rem; letter-spacing: .08em; opacity: .6; line-height: 1; }
.padel-rubber__vs { font-weight: 700; opacity: .5; text-transform: uppercase; font-size: .8rem; }
@media (max-width: 900px) {
	.padel-rubbers { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.padel-rubber__body { gap: .5rem; }
	.padel-rubber .padel-pair__player .padel-avatar { display: none; }
	.padel-set.is-long::after { content: "TB"; }
	.padel-rubber .padel-pair__player span { font-size: .85rem; }
}

/* Classifica: qualificate, ritiri, penalita' */
.padel-standings tr.is-withdrawn td { opacity: .55; }
.padel-standings tr.is-withdrawn .padel-team__full { text-decoration: line-through; }
.padel-standings .col-team .padel-pill { margin-left: .4rem; font-size: .68rem; vertical-align: middle; }
.padel-standings__legend { margin: .7rem 0 0; font-size: .82rem; opacity: .85; }
.padel-standings__legend p { margin: .2rem 0; }
.padel-legend { display: inline-block; width: .8rem; height: .8rem; border-radius: 3px; vertical-align: -1px; background: #0f8a5f; }
.padel-referto__hint { flex: 1 1 100%; margin: 0; }
.padel-referto__signs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: .9rem 0 0; }
.padel-referto__sign { border: 1px dashed rgba(0,0,0,.25); border-radius: 10px; padding: .55rem .75rem; display: flex; flex-direction: column; gap: .1rem; font-size: .85rem; }
.padel-referto__sign small { text-transform: uppercase; letter-spacing: .06em; font-size: .68rem; opacity: .7; }
.padel-referto__sign.is-signed { border-style: solid; border-color: #0f8a5f; background: #e5f6ea; color: #14602c; }
.padel-referto__log { margin-top: .8rem; font-size: .8rem; }
.padel-referto__log p { margin: .2rem 0; }
.padel-referto__log .is-ko { color: #8a1c1c; }
@media (max-width: 560px) { .padel-referto__signs { grid-template-columns: 1fr; } }
.padel-referto__send.is-ready { background: #e5f6ea; border: 1px solid #0f8a5f; }
.padel-referto__send-btn { font-weight: 800; letter-spacing: .04em; }

/* Tabellone fase finale */
.padel-ko__scroll { overflow-x: auto; padding-bottom: .5rem; }
.padel-ko__grid { display: grid; grid-template-columns: repeat(var(--padel-rounds, 3), minmax(230px, 1fr)); gap: 1.4rem; min-width: calc(var(--padel-rounds, 3) * 250px); }
.padel-ko__round h4 { margin: 0 0 .7rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; opacity: .75; }
.padel-ko__matches { display: flex; flex-direction: column; justify-content: space-around; height: calc(100% - 2rem); gap: .8rem; }
.padel-ko__match { display: block; border: 1px solid rgba(0,0,0,.12); border-radius: 14px; padding: .35rem .6rem; text-decoration: none; color: inherit; background: rgba(255,255,255,.6); position: relative; }
a.padel-ko__match:hover { border-color: #0f8a5f; }
.padel-ko__match.is-bye { opacity: .8; border-style: dashed; }
.padel-ko__team { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; min-height: 34px; }
.padel-ko__team + .padel-ko__team { border-top: 1px dashed rgba(0,0,0,.1); }
.padel-ko__name { flex: 1; min-width: 0; font-size: .88rem; line-height: 1.15; }
.padel-ko__name small { display: block; font-size: .68rem; opacity: .6; }
.padel-ko__team b { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 7px; background: rgba(0,0,0,.06); font-variant-numeric: tabular-nums; }
.padel-ko__team.is-win .padel-ko__name { font-weight: 700; }
.padel-ko__team.is-win b { background: #0f8a5f; color: #fff; }
.padel-ko__team.is-out { opacity: .55; }
.padel-ko__when { display: block; font-size: .72rem; opacity: .7; padding-top: .2rem; }
.padel-finals-card { display: grid; gap: .2rem; margin: 0 0 1.4rem; padding: 1.1rem 1.3rem; border-radius: 18px; text-decoration: none; color: inherit; border: 1px solid #0f8a5f; background: linear-gradient(120deg, rgba(15,138,95,.12), rgba(65,201,226,.08)); }
.padel-finals-card__kicker { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; opacity: .75; }
.padel-finals-card strong { font-size: 1.25rem; }
.padel-finals-card em { font-style: normal; font-weight: 600; }

/* Albo d'oro */
.padel-honours__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.padel-honours__item { display: grid; grid-template-columns: 6.5rem 64px 1fr; align-items: center; gap: 1rem; padding: .9rem 1.1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 18px; }
.padel-honours__season { font-weight: 800; font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.padel-honours__body { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.padel-honours__body small { text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; opacity: .7; }
.padel-honours__body strong { font-size: 1.1rem; }
@media (max-width: 560px) { .padel-honours__item { grid-template-columns: 56px 1fr; } .padel-honours__season { grid-column: 1 / -1; } }

/* Documenti e comunicati */
.padel-doc { border: 1px solid rgba(0,0,0,.1); border-radius: 18px; padding: 1.1rem 1.3rem; margin-bottom: 1rem; }
.padel-doc--current { border-color: #0f8a5f; }
.padel-doc h3 { margin: .2rem 0; }
.padel-doc__kicker { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: #0f8a5f; font-weight: 700; }
.padel-doc__body { margin: .6rem 0; line-height: 1.6; }
.padel-doclist { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.padel-doclist li { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; padding: .7rem .9rem; border: 1px solid rgba(0,0,0,.1); border-radius: 12px; }
.padel-doclist li > span { flex: 1 1 260px; }
.padel-doclist small { opacity: .7; }
.padel-notices { display: grid; gap: .6rem; }
.padel-notice { display: flex; align-items: center; gap: 1rem; padding: .8rem 1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 14px; text-decoration: none; color: inherit; }
.padel-notice:hover { border-color: #0f8a5f; }
.padel-notice__num { flex: 0 0 auto; min-width: 3.6rem; text-align: center; font-weight: 800; padding: .35rem .5rem; border-radius: 10px; background: rgba(15,138,95,.12); }
.padel-notice__body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.padel-notice__body small { opacity: .7; }
.padel-tournament__nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.2rem; }
.padel-captain__share { margin: .6rem 0; border: 1px solid rgba(0,0,0,.12); border-radius: 12px; padding: .6rem .9rem; }
.padel-captain__share summary { cursor: pointer; font-weight: 600; }
.padel-captain__share textarea { width: 100%; margin-top: .6rem; font: .85rem/1.45 ui-monospace, monospace; border-radius: 8px; padding: .6rem; }

/* Area societa' e scadenzario */
.padel-society__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.padel-society__head h3 { margin: 0; }
.padel-society__squads { display: grid; gap: .6rem; }
.padel-society__squad { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .7rem .9rem; border: 1px solid rgba(0,0,0,.12); border-radius: 12px; margin: 0; }
.padel-society__squad strong { flex: 1 1 200px; }
.padel-certs { display: grid; gap: .5rem; margin-bottom: 1rem; }
.padel-cert { border: 1px solid rgba(0,0,0,.12); border-radius: 12px; border-left-width: 4px; }
.padel-cert summary { display: grid; grid-template-columns: minmax(0, 2fr) 6.5rem auto minmax(0, 1.4fr); align-items: center; gap: .6rem; padding: .6rem .9rem; cursor: pointer; list-style: none; }
.padel-cert summary::-webkit-details-marker { display: none; }
.padel-cert__name { display: flex; flex-direction: column; min-width: 0; }
.padel-cert__name small { opacity: .65; font-size: .75rem; }
.padel-cert__exp { font-variant-numeric: tabular-nums; }
.padel-cert--valido { border-left-color: #0f8a5f; }
.padel-cert--in_scadenza, .padel-cert--da_verificare { border-left-color: #d9a400; }
.padel-cert--scaduto, .padel-cert--assente { border-left-color: #c0392b; }
.padel-cert--valido .padel-cert__state { background: #e5f6ea; color: #14602c; }
.padel-cert--in_scadenza .padel-cert__state, .padel-cert--da_verificare .padel-cert__state { background: #fff4d6; color: #7a5300; }
.padel-cert--scaduto .padel-cert__state, .padel-cert--assente .padel-cert__state { background: #fdeaea; color: #8a1c1c; }
.padel-cert__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem 1rem; padding: .3rem .9rem .9rem; margin: 0; }
.padel-cert__form label { display: flex; flex-direction: column; font-size: .78rem; gap: .2rem; }
.padel-cert__form .padel-cert__check { flex-direction: row; align-items: center; gap: .4rem; font-size: .85rem; }
.padel-cert__form p { flex: 1 1 100%; margin: 0; }
.padel-cert__log { font-size: .82rem; padding-left: 1.1rem; }
@media (max-width: 720px) { .padel-cert summary { grid-template-columns: 1fr auto; } .padel-cert__next { grid-column: 1 / -1; } }
.padel-captain__certs { list-style: none; margin: .6rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .35rem .8rem; }
.padel-captain__certs li { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-size: .88rem; }

/* Contenuti del circolo */
.padel-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.padel-person { border: 1px solid rgba(0,0,0,.1); border-radius: 18px; padding: 1.1rem; text-align: center; }
.padel-person__photo img, .padel-person__photo svg { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.padel-person h4 { margin: .6rem 0 .1rem; }
.padel-person__role { font-weight: 600; color: #0f8a5f; margin: 0 0 .3rem; }
.padel-person__bio { text-align: left; font-size: .9rem; }
.padel-courses { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.padel-course { border: 1px solid rgba(0,0,0,.1); border-radius: 18px; padding: 1.1rem; }
.padel-course__img img { width: 100%; height: 160px; object-fit: cover; border-radius: 12px; }
.padel-course h4 { margin: .5rem 0 .3rem; }
.padel-sponsors { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.padel-sponsors.is-compact { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .6rem; }
.padel-sponsor { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: 1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 16px; text-decoration: none; color: inherit; text-align: center; }
.padel-sponsor__logo img { max-height: 70px; width: auto; object-fit: contain; }
.padel-sponsors.is-compact .padel-sponsor__logo img { max-height: 44px; }
.padel-sponsor__name { font-weight: 700; }
.padel-sponsor small { opacity: .65; text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; }
.padel-story__list { list-style: none; margin: 1rem 0 0; padding: 0; }
.padel-story__item { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding-bottom: 1rem; }
.padel-story__year { font-weight: 800; font-size: 1.4rem; color: #0f8a5f; padding-top: .8rem; }
.padel-story__year.is-same { visibility: hidden; }
.padel-story__card { border: 1px solid rgba(0,0,0,.1); border-radius: 18px; padding: 1rem 1.1rem; }
.padel-story__card small { text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; opacity: .7; }
.padel-story__card h4 { margin: .2rem 0 .4rem; }
.padel-story__img img { width: 100%; max-height: 320px; object-fit: cover; border-radius: 12px; margin-bottom: .6rem; }
.padel-contact { border: 1px solid rgba(0,0,0,.12); border-radius: 18px; padding: 1.2rem; }
.padel-contact__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; margin-bottom: .8rem; }
.padel-contact__grid label { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; }
.padel-contact__wide { grid-column: 1 / -1; }
.padel-contact input, .padel-contact select, .padel-contact textarea { font: inherit; padding: .55rem .7rem; border-radius: 10px; border: 1px solid rgba(0,0,0,.2); }
.padel-contact__trap { position: absolute; left: -9999px; }
.padel-contact__privacy { display: block; font-size: .85rem; margin-bottom: .8rem; }
.padel-empty-hint { border: 1px dashed rgba(0,0,0,.25); border-radius: 12px; padding: .7rem 1rem; }
@media (max-width: 640px) { .padel-contact__grid { grid-template-columns: 1fr; } .padel-story__item { grid-template-columns: 1fr; gap: .2rem; } .padel-story__year.is-same { display: none; } }
.padel-sponsored { margin: 0 0 1.2rem; display: grid; gap: .4rem; }
.padel-person__photo { display: flex; justify-content: center; }

/* Finestra di prenotazione */
.padel-dlg-open { overflow: hidden; }
.padel-bookdlg { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 16px; }
.padel-bookdlg[hidden] { display: none; }
.padel-bookdlg__backdrop { position: absolute; inset: 0; background: rgba(5, 10, 30, .62); backdrop-filter: blur(4px); }
.padel-bookdlg__panel { position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: #fff; color: #111; border-radius: 22px; padding: 1.6rem 1.6rem 1.4rem; box-shadow: 0 40px 90px -30px rgba(0,0,0,.6); animation: padel-dlg-in .25s ease; }
@keyframes padel-dlg-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.padel-bookdlg__close { position: absolute; top: .7rem; right: .8rem; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(0,0,0,.06); font-size: 1.5rem; line-height: 1; cursor: pointer; color: inherit; }
.padel-bookdlg__kicker { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #e2531a; }
.padel-bookdlg__title { margin: .2rem 0 0; font-size: 1.4rem; }
.padel-bookdlg__when { margin: .2rem 0 0; font-weight: 600; text-transform: capitalize; }
.padel-bookdlg__price { margin: .1rem 0 1rem; opacity: .7; font-size: .9rem; }
.padel-bookdlg__price:empty { display: none; }
.padel-bookdlg__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.padel-bookdlg__grid .is-wide { grid-column: 1 / -1; }
.padel-bookdlg__grid label { display: grid; gap: .3rem; font-size: .82rem; font-weight: 600; }
.padel-bookdlg__grid input { width: 100%; min-height: 46px; padding: .5rem .8rem; border: 1px solid rgba(0,0,0,.2); border-radius: 12px; font: inherit; font-weight: 400; background: transparent; color: inherit; }
.padel-bookdlg__grid input[readonly] { opacity: .7; }
.padel-bookdlg__check { display: flex; gap: .55rem; align-items: flex-start; margin-top: .8rem; font-size: .84rem; line-height: 1.4; }
.padel-bookdlg__check input { margin-top: .2rem; flex: none; }
.padel-bookdlg__error { margin: .7rem 0 0; color: #c0392b; font-weight: 600; font-size: .88rem; }
.padel-bookdlg__error:empty { display: none; }
.padel-bookdlg__submit { width: 100%; margin-top: 1rem; min-height: 50px; }
.padel-bookdlg__hint { margin: .7rem 0 0; font-size: .8rem; opacity: .65; text-align: center; }
.padel-bookdlg__code input { width: 100%; min-height: 64px; text-align: center; font-size: 2rem; font-weight: 700; letter-spacing: .5em; border: 2px solid rgba(0,0,0,.2); border-radius: 14px; background: transparent; color: inherit; }
.padel-bookdlg__done { text-align: center; }
.padel-bookdlg__tick { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #1fae6b; color: #fff; font-size: 2rem; margin: .4rem 0 .6rem; }
.padel-bookdlg__donetitle { margin: 0 0 .3rem; font-size: 1.3rem; }
.padel-bookdlg__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-top: 1rem; }
.padel-btn--ghost { background: transparent; border: 1px solid currentColor; }
.padel-booking__notice { padding: .8rem 1rem; border-radius: 14px; background: rgba(0,0,0,.05); margin: 0 0 1rem; }
@media (max-width: 560px) { .padel-bookdlg__grid { grid-template-columns: 1fr; } .padel-bookdlg { align-items: end; padding: 0; } .padel-bookdlg__panel { border-radius: 22px 22px 0 0; max-height: 92vh; } }

/* Pagina della singola prenotazione (link nell'email) */
.padel-bookcard { padding: 1.6rem; border: 1px solid rgba(0,0,0,.12); border-radius: 22px; }
.padel-bookcard__flash { padding: .7rem 1rem; border-radius: 12px; background: rgba(31,174,107,.14); font-weight: 600; }
.padel-bookcard__status { display: inline-block; padding: .2rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: rgba(0,0,0,.07); }
.padel-bookcard.is-confirmed .padel-bookcard__status { background: rgba(31,174,107,.2); }
.padel-bookcard.is-cancelled .padel-bookcard__status { background: rgba(192,57,43,.15); }
.padel-bookcard__court { margin: .6rem 0 0; }
.padel-bookcard__when { margin: .2rem 0 1rem; font-size: 1.1rem; font-weight: 600; }
.padel-bookcard__rows { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1.2rem; margin: 0 0 1.2rem; }
.padel-bookcard__rows dt { opacity: .65; }
.padel-bookcard__rows dd { margin: 0; font-weight: 600; }

/* Pagina Squadre: le card delle competizioni sempre al centro, anche se sono una o due. */
.padel-squads-home .padel-cards { display: flex; flex-wrap: wrap; justify-content: center; }
.padel-squads-home .padel-cards > * { flex: 0 1 calc((100% - 3.6rem) / 4); min-width: min(100%, 260px); }

/* Elenco incontri del giocatore: righe che vanno a capo, mai una barra orizzontale. */
.padel-matches { display: grid; gap: .45rem; margin-bottom: 1.6rem; }
.padel-match { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: .65rem .9rem; border: 1px solid rgba(0,0,0,.1); border-radius: 12px; text-decoration: none; color: inherit; min-width: 0; }
.padel-match__round { display: grid; justify-items: center; line-height: 1.05; min-width: 3rem; font-variant-numeric: tabular-nums; }
.padel-match__round small { font-size: .6rem; text-transform: uppercase; letter-spacing: .06em; opacity: .6; }
.padel-match__teams { display: grid; gap: .15rem; min-width: 0; }
.padel-match__vs { overflow-wrap: anywhere; line-height: 1.3; }
.padel-match__vs em { font-style: normal; opacity: .55; font-size: .85em; }
.padel-match__teams small { font-size: .74rem; opacity: .65; }
.padel-match__result { display: grid; justify-items: end; gap: .2rem; text-align: right; }
.padel-match__score { font-weight: 700; font-variant-numeric: tabular-nums; font-size: .9rem; white-space: nowrap; }
@media (max-width: 520px) {
	.padel-match { grid-template-columns: auto minmax(0, 1fr); gap: .3rem .75rem; }
	.padel-match__result { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .45rem; text-align: left; }
}

/* Incontri della squadra: le colonne non superano mai la larghezza, i nomi lunghi vanno su due righe. */
.padel-tie { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.padel-tie__team span { white-space: normal; text-overflow: clip; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; line-height: 1.25; }
.padel-tie__team--away span { text-align: right; }
.padel-ties, .padel-matches { max-width: 100%; overflow-x: clip; }

/* Distinta pre-gara: bozza (solo il capitano la vede) e consegnata (definitiva) */
.padel-sheet__state { margin: .4rem 0 .6rem; padding: .55rem .8rem; border-radius: 10px; font-size: .9rem; border: 1px solid transparent; }
.padel-sheet__state.is-draft { background: rgba(229, 181, 47, .12); border-color: rgba(229, 181, 47, .45); }
.padel-sheet__state.is-delivered { background: rgba(31, 174, 107, .12); border-color: rgba(31, 174, 107, .45); }
.padel-sheet select:disabled { opacity: .85; cursor: not-allowed; }

/* Anteprima "come capitano" per l'organizzazione */
.padel-captain__preview-picker { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 1rem; padding: .7rem 1rem; border: 1px dashed rgba(127,127,127,.5); border-radius: 12px; font-size: .92rem; }
.padel-captain__preview-picker select { max-width: 100%; }
.padel-captain__preview { margin: .4rem 0 1rem; padding: .6rem .9rem; border-radius: 10px; background: rgba(31, 95, 214, .12); border: 1px solid rgba(31, 95, 214, .4); font-size: .9rem; }

/* ── Galleria del giocatore ─────────────────────────────────────── */
.padel-gallery { margin-top: 1.8rem; }
.padel-gallery__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.padel-gallery__head h4 { margin: 0; display: flex; align-items: center; gap: .5rem; }
.padel-gallery__add { cursor: pointer; }
.padel-gallery__grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); margin-top: 1rem; }
.padel-gallery__item { position: relative; margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid rgba(0,0,0,.1); background: #000; }
.padel-gallery__open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; aspect-ratio: 1 / 1; }
.padel-gallery__open img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.padel-gallery__item:hover .padel-gallery__open img { transform: scale(1.04); }
.padel-gallery__bar { display: flex; align-items: center; gap: .4rem; padding: .45rem .55rem; background: rgba(10, 16, 34, .92); color: #fff; }
.padel-gallery__bar button { display: inline-flex; align-items: center; gap: .3rem; padding: .35rem .6rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: .82rem; cursor: pointer; }
.padel-gallery__bar button:hover { border-color: rgba(255,255,255,.6); }
.padel-gallery__like.is-liked { color: #ff5a6e; border-color: rgba(255,90,110,.6); }
.padel-gallery__like.is-liked svg { animation: padel-pop .35s ease; }
.padel-gallery__delete { margin-left: auto; width: 30px; height: 30px; justify-content: center; padding: 0 !important; font-size: 1.1rem !important; }
.padel-gallery__feedback:empty { display: none; }
@keyframes padel-pop { 50% { transform: scale(1.35); } }

.padel-sharemenu { position: absolute; z-index: 30; bottom: 3.2rem; left: .5rem; display: grid; min-width: 160px; padding: .35rem; border-radius: 12px; background: #fff; color: #111; box-shadow: 0 14px 40px rgba(0,0,0,.35); }
.padel-sharemenu a, .padel-sharemenu button { display: block; padding: .5rem .7rem; border: 0; border-radius: 8px; background: none; color: inherit; text-align: left; font: inherit; font-size: .9rem; text-decoration: none; cursor: pointer; }
.padel-sharemenu a:hover, .padel-sharemenu button:hover { background: rgba(0,0,0,.06); }

.padel-lightbox { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; padding: 3.5rem 4rem; background: rgba(4, 8, 22, .94); }
.padel-lightbox.is-open { display: flex; }
.padel-lightbox__figure { position: relative; margin: 0; display: grid; justify-items: center; gap: .6rem; max-width: 100%; max-height: 100%; }
.padel-lightbox__figure img { max-width: min(1200px, 100%); max-height: calc(100vh - 9rem); object-fit: contain; border-radius: 12px; }
.padel-lightbox__figure .padel-gallery__bar { border-radius: 999px; padding: .35rem .5rem; }
.padel-lightbox__index { margin-left: .4rem; font-size: .82rem; opacity: .7; }
.padel-lightbox__figure .padel-sharemenu { bottom: 3.4rem; left: 50%; transform: translateX(-50%); }
.padel-lightbox__close, .padel-lightbox__nav { position: absolute; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; }
.padel-lightbox__close { top: 1rem; right: 1rem; width: 44px; height: 44px; font-size: 1.6rem; }
.padel-lightbox__nav { top: 50%; width: 48px; height: 48px; margin-top: -24px; font-size: 2rem; padding-bottom: 4px; }
.padel-lightbox__nav.is-prev { left: 1rem; }
.padel-lightbox__nav.is-next { right: 1rem; }
.padel-lightbox__close:hover, .padel-lightbox__nav:hover { background: rgba(255,255,255,.24); }
.padel-noscroll { overflow: hidden; }
@media (max-width: 640px) {
	.padel-lightbox { padding: 3.5rem .6rem 1rem; }
	.padel-lightbox__nav { top: auto; bottom: 1rem; margin: 0; }
	.padel-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
	.padel-gallery__bar { gap: .3rem; padding: .35rem; }
	.padel-gallery__share span { display: none; }
}
.padel-gallery__add { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }

/* Scheda giocatore: dati con icone | foto, sotto lo storico squadre a tutta larghezza */
.padel-datalist dt { display: inline-flex; align-items: center; gap: .5rem; }
.padel-datalist__icon { flex: 0 0 auto; opacity: .9; }
.padel-profile__grid { align-items: start; }
.padel-profile__grid:not(:has(.padel-gallery)) { grid-template-columns: 1fr; }
.padel-profile__photos { min-width: 0; }
.padel-profile__photos .padel-gallery { margin-top: 0; padding: 1rem 1.1rem; border: 1px solid rgba(0,0,0,.1); border-radius: 18px; }
.padel-profile__photos .padel-gallery__grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: .6rem; }
.padel-profile__photos .padel-gallery__share span { display: none; }
.padel-history-card--wide { margin-bottom: 1.2rem; }
.padel-history-card--wide .padel-timeline { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.padel-profile__side { display: grid; gap: 1rem; min-width: 0; }
.padel-profile__side .padel-history-card { margin: 0; }

/* Storico squadre nella colonna stretta: stemma + nome in alto, etichette, poi la barra dei doppi vinti */
.padel-timeline__bar { display: none; }
.padel-profile__side .padel-timeline li { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "crest body" "stats stats"; align-items: start; gap: .55rem .8rem; padding: .8rem .9rem; }
.padel-profile__side .padel-timeline__crest { grid-area: crest; }
.padel-profile__side .padel-timeline__crest .padel-crest { --padel-crest-size: 44px; }
.padel-profile__side .padel-timeline__body { grid-area: body; gap: .2rem; }
.padel-profile__side .padel-timeline__body strong { font-size: 1rem; line-height: 1.2; }
.padel-profile__side .padel-timeline__body .padel-muted { font-size: .78rem; line-height: 1.3; }
.padel-profile__side .padel-timeline__tags { margin-top: .3rem; }
.padel-profile__side .padel-timeline__tags .padel-pill { font-size: .68rem; padding: .15rem .5rem; }
.padel-profile__side .padel-timeline__stats { grid-area: stats; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: .55rem; justify-items: start; padding-top: .55rem; border-top: 1px solid rgba(127,127,127,.18); }
.padel-profile__side .padel-timeline__stats strong { font-size: 1rem; }
.padel-profile__side .padel-timeline__stats span:not(.padel-timeline__bar) { font-size: .64rem; }
.padel-profile__side .padel-timeline__bar { display: block; justify-self: stretch; height: 6px; border-radius: 6px; background: rgba(127,127,127,.2); overflow: hidden; }
.padel-profile__side .padel-timeline__bar i { display: block; height: 100%; border-radius: 6px; background: #1fae6b; }

/* Galleria: massimo 6 foto, sempre su 3 colonne */
.padel-gallery__grid, .padel-profile__photos .padel-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 480px) {
	.padel-gallery__grid, .padel-profile__photos .padel-gallery__grid { gap: .4rem; }
	.padel-gallery__bar { gap: .2rem; padding: .3rem; }
	.padel-gallery__bar button { padding: .25rem .4rem; font-size: .75rem; }
	.padel-gallery__bar svg { width: 15px; height: 15px; }
	.padel-gallery__delete { width: 24px; height: 24px; }
}

/* Barra della foto: Like a sinistra (con testo), Condividi a destra (solo icona) */
.padel-gallery__share { margin-left: auto; width: 34px; height: 34px; justify-content: center; padding: 0 !important; }
.padel-gallery__delete { margin-left: 0; }
.padel-gallery__liketext { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; opacity: .85; }
.padel-gallery__likes { font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) {
	.padel-gallery__share { width: 28px; height: 28px; }
	.padel-gallery__liketext { font-size: .62rem; letter-spacing: .03em; }
}

/* Social del giocatore: icone sempre visibili (spente se non indicate) e modifica dalla scheda */
.padel-profile__socialrow { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; margin-top: .9rem; }
.padel-profile__socialrow .padel-profile__social { margin: 0; }
.padel-social.is-empty { opacity: .35; cursor: default; }
.padel-social.is-empty:hover { background: none; color: inherit; transform: none; border-color: rgba(127,127,127,.3); }
.padel-social__edit { padding: .35rem .8rem; border: 1px dashed rgba(127,127,127,.5); border-radius: 999px; background: none; color: inherit; font: inherit; font-size: .78rem; cursor: pointer; }
.padel-social__form { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.padel-social__form label { display: grid; gap: .2rem; font-size: .75rem; }
.padel-social__form input { min-width: 200px; padding: .5rem .7rem; border-radius: 10px; border: 1px solid rgba(127,127,127,.4); background: transparent; color: inherit; font: inherit; }

/* ── Il mio account, iscrizioni, inviti ─────────────────────────── */
.padel-account { display: grid; gap: 1.4rem; }
.padel-account__msg { margin: 0; padding: .8rem 1rem; border-radius: 12px; background: #e5f6ea; color: #14602c; }
.padel-account__msg.is-error { background: #fdeaea; color: #8a1c1c; }
.padel-account__split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.2rem; align-items: start; }
.padel-account__card, .padel-account__section { border: 1px solid rgba(0,0,0,.12); border-radius: 16px; padding: 1.1rem 1.2rem; }
.padel-account__card h3, .padel-account__section h4 { margin: 0 0 .8rem; }
.padel-account__head { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; justify-content: space-between; align-items: center; }
.padel-account__head h3 { margin: 0; }
.padel-account__head p { margin: .2rem 0 0; }
.padel-account__links { display: flex; flex-wrap: wrap; gap: .5rem; }
.padel-account__form { display: grid; gap: .8rem; }
.padel-account__form label > span { display: block; font-size: .82rem; margin-bottom: .25rem; }
.padel-account__form input[type="text"], .padel-account__form input[type="email"], .padel-account__form input[type="password"], .padel-account__form input[type="date"], .padel-account__form input[type="file"], .padel-account__form select, .padel-entry__form input[type="text"], .padel-entry__form input[type="email"], .padel-entry__form input[type="search"], .padel-entry__form textarea { width: 100%; box-sizing: border-box; }
.padel-account__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: .8rem; }
.padel-account__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.padel-account__facts { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: 0; }
.padel-account__facts dt { font-size: .78rem; opacity: .7; }
.padel-account__facts dd { margin: 0; font-weight: 600; }
.padel-consent { display: flex; gap: .55rem; align-items: flex-start; font-size: .9rem; line-height: 1.4; }
.padel-consent input { margin-top: .2rem; flex: 0 0 auto; }
.padel-account__regs { display: grid; gap: .8rem; }
.padel-account__reg { border: 1px solid rgba(0,0,0,.1); border-radius: 12px; padding: .8rem 1rem; }
.padel-account__reg.is-focus { border-color: #0f8a5f; box-shadow: 0 0 0 3px rgba(15,138,95,.15); }
.padel-account__reg.is-cancelled { opacity: .6; }
.padel-account__reghead { display: flex; flex-wrap: wrap; gap: .4rem 1rem; justify-content: space-between; align-items: baseline; }
.padel-account__players { margin: .35rem 0; font-weight: 600; }
.padel-account__reg p { margin: .25rem 0; }
.padel-account__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .5rem; }
.padel-account__actions:empty { display: none; }
.padel-account__cert { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-bottom: .6rem; }
.padel-account__upload summary { cursor: pointer; font-weight: 600; margin: .4rem 0; }
.padel-pill.is-warn { background: #fff4d6; color: #7a5300; }
.padel-button--small { min-height: 36px !important; padding: 0 .9rem !important; font-size: .85rem; }
.padel-copy { display: flex; gap: .5rem; align-items: center; margin-top: .4rem; }
.padel-copy input { flex: 1 1 auto; min-width: 0; font-size: .85rem; }
.padel-category__signup { margin: .8rem 0; }
.padel-category__signup > summary { list-style: none; display: inline-flex; align-items: center; cursor: pointer; }
.padel-category__signup > summary::-webkit-details-marker { display: none; }
.padel-category__signup[open] > summary { margin-bottom: .8rem; }
.padel-entry__form { display: grid; gap: .9rem; text-align: left; }
.padel-entry__form h4 { margin: 0; }
.padel-entry__form fieldset { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; margin: 0; padding: .75rem 1rem; display: grid; gap: .55rem; }
.padel-entry__form label > span { display: block; font-size: .82rem; margin-bottom: .2rem; }
.padel-entry__choice { display: flex !important; gap: .5rem; align-items: center; }
.padel-entry__choice span { display: inline !important; font-size: .92rem !important; margin: 0 !important; }
.padel-entry__pane { padding-left: 1.6rem; display: grid; gap: .5rem; }
.padel-entry__results { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.padel-entry__pick { width: 100%; text-align: left; background: rgba(0,0,0,.04); border: 1px solid rgba(0,0,0,.1); border-radius: 8px; padding: .45rem .7rem; cursor: pointer; }
.padel-entry__pick:hover { border-color: #0f8a5f; }
.padel-invites__rows { display: grid; gap: .5rem; margin-top: .6rem; }
.padel-invites__row { display: grid; grid-template-columns: 1fr auto; gap: .4rem .8rem; align-items: center; padding: .55rem 0; border-top: 1px solid rgba(0,0,0,.08); }
.padel-invites__name { font-weight: 600; }
.padel-invites__form, .padel-invites__out { grid-column: 1 / -1; }
.padel-invites__form { display: flex; flex-wrap: wrap; gap: .4rem; }
.padel-invites__form input { flex: 1 1 200px; min-width: 0; }
.padel-cert__file, .padel-cert__note { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; margin: .6rem 0; }
.padel-cert__note { color: #8a1c1c; }
.padel-cert__reject { margin-top: .6rem; }
.padel-account input[type="submit"] { min-height: 44px; padding: 0 1.4rem; border: 0; border-radius: 999px; background: #0f8a5f; color: #fff; font-weight: 700; cursor: pointer; }
.padel-account #loginform p { margin: 0 0 .9rem; }
.padel-account #loginform input[type="text"], .padel-account #loginform input[type="password"] { width: 100%; box-sizing: border-box; }
.padel-entry a.padel-button, .padel-account a.padel-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.padel-entry__pane[hidden], .padel-entry__invite[hidden], .padel-entry__account[hidden] { display: none !important; }
.padel-account__reg .padel-feedback:empty { display: none; }
.padel-account__form > button, .padel-account__form > .padel-button { justify-self: start; }

/* Fasce della seconda fase (Gold / Silver / Bronze) */
.padel-standings tr.is-band td:first-child { box-shadow: inset 4px 0 0 var(--padel-band, transparent); }
.is-band-gold { --padel-band: #e0a90f; }
.is-band-silver { --padel-band: #a9b4c2; }
.is-band-bronze { --padel-band: #c0773a; }
.padel-bands { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; font-weight: 600; }
.padel-band { display: inline-flex; align-items: center; gap: .4rem; }
.padel-band i { width: .8rem; height: .8rem; border-radius: 3px; background: var(--padel-band); display: inline-block; }
.padel-bands small { flex-basis: 100%; font-weight: 400; opacity: .75; }

/* Foto principale: "Cambia foto" sotto il ritratto (giocatore, capitano, organizzazione). */
.padel-profile__photo { display: flex; flex-direction: column; align-items: center; gap: .55rem; }
.padel-portrait__change { cursor: pointer; }
.padel-portrait__out:empty { display: none; }
.padel-invites__photo { cursor: pointer; justify-self: start; }
.padel-invites__photo-out:empty { display: none; }
a.padel-invites__name { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Calendario: punteggi dei doppi sotto il risultato dell'incontro concluso. */
.padel-tie__sets { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem .9rem; font-size: .78rem; line-height: 1.3; opacity: .78; font-variant-numeric: tabular-nums; }
.padel-tie__rubber { white-space: nowrap; }
.padel-tie__rubber b { font-weight: 700; opacity: .7; margin-right: .15rem; }

/* Scheda incontro: data breve solo su telefono; nomi lunghi su righe bilanciate. */
.padel-board__when-short { display: none; }
.padel-board__name { text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
@media (max-width: 640px) {
	.padel-board__status--completed { display: none; }
	.padel-board__when { text-transform: none; }
	.padel-board__when-long { display: none; }
	.padel-board__when-short { display: inline; }
	.padel-board__team .padel-crest { --padel-crest-size: 77px !important; }
	.padel-board__teams { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
	.padel-board__team { min-width: 0; }
	.padel-board__name { max-width: 100%; }
}
.padel-board__dateline { display: none; }
@media (max-width: 640px) {
	.padel-board__dateline { display: block; margin: -.2rem 0 .9rem; font-size: .82rem; font-weight: 600; letter-spacing: .01em; opacity: .85; font-variant-numeric: tabular-nums; }
	.padel-board__round, .padel-board__score .padel-board__when { display: none; }
}

/* Super tie-break: stessa misura degli altri set; la sigla TB sta a lato e non cambia le dimensioni. */
.padel-set.is-long { position: relative; flex-wrap: nowrap; row-gap: 0; }
.padel-set.is-long b { font-size: inherit; height: 28px; }
.padel-set.is-long::after { position: absolute; left: 100%; top: 50%; transform: translateY(-50%); margin-left: .3rem; flex: none; }
.padel-set b, .padel-set.is-long b { min-width: 34px; width: 34px; height: 28px; padding: 0; }
@media (max-width: 640px) {
	.padel-gallery__grid, .padel-profile__photos .padel-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Classifica su telefono: la barretta della fascia sul bordo sinistro della card, staccata dal numero. */
@media (max-width: 640px) {
	.padel-standings--crests tr.is-band td:first-child, .padel-standings--players tr.is-band td:first-child { box-shadow: none; }
	.padel-standings--crests tr.is-band, .padel-standings--players tr.is-band { box-shadow: inset 4px 0 0 var(--padel-band, transparent); }
}
/* Classifica su telefono: le card non superano mai la larghezza dello schermo. */
@media (max-width: 640px) {
	.padel-standings--crests tbody, .padel-standings--players tbody { grid-template-columns: minmax(0, 1fr); }
	.padel-standings--crests tr, .padel-standings--players tr { min-width: 0; max-width: 100%; box-sizing: border-box; }
	.padel-standings--crests .col-team .padel-team, .padel-standings--players .col-team .padel-team { min-width: 0; }
}
