/* TPK Park Intelligence — calendario pubblico
   Stile 1C The Parks Key: pop, editoriale, da zine da viaggio — non uno
   "scatolone WordPress con bordo". Riferimento di ENERGIA visiva (non da
   copiare 1:1): la pagina attese di Disneyland Paris. Palette da
   AI/GLOBAL_VISUAL_STYLE_GUIDE.md: Ink per testo/struttura leggera, Pomodoro
   riservato a warning/molto affollato, Cobalto per dati/orari, Sole per
   evidenze puntuali (eventi). */

.tpkpi-cal, .tpkpi-cal *, .tpkpi-cal *::before, .tpkpi-cal *::after {
	box-sizing: border-box;
}

.tpkpi-cal {
	--tpkpi-ink: #1B1B16;
	--tpkpi-ink-70: rgba(27, 27, 22, .7);
	--tpkpi-ink-55: rgba(27, 27, 22, .55);
	--tpkpi-ink-12: rgba(27, 27, 22, .12);
	--tpkpi-cream: #FFF6E9;
	--tpkpi-pomodoro: #FF4D2E;
	--tpkpi-cobalto: #1B3CFF;
	--tpkpi-sole: #FFC94A;
	font-family: 'Bricolage Grotesque', system-ui, sans-serif;
	color: var(--tpkpi-ink);
	max-width: 980px;
	width: 100%;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--tpkpi-ink-12);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(27, 27, 22, .04), 0 8px 24px rgba(27, 27, 22, .06);
	padding: 22px 24px 26px;
	overflow-x: hidden;
}

.tpkpi-cal__kicker {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--tpkpi-pomodoro);
	text-align: center;
	margin-bottom: 10px;
}

/* ---------- Header / navigazione mese ---------- */

.tpkpi-cal__header {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-bottom: 6px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--tpkpi-ink-12);
}

.tpkpi-cal__title-wrap {
	min-width: 0;
	flex: 1 1 auto;
	max-width: 340px;
	text-align: center;
}

.tpkpi-cal__title {
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -0.015em;
}

.tpkpi-cal__status-line {
	font-size: 11px;
	font-weight: 600;
	color: var(--tpkpi-ink-55);
	margin-top: 2px;
	overflow-wrap: anywhere;
}

.tpkpi-cal__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: none;
	border-radius: 999px;
	text-decoration: none;
	color: var(--tpkpi-ink-70);
	font-weight: 700;
	font-size: 16px;
	background: var(--tpkpi-cream);
	flex: none;
}
.tpkpi-cal__nav:hover { background: #ffefd2; color: var(--tpkpi-ink); }
.tpkpi-cal__nav:focus-visible,
.tpkpi-cal__today:focus-visible {
	outline: 3px solid var(--tpkpi-cobalto);
	outline-offset: 2px;
}

.tpkpi-cal__today {
	display: inline-flex;
	align-items: center;
	height: 28px;
	padding: 0 12px;
	border: 1px solid var(--tpkpi-ink-12);
	border-radius: 999px;
	text-decoration: none;
	color: var(--tpkpi-ink-70);
	font-weight: 700;
	font-size: 11.5px;
	background: #fff;
	flex: none;
}
.tpkpi-cal__today:hover { background: var(--tpkpi-cream); color: var(--tpkpi-ink); }

/* ---------- Notice di degrado fonte (mai un errore tecnico) ---------- */

.tpkpi-cal__notice {
	background: #fff7ed;
	border: 1px solid #f4d9ad;
	color: #7a4a06;
	border-radius: 10px;
	padding: 8px 14px;
	font-size: 12px;
	text-align: center;
	margin: 12px 0;
}
/* Copertura insufficiente: stessa famiglia visiva del notice di degrado ma
   colore neutro (non e' un problema di fonte, e' solo "poco ancora noto"). */
.tpkpi-cal__notice--partial {
	background: var(--tpkpi-cream);
	border-color: rgba(255, 201, 74, .5);
	color: var(--tpkpi-ink-70);
}

/* ---------- Fascia "Nel mese: ..." ---------- */

.tpkpi-cal__month-banner {
	background: linear-gradient(0deg, rgba(255, 201, 74, .12), rgba(255, 201, 74, .12)), #fff;
	border: 1px solid rgba(255, 201, 74, .55);
	border-radius: 12px;
	padding: 8px 14px;
	font-size: 12.5px;
	text-align: center;
	margin: 12px 0;
}
.tpkpi-cal__month-banner strong { margin-right: 4px; }

/* ---------- Stato vuoto (fonte degradata, niente dati per il mese) ---------- */

.tpkpi-cal__empty-state {
	text-align: center;
	padding: 34px 18px;
	background: var(--tpkpi-cream);
	border-radius: 14px;
	margin-top: 8px;
}
.tpkpi-cal__empty-icon { font-size: 28px; margin-bottom: 8px; }
.tpkpi-cal__empty-state p { margin: 0; font-size: 13px; color: var(--tpkpi-ink-70); line-height: 1.5; }
.tpkpi-cal__empty-state p strong { font-size: 15px; color: var(--tpkpi-ink); display: inline-block; margin-bottom: 3px; }

/* ---------- Filtri ---------- */

.tpkpi-cal__filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 14px 0;
}

