/* I PEZZI COMUNI DELL'INTERFACCIA: uno per tutta la macchina.

   Sta in un foglio suo, non dentro stile.css, perche' qualche pagina - quella
   delle macchine - ha un suo stile completo e prendersi anche quello comune
   le cambierebbe i pulsanti sotto i piedi. Questi pezzi invece hanno nomi
   loro e non toccano niente di chi li ospita.
*/
/* I COLORI CHE I PEZZI USANO, con un valore di partenza.

   Una pagina che ha una tavolozza sua - quella delle macchine - puo' non
   avere tutti questi nomi: li' il verde si chiama --viva, e --acceso non
   esiste. Un colore che non esiste non lascia la regola com'era: la annulla,
   e l'interruttore resta senza fondo e senza pallina. Qui ognuno ha un valore
   di partenza; chi li dichiara dopo, come fa il foglio comune, li sovrascrive
   e vince lui. */
:root{
  --fondo:#f4f3f1; --carta:#fff; --riga:#e0ddd8;
  --inchiostro:#171b1d; --tenue:#6a7075; --fioco:#9aa0a4;
  --acceso:#0b6b58; --male:#a4322c; --nota:#b5710a;
  --ombra:0 1px 2px rgba(0,0,0,.05), 0 4px 14px rgba(0,0,0,.04);
}
@media (prefers-color-scheme: dark){
  :root{
    --fondo:#101416; --carta:#171c1f; --riga:#262d31;
    --inchiostro:#e8ecee; --tenue:#8e979d; --fioco:#5d666c;
    --acceso:#3fd39f; --male:#ff6a5e; --nota:#f0b429;
    --ombra:0 1px 2px rgba(0,0,0,.4);
  }
}

/* ── L'INTERRUTTORE, UNO SOLO PER TUTTA LA MACCHINA ──────────────────────
   Stava scritto in ogni pagina che ne aveva uno - il riquadro di WhatsApp, il
   pannello delle notifiche, il centro - e ogni copia aveva misure sue. Una si
   e' rotta in Safari e le altre no, e nessuno poteva accorgersene guardando la
   pagina giusta. Da qui in avanti si scrive:

       <button class="interruttore acceso"><span class="pista"><i></i></span>
         <span>quello che accende</span></button>

   L'etichetta e' facoltativa.

   SI AZZERANO LE PROPRIETA' UNA PER UNA, non con `all:unset`: quello cancella
   anche le variabili dei colori ereditate, e dentro l'interruttore --fondo,
   --tenue e --acceso smettevano di esistere - la pallina spariva e il bordo
   diventava del colore del testo. Si e' visto nella pagina delle macchine.

   La pallina sta dentro `.pista` e non dentro il pulsante, perche' Safari non
   tratta un <button> come riferimento per cio' che gli sta dentro in
   posizione assoluta - e li' spariva del tutto. */
button.interruttore{appearance:none;-webkit-appearance:none;background:none;
        border:0;margin:0;padding:0;width:auto;min-width:0;box-shadow:none;
        text-transform:none;letter-spacing:normal;font-weight:400;
        font-family:inherit;box-sizing:border-box;display:inline-flex;
        align-items:center;gap:8px;cursor:pointer;line-height:1.3;
        font-size:12px;color:var(--tenue)}
button.interruttore.acceso{color:var(--acceso)}
.interruttore .pista{display:block;box-sizing:border-box;position:relative;
        flex:none;width:40px;height:23px;border-radius:12px;background:var(--fondo);
        border:1px solid color-mix(in srgb,var(--fioco) 45%,var(--riga));
        transition:background .15s,border-color .15s}
.interruttore .pista i{position:absolute;top:2px;left:2px;width:17px;height:17px;
        border-radius:50%;background:var(--tenue);
        transition:left .15s,background .15s}
button.interruttore.acceso .pista{border-color:var(--acceso);
        background:color-mix(in srgb,var(--acceso) 28%,var(--fondo))}
button.interruttore.acceso .pista i{left:19px;background:var(--acceso)}
button.interruttore:disabled{opacity:.45;cursor:default}
button.interruttore:focus-visible{outline:2px solid var(--acceso);outline-offset:2px}
.interruttore.piccolo .pista{width:34px;height:20px}
.interruttore.piccolo .pista i{width:14px;height:14px}
.interruttore.piccolo.acceso .pista i{left:17px}
@media (prefers-reduced-motion:reduce){
  .interruttore .pista,.interruttore .pista i{transition:none}
}

/* ── IL FOGLIO CHE SI APRE SOPRA LA PAGINA ───────────────────────────────
   Su schermo largo un pannello appeso a chi l'ha aperto, sul telefono un
   foglio che sale dal basso. Serve alle notifiche, e a chiunque debba mostrare
   qualcosa senza portare via la pagina sotto. */
.velo{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.35)}
.pannello-su{position:fixed;z-index:1000;box-sizing:border-box;
        width:min(420px,calc(100vw - 24px));max-height:min(80vh,640px);
        overflow-y:auto;background:var(--carta);color:var(--inchiostro);
        border:1px solid var(--riga);border-radius:12px;
        padding:16px 18px 10px;box-shadow:0 18px 50px rgba(0,0,0,.4);
        font-size:13px;text-align:left}
