/* ============================================================================
   chemiguardo.it — Foglio di stile unico
   Tema scuro "da salotto": lo sfondo profondo fa risaltare i titoli come su
   uno schermo acceso. Rosso corallo per il segnale "in onda" (la spia della
   telecamera), azzurro elettrico per gli elementi interattivi.
   ============================================================================ */

/* ---------------------------------------------------------------- Token --- */
:root {
    /* Superfici */
    --sfondo:            #0b0e17;
    --sfondo-alto:       #121728;
    --sfondo-scheda:     #151b2e;
    --sfondo-scheda-alto:#1b2239;
    --bordo:             #242c46;
    --bordo-tenue:       #1c2338;

    /* Testo */
    --testo:             #eef1f8;
    --testo-tenue:       #a4adc4;
    --testo-fioco:       #6f7a94;

    /* Accenti */
    --accento:           #5b8cff;
    --accento-chiaro:    #8fb0ff;
    --onda:              #ff4d5e;
    --onda-tenue:        rgba(255, 77, 94, 0.14);
    --diretta:           #ffb445;

    /* Forma */
    --raggio:            14px;
    --raggio-piccolo:    9px;
    --raggio-pastiglia:  999px;

    /* Ritmo verticale */
    --spazio-1: 4px;
    --spazio-2: 8px;
    --spazio-3: 12px;
    --spazio-4: 16px;
    --spazio-5: 24px;
    --spazio-6: 32px;
    --spazio-7: 48px;
    --spazio-8: 64px;

    --larghezza-massima: 1240px;

    --ombra: 0 1px 2px rgba(0,0,0,.28), 0 8px 24px rgba(0,0,0,.22);

    --carattere: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
                 Arial, "Noto Sans", sans-serif;
    --carattere-cifre: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
}

/* --------------------------------------------------------------- Reset --- */
*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--sfondo);
    color: var(--testo);
    font-family: var(--carattere);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, p, dl, dd, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 2px solid var(--accento);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Utilità di accessibilità: visibile solo ai lettori di schermo */
.solo-lettori-schermo {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.salta-contenuto {
    position: absolute;
    left: -999px;
    top: var(--spazio-3);
    z-index: 100;
    padding: var(--spazio-3) var(--spazio-4);
    background: var(--accento);
    color: #fff;
    border-radius: var(--raggio-piccolo);
    font-weight: 600;
}
.salta-contenuto:focus { left: var(--spazio-4); }

.contenitore {
    width: 100%;
    max-width: var(--larghezza-massima);
    margin-inline: auto;
    padding-inline: var(--spazio-5);
}

main.contenitore { padding-block: var(--spazio-6) var(--spazio-8); }

/* --------------------------------------------------------- Intestazione --- */
.intestazione {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(11, 14, 23, .88);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--bordo-tenue);
}

.intestazione__interno {
    display: flex;
    align-items: center;
    gap: var(--spazio-5);
    min-height: 68px;
}

.marchio { display: flex; align-items: center; gap: var(--spazio-2); flex-shrink: 0; }
.marchio__icona { color: var(--onda); display: flex; }
.marchio__testo { font-size: 1.12rem; letter-spacing: -.02em; font-weight: 500; }
.marchio__testo strong { font-weight: 800; }

.navigazione { display: flex; gap: var(--spazio-1); margin-right: auto; }

.navigazione__voce {
    padding: var(--spazio-2) var(--spazio-3);
    border-radius: var(--raggio-piccolo);
    color: var(--testo-tenue);
    font-size: .93rem;
    font-weight: 500;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}
.navigazione__voce:hover { background: var(--sfondo-alto); color: var(--testo); }
.navigazione__voce--attiva { background: var(--sfondo-scheda-alto); color: var(--testo); }