.tpkpi-filter-input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.tpkpi-filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 13px;
	border: 1px solid var(--tpkpi-ink-12);
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 700;
	cursor: pointer;
	background: #fff;
	color: var(--tpkpi-ink-55);
	user-select: none;
}
.tpkpi-filter-input:checked + .tpkpi-filter-pill {
	background: var(--tpkpi-cream);
	color: var(--tpkpi-ink);
	border-color: rgba(255, 201, 74, .7);
}
.tpkpi-filter-input:checked + .tpkpi-filter-pill--crowd {
	background: rgba(27, 60, 255, .08);
	border-color: rgba(27, 60, 255, .4);
	color: var(--tpkpi-cobalto);
}
.tpkpi-filter-input:focus-visible + .tpkpi-filter-pill {
	outline: 3px solid var(--tpkpi-cobalto);
	outline-offset: 2px;
}

/* ---------- Intestazione giorni settimana ---------- */

.tpkpi-cal__weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 6px;
}
.tpkpi-cal__weekday {
	text-align: center;
	font-size: 10.5px;
	font-weight: 700;
	color: var(--tpkpi-ink-55);
	text-transform: uppercase;
	letter-spacing: .03em;
}

/* ---------- Griglia mensile (desktop) ---------- */

.tpkpi-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 7px;
}

.tpkpi-day {
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
	border-radius: 12px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--tpkpi-ink-12);
	min-height: 68px;
	width: 100%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
	transition: transform .08s ease, box-shadow .08s ease;
	overflow: hidden;
}
.tpkpi-day:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(27, 27, 22, .08); }
.tpkpi-day:focus-visible {
	outline: 3px solid var(--tpkpi-cobalto);
	outline-offset: 2px;
}

.tpkpi-day--border-pomodoro { border-color: rgba(255, 77, 46, .55); }

.tpkpi-day--empty {
	background: transparent;
	border: none;
	min-height: 68px;
}

.tpkpi-day--status-closed,
.tpkpi-day--status-unverified,
.tpkpi-day--status-unavailable { background: #fbfaf8; }
.tpkpi-day--status-closed .tpkpi-day__num,
.tpkpi-day--status-unverified .tpkpi-day__num,
.tpkpi-day--status-unavailable .tpkpi-day__num { color: var(--tpkpi-ink-55); }

.tpkpi-day.is-today {
	box-shadow: 0 0 0 2px var(--tpkpi-cobalto);
}

.tpkpi-day__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-width: 0;
}

.tpkpi-day__num { font-weight: 800; font-size: 13px; }

.tpkpi-day__crowd-dot {
	width: 7px;
	height: 7px;
	border-radius: 999px;
	flex: none;
}

/* Gerarchia calendar mode: orario = elemento primario (Cobalto), ma solo se
   verificato. Testo corto per costruzione (Chiuso / Da confermare / N/D),
   mai troncato con "...". */
.tpkpi-day__hours {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--tpkpi-ink-55);
	overflow-wrap: anywhere;
}
.tpkpi-day--status-open .tpkpi-day__hours { color: var(--tpkpi-cobalto); }

