/* TopSmash — pelle per il plugin Padel Tournaments
   Riveste il markup del plugin senza modificarlo.
   ------------------------------------------------------------------ */

.ts-padel .padel-standings,
.ts-padel .padel-championship,
.ts-padel .padel-player-card,
.ts-padel .padel-competitions,
.ts-padel .padel-captain { color: var(--ts-text); }

/* Le pagine con gli shortcode del plugin usano tutta la larghezza */
.ts-prose--app { max-width: none; }
.ts-prose--app > * + * { margin-top: 0; }
.ts-prose .padel-profile__tags, .ts-prose .padel-squadlist, .ts-prose .padel-card__cats, .ts-prose .padel-history { padding-left: 0; }
.ts-padel .padel-championship h3, .ts-padel .padel-player-card h4 { margin-top: 1.6rem; }

/* Tabelle del plugin */
.ts-padel .padel-table-scroll { border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow-x: auto; background: var(--ts-surface); }
.ts-padel .padel-standings { font-size: .92rem; margin: 0; }
.ts-padel .padel-standings th,
.ts-padel .padel-standings td { padding: .7rem .85rem; border-bottom: 1px solid var(--ts-line); }
.ts-padel .padel-standings th { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ts-muted); background: var(--ts-elev); }
.ts-padel .padel-standings tbody tr:hover { background: var(--ts-elev); }
.ts-padel .padel-standings tr.is-promo { background: color-mix(in srgb, var(--ts-ok) 12%, transparent); }
.ts-padel .padel-standings tr.is-promo .col-rank { color: var(--ts-accent-ink); }
.ts-padel .padel-standings abbr { text-decoration: none; }

/* Stemmi e avatar */
.ts-padel .padel-crest img,
.ts-padel .padel-crest svg { border-radius: 6px; filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .35)); }
.ts-padel .padel-team { gap: .6rem; }
.ts-padel .padel-team__full { font-weight: 600; letter-spacing: -.01em; }
.ts-padel .padel-team__short { color: var(--ts-muted); }
.ts-padel .padel-avatar img { border: 2px solid var(--ts-line); }

/* Pill del plugin */
.ts-padel .padel-pill,
.ts-padel .padel-badge { background: var(--ts-elev); border: 1px solid var(--ts-line); color: var(--ts-text); }
.ts-padel .padel-pill.is-ok, .ts-padel .padel-pill.is-open, .ts-padel .padel-badge.is-open { background: color-mix(in srgb, var(--ts-ok) 22%, transparent); border-color: color-mix(in srgb, var(--ts-ok) 50%, transparent); color: var(--ts-text); }
.ts-padel .padel-pill.is-ko, .ts-padel .padel-badge.is-full { background: rgba(255, 107, 107, .16); border-color: rgba(255, 107, 107, .4); }
.ts-padel .padel-pill.is-accent { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }

/* Scheda giocatore */
.ts-padel .padel-profile { padding: clamp(1rem, 3vw, 1.6rem); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-lg); background: linear-gradient(150deg, var(--ts-surface), color-mix(in srgb, var(--ts-green) 10%, var(--ts-surface))); }
.ts-padel .padel-profile__photo .padel-avatar { border-radius: 50%; box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .8); }
.ts-padel .padel-profile__name { font-family: var(--ts-font-display); letter-spacing: -.02em; }
.ts-padel .padel-profile__stats div { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-profile__stats span { background: var(--ts-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ts-padel .padel-card { background: var(--ts-surface); border-color: var(--ts-line); border-radius: var(--ts-radius); }
.ts-padel .padel-card h4 { font-family: var(--ts-font-display); font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ts-muted); }
.ts-padel .padel-datalist > div { border-bottom-color: var(--ts-line); }
.ts-padel .padel-gauge { background: var(--ts-line); }
.ts-padel .padel-gauge i { background: var(--ts-grad); }

/* Calendario e giornate */
.ts-padel .padel-rounds__tab { border-color: var(--ts-line); color: var(--ts-muted); background: transparent; }
.ts-padel .padel-rounds__tab.is-active { background: var(--ts-lime); border-color: transparent; color: var(--ts-on-accent); font-weight: 700; }
.ts-padel .padel-tie { background: var(--ts-surface); border-color: var(--ts-line); border-radius: 14px; transition: border-color .25s var(--ts-ease), transform .25s var(--ts-ease); }
.ts-padel .padel-tie:hover { border-color: var(--ts-line-strong); transform: translateY(-1px); }
.ts-padel .padel-tie--completed .padel-tie__score { color: var(--ts-accent-ink); }
.ts-padel .padel-tie__score { font-family: var(--ts-font-display); }

/* Competizioni */
.ts-padel .padel-filters__btn { display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; border-color: var(--ts-line); color: var(--ts-muted); background: transparent; }
.ts-padel .padel-filters__btn.is-active { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }
.ts-padel .padel-group__title { font-family: var(--ts-font-display); }
.ts-padel .padel-card--competition { background: var(--ts-surface); border-color: var(--ts-line); border-radius: var(--ts-radius-lg); }
.ts-padel .padel-card--competition:hover { border-color: var(--ts-line-strong); box-shadow: var(--ts-shadow); }
.ts-padel .padel-card__type { background: var(--ts-lime); color: var(--ts-on-accent); }
.ts-padel .padel-card__cats li { border-bottom-color: var(--ts-line); }
.ts-padel .padel-btn { background: var(--ts-lime); color: var(--ts-on-accent); min-height: 46px; border-radius: var(--ts-radius-pill); font-weight: 700; }
.ts-padel .padel-btn--ghost { background: transparent; color: var(--ts-text); border: 1px solid var(--ts-line-strong); }

/* Iscrizioni, prenotazioni, area capitano */
.ts-padel .padel-categories { gap: 1.2rem; }
.ts-padel .padel-category { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-lg); padding: 1.2rem 1.3rem; }

.ts-padel .padel-button, .ts-padel button[type="submit"] {
	min-height: 48px; padding: 0 1.4rem; border: 0; border-radius: var(--ts-radius-pill);
	background: var(--ts-lime); color: var(--ts-on-accent); font-weight: 700; cursor: pointer;
}
.ts-padel .padel-button--ghost { background: transparent; color: var(--ts-text); border: 1px solid var(--ts-line-strong); }
.ts-padel .padel-captain__tie { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-lg); padding: 1.1rem 1.2rem; margin-bottom: 1rem; }
.ts-padel .padel-link-pdf { color: var(--ts-accent-ink); font-weight: 600; }
.ts-padel .padel-feedback { color: var(--ts-accent-ink); }
.ts-padel .padel-muted { color: var(--ts-muted); opacity: 1; }

/* Tabellone */
.ts-padel .padel-ko__round { min-width: 230px; }
.ts-padel .padel-match { background: var(--ts-surface); border-color: var(--ts-line); border-radius: 12px; }

@media (max-width: 640px) {
	.ts-padel .padel-profile { text-align: center; justify-items: center; }
	.ts-padel .padel-profile__head { text-align: left; }
	.ts-padel .padel-standings--crests tr,
	.ts-padel .padel-standings--players tr { background: var(--ts-surface); border-color: var(--ts-line); }
	.ts-padel .padel-table-scroll { border: 0; background: transparent; }
}

