/**
 * ThemeEngine — Componenti del sistema di design.
 *
 * Le classi che vestono i riquadri costruiti dagli altri moduli, scritte con i
 * token `--rs-*` di questo stesso modulo e con proprietà logiche, così che il
 * verso di lettura lo giri il browser.
 *
 * ── Perché stanno qui, e non dove venivano usate ────────────────────────
 * Fino al 21/08/2026 queste tre famiglie vivevano in
 * `ChartGeneratorModule/Assets/css/chart-generator.css`, e le usava
 * `DashboardModule`. Due difetti in uno:
 *
 *   1. il legame passava **solo per i nomi delle classi** — nessuna
 *      dichiarazione, nessuna prova, nessuna guardia: rinominare
 *      `.rs-stats-value` non faceva fallire niente;
 *   2. e soprattutto **quel foglio di stile non lo caricava nessuna pagina**.
 *      Verificato sui tre progetti: nessuna vista includeva
 *      `chart-generator.css`. Quindi queste regole **non hanno mai avuto
 *      effetto**, e i riquadri si vedevano con le sole classi di Bootstrap.
 *
 * Qui invece arrivano davvero: `theme_css()` è chiamato nel layout di
 * entrambe le applicazioni, e questo file viene emesso **per primo** — prima
 * del tema — così un tema può ancora sovrascrivere ciò che vuole.
 *
 * ⚠ Sta in ThemeEngine e non dentro un tema di proposito: un tema che non
 *   discendesse da `risviel-default` si porterebbe via lo stile dei riquadri
 *   senza accorgersene, cioè lo stesso difetto in forma nuova.
 */

/* ── Area di widget in pagina ───────────────────────────────── */
.rs-in-page-widgets {
    margin-block-end: var(--rs-spacing-lg, 1.5rem);
}

.rs-in-page-widgets .card {
    background: var(--rs-card-bg);
    border: 1px solid var(--rs-border-color, #e5e7eb);
    border-radius: var(--rs-border-radius-lg, 0.5rem);
    box-shadow: var(--rs-shadow-sm);
    transition: var(--rs-transition-fast, all 0.15s ease);
}

.rs-in-page-widgets .card:hover {
    box-shadow: var(--rs-shadow-md);
}

/* ── Riquadro numerico ──────────────────────────────────────── */
.rs-stats-widget {
    padding: var(--rs-spacing-md, 1rem);
}

.rs-stats-widget .rs-stats-value {
    font-size: 1.75rem;
    font-weight: var(--rs-font-weight-bold, 700);
    color: var(--rs-body-color);
    line-height: 1.2;
}

.rs-stats-widget .rs-stats-label {
    font-size: var(--rs-font-size-sm, 0.875rem);
    color: var(--rs-text-muted);
    margin-block-start: 0.25rem;
}

.rs-stats-widget .rs-stats-trend {
    font-size: 0.75rem;
    margin-block-start: 0.5rem;
}

.rs-stats-widget .rs-stats-trend.positive {
    color: var(--rs-success);
}

.rs-stats-widget .rs-stats-trend.negative {
    color: var(--rs-danger);
}

.rs-stats-widget .rs-stats-trend.neutral {
    color: var(--rs-text-muted);
}

.rs-stats-widget .rs-stats-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--rs-border-radius, 0.375rem);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

/* ── Tabella compatta ───────────────────────────────────────── */
.rs-table-widget {
    font-size: var(--rs-font-size-sm, 0.875rem);
}

.rs-table-widget table {
    margin-block-end: 0;
}

.rs-table-widget th {
    font-weight: var(--rs-font-weight-semibold, 600);
    color: var(--rs-text-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-block-end: 2px solid var(--rs-border-color, #e5e7eb);
    padding: 0.5rem 0.75rem;
}

.rs-table-widget td {
    padding: 0.5rem 0.75rem;
    border-block-end: 1px solid var(--rs-border-color, #e5e7eb);
    color: var(--rs-body-color);
    vertical-align: middle;
}

.rs-table-widget tr:last-child td {
    border-block-end: none;
}