/* Evento/stagione UFFICIALE: chip Sole riconoscibile, solo sul primo giorno
   del periodo nel mese — gli altri giorni hanno solo il pallino. */
.tpkpi-day__badge {
	font-size: 10px;
	font-weight: 700;
	background: var(--tpkpi-sole);
	color: var(--tpkpi-ink);
	border-radius: 999px;
	padding: 2px 8px;
	display: inline-block;
	width: fit-content;
	line-height: 1.5;
	max-width: 100%;
	overflow-wrap: anywhere;
}
.tpkpi-day__event-dot {
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--tpkpi-sole);
	border: 1px solid rgba(27, 27, 22, .3);
}

.tpkpi-day__weather {
	display: flex;
	align-items: center;
	gap: 3px;
	font-size: 10px;
	color: var(--tpkpi-ink-55);
	margin-top: auto;
}
.tpkpi-day__weather-icon { font-size: 11px; }

/* Pallino affluenza sul giorno (unico segnale affluenza in calendar mode). */
.tpkpi-day__crowd-dot.tpkpi-crowd--1, .tpkpi-day__crowd-dot.tpkpi-crowd--2 { background: var(--tpkpi-cobalto); }
.tpkpi-day__crowd-dot.tpkpi-crowd--3, .tpkpi-day__crowd-dot.tpkpi-crowd--4 { background: var(--tpkpi-ink-55); }
.tpkpi-day__crowd-dot.tpkpi-crowd--5 { background: var(--tpkpi-sole); }
.tpkpi-day__crowd-dot.tpkpi-crowd--6, .tpkpi-day__crowd-dot.tpkpi-crowd--7 { background: var(--tpkpi-pomodoro); }

/* ---------- Crowd mode: riepilogo sopra l'agenda ---------- */

.tpkpi-crowd-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	background: var(--tpkpi-cream);
	border-radius: 14px;
	padding: 14px 16px;
	margin-bottom: 14px;
}
.tpkpi-crowd-summary--empty { display: block; }
.tpkpi-crowd-summary--empty p { margin: 0; font-size: 12.5px; color: var(--tpkpi-ink-70); }

.tpkpi-crowd-summary__col { flex: 1 1 140px; min-width: 0; }
.tpkpi-crowd-summary__col h4 { margin: 0 0 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--tpkpi-ink-70); }
.tpkpi-crowd-summary__qualifier { text-transform: none; font-weight: 400; letter-spacing: 0; font-size: 10px; opacity: .8; }