/* ── Squadre, incontri, schede: pelle TopSmash ───────────────────── */
.ts-padel a.padel-team { color: inherit; }
.ts-padel a.padel-team:hover .padel-team__full { color: var(--ts-accent-ink); }
.ts-padel .padel-squad__hero,
.ts-padel .padel-board {
	border-color: var(--ts-line); border-radius: var(--ts-radius-lg);
	background:
		radial-gradient(600px 220px at 10% 0%, color-mix(in srgb, var(--ts-green) 22%, transparent), transparent 70%),
		radial-gradient(500px 200px at 100% 100%, color-mix(in srgb, var(--ts-sky) 16%, transparent), transparent 70%),
		var(--ts-surface);
}
.ts-padel .padel-squad__crest .padel-crest svg,
.ts-padel .padel-board__team .padel-crest svg { filter: drop-shadow(0 18px 30px rgba(0,0,0,.5)); }
.ts-padel .padel-squad__stats div { background: var(--ts-elev); border: 1px solid var(--ts-line); color: var(--ts-muted); }
.ts-padel .padel-squad__stats span { color: var(--ts-text); font-family: var(--ts-font-display); }
.ts-padel .padel-squad__captain a { color: var(--ts-accent-ink); }
.ts-padel .padel-roster__player,
.ts-padel .padel-squadcard,
.ts-padel .padel-rubber { background: var(--ts-surface); border-color: var(--ts-line); }
.ts-padel .padel-roster__player:hover,
.ts-padel .padel-squadcard:hover { border-color: color-mix(in srgb, var(--ts-lime) 55%, transparent); box-shadow: var(--ts-shadow); }
.ts-padel .padel-squadcard__name, .ts-padel .padel-roster__name { font-family: var(--ts-font-display); letter-spacing: -.01em; }
.ts-padel .padel-board__team strong { font-family: var(--ts-font-display); font-size: clamp(1rem, .8rem + .8vw, 1.4rem); }
.ts-padel .padel-board__result { font-family: var(--ts-font-display); font-size: clamp(2.4rem, 1.6rem + 3vw, 4.4rem); }
.ts-padel .padel-board__result b.is-win { color: var(--ts-accent-ink); }
.ts-padel .padel-rubber__sets span { background: var(--ts-elev); }
.ts-padel .padel-rubber__sets span.is-win { background: var(--ts-lime); color: var(--ts-on-accent); }
.ts-padel .padel-rubber__row + .padel-rubber__row { border-top-color: var(--ts-line); }
.ts-padel .padel-pair__player:hover span { color: var(--ts-accent-ink); }
.ts-padel .padel-tie.is-won { box-shadow: inset 3px 0 0 var(--ts-lime), inset -3px 0 0 var(--ts-lime); }
.ts-padel .padel-group__title .padel-small { font-family: var(--ts-font-body); font-weight: 400; }
.ts-padel a.padel-tie:hover { border-color: color-mix(in srgb, var(--ts-lime) 50%, transparent); }
.ts-padel .padel-player-card td a { color: var(--ts-accent-ink); }
.ts-pagehead--view { padding-bottom: 1rem; }
.ts-padel .padel-card--competition h4 { text-transform: none; letter-spacing: -.01em; color: var(--ts-text); font-size: 1.08rem; line-height: 1.25; }
.ts-padel .padel-card--competition .padel-card__cats li { font-size: .8rem; }
.ts-prose--app a { text-decoration: none; }
.ts-prose--app a.padel-team, .ts-prose--app a.padel-tie, .ts-prose--app a.padel-squadcard, .ts-prose--app a.padel-roster__player, .ts-prose--app a.padel-board__team { color: inherit; }

/* Competizioni: griglia piu' larga del contenuto (+30%), sempre 4 colonne su desktop */
.ts-prose--app .padel-competitions,
.ts-wrap > .padel-competitions {
	--ts-comp-w: min(130%, calc(100vw - 2 * var(--ts-gutter)));
	width: var(--ts-comp-w);
	margin-left: calc((100% - var(--ts-comp-w)) / 2);
}

/* Pagine delle competizioni: su desktop titolo (e filtri) al centro */
@media (min-width: 861px) {
	.ts-center-head .padel-competitions .padel-filters { justify-content: center; }
}

/* Pulsante indietro sulle pagine di squadre, incontri, giocatori e gironi, allineato al sopra-titolo */
.ts-pagehead__top { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: 1rem; }
.ts-pagehead__top .ts-back, .ts-pagehead__top .ts-kicker { margin: 0; }
.ts-back {
	display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem;
	padding: .45rem 1rem .45rem .5rem; border-radius: var(--ts-radius-pill);
	border: 1px solid var(--ts-line); color: var(--ts-muted); font-size: .85rem; font-weight: 600;
	transition: color .2s var(--ts-ease), border-color .2s var(--ts-ease);
}
.ts-back:hover { color: var(--ts-text); border-color: var(--ts-line-strong); }
.ts-back__arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ts-elev); transform: rotate(180deg); transition: transform .25s var(--ts-ease); }
.ts-back:hover .ts-back__arrow { transform: rotate(180deg) translateX(3px); }

