/* calabresi.pro — portale. Manrope, neutri freddi, un solo accento d'inchiostro. Prima il telefono. */
:root{--bg:#F7F7F5;--card:#FFFFFF;--ink:#15171C;--ink-2:#2B2E36;--muted:#565B69;--line:#E3E4E8;--line-2:#CDD0D6;
  --bad:#B3261E;--bad-soft:#FBEAE8;--good:#1F5E3B;--good-soft:#E6F0EA;--focus:#15171C;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#121317;--card:#1B1D22;--ink:#ECEDEF;--ink-2:#D4D6DB;--muted:#A3A7B2;
  --line:#2C2F36;--line-2:#3A3E46;--bad:#F2B8B5;--bad-soft:#3A1F1E;--good:#A8D5B9;--good-soft:#1C2E24;--focus:#ECEDEF;color-scheme:dark}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Manrope,system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--ink);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
main{max-width:560px;min-height:100vh;margin:0 auto;display:flex;flex-direction:column;gap:28px;
  padding:56px max(20px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
main.largo{max-width:920px}
header{display:flex;flex-direction:column;gap:10px}
.barra{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--muted)}
.barra .sito{font-weight:700;color:var(--ink);text-decoration:none;margin-right:auto}
.barra a{color:var(--muted)}
.eyebrow{font-size:13px;font-weight:600;color:var(--muted)}
h1{margin:0;font-size:40px;line-height:1.05;font-weight:800;letter-spacing:-.03em;text-wrap:balance}
h2{margin:0;font-size:20px;font-weight:800;letter-spacing:-.01em}
p{margin:0;color:var(--muted)}
.nota{font-size:14px;color:var(--muted)}
form{margin:0}
.modulo{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
input[type=email],input[type=password],input[type=text]{font:inherit;font-size:17px;padding:12px 14px;border-radius:12px;
  border:1px solid var(--line-2);background:var(--card);color:var(--ink);width:100%;min-height:48px}
input.codice{font-size:28px;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums}
.spunta{flex-direction:row;align-items:center;gap:10px;font-weight:500}
.spunta input{width:20px;height:20px;accent-color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:12px;
  border:1px solid var(--ink);background:var(--ink);color:var(--bg);font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.btn.chiaro{background:var(--card);color:var(--ink);border-color:var(--line-2)}
.btn.piccolo{min-height:36px;padding:0 12px;font-size:14px;border-radius:9px}
.btn.pericolo{background:var(--card);color:var(--bad);border-color:var(--line-2)}
.link{background:none;border:0;padding:0;font:inherit;color:var(--muted);text-decoration:underline;cursor:pointer}
.avviso{padding:12px 14px;border-radius:12px;font-size:15px;background:var(--card);border:1px solid var(--line)}
.avviso.errore{background:var(--bad-soft);border-color:transparent;color:var(--bad)}
.avviso.ok{background:var(--good-soft);border-color:transparent;color:var(--good)}
nav.apps{display:flex;flex-direction:column;gap:12px}
a.app{display:flex;align-items:center;gap:14px;padding:16px;background:var(--card);border:1px solid var(--line);
  border-radius:16px;color:var(--ink);text-decoration:none;min-height:76px}
a.app:hover{border-color:var(--line-2)}
a.app img{width:46px;height:46px;border-radius:13px;flex:none;display:block}
.testo{display:flex;flex-direction:column;gap:2px;flex-grow:1;min-width:0}
.testo b{font-size:17px;font-weight:700}
.testo span{font-size:14px;line-height:1.35;color:var(--muted)}
.freccia{flex:none;color:var(--muted)}
footer{margin-top:auto;font-size:13px;color:var(--muted);display:flex;gap:16px;align-items:center}
/* Amministrazione */
section.blocco{display:flex;flex-direction:column;gap:14px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.righe{display:flex;flex-direction:column}
.riga{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.riga:first-child{border-top:0}
.riga .chi{display:flex;flex-direction:column;min-width:0;flex:1 1 220px}
.riga .chi b{overflow-wrap:anywhere}
.riga .chi span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.azioni{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}
.chip.si{background:var(--good-soft);border-color:transparent;color:var(--good)}
.permessi{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;flex-basis:100%}
.permessi label{flex-direction:row;align-items:center;gap:6px;font-weight:500}
.in-linea{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.in-linea label{flex:1 1 200px}
.chiave{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.chiave:first-child{border-top:0}
.chiave .stato{font-size:13px;color:var(--muted)}
.chiave form.salva{display:flex;gap:8px}
.chiave form.salva input{flex:1;min-width:0;font-size:15px;min-height:40px;padding:8px 12px}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.registro{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