/* -------------------------------------------------------------- Ricerca --- */
.ricerca {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.ricerca__icona {
    position: absolute;
    left: var(--spazio-3);
    color: var(--testo-fioco);
    pointer-events: none;
}
.ricerca input {
    width: 220px;
    padding: var(--spazio-2) var(--spazio-3) var(--spazio-2) 40px;
    background: var(--sfondo-alto);
    border: 1px solid var(--bordo);
    border-radius: var(--raggio-pastiglia);
    color: var(--testo);
    font: inherit;
    font-size: .92rem;
    transition: border-color .15s ease, background .15s ease;
}
.ricerca input::placeholder { color: var(--testo-fioco); }
.ricerca input:focus { border-color: var(--accento); background: var(--sfondo-scheda); }

.ricerca--grande {
    width: 100%;
    gap: var(--spazio-3);
    margin-bottom: var(--spazio-6);
}
.ricerca--grande input {
    flex: 1;
    width: auto;
    padding: var(--spazio-4) var(--spazio-4) var(--spazio-4) 48px;
    font-size: 1rem;
    border-radius: var(--raggio);
}
.ricerca--grande .ricerca__icona { left: var(--spazio-4); }

/* ---------------------------------------------------------------- Intro --- */
.intro { margin-bottom: var(--spazio-6); max-width: 68ch; }

.intro__sopratitolo {
    display: flex;
    align-items: center;
    /* Su schermo stretto la riga va a capo tutta insieme: senza wrap
       l'orario verrebbe spinto da solo all'estremo destro. */
    flex-wrap: wrap;
    gap: var(--spazio-2);
    color: var(--testo-fioco);
    font-size: .84rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: var(--spazio-3);
}

.intro__titolo {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -.028em;
    font-weight: 800;
    margin-bottom: var(--spazio-3);
}

.intro__testo { color: var(--testo-tenue); font-size: 1.02rem; }

/* ------------------------------------------------------------ Pastiglie --- */
.pastiglia {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: var(--raggio-pastiglia);
    background: var(--sfondo-scheda-alto);
    border: 1px solid var(--bordo);
    color: var(--testo-tenue);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
}
.pastiglia--onda {
    background: var(--onda-tenue);
    border-color: rgba(255, 77, 94, .34);
    color: #ff8b96;
}
.pastiglia--diretta {
    background: rgba(255, 180, 69, .12);
    border-color: rgba(255, 180, 69, .32);
    color: var(--diretta);
}
.pastiglia--futuro {
    background: rgba(91, 140, 255, .12);
    border-color: rgba(91, 140, 255, .32);
    color: var(--accento-chiaro);
}

/* Spia "in onda": pulsa come la tally light di una telecamera */
.pallino-onda {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--onda);
    box-shadow: 0 0 0 0 rgba(255, 77, 94, .6);
    animation: pulsazione 2s ease-out infinite;
    flex-shrink: 0;
}
@keyframes pulsazione {
    0%   { box-shadow: 0 0 0 0 rgba(255, 77, 94, .55); }
    70%  { box-shadow: 0 0 0 7px rgba(255, 77, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 77, 94, 0); }
}

