/**
 * Allinea la tipografia delle pagine Tutor LMS (corso, dashboard, login,
 * registrazione, course builder) a quella del tema attivo, forzando
 * l'ereditarietà di font-family e colore del testo dagli elementi
 * genitore invece di usare gli stili propri di Tutor LMS.
 *
 * Approccio scelto deliberatamente "difensivo" (inherit) invece di
 * ridichiarare a mano il font esatto del tema: così funziona con
 * qualsiasi tema/font impostato, senza dover indovinare nomi CSS esatti
 * che non è possibile verificare senza ispezionare la pagina dal vivo.
 */

/**
 * Allinea la tipografia delle pagine Tutor LMS NATIVE (corso, login,
 * registrazione, course builder) a quella del tema attivo. NON si applica
 * più dentro le nostre schermate custom (.tca-editor: Editor Corso,
 * bacheche studente/docente), che dal Modulo "Aspetto" hanno un proprio
 * sistema di design scuro, coerente con lo stile nativo della bacheca di
 * Tutor LMS, controllabile dall'admin — non devono più ereditare dal tema.
 */

/**
 * Il tag <html> stesso: Tutor LMS vi forza sopra il proprio font
 * ("Inter"), quindi qualunque elemento "eredita dal genitore" (vedi sotto)
 * finiva comunque per ereditare QUELLO, non il font del tema — perché il
 * genitore più in alto non era mai stato corretto. Si usano le vere
 * variabili CSS del tema (generate automaticamente da WordPress da
 * theme.json): se il font o i colori vengono cambiati dal Site Editor,
 * questa regola si adatta da sola, senza bisogno di più toccare il plugin.
 */
html:not(:has(.tca-editor)) {
	font-family: var( --wp--preset--font-family--alvarado, inherit ) !important;
}

body:not(:has(.tca-editor)) {
	background-color: var( --wp--preset--color--base, transparent ) !important;
	color: var( --wp--preset--color--contrast, inherit ) !important;
}

body.tutor-lms:not(:has(.tca-editor)),
#tutor-course-builder,
.tutor-wrap:not(.tca-editor):not(.tca-editor *),
.tutor-dashboard:not(:has(.tca-editor)),
.tutor-dashboard-content-inner:not(.tca-editor):not(.tca-editor *),
#tutor-registration-wrap,
.tutor-form-group:not(.tca-editor *) label,
.tutor-form-group:not(.tca-editor *) input,
.tutor-form-group:not(.tca-editor *) select,
.tutor-form-group:not(.tca-editor *) textarea,
.tca-native-login,
.tca-native-login input,
.tca-native-login select,
.tca-native-login textarea,
.tca-native-login label {
	font-family: inherit !important;
	color: inherit !important;
}

/*
 * I bottoni (incluso quello primario "Accedi" e i link-bottone come
 * "Password dimenticata?"/"Registrati qui") hanno un abbinamento
 * sfondo/testo intenzionale (es. testo bianco su sfondo blu): qui si
 * corregge solo il font, MAI il colore — altrimenti diventerebbero
 * illeggibili (testo scuro su sfondo scuro/colorato) o comunque diversi
 * da come Tutor LMS li ha pensati.
 */
.tca-native-login .tutor-btn {
	font-family: inherit !important;
}

body.tutor-lms:not(:has(.tca-editor)) h1,
body.tutor-lms:not(:has(.tca-editor)) h2,
body.tutor-lms:not(:has(.tca-editor)) h3,
body.tutor-lms:not(:has(.tca-editor)) h4,
body.tutor-lms:not(:has(.tca-editor)) h5,
body.tutor-lms:not(:has(.tca-editor)) h6,
#tutor-course-builder h1,
#tutor-course-builder h2,
#tutor-course-builder h3 {
	font-family: inherit !important;
}

/**
 * Nasconde la valutazione media del DOCENTE (non del singolo corso, che
 * resta disponibile/disattivabile dalle impostazioni native di Tutor
 * LMS) sulla pagina profilo pubblica — su richiesta esplicita: la
 * valutazione media di un docente su tutti i suoi corsi non è un dato
 * considerato rilevante in questo contesto.
 * Classe verificata nel codice sorgente ufficiale di Tutor LMS
 * (templates/public-profile.php): usata SOLO lì, in nessun altro punto
 * del plugin — nessun rischio di nascondere per errore anche le
 * valutazioni dei singoli corsi altrove nel sito.
 */
