@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexSans-Regular.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/IBMPlexSans-SemiBold.woff2) format("woff2")}:root{--ink: #0d1b2e;--ink-muted: #5A6473;--surface: #FFFFFF;--surface-sunken: #F0F2F5;--line: #D3D9E0;--owner-t4t: #185FA5;--owner-tim: #7A8699;--accent: #E87722;--attention: #E87722;--on-ink: #FFFFFF;--on-ink-muted: #AEB7C4;--state-ok: #1E7F4E;--state-warn: #9A5B00;--state-danger: #B42318;--font: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--t-xs: .75rem;--t-sm: .8125rem;--t-base: .875rem;--t-md: 1rem;--t-lg: 1.375rem;--t-xl: 1.75rem;--w-regular: 400;--w-strong: 600;--lh-tight: 1.3;--lh-text: 1.5;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--radius: 4px;--header-h: 3.75rem;--row-h: 2rem;--content-max-w: 80rem;--col-num-w: 9rem;--col-num-share: 20%;--focus-ring: 2px solid var(--ink);--focus-offset: 2px;--shadow-float: 0 8px 24px rgba(13, 27, 46, .18);--bar-h: .75rem}*{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;overflow-y:scroll;scrollbar-gutter:stable}body{font-family:var(--font);background:var(--surface-sunken);color:var(--ink);font-size:var(--t-base);line-height:var(--lh-text);-webkit-font-smoothing:antialiased}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.num{text-align:right;font-variant-numeric:tabular-nums}.tnum{font-variant-numeric:tabular-nums}input[type=checkbox]{accent-color:var(--ink)}.muted{color:var(--ink-muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:var(--s-5) var(--s-6);max-width:var(--content-max-w);margin:0 auto;width:100%;min-width:0}.header{background:var(--ink);color:var(--on-ink);height:var(--header-h);position:sticky;top:0;z-index:50}.header-inner{max-width:var(--content-max-w);margin:0 auto;width:100%;height:100%;padding:0 var(--s-6);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.header-brand:focus-visible,.user-menu-trigger:focus-visible{outline-color:var(--on-ink)}.header-brand{display:inline-flex;text-decoration:none;color:inherit;border-radius:var(--radius)}.header-right{display:flex;align-items:center;gap:var(--s-4);min-width:0}.header-meta{font-size:var(--t-sm);white-space:nowrap;color:var(--on-ink)}.header-meta .muted,.header-meta-sep{color:var(--on-ink-muted)}.header-meta-sep{margin:0 var(--s-2)}.brand{display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}.brand-word{font-size:1.25rem;font-weight:var(--w-strong);letter-spacing:-.02em;line-height:1}.brand--light .brand-word-a{color:var(--ink)}.brand--light .brand-word-b{color:var(--accent)}.brand--light .brand-word-c{color:var(--owner-t4t)}.brand--dark .brand-word-a{color:var(--on-ink)}.brand--dark .brand-word-b{color:var(--accent)}.brand--dark .brand-word-c{color:#85b7eb}.footer{margin-top:auto;border-top:1px solid var(--line)}.footer-inner{max-width:var(--content-max-w);margin:0 auto;width:100%;padding:var(--s-3) var(--s-6);font-size:var(--t-xs);color:var(--ink-muted)}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:var(--s-5);gap:var(--s-2);flex-wrap:wrap}.tab-btn{flex:none;padding:var(--s-2) var(--s-3);border:none;background:transparent;cursor:pointer;font:inherit;font-size:var(--t-base);color:var(--ink-muted);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab-btn:first-child{padding-left:0}.tab-btn:hover{color:var(--ink)}.tab-btn.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:var(--w-strong)}.tab-btn:focus-visible{outline-offset:calc(-1 * var(--focus-offset))}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-4);min-width:0}.panel-title{font-size:var(--t-md);font-weight:var(--w-strong);color:var(--ink);line-height:var(--lh-tight);margin-bottom:var(--s-3)}.panel-title-spec{font-weight:var(--w-regular);color:var(--ink-muted)}.panel--table{padding:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-3)}.panel-heading-title{font-size:var(--t-md);font-weight:var(--w-strong);line-height:var(--lh-tight)}.panel-heading-title .muted{font-weight:var(--w-regular);font-size:var(--t-sm);margin-left:var(--s-2)}.panel-heading-title--table{padding:var(--s-3) var(--s-3) 0;margin-bottom:var(--s-2)}.panel-heading--table{padding:var(--s-3) var(--s-3) 0}.panel--form>.panel-heading-title{margin-bottom:var(--s-4)}.page-heading{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-5)}.page-heading-title{font-size:var(--t-md);font-weight:var(--w-strong)}.subpanel{margin:0 var(--s-3) var(--s-4);padding:var(--s-4);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius)}.subpanel>.panel-heading-title{margin-bottom:var(--s-4)}.subpanel .form-control{background:var(--surface)}.panel+.panel,.panel+.two-panel,.panel+.alert,.panel+.loading{margin-top:var(--s-5)}.empty-state{text-align:center;padding:var(--s-7) var(--s-5)}.empty-state p{margin-bottom:var(--s-4);line-height:var(--lh-text)}.owner-mark{display:inline-block;width:.625rem;height:.625rem;border-radius:2px;margin-right:var(--s-2);vertical-align:0}.owner-mark--t4t{background:var(--owner-t4t)}.owner-mark--tim{background:var(--owner-tim)}.owner,.state{white-space:nowrap}.state-mark{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;margin-right:var(--s-2);vertical-align:.05em}.state-mark--ok{background:var(--state-ok)}.state-mark--warn{background:var(--state-warn)}.state-mark--danger{background:var(--state-danger)}.state-mark--neutral{background:var(--ink-muted)}.cell-note{margin-left:var(--s-2);font-size:var(--t-xs);color:var(--ink-muted)}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:.15em;cursor:pointer}.link-btn:hover{text-decoration-thickness:2px}.link-btn--danger{color:var(--state-danger)}.toggle-list{display:flex;flex-wrap:wrap;gap:var(--s-2)}.toggle-btn{height:2rem;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--t-sm);cursor:pointer}.toggle-btn:hover{border-color:var(--ink-muted)}.toggle-btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.filter-chip{display:inline-flex;align-items:center;gap:var(--s-2);align-self:flex-end;padding:0 var(--s-2) 0 var(--s-3);height:2.25rem;border:1px solid var(--ink);border-radius:var(--radius);font-size:var(--t-sm);background:var(--surface)}.filter-chip-remove{background:none;border:none;font:inherit;font-size:var(--t-md);line-height:1;padding:0 var(--s-1);cursor:pointer;color:var(--ink)}.month-state{display:inline-flex;align-items:center;gap:var(--s-2);align-self:flex-end;margin-left:auto;height:2.25rem;font-size:var(--t-sm)}.month-state:before{content:"";width:.5rem;height:.5rem;flex-shrink:0}.month-state--open{color:var(--ink-muted)}.month-state--open:before{border-radius:50%;background:var(--state-warn)}.month-state--frozen{color:var(--ink)}.month-state--frozen:before{background:var(--ink)}.dash-cards{display:grid;grid-template-columns:3fr 2fr;gap:var(--s-4);align-items:stretch;margin-bottom:var(--s-5)}.dash-cards>.panel{margin-top:0}.kpi-total{display:flex;flex-direction:column}.kpi-total-body{flex:1;display:grid;grid-template-columns:auto 1fr;align-content:center;column-gap:var(--s-6)}.kpi-total-left{display:flex;align-items:flex-end}.kpi-total-right{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--s-2)}.kpi-value{font-size:var(--t-xl);font-weight:var(--w-strong);line-height:var(--lh-tight);text-align:left;white-space:nowrap}.kpi-value .num-dec,.share-legend dd .num-dec{font-weight:var(--w-regular);color:var(--ink-muted)}.kpi-value .num-dec{font-size:var(--t-lg)}.share-bar{display:flex;gap:2px;height:var(--bar-h)}.share-seg{flex-basis:0;min-width:4px;border-radius:2px}.share-seg--t4t{background:var(--owner-t4t)}.share-seg--tim{background:var(--owner-tim)}.share-seg.is-dimmed{background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line)}.share-legend{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.share-legend dt{font-size:var(--t-sm);color:var(--ink-muted);margin-bottom:0}.share-legend dd{font-size:var(--t-md);font-weight:var(--w-strong);line-height:var(--lh-tight);text-align:left;display:flex;align-items:baseline;gap:var(--s-3);flex-wrap:wrap}.share-pct{font-size:var(--t-sm);font-weight:var(--w-regular);color:var(--ink-muted)}.share-legend-col.is-dimmed dd{color:var(--ink-muted)}.pass-row{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--s-2);padding:var(--s-1) 0;font-size:var(--t-sm);line-height:var(--lh-text)}.pass-row--month{padding-top:0;padding-bottom:var(--s-2);font-size:var(--t-base)}.pass-label{color:var(--ink-muted)}.pass-count{font-size:var(--t-lg);font-weight:var(--w-strong);line-height:var(--lh-tight)}.pass-sub{display:block;color:var(--ink-muted)}.pass-filter-btn{display:block;margin-top:var(--s-1)}.pass-row .num{text-align:left}.kpi-pass.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.pass-row--imminent{box-shadow:inset 3px 0 0 var(--attention);margin-left:calc(-1 * var(--s-3));padding-left:var(--s-3)}.pass-row--imminent>div:last-child{font-weight:var(--w-strong)}.pass-row--imminent .pass-sub{font-weight:var(--w-regular)}.section-title{font-size:var(--t-md);font-weight:var(--w-strong);margin-bottom:var(--s-4)}.table-wrap{overflow-x:auto}.table-wrap thead th,.table-wrap tfoot th,.table-wrap tfoot td{position:static}@media (min-width: 1024px){.table-wrap--fit{overflow:visible}.table-wrap--fit thead th,.table-wrap--fit tfoot th,.table-wrap--fit tfoot td{position:sticky}}table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t-sm)}thead th{background:var(--surface);color:var(--ink);text-align:left;padding:var(--s-2) var(--s-3);font-weight:var(--w-strong);white-space:nowrap;border-bottom:2px solid var(--ink);position:sticky;top:var(--header-h);z-index:1}thead th.th-wrap{white-space:normal;min-width:7rem;line-height:var(--lh-tight)}tbody td,tbody th{padding:0 var(--s-3);height:var(--row-h);border-bottom:1px solid var(--line);vertical-align:middle;font-weight:var(--w-regular);text-align:left}tbody tr:hover>td,tbody tr:hover>th{background:var(--surface-sunken)}.td-empty{text-align:center;color:var(--ink-muted);padding:var(--s-5)!important}td.num,th.num{font-variant-numeric:tabular-nums;white-space:nowrap}.td-strong{font-weight:var(--w-strong)}.td-wrap{white-space:normal;line-height:var(--lh-tight);padding-top:var(--s-2);padding-bottom:var(--s-2)}.td-nowrap,.td-actions{white-space:nowrap}.td-actions .link-btn+.link-btn:before{content:"·";margin:0 var(--s-2);color:var(--ink-muted);text-decoration:none;display:inline-block}.cell-editable{background:none;border:1px dashed transparent;border-radius:var(--radius);padding:0 var(--s-1);margin:0 calc(-1 * var(--s-1));font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer}.cell-editable:hover{border-color:var(--ink-muted)}.cell-input{height:1.5rem;padding:0 var(--s-1);border:1px solid var(--ink);border-radius:var(--radius);font:inherit;font-size:var(--t-sm);color:var(--ink);background:var(--surface)}th.num,td.num{text-align:right}.col-num{width:var(--col-num-w)}.table-tree .col-num{width:var(--col-num-share)}.tr-group>th,.tr-group>td{font-weight:var(--w-strong);font-size:var(--t-base);height:2.75rem;padding-top:var(--s-2);border-top:2px solid var(--ink);border-bottom-color:var(--ink-muted)}.tr-group:first-child>th,.tr-group:first-child>td{border-top:none}.tr-group:hover>th,.tr-group:hover>td{background:transparent}.tr-child>th{padding-left:var(--s-6)}.code-sigla{font-weight:var(--w-strong)}.tr-child .code-sigla{font-weight:var(--w-regular)}.code-descr{color:var(--ink-muted)}tfoot th,tfoot td{position:sticky;bottom:0;background:var(--surface);padding:0 var(--s-3);height:var(--row-h);text-align:left;vertical-align:middle;font-weight:var(--w-strong);border-top:2px solid var(--ink);z-index:1}.filters-bar{display:flex;gap:var(--s-3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--s-5)}.filter-group{display:flex;flex-direction:column;gap:var(--s-1);min-width:0}.filter-group label{font-size:var(--t-sm);color:var(--ink-muted)}.filter-group select,.filter-group input{height:2.25rem;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--surface);min-width:9rem;max-width:100%}.filter-group select:hover,.filter-group input:hover{border-color:var(--ink-muted)}.filter-group--search{flex:1 1 16rem;max-width:24rem}.filter-group--search input{width:100%}.filters-bar-actions{display:flex;gap:var(--s-2);align-self:flex-end;margin-left:auto}.filters-bar-note{align-self:flex-end;margin-left:auto;height:2.25rem;display:flex;align-items:center;font-size:var(--t-sm);color:var(--ink-muted)}.filters-bar-actions .filters-bar-note{margin-left:0;margin-right:var(--s-2)}.form-group{margin-bottom:var(--s-4)}.form-group--full{grid-column:1 / -1}.form-label{display:block;font-size:var(--t-sm);color:var(--ink-muted);margin-bottom:var(--s-1)}.form-control{width:100%;height:2.25rem;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--surface)}.form-control:hover{border-color:var(--ink-muted)}.form-control[readonly]{background:var(--surface-sunken);color:var(--ink-muted)}.form-control--inline{width:auto;min-width:14rem}.form-control.error,.form-control[aria-invalid=true]{border-color:var(--state-danger);box-shadow:inset 0 0 0 1px var(--state-danger)}.form-group--narrow{margin-bottom:0}.form-hint{color:var(--ink-muted);font-weight:var(--w-regular)}.form-check{display:inline-flex;align-items:center;gap:var(--s-2);margin:var(--s-4) 0;cursor:pointer}.form-check input{width:1rem;height:1rem;margin:0;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-5)}.form-actions--start{justify-content:flex-start;margin-top:0}.btn-block{width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3) var(--s-4)}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s-3) var(--s-4)}.form-grid .form-group,.form-grid-3 .form-group{margin-bottom:0}select.form-control{cursor:pointer}textarea.form-control{height:auto;min-height:5rem;padding:var(--s-2) var(--s-3);resize:vertical;line-height:var(--lh-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:2.25rem;padding:0 var(--s-4);border:1px solid transparent;border-radius:var(--radius);font:inherit;font-weight:var(--w-strong);cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}.btn-primary:hover:not(:disabled){background:var(--owner-t4t);border-color:var(--owner-t4t)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:var(--ink)}.btn-secondary[aria-pressed=true]{background:var(--surface-sunken);border-color:var(--ink)}.btn-danger{background:var(--surface);border-color:var(--state-danger);color:var(--state-danger)}.btn-danger:hover:not(:disabled){background:var(--state-danger);color:var(--surface)}.btn-sm{height:2rem;padding:0 var(--s-3);font-size:var(--t-sm)}.btn-icon{padding:0 var(--s-2)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s-4);background:var(--ink)}.auth-card{width:26rem;max-width:100%;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-float);overflow:hidden}.auth-card-header{display:flex;justify-content:center;padding:var(--s-5) var(--s-5) var(--s-4);background:var(--ink)}.auth-card-body{padding:var(--s-5)}.auth-title{font-size:var(--t-md);font-weight:var(--w-strong);text-align:center}.auth-tagline{color:var(--ink-muted);text-align:center;margin:var(--s-1) 0 var(--s-5);font-size:var(--t-sm)}.auth-card-footer{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line);text-align:center;font-size:var(--t-xs);color:var(--ink-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2e80;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--s-4)}.modal{background:var(--surface);border-radius:var(--radius);padding:var(--s-5);width:44rem;max-width:100%;max-height:calc(100vh - 2 * var(--s-4));overflow-y:auto;box-shadow:var(--shadow-float)}.modal--sm{width:28rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-5)}.modal-title{font-size:var(--t-md);font-weight:var(--w-strong)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line)}.modal-intro{margin-bottom:var(--s-4);font-size:var(--t-sm)}.alert{padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-left:3px solid var(--ink-muted);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--s-4);line-height:var(--lh-text)}.alert-success{border-left-color:var(--state-ok)}.alert-error{border-left-color:var(--state-danger)}.alert-info{border-left-color:var(--ink)}.alert--inset{margin:0 var(--s-3) var(--s-3);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.alert-dismiss{background:none;border:none;font:inherit;line-height:1;padding:var(--s-1);cursor:pointer;color:var(--ink-muted)}.alert-dismiss:hover{color:var(--ink)}.loading{text-align:center;padding:var(--s-7);color:var(--ink-muted)}.two-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:start}.two-panel .panel+.panel{margin-top:0}.pagination{display:flex;align-items:center;gap:var(--s-3);justify-content:flex-end;padding:var(--s-3);font-size:var(--t-sm);color:var(--ink-muted)}.codici-checklist{max-height:24rem;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius)}.codice-check-row{display:flex;align-items:center;gap:var(--s-3);min-height:var(--row-h);padding:0 var(--s-3);cursor:pointer;border-bottom:1px solid var(--line);font-size:var(--t-sm)}.codice-check-row:last-child{border-bottom:none}.codice-check-row:hover:not(.disabled){background:var(--surface-sunken)}.codice-check-row.disabled{color:var(--ink-muted);cursor:not-allowed}.codice-check-row input[type=checkbox]{width:1rem;height:1rem;margin:0;flex-shrink:0}.codice-check-label{flex:1}.codice-check-note{font-size:var(--t-xs);color:var(--ink-muted);margin-left:auto;white-space:nowrap}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:var(--s-2);background:transparent;border-color:var(--on-ink-muted);color:var(--on-ink)}.user-menu-trigger:hover:not(:disabled){border-color:var(--on-ink)}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + var(--s-1));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-float);min-width:12rem;z-index:100;padding:var(--s-1) 0}.user-menu-dropdown button{display:block;width:100%;padding:var(--s-2) var(--s-4);background:none;border:none;text-align:left;font:inherit;cursor:pointer;color:var(--ink)}.user-menu-dropdown button:hover{background:var(--surface-sunken)}.user-menu-dropdown button:focus-visible{outline-offset:calc(-1 * var(--focus-offset))}.user-menu-dropdown .menu-item-danger{color:var(--state-danger)}.user-menu-separator{height:1px;background:var(--line);margin:var(--s-1) 0}@media (max-width: 1023px){.two-panel{grid-template-columns:1fr}}@media (max-width: 900px){.form-grid,.form-grid-3{grid-template-columns:1fr}}@media (max-width: 768px){.main-content{padding:var(--s-4)}.header-inner{padding:0 var(--s-4)}.footer-inner{padding:var(--s-3) var(--s-4)}.dash-cards{grid-template-columns:1fr}:root{--col-num-w: 7rem}.table-tree .col-num{width:var(--col-num-w)}.tr-child>th{padding-top:var(--s-1);padding-bottom:var(--s-1)}.filters-bar-actions{margin-left:0;width:100%}.filter-group--search{max-width:none;flex-basis:100%}}