/* --------------------------------------------------------------- Filtri --- */
.filtri {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spazio-2);
    margin-bottom: var(--spazio-5);
}
.filtri__voce {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: var(--raggio-pastiglia);
    background: var(--sfondo-alto);
    border: 1px solid var(--bordo-tenue);
    color: var(--testo-tenue);
    font-size: .87rem;
    font-weight: 500;
    transition: all .15s ease;
}
.filtri__voce:hover { border-color: var(--bordo); color: var(--testo); }
.filtri__voce--attiva {
    background: var(--accento);
    border-color: var(--accento);
    color: #fff;
}
.filtri__conteggio { opacity: .6; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------- Logo canale --- */
.logo-canale {
    display: grid;
    place-items: center;
    width: 40px; height: 40px;
    flex-shrink: 0;
    border-radius: 10px;
    background: var(--sfondo-scheda-alto);
    border: 1px solid var(--bordo);
    overflow: hidden;
}
.logo-canale img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.logo-canale__numero,
.logo-canale__iniziali {
    font-size: .84rem;
    font-weight: 700;
    color: var(--testo-tenue);
    font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------- Griglia "in onda" --- */
.griglia-onda {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: var(--spazio-4);
}

.scheda-onda {
    display: flex;
    flex-direction: column;
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    overflow: hidden;
    transition: border-color .18s ease, transform .18s ease;
}
.scheda-onda:hover {
    border-color: var(--bordo);
    transform: translateY(-2px);
}

.scheda-onda__canale {
    display: flex;
    align-items: center;
    gap: var(--spazio-3);
    padding: var(--spazio-3) var(--spazio-4);
    background: var(--sfondo-alto);
    border-bottom: 1px solid var(--bordo-tenue);
}
.scheda-onda__canale-nome { font-weight: 600; font-size: .95rem; }

.scheda-onda__corpo {
    padding: var(--spazio-4);
    display: flex;
    flex-direction: column;
    gap: var(--spazio-2);
    flex: 1;
}

.scheda-onda__meta { display: flex; flex-wrap: wrap; gap: 6px; }

.scheda-onda__titolo {
    font-size: 1.13rem;
    line-height: 1.28;
    letter-spacing: -.015em;
    font-weight: 700;
}
.scheda-onda__titolo a:hover { color: var(--accento-chiaro); }

.scheda-onda__sottotitolo {
    color: var(--testo-tenue);
    font-size: .9rem;
    line-height: 1.4;
}

.scheda-onda__orari {
    display: flex;
    align-items: center;
    gap: var(--spazio-2);
    color: var(--testo-tenue);
    font-size: .89rem;
    font-variant-numeric: tabular-nums;
}
.scheda-onda__durata { color: var(--testo-fioco); }
.scheda-onda__durata::before { content: "· "; }

.scheda-onda__seguire {
    margin-top: auto;
    padding-top: var(--spazio-3);
    border-top: 1px solid var(--bordo-tenue);
    font-size: .87rem;
    color: var(--testo-tenue);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.scheda-onda__seguire-etichetta {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--testo-fioco);
}
.scheda-onda__seguire a:hover { color: var(--accento-chiaro); }
.scheda-onda__seguire strong { font-variant-numeric: tabular-nums; margin-right: 4px; }

/* --------------------------------------------------------- Avanzamento --- */
.avanzamento {
    height: 4px;
    background: var(--sfondo-scheda-alto);
    border-radius: var(--raggio-pastiglia);
    overflow: hidden;
}
.avanzamento__barra {
    height: 100%;
    background: linear-gradient(90deg, var(--onda), #ff7a68);
    border-radius: inherit;
    transition: width .6s ease;
}

/* ------------------------------------------------------ Barra strumenti --- */
.barra-strumenti {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--spazio-4);
    margin-bottom: var(--spazio-5);
}

.selettore-giorni {
    display: flex;
    gap: var(--spazio-2);
    overflow-x: auto;
    padding-bottom: var(--spazio-1);
    scrollbar-width: thin;
}
.selettore-giorni__voce {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    padding: var(--spazio-2) var(--spazio-4);
    border-radius: var(--raggio-piccolo);
    background: var(--sfondo-alto);
    border: 1px solid var(--bordo-tenue);
    white-space: nowrap;
    transition: all .15s ease;
}
.selettore-giorni__voce:hover { border-color: var(--bordo); }
.selettore-giorni__voce--attiva {
    background: var(--accento);
    border-color: var(--accento);
    color: #fff;
}
.selettore-giorni__etichetta {
    font-size: .87rem;
    font-weight: 600;
}
/* Solo l'iniziale in maiuscolo: "capitalize" darebbe "Sabato 22 Agosto",
   mentre in italiano i nomi dei mesi restano minuscoli. */
.selettore-giorni__etichetta::first-letter { text-transform: uppercase; }
.selettore-giorni__data {
    font-size: .72rem;
    opacity: .68;
    font-variant-numeric: tabular-nums;
}

.commutatore {
    display: flex;
    padding: 3px;
    gap: 3px;
    background: var(--sfondo-alto);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio-pastiglia);
}
.commutatore__voce {
    padding: 6px 16px;
    border-radius: var(--raggio-pastiglia);
    font-size: .87rem;
    font-weight: 600;
    color: var(--testo-tenue);
    white-space: nowrap;
    transition: all .15s ease;
}
.commutatore__voce--attiva { background: var(--sfondo-scheda-alto); color: var(--testo); }

/* ------------------------------------------------------ Griglia serata --- */
.griglia-serata {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spazio-4);
}

.scheda-serata {
    display: flex;
    flex-direction: column;
    gap: var(--spazio-2);
    padding: var(--spazio-4);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    transition: border-color .18s ease, transform .18s ease;
}
.scheda-serata:hover { border-color: var(--bordo); transform: translateY(-2px); }