.tpkpi-crowd-summary__chip {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 600;
	padding: 5px 0;
	overflow-wrap: anywhere;
}
.tpkpi-crowd-summary__chip-day {
	flex: none;
	font-weight: 800;
	font-size: 11px;
	background: #fff;
	border-radius: 999px;
	padding: 2px 8px;
}
.tpkpi-crowd-summary__chip.tpkpi-crowd--1 .tpkpi-crowd-summary__chip-day,
.tpkpi-crowd-summary__chip.tpkpi-crowd--2 .tpkpi-crowd-summary__chip-day { color: var(--tpkpi-cobalto); }
.tpkpi-crowd-summary__chip.tpkpi-crowd--6 .tpkpi-crowd-summary__chip-day,
.tpkpi-crowd-summary__chip.tpkpi-crowd--7 .tpkpi-crowd-summary__chip-day { color: var(--tpkpi-pomodoro); }
.tpkpi-crowd-summary__chip--event .tpkpi-crowd-summary__chip-day { color: #a67a00; }

.tpkpi-crowd-summary__legend {
	flex-basis: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	padding-top: 10px;
	border-top: 1px dashed rgba(27, 27, 22, .15);
	font-size: 10.5px;
	color: var(--tpkpi-ink-70);
}
.tpkpi-crowd-summary__legend span { display: inline-flex; align-items: center; gap: 5px; }
.tpkpi-crowd-summary__legend .tpkpi-agenda__dot { width: 8px; height: 8px; }

/* ---------- Crowd mode: agenda verticale (non una griglia) ---------- */

.tpkpi-agenda {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	min-width: 0;
}

.tpkpi-agenda__row {
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
	display: grid;
	grid-template-columns: 42px 8px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 0;
	border: 1px solid var(--tpkpi-ink-12);
	border-left: 4px solid var(--tpkpi-ink-55);
	border-radius: 12px;
	background: #fff;
	padding: 10px 14px;
	transition: box-shadow .08s ease;
}
.tpkpi-agenda__row:hover { box-shadow: 0 3px 10px rgba(27, 27, 22, .06); }
.tpkpi-agenda__row:focus-visible { outline: 3px solid var(--tpkpi-cobalto); outline-offset: 2px; }
.tpkpi-agenda__row.is-today { box-shadow: 0 0 0 2px var(--tpkpi-cobalto); }

.tpkpi-agenda__row--muted { border-left-color: var(--tpkpi-ink-12); }

/* Mini-lista calendario (copertura insufficiente): stesso componente
   agenda, colore per stato orario invece che per livello affluenza. */
.tpkpi-agenda__row--open { border-left-color: var(--tpkpi-cobalto); }
.tpkpi-agenda__row--open .tpkpi-agenda__dot { background: var(--tpkpi-cobalto); }
.tpkpi-agenda__row--closed { border-left-color: var(--tpkpi-ink-12); }
.tpkpi-agenda__row--closed .tpkpi-agenda__dot { background: var(--tpkpi-ink-55); }
.tpkpi-agenda__row--open .tpkpi-agenda__level { color: var(--tpkpi-cobalto); }
.tpkpi-agenda__row--muted .tpkpi-agenda__dot { background: var(--tpkpi-ink-12); }

.tpkpi-agenda__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.1;
	flex: none;
}
.tpkpi-agenda__daynum { font-weight: 800; font-size: 16px; }
.tpkpi-agenda__weekday { font-size: 9px; text-transform: uppercase; color: var(--tpkpi-ink-55); }

.tpkpi-agenda__dot { width: 9px; height: 9px; border-radius: 999px; flex: none; background: var(--tpkpi-ink-55); }
.tpkpi-agenda__row.tpkpi-crowd--1 .tpkpi-agenda__dot, .tpkpi-agenda__row.tpkpi-crowd--2 .tpkpi-agenda__dot { background: var(--tpkpi-cobalto); }
.tpkpi-agenda__row.tpkpi-crowd--3 .tpkpi-agenda__dot, .tpkpi-agenda__row.tpkpi-crowd--4 .tpkpi-agenda__dot { background: var(--tpkpi-ink-55); }
.tpkpi-agenda__row.tpkpi-crowd--5 .tpkpi-agenda__dot { background: var(--tpkpi-sole); }
.tpkpi-agenda__row.tpkpi-crowd--6 .tpkpi-agenda__dot, .tpkpi-agenda__row.tpkpi-crowd--7 .tpkpi-agenda__dot { background: var(--tpkpi-pomodoro); }
.tpkpi-agenda__row.tpkpi-crowd--1, .tpkpi-agenda__row.tpkpi-crowd--2 { border-left-color: var(--tpkpi-cobalto); }
.tpkpi-agenda__row.tpkpi-crowd--5 { border-left-color: var(--tpkpi-sole); }
.tpkpi-agenda__row.tpkpi-crowd--6, .tpkpi-agenda__row.tpkpi-crowd--7 { border-left-color: var(--tpkpi-pomodoro); }

.tpkpi-agenda__main { min-width: 0; overflow: hidden; }
.tpkpi-agenda__level { font-weight: 800; font-size: 14px; overflow-wrap: anywhere; }
.tpkpi-agenda__row--muted .tpkpi-agenda__level { font-weight: 600; color: var(--tpkpi-ink-55); }
.tpkpi-agenda__reason { font-size: 11.5px; color: var(--tpkpi-ink-70); overflow-wrap: anywhere; margin-top: 1px; }

.tpkpi-agenda__event-tag { flex: none; font-size: 14px; }
.tpkpi-agenda__confidence {
	flex: none;
	font-size: 10px;
	font-weight: 700;
	color: var(--tpkpi-ink-70);
	white-space: nowrap;
	background: var(--tpkpi-cream);
	border-radius: 999px;
	padding: 3px 10px;
}

/* ---------- Filtri: cosa nascondono ---------- */