.tutor-rating-container {
	display: none !important;
}

/**
 * Toglie la barra divisoria tra le prime voci del menù laterale della
 * Bacheca e quelle successive (es. tra le voci custom di questo plugin
 * e "Corsi"/Impostazioni/Esci nativi) — puramente estetico, su richiesta
 * esplicita: un'unica lista di voci, senza raggruppamenti visivi.
 */
.tutor-dashboard-sidebar-nav ul li {
	border-top: none !important;
}

/* ---------------------------------------------------------------
   Barra laterale della pagina corso
   ---------------------------------------------------------------
   Le sezioni ("Un corso di", "Calendario lezioni", "Requisiti"…)
   formano un'unica scheda continua: ogni sezione porta i soli bordi
   laterali, la prima quello superiore e l'ultima quello inferiore.
   NON aggiungere margini verticali qui dentro: spezzerebbero la
   scheda lasciando i bordi aperti (difetto già corretto una volta).
   --------------------------------------------------------------- */

/* Riga di separazione sotto il Calendario, verso la sezione seguente:
   Tutor la disegna solo SOPRA la nostra sezione, non sotto. */
.tutor-single-course-sidebar-more .tca-course-sessions {
	border-bottom: 1px solid var(--tutor-border-color, #e3e5eb);
	background-color: #f4f6f9;
	font-size: 16px;
	line-height: 1.7;
}

/* Titolo del Calendario, allineato agli altri titoli della barra. */
.tutor-single-course-sidebar-more .tca-sessions-title {
	display: block;
	margin-bottom: 8px;
	font-size: 16px;
	font-weight: 700;
}

/*
 * Stessa dimensione per i tre titoli della barra laterale: "Un corso
 * di" era a 16px, il Calendario a 14 e "Requisiti" a 20. Allineati a
 * 16: per cambiarla basta questo valore, ripetuto anche nella regola
 * qui sopra.
 */
/*
 * Punto (segnalato): "Un corso di" era l'unico titolo non in
 * grassetto. I pesi erano tre diversi — 500 per "Un corso di", 600 per
 * il Calendario, 700 per "Requisiti" — oltre alle tre dimensioni già
 * allineate. Uniformati anche i pesi, a 700 come il più marcato dei
 * tre. Dimensione e peso stanno qui e nella regola del Calendario
 * poco sopra: cambiandoli, cambiarli in entrambe.
 */
.tutor-single-course-sidebar-more .tutor-course-details-instructors h3,
.tutor-single-course-sidebar-more .tutor-course-details-widget-title {
	font-size: 16px;
	font-weight: 700;
}

/* ---------------------------------------------------------------
   Bacheca: voce a tendina in cima alla schermata dei corsi
   ---------------------------------------------------------------
   BUG CORRETTO (segnalato: "testo grigio su grigio"). Quella voce è un
   <button>, mentre le altre della stessa riga sono collegamenti. Il
   foglio di stile di Tutor veste i collegamenti, quindi il pulsante
   ricadeva sull'aspetto predefinito del browser: fondo grigio chiaro e
   testo nero. Sul tema scuro della bacheca il risultato era
   illeggibile.

   Qui il pulsante viene riportato all'aspetto delle voci accanto:
   sfondo trasparente, nessun bordo, colore del testo ereditato.
   --------------------------------------------------------------- */
.tutor-dashboard-courses-tab button.tutor-nav-item,
.tutor-dashboard-courses-tab .tutor-nav button {
	background: transparent;
	border: 0;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.tutor-dashboard-courses-tab button.tutor-nav-item:hover {
	color: var(--tutor-color-primary, #3e64de);
}

/* ---------------------------------------------------------------
   Elenco "I miei corsi": filtri per categoria
   ---------------------------------------------------------------
   Sono collegamenti e non pulsanti, di proposito: la voce a tendina di
   Tutor era un <button> e ricadeva sull'aspetto predefinito del
   browser, risultando grigio su grigio sul tema scuro.
   --------------------------------------------------------------- */
.tca-corsi-filtri {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 16px 24px;
}

/*
 * Il colore è scritto esplicitamente e ripetuto su :hover e :focus:
 * "inherit" da solo lasciava vincere il colore dei link del tema, ed è
 * il difetto già corretto altrove in questo foglio.
 */
.tca-corsi-filtri .tca-corsi-filtro,
.tca-corsi-filtri .tca-corsi-filtro:focus {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border: 1px solid var(--tutor-border-color, #e3e5eb);
	border-radius: 20px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	line-height: 1.3;
	transition: border-color .18s, background-color .18s, color .18s;
}

.tca-corsi-filtri .tca-corsi-filtro:hover {
	border-color: var(--tutor-color-primary, #3e64de);
	color: var(--tutor-color-primary, #3e64de);
}

.tca-corsi-filtri .tca-corsi-filtro.attivo {
	background: var(--tutor-color-primary, #3e64de);
	border-color: var(--tutor-color-primary, #3e64de);
	color: #fff;
}

.tca-corsi-filtro-num {
	opacity: .7;
	font-size: 13px;
}

/* ---------------------------------------------------------------
   Menù utente della bacheca: email lunga che sborda
   ---------------------------------------------------------------
   L'indirizzo email è una parola sola e non ha punti in cui andare a
   capo: nel riquadro del menù utente usciva dai bordi. Stesso difetto
   già corretto altrove — sui documenti PDF e nel riquadro dei dati del
   checkout — ma questo riquadro è di Tutor e non era stato toccato.
   --------------------------------------------------------------- */
.tutor-user-profile-meta {
	max-width: 100%;
	min-width: 0;
}

.tutor-user-profile-meta > div {
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
	text-align: center;
}

/* ---------------------------------------------------------------
   Lista dei desideri vuota
   ---------------------------------------------------------------
   Carattere e dimensioni presi dalle variabili della bacheca
   (Impostazioni → Aspetto): il testo era in un corpo troppo grande e
   con il carattere del sito invece di quello della bacheca, quindi
   stonava con tutto il resto della schermata.

   Il pulsante NON è vestito qui: usa le classi "tca-btn
   tca-btn-primary" degli altri pulsanti della bacheca.
   --------------------------------------------------------------- */
.tca-wishlist-vuota {
	padding: 48px 24px;
	text-align: center;
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: var(--tca-body-size, 15px);
	color: var(--tca-text-body, #c7c9d9);
}

.tca-wishlist-vuota svg {
	color: var(--tca-text-label, #9497ab);
	opacity: .6;
	margin-bottom: 12px;
}

.tca-wishlist-vuota h3 {
	margin: 0 0 6px;
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: var(--tca-heading-size, 20px);
	font-weight: var(--tca-heading-weight, 700);
	color: var(--tca-text-heading, #f5f6fa) !important;
}

.tca-wishlist-vuota p {
	margin: 0 auto 20px;
	max-width: 380px;
	font-size: var(--tca-label-size, 13px);
	line-height: 1.6;
	color: var(--tca-text-label, #9497ab) !important;
}

/* ---------------------------------------------------------------
   Schede dei corsi nella Lista dei Desideri
   ---------------------------------------------------------------
   Le schede sono quelle di Tutor, ed espongono il comando "Start",
   pensato per i corsi a cui si è iscritti. Nella lista dei desideri
   sono corsi che si sta solo tenendo d'occhio: invitare a "iniziare"
   è fuori luogo, e per i corsi non acquistati il comando non porta
   comunque da nessuna parte. La scheda resta cliccabile e apre la
   pagina del corso.
   --------------------------------------------------------------- */
/*
 * Classe presa dal template REALE di Tutor
 * (dashboard/courses/course-card.php): il blocco delle azioni è
 * "tutor-progress-card-actions" e contiene il pulsante prodotto
 * dall'azione "tutor_course_action_btn". Un primo tentativo usava
 * selettori inventati a memoria, che non corrispondevano a nulla.
 */
.tca-wishlist .tutor-progress-card-actions {
	display: none !important;
}

/* Pulsante "Rimuovi" nella lista dei desideri: discreto, in linea con
   la scheda, e ben visibile al passaggio del mouse. */
.tca-wishlist-riga {
	position: relative;
}

/* Solo posizione e discrezione: aspetto, carattere e colori vengono
   dalle classi "tca-btn tca-btn-primary", le stesse degli altri
   pulsanti della bacheca. */
.tca-wishlist .tca-wishlist-remove {
	position: absolute;
	top: 12px;
	right: 12px;
	opacity: .75;
	transition: opacity var(--tca-hover-speed, .18s);
}

.tca-wishlist-riga:hover .tca-wishlist-remove,
.tca-wishlist .tca-wishlist-remove:focus {
	opacity: 1;
}

/* ===============================================================
   Calendario dello studente
   ===============================================================
   Colori, caratteri e misure vengono dalle variabili della bacheca
   (Impostazioni → Aspetto): nulla è fissato qui.
   =============================================================== */
.tca-calendario {
	font-family: var(--tca-font-family, system-ui, sans-serif);
	color: var(--tca-text-body, #c7c9d9);
}

.tca-cal-barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.tca-cal-nav,
.tca-cal-viste {
	display: flex;
	align-items: center;
	gap: 8px;
}

.tca-cal-freccia {
	padding: 6px 14px;
	font-size: 18px;
	line-height: 1;
}

/*
 * Punto (segnalato): il carattere dell'intestazione e dei giorni deve
 * essere quello della BACHECA, non quello del sito. Il tema veste i
 * titoli e i contenitori con regole proprie, quindi il carattere va
 * dichiarato esplicitamente su ciascun elemento invece di affidarsi
 * all'ereditarietà dal contenitore.
 */
.tca-calendario h3.tca-cal-titolo,
.tca-calendario .tca-cal-titolo,
.tca-calendario .tca-mese-testa,
.tca-calendario .tca-mese-num,
.tca-calendario .tca-sett-giorno,
.tca-calendario .tca-sett-nome,
.tca-calendario .tca-sett-num,
.tca-calendario .tca-sett-ora,
.tca-calendario .tca-cal-legenda,
.tca-calendario .tca-btn {
	font-family: var(--tca-font-family, system-ui, sans-serif) !important;
}

.tca-cal-titolo {
	margin: 0 0 0 8px;
	font-size: var(--tca-heading-size, 20px);
	font-weight: var(--tca-heading-weight, 700);
	color: var(--tca-text-heading, #f5f6fa);
	text-transform: capitalize;
}

.tca-cal-legenda {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-size: var(--tca-label-size, 13px);
	color: var(--tca-text-label, #9497ab);
}

.tca-cal-pallino {
	width: 12px;
	height: 12px;
	border-radius: 3px;
	background: color-mix(in srgb, var(--tca-warning, #d6a123) 26%, var(--tca-bg-panel, #1c1f2e));
	border: 1px dashed var(--tca-warning, #d6a123);
}

/* Su schermo stretto la griglia scorre invece di comprimersi. */
.tca-cal-scorri {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* --- Vista mese ------------------------------------------------ */
.tca-mese {
	display: grid;
	grid-template-columns: repeat(7, minmax(110px, 1fr));
	gap: 1px;
	min-width: 770px;
	background: var(--tca-border-panel, #2a2d3d);
	border: 1px solid var(--tca-border-panel, #2a2d3d);
	border-radius: var(--tca-radius, 8px);
	overflow: hidden;
}

.tca-mese-testa {
	background: var(--tca-bg-page, #14161f);
	padding: 8px 10px;
	font-size: var(--tca-label-size, 13px);
	font-weight: 700;
	color: var(--tca-text-label, #9497ab);
	text-align: center;
}

.tca-mese-giorno {
	background: var(--tca-bg-panel, #1c1f2e);
	min-height: 104px;
	padding: 6px;
}

/*
 * BUG CORRETTO (segnalato: "perché ci sono dei giorni con lo sfondo
 * chiaro?"). I giorni fuori dal mese erano attenuati con la
 * trasparenza: su fondo scuro questo li SCHIARISCE, invece di
 * spegnerli, facendoli risaltare più degli altri. Si usa quindi uno
 * sfondo più scuro e un testo più tenue.
 */
.tca-mese-giorno.fuori {
	background: var(--tca-bg-page, #14161f);
}

.tca-mese-giorno.fuori .tca-mese-num {
	color: var(--tca-text-label, #9497ab);
	opacity: .55;
}

.tca-mese-giorno.fuori .tca-etichetta {
	opacity: .6;
}

.tca-mese-giorno.oggi {
	outline: 2px solid var(--tca-primary, #3e64de);
	outline-offset: -2px;
}

.tca-mese-num {
	font-size: var(--tca-label-size, 13px);
	font-weight: 700;
	color: var(--tca-text-heading, #f5f6fa);
	margin-bottom: 4px;
}

/* --- Etichette delle lezioni (vista mese) ---------------------- */
.tca-etichetta {
	display: block;
	width: 100%;
	margin-bottom: 4px;
	padding: 4px 6px;
	border: 0;
	border-left: 3px solid var(--tca-primary, #3e64de);
	border-radius: 4px;
	background: color-mix(in srgb, var(--tca-primary, #3e64de) 22%, transparent);
	color: var(--tca-text-heading, #f5f6fa);
	font: inherit;
	font-size: calc(var(--tca-label-size, 13px) - 1px);
	text-align: left;
	line-height: 1.3;
	cursor: pointer;
}

.tca-etichetta:hover {
	background: color-mix(in srgb, var(--tca-primary, #3e64de) 38%, transparent);
}

.tca-etichetta-ora {
	display: block;
	font-weight: 700;
	opacity: .85;
}

.tca-etichetta-titolo {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/*
 * Corsi prenotati o da saldare: colore di AVVISO della palette
 * (Impostazioni → Aspetto), non il primario. Sono impegni presi ma non
 * ancora perfezionati, e l'avviso è esattamente il colore che
 * l'associazione ha scelto per dire "attenzione a questo". Bordo
 * tratteggiato per distinguerli anche a colpo d'occhio.
 */
.tca-calendario .tca-etichetta.in-attesa,
.tca-calendario .tca-lezione.in-attesa {
	background: color-mix(in srgb, var(--tca-warning, #d6a123) 26%, var(--tca-bg-panel, #1c1f2e));
	border-left-color: var(--tca-warning, #d6a123);
	border-left-style: dashed;
}

.tca-calendario .tca-etichetta.in-attesa:hover,
.tca-calendario .tca-lezione.in-attesa:hover {
	background: color-mix(in srgb, var(--tca-warning, #d6a123) 42%, var(--tca-bg-panel, #1c1f2e));
}

/* --- Vista settimana ------------------------------------------- */
.tca-sett {
	min-width: 780px;
	border: 1px solid var(--tca-border-panel, #2a2d3d);
	border-radius: var(--tca-radius, 8px);
	overflow: hidden;
	background: var(--tca-bg-panel, #1c1f2e);
}

.tca-sett-riga {
	display: grid;
	grid-template-columns: 62px repeat(7, 1fr);
}

.tca-sett-testa {
	background: var(--tca-bg-page, #14161f);
	border-bottom: 1px solid var(--tca-border-panel, #2a2d3d);
}

.tca-sett-giorno {
	padding: 8px 4px;
	text-align: center;
	font-size: var(--tca-label-size, 13px);
	color: var(--tca-text-label, #9497ab);
}

.tca-sett-giorno.oggi {
	color: var(--tca-text-heading, #f5f6fa);
}

.tca-sett-nome {
	display: block;
	font-weight: 700;
}

.tca-sett-num {
	display: block;
	font-size: calc(var(--tca-body-size, 15px) + 2px);
	color: var(--tca-text-heading, #f5f6fa);
}

.tca-sett-giorno.oggi .tca-sett-num {
	display: inline-block;
	min-width: 26px;
	border-radius: 50%;
	background: var(--tca-primary, #3e64de);
	color: #fff;
}

/* L'altezza di ogni ora è fissa: la griglia cresce con le ore
   mostrate, che dipendono dalle lezioni presenti. */
/* Con la fascia fissa 8–22 le righe sono quattordici: leggermente più
   basse, così la settimana sta in una schermata senza scorrere. */
.tca-sett-corpo {
	--tca-altezza-ora: 44px;
}

.tca-sett-ore {
	border-right: 1px solid var(--tca-border-panel, #2a2d3d);
}

.tca-sett-ora {
	height: var(--tca-altezza-ora);
	padding-right: 6px;
	text-align: right;
	font-size: calc(var(--tca-label-size, 13px) - 2px);
	color: var(--tca-text-label, #9497ab);
}

/*
 * BUG CORRETTO (segnalato: "l'orario di inizio si sovrappone
 * all'intestazione"). Le etichette orarie sono alzate di 7px per
 * allinearsi alla riga che segnano, ma la PRIMA finiva così a metà
 * dentro l'intestazione del calendario. La prima resta al suo posto.
 */
.tca-sett-ora span {
	position: relative;
	top: -7px;
}

.tca-sett-ora:first-child span {
	top: 0;
}

.tca-sett-colonna {
	position: relative;
	border-right: 1px solid var(--tca-border-panel, #2a2d3d);
}

.tca-sett-colonna:last-child {
	border-right: 0;
}

.tca-sett-colonna.oggi {
	background: color-mix(in srgb, var(--tca-primary, #3e64de) 6%, transparent);
}

.tca-sett-cella {
	height: var(--tca-altezza-ora);
	border-bottom: 1px solid var(--tca-border-panel, #2a2d3d);
}

/* Blocco della lezione: posizionato sull'ora reale, e affiancato agli
   altri quando si sovrappongono. */
.tca-lezione {
	position: absolute;
	overflow: hidden;
	padding: 3px 5px;
	border: 0;
	border-left: 3px solid var(--tca-primary, #3e64de);
	border-radius: 4px;
	background: color-mix(in srgb, var(--tca-primary, #3e64de) 30%, var(--tca-bg-panel, #1c1f2e));
	color: var(--tca-text-heading, #f5f6fa);
	font: inherit;
	font-size: calc(var(--tca-label-size, 13px) - 1px);
	text-align: left;
	line-height: 1.25;
	cursor: pointer;
}

.tca-lezione:hover {
	filter: brightness(1.15);
	z-index: 2;
}

.tca-lezione-ora {
	display: block;
	font-weight: 700;
	opacity: .85;
}

.tca-lezione-titolo {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tca-cal-vuoto {
	margin-top: 16px;
	text-align: center;
	color: var(--tca-text-label, #9497ab);
	font-size: var(--tca-label-size, 13px);
}

/* --- Riquadro dei dettagli ------------------------------------- */
.tca-cal-dettaglio {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 0, 0, .55);
}

.tca-cal-dettaglio[hidden] {
	display: none;
}

.tca-cal-riquadro {
	position: relative;
	width: 100%;
	max-width: 420px;
	padding: var(--tca-panel-padding, 20px);
	border: 1px solid var(--tca-border-panel, #2a2d3d);
	border-radius: var(--tca-radius, 8px);
	background: var(--tca-bg-panel, #1c1f2e);
}

.tca-cal-riquadro h4 {
	margin: 0 0 8px;
	font-size: var(--tca-heading-size, 20px);
	font-weight: var(--tca-heading-weight, 700);
	color: var(--tca-text-heading, #f5f6fa) !important;
	padding-right: 24px;
}

.tca-cal-quando {
	margin: 0 0 4px;
	color: var(--tca-text-body, #c7c9d9) !important;
	font-size: var(--tca-body-size, 15px);
	text-transform: capitalize;
}

.tca-cal-luogo {
	margin: 0 0 16px;
	font-size: var(--tca-label-size, 13px);
}

/*
 * Punto (segnalato): l'indirizzo era poco visibile. Usa ora il colore
 * dei collegamenti della palette — un blu — e non quello "primario",
 * che nel tema scuro della bacheca è un grigio scuro e quindi si
 * confondeva col testo.
 */
.tca-cal-luogo,
.tca-calendario .tca-cal-mappa,
.tca-calendario .tca-cal-mappa:hover,
.tca-calendario .tca-cal-mappa:focus {
	color: var(--tca-text-link, #6e8bf5) !important;
}

.tca-calendario .tca-cal-mappa {
	font-weight: 600;
	text-decoration: underline;
	overflow-wrap: anywhere;
}

.tca-calendario .tca-cal-mappa:hover {
	text-decoration: none;
}

.tca-cal-azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.tca-cal-chiudi {
	position: absolute;
	top: 10px;
	right: 12px;
	border: 0;
	background: none;
	color: var(--tca-text-label, #9497ab);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

/* ===============================================================
   Contabilità del socio
   =============================================================== */
.tca-conti-totali {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}

.tca-conti-totale {
	padding: 18px 20px;
	border: 1px solid var(--tca-border-panel, #2a2d3d);
	border-radius: var(--tca-radius, 8px);
	background: var(--tca-bg-panel, #1c1f2e);
}

/* Il "da pagare" si distingue solo quando c'è davvero qualcosa da
   pagare: uno zero in evidenza sarebbe un allarme inutile. */
.tca-conti-totale.in-attesa {
	border-color: var(--tca-warning, #d6a123);
}

.tca-conti-cifra {
	display: block;
	margin-bottom: 4px;
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: 24px;
	font-weight: 700;
	color: var(--tca-text-heading, #f5f6fa) !important;
}

.tca-conti-totale.in-attesa .tca-conti-cifra {
	color: var(--tca-warning, #d6a123) !important;
}

.tca-conti-etichetta {
	display: block;
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: var(--tca-label-size, 13px);
	color: var(--tca-text-label, #9497ab);
}

.tca-conti-tabella {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: var(--tca-label-size, 13px);
}

.tca-conti-tabella th {
	padding: 8px 10px;
	border-bottom: 1px solid var(--tca-border-panel, #2a2d3d);
	text-align: left;
	color: var(--tca-text-label, #9497ab);
	font-weight: 700;
}

.tca-conti-tabella td {
	padding: 10px;
	border-bottom: 1px solid var(--tca-border-panel, #2a2d3d);
	color: var(--tca-text-body, #c7c9d9);
	vertical-align: top;
}

.tca-conti-tabella .tca-destra {
	text-align: right;
	white-space: nowrap;
}

.tca-tag-attesa {
	margin-left: 6px;
	background: color-mix(in srgb, var(--tca-warning, #d6a123) 26%, transparent);
	color: var(--tca-warning, #d6a123);
}

.tca-conti-falliti {
	margin-top: 16px;
	font-size: var(--tca-label-size, 13px);
}

.tca-conti-falliti > summary {
	cursor: pointer;
	color: var(--tca-text-label, #9497ab);
}

.tca-conti-falliti .tca-conti-tabella td {
	opacity: .7;
}

/* Su schermo stretto la tabella diventa un elenco di schede: una
   tabella a cinque colonne su telefono è illeggibile. */
@media (max-width: 640px) {
	.tca-conti-tabella thead {
		display: none;
	}

	.tca-conti-tabella tr {
		display: block;
		margin-bottom: 12px;
		border: 1px solid var(--tca-border-panel, #2a2d3d);
		border-radius: var(--tca-radius, 8px);
		padding: 8px;
	}

	.tca-conti-tabella td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		border: 0;
		padding: 4px 6px;
		text-align: left;
	}

	.tca-conti-tabella td::before {
		content: attr(data-etichetta);
		color: var(--tca-text-label, #9497ab);
		font-weight: 700;
	}
}

/* Indicazione accanto all'icona utente: da lì si cambia profilo. */
.tca-switch-hint {
	margin-right: 10px;
	padding: 6px 12px;
	border: 1px solid var(--tca-border-panel, #2a2d3d);
	border-radius: 20px;
	background: transparent;
	color: var(--tca-text-label, #9497ab);
	font-family: var(--tca-font-family, system-ui, sans-serif);
	font-size: calc(var(--tca-label-size, 13px) - 1px);
	line-height: 1.3;
	cursor: pointer;
	white-space: nowrap;
	transition: color .18s, border-color .18s;
}

.tca-switch-hint:hover {
	color: var(--tca-text-heading, #f5f6fa);
	border-color: var(--tca-primary, #3e64de);
}

@media (max-width: 720px) {
	/* Su telefono l'intestazione è già affollata: resta l'icona. */
	.tca-switch-hint {
		display: none;
	}
}

/* Credito disponibile del socio: incassato ma spendibile. */
.tca-conti-credito {
	border-color: var(--tca-primary, #3e64de);
}

.tca-conti-credito .tca-conti-cifra {
	color: var(--tca-primary, #3e64de) !important;
}

.tca-tag-credito {
	margin-left: 6px;
	background: color-mix(in srgb, var(--tca-primary, #3e64de) 22%, transparent);
	color: var(--tca-text-heading, #f5f6fa);
}