.scheda-serata__canale {
    display: flex;
    align-items: center;
    gap: var(--spazio-2);
    font-size: .87rem;
    font-weight: 600;
    color: var(--testo-tenue);
}
.scheda-serata__canale .logo-canale { width: 30px; height: 30px; border-radius: 8px; }

.scheda-serata__ora {
    display: flex;
    align-items: baseline;
    gap: var(--spazio-2);
    font-size: 1.32rem;
    font-weight: 800;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
    color: var(--accento-chiaro);
}
.scheda-serata__durata {
    font-size: .8rem;
    font-weight: 500;
    color: var(--testo-fioco);
}

.scheda-serata__titolo {
    font-size: 1.08rem;
    line-height: 1.3;
    letter-spacing: -.015em;
    font-weight: 700;
}
.scheda-serata__titolo a:hover { color: var(--accento-chiaro); }

.scheda-serata__sottotitolo { color: var(--testo-tenue); font-size: .9rem; }
.scheda-serata__meta { display: flex; flex-wrap: wrap; gap: 6px; }
.scheda-serata__trama {
    color: var(--testo-tenue);
    font-size: .89rem;
    line-height: 1.5;
}

/* ----------------------------------------------------- Elenco programmi --- */
.elenco-programmi {
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    overflow: hidden;
}

.riga-programma {
    display: flex;
    gap: var(--spazio-4);
    padding: var(--spazio-3) var(--spazio-4);
    border-bottom: 1px solid var(--bordo-tenue);
    transition: background .15s ease;
}
.riga-programma:last-child { border-bottom: 0; }
.riga-programma:hover { background: var(--sfondo-scheda-alto); }

.riga-programma--onda {
    background: var(--onda-tenue);
    box-shadow: inset 3px 0 0 var(--onda);
}
.riga-programma--onda:hover { background: rgba(255, 77, 94, .18); }
.riga-programma--passato { opacity: .5; }

.riga-programma__ora {
    flex-shrink: 0;
    width: 52px;
    font-weight: 700;
    font-size: .95rem;
    font-variant-numeric: tabular-nums;
    color: var(--testo-tenue);
    padding-top: 1px;
}
.riga-programma--onda .riga-programma__ora { color: #ff8b96; }

.riga-programma__corpo { min-width: 0; }

.riga-programma__titolo {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spazio-2);
    font-size: .98rem;
    font-weight: 600;
    line-height: 1.35;
}
.riga-programma__titolo a:hover { color: var(--accento-chiaro); }

.riga-programma__sottotitolo {
    color: var(--testo-tenue);
    font-size: .87rem;
    margin-top: 1px;
}

.riga-programma__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spazio-3);
    margin-top: 3px;
    font-size: .79rem;
    color: var(--testo-fioco);
}
.riga-programma__replica { font-style: italic; }

/* --------------------------------------------------- Griglia giornata --- */
.griglia-giornata {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: var(--spazio-4);
    align-items: start;
}

.colonna-canale {
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    overflow: hidden;
}

.colonna-canale__testata {
    padding: var(--spazio-3) var(--spazio-4);
    background: var(--sfondo-alto);
    border-bottom: 1px solid var(--bordo-tenue);
    position: sticky;
    top: 68px;
    z-index: 5;
}
.colonna-canale__testata a { display: flex; align-items: center; gap: var(--spazio-3); }
.colonna-canale__nome { font-weight: 700; font-size: .96rem; }

.elenco-programmi--compatto {
    background: transparent;
    border: 0;
    border-radius: 0;
    max-height: 620px;
    overflow-y: auto;
    scrollbar-width: thin;
}

/* --------------------------------------------------------- Testata canale --- */
.testata-canale {
    display: flex;
    align-items: center;
    gap: var(--spazio-4);
    margin-bottom: var(--spazio-5);
}
.testata-canale .logo-canale { width: 58px; height: 58px; border-radius: 14px; }
.testata-canale__titolo {
    font-size: clamp(1.5rem, 3.4vw, 2.1rem);
    letter-spacing: -.025em;
    font-weight: 800;
}
.testata-canale__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spazio-3);
    color: var(--testo-fioco);
    font-size: .88rem;
    margin-top: 2px;
}

/* -------------------------------------------------------- Elenco canali --- */
.gruppo-canali { margin-bottom: var(--spazio-6); }
.gruppo-canali__titolo {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--testo-fioco);
    margin-bottom: var(--spazio-3);
}

