:root{--paper:#FAF9F6;--surface:#FFFFFF;--surface-2:#F3F1EC;--surface-3:#ECE8DF;--ink:#1C2430;--ink-soft:#525C6B;--muted:#8A93A0;--line:#E7E2D8;--line-soft:#F0ECE3;--primary:#23415E;--primary-strong:#1A3149;--primary-tint:#EAF0F6;--accent:#A9782E;--accent-tint:#F6EEDD;--good:#2E7D5B;--good-tint:#E4F1EA;--warn:#B8801E;--warn-tint:#F8EFD9;--bad:#B23A3A;--bad-tint:#F7E6E4;--shadow:0 1px 2px rgba(28,36,48,.04), 0 6px 20px rgba(28,36,48,.06);--shadow-lg:0 12px 40px rgba(28,36,48,.16);--r:14px;--r-sm:10px;--r-xs:7px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,ui-serif,serif;--font-num:ui-monospace,"SF Mono","Segoe UI",system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:inherit;text-decoration:none}input,select{font-family:inherit;font-size:14px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-num);font-size:12.5px}.app{display:grid;grid-template-columns:248px 1fr;grid-template-rows:auto 1fr;height:100vh}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:0 22px;height:60px;background:var(--surface);border-bottom:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:11px}.brand .mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(150deg,var(--primary),var(--primary-strong));color:#fff}.brand .mark svg{width:19px;height:19px}.brand .name{font-family:var(--font-serif);font-size:20px;font-weight:600}.brand .name b{color:var(--accent);font-weight:600}.topbar .spacer{flex:1}.iconbtn{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--ink-soft)}.iconbtn:hover{background:var(--surface-2)}.userchip{display:flex;align-items:center;gap:9px;padding:4px 6px 4px 4px;border-radius:20px;border:1px solid var(--line);background:var(--surface-2)}.avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:12px}.userchip .un{font-size:12.5px;font-weight:600;line-height:1.15}.userchip .ur{font-size:10.5px;color:var(--muted)}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}.nav-group-label{font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);padding:14px 12px 6px}.navitem{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r-sm);color:var(--ink-soft);font-weight:500;font-size:13.5px}.navitem svg{width:18px;height:18px;opacity:.85}.navitem:hover{background:var(--surface-2);color:var(--ink)}.navitem.active{background:var(--primary-tint);color:var(--primary);font-weight:600}.sidebar .grow{flex:1}.side-card{margin:8px 6px 0;padding:13px;border-radius:var(--r-sm);background:linear-gradient(160deg,var(--accent-tint),transparent);border:1px solid var(--line)}.side-card .h{font-size:12px;font-weight:700;margin-bottom:3px}.side-card .p{font-size:11.5px;color:var(--ink-soft);line-height:1.45}.logout{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-sm);color:var(--ink-soft);font-weight:500;font-size:13.5px;width:100%}.logout:hover{background:var(--bad-tint);color:var(--bad)}.logout svg{width:18px;height:18px}.main{overflow-y:auto}.scopebar{display:flex;align-items:center;gap:10px;padding:10px 30px;font-size:12.5px;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-soft)}.scopebar .tag{display:inline-flex;align-items:center;gap:6px;font-weight:600;padding:3px 9px;border-radius:20px;font-size:11.5px}.scopebar .tag.sa{background:var(--primary-tint);color:var(--primary)}.scopebar .tag.av{background:var(--accent-tint);color:var(--accent)}.scopebar .tag.cl{background:var(--good-tint);color:var(--good)}.scopebar .tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.content{padding:26px 30px 60px;max-width:1180px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{font-family:var(--font-serif);font-size:27px;font-weight:600}.page-head .sub{color:var(--ink-soft);font-size:13.5px;margin-top:3px}.page-actions{display:flex;gap:9px}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--r-sm);font-weight:600;font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.btn:hover{background:var(--surface-2)}.btn svg{width:16px;height:16px}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--primary-strong)}.btn.sm{padding:6px 11px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.kpi-grid{display:grid;gap:15px;margin-bottom:24px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:17px 18px;box-shadow:var(--shadow)}.kpi .lab{font-size:12px;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:7px}.kpi .lab .ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center}.kpi .lab .ic svg{width:15px;height:15px}.kpi .val{font-size:28px;font-weight:700;margin-top:12px;letter-spacing:-.5px}.kpi .foot{font-size:11.5px;margin-top:6px;color:var(--muted)}.cols{display:grid;gap:18px}.cols.two{grid-template-columns:1.6fr 1fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line-soft)}.card-head h3{font-size:15px;font-weight:600}.card-head .link{font-size:12.5px;color:var(--primary);font-weight:600}.card-body.pad{padding:18px}table{width:100%;border-collapse:collapse}.tbl-wrap{overflow-x:auto}th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:13px;vertical-align:middle}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--surface-2)}tr:last-child td{border-bottom:none}.cell-main{font-weight:600}.cell-sub{font-size:11.5px;color:var(--muted);margin-top:1px}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.good{background:var(--good-tint);color:var(--good)}.pill.warn{background:var(--warn-tint);color:var(--warn)}.pill.bad{background:var(--bad-tint);color:var(--bad)}.pill.neutral{background:var(--surface-3);color:var(--ink-soft)}.pill.info{background:var(--primary-tint);color:var(--primary)}.pill.plain:before{display:none}.tag-materia{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface-3);color:var(--ink-soft)}.avatar-sm{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:600;font-size:10.5px}.assignees{display:inline-flex;align-items:center}.assignees .avatar-sm{margin-left:-7px;border:2px solid var(--surface)}.assignees .avatar-sm:first-child{margin-left:0}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.search{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:230px}.search input{border:none;background:none;outline:none;color:var(--ink);width:100%}.chipfilter{display:flex;gap:4px;background:var(--surface-2);padding:3px;border-radius:9px;border:1px solid var(--line)}.chipfilter button{padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}.chipfilter button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.infoline{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.infoline:last-child{border-bottom:none}.infoline .k{color:var(--muted)}.infoline .v{font-weight:600;text-align:right}.doc-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line-soft)}.doc-row:last-child{border-bottom:none}.doc-ic{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;background:#c0392b}.doc-meta{flex:1;min-width:0}.doc-meta .n{font-weight:600;font-size:13px}.doc-meta .s{font-size:11px;color:var(--muted);margin-top:1px}.agenda-item{display:flex;gap:13px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.agenda-item:last-child{border-bottom:none}.agenda-date{text-align:center;width:46px;flex:none}.agenda-date .d{font-size:20px;font-weight:800;line-height:1}.agenda-date .m{font-size:10.5px;text-transform:uppercase;color:var(--muted);font-weight:700}.agenda-body .t{font-weight:600;font-size:13.5px}.agenda-body .s{font-size:12px;color:var(--ink-soft);margin-top:2px}.change-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}.change-row:last-child{border-bottom:none}.ch-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent);flex:none}.ch-ic svg{width:15px;height:15px}.ch-body{flex:1;min-width:0}.ch-act{font-weight:600;font-size:13px}.ch-meta{font-size:11.5px;color:var(--muted);margin-top:1px}.ch-when{font-size:11px;color:var(--muted);text-align:right}.ch-when b{color:var(--ink-soft);font-size:11.5px}.toggle{position:relative;width:38px;height:22px;border-radius:12px;background:var(--surface-3);display:inline-block;vertical-align:middle;cursor:pointer;transition:background .18s}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .18s}.toggle.on{background:var(--good)}.toggle.on:after{transform:translate(16px)}.bar{flex:1;height:7px;background:var(--surface-3);border-radius:4px;overflow:hidden;max-width:110px}.bar>span{display:block;height:100%}.dropzone{border:2px dashed var(--line);border-radius:var(--r-sm);padding:18px;text-align:center;color:var(--muted);font-size:12.5px;cursor:pointer}.dropzone:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.info-note{display:flex;gap:11px;padding:13px 15px;border-radius:var(--r-sm);background:var(--primary-tint);border:1px solid var(--line);font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-top:18px}.info-note svg{width:18px;height:18px;color:var(--primary);flex:none;margin-top:1px}.info-note b{color:var(--ink)}.state{text-align:center;padding:50px 20px;color:var(--muted)}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--surface-2),var(--paper))}.login-card{width:100%;max-width:390px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:34px 30px}.login-card .brand{justify-content:center;margin-bottom:8px}.login-card h1{text-align:center;font-family:var(--font-serif);font-size:22px;margin-bottom:4px}.login-card .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:24px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.field input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);outline:none}.field input:focus{border-color:var(--primary)}.login-card .btn{width:100%;justify-content:center;padding:12px;margin-top:6px}.form-error{background:var(--bad-tint);color:var(--bad);padding:10px 13px;border-radius:var(--r-sm);font-size:12.5px;font-weight:600;margin-bottom:14px}.login-hint{margin-top:18px;font-size:11.5px;color:var(--muted);text-align:center;line-height:1.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c243073;display:grid;place-items:center;padding:20px;z-index:50}.modal{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg)}.modal.wide{max-width:720px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:var(--surface)}.modal-head h3{font-family:var(--font-serif);font-size:19px;font-weight:600}.modal-head .x{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--muted);font-size:18px}.modal-head .x:hover{background:var(--surface-2);color:var(--ink)}.modal-body{padding:20px 22px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line-soft);position:sticky;bottom:0;background:var(--surface)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);outline:none;color:var(--ink)}.field select:focus,.field textarea:focus,.field input:focus{border-color:var(--primary)}.field.check{display:flex;align-items:center;gap:9px}.field.check input{width:auto}.field.check label{margin:0}.righe-tbl input{width:100%;border:1px solid transparent;background:transparent;padding:7px 8px;border-radius:6px;font-size:13px;color:var(--ink)}.righe-tbl input:hover{background:var(--surface-2)}.righe-tbl input:focus{border-color:var(--primary);background:var(--surface);outline:none}.righe-tbl input.amt{text-align:right;font-variant-numeric:tabular-nums}.righe-tbl td{padding:4px 6px}.riga-del{color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:6px}.riga-del:hover{background:var(--bad-tint);color:var(--bad)}.totbox{margin-top:16px;padding:14px 16px;background:var(--surface-2);border-radius:var(--r-sm)}.totrow{display:flex;justify-content:space-between;padding:5px 0;font-size:13px}.totrow .v{font-variant-numeric:tabular-nums;font-weight:600}.totrow.grand{border-top:2px solid var(--line);margin-top:6px;padding-top:10px;font-size:16px}.totrow.grand .v{color:var(--primary);font-weight:800}.totrow.neg .v{color:var(--bad)}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:8px}.cal-label{font-family:var(--font-serif);font-size:18px;font-weight:600;margin-left:6px}.cal-views{display:flex;gap:3px;background:var(--surface-2);padding:3px;border-radius:9px;border:1px solid var(--line)}.cal-views button{padding:6px 13px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}.cal-views button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-dow{text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding-bottom:2px}.cal-cell{min-height:96px;border:1px solid var(--line-soft);border-radius:9px;padding:5px 6px;background:var(--surface);cursor:pointer;overflow:hidden;transition:border-color .1s}.cal-cell:hover{border-color:var(--line);background:var(--surface-2)}.cal-cell.out{background:var(--surface-2)}.cal-cell.out .n{color:var(--muted)}.cal-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cal-cell .n{font-weight:700;font-size:12.5px;margin-bottom:3px}.cal-cell.today .n{color:var(--primary)}.cal-ev{font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev b{font-weight:700}.cal-more{font-size:10.5px;color:var(--muted);font-weight:600;margin-top:2px;padding-left:2px}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);min-height:420px}.cal-wcol{border-right:1px solid var(--line-soft);min-width:0}.cal-wcol:last-child{border-right:none}.cal-wcol.today{background:var(--primary-tint)}.cal-whead{text-align:center;padding:10px 4px;border-bottom:1px solid var(--line-soft)}.cal-whead span{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--muted)}.cal-whead b{font-size:17px}.cal-wbody{padding:8px 6px;display:flex;flex-direction:column;gap:4px}.cal-wempty{text-align:center;color:var(--line);font-size:13px;padding-top:8px}.cal-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;padding:0 4px}.cal-legend .li{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft)}.cal-legend .dot{width:9px;height:9px;border-radius:50%}.landing{max-width:100%;overflow-x:hidden}.lp-nav{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;max-width:1120px;margin:0 auto}.lp-nav-links{display:flex;align-items:center;gap:24px}.lp-nav-links a{font-size:14px;font-weight:500;color:var(--ink-soft)}.lp-nav-links a:hover{color:var(--ink)}.lp-hero{text-align:center;padding:70px 24px 60px;max-width:820px;margin:0 auto}.lp-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);padding:5px 12px;border-radius:20px;margin-bottom:20px}.lp-hero h1{font-family:var(--font-serif);font-size:clamp(38px,6vw,60px);font-weight:600;line-height:1.05;letter-spacing:-1px;text-wrap:balance}.lp-sub{font-size:clamp(16px,2.2vw,19px);color:var(--ink-soft);margin:20px auto 30px;max-width:620px;line-height:1.55;text-wrap:balance}.lp-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.lp-cta .btn{padding:12px 22px;font-size:15px}.lp-trust{margin-top:22px;font-size:12.5px;color:var(--muted);letter-spacing:.2px}.lp-section{max-width:1120px;margin:0 auto;padding:56px 40px}.lp-section h2{font-family:var(--font-serif);font-size:clamp(26px,4vw,36px);font-weight:600;text-align:center;letter-spacing:-.4px}.lp-section-sub{text-align:center;color:var(--ink-soft);margin-top:8px;font-size:15px}.lp-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px}.lp-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow)}.lp-fic{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--primary-tint);color:var(--primary);margin-bottom:14px}.lp-feature h3{font-size:16px;font-weight:600;margin-bottom:6px}.lp-feature p{font-size:13.5px;color:var(--ink-soft);line-height:1.55}.lp-pricing{background:linear-gradient(180deg,var(--surface-2),transparent)}.lp-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px;align-items:start}.lp-plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px 24px;box-shadow:var(--shadow);position:relative}.lp-plan.evidenza{border-color:var(--primary);box-shadow:0 12px 40px #23415e29;transform:translateY(-6px)}.lp-plan-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px}.lp-plan-nome{font-size:15px;font-weight:700;color:var(--ink-soft)}.lp-plan-prezzo{font-size:38px;font-weight:800;letter-spacing:-1px;margin:8px 0 2px}.lp-plan-prezzo span{font-size:15px;font-weight:600;color:var(--muted)}.lp-plan-note{font-size:12.5px;color:var(--muted);margin-bottom:16px}.lp-plan ul{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:9px}.lp-plan li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft)}.lp-plan li svg{color:var(--good);flex:none}.lp-plan .btn{width:100%;justify-content:center}.lp-note-attivazione{text-align:center;color:var(--muted);font-size:12.5px;margin-top:26px}.lp-footer{max-width:1120px;margin:0 auto;padding:36px 40px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.lp-foot-links{display:flex;gap:20px}.lp-foot-links a{font-size:13px;color:var(--ink-soft)}.lp-foot-links a:hover{color:var(--ink)}.lp-copy{font-size:12px;color:var(--muted)}@media (max-width:820px){.lp-features,.lp-plans{grid-template-columns:1fr}.lp-plan.evidenza{transform:none}.lp-nav,.lp-section,.lp-footer{padding-left:20px;padding-right:20px}}@media (max-width: 940px){.app{grid-template-columns:1fr}.sidebar{display:none}.cols.two{grid-template-columns:1fr}.content{padding:20px 16px 50px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