.tpkpi-cal--hide-hours .tpkpi-day__hours { display: none; }
.tpkpi-cal--hide-events .tpkpi-day__badge,
.tpkpi-cal--hide-events .tpkpi-day__event-dot,
.tpkpi-cal--hide-events .tpkpi-agenda__event-tag,
.tpkpi-cal--hide-events .tpkpi-cal__month-banner { display: none; }
.tpkpi-cal--hide-weather .tpkpi-day__weather { display: none; }
.tpkpi-cal--hide-crowd .tpkpi-day__crowd-dot { display: none; }

/* ---------- Legenda (calendar mode) ---------- */

.tpkpi-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin-top: 16px;
	padding-top: 12px;
	border-top: 1px solid var(--tpkpi-ink-12);
	font-size: 10.5px;
	color: var(--tpkpi-ink-55);
}
.tpkpi-cal__legend span { display: inline-flex; align-items: center; gap: 5px; }
.tpkpi-legend-swatch {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
	flex: none;
}
.tpkpi-legend-swatch--ink { border: 1px solid var(--tpkpi-ink-55); }
.tpkpi-legend-swatch--muted { border: 1px solid var(--tpkpi-ink-12); background: #fbfaf8; }
.tpkpi-legend-swatch--sole { background: var(--tpkpi-sole); }

.tpkpi-cal__disclaimer {
	font-size: 10.5px;
	color: var(--tpkpi-ink-55);
	margin-top: 12px;
}

/* ---------- Mobile: agenda verticale vera ---------- */

@media (max-width: 767px) {
	.tpkpi-cal { padding: 16px; border-radius: 14px; }
	.tpkpi-cal__weekdays { display: none; }

	.tpkpi-cal__grid {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}

	.tpkpi-day--empty { display: none; }

	.tpkpi-day {
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		min-height: auto;
		gap: 4px 12px;
		padding: 10px 12px;
	}

	.tpkpi-day__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		min-width: 30px;
	}
	.tpkpi-day__num { font-size: 15px; }

	.tpkpi-day__weather { margin-top: 0; margin-left: auto; }

	.tpkpi-day.tpkpi-is-past-mobile { display: none; }

	.tpkpi-cal__legend { font-size: 10px; gap: 6px 10px; }

	.tpkpi-crowd-summary { flex-direction: column; gap: 10px; }

	.tpkpi-agenda__row {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	.tpkpi-agenda__date { order: 1; margin-right: 4px; }
	.tpkpi-agenda__dot { order: 2; margin-right: 8px; }
	.tpkpi-agenda__main { order: 3; flex: 1 1 140px; min-width: 0; }
	.tpkpi-agenda__event-tag { order: 4; margin-left: 8px; }
	.tpkpi-agenda__confidence { order: 5; margin: 6px 0 0; flex-basis: 100%; }
	.tpkpi-agenda__row.tpkpi-is-past-mobile { display: none; }
}

/* ---------- Popup giorno: scheda per il visitatore ---------- */

/* Un [hidden] su un elemento con un display esplicito qui sotto (block/flex)
   perderebbe altrimenti contro lo UA default [hidden]{display:none}, che ha
   priorita' di ORIGINE piu' bassa di qualunque regola author — bug reale
   trovato in QA su WordPress vero (il CTA "Vedi attese live" restava
   visibile per un parco senza waits_page_url). Regola esplicita e forte per
   ogni blocco del popup che JS nasconde/mostra via l'attributo hidden. */
.tpkpi-detail[hidden] { display: none; }
.tpkpi-detail__event[hidden],
.tpkpi-detail__weather[hidden],
.tpkpi-detail__crowd[hidden],
.tpkpi-detail__cta[hidden],
.tpkpi-detail__cta-microcopy[hidden],
.tpkpi-detail__tech[hidden] { display: none !important; }

.tpkpi-detail {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.tpkpi-detail__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(27, 27, 22, .45);
}

.tpkpi-detail__sheet {
	position: relative;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(27, 27, 22, .25);
	padding: 22px;
	max-width: 380px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	font-family: 'Bricolage Grotesque', system-ui, sans-serif;
	color: var(--tpkpi-ink);
}

.tpkpi-detail__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: none;
	background: var(--tpkpi-cream);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.tpkpi-detail__close:hover { background: #ffefd2; }
.tpkpi-detail__close:focus-visible { outline: 3px solid var(--tpkpi-cobalto); outline-offset: 2px; }

.tpkpi-detail__date {
	font-size: 18px;
	font-weight: 800;
	margin: 0 32px 14px 0;
	text-transform: capitalize;
}

/* Stato principale: la prima cosa che il visitatore legge. */
.tpkpi-detail__status {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 800;
	padding: 10px 14px;
	border-radius: 12px;
	margin-bottom: 14px;
	background: var(--tpkpi-cream);
	color: var(--tpkpi-ink);
}
.tpkpi-detail__status-icon { font-size: 18px; }
.tpkpi-detail__status--open { background: rgba(27, 60, 255, .08); color: var(--tpkpi-cobalto); }
.tpkpi-detail__status--closed { background: #f3f2ef; color: var(--tpkpi-ink-55); }
.tpkpi-detail__status--unverified,
.tpkpi-detail__status--unavailable { background: #fff7ed; color: #7a4a06; }

.tpkpi-detail__event {
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px dashed var(--tpkpi-ink-12);
}
.tpkpi-detail__event-name { font-weight: 800; font-size: 14px; margin-bottom: 4px; }
.tpkpi-detail__event-desc { margin: 0 0 6px; font-size: 12.5px; color: var(--tpkpi-ink-70); line-height: 1.4; }
.tpkpi-detail__event-link { font-size: 12.5px; font-weight: 700; color: var(--tpkpi-cobalto); text-decoration: none; }
.tpkpi-detail__event-link:hover { text-decoration: underline; }

.tpkpi-detail__weather {
	font-size: 13px;
	color: var(--tpkpi-ink-70);
	margin-bottom: 14px;
}

.tpkpi-detail__crowd {
	background: #fbfaf8;
	border-radius: 12px;
	padding: 12px 14px;
	margin-bottom: 14px;
}
.tpkpi-detail__crowd-level { font-weight: 800; font-size: 14px; margin-bottom: 4px; }
.tpkpi-detail__crowd-explain { margin: 0 0 6px; font-size: 12.5px; line-height: 1.45; color: var(--tpkpi-ink-70); }
.tpkpi-detail__crowd-confidence { margin: 0; font-size: 11px; font-weight: 700; color: var(--tpkpi-ink-55); }

.tpkpi-detail__cta-microcopy {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 700;
	color: var(--tpkpi-ink-70);
	text-align: center;
}

.tpkpi-detail__cta {
	display: block;
	text-align: center;
	background: var(--tpkpi-ink);
	color: #fff;
	font-weight: 800;
	font-size: 13.5px;
	text-decoration: none;
	border-radius: 999px;
	padding: 11px;
	margin-bottom: 12px;
}
.tpkpi-detail__cta:hover { background: #333029; }

.tpkpi-detail__tech { margin-bottom: 10px; }
.tpkpi-detail__tech summary { font-size: 11px; color: var(--tpkpi-ink-55); cursor: pointer; }
.tpkpi-detail__tech p { margin: 6px 0 0; font-size: 11.5px; color: var(--tpkpi-ink-55); }

.tpkpi-detail__disclaimer {
	font-size: 10.5px;
	color: var(--tpkpi-ink-55);
	margin: 4px 0 0;
}

/* =====================================================================
   v0.11.0 — TPK Smart Stack
   Regole cromatiche: Pomodoro solo per livello alto/CTA; Cobalto per selezione e dati attivi;
   Sole per eventi/consigli; verde acqua per condizioni favorevoli; celle neutre.
   Le regole usano `button.` + !important perche' il tema (Hello/Elementor Kit) colora TUTTI i <button> di Pomodoro.
   ===================================================================== */
.tpkpi-cal{--tpkpi-teal:#00A6A6;--tpkpi-teal-soft:#E2F4F3;--tpkpi-azure-soft:#E6EDFF;--tpkpi-sole-soft:#FFF2CC;--tpkpi-coral-soft:#FFE3DB;}
.tpkpi-cal button.tpkpi-day,
.tpkpi-cal button.tpkpi-cday,
.tpkpi-cal button.tpkpi-agenda__row{background:#fff!important;color:var(--tpkpi-ink)!important;border:1px solid var(--tpkpi-ink-12)!important;box-shadow:none;text-transform:none;letter-spacing:0;font-weight:400;border-radius:10px;}
.tpkpi-cal button.tpkpi-day:hover,.tpkpi-cal button.tpkpi-cday:hover,.tpkpi-cal button.tpkpi-agenda__row:hover{background:var(--tpkpi-cream)!important;color:var(--tpkpi-ink)!important;}
.tpkpi-cal button.tpkpi-day.tpkpi-day--status-closed,
.tpkpi-cal button.tpkpi-day.tpkpi-day--status-unverified,
.tpkpi-cal button.tpkpi-day.tpkpi-day--status-unavailable{background:#F4F1EA!important;}
.tpkpi-cal button.tpkpi-day.tpkpi-day--border-pomodoro{border-color:var(--tpkpi-ink-12)!important;}
.tpkpi-cal button.tpkpi-day.is-today,.tpkpi-cal button.tpkpi-cday.is-today{box-shadow:0 0 0 2px var(--tpkpi-cobalto)!important;}
.tpkpi-cal .tpkpi-day--empty{background:transparent!important;border:0!important;}
.tpkpi-cal .tpkpi-day__hours{color:var(--tpkpi-ink-70);}
.tpkpi-cal .tpkpi-day--status-open .tpkpi-day__hours{color:var(--tpkpi-cobalto);font-weight:800;}
.tpkpi-cal button.tpkpi-detail__close{background:var(--tpkpi-cream)!important;color:var(--tpkpi-ink)!important;border:0!important;}
.tpkpi-cal a.tpkpi-detail__cta{background:var(--tpkpi-pomodoro);color:var(--tpkpi-ink);}
.tpkpi-cal .tpkpi-cal__kicker{color:var(--tpkpi-cobalto);}
.tpkpi-cal .tpkpi-filter-pill{min-height:44px;display:inline-flex;align-items:center;}
.tpkpi-cal .tpkpi-cal__nav{width:44px;height:44px;}
.tpkpi-cal .tpkpi-cal__today{height:44px;}

/* Affluenza: snapshot del mese */
.tpkpi-snap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;margin:14px 0;}
.tpkpi-snap__cell{background:var(--tpkpi-cream);border-radius:12px;padding:12px 14px;min-width:0;}
.tpkpi-snap__k{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--tpkpi-ink-70);margin:0 0 4px;}
.tpkpi-snap__v{font-size:22px;font-weight:800;line-height:1.1;margin:0;overflow-wrap:anywhere;}
.tpkpi-snap__s{font-size:12.5px;color:var(--tpkpi-ink-70);margin:4px 0 0;}
@media (max-width:767px){.tpkpi-snap{grid-template-columns:1fr 1fr;}.tpkpi-snap__cell:first-child{grid-column:1/-1;}}
/* riepilogo giorni migliori / da evitare: neutro, il livello e' scritto */
.tpkpi-cal .tpkpi-crowd-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px;}
.tpkpi-cal .tpkpi-crowd-summary__col{background:#fff;border:1px solid var(--tpkpi-ink-12);border-radius:12px;padding:10px 12px;}
.tpkpi-cal .tpkpi-crowd-summary__chip{background:transparent!important;border:0!important;padding:3px 0!important;color:var(--tpkpi-ink)!important;}
.tpkpi-cal .tpkpi-crowd-summary__chip-day{color:var(--tpkpi-ink)!important;font-weight:800;}
.tpkpi-cal .tpkpi-crowd-summary__legend{display:none;}
@media (max-width:767px){.tpkpi-cal .tpkpi-crowd-summary{grid-template-columns:1fr;}}

/* Affluenza: calendario mensile compatto (costruito da calendar.js sui dati dell'agenda; senza JS resta l'elenco) */
.tpkpi-cgrid{margin:6px 0 10px;}
.tpkpi-cgrid__head,.tpkpi-cweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.tpkpi-cgrid__head{margin-bottom:6px;}
.tpkpi-cgrid__head span{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--tpkpi-ink-55);text-align:center;}
.tpkpi-cweek{margin-bottom:6px;}
.tpkpi-cgrid:not(.is-all) .tpkpi-cweek.is-past{display:none;}
.tpkpi-cal button.tpkpi-cday{min-height:64px;padding:6px 7px;display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;width:100%;min-width:0;font-family:inherit;}
.tpkpi-cday--empty{visibility:hidden;}
.tpkpi-cday__n{font-weight:800;font-size:13px;line-height:1;}
.tpkpi-cday__l{font-size:11px;font-weight:700;line-height:1.15;overflow-wrap:anywhere;}
.tpkpi-cday__e{font-size:10px;line-height:1;}
.tpkpi-cal button.tpkpi-cday.is-past{opacity:.55;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--1,.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--2{background:var(--tpkpi-teal-soft)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--3{background:var(--tpkpi-azure-soft)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--4{background:var(--tpkpi-sole-soft)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--5{background:var(--tpkpi-coral-soft)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--6,.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--7{background:#fff!important;border:2px solid var(--tpkpi-pomodoro)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--6 .tpkpi-cday__l,.tpkpi-cal button.tpkpi-cday.tpkpi-crowd--7 .tpkpi-cday__l{color:#C4290C;}
.tpkpi-cal button.tpkpi-cday.tpkpi-cday--calib{background:repeating-linear-gradient(135deg,#F4F1EA 0 6px,#EAE6DC 6px 12px)!important;}
.tpkpi-cal button.tpkpi-cday.tpkpi-cday--nodata{background:#fff!important;border-style:dashed!important;color:var(--tpkpi-ink-55)!important;}
.tpkpi-cgrid__more{display:inline-flex;align-items:center;min-height:44px;margin:4px 0 10px;padding:0 16px;border:2px solid var(--tpkpi-ink);border-radius:999px;background:#fff;color:var(--tpkpi-ink);font:inherit;font-weight:800;cursor:pointer;}
.tpkpi-cal button.tpkpi-cgrid__more{background:#fff!important;color:var(--tpkpi-ink)!important;border:2px solid var(--tpkpi-ink)!important;}
.tpkpi-cgrid__legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--tpkpi-ink-70);margin:6px 0 10px;}
.tpkpi-cgrid__legend i{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--tpkpi-ink-12);margin-right:5px;vertical-align:-1px;}
.tpkpi-cal.tpkpi-js--grid .tpkpi-agenda-wrap>.tpkpi-agenda{margin-top:8px;}
.tpkpi-agenda-wrap{border-top:1px solid var(--tpkpi-ink-12);margin-top:8px;}
.tpkpi-agenda-wrap>summary{cursor:pointer;font-weight:800;min-height:44px;display:flex;align-items:center;}
.tpkpi-cal.tpkpi-js--grid .tpkpi-agenda__row[data-date]{border-left-width:1px;}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--6,.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--7{border-left-color:var(--tpkpi-pomodoro)!important;}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--1,.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--2{border-left-color:var(--tpkpi-teal)!important;}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--3{border-left-color:var(--tpkpi-cobalto)!important;}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--1 .tpkpi-agenda__dot,.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--2 .tpkpi-agenda__dot{background:var(--tpkpi-teal);}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--3 .tpkpi-agenda__dot{background:var(--tpkpi-cobalto);}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--4 .tpkpi-agenda__dot{background:var(--tpkpi-sole);}
.tpkpi-cal .tpkpi-agenda__row.tpkpi-crowd--5 .tpkpi-agenda__dot{background:#F28B6E;}

/* dettaglio: pannello inferiore su mobile */
@media (max-width:767px){
  .tpkpi-detail{align-items:flex-end;padding:0;}
  .tpkpi-detail__sheet{max-width:none;border-radius:18px 18px 0 0;max-height:80vh;}
}
.tpkpi-detail__close{width:44px;height:44px;top:6px;right:6px;}
@media (max-width:767px){
  .tpkpi-cweek,.tpkpi-cgrid__head{gap:3px;}
  .tpkpi-cal button.tpkpi-cday{min-height:58px;padding:4px 4px;}
  .tpkpi-cday__l{font-size:9.5px;}
}