.griglia-canali {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--spazio-3);
}

.pastiglia-canale {
    display: flex;
    align-items: center;
    gap: var(--spazio-3);
    padding: var(--spazio-3);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio-piccolo);
    transition: all .15s ease;
}
.pastiglia-canale:hover {
    border-color: var(--accento);
    background: var(--sfondo-scheda-alto);
}
.pastiglia-canale__nome { font-weight: 600; font-size: .93rem; }
.pastiglia-canale__gruppo {
    margin-left: auto;
    font-size: .74rem;
    color: var(--testo-fioco);
}

/* ------------------------------------------------------ Scheda dettaglio --- */
.briciole {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spazio-2);
    color: var(--testo-fioco);
    font-size: .85rem;
    margin-bottom: var(--spazio-4);
}
.briciole a:hover { color: var(--accento-chiaro); }

.scheda-dettaglio { max-width: 820px; }

.scheda-dettaglio__testata {
    display: flex;
    flex-direction: column;
    gap: var(--spazio-3);
    padding-bottom: var(--spazio-5);
    border-bottom: 1px solid var(--bordo-tenue);
    margin-bottom: var(--spazio-5);
}
.scheda-dettaglio__pastiglie { display: flex; flex-wrap: wrap; gap: 6px; }

.scheda-dettaglio__titolo {
    font-size: clamp(1.7rem, 4vw, 2.5rem);
    line-height: 1.12;
    letter-spacing: -.03em;
    font-weight: 800;
}
.scheda-dettaglio__sottotitolo {
    font-size: 1.05rem;
    color: var(--testo-tenue);
}

.scheda-dettaglio__quando {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spazio-4);
    color: var(--testo-tenue);
    font-size: .93rem;
    font-variant-numeric: tabular-nums;
}
.scheda-dettaglio__quando a {
    display: inline-flex;
    align-items: center;
    gap: var(--spazio-2);
}
.scheda-dettaglio__quando .logo-canale { width: 32px; height: 32px; border-radius: 8px; }
.scheda-dettaglio__quando a:hover strong { color: var(--accento-chiaro); }

.scheda-dettaglio section { margin-bottom: var(--spazio-6); }
.scheda-dettaglio h2 {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--testo-fioco);
    margin-bottom: var(--spazio-3);
}
.scheda-dettaglio__trama p { color: var(--testo-tenue); line-height: 1.65; }

.scheda-tecnica {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--spazio-3);
}
.scheda-tecnica__riga {
    padding: var(--spazio-3);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio-piccolo);
}
.scheda-tecnica dt {
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--testo-fioco);
    margin-bottom: 2px;
}
.scheda-tecnica dd { margin: 0; font-size: .93rem; }

.elenco-repliche {
    display: flex;
    flex-direction: column;
    gap: var(--spazio-2);
}
.elenco-repliche a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spazio-4);
    padding: var(--spazio-3) var(--spazio-4);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio-piccolo);
    transition: border-color .15s ease;
}
.elenco-repliche a:hover { border-color: var(--accento); }
.elenco-repliche__canale { font-weight: 600; font-size: .93rem; }
.elenco-repliche__quando { color: var(--testo-tenue); font-size: .87rem; }

/* ----------------------------------------------------- Risultati ricerca --- */
.elenco-risultati { display: flex; flex-direction: column; gap: var(--spazio-2); }

.risultato__collegamento {
    display: flex;
    gap: var(--spazio-4);
    padding: var(--spazio-4);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    transition: border-color .15s ease, transform .15s ease;
}
.risultato__collegamento:hover {
    border-color: var(--accento);
    transform: translateX(3px);
}

.risultato__quando {
    flex-shrink: 0;
    width: 96px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
/* Stessa regola dei giorni: solo l'iniziale maiuscola */
.risultato__giorno {
    font-size: .78rem;
    font-weight: 600;
    color: var(--testo-fioco);
}
.risultato__giorno::first-letter { text-transform: uppercase; }
.risultato__ora {
    font-size: 1.22rem;
    font-weight: 800;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
    color: var(--accento-chiaro);
}

.risultato__titolo { font-size: 1.03rem; font-weight: 700; line-height: 1.3; }
.risultato__sottotitolo { color: var(--testo-tenue); font-size: .88rem; margin-top: 1px; }
.risultato__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spazio-3);
    margin-top: var(--spazio-2);
    font-size: .8rem;
    color: var(--testo-fioco);
}

