:root{--bg:#f6f7fb;--card:#fff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;--accent:#1f4f8f;--danger:#b42318;--ok:#067647;--warn:#b54708}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;line-height:1.45}.topbar{background:#111827;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;position:sticky;top:0}.brand{display:flex;gap:.7rem;align-items:center;font-weight:700}.brand-mark{background:#fff;color:#111827;border-radius:.45rem;padding:.18rem .42rem}.nav{display:flex;flex-wrap:wrap;gap:.3rem}.nav a{color:#fff;text-decoration:none;padding:.45rem .6rem;border-radius:.4rem}.nav a:hover{background:#374151}.container{max-width:1180px;margin:1.5rem auto;padding:0 1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:.85rem;padding:1.2rem;margin-bottom:1rem;box-shadow:0 1px 2px rgba(0,0,0,.03)}h1,h2,h3{margin-top:0}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.metric{padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.metric strong{display:block;font-size:2rem}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.btn,button{display:inline-block;border:0;background:var(--accent);color:#fff;text-decoration:none;padding:.65rem .9rem;border-radius:.55rem;cursor:pointer;font-weight:600}.btn.secondary{background:#4b5563}.btn.danger{background:var(--danger)}button:hover,.btn:hover{filter:brightness(.95)}label{display:block;font-weight:650;margin:.75rem 0 .25rem}input,select,textarea{width:100%;padding:.65rem .7rem;border:1px solid #cbd5e1;border-radius:.55rem;background:#fff;font:inherit}textarea{min-height:92px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem 1rem}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.65rem;vertical-align:top}th{font-size:.9rem;color:#374151;background:#f9fafb}.badge{display:inline-block;border-radius:999px;padding:.2rem .55rem;background:#eef2ff;color:#3730a3;font-size:.82rem;font-weight:700}.badge.ok{background:#ecfdf3;color:var(--ok)}.badge.warn{background:#fffaeb;color:var(--warn)}.badge.danger{background:#fef3f2;color:var(--danger)}.flash{padding:.8rem 1rem;border-radius:.65rem;margin-bottom:1rem}.flash.success{background:#ecfdf3;color:#05603a}.flash.error{background:#fef3f2;color:#912018}.flash.warning{background:#fffaeb;color:#93370d}.flash.info{background:#eff8ff;color:#175cd3}.footer{color:var(--muted);text-align:center;padding:1.5rem}.login{max-width:460px;margin:4rem auto}.help{font-size:.9rem;color:var(--muted)}@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column}.nav a{padding:.35rem .45rem}.container{margin:1rem auto}th,td{font-size:.9rem}}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem 1rem}.detail-grid>div{border:1px solid var(--line);border-radius:.65rem;padding:.75rem;background:#fff}.detail-grid span{display:block}.detail-grid strong{display:block;margin-top:.15rem}
.requirements{border:1px solid var(--line);border-radius:.65rem;background:#f9fafb;padding:.8rem;margin:.7rem 0}.requirements ul{margin:.4rem 0 0 1.1rem;padding:0}.requirements li{margin:.25rem 0}code{background:#f3f4f6;border:1px solid var(--line);border-radius:.35rem;padding:.05rem .25rem}


/* V0.5a - leggibilità menu tipo documento */
.document-upload-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:end}
.document-upload-grid .doc-type-field{grid-column:1 / -1}
.doc-type-select{width:100%;min-width:100%;font-size:1rem}
.doc-type-field .help{margin:.35rem 0 0}
@media(min-width:900px){.document-upload-grid{grid-template-columns:1fr 1fr}.document-upload-grid .doc-type-field{grid-column:1 / -1}}

/* V0.5b - tipo documento senza menu a tendina nativo: evita testo troncato */
.doc-type-radio-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.55rem;margin-top:.35rem}
.doc-type-option{display:flex;align-items:flex-start;gap:.65rem;border:1px solid #cbd5e1;border-radius:.65rem;background:#fff;padding:.7rem .8rem;margin:0;cursor:pointer;min-height:4.2rem}
.doc-type-option:hover{border-color:var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.doc-type-option input{width:auto;min-width:auto;margin:.25rem 0 0 0;flex:0 0 auto}
.doc-type-text{display:block;min-width:0}
.doc-type-code{display:block;font-weight:800;color:#111827;letter-spacing:.01em;overflow-wrap:anywhere}
.doc-type-desc{display:block;color:var(--muted);font-size:.94rem;overflow-wrap:anywhere;white-space:normal}
.doc-type-option:has(input:checked){border-color:var(--accent);background:#eef6ff}
@media(max-width:760px){.doc-type-radio-list{grid-template-columns:1fr}.doc-type-option{min-height:auto}}


/* V0.6 - pannello workflow guidato pratica */
.workflow-card-main{border-color:#dbeafe;background:linear-gradient(180deg,#fff,#fbfdff)}
.workflow-title-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.8rem}
.workflow-progress-summary{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:.35rem .7rem;font-weight:800;white-space:nowrap}
.workflow-timeline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.7rem}
.workflow-step{border:1px solid var(--line);border-radius:.8rem;padding:.85rem;background:#fff;min-height:9rem;position:relative}
.workflow-step-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}
.workflow-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:999px;background:#f3f4f6;color:#374151;font-weight:900}
.workflow-step-status{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.workflow-step strong{display:block;color:#111827;margin-bottom:.15rem}
.workflow-code{display:block;font-size:.82rem;overflow-wrap:anywhere}.workflow-date{display:block;margin-top:.45rem;font-size:.86rem;font-weight:700}.workflow-note{font-size:.86rem;color:var(--muted);margin:.45rem 0 0}
.workflow-done{border-color:#bbf7d0;background:#f0fdf4}.workflow-done .workflow-step-num{background:#dcfce7;color:#067647}.workflow-done .workflow-step-status{color:#067647}
.workflow-current{border-color:#93c5fd;background:#eff6ff;box-shadow:0 0 0 2px rgba(59,130,246,.12)}.workflow-current .workflow-step-num{background:#1f4f8f;color:#fff}.workflow-current .workflow-step-status{color:#1d4ed8}
.workflow-next{border-color:#fed7aa;background:#fff7ed}.workflow-next .workflow-step-num{background:#ffedd5;color:#b54708}.workflow-next .workflow-step-status{color:#b54708}
.workflow-locked{background:#f9fafb;color:#6b7280}.workflow-locked strong{color:#4b5563}
.next-step-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.7rem;margin:.7rem 0 1rem}
.next-step-option{display:flex;gap:.65rem;border:1px solid #cbd5e1;border-radius:.8rem;background:#fff;padding:.8rem;margin:0;cursor:pointer;align-items:flex-start}
.next-step-option:hover{border-color:var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.next-step-option input{width:auto;margin:.25rem 0 0 0;flex:0 0 auto}.next-step-option:has(input:checked){border-color:var(--accent);background:#eef6ff}
.next-step-body{display:block;min-width:0}.next-step-body strong{display:block;font-size:1.05rem}.next-step-kicker{display:block;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.next-step-req-title{display:block;margin-top:.55rem;font-weight:800}.next-step-body ul{margin:.25rem 0 .55rem 1.1rem;padding:0}.next-step-body li{margin:.18rem 0;font-size:.9rem}.req-ok{color:var(--ok)}.req-missing{color:var(--danger);font-weight:700}.req-fill{color:var(--warn);font-weight:700}
.step-active-fields{border:1px solid var(--line);border-radius:.75rem;padding:.75rem;background:#f9fafb;margin-bottom:.75rem}
@media(max-width:760px){.workflow-title-row{display:block}.workflow-progress-summary{display:inline-block;margin-top:.4rem}.next-step-grid,.workflow-timeline-grid{grid-template-columns:1fr}}
