/**
 * Directory app. I colori arrivano dai preset del tema quando esistono,
 * con valori di ripiego per restare leggibile anche altrove.
 */

.blog-lillo-apps {
	--apps-surface: var( --wp--preset--color--surface, #131a22 );
	--apps-border: var( --wp--preset--color--border, #232c37 );
	--apps-text: var( --wp--preset--color--contrast, #e6edf3 );
	--apps-muted: var( --wp--preset--color--muted, #8b98a5 );
	--apps-accent: var( --wp--preset--color--accent, #5ee2b0 );
	--apps-mono: var( --wp--preset--font-family--mono, ui-monospace, monospace );
}

/* --- Richiamo alla directory (home) --- */

.blog-lillo-apps-callout {
	--apps-surface: var( --wp--preset--color--surface, #131a22 );
	--apps-border: var( --wp--preset--color--border, #232c37 );
	--apps-text: var( --wp--preset--color--contrast, #e6edf3 );
	--apps-muted: var( --wp--preset--color--muted, #8b98a5 );
	--apps-accent: var( --wp--preset--color--accent, #5ee2b0 );
	--apps-mono: var( --wp--preset--font-family--mono, ui-monospace, monospace );

	/* senza questo il padding si somma alla larghezza wide e il blocco sborda */
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	align-items: center;
	justify-content: space-between;
	background-color: var( --apps-surface );
	border: 1px solid var( --apps-border );
	border-left: 3px solid var( --apps-accent );
	border-radius: 10px;
	padding: 1.5rem;
}

.blog-lillo-apps-callout .apps-callout__body {
	flex: 1 1 20rem;
}

.blog-lillo-apps-callout .apps-callout__label {
	margin: 0 0 0.5rem;
	font-family: var( --apps-mono );
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --apps-muted );
}

.blog-lillo-apps-callout .apps-callout__text {
	margin: 0 0 0.75rem;
	color: var( --apps-text );
	line-height: 1.6;
}

.blog-lillo-apps-callout .apps-callout__count {
	margin: 0 0 1rem;
	font-family: var( --apps-mono );
	font-size: 0.8125rem;
	color: var( --apps-muted );
}

.blog-lillo-apps-callout .apps-callout__count strong {
	color: var( --apps-accent );
	font-weight: 600;
}

.blog-lillo-apps-callout .apps-callout__link {
	font-family: var( --apps-mono );
	font-size: 0.9375rem;
	text-decoration: none;
	color: var( --apps-accent );
}

.blog-lillo-apps-callout .apps-callout__link:hover {
	text-decoration: underline;
}

.blog-lillo-apps-callout .apps-callout__icons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	max-width: 14rem;
	justify-content: flex-end;
}

.blog-lillo-apps-callout .apps-callout__icons img {
	width: 28px;
	height: 28px;
	object-fit: contain;
	opacity: 0.85;
	transition: opacity 0.15s ease;
}

.blog-lillo-apps-callout:hover .apps-callout__icons img {
	opacity: 1;
}

/* --- Barra strumenti --- */

.blog-lillo-apps__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-bottom: 1rem;
}

.blog-lillo-apps__field {
	display: flex;
	flex: 0 1 auto;
}

.blog-lillo-apps__field--search {
	flex: 1 1 16rem;
}

.blog-lillo-apps__search,
.blog-lillo-apps__category,
.blog-lillo-apps__sort {
	width: 100%;
	background-color: var( --apps-surface );
	border: 1px solid var( --apps-border );
	border-radius: 6px;
	color: var( --apps-text );
	font-family: inherit;
	font-size: 0.9375rem;
	padding: 0.55em 0.75em;
}

.blog-lillo-apps__search::placeholder {
	color: var( --apps-muted );
}

.blog-lillo-apps__category,
.blog-lillo-apps__sort {
	font-family: var( --apps-mono );
	font-size: 0.8125rem;
	max-width: 20rem;
}

.blog-lillo-apps__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-family: var( --apps-mono );
	font-size: 0.8125rem;
	color: var( --apps-muted );
	cursor: pointer;
}

.blog-lillo-apps__toggle input {
	accent-color: var( --apps-accent );
}

.blog-lillo-apps__status {
	margin: 0 0 1.25rem;
	font-family: var( --apps-mono );
	font-size: 0.8125rem;
	color: var( --apps-muted );
}

.blog-lillo-apps.is-loading .blog-lillo-apps__status::after {
	content: " …";
}

/* --- Griglia --- */

.blog-lillo-apps__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 17rem, 1fr ) );
	gap: 1rem;
}

.app-card {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	background-color: var( --apps-surface );
	border: 1px solid var( --apps-border );
	border-radius: 10px;
	padding: 1rem;
	transition: border-color 0.15s ease, transform 0.15s ease;
}

.app-card:hover {
	border-color: var( --apps-accent );
	transform: translateY( -2px );
}

.app-card--mine {
	border-left: 3px solid var( --apps-accent );
}

.app-card__head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.app-card__icon {
	width: 32px;
	height: 32px;
	object-fit: contain;
	border-radius: 6px;
	flex-shrink: 0;
	background-color: rgba( 255, 255, 255, 0.04 );
}

.app-card__icon--placeholder {
	display: grid;
	place-items: center;
	font-family: var( --apps-mono );
	font-size: 1rem;
	font-weight: 600;
	color: var( --apps-text );
	border: 1px solid var( --apps-border );
}

.app-card__name {
	margin: 0;
	flex: 1;
	font-family: var( --apps-mono );
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

.app-card__name a {
	color: var( --apps-text );
	text-decoration: none;
}

.app-card__name a:hover {
	color: var( --apps-accent );
	text-decoration: underline;
}

/* Semaforo dell'attività di sviluppo */
.app-card__health {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
	background-color: var( --apps-muted );
}

.app-card--active .app-card__health {
	background-color: #4ade80;
}

.app-card--slow .app-card__health {
	background-color: #facc15;
}

.app-card--stale .app-card__health {
	background-color: #f87171;
}

.app-card__description {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var( --apps-muted );
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.app-card__note {
	margin: 0;
	padding-left: 0.7em;
	border-left: 2px solid var( --apps-accent );
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var( --apps-text );
}

.app-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: auto;
	font-family: var( --apps-mono );
	font-size: 0.75rem;
	color: var( --apps-muted );
}

.app-card__meta > span {
	border: 1px solid var( --apps-border );
	border-radius: 999px;
	padding: 0.1em 0.6em;
	white-space: nowrap;
}

.app-card__badge {
	color: var( --apps-accent );
	border-color: var( --apps-accent ) !important;
}

.app-card__links {
	display: flex;
	gap: 0.8rem;
	font-family: var( --apps-mono );
	font-size: 0.75rem;
}

.app-card__links a {
	color: var( --apps-muted );
	text-decoration: none;
	border-bottom: 1px dotted var( --apps-border );
}

.app-card__links a:hover {
	color: var( --apps-accent );
	border-bottom-color: var( --apps-accent );
}

/* --- Pulsante e crediti --- */

.blog-lillo-apps__more {
	display: block;
	margin: 1.5rem auto 0;
	background: transparent;
	border: 1px solid var( --apps-border );
	border-radius: 6px;
	color: var( --apps-text );
	font-family: var( --apps-mono );
	font-size: 0.875rem;
	padding: 0.6em 1.4em;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.blog-lillo-apps__more:hover {
	border-color: var( --apps-accent );
	color: var( --apps-accent );
}

/* `display: block` qui sopra batterebbe il [hidden] del browser */
.blog-lillo-apps__more[hidden] {
	display: none;
}

.blog-lillo-apps__credits {
	margin: 2rem 0 0;
	font-size: 0.75rem;
	line-height: 1.6;
	color: var( --apps-muted );
	text-align: center;
}

.blog-lillo-apps__empty {
	color: var( --apps-muted );
	font-family: var( --apps-mono );
}

@media ( prefers-reduced-motion: reduce ) {
	.app-card {
		transition: none;
	}

	.app-card:hover {
		transform: none;
	}
}
