:root{
  --paper:#EDEFF0;--card:#fff;--card-2:#F6F8F8;--ink:#11202A;--muted:#56656F;--rule:#D2D9DD;--rule-soft:#E2E7EA;
  --blue:#1B4E68;--blue-soft:#E3EDF2;--oxide:#9C3A22;--oxide-soft:#F6E8E3;--green:#2C6549;--green-soft:#E4EEE8;--amber:#8A6A12;--amber-soft:#F5EDD6;
  --serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}
a{color:var(--blue)}
header.top{background:var(--ink);color:#fff;display:flex;align-items:center;gap:22px;padding:10px 22px;flex-wrap:wrap}
header.top .brand{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:#fff;text-decoration:none;letter-spacing:-.01em}
header.top .brand em{color:#9fc7dc;font-style:italic;font-weight:400}
header.top nav a{color:#cfdbe3;text-decoration:none;margin-right:16px;font-size:.92rem}
header.top nav a:hover{color:#fff}
header.top .who{margin-left:auto;font-size:.85rem;color:#9fb0bb;display:flex;gap:12px;align-items:center}
header.top .who form{margin:0}
header.top .who button{background:none;border:1px solid #4a5d69;color:#cfdbe3;padding:3px 9px;font-size:.8rem;cursor:pointer}
header.top .prov{font-family:var(--mono);font-size:.72rem;padding:2px 7px;border:1px solid #4a5d69;color:#9fb0bb}
header.top .prov.mock{border-color:var(--oxide);color:#e8a58f}
main{max-width:1180px;margin:0 auto;padding:22px 22px 70px}
h1{font-family:var(--serif);font-size:1.9rem;letter-spacing:-.015em;margin:8px 0 6px;line-height:1.15}
h2{font-family:var(--serif);font-size:1.3rem;margin:26px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule)}
h3{font-size:1rem;margin:16px 0 8px}
.sub{color:var(--muted);margin:0 0 18px}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:4px}
.crumbs a{color:var(--muted)}
.flash{padding:10px 14px;margin:0 0 16px;border-left:3px solid var(--green);background:var(--green-soft);font-size:.93rem}
.flash.err{border-color:var(--oxide);background:var(--oxide-soft)}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--rule);padding:16px 18px}
.card h2{margin-top:0;font-size:1.1rem;border:none;padding:0}
.card.soft{background:var(--card-2)}
table.t{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--card)}
table.t th{text-align:left;font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--ink)}
table.t td{padding:9px 10px;border-bottom:1px solid var(--rule-soft);vertical-align:top}
table.t tr:last-child td{border-bottom:none}
.mono{font-family:var(--mono);font-size:.82rem}
.small{font-size:.85rem;color:var(--muted)}
.pill{display:inline-block;font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;padding:2px 8px;border:1px solid var(--rule);color:var(--muted);white-space:nowrap}
.pill.ok{background:var(--green-soft);color:var(--green);border-color:transparent}
.pill.run{background:var(--amber-soft);color:var(--amber);border-color:transparent}
.pill.err{background:var(--oxide-soft);color:var(--oxide);border-color:transparent}
.pill.blue{background:var(--blue-soft);color:var(--blue);border-color:transparent}
.pill.dark{background:var(--ink);color:#fff;border-color:transparent}
button,.btn{font:inherit;font-size:.9rem;padding:7px 14px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;display:inline-block;line-height:1.3}
button.sec,.btn.sec{background:#fff;color:var(--ink)}
button.warn,.btn.warn{background:var(--oxide);border-color:var(--oxide)}
button.sm,.btn.sm{padding:4px 10px;font-size:.8rem}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{font:inherit;font-size:.92rem;padding:7px 9px;border:1px solid var(--rule);background:#fff;color:var(--ink);width:100%}
textarea{min-height:90px;resize:vertical}
label{display:block;font-size:.8rem;color:var(--muted);margin:10px 0 4px;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase}
form.inline{display:inline}
.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.row>*{flex:1;min-width:140px}
.row>.fix{flex:0 0 auto;min-width:0}
.steps{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.step{background:var(--card);display:grid;grid-template-columns:60px 1fr auto;gap:14px;align-items:center;padding:12px 16px}
.step .code{font-family:var(--mono);font-size:.85rem;color:var(--oxide)}
.step .name{font-weight:600}
.step .meta{font-size:.8rem;color:var(--muted)}
.step.locked{opacity:.6}
.step .actions{display:flex;gap:8px;align-items:center}
.cp{border-left:3px solid var(--oxide);background:var(--oxide-soft);padding:12px 16px;margin:14px 0}
.cp.ok{border-color:var(--green);background:var(--green-soft)}
.cp b{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:4px}
.doc{display:grid;grid-template-columns:1fr auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule-soft)}
.doc:last-child{border-bottom:none}
.doc .fn{font-weight:600;word-break:break-all}
.doc form.meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.doc form.meta select,.doc form.meta input{width:auto;min-width:120px;padding:4px 7px;font-size:.82rem}
.drop{border:2px dashed var(--rule);padding:22px;text-align:center;color:var(--muted);background:var(--card-2)}
.drop input{width:auto}
.prose{background:var(--card);border:1px solid var(--rule);padding:22px 28px;max-width:none;line-height:1.6}
.prose h1{font-size:1.5rem}.prose h2{font-size:1.15rem;color:var(--blue);margin-top:24px}.prose h3{font-size:1rem}
.prose table{border-collapse:collapse;width:100%;font-size:.88rem;margin:8px 0 14px}
.prose th,.prose td{border:1px solid var(--rule);padding:5px 8px;vertical-align:top}
.prose th{background:var(--blue-soft);text-align:left}
.prose pre{white-space:pre-wrap;font-size:.82rem;background:var(--card-2);padding:10px;border:1px solid var(--rule-soft)}
.cit{font-family:var(--mono);font-size:.74rem;padding:1px 5px;text-decoration:none;border-radius:2px}
.cit.stanza{background:var(--green-soft);color:var(--green)}
.cit.bib{background:var(--blue-soft);color:var(--blue)}
.avvisi{border:1px solid var(--rule);background:var(--card)}
.avviso{padding:9px 14px;border-bottom:1px solid var(--rule-soft);font-size:.88rem;display:grid;grid-template-columns:170px 1fr;gap:12px}
.avviso:last-child{border-bottom:none}
.avviso .k{font-family:var(--mono);font-size:.72rem;color:var(--oxide);letter-spacing:.04em;text-transform:uppercase}
.avviso .v{color:var(--muted)}
.avviso .v b{color:var(--ink)}
/* editor scheda */
.sch-group{background:var(--card);border:1px solid var(--rule);margin-bottom:14px}
.sch-group>summary{cursor:pointer;padding:10px 16px;font-weight:600;font-family:var(--serif);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between}
.sch-group>summary::-webkit-details-marker{display:none}
.sch-group>summary .cnt{font-family:var(--mono);font-size:.72rem;color:var(--muted);font-weight:400}
.sch-body{padding:6px 16px 14px;border-top:1px solid var(--rule-soft)}
.sch-field{display:grid;grid-template-columns:230px 1fr 260px;gap:10px;align-items:start;padding:7px 0;border-bottom:1px solid var(--rule-soft)}
.sch-field:last-child{border-bottom:none}
.sch-field .k{font-size:.82rem;color:var(--muted);padding-top:8px;word-break:break-word}
.sch-field textarea{min-height:36px;padding:6px 8px;font-size:.9rem}
.sch-field input.fonte{font-family:var(--mono);font-size:.76rem}
.sch-field .fl{font-size:.74rem;margin-top:3px}
.sch-field .nr{border-color:var(--oxide);background:var(--oxide-soft)}
.sch-item{border:1px solid var(--rule-soft);padding:6px 12px;margin:8px 0;background:var(--card-2)}
.sch-item .ih{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.sch-add{margin:6px 0 4px}
.disc{border-left:3px solid var(--oxide)}
.sticky{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--ink);padding:10px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:900px){.two{grid-template-columns:1fr}.sch-field{grid-template-columns:1fr}.step{grid-template-columns:50px 1fr}.step .actions{grid-column:1/-1}}
.page-anchor{font-family:var(--mono);font-size:.72rem;color:var(--oxide);margin:18px 0 4px;border-top:1px dashed var(--rule);padding-top:6px}
pre.txt{white-space:pre-wrap;font-family:var(--sans);font-size:.9rem;margin:0}
.score{display:grid;grid-template-columns:1fr;gap:8px}
.score .c{display:grid;grid-template-columns:150px 1fr 120px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--rule-soft)}
.score .c .h{font-size:.78rem;color:var(--muted)}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi .k{background:var(--card);border:1px solid var(--rule);padding:12px 14px}
.kpi .k .n{font-family:var(--serif);font-size:1.6rem;line-height:1}
.kpi .k .l{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.login{max-width:420px;margin:60px auto}
.login .card{padding:26px}
.login h1{margin-top:0}