/* Card dei gironi nella pagina del torneo */
.ts-padel .padel-area {
	background:
		radial-gradient(420px 160px at 0% 0%, color-mix(in srgb, var(--ts-green) 18%, transparent), transparent 70%),
		var(--ts-surface);
	border-color: var(--ts-line); border-radius: var(--ts-radius-lg);
	transition: border-color .3s var(--ts-ease), box-shadow .3s var(--ts-ease), transform .3s var(--ts-ease);
}
.ts-padel .padel-area:hover { border-color: var(--ts-line-strong); box-shadow: var(--ts-shadow); transform: translateY(-3px); }
.ts-padel .padel-area__head h3 { font-family: var(--ts-font-display); letter-spacing: -.02em; }
.ts-padel .padel-area__meta, .ts-padel .padel-area__next { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-area__top li { padding: .35rem .5rem; border-radius: 10px; background: var(--ts-elev); }
.ts-padel .padel-area__top li strong { font-family: var(--ts-font-display); color: var(--ts-accent-ink); }
.ts-padel .padel-area__top a:hover { color: var(--ts-accent-ink); }
.ts-padel .padel-area__links a { border-color: var(--ts-line); background: var(--ts-elev); color: var(--ts-text); }
.ts-padel .padel-area__links a svg { color: var(--ts-accent-ink); }
.ts-padel .padel-area__links a:hover { border-color: var(--ts-lime); background: var(--ts-lime); color: var(--ts-on-accent); }
.ts-padel .padel-area__links a:hover svg { color: var(--ts-on-accent); }
.ts-padel .padel-areanav a { color: var(--ts-muted); }
.ts-padel .padel-areanav a.is-active { color: var(--ts-on-accent); }

/* Scheda giocatore: club e storico */
.ts-padel .padel-profile__club { background: var(--ts-elev); border-color: var(--ts-line); }
.ts-padel .padel-profile__club:hover { border-color: color-mix(in srgb, var(--ts-lime) 55%, transparent); }
.ts-padel .padel-profile__club strong { font-family: var(--ts-font-display); }
.ts-padel .padel-profile__club .padel-crest svg, .ts-padel .padel-timeline__crest .padel-crest svg { filter: drop-shadow(0 10px 18px rgba(0,0,0,.35)); }
.ts-padel .padel-timeline li { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-timeline li.is-current { border-color: color-mix(in srgb, var(--ts-ok) 45%, transparent); }
.ts-padel .padel-timeline__body strong { font-family: var(--ts-font-display); }
.ts-padel .padel-timeline__body a:hover strong { color: var(--ts-accent-ink); }
.ts-padel .padel-timeline__stats strong { font-family: var(--ts-font-display); color: var(--ts-accent-ink); }

/* Referto gara */
.ts-padel .padel-pill.is-warn { background: rgba(255, 196, 61, .16); border-color: rgba(255, 196, 61, .45); color: var(--ts-text); }
.ts-padel .padel-referto { background: var(--ts-surface); border-color: var(--ts-line); border-radius: var(--ts-radius); color: var(--ts-text); }
.ts-padel .padel-referto.is-compact { background: transparent; border-color: var(--ts-line-strong); }
.ts-padel .padel-referto__steps li { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-referto__steps li::before { background: var(--ts-line-strong); color: var(--ts-text); }
.ts-padel .padel-referto__steps li.is-done { background: color-mix(in srgb, var(--ts-ok) 18%, transparent); border-color: color-mix(in srgb, var(--ts-ok) 45%, transparent); color: var(--ts-text); }
.ts-padel .padel-referto__steps li.is-done::before { background: var(--ts-ok); color: #fff; }
.ts-padel .padel-referto__state.is-verificato, .ts-padel .padel-referto__state.is-ricevuto { background: color-mix(in srgb, var(--ts-green) 22%, transparent); color: var(--ts-text); }
.ts-padel .padel-referto__state.is-da_correggere { background: rgba(255, 107, 107, .16); color: var(--ts-text); }
.ts-padel .padel-referto__state.is-da_verificare, .ts-padel .padel-referto__state.is-inviato, .ts-padel .padel-referto__state.is-caricato, .ts-padel .padel-referto__state.is-preparato { background: rgba(255, 196, 61, .16); color: var(--ts-text); }
.ts-padel .padel-referto__note { background: rgba(255, 196, 61, .12); color: var(--ts-text); }
.ts-padel .padel-referto__note.is-ko { background: rgba(255, 107, 107, .14); }
.ts-padel .padel-referto__msg.is-ok { background: color-mix(in srgb, var(--ts-ok) 20%, transparent); color: var(--ts-text); }
.ts-padel .padel-referto__msg.is-error { background: rgba(255, 107, 107, .18); color: var(--ts-text); }
.ts-padel .padel-referto__send, .ts-padel .padel-referto__staff { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-referto__form textarea, .ts-padel .padel-referto__file input { background: var(--ts-bg-2); color: var(--ts-text); border: 1px solid var(--ts-line-strong); border-radius: 10px; }
.ts-padel .padel-referto__history li { border-top-color: var(--ts-line); }
.ts-padel .padel-pill.is-ko { color: var(--ts-text); }
.ts-padel .padel-referto__staff textarea { background: var(--ts-bg-2); color: var(--ts-text); border: 1px solid var(--ts-line-strong); border-radius: 10px; }
.ts-padel .padel-referto .padel-button--ghost { background: transparent; color: var(--ts-text); border: 1px solid var(--ts-line-strong); box-shadow: none; }
.ts-padel .padel-referto .padel-button--ghost:hover { border-color: var(--ts-accent-ink); color: var(--ts-accent-ink); }
.ts-padel .padel-referto__steps, .ts-prose .padel-referto__steps { padding-left: 0; margin-left: 0; list-style: none; }
.ts-padel .padel-referto__steps li, .ts-prose .padel-referto__steps li { margin: 0; }
.ts-padel .padel-set b { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-set b.is-win { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }
.ts-padel .padel-legend { background: var(--ts-green); }
.ts-padel .padel-referto__sign { border-color: var(--ts-line-strong); }
.ts-padel .padel-referto__sign.is-signed { border-color: var(--ts-green); background: color-mix(in srgb, var(--ts-green) 16%, transparent); color: var(--ts-text); }
.ts-padel .padel-referto__send.is-ready { background: color-mix(in srgb, var(--ts-green) 16%, transparent); border-color: var(--ts-green); }
.ts-padel .padel-ko__match { background: var(--ts-surface); border-color: var(--ts-line); }
.ts-padel a.padel-ko__match:hover { border-color: var(--ts-accent-ink); }
.ts-padel .padel-ko__team + .padel-ko__team { border-top-color: var(--ts-line); }
.ts-padel .padel-ko__team b { background: var(--ts-elev); border: 1px solid var(--ts-line); }
.ts-padel .padel-ko__team.is-win b { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }
.ts-padel .padel-finals-card { border-color: var(--ts-green); color: var(--ts-text); } .ts-padel .padel-finals-card em { color: var(--ts-accent-ink); }
.ts-padel .padel-honours__item { background: var(--ts-surface); border-color: var(--ts-line); } .ts-padel .padel-honours__season { color: var(--ts-accent-ink); }
.ts-padel .padel-doc, .ts-padel .padel-doclist li, .ts-padel .padel-notice { background: var(--ts-surface); border-color: var(--ts-line); }
.ts-padel .padel-doc--current, .ts-padel .padel-notice:hover { border-color: var(--ts-green); }
.ts-padel .padel-doc__kicker { color: var(--ts-accent-ink); }
.ts-padel .padel-notice__num { background: color-mix(in srgb, var(--ts-green) 18%, transparent); color: var(--ts-text); }
.ts-padel .padel-captain__share { border-color: var(--ts-line); background: var(--ts-surface); } .ts-padel .padel-captain__share textarea { background: var(--ts-bg-2); color: var(--ts-text); border: 1px solid var(--ts-line-strong); }
.ts-padel .padel-society__squad, .ts-padel .padel-cert { background: var(--ts-surface); border-color: var(--ts-line); }
.ts-padel .padel-cert--valido { border-left-color: var(--ts-green); }
.ts-padel .padel-cert--in_scadenza, .ts-padel .padel-cert--da_verificare { border-left-color: #e5b52f; }
.ts-padel .padel-cert--scaduto, .ts-padel .padel-cert--assente { border-left-color: #ff6b6b; }
.ts-padel .padel-cert__state { color: var(--ts-text) !important; }
.ts-padel .padel-cert--valido .padel-cert__state { background: color-mix(in srgb, var(--ts-green) 22%, transparent) !important; }
.ts-padel .padel-cert--in_scadenza .padel-cert__state, .ts-padel .padel-cert--da_verificare .padel-cert__state { background: rgba(255, 196, 61, .18) !important; }
.ts-padel .padel-cert--scaduto .padel-cert__state, .ts-padel .padel-cert--assente .padel-cert__state { background: rgba(255, 107, 107, .18) !important; }
.ts-padel .padel-cert__form input, .ts-padel .padel-cert__form select, .ts-padel .padel-society select { background: var(--ts-bg-2); color: var(--ts-text); border: 1px solid var(--ts-line-strong); border-radius: 8px; padding: .35rem .5rem; }
.ts-padel .padel-person, .ts-padel .padel-course, .ts-padel .padel-sponsor, .ts-padel .padel-story__card, .ts-padel .padel-contact { background: var(--ts-surface); border-color: var(--ts-line); color: var(--ts-text); }
.ts-padel .padel-person__role, .ts-padel .padel-story__year { color: var(--ts-accent-ink); }
.ts-padel .padel-contact input, .ts-padel .padel-contact select, .ts-padel .padel-contact textarea { background: var(--ts-bg-2); color: var(--ts-text); border-color: var(--ts-line-strong); }
.ts-padel .padel-sponsor { background: #fff; color: #10221a; }

/* Icone social nella scheda giocatore */
.ts-padel .padel-social { border-color: var(--ts-line); color: var(--ts-text); }
.ts-padel .padel-social:hover { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }

/* ── Prenotazione campi ───────────────────────────────────────────── */
.ts-padel .padel-booking__bar .padel-booking__title { margin: 0; }
.ts-padel .padel-booking__title { font-family: var(--ts-font-display); font-size: var(--ts-step-1); letter-spacing: -.02em; }
.ts-padel .padel-booking__picker { border-color: var(--ts-line); background: var(--ts-elev); color: var(--ts-muted); }
.ts-padel .padel-booking__picker input { color: var(--ts-text); color-scheme: dark; }
.ts-scheme-light .padel-booking__picker input { color-scheme: light; }
.ts-padel .padel-day {
	background: var(--ts-surface); border-color: var(--ts-line); color: var(--ts-text); min-width: 68px; padding: .6rem .5rem;
	transition: transform .2s var(--ts-ease), border-color .2s var(--ts-ease), background .2s var(--ts-ease);
}
.ts-padel .padel-day strong { font-family: var(--ts-font-display); font-weight: 800; }
.ts-padel .padel-day small { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-day:hover { border-color: var(--ts-line-strong); transform: translateY(-2px); }
.ts-padel .padel-day.is-active { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; box-shadow: 0 12px 28px -12px color-mix(in srgb, var(--ts-lime) 80%, transparent); }
.ts-padel .padel-day.is-active small { color: var(--ts-on-accent); opacity: .75; }
.ts-padel .padel-booking__legend { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-booking__legend span::before { border-color: var(--ts-line-strong); background: var(--ts-surface); }
.ts-padel .padel-booking__legend .is-busy::before { background: repeating-linear-gradient(135deg, var(--ts-line-strong) 0 2px, transparent 2px 5px); }

.ts-padel .padel-court {
	position: relative; overflow: hidden; border-color: var(--ts-line); border-radius: var(--ts-radius-lg); padding: 1.2rem 1.25rem 1.3rem;
	background: linear-gradient(160deg, color-mix(in srgb, var(--ts-surface) 96%, transparent), color-mix(in srgb, var(--ts-sky) 7%, var(--ts-surface)));
}
.ts-padel .padel-court.is-outdoor { background: linear-gradient(160deg, color-mix(in srgb, var(--ts-surface) 96%, transparent), color-mix(in srgb, var(--ts-green) 8%, var(--ts-surface))); }
.ts-padel .padel-court::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--ts-grad); opacity: .9; }
.ts-padel .padel-court__surface { fill: var(--ts-sky); }
.ts-padel .padel-court.is-outdoor .padel-court__surface { fill: var(--ts-green); }
.ts-padel .padel-court__map { filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .35)); }
.ts-padel .padel-court__info h4 { font-family: var(--ts-font-display); font-size: 1.12rem; letter-spacing: -.02em; color: var(--ts-text); text-transform: none; }
.ts-padel .padel-court__meta { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-court__price { font-family: var(--ts-font-display); font-weight: 800; color: var(--ts-text); }
.ts-padel .padel-court__count { padding: .15rem .55rem; border-radius: var(--ts-radius-pill); background: color-mix(in srgb, var(--ts-ok) 20%, transparent); color: var(--ts-text); }
.ts-padel .padel-court__count:empty { display: none; }
.ts-padel .padel-court__count.is-full { background: rgba(255, 107, 107, .18); }
.ts-padel .padel-slotgroup__label { color: var(--ts-muted); opacity: 1; font-weight: 700; }
.ts-padel .padel-slot {
	background: var(--ts-elev); border-color: var(--ts-line); color: var(--ts-text); border-radius: 12px; min-height: 52px;
	transition: transform .18s var(--ts-ease), border-color .18s var(--ts-ease), background .18s var(--ts-ease), color .18s var(--ts-ease);
}
.ts-padel .padel-slot strong { font-family: var(--ts-font-display); font-weight: 700; letter-spacing: -.01em; }
.ts-padel .padel-slot small { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-slot.is-free:hover { background: var(--ts-lime); border-color: transparent; color: var(--ts-on-accent); transform: translateY(-2px); box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--ts-lime) 85%, transparent); }
.ts-padel .padel-slot.is-free:hover small { color: var(--ts-on-accent); opacity: .7; }
.ts-padel .padel-slot.is-busy { background: repeating-linear-gradient(135deg, var(--ts-line) 0 4px, transparent 4px 9px); opacity: .55; }
.ts-padel .padel-booking .padel-feedback:not(:empty) {
	position: sticky; bottom: 1rem; margin-top: 1rem; padding: .8rem 1rem; border-radius: 14px;
	background: var(--ts-surface); border: 1px solid var(--ts-line-strong); box-shadow: var(--ts-shadow); color: var(--ts-text);
}
.ts-padel .padel-booking__picker > span { font-size: .8rem; font-weight: 600; white-space: nowrap; }

/* Finestra di prenotazione e pagina della prenotazione nel tema */
.ts-padel .padel-bookdlg__panel { background: var(--ts-surface); color: var(--ts-text); border: 1px solid var(--ts-line); }
.ts-padel .padel-bookdlg__panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; border-radius: 22px 22px 0 0; background: var(--ts-grad); }
.ts-padel .padel-bookdlg__kicker { color: var(--ts-accent-ink); }
.ts-padel .padel-bookdlg__title, .ts-padel .padel-bookdlg__donetitle { font-family: var(--ts-font-display); letter-spacing: -.02em; color: var(--ts-text); }
.ts-padel .padel-bookdlg__close { background: var(--ts-elev); color: var(--ts-text); }
.ts-padel .padel-bookdlg__price { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-bookdlg__grid label { color: var(--ts-muted); }
.ts-padel .padel-bookdlg__grid input, .ts-padel .padel-bookdlg__code input { border-color: var(--ts-line-strong); background: var(--ts-elev); color: var(--ts-text); }
.ts-padel .padel-bookdlg__grid input:focus, .ts-padel .padel-bookdlg__code input:focus { outline: none; border-color: var(--ts-lime); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ts-lime) 25%, transparent); }
.ts-padel .padel-bookdlg__check { color: var(--ts-muted); }
.ts-padel .padel-bookdlg__check a { color: var(--ts-accent-ink); }
.ts-padel .padel-bookdlg__check input { accent-color: var(--ts-lime); width: 18px; height: 18px; }
.ts-padel .padel-bookdlg__hint { color: var(--ts-muted); opacity: 1; }
.ts-padel .padel-bookdlg__tick { background: var(--ts-ok); }
.ts-padel .padel-bookdlg__error { color: #ff7b7b; }
.ts-padel .padel-btn--ghost { background: transparent; color: var(--ts-text); border: 1px solid var(--ts-line-strong); }
.ts-padel .padel-booking__notice { background: var(--ts-elev); border: 1px solid var(--ts-line); color: var(--ts-text); }
.ts-padel .padel-bookcard { background: var(--ts-surface); border-color: var(--ts-line); }
.ts-padel .padel-bookcard__court { font-family: var(--ts-font-display); color: var(--ts-text); }
.ts-padel .padel-bookcard__status { background: var(--ts-elev); color: var(--ts-text); }
.ts-padel .padel-bookcard.is-confirmed .padel-bookcard__status { background: color-mix(in srgb, var(--ts-ok) 25%, transparent); }
.ts-padel .padel-bookcard__rows dt { color: var(--ts-muted); opacity: 1; }

/* Striscia dei giorni scorrevole */
.ts-padel .padel-booking { --padel-strip-fade: var(--ts-bg); }
.ts-padel .padel-booking__month { color: var(--ts-accent-ink); opacity: 1; font-family: var(--ts-font-display); font-size: .95rem; }
.ts-padel .padel-days__nav { background: var(--ts-surface); border-color: var(--ts-line-strong); color: var(--ts-text); }
.ts-padel .padel-days__nav:not(:disabled):hover { background: var(--ts-lime); color: var(--ts-on-accent); border-color: transparent; }
.ts-padel .padel-booking__days { scrollbar-width: none; }

/* ── Titoli delle sezioni del plugin come quelli del tema ──────────── */
.ts-padel :is(.padel-tiepage, .padel-squad, .padel-player-card) > h4,
.ts-padel :is(.padel-tiepage, .padel-squad, .padel-player-card) > section > h4,
.ts-padel .padel-player-card h4,
.ts-padel .padel-championship h3 {
	font-family: var(--ts-font-display); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em;
	font-size: var(--ts-step-1); margin: clamp(2rem, 4vw, 2.8rem) 0 1rem;
	display: flex; align-items: center; gap: .6rem;
}

/* Elenco incontri del giocatore */
.ts-padel .padel-match { background: var(--ts-surface); border-color: var(--ts-line); border-radius: 14px; transition: border-color .25s var(--ts-ease); }
.ts-padel .padel-match:hover { border-color: color-mix(in srgb, var(--ts-lime) 55%, transparent); }
.ts-padel .padel-match__round strong { font-family: var(--ts-font-display); font-size: 1.15rem; color: var(--ts-accent-ink); }
.ts-padel .padel-match__vs strong { color: var(--ts-text); }
.ts-padel .padel-match.is-won .padel-match__score { color: var(--ts-accent-ink); }

/* Galleria del giocatore nel tema */
.ts-padel .padel-gallery__item { border-color: var(--ts-line); }
.ts-padel .padel-gallery__head h4 { font-family: var(--ts-font-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; }
.ts-padel .padel-gallery__add { background: var(--ts-lime); color: var(--ts-on-accent); border-radius: var(--ts-radius-pill); }

/* Scheda giocatore: card coerenti col tema */
.ts-padel .padel-profile__photos .padel-gallery { background: var(--ts-surface); border-color: var(--ts-line); border-radius: var(--ts-radius-lg); }
.ts-padel .padel-player-card .padel-card > h4:first-child, .ts-padel .padel-gallery__head h4 { margin-top: 0; }
.ts-padel .padel-datalist__icon { color: var(--ts-accent-ink); }
.ts-padel .padel-profile__side .padel-timeline__bar { background: var(--ts-line); }
.ts-padel .padel-profile__side .padel-timeline__bar i { background: var(--ts-lime); }
.ts-padel .padel-profile__side .padel-timeline__stats { border-top-color: var(--ts-line); }

/* ── Il mio account e iscrizioni: pelle TopSmash ─────────────────── */
.ts-padel .padel-account__card, .ts-padel .padel-account__section { background: var(--ts-surface); border-color: var(--ts-line); border-radius: var(--ts-radius-lg); }
.ts-padel .padel-account__reg { border-color: var(--ts-line); }
.ts-padel .padel-account__reg.is-focus { border-color: var(--ts-accent-ink); }
.ts-padel .padel-entry__form fieldset { border-color: var(--ts-line); }
.ts-padel .padel-entry__pick { background: var(--ts-surface); border-color: var(--ts-line); color: var(--ts-text); }
.ts-padel .padel-invites__row { border-top-color: var(--ts-line); }
.ts-padel .padel-category__signup > summary.padel-button { display: inline-flex; align-items: center; }
.ts-padel .padel-account input[type="submit"] {
	min-height: 48px; padding: 0 1.6rem; border: 0; border-radius: var(--ts-radius-pill);
	background: var(--ts-lime); color: var(--ts-on-accent); font-weight: 700; cursor: pointer;
}
.ts-padel .padel-account #loginform p { margin: 0 0 .9rem; }
.ts-padel .padel-account #loginform input[type="text"], .ts-padel .padel-account #loginform input[type="password"] { width: 100%; box-sizing: border-box; }
.ts-padel .padel-account__msg { background: rgba(122, 214, 92, .15); color: var(--ts-text); border: 1px solid var(--ts-line); }
.ts-padel .padel-account__msg.is-error { background: rgba(240, 80, 80, .14); }
.ts-padel .padel-entry a.padel-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; min-height: 44px; }
.ts-padel .padel-entry p { margin: 0 0 .8rem; }

/* Scheda incontro su telefono: loghi -20%, nomi lunghi più piccoli e bilanciati. */
@media (max-width: 640px) {
	.ts-padel .padel-board__team .padel-crest { --padel-crest-size: 77px !important; }
	.ts-padel .padel-board__team strong.padel-board__name { font-size: 1rem; line-height: 1.12; }
	.ts-padel .padel-board__team strong.padel-board__name.is-long { font-size: .86rem; }
	.ts-padel .padel-board__team strong.padel-board__name.is-xlong { font-size: .76rem; letter-spacing: -.01em; }
	.ts-padel .padel-board__score { padding-inline: .1rem; }
}
@media (max-width: 640px) {
	.ts-padel .padel-board__teams { align-items: start; }
	.ts-padel .padel-board__score { align-self: start; margin-top: .55rem; }
}

/* Scheda giocatore su telefono: foto e nome al centro. */
@media (max-width: 640px) {
	.ts-padel .padel-profile__photo { flex: 1 1 100%; justify-content: center; }
	.ts-padel .padel-profile__name { justify-content: center; text-align: center; }
	.ts-padel .padel-profile__social { justify-content: center; }
}

/* Galleria del giocatore su telefono: 2 colonne. */
@media (max-width: 640px) {
	.ts-padel .padel-gallery__grid, .ts-padel .padel-profile__photos .padel-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
