@font-face{font-family:"Marcellus";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/marcellus-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marcellus";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/marcellus-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/bricolage-grotesque-latin-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/bricolage-grotesque-latin-ext-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/hanken-grotesk-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:500;src:url(fonts/hanken-grotesk-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/hanken-grotesk-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:600;src:url(fonts/hanken-grotesk-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/hanken-grotesk-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/hanken-grotesk-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#F3F5F2; --surface:#FFFFFF; --ink:#0F1B2D; --ink2:#33415A; --muted:#66727F;
  --line:#E0E4DD; --line2:#ECEFEA;
  --cobalt:#1D4E9E; --cobalt-2:#2F66C4; --cobalt-soft:#E7EEF9;
  --lemon:#F2C94C; --lemon-soft:#FDF6DC; --lemon-ink:#7A5B00;
  --olive:#2F7D5B; --olive-soft:#E3F1EA;
  --red:#C8364B; --red-soft:#FBE8EB;
  --r-lg:18px; --r-md:12px; --r-sm:8px;
  --display:"Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;
  --ui:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{overflow-x:hidden}
body{font-family:var(--ui);color:var(--ink);background:var(--paper);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--cobalt-2);outline-offset:2px;border-radius:6px}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.neg{color:var(--red)}
.muted{color:var(--muted)}
.hidden{display:none!important}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;padding:22px 16px;display:flex;flex-direction:column;gap:26px;border-right:1px solid var(--line);background:var(--paper)}
.brand{display:flex;align-items:center;gap:11px;padding:0 6px}
.brand b{display:block;font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-.01em;line-height:1.1}
.brand span{font-size:13px;color:var(--muted)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;align-items:center;gap:11px;border:0;background:transparent;padding:9px 10px;border-radius:10px;text-align:left;color:var(--ink2);font-weight:500;transition:background .15s}
.nav button svg{width:18px;height:18px;flex:none;opacity:.75}
.nav button:hover{background:#E8ECE6}
.nav button[aria-current="page"]{background:var(--ink);color:#fff}
.nav button[aria-current="page"] svg{opacity:1}
.nav .badge{margin-left:auto;font-size:12px;font-weight:600;background:var(--red);color:#fff;border-radius:99px;padding:0 7px;line-height:19px}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.me img{width:32px;height:32px;border-radius:50%}
.me b{display:block;font-size:14px;font-weight:600;line-height:1.2}
.me span{font-size:12.5px;color:var(--muted)}

main{min-width:0;padding:22px 34px 60px}
.top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.top h1{font-family:var(--display);font-weight:600;font-size:28px;letter-spacing:-.02em;margin:0;margin-right:auto}
.period{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px}
.period button{border:0;background:transparent;width:34px;height:34px;border-radius:9px;display:grid;place-items:center}
.period button:hover{background:var(--paper)}
.period strong{min-width:150px;text-align:center;font-weight:600;font-size:15px}
.sync{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.sync.ok i{background:var(--olive);box-shadow:0 0 0 4px var(--olive-soft)}
.sync.wait i{background:var(--lemon);animation:pulse 1.2s infinite}
.sync.err i{background:var(--red)}
@keyframes pulse{50%{opacity:.35}}

.view{display:none}
.view.on{display:block;animation:viewIn .35s var(--ease)}
@keyframes viewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:18px 22px 0}
.panel-h h2{font-family:var(--display);font-size:18px;font-weight:600;margin:0;letter-spacing:-.01em}
.panel-h p{margin:0;color:var(--muted);font-size:13.5px}
.panel-h .act{margin-left:auto}
.grid2{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:18px}

.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:10px;font-weight:600;font-size:14px;transition:background .15s,border-color .15s,transform .1s}
.btn:hover{border-color:#C9CFC6}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.btn.primary:hover{background:#18448B}
.btn.ok{background:var(--olive);border-color:var(--olive);color:#fff}
.btn.danger{color:var(--red);border-color:#F0C3CA}
.btn.warn{background:var(--lemon);border-color:#E5B934;color:#3D2E00}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn svg{width:16px;height:16px}
.link{border:0;background:none;color:var(--cobalt);font-weight:600;padding:0;font-size:inherit}
.link:hover{text-decoration:underline}

/* ---------- hero ---------- */
.hero{padding:26px 26px 14px;position:relative;overflow:hidden}
.hero-top{display:flex;gap:30px;align-items:flex-end;flex-wrap:wrap}
.hero-label{font-size:14px;color:var(--muted);margin-bottom:2px}
.hero-big{font-family:var(--display);font-size:clamp(46px,6.2vw,76px);font-weight:600;letter-spacing:-.035em;line-height:.95;font-variation-settings:"opsz" 96}
.hero-big small{font-size:.36em;letter-spacing:0;font-weight:500;color:var(--muted);margin-left:8px}
.hero-facts{display:flex;gap:28px;margin-left:auto;flex-wrap:wrap;padding-bottom:6px}
.fact span{display:block;font-size:13px;color:var(--muted)}
.fact b{font-size:17px;font-weight:600}
.ribbon-wrap{position:relative;margin-top:18px}
#ribbon{display:block;width:100%;height:250px;overflow:visible}
#ribbon .axis text{font-size:11.5px;fill:var(--muted);font-family:var(--ui)}
#ribbon .grid line{stroke:var(--line2)}
#ribbon .zero{stroke:#B9C0B6;stroke-dasharray:3 4}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.45;min-width:170px;transform:translate(-50%,-110%);opacity:0;transition:opacity .12s;z-index:5;box-shadow:0 8px 24px rgba(15,27,45,.25)}
.tip.on{opacity:1}
.tip b{font-weight:600}
.tip .row{display:flex;justify-content:space-between;gap:16px}
.tip .row span{color:#A9B6CB}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding:6px 2px 0}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* ---------- KPI strip ---------- */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);margin-top:18px}
.kpi{padding:16px 18px;border-right:1px solid var(--line2)}
.kpi:last-child{border-right:0}
.kpi span{display:block;font-size:13px;color:var(--muted)}
.kpi b{display:block;font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:-.02em;margin:2px 0}
.kpi em{font-style:normal;font-size:12.5px;font-weight:600}
.up{color:var(--olive)} .down{color:var(--red)} .flat{color:var(--muted)}

/* ---------- insights ---------- */
.insights{list-style:none;margin:0;padding:12px 22px 20px}
.insights li{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line2)}
.insights li:last-child{border-bottom:0}
.insights .dot{width:10px;height:10px;border-radius:50%;margin-top:6px}
.sev-high .dot{background:var(--red)} .sev-mid .dot{background:var(--lemon)} .sev-info .dot{background:var(--cobalt)} .sev-good .dot{background:var(--olive)}
.insights p{margin:0;font-size:14.5px}
.insights p b{font-weight:600}
.insights .when{font-size:12.5px;color:var(--muted)}

/* ---------- calendar ---------- */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:16px 22px 22px}
.cal .wd{font-size:12px;color:var(--muted);text-align:center;padding-bottom:2px}
.day{position:relative;aspect-ratio:1/0.82;border-radius:10px;border:1px solid transparent;background:var(--paper);padding:6px 7px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;transition:transform .12s var(--ease),box-shadow .12s}
.day:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(15,27,45,.10)}
.day .d{font-size:12.5px;font-weight:600}
.day .v{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day.closed{background:repeating-linear-gradient(135deg,#EEF0EC 0 5px,#F6F7F5 5px 10px);color:var(--muted)}
.day.missing{background:var(--surface);border:1.5px dashed #E39AA6}
.day.missing .v{color:var(--red);font-weight:500}
.day.pending{border-color:#C9CFC6}
.day.future{background:transparent;border:1px solid var(--line2);color:#B3BAB1;pointer-events:none}
.day.today{box-shadow:0 0 0 2px var(--ink)}
.day.empty{visibility:hidden}

/* ---------- bars ---------- */
#bars{display:block;width:100%;height:220px}
#bars text{font-size:11.5px;fill:var(--muted);font-family:var(--ui)}

/* ---------- table ---------- */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.toolbar .spacer{flex:1}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:3px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.tablewrap{overflow:auto;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);max-height:calc(100vh - 190px)}
table.book{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px;min-width:1180px}
.book th,.book td{padding:9px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line2)}
.book thead th{position:sticky;top:0;background:#FAFBF9;font-weight:600;color:var(--ink2);z-index:2;font-size:12.5px}
.book thead tr:first-child th{top:0;font-family:var(--display);font-size:13.5px;color:var(--ink);border-bottom:0;padding-bottom:2px}
.book thead tr:nth-child(2) th{top:31px}
.book th.grp-r{color:var(--cobalt)} .book th.grp-b{color:var(--olive)}
.book td:first-child,.book th:first-child{text-align:left;position:sticky;left:0;background:inherit;z-index:1}
.book thead th:first-child{z-index:3}
.book tbody tr{background:var(--surface);cursor:pointer;transition:background .12s}
.book tbody tr:hover{background:#F6F8FC}
.book td.cash{font-weight:600}
.book td.sep,.book th.sep{border-left:1px solid var(--line)}
.book td.saldo{font-weight:700;font-family:var(--display)}
.book tr.closed td{color:#9AA39A;background:#FAFBF9}
.book tr.future td{color:#C2C8C0}
.book tr.missing td:first-child::after{content:"da registrare";margin-left:8px;font-size:11.5px;font-weight:600;color:var(--red);background:var(--red-soft);padding:1px 7px;border-radius:99px}
.book tfoot td{position:sticky;bottom:0;background:var(--ink);color:#fff;font-weight:600;border:0}
.book tfoot td:first-child{background:var(--ink)}
.dname{display:inline-block;width:28px;color:var(--muted);font-weight:500}
.flash{animation:flash 1.4s var(--ease)}
@keyframes flash{0%{background:var(--lemon-soft)}100%{background:var(--surface)}}

/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(15,27,45,.28);opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{visibility:hidden;position:fixed;top:0;right:0;height:100%;width:min(520px,100%);background:var(--surface);z-index:41;transform:translateX(102%);transition:transform .38s var(--ease);display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(15,27,45,.12)}
.drawer.on{transform:none;visibility:visible}
.drawer:not(.on){transition:transform .38s var(--ease),visibility 0s .38s}
.dr-h{display:flex;align-items:center;gap:8px;padding:18px 20px;border-bottom:1px solid var(--line)}
.dr-h h3{margin:0;font-family:var(--display);font-size:21px;font-weight:600;letter-spacing:-.01em;margin-right:auto}
.dr-h h3 small{display:block;font-family:var(--ui);font-size:13px;font-weight:500;color:var(--muted)}
.icon-btn{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;border-radius:10px;display:grid;place-items:center}
.icon-btn:hover{background:var(--paper)}
.icon-btn svg{width:17px;height:17px}
.dr-b{flex:1;overflow:auto;padding:16px 20px 24px}
.unit{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.unit h4{margin:0 0 10px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}
.unit h4 i{width:9px;height:9px;border-radius:3px}
.unit h4 .res{margin-left:auto;font-family:var(--display);font-size:17px}
.f4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fld label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:3px}
.fld input,.fld textarea,.fld select{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#FBFCFA;text-align:right;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}
.fld textarea,.fld select,.fld input.txt{text-align:left}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:var(--cobalt-2);background:#fff;box-shadow:0 0 0 3px var(--cobalt-soft)}
.fld input[readonly]{background:var(--paper);color:var(--ink2)}
.formula{font-size:12.5px;color:var(--muted);margin-top:8px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.summary{margin-top:6px;border-radius:14px;background:var(--ink);color:#fff;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:14px}
.summary span{color:#A9B6CB}
.summary b{text-align:right;font-weight:600}
.summary .tot{font-family:var(--display);font-size:22px}
.dr-f{display:flex;gap:10px;align-items:center;padding:14px 20px;border-top:1px solid var(--line)}
.dr-f .hint{font-size:12.5px;color:var(--muted);margin-right:auto}
.switch{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;margin:4px 0 14px}
.switch input{width:18px;height:18px;accent-color:var(--ink)}

/* ---------- import ---------- */
.drop{border:2px dashed #C9D3E3;border-radius:var(--r-lg);background:var(--surface);padding:42px 24px;text-align:center;transition:background .2s,border-color .2s}
.drop.over{background:var(--cobalt-soft);border-color:var(--cobalt-2)}
.drop h3{font-family:var(--display);font-size:22px;font-weight:600;margin:10px 0 4px}
.drop p{margin:0 0 16px;color:var(--muted)}
.steps{display:grid;grid-template-columns:340px 1fr;gap:18px;margin-top:18px}
.mapper{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.mapper .fld select{text-align:left}
.chips{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow:auto}
.chip{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:3px 10px;font-size:12.5px;font-weight:500}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.prev{max-height:520px;overflow:auto}
.prev table{width:100%;border-collapse:collapse;font-size:13.5px}
.prev th,.prev td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--line2)}
.prev th:first-child,.prev td:first-child,.prev th:nth-child(2),.prev td:nth-child(2){text-align:left}
.prev thead th{position:sticky;top:0;background:#FAFBF9;font-weight:600;font-size:12.5px}
.pill{display:inline-block;font-size:12px;font-weight:600;border-radius:99px;padding:1px 9px}
.pill.new{background:var(--cobalt-soft);color:var(--cobalt)}
.pill.same{background:var(--line2);color:var(--muted)}
.pill.chg{background:var(--lemon-soft);color:var(--lemon-ink)}
.progress{height:6px;border-radius:99px;background:var(--line2);overflow:hidden;margin-top:10px}
.progress i{display:block;height:100%;width:0;background:var(--cobalt);transition:width .2s}
.stat-line{display:flex;gap:18px;flex-wrap:wrap;font-size:13.5px;color:var(--muted);padding:12px 20px;border-bottom:1px solid var(--line2)}
.stat-line b{color:var(--ink)}

/* ---------- review ---------- */
.rev{display:grid;grid-template-columns:330px 1fr;gap:18px}
.months{padding:8px}
.mrow{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:12px}
.mrow:hover{background:var(--paper)}
.mrow[aria-current="true"]{background:var(--cobalt-soft)}
.mrow b{font-weight:600}
.mrow small{color:var(--muted);font-size:12.5px;grid-column:1}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;border-radius:99px;padding:2px 10px;white-space:nowrap}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st-open{background:var(--line2);color:var(--muted)}
.st-ok{background:var(--olive-soft);color:var(--olive)}
.st-question{background:var(--lemon-soft);color:var(--lemon-ink)}
.st-changed{background:var(--red-soft);color:var(--red)}
.thread{list-style:none;margin:0;padding:0 22px}
.thread li{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line2)}
.thread img{width:30px;height:30px;border-radius:50%}
.thread .who{font-size:13px;color:var(--muted)}
.thread .who b{color:var(--ink);font-weight:600;margin-right:6px}
.thread p{margin:2px 0 0;white-space:pre-wrap}
.thread .sys p{color:var(--muted);font-style:italic}
.compose{padding:14px 22px 20px;display:flex;flex-direction:column;gap:10px}
.compose textarea{width:100%;min-height:76px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;resize:vertical;background:#FBFCFA}
.compose .row{display:flex;gap:8px;flex-wrap:wrap}
.audit{list-style:none;margin:0;padding:6px 22px 18px;font-size:13.5px}
.audit li{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line2)}
.audit li span{color:var(--muted)}
.mstats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:14px 22px 4px;border:1px solid var(--line2);border-radius:12px}
.mstats div{padding:10px 14px;border-right:1px solid var(--line2)}
.mstats div:last-child{border-right:0}
.mstats span{display:block;font-size:12.5px;color:var(--muted)}
.mstats b{font-weight:600}

/* ---------- settings ---------- */
.set{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.set .panel{padding-bottom:18px}
.set .body{padding:14px 22px 0;display:flex;flex-direction:column;gap:12px}
.wds{display:flex;gap:6px;flex-wrap:wrap}
.terms{display:flex;flex-direction:column;gap:8px}
.terms .t{display:grid;grid-template-columns:1fr 150px 36px;gap:8px}
.steps-list{margin:0;padding:0 0 0 20px;color:var(--ink2)}
.steps-list li{margin:6px 0}
.note{font-size:13.5px;color:var(--muted);margin:0}

/* ---------- misc ---------- */
.empty-state{padding:40px 22px;text-align:center;color:var(--muted)}
.empty-state h3{font-family:var(--display);color:var(--ink);margin:0 0 6px;font-size:20px;font-weight:600}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:11px 18px;border-radius:12px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s var(--ease);z-index:60;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--red)}
.banner{display:flex;gap:12px;align-items:center;background:var(--lemon-soft);border:1px solid #F1DE9C;color:#4B3A00;border-radius:14px;padding:12px 16px;margin-bottom:18px;font-size:14px}
.ro-note{font-size:13px;color:var(--muted)}

@media (max-width:1180px){
  .kpis{grid-template-columns:repeat(3,1fr)}
  .kpi:nth-child(3){border-right:0}
  .kpi:nth-child(-n+3){border-bottom:1px solid var(--line2)}
  .grid2,.steps,.rev,.set{grid-template-columns:1fr}
}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;bottom:0;top:auto;left:0;right:0;height:auto;flex-direction:row;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);z-index:30;background:rgba(243,245,242,.96);backdrop-filter:blur(8px)}
  .brand,.me{display:none}
  .nav{flex-direction:row;justify-content:space-around;width:100%}
  .nav button{flex-direction:column;gap:2px;font-size:11px;padding:6px 8px}
  .nav .badge{display:none}
  main{padding:16px 14px 100px}
  .top h1{font-size:23px;width:100%}
  .hero{padding:18px 16px 10px}
  .hero-facts{margin-left:0;gap:18px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .kpi{border-right:0;border-bottom:1px solid var(--line2)}
  .f4{grid-template-columns:repeat(2,1fr)}
  .mstats{grid-template-columns:repeat(2,1fr)}
  .cal{gap:4px;padding:12px}
  .day .v{font-size:10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ---------- auth ---------- */
body.locked{overflow:hidden}
.auth{position:fixed;inset:0;z-index:80;display:grid;grid-template-columns:minmax(320px,44%) 1fr;background:var(--paper)}
.auth-art{position:relative;background:var(--cobalt);color:#fff;padding:48px 44px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.auth-art .tile{position:absolute;inset:0;width:100%;height:100%}
.auth-art .tile rect{width:100%;height:100%}
.auth-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,78,158,0) 35%,rgba(16,46,98,.94) 78%)}
.auth-brand,.auth-claim,.auth-sec{position:relative;z-index:1}
.auth-brand b{display:block;font-family:var(--display);font-size:clamp(48px,6vw,84px);font-weight:600;letter-spacing:-.035em;line-height:.9}
.auth-brand span{font-family:var(--display);font-size:22px;color:var(--lemon)}
.auth-claim{max-width:30ch;font-size:17px;line-height:1.45;margin:22px 0 18px;color:#E6EDF8}
.auth-sec{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:#C9D6EE}
.auth-sec li::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lemon);margin-right:10px;vertical-align:1px}
.auth-panel{display:grid;place-items:center;padding:32px 24px;overflow:auto}
#authForm{width:min(400px,100%);display:flex;flex-direction:column;gap:14px;animation:viewIn .35s var(--ease)}
#authForm h1{font-family:var(--display);font-size:30px;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.1}
#authForm .lead{margin:0 0 6px;color:var(--muted)}
#authForm .fld input{text-align:left;padding:11px 12px;font-size:16px}
#authForm .btn.wide{justify-content:center;padding:12px;font-size:15px;margin-top:4px}
#authForm .alt{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
#authForm[aria-busy="true"]{opacity:.7}
#aCode{letter-spacing:.4em;font-size:22px!important;text-align:center!important;font-variant-numeric:tabular-nums}
.aerr{margin:0;padding:10px 12px;border-radius:10px;background:var(--red-soft);color:#8E1F31;font-size:14px}
.ainfo{margin:0;padding:10px 12px;border-radius:10px;background:var(--cobalt-soft);color:var(--cobalt);font-size:14px}
.meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:-6px}
.meter i{height:4px;border-radius:2px;background:var(--line)}
.meter[data-s="1"] i:nth-child(-n+1){background:var(--red)}
.meter[data-s="2"] i:nth-child(-n+2){background:var(--lemon)}
.meter[data-s="3"] i:nth-child(-n+3){background:var(--olive)}
.meter[data-s="4"] i{background:var(--olive)}
.enroll{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;color:var(--ink2)}
.qr{margin:10px 0 4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;width:max-content}
.qr img{display:block;width:180px;height:180px}
.secret{display:block;font-size:14px;background:var(--paper);border-radius:8px;padding:8px 10px;word-break:break-all;margin-top:6px;user-select:all}
details summary{cursor:pointer;color:var(--cobalt);font-weight:600;font-size:14px}
.me .icon-btn{margin-left:auto;width:32px;height:32px}
.row-btns{display:flex;gap:8px}
.btn.sm{padding:5px 10px;font-size:13px}
.people{list-style:none;margin:0;padding:0}
.people li{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line2)}
.people img{width:32px;height:32px;border-radius:50%}
.people b{display:block;font-weight:600}
.people span{font-size:13px;color:var(--muted)}
.invite{display:grid;grid-template-columns:1fr 210px auto;gap:8px;align-items:end}
.invite .fld select{text-align:left}
@media (max-width:820px){
  .auth{grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow:auto}
  .auth-art{padding:28px 22px 22px;min-height:0}
  .auth-brand b{font-size:44px}
  .auth-claim,.auth-sec{display:none}
  .invite{grid-template-columns:1fr}
}

/* ================= Personale ================= */
#v-personale .body,#v-mieore .body{padding:14px 22px 18px;display:flex;flex-direction:column;gap:12px}
.st-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 16px;border-bottom:1px solid var(--line)}
.st-tabs button{border:0;background:transparent;padding:9px 14px 11px;font-weight:600;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;gap:6px;align-items:center}
.st-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--cobalt)}
.st-tabs .badge{background:var(--red);color:#fff;border-radius:99px;font-size:11px;padding:1px 6px}
.st-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.st-card{text-align:left;padding:16px 18px;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,transform .15s}
.st-card:hover{border-color:var(--cobalt-2);transform:translateY(-1px)}
.st-card-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.st-card-h b{font-family:var(--display);font-size:17px;font-weight:600}
.st-card-h span{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.st-big{font-family:var(--display);font-size:30px;font-weight:600;letter-spacing:-.02em}
.st-big small{font-size:13px;color:var(--muted);font-family:var(--ui);font-weight:500;margin-left:6px}
.st-dl{display:grid;grid-template-columns:1fr auto;gap:3px 10px;margin:6px 0 0;font-size:13.5px}
.st-dl dt{color:var(--muted)} .st-dl dd{margin:0;font-weight:600;text-align:right}
.st-acc{margin:6px 0 0;font-size:12.5px;padding-top:8px;border-top:1px solid var(--line2)}
.acc-ok{color:var(--olive)} .acc-wait{color:var(--lemon-ink)} .acc-warn{color:var(--red)}
.st-log,.st-list{list-style:none;margin:0;padding:0;font-size:13.5px}
.st-log li{padding:5px 0;border-bottom:1px solid var(--line2);display:flex;gap:8px;align-items:center}
.st-list li{padding:10px 22px;border-bottom:1px solid var(--line2);display:flex;gap:10px;justify-content:space-between;align-items:center}
.st-list.adj li{align-items:flex-start}
.st-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.st-note{font-size:12.5px;color:var(--muted);margin-top:2px}
.st-h4{margin:8px 0 0;font-family:var(--display);font-weight:600;font-size:15px}
.st-emps{max-height:none;margin:0 0 14px}
.st-emps .chip{padding:6px 14px;font-size:13.5px}
.st-kpis{grid-template-columns:repeat(5,1fr);margin:0 0 16px}
.st-kpis.mine{grid-template-columns:repeat(4,1fr)}
/* piano */
.st-plan{border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:100%}
.st-plan th,.st-plan td{padding:0;text-align:center;border-bottom:1px solid var(--line2)}
.st-plan thead th{font-weight:600;color:var(--muted);padding:8px 0 6px;min-width:34px;font-size:12px;line-height:1.2}
.st-plan thead th span{display:block;font-size:10.5px;font-weight:500}
.st-plan thead th.we{color:var(--ink)} .st-plan thead th.cl{opacity:.5} .st-plan thead th.today{color:var(--cobalt)}
.st-plan .sticky{position:sticky;left:0;background:var(--surface);text-align:left;padding:8px 12px;min-width:120px;z-index:1;border-right:1px solid var(--line2)}
.st-plan tbody th b{display:block;font-size:13.5px} .st-plan tbody th span{font-size:11.5px;color:var(--muted);font-weight:500}
.pc{height:38px;font-weight:700;cursor:default;border-left:1px solid var(--surface)}
.pc[role=button]{cursor:pointer} .pc[role=button]:hover,.pc:focus-visible{outline:2px solid var(--cobalt);outline-offset:-2px}
.k-lavoro{background:var(--cobalt-soft);color:var(--cobalt)}
.k-riposo{background:var(--paper);color:var(--muted)}
.k-ferie{background:var(--olive-soft);color:var(--olive)}
.k-festivo{background:var(--lemon-soft);color:var(--lemon-ink)}
.k-malattia,.k-infortunio{background:var(--red-soft);color:var(--red)}
.k-chiuso{background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 4px,#E7EAE4 4px,#E7EAE4 8px);color:var(--muted)}
.k-none{background:#fff}
.pc.ed{box-shadow:inset 0 -3px 0 var(--lemon)}
.st-plan tr.cov th{font-weight:600;font-size:12.5px} .cv{font-size:12px;color:var(--muted);height:28px}
.cv.c0{background:var(--red-soft);color:var(--red);font-weight:700} .cv.c1{background:var(--lemon-soft);color:var(--lemon-ink);font-weight:700}
.st-legend{padding:12px 22px 16px} .st-legend i{border:1px solid var(--line)}
.st-legend .ed-i{background:#fff;box-shadow:inset 0 -3px 0 var(--lemon)} .st-legend .c0-i{background:var(--red-soft)}
/* ore */
.st-hours td{white-space:normal} .st-hours tr[data-day]{cursor:pointer}
.st-hours tr.st-ed td{background:var(--lemon-soft)}
.st-hours tr.st-week td{background:var(--paper);font-weight:600;font-size:12.5px;color:var(--ink2)}
.st-hours td.pos{color:var(--olive)} .st-hours td.neg{color:var(--red)}
.st-tag{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:99px}
.st-tag.d{background:var(--lemon-soft);color:var(--lemon-ink)} .st-tag.t{background:var(--cobalt-soft);color:var(--cobalt)}
.st-ai p{margin:0 0 10px;font-size:14.5px;line-height:1.55;color:var(--ink2)}
/* popup */
.st-pop-wrap{position:fixed;inset:0;background:rgba(15,27,45,.36);display:grid;place-items:center;z-index:70;padding:16px;animation:viewIn .2s var(--ease)}
.st-pop{background:var(--surface);border-radius:var(--r-lg);width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 60px rgba(15,27,45,.25)}
.pop-h{display:flex;align-items:flex-start;gap:10px}
.pop-h h3{margin:0;flex:1;font-family:var(--display);font-size:19px;font-weight:600}
.pop-h h3 small{display:block;font-family:var(--ui);font-size:13px;color:var(--muted);font-weight:500;margin-top:2px}
.pop-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:6px}
.segrow{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;align-items:center;margin-bottom:6px}
.segrow input{min-width:0}
.st-pop .chips{max-height:none}
.st-pop .chip{padding:6px 12px;font-size:13.5px;display:inline-flex;flex-direction:column;align-items:flex-start}
.st-pop .chip small{font-size:11px;opacity:.75;font-weight:500}
.st-pop .seg{flex-wrap:wrap}
.row-btns{flex-wrap:wrap}
/* le mie ore */
.st-mine{list-style:none;margin:0;padding:6px 0 4px}
.st-mine li{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:10px 22px;border-bottom:1px solid var(--line2)}
.st-mine li.today{background:var(--cobalt-soft)} .st-mine li.st-ed{background:var(--lemon-soft)} .st-mine li.future{opacity:.62}
.md-d{text-align:center;line-height:1.1} .md-d b{display:block;font-size:12px;color:var(--muted)} .md-d span{font-family:var(--display);font-size:20px;font-weight:600}
.md-b{font-size:14px}
@media (max-width:1180px){ .st-kpis{grid-template-columns:repeat(3,1fr)} }
@media (max-width:820px){
  .st-kpis,.st-kpis.mine{grid-template-columns:repeat(2,1fr)}
  .st-mine li{padding:10px 14px}
  .st-list li{padding:10px 14px}
  .st-tabs{overflow-x:auto;flex-wrap:nowrap}
  .st-tabs button{white-space:nowrap}
}

.st-hours th,.st-hours td{text-align:left}
.st-hours td.num,.st-hours th.num{text-align:right;white-space:nowrap}
.md-b b{white-space:nowrap}
#v-personale .body>.btn,#v-personale .body>label.btn,#v-personale .body>p>.btn{align-self:flex-start}
.st-plan tr.cov th b{display:block;font-size:12.5px}
@media (max-width:820px){ .nav{overflow-x:auto;justify-content:flex-start} .nav button{padding:6px 5px;font-size:10.5px;flex:1 0 auto} }

.rv-list{display:flex;flex-direction:column;gap:8px}
.rv-card{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;font-size:14px}
.rv-card input{margin-top:3px;width:18px;height:18px}
.rv-nums{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;color:var(--ink2);font-size:13.5px}
.rv-warn{margin-top:6px;font-size:13px;color:var(--lemon-ink);background:var(--lemon-soft);padding:6px 10px;border-radius:8px}
.st-pop .link{background:none;border:0;color:var(--cobalt);font-weight:600;padding:0;cursor:pointer}


/* ================= Gestionale Siculus: identità =================
   Dal logo: il disco color cielo, le gambe della trinacria in terracotta, il grano, la vite e l'uva.
   Marcellus (lettere da iscrizione, come "SICULUS" nel logo) per nomi e titoli; Hanken per i dati. */
:root{
  --paper:#EEF2F6; --surface:#FFFFFF; --ink:#18212F; --ink2:#34405A; --muted:#647083;
  --line:#DCE3EA; --line2:#E9EEF3;
  --cobalt:#21467C; --cobalt-2:#3C6AAB; --cobalt-soft:#E2EBF5;
  --cielo:#8DB4DE; --cielo-soft:#E6EFF8;
  --terra:#B2593A; --terra-soft:#F6E5DD;
  --lemon:#D9A33B; --lemon-soft:#F9EFD9; --lemon-ink:#765212;
  --olive:#4A7A3A; --olive-soft:#E4EEDD;
  --uva:#5B2E56;
  --display:"Marcellus", Georgia, serif;
}
body{background:var(--paper)}
.top h1,.panel-h h2,.brand b,.auth-brand b,.st-card-h b,.pop-h h3,.st-h4,.dr-h h3{font-weight:400;letter-spacing:.01em;font-variation-settings:normal}
.top h1{font-size:30px}
.panel-h h2{font-size:19px}
.kpi b{font-family:var(--ui);font-weight:600;letter-spacing:-.01em;font-size:24px}
.st-big{font-family:var(--ui)!important;font-weight:600!important;letter-spacing:-.02em!important}
.hero-big{font-weight:400;letter-spacing:0;font-variation-settings:normal}
.st-big{font-weight:400;letter-spacing:0}
.nav button:hover{background:#E1E8EF}
.nav button[aria-current="page"]{background:var(--cobalt);color:#fff}
.side{background:linear-gradient(180deg,#F4F7FA 0,var(--paper) 280px)}
.brand{gap:12px}
.brand img{width:40px;height:auto;flex:none}
.brand b{font-size:23px;line-height:1}
.brand span{font-family:var(--display);font-size:13px;color:var(--terra);letter-spacing:.06em}
.auth-brand{display:flex;align-items:center;gap:18px}
.auth-brand img{width:clamp(64px,8vw,104px);height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25))}
.auth-brand b{letter-spacing:.01em}
.auth-brand span{letter-spacing:.06em}

/* hero: il disco del logo è il quadrante del mese */
.hero{background:radial-gradient(120% 140% at 0% 0%,var(--cielo-soft) 0,#fff 46%)}
.hero-top{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center}
.hero-main{min-width:0}
.dial{position:relative;width:184px;height:184px;perspective:700px}
.dial svg{position:absolute;inset:0;transform:rotate(-90deg)}
.dial circle{fill:none;stroke-width:8}
.dial-bg{stroke:var(--line2)}
.dial-prev{stroke:var(--cielo);opacity:.35}
.dial-cur{stroke:var(--terra);stroke-linecap:round;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1)}
.coin{position:absolute;inset:16px;border-radius:50%;display:grid;place-items:center;transform-style:preserve-3d}
.coin img{width:86%;height:auto;filter:drop-shadow(0 6px 10px rgba(24,33,47,.16))}
.dial.intro .coin{animation:coin 1.5s cubic-bezier(.3,.7,.2,1) both}
.dial.intro .dial-cur{transition-delay:.5s}
@keyframes coin{0%{transform:rotateY(-180deg) scale(.7);opacity:0}45%{opacity:1}100%{transform:rotateY(0) scale(1);opacity:1}}
.hero-month{margin:8px 0 0;font-size:15px;color:var(--ink2)}
.hero-month b{color:var(--ink)}
.hero-team{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:12px;align-items:center}
.hero-team:empty{display:none}
.ht-l{font-size:13px;color:var(--muted);margin-right:2px}
.ht{font-size:13px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:3px 10px 3px 4px;display:inline-flex;gap:6px;align-items:center;color:var(--ink2)}
.ht b{background:var(--cobalt);color:#fff;border-radius:99px;padding:1px 8px;font-weight:600}
.ht-l.ht-malattia,.ht-l.ht-infortunio{margin-left:8px;color:var(--red)} .ht-l.ht-ferie{margin-left:8px;color:var(--olive)}
.ht.ht-malattia b,.ht.ht-infortunio b{background:var(--red)} .ht.ht-ferie b{background:var(--olive)}
.hero-facts{flex-direction:column;gap:12px;margin-left:0;align-self:start;padding:4px 0 0 22px;border-left:1px solid var(--line)}
@media (max-width:1100px){ .hero-top{grid-template-columns:auto 1fr} .hero-facts{grid-column:1/-1;flex-direction:row;border-left:0;padding:0;flex-wrap:wrap;gap:22px} }
@media (max-width:820px){
  .hero-top{grid-template-columns:1fr;justify-items:start;gap:16px}
  .dial{width:132px;height:132px}
  .coin{inset:12px}
  .brand img{width:34px}
}
@media (prefers-reduced-motion:reduce){ .dial.intro .coin{animation:none} .dial-cur{transition:none} }
.grid2>*{min-width:0}
.insights p{overflow-wrap:anywhere;min-width:0}
@media (max-width:820px){
  .hero-top{grid-template-columns:auto 1fr;align-items:center}
  .dial{width:96px;height:96px} .dial circle{stroke-width:10} .coin{inset:9px}
  .hero-main{display:contents}
  .hero-label{grid-column:2;align-self:end}
  .hero-big{grid-column:1/-1;font-size:48px}
  .hero-month,.hero-team{grid-column:1/-1;margin:0}
}
.cal{grid-template-columns:repeat(7,minmax(0,1fr))}
@media (max-width:820px){ .cal .day{padding:5px 4px;min-width:0} .cal .day .v{font-size:10.5px;overflow:hidden;text-overflow:ellipsis} }

/* ================= Area dipendenti ================= */
.my-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px;margin:0 0 16px;position:sticky;top:8px;z-index:5;box-shadow:0 6px 18px rgba(24,33,47,.06)}
.my-tabs button{flex:1;border:0;background:transparent;padding:10px 6px;border-radius:10px;font-weight:600;font-size:14px;color:var(--ink2);display:inline-flex;justify-content:center;gap:6px;align-items:center}
.my-tabs button[aria-selected="true"]{background:var(--cobalt);color:#fff}
.my-tabs .badge{background:var(--terra);color:#fff;border-radius:99px;font-size:11px;padding:1px 6px}
.my-date{margin:-4px 2px 12px;color:var(--muted);font-size:15px}
.next{position:relative;overflow:hidden;border-radius:22px;padding:22px 22px 20px;color:#fff;background:linear-gradient(135deg,#21467C 0%,#2E5D9C 55%,#5F8FC8 100%);box-shadow:0 18px 40px rgba(33,70,124,.28);margin-bottom:14px}
.next::after{content:"";position:absolute;right:-50px;top:-50px;width:210px;height:210px;border-radius:50%;background:url(img/siculus.png) center/86% no-repeat,rgba(255,255,255,.12);opacity:.22;transform:rotate(-12deg)}
.next-when{font-family:var(--display);font-size:26px;line-height:1.1}
.next-when span{display:block;font-family:var(--ui);font-size:14px;opacity:.85;margin-top:4px}
.next-area{margin-top:14px;font-weight:600;font-size:16px}
.next-area small{font-weight:500;opacity:.8;font-size:13px;margin-left:4px}
.next-times{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px;font-family:var(--display);font-size:34px;line-height:1.1;position:relative;z-index:1}
.next-times i{font-style:normal;opacity:.6;margin:0 4px}
.next-tot{margin-top:8px;font-size:14px;opacity:.9;position:relative;z-index:1}
.my-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.my-stats>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.my-stats span{display:block;font-size:12.5px;color:var(--muted)}
.my-stats b{display:block;font-size:24px;font-weight:600;letter-spacing:-.01em;margin:2px 0}
.my-stats b.neg{color:var(--red)}
.my-stats em{font-style:normal;font-size:12px;color:var(--muted)}
.wks{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:4px 16px 16px}
.wk{border-radius:12px;padding:8px 2px;text-align:center;display:flex;flex-direction:column;gap:2px;font-size:12px}
.wk b{font-weight:600;font-size:11.5px} .wk span{font-family:var(--display);font-size:19px} .wk em{font-style:normal;font-size:11px;opacity:.85}
.wk.now{outline:2px solid var(--terra);outline-offset:1px} .wk.past{opacity:.55}
.my-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:4px 16px 14px}
.mc-h{text-align:center;font-size:12px;color:var(--muted);font-weight:600;padding:4px 0}
.mc{min-height:62px;border-radius:10px;padding:5px 6px;display:flex;flex-direction:column;font-size:11.5px;gap:1px}
.mc b{font-family:var(--display);font-weight:400;font-size:16px}
.mc.empty{background:transparent} .mc.now{outline:2px solid var(--terra);outline-offset:1px}
.mlist{display:none;list-style:none;margin:0;padding:0 0 6px}
.mlist li{display:grid;grid-template-columns:64px 1fr;gap:2px 10px;padding:9px 16px;border-bottom:1px solid var(--line2);font-size:14px}
.mlist li em{grid-column:2;font-style:normal;color:var(--muted);font-size:13px}
.mlist li.now{background:var(--cobalt-soft)} .mlist li.past{opacity:.55}
.chat .panel-h p{max-width:46ch}
.chat-log{display:flex;flex-direction:column;gap:8px;padding:6px 16px 10px;max-height:min(56vh,520px);overflow-y:auto}
.msg{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.45;white-space:normal}
.msg.user{align-self:flex-end;background:var(--cobalt);color:#fff;border-bottom-right-radius:5px}
.msg.assistant{align-self:flex-start;background:var(--cielo-soft);color:var(--ink);border-bottom-left-radius:5px}
.typing{display:flex;gap:4px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--cobalt-2);animation:dot 1s infinite ease-in-out}
.typing i:nth-child(2){animation-delay:.15s} .typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.chat-sug{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.chat-sug .chip{font-size:13px;padding:6px 11px}
.chat-in{display:flex;gap:8px;padding:10px 16px 16px;border-top:1px solid var(--line2);align-items:flex-end}
.chat-in textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font:inherit;font-size:15px;min-height:44px}
.chat-in textarea:focus{outline:2px solid var(--cobalt-2);outline-offset:0}
.rq-list{list-style:none;margin:0;padding:0}
.rq{padding:12px 22px;border-bottom:1px solid var(--line2);font-size:14px}
.rq p{margin:4px 0 0}
.rq-top{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.rq-top span{color:var(--ink2)}
.rq-top em{margin-left:auto;font-style:normal;font-size:12px;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--line2);color:var(--ink2)}
.rq-aperta .rq-top em{background:var(--lemon-soft);color:var(--lemon-ink)}
.rq-approvata .rq-top em{background:var(--olive-soft);color:var(--olive)}
.rq-rifiutata .rq-top em{background:var(--red-soft);color:var(--red)}
.rq-ans{background:var(--cielo-soft);border-radius:10px;padding:7px 10px}
.rq-meta{margin-top:6px;font-size:12px;color:var(--muted)}
.rq-meta .link{background:none;border:0;color:var(--cobalt);font-weight:600;cursor:pointer;padding:0;margin-left:8px}
.rq-panel{margin-bottom:16px;border-color:var(--terra)}
.rq-list.adm .rq{display:flex;flex-direction:column;gap:8px}
.rq-list.adm .rq-top em{margin-left:0}
.rq-sep{padding:10px 22px 4px;font-size:12.5px;color:var(--muted);font-weight:600}
.rq-new summary{cursor:pointer;font-weight:600;color:var(--cobalt)}
.rq-new[open]{display:flex;flex-direction:column;gap:10px}
.ai-plan{margin-bottom:14px}
.ai-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ai-row p{margin:2px 0 0}
.draft-bar{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;background:var(--terra-soft);border-radius:12px;padding:14px 16px}
.draft-bar p{margin:4px 0 0;max-width:70ch}
.rules summary{cursor:pointer;color:var(--cobalt);font-weight:600}
.rules textarea{width:100%;margin:8px 0;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;font-size:13.5px}
.pc.draft{outline:2px dashed var(--terra);outline-offset:-3px}
@media (max-width:820px){
  .mcal{display:none} .mlist{display:block}
  .next-times{font-size:28px}
  .my-stats b{font-size:20px}
  .my-tabs{top:4px}
  .rq{padding:12px 14px}
}
#printArea{display:none}
@media print{
  body.printing>*:not(#printArea){display:none!important}
  body.printing #printArea{display:block;font-family:var(--ui);color:#111;padding:0}
  @page{size:A4;margin:16mm 14mm}
  .pr-head{display:flex;gap:14px;align-items:center;border-bottom:3px solid #B2593A;padding-bottom:10px;margin-bottom:14px}
  .pr-head img{width:58px}
  .pr-head b{display:block;font-family:var(--display);font-size:26px;font-weight:400}
  .pr-head span{font-size:11px;color:#555}
  #printArea h1{font-family:var(--display);font-weight:400;font-size:22px;margin:0}
  #printArea h2{font-size:14px;font-weight:600;margin:2px 0 12px;color:#333}
  #printArea table{width:100%;border-collapse:collapse;font-size:11.5px}
  #printArea th{text-align:left;border-bottom:1.5px solid #21467C;padding:5px 6px;color:#21467C}
  #printArea td{border-bottom:1px solid #ddd;padding:4px 6px}
  #printArea .r{text-align:right}
  #printArea tr.off td{color:#888}
  #printArea tr.ed td{background:#FDF6DC}
  #printArea small{color:#666}
  .pr-kpi{display:flex;gap:10px;margin:0 0 12px}
  .pr-kpi div{flex:1;border:1px solid #ddd;border-radius:8px;padding:6px 8px}
  .pr-kpi span{display:block;font-size:10px;color:#666} .pr-kpi b{font-size:14px}
  .pr-note,.pr-foot{font-size:10px;color:#666;margin-top:10px}
}
.next-times,.wk span,.mc b,.md-d span,.mlist b{font-family:var(--ui);font-weight:600;letter-spacing:-.02em}
.next-times{font-size:30px}
@media (max-width:820px){ body.is-emp .nav{display:none} body.is-emp .main{padding-bottom:24px} .next-times{font-size:26px} }


/* ================= Cruscotto e rifiniture (novembre 2026) =================
   Il lato del gestionale prende il blu mare del logo; i pannelli si staccano dal fondo con un'ombra leggera.
   Nei grafici: terracotta = oggi, cielo = giornata tipica o previsione, cobalto = Ristorante, oliva = Bottega. */
:root{ --mare:#17335E; --mare-2:#1F4378; --shadow:0 1px 0 rgba(24,33,47,.03),0 14px 34px -22px rgba(24,33,47,.28) }
.panel{box-shadow:var(--shadow)}
.tablewrap{box-shadow:var(--shadow)}
.up{color:var(--olive)} .down{color:var(--red)}

/* lato */
.side{background:var(--mare);background-image:radial-gradient(90% 50% at 0% 0%,rgba(141,180,222,.22) 0,transparent 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.045' stroke-width='1'%3E%3Cpath d='M28 4l6 18 18 6-18 6-6 18-6-18-18-6 18-6z'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3Cpath d='M0 0l8 8M56 0l-8 8M0 56l8-8M56 56l-8-8'/%3E%3C/g%3E%3C/svg%3E");border-right:0;color:#fff}
.brand b{color:#fff}
.brand span{color:#E9B79F}
.nav button{color:#C9D6E8;position:relative}
.nav button svg{opacity:.85}
.nav button:hover{background:rgba(255,255,255,.08);color:#fff}
.nav button[aria-current="page"]{background:#fff;color:var(--mare);font-weight:600;box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
.nav button[aria-current="page"]::before{content:"";position:absolute;left:-16px;top:9px;bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--terra)}
.side :focus-visible{outline-color:#fff}
.me{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}
.me b{color:#fff} .me span{color:#A9BBD3}
.me .icon-btn{background:transparent;border-color:rgba(255,255,255,.2);color:#fff}
.me .icon-btn:hover{background:rgba(255,255,255,.12)}
@media (max-width:820px){
  .side{background:rgba(23,51,94,.97);background-image:none;border-top:0}
  .nav button[aria-current="page"]::before{display:none}
  .nav button[aria-current="page"]{box-shadow:none}
}

/* barra della Panoramica */
.cr-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-6px 0 14px}
.cr-sync{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;margin-left:auto}
.cr-sync i{width:8px;height:8px;border-radius:50%;background:var(--olive);box-shadow:0 0 0 4px var(--olive-soft)}
.seg button[aria-pressed="true"]{background:var(--mare)}

/* oggi */
.hero.live{background:radial-gradient(110% 120% at 0% 0%,var(--cielo-soft) 0,#fff 52%)}
.hero.live .hero-big{font-size:clamp(46px,6vw,78px)}
.hero.live #cr-sub{font-size:15.5px}
.hero.live #hero-month{margin-top:2px;color:var(--muted);font-size:14px}
.fact em{font-style:normal;font-size:12.5px;color:var(--muted);font-weight:500}
.dotc{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:0}
#cr-day,#cr-bars{display:block;width:100%;overflow:visible}
.gl{stroke:var(--line2);stroke-width:1}
.ax{font-size:11.5px;fill:var(--muted);font-family:var(--ui)}
.typ-a{fill:var(--cielo);opacity:.2}
.typ-l{fill:none;stroke:var(--cielo);stroke-width:1.5;stroke-dasharray:4 4}
.rc{stroke-width:2.2;stroke-linecap:round;opacity:.85}
.rc.r{stroke:var(--cobalt)} .rc.b{stroke:var(--olive)}
.today{fill:none;stroke:var(--terra);stroke-width:2.8;stroke-linejoin:round;stroke-linecap:round}
.today.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:crdraw 1.6s .25s cubic-bezier(.3,.7,.2,1) forwards}
@keyframes crdraw{to{stroke-dashoffset:0}}
.now{stroke:var(--ink);stroke-opacity:.25;stroke-dasharray:2 4}
.now-dot{fill:var(--terra);stroke:#fff;stroke-width:2}
.now-ring{fill:none;stroke:var(--terra);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:crping 2.2s ease-out infinite}
@keyframes crping{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
@media (prefers-reduced-motion:reduce){ .now-ring{display:none} .today.draw{animation:none;stroke-dashoffset:0} }

/* mese */
.cr-kpis{margin-top:14px;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.cr-kpis.c5{grid-template-columns:repeat(5,1fr);border-bottom:0;margin-top:12px}
.cr-kpis .kpi b{font-size:22px}
.cr-bars-wrap{padding:6px 22px 0;margin-top:10px}
.bar.r{fill:var(--cobalt)} .bar.b{fill:var(--olive)}
.bar.t{filter:drop-shadow(0 0 0 var(--terra));stroke:var(--terra);stroke-width:1.5}
.avg{stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;opacity:.55}
.proj{fill:var(--cielo-soft);fill-opacity:.55;stroke:var(--cielo);stroke-opacity:.7;stroke-width:1;stroke-dasharray:3 3}
.ax.dn{font-size:12px;fill:var(--ink2);font-weight:500}
.ax.dn.we{fill:var(--ink);font-weight:700}
.ax.dn.t{fill:var(--terra);font-weight:700}
.ax.dl{font-size:10px}

/* orari */
.heat{display:grid;gap:3px;padding:14px 22px 6px;align-items:center}
.heat .hh{font-size:11px;color:var(--muted);text-align:center}
.heat .hd{font-size:12px;color:var(--ink2);font-weight:600}
.heat i{display:block;aspect-ratio:1/1;min-height:16px;border-radius:5px;background:color-mix(in srgb,var(--cobalt) calc(var(--a)*100%),var(--line2))}
.heat i.hot{background:color-mix(in srgb,var(--terra) calc((var(--a) - .62)*260%),var(--cobalt))}
.cr-note{margin:8px 22px 18px;font-size:14px;color:var(--ink2)}
.cr-note b{color:var(--ink);font-weight:600}

/* i più venduti */
.top-list{list-style:none;margin:0;padding:10px 22px 16px;counter-reset:t}
.top-list li{display:grid;grid-template-columns:1fr auto 64px;gap:2px 12px;align-items:baseline;padding:7px 0;counter-increment:t}
.top-list .tn{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-list .tn::before{content:counter(t);display:inline-block;width:22px;color:var(--muted);font-size:12.5px;font-weight:600}
.top-list b{font-weight:600}
.top-list em{font-style:normal;font-size:12.5px;color:var(--muted);text-align:right}
.top-list .tb{grid-column:1/-1;height:5px;border-radius:99px;background:var(--line2);overflow:hidden}
.top-list .tb i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--cobalt),var(--cielo))}
.top-list li:first-child .tb i{background:linear-gradient(90deg,var(--terra),#D99A7E)}

/* pagamenti */
.paybar{display:flex;gap:3px;height:14px;margin:16px 22px 0}
.paybar i{display:block;border-radius:5px;min-width:3px}
.paybar .c{background:var(--cobalt)} .paybar .t{background:var(--cielo)} .paybar .k{background:var(--lemon)}

/* cassa */
.hero.cassa{background:var(--surface)}
.hero.cassa .hero-top{grid-template-columns:1fr auto}
.hero.cassa .hero-big{font-size:clamp(34px,4vw,48px)}
.hero.cassa .hero-facts{flex-direction:row;border-left:0;padding:0;gap:30px;align-self:end}

@media (max-width:1180px){ .cr-kpis.c5{grid-template-columns:repeat(3,1fr)} }
@media (max-width:820px){
  .cr-sync{margin-left:0}
  .cr-bar .seg{width:100%} .cr-bar .seg button{flex:1;padding:7px 6px;font-size:13px}
  .hero.live .hero-facts{flex-direction:row;flex-wrap:wrap;gap:14px 24px}
  .cr-kpis.c5{grid-template-columns:repeat(2,1fr)}
  .cr-bars-wrap{padding:6px 10px 0}
  .ax.dl{display:none} .ax.dn{font-size:9.5px}
  .heat{padding:12px 12px 4px;gap:2px} .heat i{min-height:12px;border-radius:3px} .heat .hh{font-size:9px}
  .hero.cassa .hero-top{grid-template-columns:1fr} .hero.cassa .hero-facts{gap:16px}
}

/* campi di testo fuori dai moduli (risposte, ricerca) */
input.txt,input.rq-reply,textarea.txt,select.txt{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff;min-height:38px}
input.rq-reply{width:100%}
input.txt:focus,input.rq-reply:focus,textarea.txt:focus,select.txt:focus{outline:none;border-color:var(--cobalt-2);box-shadow:0 0 0 3px var(--cobalt-soft)}
.btn.primary{background:var(--mare);border-color:var(--mare)} .btn.primary:hover{background:var(--mare-2)}
.st-tabs button[aria-selected="true"]{border-bottom-color:var(--terra)}
.seg .sm{display:none}
@media (max-width:820px){
  .seg .lg{display:none} .seg .sm{display:inline}
  .nav{overflow:visible}
  .nav button{flex:1 1 0;min-width:0;padding:6px 1px;font-size:9.5px;gap:3px}
  .nav button{overflow:hidden;white-space:nowrap}
  body.is-emp .side{display:none}
}

/* cassa automatica */
.ca{margin-bottom:14px;padding:0}
.ca-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px}
.ca-top p{margin:0;flex:1 1 320px;font-size:14px;color:var(--ink2)}
.ca-top p b{color:var(--ink);font-weight:600}
.ca-top .ca-warn{color:var(--lemon-ink)}
.ca-dot{width:10px;height:10px;border-radius:50%;background:var(--olive);box-shadow:0 0 0 4px var(--olive-soft);flex:none}
.ca-dot.w{background:var(--lemon);box-shadow:0 0 0 4px var(--lemon-soft)}
.ca-act{display:flex;gap:8px;flex-wrap:wrap}
.ca-body{border-top:1px solid var(--line2);padding:16px 18px 18px}
.ca-sum{margin:0 0 14px;font-size:14.5px;color:var(--ink2);max-width:78ch}
.ca-sum b{color:var(--ink)}
.ca-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.ca-card{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;position:relative;background:#FBFCFD}
.ca-card h4{margin:0;font-family:var(--display);font-weight:400;font-size:17px}
.ca-card .ca-n{position:absolute;right:14px;top:14px;font-size:12.5px;color:var(--muted)}
.ca-card b{font-size:22px;font-weight:600;margin-top:4px}
.ca-card small{font-size:12.5px;color:var(--muted)}
.ca-card p{margin:8px 0 12px;font-size:13.5px;color:var(--ink2);flex:1}
.ca-card .btn{align-self:flex-start}
.ca-table{max-height:460px;box-shadow:none}
.book td.chg{background:var(--lemon-soft)}
.book td.chg s{color:var(--muted);margin-right:6px}
.book tr.auto td:first-child::after{content:"auto";margin-left:8px;font-size:11px;font-weight:600;color:var(--olive);background:var(--olive-soft);padding:1px 7px;border-radius:99px}
.book tr.missing.attesa td:first-child::after{content:"aspetta le carte";color:var(--lemon-ink);background:var(--lemon-soft)}

/* IVA e incassi non scontrinati */
.bar.x{fill:var(--lemon)}
.iva-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px 22px 4px}
.iva-t h4{margin:0 0 6px;font-family:var(--display);font-weight:400;font-size:16px}
table.iva{width:100%;border-collapse:collapse;font-size:14px}
table.iva th{font-size:12.5px;color:var(--muted);font-weight:600;text-align:right;padding:6px 0 6px 12px;border-bottom:1px solid var(--line)}
table.iva td{padding:9px 0 9px 12px;text-align:right;border-bottom:1px solid var(--line2);vertical-align:top}
table.iva td:first-child,table.iva th:first-child{text-align:left;padding-left:0;font-weight:600}
table.iva td small{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:2px;max-width:34ch}
table.iva tr.tot td{font-weight:700;border-bottom:0;border-top:1px solid var(--line)}
@media (max-width:1180px){ .iva-grid{grid-template-columns:1fr} }
@media (max-width:820px){ .iva-grid{padding:12px 14px 4px} }

/* ================= Fatture e banca ================= */
.ft-book{min-width:760px!important}
.ft-book td.l,.ft-book th.l{text-align:left}
.ft-book tr.fermo{cursor:default}
.ft-book td.ft-testo{white-space:normal;min-width:280px;max-width:560px}
.ft-book td.ft-pay{white-space:normal}
.ft-book td.ft-pay .btn{margin:2px 4px 2px 0}
.ft-card{padding:18px 22px;margin-bottom:14px}
.ft-card-h{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}
.ft-card-h h3{margin:0;font-family:var(--display);font-size:19px;font-weight:600}
.ft-card-h p{margin:2px 0 0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.ft-card-h a{color:var(--cobalt);font-weight:600}
.ft-card-h>b{font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:-.02em}
.ft-avvisi{list-style:none;margin:12px 0 0;padding:10px 14px;background:var(--lemon-soft);color:var(--lemon-ink);border-radius:var(--r-md);font-size:13.5px}
.ft-avvisi li{padding:2px 0 2px 16px;position:relative}
.ft-avvisi li::before{content:"";position:absolute;left:2px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--lemon)}
.ft-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.ft-grid .w2{grid-column:span 2}
.ft-righe{margin-top:12px}
.ft-tab{max-height:320px;box-shadow:none}
.ft-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}
.ft-busy{align-items:center}
.ft-prog{flex:1 1 100%;height:6px;border-radius:99px;background:var(--line2);overflow:hidden}
.ft-prog div{height:100%;background:var(--cobalt);border-radius:99px;transition:width .3s var(--ease)}
.ft-err{flex:1 1 100%;color:var(--ink2)}
.ft-err ul{margin:6px 0 10px;padding-left:18px;font-size:13px}
.ft-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.ft-files{margin-top:14px;font-size:13.5px;color:var(--muted)}
.ft-files summary{cursor:pointer;font-weight:600}
.ft-files li{padding:4px 0}
@media (max-width:820px){
  .ft-grid{grid-template-columns:repeat(2,1fr)}
  .ft-card{padding:16px}
  .ft-card-h{flex-direction:column;gap:6px}
}


/* Centro Sicurezza Siculus */
.security-summary{margin:0 0 14px}
.sec-overview{width:100%;display:flex;align-items:center;gap:14px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px 18px;font:inherit;color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}
.sec-overview:hover{border-color:var(--cobalt)}
.sec-overview-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}
.sec-overview-copy b{font-weight:650}
.sec-overview-copy small{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.sec-overview-link{font-size:12.5px;color:var(--cobalt);font-weight:650;white-space:nowrap}
.sec-mark{height:34px;width:34px;border-radius:50%;display:inline-grid;place-items:center;font-size:18px;font-weight:700;flex:none}
.sec-ok .sec-mark,.sec-check.sec-ok .sec-check-symbol{background:#E6F2EA;color:#26734A}
.sec-warning .sec-mark,.sec-check.sec-warning .sec-check-symbol{background:#FFF1D4;color:#94601C}
.sec-critical .sec-mark,.sec-check.sec-critical .sec-check-symbol{background:#FCE7E5;color:#AA3F35}
.sec-stale .sec-mark,.sec-unknown .sec-mark,.sec-check.sec-unknown .sec-check-symbol{background:#E9ECF0;color:#596577}
.sec-page{display:flex;flex-direction:column;gap:16px}
.sec-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.sec-kicker{font-size:11px;letter-spacing:.12em;color:var(--muted);font-weight:700}
.sec-intro h2{font-size:29px;font-family:var(--display);font-weight:500;margin:4px 0 6px}
.sec-intro p{font-size:13.5px;color:var(--muted);max-width:67ch;margin:0;line-height:1.55}
.sec-state{display:flex;gap:14px;align-items:center;border:1px solid var(--line);padding:17px 20px;border-radius:16px;background:var(--surface)}
.sec-state>div{flex:1;min-width:0}
.sec-state strong,.sec-state small{display:block;overflow-wrap:anywhere}
.sec-state strong{font-size:16px}
.sec-state small{font-size:12.5px;margin-top:4px;color:var(--muted)}
.sec-state-tag{font-size:12px;font-weight:700;white-space:nowrap}
.sec-state.sec-ok{border-color:#B8DCC7}
.sec-state.sec-warning{border-color:#ECD3A8}
.sec-state.sec-critical{border-color:#EBB8B3}
.sec-state.sec-stale,.sec-state.sec-unknown{border-color:#BCC4CE}
.sec-metrics,.sec-activity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sec-metric{background:var(--surface);padding:17px 18px;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.sec-metric>span{font-size:12.5px;color:var(--ink2)}
.sec-metric b{font-size:27px;font-weight:650;font-variant-numeric:tabular-nums}
.sec-metric small{font-size:11.5px;color:var(--muted)}
.sec-panel{padding:0 0 18px;min-width:0}
.sec-checks{padding:16px 22px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sec-check{border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;gap:11px;min-width:0}
.sec-check.sec-critical{border-color:#EBC9C4}
.sec-check.sec-warning{border-color:#E9D9B9}
.sec-check-symbol{font-size:15px;font-weight:700;flex:none;display:grid;place-items:center;height:27px;width:27px;border-radius:50%;background:#E8EDF3}
.sec-check-copy{min-width:0;flex:1}
.sec-check-head{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:6px}
.sec-check h3{margin:0;font-size:14px;font-weight:650}
.sec-check p{margin:6px 0 0;font-size:12.5px;color:var(--ink2);line-height:1.45;overflow-wrap:anywhere}
.sec-check p.sec-action{font-size:12px;color:var(--muted)}
.sec-tag{font-size:10px;font-weight:700;border:1px solid var(--line);border-radius:99px;padding:3px 7px;white-space:nowrap}
.sec-tag.sec-ok{color:#26734A;background:#EDF8F0;border-color:#C7E2D0}
.sec-tag.sec-warning{color:#875B1E;background:#FFF7E9;border-color:#F0DBB9}
.sec-tag.sec-critical{color:#A13D32;background:#FEF1EF;border-color:#E9C4BF}
.sec-lower{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
.sec-activity{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 22px 0}
.sec-activity .sec-metric{padding:12px}
.sec-activity .sec-metric b{font-size:22px}
.sec-trend{padding:20px 22px 8px;display:flex;align-items:end;gap:4px;min-height:47px}
.sec-spark{height:26px;flex:1;border-radius:3px;background:#B9D9C5;min-width:3px}
.sec-spark.sec-warning{background:#E5BD75}
.sec-spark.sec-critical{background:#D68A80}
.sec-foot{font-size:12px;line-height:1.5;color:var(--muted);margin:10px 22px 0;overflow-wrap:anywhere}
.sec-foot a{color:var(--cobalt);text-decoration:underline}
.sec-disclaimer{font-size:12px;line-height:1.5;color:var(--muted);padding:0 2px;margin:0}
.sec-placeholder{padding:10px;color:var(--muted)}
@media(max-width:1050px){.sec-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sec-lower{grid-template-columns:1fr}}
@media(max-width:820px){.sec-checks{grid-template-columns:1fr;padding:12px 14px 0}.sec-overview-link{display:none}.sec-state-tag{display:none}.sec-metrics{gap:8px}.sec-metric{padding:12px}.sec-activity{padding:12px 14px 0}.sec-panel .panel-h{padding:15px 14px 0}.sec-foot{margin-left:14px;margin-right:14px}.sec-intro h2{font-size:25px}.nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{flex:0 0 57px;min-width:57px}}

/* Fatture: grafici */
.ft-cat{margin-bottom:18px}
.ft-hbars{padding:4px 22px 20px;display:grid;gap:9px}
.ft-hbar{display:grid;grid-template-columns:minmax(120px,220px) 1fr 96px 44px;gap:12px;align-items:center;font-size:13.5px}
.ft-hbar>div{height:12px;border-radius:99px;background:var(--line2);overflow:hidden}
.ft-hbar i{display:block;height:100%;border-radius:99px;transition:width .6s var(--ease)}
.ft-hbar b{text-align:right;font-weight:600}
.ft-hbar em{font-style:normal;color:var(--muted);text-align:right;font-size:12.5px}
.ft-cols{display:flex;align-items:flex-end;gap:10px;height:190px;padding:26px 22px 0}
.ft-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.ft-col b{font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap}
.ft-col span{font-size:12px;color:var(--muted);padding-bottom:2px}
.ft-stack{width:min(46px,78%);display:flex;flex-direction:column-reverse;border-radius:6px 6px 2px 2px;overflow:hidden;min-height:2px;transition:height .6s var(--ease)}
.ft-stack i{display:block;min-height:1px}
@media (max-width:820px){
  .ft-hbar{grid-template-columns:1fr 84px;row-gap:3px}
  .ft-hbar>div{grid-column:1/-1;order:3}
  .ft-hbar em{display:none}
  .ft-cols{gap:4px;padding:26px 10px 0}
  .ft-col b{font-size:10px}
}
.bar.c{fill:var(--terra)} .bar.k{fill:var(--uva)}
#cr-anno .panel-h{position:relative}
#cr-ybars{width:100%;display:block}
.cr-kpis.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1180px){ .cr-kpis.c4{grid-template-columns:repeat(2,1fr)} .cr-kpis.c4 .kpi:nth-child(-n+2){border-bottom:1px solid var(--line2)} }
@media (max-width:820px){ .ft-cols{height:150px} .st-tabs{overflow-x:auto} }
.ft-sub{font-family:var(--display);font-size:18px;font-weight:600;margin:22px 4px 10px}
.ft-mat td:first-child,.ft-mat th:first-child{min-width:190px}
.ft-cat-sel{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);max-width:210px}
.ft-cat-sel.man{color:var(--ink);border-color:var(--cobalt)}
.bar.p{fill:var(--cobalt-2)} .bar.f{fill:var(--cielo)}
.ft-book tr.ft-sez td{background:var(--paper);font-family:var(--display);font-size:15px;font-weight:600;position:static}
.ft-book tr.ft-tot td{font-weight:700;border-top:2px solid var(--line)}
.ft-utile .ft-col b.down{color:var(--red)}
.kpi b.up{color:var(--olive)} .kpi b.down{color:var(--red)}

.ft-nuova td{padding:6px 6px}
.ft-nuova td:first-child{min-width:260px;position:static}
.ft-nuova input,.ft-nuova select{width:100%;font:inherit;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.ft-nuova td:nth-child(2) input,.ft-nuova td:nth-child(4) input{text-align:right;min-width:74px}
.ft-nuova tbody tr{cursor:default}
.ft-book tr.ft-ris td{font-weight:700;background:color-mix(in srgb,var(--olive) 9%,transparent);border-top:2px solid var(--ink)}
.ft-ce td:first-child{white-space:nowrap}
@media (max-width:700px){.ft-ce td:first-child{white-space:normal;min-width:150px;max-width:170px}.ft-utile .ft-col b{display:none}}
.ft-fuori{margin:0;padding-left:18px;display:grid;gap:8px;font-size:14px}
.ft-fuori .btn{margin-left:6px;vertical-align:middle}

/* pagamenti consigliati e scelta del movimento del conto */
.ft-scelta{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:flex-start}
.ft-scelta .btn{display:inline-flex;flex-direction:column;align-items:flex-start;text-align:left;max-width:340px;line-height:1.25}
.ft-perche{display:block;font-size:11px;font-weight:500;opacity:.75;margin-top:2px;white-space:normal}
.ft-altri{display:inline-flex;flex-wrap:wrap;gap:4px 6px}
.ft-pick{flex-basis:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--bg,#fff)}
.ft-pick input{width:100%;box-sizing:border-box;margin-bottom:6px}
.ft-pick .book{min-width:0}
.ft-pagblock{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ft-pagblock h4{margin:0 0 6px}
.ft-gruppo{border:1px solid var(--line);border-radius:10px;margin:0 0 8px;padding:8px 12px;background:var(--card,#fff)}
.ft-gruppo summary{cursor:pointer}
.ft-gruppo .tablewrap{margin-top:8px}
.ft-book tr.ft-subrow td{border-top:0;padding-top:0;padding-bottom:12px}
.ft-book tr.ft-subrow:hover td{background:transparent}
.ft-veloci{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;margin-top:6px;font-size:12px}

/* Kassenbuch */
table.book.kb-book{min-width:900px}
.kb-book tbody tr[data-kb]{cursor:pointer}
.kb-book tbody tr.sel td{background:var(--cobalt-soft)}
.kb-book tr.kb-det td{background:var(--card,#fff);padding:12px 14px;text-align:left;white-space:normal}
.kb-avvisi{margin:0;padding:12px 22px 16px 38px;font-size:13.5px;line-height:1.5}
.kb-sintesi{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;margin:0 0 10px}
.kb-inc .book{min-width:0!important}
.kb-h4{margin:12px 0 6px;font-size:14px}
.kb-inc .book td.l{white-space:normal}
.kb-inc .book td.l .pill{white-space:nowrap;display:inline-block;margin:1px 0}
.kb-inc .tablewrap{max-height:none}
@media (max-width:760px){
  .kb-det td{padding:10px 8px}
  .kb-det .kb-inc{position:sticky;left:8px;width:calc(100vw - 52px)}
  .kb-inc .book th,.kb-inc .book td{padding:7px 6px;font-size:12.5px}
}
@media (max-width:760px){.kb-inc .book td.l .pill{white-space:normal}}
/* Kassenbuch: stato del mese, azioni, conta, libro cassa */
.kb-stato{margin:0 22px 4px;padding:9px 12px;border-radius:10px;background:var(--bg-2,#F3F0EA);font-size:13.5px}
.kb-stato.chiuso{background:#E8F1EA;color:#1F5130}
.kb-stato .kb-warn{display:block;margin-top:4px;color:#8A4B12}
.kb-azioni{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.kb-azioni .grow{flex:1}
.kb-conta{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 22px 4px;padding:12px;border:1px dashed var(--line,#ddd);border-radius:12px}
.kb-conta label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted,#666)}
.kb-conta input{padding:7px 9px;border:1px solid var(--line,#ccc);border-radius:8px;font:inherit;min-width:140px}
.kb-conta .note{flex-basis:100%;margin:0}
.kb-conte{margin:6px 22px 14px;padding-left:18px;font-size:13.5px}
.kb-conte .neg{color:#B23A3A}
.linkbtn{background:none;border:0;color:var(--accent,#B2593A);text-decoration:underline;cursor:pointer;font:inherit;padding:0 4px}
table.book.kb-libro{min-width:760px}
.kb-libro td.l,.kb-libro th.l{text-align:left}
.kb-libro td.kb-doc{white-space:nowrap;color:var(--muted,#555);font-size:12.5px}
.kb-libro tr.kb-nuovo td{border-top:1.5px solid var(--line,#d9d4cb)}
.kb-libro tr.kb-info td{color:var(--muted,#666);font-style:italic}
@media (max-width:760px){.kb-conta,.kb-stato,.kb-conte{margin-left:12px;margin-right:12px}.kb-conta input{min-width:0;width:100%}.kb-conta label{flex:1 1 140px}}
@media (max-width:760px){
  table.book.kb-libro{min-width:0!important;font-size:12.5px}
  .kb-libro th:nth-child(2),.kb-libro td.kb-doc{display:none}
  .kb-libro td.l{white-space:normal}
  .kb-libro th,.kb-libro td{padding:8px 5px}
  .kb-libro td:first-child{white-space:nowrap;font-size:11.5px}
}
.kb-libro .d-s{display:none}
@media (max-width:760px){
  .kb-libro .d-l{display:none}.kb-libro .d-s{display:inline}
  .kb-libro th,.kb-libro td{padding:7px 3px}
  .kb-libro th:first-child,.kb-libro td:first-child{padding-left:8px}
  .kb-libro th:last-child,.kb-libro td:last-child{padding-right:8px}
}
@media (max-width:760px){.kb-libro tfoot td.kb-tot{white-space:nowrap}}

/* ---------- Food cost e Previsioni ---------- */
.fc-due{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}
.fc-due .panel{padding:18px 20px}
.fc-due .panel-h,.panel .panel-h:has(+ .ft-bar){padding:0 0 10px}
.fc-flat{max-height:none;box-shadow:none}
.ft-col.fc-sel span{color:var(--ink);font-weight:700}
.book tr.fc-cur td{background:var(--cobalt-soft)}
.fc-mesi td,.fc-mesi th{white-space:nowrap}
.fc-var{font-weight:700;font-size:13px;white-space:nowrap}
.fc-var.up{color:var(--red)} .fc-var.down{color:var(--olive)}
.fc-h4{margin:16px 0 8px;font-size:14px;color:var(--ink2)}
.fc-list{list-style:none;margin:0;padding:0}
.fc-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line2)}
.fc-list li:first-child{border-top:0}
.fc-list li div{min-width:0;display:flex;flex-direction:column;gap:2px}
.fc-list li b{font-size:14px;font-weight:600}
.fc-list li span{font-size:12.5px;color:var(--muted)}
.fc-list li .r{align-items:flex-end;text-align:right;flex:none}
.fc-list li em{font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap}
.fc-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.fc-bar input[type=search]{flex:1;min-width:220px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--surface)}
.fc-art td.l{white-space:normal;min-width:220px}
.fc-art td.l small{white-space:nowrap}
.linkbtn.on{font-weight:700;text-decoration:none;color:var(--ink)}
.pv-prev{background:repeating-linear-gradient(135deg,var(--cielo) 0 5px,var(--cielo-soft) 5px 9px)!important;display:inline-block}
.legend i.pv-prev{border:1px solid var(--cielo)}
.pv-chiuso td{background:var(--paper)!important}
.pv-corr{width:72px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;text-align:right}
.pv-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pv-chips .pill{background:var(--paper);color:var(--ink2);border:1px solid var(--line);padding:3px 6px 3px 10px}
.pv-chips .linkbtn{text-decoration:none;font-weight:700;color:var(--red)}
.pv-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:var(--ink2)}
.pv-add input{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;margin-left:4px}
@media (max-width:980px){ .fc-due{grid-template-columns:minmax(0,1fr)} }
@media (max-width:640px){ .fc-art td.l{min-width:170px} .fc-bar .seg{width:100%;overflow-x:auto} }
.fc-pan{padding:18px 20px}
.fc-pan .panel-h{padding:0 0 10px}
.fc-cat{display:block;font-size:12px;padding:0 4px}
.fc-due .book td.l .linkbtn{text-align:left}
.fc-flat table.book,.fc-flat .ft-book{min-width:0!important}
.fc-flat table.book.fc-art{min-width:820px!important}
table.book.fc-mesi{min-width:900px}
table.book.fc-art{min-width:820px}
.pv-giorni td,.pv-giorni th{white-space:nowrap}
.fc-due>*{min-width:0}
@media (max-width:640px){ .pv-giorni .pv-neg{display:none} .pv-mesi .pv-base{display:none} }

/* buste paga (Personale) */
.pill.ok{background:var(--olive-soft);color:var(--olive)}
.slip-list{list-style:none;margin:0;padding:0}
.slip-todo{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--line2);flex-wrap:wrap}
.slip-todo p.note{margin:2px 0}
.slip-todo code{font:600 14px ui-monospace,monospace;background:var(--lemon-soft);color:var(--lemon-ink);padding:2px 6px;border-radius:6px;letter-spacing:.06em}
table.book.st-slips{min-width:0}
.st-slips th,.st-slips td{text-align:left;white-space:normal;vertical-align:top}
.st-slips td small{display:inline}

/* Assistente e email di oggi nella Panoramica */
.ai-dash{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;margin-bottom:16px}
.ai-dash.hidden{display:none}
.ai-dash>.panel:only-child{grid-column:1/-1}
@media (max-width:860px){.ai-dash{grid-template-columns:1fr}}
.ai-dash .body{padding:12px 22px 18px}
.ai-sugg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ai-sugg .chip{cursor:pointer;text-align:left}
.ai-chat{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;margin-bottom:10px;padding-right:4px}
.ai-msg{padding:9px 12px;border-radius:12px;font-size:14px;line-height:1.45;max-width:92%;overflow-wrap:anywhere}
.ai-msg.me{align-self:flex-end;background:var(--cobalt-soft);color:var(--ink)}
.ai-msg.ai{align-self:flex-start;background:var(--paper);border:1px solid var(--line)}
.ai-msg.err{border-color:var(--red);background:var(--red-soft)}
.ai-form{display:flex;gap:8px}
.ai-form .txt{flex:1;min-width:0}
.ai-mail .panel-h{align-items:center}
.ai-mail .panel-h .btn{margin-left:auto}
.ai-mails{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:320px;overflow:auto}
.ai-mails a{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 8px;padding:7px 8px;border-radius:8px;color:inherit;text-decoration:none;font-size:13.5px}
.ai-mails a:hover{background:var(--paper)}
.ai-mails a span:last-child{grid-column:2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-mails b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.ai-mails li.nuova b{font-weight:700}
.ai-ora{color:var(--muted);font-variant-numeric:tabular-nums;grid-row:span 2}

/* Food cost: piatti del menu */
.fc-vista{display:flex;justify-content:flex-start;margin:0 0 16px}
.fc-seg{flex-wrap:wrap}
.fc-pc{display:inline-block;min-width:54px;text-align:right;font-weight:600;border-radius:99px;padding:1px 9px;font-variant-numeric:tabular-nums}
.fc-pc.basso{background:var(--olive-soft);color:var(--olive)}
.fc-pc.medio{background:var(--lemon-soft);color:var(--lemon-ink)}
.fc-pc.alto{background:var(--red-soft);color:var(--red)}
.fc-piatti tr.fc-piatto{cursor:pointer}
.fc-piatti tr.fc-piatto:hover td{background:var(--line2)}
.fc-piatti td.l small.fc-cat{display:block;font-weight:400}
.fc-ric > td{background:var(--surface);padding:6px 10px 16px!important}
.fc-ricetta{border-left:3px solid var(--cobalt);padding:8px 0 0 14px}
.fc-ricetta .book{margin:6px 0}
.fc-ric-h,.fc-ric-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}
.fc-ric-h label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.fc-grow{flex:1;min-width:200px}.fc-grow input{flex:1}
.fc-num{width:92px;text-align:right}
.fc-ric-add select{max-width:300px}
.fc-ric-add .muted{font-size:12.5px}
