/* SCRIPTUM FATI — il costruttore di personaggi, e la carta Personaggio. */

.creazione { display: grid; grid-template-columns: 1fr 1fr 500px; gap: 22px; align-items: start; }
.creazione > .pannello { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
.creazione .pannello { margin: 0; }
.creazione h2 { font-size: 15px; letter-spacing: .9px; }
.creazione .passo-nota { font-family: var(--dati); font-size: 9.5px; color: var(--inchiostro-2); margin: 4px 0 14px; }

.etichetta-campo {
  display: block; font-family: var(--dati); font-size: 9px; font-weight: 700;
  letter-spacing: 1.2px; color: var(--inchiostro-2); margin-bottom: 5px;
}
.campo-nome {
  width: 100%; padding: 10px 12px; margin-bottom: 6px;
  font-family: var(--display); font-size: 20px; font-weight: 500; letter-spacing: .04em;
  border: 1px solid var(--linea); border-radius: 5px; background: #FFF;
}
.campo-nome:focus { outline: 2px solid var(--inchiostro); outline-offset: -1px; }
.campo-nome::placeholder { color: var(--inchiostro-2); opacity: .6; font-weight: 400; }

/* anche il nome sulla carta si scrive: è il posto dove lo si guarda */
.carta-pg h3[contenteditable] { outline: none; min-width: 4ch; cursor: text; }
.carta-pg h3[contenteditable]:empty::before {
  content: attr(data-vuoto); color: var(--inchiostro-2); opacity: .45;
}
.carta-pg h3[contenteditable]:focus { background: var(--carta); border-radius: 4px; }

/* --- caratteristiche ------------------------------------------------------ */
.caratteristica { display: grid; grid-template-columns: 68px 32px 44px 32px 1fr; align-items: center; gap: 8px; margin: 14px 0; }
.caratteristica b { font-family: var(--dati); font-size: 11px; letter-spacing: 1.1px; color: var(--inchiostro-2); }
.caratteristica .valore { font-family: var(--display); font-size: 26px; font-weight: 600; text-align: center; }
.caratteristica .modificatore { font-family: var(--dati); font-size: 11px; font-weight: 700; }
.passo-bottone {
  width: 32px; height: 32px; cursor: pointer; font-family: var(--dati); font-size: 15px; line-height: 1;
  border: 1px solid var(--linea); border-radius: 4px; background: #FFF;
}
.passo-bottone:hover:not(:disabled) { background: var(--carta); }
.passo-bottone:disabled { opacity: .3; cursor: default; }

.spesi { display: flex; justify-content: space-between; align-items: baseline;
         border-top: 1px solid var(--linea); padding-top: 14px; margin-top: 8px; }
.spesi span:first-child { font-family: var(--dati); font-size: 10px; font-weight: 700; letter-spacing: 1px; color: var(--inchiostro-2); }
.spesi b { font-family: var(--display); font-size: 18px; font-weight: 600; }
.spesi b.male { color: var(--allarme); }
.spesi b.bene { color: var(--ok); }

.derivati { display: flex; gap: 24px; margin-top: 14px; padding: 14px 16px;
            border: 1px solid var(--linea); border-radius: 6px; background: #FFF; }
.derivati div b { display: block; font-family: var(--display); font-size: 19px; font-weight: 600; }
.derivati div span { font-family: var(--dati); font-size: 8.5px; letter-spacing: 1px; color: var(--inchiostro-2); }

/* --- stirpe, talenti, backstory ------------------------------------------ */
.scelta { width: 100%; padding: 9px 11px; font-family: var(--display); font-size: 15px;
          border: 1px solid var(--linea); border-radius: 5px; background: #FFF; }
.descrizione { font-family: var(--testo); font-size: 12px; color: var(--inchiostro-2); margin: 8px 0 0; }

.talenti { list-style: none; margin: 8px 0 0; padding: 0; max-height: 46vh; overflow-y: auto; }
.talenti li { border: 1px solid var(--linea); border-radius: 6px; padding: 10px 12px; margin-bottom: 8px; cursor: pointer; background: #FFF; }
.talenti li:hover { background: var(--carta); }
.talenti li.scelto { border: 2px solid var(--inchiostro); }
.talenti .riga { display: flex; align-items: baseline; gap: 10px; }
.talenti .nome-t { font-family: var(--display); font-size: 14px; font-weight: 500; letter-spacing: .04em; }
.talenti .forma-t { font-family: var(--dati); font-size: 9px; font-weight: 700; color: var(--inchiostro-2); }
.talenti .affine { margin-left: auto; font-family: var(--dati); font-size: 9px;
                   border: 1px solid var(--inchiostro-2); color: var(--inchiostro-2);
                   border-radius: 9px; padding: 1px 8px; }
.talenti .testo-t { font-family: var(--testo); font-size: 11.5px; margin: 5px 0 0; }

/* le backstory si leggono come i talenti: stessa lista, stessa scelta.
   Le descrizioni sono lunghe, quindi la lista scorre come quella dei talenti
   invece di allungare la colonna di mille pixel. */
.backstorie { max-height: 34vh; }

/* --- la carta Personaggio -------------------------------------------------- */
.carta-pg {
  background: #FFF; border: 3px solid var(--inchiostro); border-radius: 12px;
  padding: 22px 24px; position: sticky; top: 16px;
}
.carta-pg .capo { display: flex; gap: 18px; align-items: flex-start; }
.carta-pg .foto {
  width: 132px; height: 132px; flex: none; border-radius: 8px;
  border: 1px dashed var(--linea); background: var(--carta);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  font-family: var(--dati); font-size: 10px; letter-spacing: 1.2px; color: var(--inchiostro-2);
  background-size: cover; background-position: center; overflow: hidden; text-align: center;
}
.carta-pg .foto.piena { border-style: solid; color: transparent; }
.carta-pg h3 { font-family: var(--display); font-size: 25px; font-weight: 500; letter-spacing: .04em; line-height: 1.05; }
.carta-pg .origine { font-family: var(--dati); font-size: 11px; color: var(--inchiostro-2); margin: 6px 0 12px; }
.carta-pg .grado-riga { display: flex; align-items: center; gap: 10px; }
.carta-pg .grado-riga span { font-family: var(--dati); font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.carta-pg .pellicola-grado { display: flex; gap: 2px; border: 1px solid var(--inchiostro);
                             border-radius: 2px; padding: 2px; }
.carta-pg .pellicola-grado i { width: 22px; height: 9px; border: 1px solid var(--inchiostro);
                               border-radius: 1.5px; opacity: .35; display: block; }
.carta-pg .pellicola-grado i.acceso { background: var(--inchiostro); opacity: 1; }

.carta-pg hr { border: 0; border-top: 1px solid var(--linea); margin: 16px 0; }
.carta-pg .tre { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.carta-pg .tre b { font-family: var(--display); font-size: 28px; font-weight: 600; }
.carta-pg .tre em { font-family: var(--dati); font-size: 12px; font-style: normal; font-weight: 700; color: var(--inchiostro-2); margin-left: 6px; }
.carta-pg .tre span { display: block; font-family: var(--dati); font-size: 9px; letter-spacing: 1px; color: var(--inchiostro-2); }
.carta-pg .tre.piccoli b { font-size: 18px; }
.carta-pg .talento-carta b { font-family: var(--dati); font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.carta-pg .talento-carta p { font-family: var(--testo); font-size: 12px; margin: 5px 0 0; }
.carta-pg .vuoto-carta { font-family: var(--testo); font-size: 12px; color: var(--inchiostro-2); font-style: italic; }
.carta-pg .marcatori { border: 1px dashed var(--linea); border-radius: 6px; padding: 14px;
                       text-align: center; font-family: var(--dati); font-size: 10px; color: var(--inchiostro-2); }