/* ---------------------------------------------------------- Stato vuoto --- */
.stato-vuoto {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--spazio-3);
    padding: var(--spazio-8) var(--spazio-5);
    background: var(--sfondo-scheda);
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
    color: var(--testo-fioco);
}
.stato-vuoto__titolo { font-size: 1.22rem; font-weight: 700; color: var(--testo); }
.stato-vuoto__messaggio { color: var(--testo-tenue); max-width: 46ch; }

.pulsante {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spazio-3) var(--spazio-5);
    background: var(--accento);
    color: #fff;
    border: 0;
    border-radius: var(--raggio-piccolo);
    font: inherit;
    font-size: .93rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, transform .15s ease;
}
.pulsante:hover { background: var(--accento-chiaro); transform: translateY(-1px); }

/* -------------------------------------------------------------- Richiamo --- */
.richiamo {
    margin-top: var(--spazio-7);
    padding: var(--spazio-6);
    text-align: center;
    background: linear-gradient(135deg, var(--sfondo-scheda), var(--sfondo-alto));
    border: 1px solid var(--bordo-tenue);
    border-radius: var(--raggio);
}
.richiamo__titolo {
    font-size: 1.32rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-bottom: var(--spazio-2);
}
.richiamo__testo { color: var(--testo-tenue); margin-bottom: var(--spazio-4); }

/* --------------------------------------------------------- Pagine errore --- */
.pagina-errore { padding-top: var(--spazio-6); }
.pagina-errore__codice {
    text-align: center;
    font-size: clamp(3.4rem, 12vw, 6rem);
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1;
    color: var(--sfondo-scheda-alto);
    margin-bottom: calc(var(--spazio-5) * -1);
}

/* --------------------------------------------------------------- Piede --- */
.piede {
    border-top: 1px solid var(--bordo-tenue);
    background: var(--sfondo-alto);
    padding-top: var(--spazio-7);
    margin-top: var(--spazio-8);
}
.piede__interno {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: var(--spazio-6);
    padding-bottom: var(--spazio-6);
}
.piede__colonna { display: flex; flex-direction: column; gap: var(--spazio-2); }
.piede__marchio { font-size: 1.05rem; font-weight: 500; }
.piede__marchio strong { font-weight: 800; }
.piede__titolo {
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--testo-fioco);
    margin-bottom: var(--spazio-1);
}
.piede__colonna a { color: var(--testo-tenue); font-size: .9rem; }
.piede__colonna a:hover { color: var(--accento-chiaro); }
.piede__nota { color: var(--testo-fioco); font-size: .87rem; line-height: 1.5; }
.piede__nota--piccola { font-size: .79rem; margin-top: var(--spazio-2); }

.piede__coda {
    padding-block: var(--spazio-4);
    border-top: 1px solid var(--bordo-tenue);
    color: var(--testo-fioco);
    font-size: .83rem;
}

/* ------------------------------------------------------------ Responsive --- */
@media (max-width: 900px) {
    .intestazione__interno { flex-wrap: wrap; gap: var(--spazio-3); min-height: auto; padding-block: var(--spazio-3); }
    .navigazione { order: 3; width: 100%; overflow-x: auto; margin-right: 0; }
    .ricerca { margin-left: auto; }
    .ricerca input { width: 170px; }
    .colonna-canale__testata { position: static; }
}

@media (max-width: 640px) {
    .contenitore { padding-inline: var(--spazio-4); }
    main.contenitore { padding-block: var(--spazio-5) var(--spazio-7); }

    .griglia-onda,
    .griglia-serata,
    .griglia-giornata { grid-template-columns: 1fr; }

    .barra-strumenti { flex-direction: column; align-items: stretch; }
    .commutatore { justify-content: center; }

    .risultato__collegamento { flex-direction: column; gap: var(--spazio-2); }
    .risultato__quando { flex-direction: row; align-items: baseline; gap: var(--spazio-3); width: auto; }

    .testata-canale { flex-direction: column; align-items: flex-start; }
    .scheda-tecnica { grid-template-columns: 1fr; }
}

/* Rispetta la preferenza di sistema per il movimento ridotto */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