@media(max-width:600px){
  .pannello-su{left:0!important;right:0!important;top:auto!important;bottom:0;
        width:auto;max-height:85vh;border-radius:16px 16px 0 0;
        padding:18px 18px calc(14px + env(safe-area-inset-bottom,0px))}
}
.pannello-su .testa-su{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pannello-su .titolo-su{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
        color:var(--tenue);font-weight:600;flex:1}
.pannello-su button.chiudi-su{appearance:none;-webkit-appearance:none;
        background:none;border:0;margin:0;width:auto;min-width:0;box-shadow:none;
        font-family:inherit;font-weight:400;letter-spacing:normal;
        box-sizing:border-box;cursor:pointer;padding:2px 10px;font-size:18px;
        line-height:1.2;color:var(--fioco);border-radius:7px}
.pannello-su button.chiudi-su:hover{color:var(--inchiostro)}

/* ── IL TELAIO DI UNA PAGINA ─────────────────────────────────────────────
   La cornice e' la stessa dappertutto: il foglio, la riga in alto col nome e
   il ritorno a casa, i titoletti delle schede, le schede. Era riscritta in
   sette pagine, ognuna con un pixel diverso, e non c'era un posto in cui
   cambiarla. Da qui in avanti una pagina dichiara solo cio' che la distingue
   davvero - quanto e' larga, per esempio. */
.foglio{margin:0 auto;padding:18px 16px 44px}
.foglio.stretto{max-width:340px}
.foglio.medio{max-width:820px}
.foglio.largo{max-width:1120px}
header{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;
       min-width:0;margin-bottom:18px}
header h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header > .sp{margin-left:auto}
h1{margin:0;font-size:16px;letter-spacing:.14em;font-weight:650;
   text-transform:uppercase;line-height:1.35;display:flex;align-items:center;gap:9px}
.a-casa{font-size:12px;letter-spacing:.07em;text-transform:uppercase;
        color:var(--tenue);text-decoration:none;padding:3px 12px 3px 0;
        border-right:1px solid var(--riga);white-space:nowrap;line-height:1.3;
        flex:none}
.a-casa::before{content:"\2039";margin-right:5px;font-size:15px;line-height:1}
.a-casa:hover{color:var(--inchiostro)}
@media(max-width:520px){ h1{font-size:14px;letter-spacing:.08em} header{gap:9px} }

.scheda{background:var(--carta);border:1px solid var(--riga);border-radius:12px;
        padding:20px;box-shadow:var(--ombra);margin-bottom:18px}
.scheda:last-child{margin-bottom:0}
@media(max-width:520px){ .scheda{padding:16px} }
/* IL TITOLETTO DI UNA SCHEDA. E' una riga, non una parola: accanto al nome ci
   stanno il livello che pretende e il collegamento per andarci. */
.titolo-sez{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
            font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
            color:var(--tenue);font-weight:600;margin:0 0 12px;line-height:1.3}
.titolo-sez a{margin-left:auto;font-size:11px;letter-spacing:.03em;
              text-transform:none}
/* L'ETICHETTA DEL LIVELLO VA A DESTRA, in fondo alla riga, e il collegamento
   la segue: due spinte a destra si dividerebbero lo spazio e l'etichetta
   finirebbe in mezzo, percio' spinge solo la prima delle due. */
/* L'ETICHETTA DEL LIVELLO va SEMPRE a destra, in fondo alla riga: nei titoli
   di sezione e nelle teste dei widget (Cervello, Vosk, Voice). */
.titolo-sez .liv,.ce-testa .liv,.tr-testa .liv,.vo-testa .liv{margin-left:auto}
.titolo-sez .liv ~ a{margin-left:0}
/* Anche sulle mattonelle delle applicazioni l'etichetta va in fondo alla riga
   del nome: e' la stessa informazione, e deve stare sempre nello stesso
   posto. */
.app .nome .liv{margin-left:auto}

/* Il polso: un pallino che dice come sta qualcosa. */
.polso{width:8px;height:8px;border-radius:50%;background:var(--fioco);
       display:inline-block;flex:none;vertical-align:middle}
.polso.si{background:var(--acceso)}
.polso.no{background:var(--male)}
.polso.forse,.polso.nota{background:var(--nota)}

/* Le frasi di contorno: quello che spiega, quello che e' vuoto, la nota in
   fondo. Nomi diversi per tre pesi diversi, non tre copie della stessa cosa. */
.detto{color:var(--tenue);font-size:13px;line-height:1.55;margin:0}
.aiuto{color:var(--fioco);font-size:11.5px;line-height:1.55;margin-top:7px}
.vuoto{color:var(--fioco);font-size:12.5px}
.nota{margin-top:18px;color:var(--fioco);font-size:12px;line-height:1.6}

/* Le voci di un elenco nome-valore, come nei pannelli di casa. */
dl{margin:0}
.voce{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;
      align-items:baseline;padding:9px 0;border-bottom:1px solid var(--riga)}
.voce:last-child{border-bottom:none}
.voce dt{color:var(--tenue);font-size:12px;white-space:nowrap;margin:0}
.voce dd{margin:0;text-align:right;overflow-wrap:anywhere}
.voce dd.mono{font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}

/* Il riassunto di un pannello: pallino piu' una riga. */
.riassunto{display:flex;align-items:center;gap:8px;font-size:13px;
           color:var(--tenue);margin-bottom:10px}
.riassunto .polso{width:7px;height:7px}
.riassunto.bene{color:var(--acceso)}
.riassunto.nota{color:var(--nota)}
.riassunto.male{color:var(--male)}
