:root{--rosso:#c81e30;--blu:#1c5ce0;--fondo:#f3f4f7;--carta:#fff;--testo:#16181f;--tenue:#5b6170;--bordo:#dfe2e8;--ok:#13804a;--err:#b3261e}
@media (prefers-color-scheme: dark){:root{--fondo:#121419;--carta:#1c1f26;--testo:#eceef3;--tenue:#a3a9b7;--bordo:#2d313b}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--fondo);color:var(--testo)}
a{color:var(--blu)}
header{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 20px;background:var(--carta);border-bottom:3px solid;border-image:linear-gradient(90deg,var(--rosso),var(--blu)) 1}
header b{font-size:17px;letter-spacing:.5px}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav a{padding:7px 12px;border-radius:8px;text-decoration:none;color:var(--testo)}
nav a.on{background:var(--testo);color:var(--carta)}
header .esci{margin-left:auto;color:var(--tenue)}
main{max-width:1180px;margin:0 auto;padding:20px}
h1{font-size:22px;margin:4px 0 16px}
h2{font-size:16px;margin:0 0 12px}
.griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}
.box{background:var(--carta);border:1px solid var(--bordo);border-radius:12px;padding:16px}
.riga{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.riga+.riga{margin-top:10px}
input[type=text],input[type=number],input[type=password],select{font:inherit;padding:9px 10px;border:1px solid var(--bordo);border-radius:8px;background:var(--carta);color:var(--testo);min-width:0}
input[type=file]{font:inherit;max-width:100%}
button,.btn{font:inherit;padding:9px 14px;border-radius:8px;border:1px solid var(--bordo);background:var(--carta);color:var(--testo);cursor:pointer;text-decoration:none;display:inline-block}
button.primario{background:var(--testo);color:var(--carta);border-color:var(--testo)}
button.attivo{background:var(--ok);color:#fff;border-color:var(--ok)}
button.spento{background:var(--err);color:#fff;border-color:var(--err)}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--blu);outline-offset:2px}
.tenue{color:var(--tenue);font-size:13px}
.stato{padding:10px 12px;border-radius:8px;background:var(--fondo);font-size:14px}
.stato.err{background:rgba(179,38,30,.12);color:var(--err)}
.anteprima{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:repeating-linear-gradient(90deg,#7d5a38 0 46px,#86623f 46px 92px)}
.anteprima iframe{position:absolute;left:0;top:0;width:1920px;height:1080px;border:0;transform-origin:0 0}
.registro{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto;font-size:14px}
.registro li{padding:6px 0;border-bottom:1px solid var(--bordo);display:flex;gap:10px}
.registro .ora{color:var(--tenue);font-variant-numeric:tabular-nums;flex:none}
.registro .saltata{color:var(--tenue);text-decoration:line-through}
.registro .correzione{color:#9a6700}
table{width:100%;border-collapse:collapse}
td,th{padding:8px 6px;border-bottom:1px solid var(--bordo);text-align:left;vertical-align:middle}
.tab-scroll{overflow-x:auto}
.mini{width:56px;height:56px;object-fit:cover;border-radius:8px;background:var(--fondo);display:block}
.logo-grande{width:110px;height:110px;object-fit:contain;background:#fff;border-radius:10px;border:1px solid var(--bordo)}
.segnaposto{width:56px;height:56px;border-radius:8px;border:2px dashed var(--bordo);display:flex;align-items:center;justify-content:center;color:var(--tenue);font-size:12px}
.copia{font-family:ui-monospace,monospace;font-size:13px;word-break:break-all;background:var(--fondo);padding:8px;border-radius:8px}
.login{max-width:360px;margin:12vh auto}
label.campo{display:flex;flex-direction:column;gap:4px;font-size:14px}
