*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:IBM Plex Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.collapse{visibility:collapse}.sticky{position:sticky}.mx-1{margin-left:.25rem;margin-right:.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.max-h-60{max-height:15rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-full{width:100%}.w-px{width:1px}.min-w-\[16rem\]{min-width:16rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-\[11px\]{border-radius:11px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(169 208 231 / var(--tw-border-opacity, 1))}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(228 241 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(241 248 252 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-3{padding:.75rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(106 174 214 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(74 144 190 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-40{opacity:.4}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}html,body,#root{height:100%}.hover\:bg-sky-50:hover{--tw-bg-opacity: 1;background-color:rgb(241 248 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:text-rose-500:hover{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-sky-500:focus{--tw-border-opacity: 1;border-color:rgb(106 174 214 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-sky-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(228 241 248 / var(--tw-ring-opacity, 1))}.focus\:ring-sky-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(106 174 214 / var(--tw-ring-opacity, 1))}@media (min-width: 768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}:root{--azzurro: #6aaed6;--azzurro-700: #4a90be;--azzurro-300: #a9d0e7;--azzurro-100: #e4f1f8;--azzurro-050: #f1f8fc;--green: #5cb85c;--green-700: #3f8b3f;--green-100: #e6f4e6;--ink: #1e1e24;--ink-2: #2a2a32;--ink-3: #3a3a44;--slate-600: #5a6472;--slate-500: #76808e;--slate-400: #9aa3af;--line: #e6ebf0;--line-2: #eef2f6;--bg: #f7f9fb;--bg-2: #fbfcfe;--white: #fff;--amber: #e8b84b;--amber-700: #b98b1e;--amber-100: #fbf1d8;--red: #d9534f;--red-700: #b23c39;--red-100: #fbe6e5;--indigo: #7e7fd1;--indigo-100: #ececf8;--r-sm: 7px;--r: 11px;--r-lg: 16px;--r-xl: 22px;--sh-1: 0 1px 2px rgba(30, 30, 36, .04), 0 1px 3px rgba(30, 30, 36, .06);--sh-2: 0 2px 6px rgba(30, 30, 36, .05), 0 6px 18px rgba(30, 30, 36, .07);--sh-3: 0 10px 30px rgba(30, 30, 36, .1), 0 30px 60px rgba(30, 30, 36, .12);--sh-pop: 0 8px 26px rgba(30, 30, 36, .16);--sidebar-w: 248px;--header-h: 64px}body{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}::-moz-selection{background:var(--azzurro-300)}::selection{background:var(--azzurro-300)}*::-webkit-scrollbar{height:11px;width:11px}*::-webkit-scrollbar-thumb{background:#cbd4dd;border-radius:20px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#aebac6;border:3px solid transparent;background-clip:padding-box}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%);color:#c9ced6;position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column}.sb-brand{padding:18px 20px 14px;display:flex;align-items:center;gap:12px}.sb-brand img{width:34px;height:34px;-o-object-fit:contain;object-fit:contain}.sb-brand b{color:#fff;font-weight:600;font-size:15px;display:block;line-height:1.1}.sb-brand span{color:var(--azzurro-300);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.sb-section{padding:12px 14px 4px}.sb-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-500);padding:8px 10px 6px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:var(--r);color:#c2c8d2;font-size:14px;font-weight:500;transition:background .14s,color .14s;text-align:left}.nav-item svg{width:19px;height:19px;flex:0 0 19px;opacity:.85}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:var(--azzurro);color:#fff;box-shadow:0 6px 16px #6aaed659}.nav-item .badge-n{margin-left:auto;background:var(--red);color:#fff;font-size:11px;font-weight:600;min-width:19px;height:19px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center}.nav-item.active .badge-n{background:#ffffff40}.sb-foot{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.07)}.main{margin-left:var(--sidebar-w);flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--header-h);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:0 24px}.topbar .logo{height:26px;width:auto}.topbar .ph{display:flex;flex-direction:column;line-height:1.12;padding-left:16px;border-left:1px solid var(--line)}.topbar .ph b{font-size:14px;font-weight:600}.topbar .ph span{font-size:12px;color:var(--slate-500)}.month-sel{display:flex;align-items:center;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:3px}.month-sel button.arw{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--slate-600)}.month-sel button.arw:hover{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}.month-sel .lbl{font-size:13.5px;font-weight:600;padding:0 10px;min-width:120px;text-align:center}.page{padding:24px 28px;flex:1}.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}.page-head h1{font-size:22px;font-weight:600;margin:0;letter-spacing:-.01em}.page-head .sub{font-size:13px;color:var(--slate-500);margin-top:3px}.page-head-actions{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:var(--r);font-size:13.5px;font-weight:600;transition:.14s;white-space:nowrap;border:none;cursor:pointer;background:none}.btn svg{width:16px;height:16px}.btn-primary{background:var(--azzurro);color:#fff;box-shadow:0 2px 8px #6aaed652}.btn-primary:hover{background:var(--azzurro-700)}.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--sh-1)}.btn-ghost:hover{border-color:var(--azzurro-300);background:var(--azzurro-050)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:var(--ink-3)}.btn-green{background:linear-gradient(180deg,var(--green),var(--green-700));color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:var(--red-700)}.btn-soft{background:transparent;color:var(--slate-600)}.btn-soft:hover{background:var(--bg);color:var(--ink)}.btn-lg{height:44px;padding:0 22px;font-size:14.5px}.btn-sm{height:32px;padding:0 12px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card-pad{padding:20px}.card-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2)}.card-h h3{margin:0;font-size:14px;font-weight:600}.card-h .ci{margin-left:auto}.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:20px;font-size:11.5px;font-weight:600;white-space:nowrap}.pill-azzurro{background:var(--azzurro-100);color:var(--azzurro-700)}.pill-green{background:var(--green-100);color:var(--green-700)}.pill-amber{background:var(--amber-100);color:var(--amber-700)}.pill-red{background:var(--red-100);color:var(--red-700)}.pill-slate{background:#eef2f6;color:var(--slate-600)}.pill-outline{background:#fff;border:1.5px solid var(--azzurro);color:var(--azzurro-700)}.pill-dot{width:6px;height:6px;border-radius:50%}.av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;flex:0 0 auto}.av-sm{width:26px;height:26px;font-size:10.5px}.av-md{width:34px;height:34px;font-size:12.5px}.av-lg{width:46px;height:46px;font-size:16px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--sh-1)}.kpi .ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.kpi .v{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1}.kpi .v small{font-size:15px;color:var(--slate-400);font-weight:500}.kpi .l{font-size:12.5px;color:var(--slate-500);margin-top:7px}.muted{color:var(--slate-500)}.divider{height:1px;background:var(--line-2)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-500);font-weight:600;padding:11px 14px;border-bottom:1px solid var(--line)}.tbl td{padding:12px 14px;border-bottom:1px solid var(--line-2);font-size:13.5px;vertical-align:middle}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:var(--azzurro-050)}.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:3px;gap:2px}.seg button{height:30px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:600;color:var(--slate-600);border:none;background:none;cursor:pointer}.seg button.on{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}.stato-badge{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:var(--r);font-size:13px;font-weight:600}.stato-badge.draft{background:var(--amber-100);color:var(--amber-700)}.stato-badge.ok{background:var(--green-100);color:var(--green-700)}.stato-badge.neutral{background:#eef2f6;color:var(--slate-600)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:40px 16px}.modal{background:#fff;border-radius:var(--r-xl);box-shadow:var(--sh-3);width:560px;max-width:100%}.modal.wide{width:760px}.modal-h{padding:18px 22px 14px;border-bottom:1px solid var(--line-2);display:flex;align-items:center}.modal-h h2{margin:0;font-size:17px;font-weight:600}.modal-b{padding:20px 22px}.modal-f{padding:14px 22px;border-top:1px solid var(--line-2);display:flex;gap:10px;justify-content:flex-end;background:var(--bg-2);border-radius:0 0 var(--r-xl) var(--r-xl)}.x-btn{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--slate-500);border:none;background:none;cursor:pointer}.x-btn:hover{background:var(--bg);color:var(--ink)}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--slate-600);margin-bottom:6px}.inp{width:100%;height:38px;border:1px solid var(--line);border-radius:var(--r);padding:0 12px;font-size:14px;color:var(--ink);background:#fff;transition:.14s}.inp:focus{outline:none;border-color:var(--azzurro);box-shadow:0 0 0 3px var(--azzurro-100)}textarea.inp{height:auto;padding:9px 12px;resize:vertical}.shift-pill{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:23px;padding:0 7px;border-radius:7px;font-size:11.5px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.shift-pill.times{flex-direction:column;gap:1px;height:auto;min-height:28px;padding:3px 6px;line-height:1.08}.shift-pill.times b{font-weight:600;font-size:10.5px}.sp-diurno{background:var(--azzurro-100);color:var(--azzurro-700);border:1px solid #cfe6f3}.sp-serale{background:var(--indigo-100);color:#5455a8;border:1px solid #dbdbf2}.sp-notte{background:var(--ink-2);color:#fff;border:1px solid var(--ink)}.sp-riposo{background:#f1f4f7;color:var(--slate-400);border:1px solid #e7ecf1}.sp-ferie{background:var(--amber-100);color:var(--amber-700);border:1px solid #f0dda8}.sp-permesso{background:#eceff3;color:var(--slate-600);border:1px solid #dfe4ea}.turni-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.grid-wrap{overflow:hidden}.grid-legend{display:flex;align-items:center;gap:16px;padding:11px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.grid-legend .lg{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--slate-600);font-weight:500}.grid-scroll{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 220px)}.roster{border-collapse:separate;border-spacing:0;width:-moz-max-content;width:max-content;min-width:100%}.roster th,.roster td{border-bottom:1px solid var(--line-2)}.roster thead th{position:sticky;top:0;z-index:3;background:var(--bg-2)}.rc-name{position:sticky;left:0;z-index:2;background:#fff;width:184px;min-width:184px;max-width:184px;padding:7px 14px;text-align:left;border-right:1px solid var(--line);box-shadow:6px 0 10px -8px #1e1e241f}thead .rc-name{z-index:5;background:var(--bg-2);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--slate-500);font-weight:600}.rc-day{min-width:58px;width:58px;padding:6px 2px;text-align:center;line-height:1}.rc-day .wd{display:block;font-size:10px;color:var(--slate-400);font-weight:600;text-transform:uppercase}.rc-day .dn{display:block;font-size:13px;font-weight:600;margin-top:2px}.rc-day.we{background:#f3f6f9}.roster tbody tr:nth-child(2n) td:not(.rc-name){background:#fbfcfd}.roster tbody tr:hover td,.roster tbody tr:hover .rc-name{background:var(--azzurro-050)}.rc-cell{padding:3px;text-align:center;position:relative}.rc-cell.we{background:#f6f8fa}.cell-btn{position:relative;width:100%;min-height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;transition:box-shadow .12s,background .12s;padding:2px}.cell-btn:hover{background:#6aaed61f;box-shadow:inset 0 0 0 1px var(--azzurro-300)}.cell-btn.editing{box-shadow:inset 0 0 0 2px var(--azzurro);background:var(--azzurro-050)}.cell-rest{width:14px;height:3px;border-radius:2px;background:#d7dee5}.cell-flag{position:absolute;top:1px;right:1px;width:9px;height:9px;border-radius:50%;border:1.5px solid #fff}.cell-flag.hard{background:var(--red)}.cell-flag.soft{background:var(--amber)}.rc-cell.flag-hard{background:#d9534f1a!important;box-shadow:inset 0 0 0 1.5px #d9534f8c;border-radius:4px}.rc-cell.flag-soft{background:#e8b84b21!important;box-shadow:inset 0 0 0 1.5px #e8b84b99;border-radius:4px}.roster.transposed{table-layout:fixed;width:100%;min-width:0}.roster.transposed .rc-collab{width:auto;min-width:0}.roster.transposed .rc-corner,.roster.transposed .rc-daycell{width:72px;min-width:72px}.roster.transposed th,.roster.transposed td{border-right:1px solid var(--line-2)}.roster.transposed .shift-pill{min-width:0;width:100%}.roster.transposed .shift-pill.times{font-size:9.5px;padding:3px 2px}.roster.transposed .shift-pill.times b{font-size:9.5px}.day-count{margin-left:auto;align-self:center;font-size:10px;font-weight:700;min-width:17px;height:16px;padding:0 4px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.day-count.ok{background:var(--green-100);color:var(--green-700)}.day-count.lo{background:var(--amber-100);color:var(--amber-700)}.day-count.hi{background:var(--red-100);color:var(--red-700)}.cell-btn[draggable=true]{cursor:grab}.cell-btn.dragging{opacity:.35}.rc-cell.drop-target{box-shadow:inset 0 0 0 2px var(--azzurro);border-radius:6px;background:var(--azzurro-050)!important}.rc-corner{position:sticky;top:0;left:0;z-index:6;background:var(--bg-2);width:78px;min-width:78px;border-right:1px solid var(--line);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate-500);font-weight:600;text-align:left;padding:0 10px}.rc-collab{position:sticky;top:0;z-index:4;background:var(--bg-2);min-width:66px;width:66px;padding:7px 3px 8px;text-align:center}.rc-collab .nm{display:block;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62px;margin:3px auto 0}.rc-daycell{position:sticky;left:0;z-index:2;background:#fff;width:78px;min-width:78px;border-right:1px solid var(--line);box-shadow:6px 0 10px -8px #1e1e241f;padding:6px 10px;display:flex;align-items:baseline;gap:7px}.rc-daycell .wd{font-size:10.5px;color:var(--slate-400);font-weight:600;text-transform:uppercase}.rc-daycell .dn{font-size:14px;font-weight:600}.roster.transposed tbody tr:nth-child(2n) td:not(.rc-daycell){background:#fbfcfd}.roster.transposed tbody tr.we td:not(.rc-daycell){background:#f6f8fa}.roster.transposed tbody tr.we .rc-daycell{background:#f3f6f9}.roster.transposed tbody tr.we-sab td:not(.rc-daycell){background:#eef3f7}.roster.transposed tbody tr.we-sab .rc-daycell{background:#e6eef5}.roster.transposed tbody tr.we-dom td:not(.rc-daycell){background:#e9edf6}.roster.transposed tbody tr.we-dom .rc-daycell{background:#dfe6f3}.roster.transposed tbody tr.we-dom .rc-daycell .dn{color:#4a5a86}.roster.transposed tbody tr.fest td:not(.rc-daycell){background:#d9534f12}.roster.transposed tbody tr.fest .rc-daycell{background:#d9534f21}.roster.transposed tbody tr.fest .rc-daycell .dn{color:var(--red-700)}.roster.transposed tbody tr:hover td,.roster.transposed tbody tr:hover .rc-daycell{background:var(--azzurro-050)}.mo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;align-items:start}.mo-row{border:1px solid var(--line-2);border-radius:var(--r);background:#fff}.mo-hd{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;background:none;border:none;cursor:pointer;text-align:left}.mo-hd:hover{background:var(--bg);border-radius:var(--r)}.mo-codes{display:flex;flex-wrap:wrap;gap:6px;padding:2px 11px 11px}.mo-code{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:7px;font-size:10.5px;font-weight:600;background:#f1f4f7;color:var(--slate-400);border:1px solid #e7ecf1}.mo-code.has{background:var(--azzurro-100);color:var(--azzurro-700);border-color:#cfe6f3}.mo-code .n{font-weight:700}.pop-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.cell-pop{position:absolute;top:36px;left:50%;transform:translate(-50%);z-index:60;width:230px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-pop);padding:10px}.pop-h{display:flex;align-items:center;gap:7px;padding:0 2px 9px;border-bottom:1px solid var(--line-2);margin-bottom:9px}.pop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.pop-opt{cursor:pointer;width:100%;border:none;transition:transform .1s}.pop-opt:hover{transform:translateY(-1px);filter:brightness(.97)}.pop-opt.sel{box-shadow:0 0 0 2px var(--azzurro),0 0 0 4px var(--azzurro-100)}.val-panel{position:sticky;top:calc(var(--header-h) + 16px)}.val-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.vs-card{border-radius:var(--r-lg);padding:14px;color:#fff}.vs-hard{background:linear-gradient(150deg,#e0635f,#c0413d)}.vs-soft{background:linear-gradient(150deg,#ebc063,#d49e2e)}.vs-card .vs-n{font-size:30px;font-weight:700;line-height:1;margin:8px 0 2px}.val-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 360px);overflow:auto;padding-right:2px}.val-item{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:12.5px}.val-item.hard{border-left:3px solid var(--red)}.val-item.soft{border-left:3px solid var(--amber)}.val-list.wide{display:block;-moz-column-width:320px;column-width:320px;-moz-column-gap:12px;column-gap:12px;max-height:280px}.val-list.wide .val-item{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:8px}.mo-bar{position:relative;height:7px;border-radius:5px;background:#edf1f5}.mo-bar span{position:absolute;left:0;top:0;bottom:0;border-radius:5px}.mo-bar i{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--slate-400);border-radius:2px}.collab-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh-1);transition:.15s}.collab-card:hover{border-color:var(--azzurro-300);box-shadow:var(--sh-2);transform:translateY(-2px)}.rule-row{display:flex;align-items:center;gap:11px;padding:9px 11px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r)}.fade-in{animation:pageIn .3s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important}}
