:root{--bg: #10141a;--panel: #171d26;--panel-2: #1e2531;--border: #2a3342;--text: #e6ebf2;--muted: #98a4b6;--accent: #5aa9e6;--ok: #2f9e44;--ok-dark: #1c6b2e;--warn: #e8a33d;--action: #e8743d;--danger: #e05252;--unknown: #6b7686;--identifier: #e05252;--special: #b25ad6;--financial: #e8a33d;--indirect: #5aa9e6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:.45rem .9rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#08111c;font-weight:600}button.danger{background:var(--danger);border-color:var(--danger);color:#1a0808;font-weight:600}.zone-zero{margin-top:.6rem;padding:.6rem .8rem;border:1px solid var(--danger);border-radius:8px;background:color-mix(in srgb,var(--danger) 8%,transparent)}.zone-zero pre{margin:.5rem 0}button.link{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-family:inherit;font-size:inherit}button.link:hover:not(:disabled){color:var(--text)}input,select,textarea{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;width:100%}a{color:var(--accent)}.app{min-height:100vh;display:flex;flex-direction:column}header.topbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}header.topbar .brand{font-weight:700;letter-spacing:.02em;background:transparent;border:none;padding:.2rem .1rem;color:var(--text);font-size:1rem}header.topbar .brand:hover{color:var(--accent);border-color:transparent}header.topbar nav{display:flex;gap:.35rem;flex-wrap:wrap}header.topbar nav button.active{background:var(--accent);color:#08111c;border-color:var(--accent)}header.topbar nav.roles button.role{background:transparent;border-color:transparent;color:var(--muted);font-size:.9rem;padding:.35rem .6rem}header.topbar nav.roles button.role:hover:not(:disabled){color:var(--text);border-color:var(--border)}header.topbar nav.roles button.role.active{color:var(--text);background:var(--panel-2);border-color:var(--border);font-weight:600}header.topbar nav.areas{padding-left:.8rem;border-left:1px solid var(--border)}@media (max-width: 900px){header.topbar nav.areas{padding-left:0;border-left:none}}.statusbar{margin-left:auto;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}main{padding:1.2rem;flex:1;max-width:1400px;width:100%;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem}.panel h2{margin:0 0 .75rem;font-size:1.05rem}.panel h3{margin:1rem 0 .5rem;font-size:.95rem;color:var(--muted)}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.grid.three{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}@media (max-width: 1000px){.grid.two{grid-template-columns:1fr}}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stepper{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;list-style:none;padding:.7rem .9rem;margin:0 0 1rem;border:1px solid var(--border);border-radius:8px;background:var(--panel);font-size:.9rem}.stepper li{display:flex;align-items:center;gap:.45rem;color:var(--muted)}.stepper li.corrente{color:var(--text);font-weight:600}.stepper li.fatto{color:var(--ok)}.stepper .numero{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;border:1px solid currentColor;font-size:.75rem}.stepper li.corrente .numero{background:var(--accent);border-color:var(--accent);color:#08111c}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:2.2rem 1rem;border:2px dashed var(--border);border-radius:10px;cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.attiva{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.dropzone:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem 1rem}.field{display:flex;flex-direction:column;gap:.25rem}.field input{width:100%}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:Cascadia Mono,Consolas,monospace;font-size:.85rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.badge.ok{background:#2f9e442e;color:#79d18f;border-color:var(--ok)}.badge.ok-dark{background:#1c6b2e38;color:#63b97a;border-color:var(--ok-dark)}.badge.warn{background:#e8a33d2e;color:#f0c07a;border-color:var(--warn)}.badge.action{background:#e8743d2e;color:#f2a281;border-color:var(--action)}.badge.danger{background:#e052522e;color:#f09a9a;border-color:var(--danger)}.badge.unknown{background:#6b768633;color:#b3bccb;border-color:var(--unknown)}mark.entity{border-radius:3px;padding:.05rem .15rem;cursor:pointer;color:#0d1117;font-weight:600}mark.entity.IDENTIFIER{background:var(--identifier)}mark.entity.SPECIAL{background:var(--special)}mark.entity.FINANCIAL{background:var(--financial)}mark.entity.INDIRECT{background:var(--indirect)}mark.entity.selected{outline:2px solid var(--text)}.doc-text{white-space:pre-wrap;word-break:break-word;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:.8rem;max-height:460px;overflow:auto;font-size:.9rem}.legend{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.8rem}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.3rem;vertical-align:middle}.legend .IDENTIFIER:before{background:var(--identifier)}.legend .SPECIAL:before{background:var(--special)}.legend .FINANCIAL:before{background:var(--financial)}.legend .INDIRECT:before{background:var(--indirect)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600}tr.selected td{background:#5aa9e61f}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#5aa9e614}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04070cb8;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.2rem;max-width:640px;width:100%;max-height:88vh;overflow:auto}.modal h2{margin-top:0}.chat{display:flex;flex-direction:column;gap:.8rem;max-height:60vh;overflow:auto}.message{border:1px solid var(--border);border-radius:8px;padding:.7rem;background:var(--panel-2)}.message.user{border-left:3px solid var(--accent)}.message.assistant{border-left:3px solid var(--ok)}.message.blocked{border-left:3px solid var(--danger)}.message pre{white-space:pre-wrap;margin:.4rem 0 0;font-family:inherit}details.findings summary{cursor:pointer;color:var(--muted);font-size:.85rem}details.findings ul{margin:.4rem 0 0;padding-left:1.1rem}.diff{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media (max-width: 900px){.diff{grid-template-columns:1fr}}.progressbar{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.progressbar>div{height:100%;background:var(--accent)}.error{color:#f09a9a}.notice{background:#5aa9e61a;border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem}.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1rem}.role-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.2rem;display:flex;flex-direction:column}.role-card:hover{border-color:var(--accent)}.role-card-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}.role-card-head h2{margin:0;font-size:1.15rem}.role-icon{font-size:1.7rem;line-height:1}.role-who{margin:0 0 .9rem;font-size:.92rem}.role-facts{margin:0 0 .9rem;font-size:.85rem}.role-facts dt{color:var(--accent);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.role-facts dd{margin:.1rem 0 .6rem;color:var(--muted)}.role-areas{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.role-card>button{margin-top:auto}.hint{position:relative;display:inline-flex;vertical-align:middle}.hint-mark{width:1.15rem;height:1.15rem;padding:0;margin-left:.25rem;border-radius:50%;border:1px solid var(--unknown);background:transparent;color:var(--muted);font-size:.72rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.hint-mark:hover:not(:disabled),.hint-mark[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.hint-bubble{position:absolute;top:1.5rem;left:0;z-index:40;width:max-content;max-width:min(30rem,80vw);background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;padding:.6rem .75rem;font-size:.84rem;font-weight:400;line-height:1.45;color:var(--text);white-space:normal;box-shadow:0 8px 24px #00000073}.hint-bubble strong{color:var(--text)}.explain{margin:-.35rem 0 .8rem;color:var(--muted);font-size:.87rem;max-width:78ch}.guide{background:#5aa9e612;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;margin-bottom:1rem;overflow:hidden}.guide-toggle{width:100%;text-align:left;background:transparent;border:none;border-radius:0;padding:.6rem .85rem;font-weight:600;color:var(--text)}.guide-toggle:hover:not(:disabled){border-color:transparent;background:#5aa9e614}.guide-caret{color:var(--accent);margin-right:.2rem}.guide-body{padding:0 .95rem .85rem 1.6rem}.guide-intro{margin:0 0 .6rem;color:var(--muted);font-size:.88rem;max-width:80ch}.guide-steps{margin:0;padding-left:1.1rem;font-size:.88rem}.guide-steps li{margin-bottom:.35rem;color:var(--muted)}.guide-steps li strong{color:var(--text)}.guide-notes{margin-top:.7rem;padding-top:.6rem;border-top:1px dashed var(--border);font-size:.84rem;color:var(--muted)}.guide-notes p{margin:0 0 .35rem}.modal.glossary{max-width:780px}.modal.glossary h3{margin:1.1rem 0 .4rem;font-size:.9rem;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.glossary-list{margin:0}.glossary-list>div{margin-bottom:.6rem}.glossary-list dt{font-weight:600;font-size:.9rem}.glossary-list dd{margin:.1rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}header.topbar button.help{border-color:var(--accent);color:var(--accent)}
