[hidden]{display:none!important}
:root{
  --bg:#F3F5F4;--surface:#FFFFFF;--surface-2:#F8FAF9;--line:#E2E7E4;--line-2:#CFD7D2;
  --text:#0D1C17;--text-2:#38463F;--text-3:#56635D;
  --brand:#1D5A4B;--brand-2:#154538;--brand-soft:#E5F0EB;--ink:#0F221D;
  --red:#C73A2B;--red-bg:#FCEDEA;--red-ink:#9A2A1F;
  --amber:#D69A0C;--amber-bg:#FDF4DD;--amber-ink:#7A5300;
  --green:#2E9A60;--green-bg:#E6F4EC;--green-ink:#1D6541;
  --blue-bg:#EAF0F7;--blue-ink:#2B4A6E;
  --radius:14px;--radius-s:10px;
  --shadow:0 1px 2px rgba(15,34,29,.04),0 1px 1px rgba(15,34,29,.03);
  --shadow-lg:0 12px 32px rgba(15,34,29,.16);
  color-scheme:light
}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.55 "Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
input,select,textarea,button{font-family:inherit}
a{color:var(--brand)}
button{font:inherit}
.num,.fig,.amt,td.n{font-variant-numeric:tabular-nums}
h1,h2,h3{margin:0;letter-spacing:-.01em}
p{margin:0}
.muted{color:var(--text-2)}
.faint{color:var(--text-3)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Struttura ---------- */
.main{min-height:100vh}
.page{max-width:1180px;margin:0 auto;padding:20px 16px calc(100px + env(safe-area-inset-bottom))}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;margin:6px 0 20px}
.page-head h1{font-size:30px;line-height:1.1;font-weight:600}
.page-head .sub{margin-top:4px;color:var(--text-2)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.section{margin:0 0 22px}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 10px}
.section-head h2{font-size:17px;font-weight:600}
.section-head .count{color:var(--text-3);font-weight:500;margin-left:6px}
.grid-2{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:980px){.grid-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}

nav.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;min-height:54px;color:var(--text-3);text-decoration:none;font-size:11.5px;font-weight:600}
nav.tabs a svg{width:24px;height:24px}
nav.tabs a[aria-current="page"]{color:var(--brand)}
nav.tabs .brand,nav.tabs .nav-foot{display:none}
@media(min-width:900px){
  nav.tabs{top:0;right:auto;width:220px;flex-direction:column;gap:2px;padding:20px 12px;background:var(--ink);border:0;-webkit-backdrop-filter:none;backdrop-filter:none}
  nav.tabs .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;font-size:17px;padding:4px 10px 22px;text-decoration:none;flex-direction:row;min-height:0}
  nav.tabs .brand svg{width:30px;height:30px}
  nav.tabs a{flex:none;flex-direction:row;gap:12px;font-size:15px;padding:10px 12px;min-height:44px;border-radius:10px;color:rgba(255,255,255,.84)}
  nav.tabs a svg{width:20px;height:20px}
  nav.tabs a:hover{background:rgba(255,255,255,.06);color:#fff}
  nav.tabs a[aria-current="page"]{background:rgba(255,255,255,.1);color:#fff}
  nav.tabs .nav-foot{display:block;margin-top:auto;padding:10px 12px;color:rgba(255,255,255,.66);font-size:13px;line-height:1.4}
  .main{margin-left:220px}
  .page{padding:28px 32px 48px}
}

/* ---------- Controlli ---------- */
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);color:var(--text);border-radius:var(--radius-s);padding:8px 14px;font-size:14.5px;font-weight:600;min-height:42px;cursor:pointer;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow)}
.btn svg{width:18px;height:18px}
.btn:hover{border-color:#B6C1BB;background:var(--surface-2)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2)}
.btn.sm{min-height:34px;padding:4px 10px;font-size:13.5px}
.btn.ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--brand)}
.btn.ghost:hover{background:var(--brand-soft)}
.btn.danger{color:var(--red-ink);border-color:#EDC7C1}
.btn:disabled{opacity:.55;cursor:default}
:focus-visible{outline:3px solid #86BFAC;outline-offset:2px}
input,select,textarea{font:inherit;font-size:16px;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:#fff;color:var(--text);min-height:44px;width:100%}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%234E5E57' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}
textarea{min-height:84px;resize:vertical}
@media(min-width:900px){input,select,textarea{font-size:14.5px;min-height:40px}}

/* ---------- Superfici ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:16px}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.card-head h2,.card-head h3{font-size:15.5px;font-weight:600}
.banner{display:flex;gap:10px;align-items:flex-start;background:var(--blue-bg);color:var(--blue-ink);padding:10px 14px;border-radius:var(--radius-s);font-size:14px;margin:0 0 14px}
.banner.warn{background:var(--amber-bg);color:var(--amber-ink)}
.banner.err{background:var(--red-bg);color:var(--red-ink)}
.banner svg{width:18px;height:18px;flex:none;margin-top:2px}

/* ---------- Stati ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:3px 9px 3px 8px;border-radius:999px;white-space:nowrap;background:#EDF0EE;color:var(--text-2)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}
.pill.rosso,.pill.bad{background:var(--red-bg);color:var(--red-ink)}
.pill.giallo,.pill.warn{background:var(--amber-bg);color:var(--amber-ink)}
.pill.verde,.pill.good{background:var(--green-bg);color:var(--green-ink)}
.pill.info{background:var(--blue-bg);color:var(--blue-ink)}
.pill.plain::before{display:none}
.dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.dot.rosso{background:var(--red)}.dot.giallo{background:var(--amber)}.dot.verde{background:var(--green)}
.t-rosso{color:var(--red-ink)}.t-giallo{color:var(--amber-ink)}.t-verde{color:var(--green-ink)}
.neg{color:var(--red-ink)}

/* ---------- Riepilogo ---------- */
.overview{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:16px}
@media(min-width:1100px){.overview{grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr)}}
.figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:700px){.figures{grid-template-columns:repeat(4,minmax(0,1fr))}}
.figure{padding:16px 16px 14px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.figure:nth-child(-n+2){border-top:0}
.figure:nth-child(2n+1){border-left:0}
@media(min-width:700px){.figure{border-top:0}.figure:nth-child(2n+1){border-left:1px solid var(--line)}.figure:first-child{border-left:0}}
.figure .label{font-size:13.5px;color:var(--text-2);font-weight:500}
.figure .fig{display:block;font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:4px 0 2px;overflow-wrap:anywhere}
.figure .note{font-size:13px;color:var(--text-3)}
.figure.alert .fig{color:var(--red-ink)}
.status-card{padding:16px}
.status-card h2{font-size:15.5px;font-weight:600;margin-bottom:12px}
.status-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#EDF0EE;gap:2px;margin-bottom:12px}
.status-bar span{display:block;height:100%}
.status-bar .rosso{background:var(--red)}.status-bar .giallo{background:var(--amber)}.status-bar .verde{background:var(--green)}
.status-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.status-filters button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-s);padding:8px 10px;text-align:left;cursor:pointer;min-height:58px}
.status-filters button b{display:block;font-size:22px;line-height:1.15;font-variant-numeric:tabular-nums}
.status-filters button span{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.status-filters button[aria-pressed="true"]{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}
.status-filters .rosso b{color:var(--red-ink)}.status-filters .giallo b{color:var(--amber-ink)}.status-filters .verde b{color:var(--green-ink)}

.todo-list{list-style:none;margin:0;padding:0}
.todo-list li{border-top:1px solid var(--line)}
.todo-list li:first-child{border-top:0}
.todo-list a{display:flex;gap:10px;align-items:flex-start;padding:11px 16px;color:inherit;text-decoration:none}
.todo-list a:hover{background:var(--surface-2)}
.todo-list .dot{margin-top:6px}
.todo-list .what{flex:1;min-width:0}
.todo-list .where{font-size:13px;color:var(--text-3)}
.todo-empty{padding:18px 16px;color:var(--text-2);display:flex;gap:10px;align-items:center}
.todo-empty svg{width:20px;height:20px;color:var(--green)}
.more{display:block;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:10px;color:var(--brand);font-weight:600;cursor:pointer;border-radius:0 0 var(--radius) var(--radius)}

.meter{margin:0 0 14px}
.meter-top{display:flex;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:6px}
.meter-top b{font-variant-numeric:tabular-nums}
.meter-track{height:8px;border-radius:999px;background:#EDF0EE;overflow:hidden}
.meter-track span{display:block;height:100%;background:var(--brand);border-radius:999px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}
.facts div{min-width:0}
.facts dt{font-size:13px;color:var(--text-2)}
.facts dd{margin:0;font-weight:600;font-size:17px;font-variant-numeric:tabular-nums}

/* Tabella immobili (PC) e schede (iPhone) */
.prop-table{width:100%;border-collapse:collapse}
.prop-table th{font-size:13px;font-weight:600;color:var(--text-2);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
.prop-table th:first-child{padding-left:16px;border-radius:var(--radius) 0 0 0}
.prop-table th:last-child{border-radius:0 var(--radius) 0 0}
.prop-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.prop-table td:first-child{padding-left:16px}
.prop-table tr:last-child td{border-bottom:0}
.prop-table tbody tr{cursor:pointer}
.prop-table tbody tr:hover td{background:var(--surface-2)}
.prop-table .r{text-align:right;white-space:nowrap}
.prop-table .name{font-weight:600}
.prop-table .name .code{color:var(--text-3);font-weight:600;margin-right:6px;font-size:13px}
.prop-table .reason{font-size:13.5px;margin-top:2px}
.prop-table .small{font-size:13px;color:var(--text-3)}
.prop-table a.rowlink{color:inherit;text-decoration:none}
.prop-cards{display:none}
@media(max-width:899px){.prop-table-wrap{display:none}.prop-cards{display:grid;gap:10px}}
.prop-card{display:block;padding:14px;color:inherit;text-decoration:none}
.prop-card .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.prop-card .name{font-weight:600;font-size:16px;line-height:1.3}
.prop-card .code{color:var(--text-3);font-size:13.5px;font-weight:600}
.prop-card .reason{font-size:13.5px;margin:6px 0 10px}
.prop-card .mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--surface-2);border-radius:var(--radius-s);padding:10px 12px}
.prop-card .mini div>span{display:block;font-size:12.5px;color:var(--text-3)}
.prop-card .mini b{font-size:14.5px;font-variant-numeric:tabular-nums}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:700px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}
.stat span{display:block;font-size:13px;color:var(--text-2)}
.stat b{display:block;font-size:19px;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stat small{display:block;font-size:12.5px;color:var(--text-3)}
.stat.alert b{color:var(--red-ink)}

/* ---------- Dettaglio immobile ---------- */
.back{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px;font-weight:600;text-decoration:none;min-height:40px;color:var(--text-2)}
.back svg{width:18px;height:18px}
.hero{padding:18px 18px 0}
.hero-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.hero h1{font-size:26px;font-weight:600;line-height:1.15}
.hero .meta{color:var(--text-2);margin-top:4px}
.hero .quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px -18px 0;border-top:1px solid var(--line)}
@media(min-width:700px){.hero .quick{grid-template-columns:repeat(4,minmax(0,1fr))}}
.hero .quick div{padding:12px 18px;border-left:1px solid var(--line)}
.hero .quick div:nth-child(2n+1){border-left:0}
@media(max-width:699px){.hero .quick div:nth-child(n+3){border-top:1px solid var(--line)}}
@media(min-width:700px){.hero .quick div:nth-child(2n+1){border-left:1px solid var(--line)}.hero .quick div:first-child{border-left:0}}
.hero .quick span{display:block;font-size:13px;color:var(--text-2)}
.hero .quick b{font-size:18px;font-variant-numeric:tabular-nums}
.reasons{border-radius:var(--radius);padding:12px 16px;margin:12px 0 0}
.reasons.rosso{background:var(--red-bg);color:var(--red-ink)}
.reasons.giallo{background:var(--amber-bg);color:var(--amber-ink)}
.reasons.verde{background:var(--green-bg);color:var(--green-ink)}
.reasons ul{margin:4px 0 0;padding-left:18px}
.reasons li{margin:2px 0}
.tabs-bar{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;overflow-y:hidden;margin:16px 0 14px;border-bottom:1px solid var(--line);scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.tabs-bar::-webkit-scrollbar{display:none}
.tabs-bar button{flex:0 0 auto;border:0;background:none;padding:10px 12px;font-weight:600;color:var(--text-2);white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;min-height:44px;touch-action:pan-x;scroll-snap-align:start}
.tabs-bar button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--brand)}

.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.row{display:flex;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .grow{flex:1;min-width:0}
.row .t1{font-weight:600}
.row .t2{font-size:14px;color:var(--text-2)}
.row .end{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.row.wrap{flex-wrap:wrap}
@media(max-width:699px){.row.wrap .acts{width:100%;justify-content:flex-start}}
.group-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;background:var(--surface-2);border-top:1px solid var(--line);font-weight:600;font-size:14px}
.list>.group-h:first-child{border-top:0}
.sub-h{padding:8px 16px;font-size:13px;font-weight:600;color:var(--text-2);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px}
.code{color:var(--text-3);font-weight:600;margin-right:6px;font-variant-numeric:tabular-nums}
.empty{padding:26px 16px;text-align:center;color:var(--text-2)}
.empty .btn{margin-top:10px}
dl.kv{display:grid;grid-template-columns:minmax(120px,36%) 1fr;gap:8px 14px;margin:0}
dl.kv dt{color:var(--text-2)}
dl.kv dd{margin:0;overflow-wrap:anywhere}
.cols-2{display:grid;gap:14px}
@media(min-width:900px){.cols-2{grid-template-columns:1fr 1fr}}
.contract{margin-bottom:14px}
.contract .card-head .meta{font-size:13px;color:var(--text-2);font-weight:500;margin-top:2px}
.qtable{width:100%;border-collapse:collapse;font-size:14px}
.qtable th{text-align:left;font-size:13px;color:var(--text-2);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}
.qtable td{padding:9px 10px;border-bottom:1px solid var(--line)}
.qtable .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.qtable tfoot td{font-weight:600;border-bottom:0;background:var(--surface-2)}
.qwrap{overflow-x:auto}
.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;margin-bottom:12px}
@media(min-width:800px){.toolbar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.toolbar .wide{grid-column:1/-1}
.toolbar label{display:block}
.toolbar label>span{display:block;font-size:13px;color:var(--text-2);font-weight:600;margin-bottom:3px}
.totals{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 10px;font-size:14.5px;color:var(--text-2);align-items:center}
.totals b{color:var(--text);font-variant-numeric:tabular-nums}
.seg{display:inline-flex;background:#E7ECE9;border-radius:var(--radius-s);padding:3px;gap:2px;margin-bottom:12px}
.seg button{border:0;background:transparent;border-radius:8px;padding:6px 14px;font-weight:600;color:var(--text-2);cursor:pointer;min-height:36px}
.seg button[aria-pressed="true"]{background:#fff;color:var(--text);box-shadow:var(--shadow)}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
table.grid{border-collapse:separate;border-spacing:0;font-size:13.5px;min-width:100%}
table.grid th,table.grid td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}
table.grid th{background:var(--surface-2);font-weight:600}
table.grid th:first-child,table.grid td:first-child{position:sticky;left:0;background:#fff;z-index:1;border-right:1px solid var(--line)}
table.grid th:first-child{background:var(--surface-2)}
td.c-good{background:var(--green-bg);color:var(--green-ink)}
td.c-warn{background:var(--amber-bg);color:var(--amber-ink)}
td.c-bad{background:var(--red-bg);color:var(--red-ink)}
td.c-open{background:var(--blue-bg);color:var(--blue-ink)}
td.c-none{color:#A8B2AD}
.legend{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}

/* ---------- Finestre ---------- */
dialog{border:0;padding:0;border-radius:18px;width:min(600px,calc(100vw - 24px));max-height:92vh;color:var(--text);box-shadow:var(--shadow-lg)}
dialog::backdrop{background:rgba(15,34,29,.45)}
@media(max-width:600px){dialog{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:18px 18px 0 0}}
.sheet{display:flex;flex-direction:column;max-height:92vh;margin:0}
.sheet header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.sheet header h2{font-size:17px;font-weight:600}
.sheet-body{padding:16px 18px;overflow:auto;-webkit-overflow-scrolling:touch}
.sheet footer{display:flex;gap:8px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);align-items:center;background:var(--surface-2);border-radius:0 0 18px 18px}
.sp{flex:1}
.icon-btn{border:0;background:transparent;width:40px;height:40px;border-radius:10px;cursor:pointer;color:var(--text-2);display:grid;place-items:center}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg{width:20px;height:20px}
.field{display:block;margin:0 0 12px;border:0;padding:0;min-width:0}
.field>span,.field>legend{display:block;font-size:13.5px;font-weight:600;margin-bottom:4px;padding:0}
.field .hint{font-size:13px;color:var(--text-3);margin-top:4px}
.field[hidden]{display:none}
.form-h{font-size:13px;font-weight:600;color:var(--text-2);margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.form-h:first-child{margin-top:0;padding-top:0;border-top:0}
.form-grid{display:grid;grid-template-columns:1fr;gap:0 12px}
@media(min-width:560px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}}
.months{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.months label{position:relative;border:1px solid var(--line-2);border-radius:8px;text-align:center;padding:8px 0;font-size:13.5px;font-weight:600;cursor:pointer}
.months input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.months label:has(input:checked){background:var(--brand);color:#fff;border-color:var(--brand)}
.check{display:flex;gap:10px;align-items:center;padding:6px 0;font-weight:500}
.check input{width:20px;height:20px;min-height:0;flex:none;accent-color:var(--brand)}
.form-err{color:var(--red-ink);font-weight:600;padding:10px 18px 0;margin:0}
.form-err:empty{display:none}
.intro{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 12px;font-size:14px;margin-bottom:14px;color:var(--text-2)}
.intro b{color:var(--text)}
.history{margin:4px 0 14px;font-size:13.5px}
.history li{margin:3px 0}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(86px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;z-index:60;max-width:calc(100vw - 32px);font-weight:600;box-shadow:var(--shadow-lg)}
.toast:empty{display:none}
@media(min-width:900px){.toast{bottom:24px;left:calc(50% + 110px)}}
.login{max-width:400px;margin:12vh auto 0;padding:0 16px}
.login .logo{width:44px;height:44px;margin-bottom:14px}
.login h1{font-size:26px}
.login .card{margin-top:18px}
.loading{padding:40px;text-align:center;color:var(--text-2)}
.qtable th:first-child,.qtable td:first-child{padding-left:16px}.qtable th:last-child,.qtable td:last-child{padding-right:16px}
.prop-table td:first-child{min-width:260px}

/* Stato immobili accanto alla lista */
.status-strip{display:grid;gap:12px 20px;padding:14px 16px;margin-bottom:10px;align-items:center}
@media(min-width:900px){.status-strip{grid-template-columns:minmax(220px,1fr) minmax(0,1.6fr)}}
.status-strip h3{font-size:15px;font-weight:600}
.status-strip .faint{font-size:12.5px;margin:2px 0 10px}
.status-strip .status-bar{margin-bottom:0}
.status-filters .tutti b{color:var(--text)}
@media(max-width:480px){.status-filters button{padding:6px 7px}.status-filters button span{font-size:11.5px}.status-filters button b{font-size:19px}}

/* Selezione multipla */
.selbar{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:6px 12px 6px 16px;min-height:52px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 10px;position:sticky;top:0;z-index:6;box-shadow:var(--shadow)}
.selbar.active{background:var(--brand-soft);border-color:#BCD7CC}
.selbar .check{padding:4px 0;font-weight:600;font-size:14px}
.sel-count{font-weight:600;color:var(--brand-2);font-size:14px}
.sel{display:flex;align-items:center;justify-content:center;width:36px;height:40px;margin:-8px -4px -8px -10px;cursor:pointer;flex:none}
.sel input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--brand);cursor:pointer}
.row.selected{background:#F0F6F3}

/* Tab Immobili */
.scroll-x{overflow-x:auto}
.prop-table.wide th,.prop-table.wide td{padding:10px 9px;font-size:14px}
.prop-table.wide th:first-child,.prop-table.wide td:first-child{padding-left:16px}
.prop-table th .sort{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}
.prop-table th .sort.on{color:var(--text)}
.prop-table th.r .sort{text-align:right}
.mini.mini-3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:380px){.mini.mini-3{grid-template-columns:1fr 1fr}}
.prop-card .mini small{display:block;font-size:12px;color:var(--text-3)}
a.figure{color:inherit;text-decoration:none}
a.figure:hover{background:var(--surface-2)}
.link-row{color:inherit;text-decoration:none}
.link-row:hover{background:var(--surface-2)}
.bar{height:5px;border-radius:999px;background:#EDF0EE;margin-top:5px;max-width:220px;overflow:hidden}
.bar span{display:block;height:100%;background:var(--brand)}
@media(max-width:899px){nav.tabs a{font-size:11px}}

/* Editor liste */
.lista-riga{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.lista-riga:first-child{border-top:0}
.lista-riga>input[data-f="nome"]{flex:1 1 180px}
.lista-riga .sigla{flex:0 0 84px;text-transform:uppercase}
.lista-riga select{flex:1 1 140px}
.lista-riga input[data-f="mesi"]{flex:1 1 130px}
.lista-riga.nascosta>input,.lista-riga.nascosta>select{color:var(--text-3);background:var(--surface-2)}
.lista-azioni{display:flex;align-items:center;gap:8px;margin-left:auto}
.lista-azioni .check{padding:0;font-size:13.5px}

.prop-table.wide th,.prop-table.wide td{padding:10px 7px;font-size:14px}
.prop-table.wide td:first-child{min-width:0;width:26%}
.prop-table.wide th .sort{white-space:normal;line-height:1.25}
.prop-table.wide .reason{font-size:13px}
.prop-table.wide .pill{font-size:12.5px;padding:2px 8px 2px 7px}
@media(min-width:1100px){.toolbar.toolbar-7{grid-template-columns:repeat(7,minmax(0,1fr))}.toolbar.toolbar-8{grid-template-columns:repeat(4,minmax(0,1fr))}}
.row .t2.t-rosso{color:var(--red-ink)}.row .t2.t-giallo{color:var(--amber-ink)}.row .t2.t-verde{color:var(--green-ink)}
.lista-riga select.ruolo{flex:1 1 170px}
.lista-riga.in-eliminazione{background:var(--red-bg);border-radius:var(--radius-s);padding:8px}
.lista-sostituzione{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%;font-size:13.5px;color:var(--red-ink)}
.lista-sostituzione select{flex:1 1 160px}
.lista-riga>.full{flex-basis:100%}

/* Inventario */
.cerca-inv{padding:12px;margin-bottom:12px}
.cerca-inv input[type="search"]{margin-bottom:10px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:6px 14px;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;min-height:36px;white-space:nowrap}
.chip:hover{background:var(--surface-2)}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.percorso{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;font-size:14px}
.percorso a{color:var(--brand);text-decoration:none;font-weight:600}
.percorso a:hover{text-decoration:underline}
.percorso .sep{color:var(--text-3)}
.percorso span:last-child{color:var(--text-2);font-weight:600}
.row .chev{color:var(--text-3);font-size:15px;flex:none;margin-left:4px}
.row.gruppo-oggetto{cursor:pointer}
.row.gruppo-oggetto:hover{background:var(--surface-2)}
.row.sub-riga{padding-left:30px;background:var(--surface-2)}
.more-btn{width:100%;margin-top:10px}
.solo-pc{display:none}
@media(min-width:900px){.solo-pc{display:block}.solo-telefono{display:none}}

/* ---------- Importazione da contratto ---------- */
.field.auto input,.field.auto select,.field.auto textarea{background:var(--brand-soft);border-color:#9CC4B4}
.check.auto{background:var(--brand-soft);border-radius:8px;padding:8px 10px;margin:2px 0 8px}
.auto-chip{background:var(--brand-soft);color:var(--brand-2);border:1px solid #9CC4B4;border-radius:6px;padding:0 6px;font-weight:600;white-space:nowrap}
.import-ok{display:flex;gap:8px;align-items:flex-start;color:var(--text)}
.import-ok svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--green)}
.import-stato{display:flex;gap:10px;align-items:center;margin:4px 0 0;font-size:14px;font-weight:600;color:var(--brand-2)}
.spinner{width:16px;height:16px;flex:none;border:2px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}
.import-box{background:var(--surface);border:1px dashed #9CC4B4;border-radius:var(--radius-s);padding:12px;margin:0 0 12px}
.import-titolo{display:flex;gap:8px;align-items:center;color:var(--text)}
.import-titolo svg{width:18px;height:18px;color:var(--brand)}
.import-riga{display:flex;gap:8px;align-items:center}
.import-riga input[type=file]{flex:1;min-width:0;font-size:13.5px}
.import-stato.ok,.import-stato.warn,.import-stato.err{align-items:flex-start;font-weight:500;padding:8px 10px;border-radius:8px;margin-top:10px}
.import-stato.ok{background:var(--green-bg);color:var(--green-ink)}
.import-stato.warn{background:var(--amber-bg);color:var(--amber-ink)}
.import-stato.err{background:var(--red-bg);color:var(--red-ink)}
.import-stato svg{width:18px;height:18px;flex:none;margin-top:1px}

/* ---------- Calendario scadenze ---------- */
.cal{padding:12px 12px 10px}
.cal-testa{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-testa h2{font-size:18px;font-weight:600;text-transform:capitalize}
.cal-testa .gira svg{transform:rotate(180deg)}
.cal-riepilogo{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:13.5px;color:var(--text-2);margin:2px 4px 10px}
.cal-riepilogo b{color:var(--text);font-variant-numeric:tabular-nums}
.cal-riepilogo .btn{margin-left:auto}
.cal-sett,.cal-griglia{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-sett span{text-align:center;font-size:12px;font-weight:600;color:var(--text-3);padding-bottom:2px}
.cal-cella{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-height:58px;padding:6px 2px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;color:var(--text);cursor:pointer}
.cal-cella.vuota{border:0;background:transparent;cursor:default}
.cal-cella .n{font-size:14px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}
.cal-cella.oggi .n{background:var(--brand);color:#fff;border-radius:999px;min-width:24px;padding:1px 6px}
.cal-cella.scelto{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.cal-cella.ha.bad{background:var(--red-bg)}
.cal-cella.ha.warn{background:var(--amber-bg)}
.cal-cella:hover:not(.vuota){border-color:var(--line-2)}
.cal-cella .punti{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}
.pt{display:block;flex:none;width:7px;height:7px;border-radius:50%}
.pt.bad{background:var(--red)}.pt.warn{background:var(--amber)}.pt.open{background:var(--blue-ink)}.pt.good{background:var(--green)}.pt.info{background:#8FA39A}
.cal-cella .piu{font-style:normal;font-size:10px;line-height:7px;color:var(--text-3);font-weight:700}
.cal-cella .quanti{font-size:11px;color:var(--text-3);font-weight:600;line-height:1}
.cal-legenda{margin:10px 0 0;font-size:12.5px}
.cal-giorno-h{font-size:13.5px;font-weight:600;color:var(--text-2);margin:16px 2px 6px;text-transform:capitalize}
.cal-giorno-h.passato{color:var(--text-3)}
@media(min-width:700px){.cal-cella{min-height:76px}.cal{padding:16px}}
@media(max-width:380px){.cal-cella{min-height:52px}.cal-cella .quanti{display:none}}
.cal-fine{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text-2);padding:2px 6px}

/* ---------- Scadenze raggruppate per immobile ---------- */
.grp-barra{display:flex;justify-content:space-between;align-items:center;margin:0 2px 10px}
.grp-barra h2{font-size:17px;font-weight:600}
.grp-elenco{display:flex;flex-direction:column;gap:10px}
.grp{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.grp.g-bad{border-left-color:var(--red)}.grp.g-warn{border-left-color:var(--amber)}.grp.g-open{border-left-color:var(--blue-ink)}.grp.g-good{border-left-color:var(--green)}
.grp-testa{display:grid;grid-template-columns:24px 1fr;gap:4px 10px;align-items:start;width:100%;padding:14px 14px 14px 10px;border:0;background:transparent;text-align:left;font:inherit;color:var(--text);cursor:pointer}
.grp-testa:hover{background:var(--surface-2)}
.grp-freccia{display:grid;place-items:center;width:24px;height:24px;color:var(--text-2);transition:transform .15s}
.grp-freccia svg{width:18px;height:18px;transform:rotate(180deg)}
.grp.aperto .grp-freccia svg{transform:rotate(-90deg)}
.grp-titolo{display:flex;flex-direction:column;gap:1px;min-width:0}
.grp-titolo b{font-size:16px;font-weight:600}
.grp-titolo .faint{font-size:13px}
.grp-cifre{font-size:13.5px;color:var(--text-2);margin-top:2px}
.grp-cifre b{color:var(--text);font-variant-numeric:tabular-nums}
.grp-pills{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.grp-corpo{border-top:1px solid var(--line);border-radius:0;box-shadow:none;margin:0}
.grp-piede{padding:8px 12px;text-align:right}
.grp-senza{font-size:13.5px;margin:12px 4px 0}
@media(min-width:700px){.grp-testa{grid-template-columns:24px 1fr auto}.grp-pills{grid-column:auto;margin-top:0;justify-content:flex-end}}
@media (prefers-reduced-motion:reduce){.grp-freccia{transition:none}}

/* ---------- Spese ricorrenti per immobile ---------- */
.ric-cat{font-size:13px;font-weight:600;color:var(--text-2);margin:16px 2px 6px;text-transform:uppercase;letter-spacing:.04em}
.ric-cat:first-of-type{margin-top:4px}
.ric-spente{margin-top:16px}
.ric-spente summary{cursor:pointer;font-weight:600;color:var(--text-2);padding:6px 2px}
.ric-spente .list{margin-top:6px;opacity:.75}
.ric-nota{font-size:13px;margin:14px 2px 0}
.scelta-barra{display:flex;gap:6px;justify-content:flex-end;margin:-4px 0 6px}

/* ---------- Caricamento multiplo documenti ---------- */
.multi-upload{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.multi-btns{display:flex;gap:8px;flex-wrap:wrap}
.multi-btns .btn{cursor:pointer}
.multi-drop{margin-top:10px;border:1.5px dashed var(--line-2);border-radius:var(--radius-s);padding:16px;text-align:center;color:var(--text-3);font-size:13.5px}
.multi-drop.sopra{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-2)}
@media (hover:none){.multi-drop{display:none}}
.multi-lista{margin-top:10px}
.multi-testa{display:flex;align-items:center;gap:8px;font-size:14px}
.multi-testa .btn{margin-left:auto}
.multi-lista ul{list-style:none;margin:6px 0 0;padding:0;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-s)}
.multi-lista li{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 10px;font-size:13.5px;border-bottom:1px solid var(--line)}
.multi-lista li:last-child{border-bottom:0}
.multi-lista li span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-lista li .icon-btn{width:32px;height:32px}
.multi-lista li .icon-btn svg{width:16px;height:16px}
/* Date in formato italiano gg/mm/aaaa con calendario a lato */
.data-box{position:relative;display:flex;align-items:stretch}
.data-box .data-testo{padding-right:52px;font-variant-numeric:tabular-nums}
.data-cal{position:absolute;right:1px;top:1px;bottom:1px;width:46px;display:flex;align-items:center;justify-content:center;color:var(--text-3);border-left:1px solid var(--line-2);border-radius:0 var(--radius-s) var(--radius-s) 0;cursor:pointer;overflow:hidden}
.data-cal:hover{color:var(--text);background:var(--brand-soft)}
.data-cal svg{width:20px;height:20px;pointer-events:none}
.data-cal .data-nativa{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;opacity:0;cursor:pointer;font-size:16px}
.data-cal .data-nativa::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer}
/* Rimborsi delle spese */
.rimb-anteprima{margin:6px 0 4px}
.rimb-calc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface-2)}
.rimb-calc>div{padding:10px 12px;border-left:1px solid var(--line);min-width:0}
.rimb-calc>div:first-child{border-left:0}
.rimb-calc span{display:block;font-size:12.5px;color:var(--text-3)}
.rimb-calc b{font-size:15.5px;font-variant-numeric:tabular-nums}
.rimb-calc small{display:block;font-size:12px;color:var(--text-3)}
.rimb-persone{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.rimb-persone>div{background:var(--amber-bg);color:var(--amber-ink);border-radius:var(--radius-s);padding:8px 12px;font-size:13.5px}
.rimb-persone b{margin-left:8px;font-variant-numeric:tabular-nums}
/* Spese sostenute */
.sp-anno{display:flex;align-items:center;gap:6px}
.sp-anno span{font-size:13px;color:var(--text-3)}
.sp-anno select{min-width:150px}
.sp-totali{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;margin-bottom:14px}
.sp-totali>div{padding:14px 16px;border-left:1px solid var(--line);min-width:0}
.sp-totali>div:first-child{border-left:0}
.sp-totali span{display:block;font-size:13px;color:var(--text-3)}
.sp-totali b{font-size:18px;font-variant-numeric:tabular-nums}
.sp-totali>div:last-child b{color:var(--brand)}
@media(max-width:560px){.sp-totali{grid-template-columns:1fr}.sp-totali>div{border-left:0;border-top:1px solid var(--line)}.sp-totali>div:first-child{border-top:0}.rimb-calc{grid-template-columns:1fr}.rimb-calc>div{border-left:0;border-top:1px solid var(--line)}.rimb-calc>div:first-child{border-top:0}}
.sp-cat{padding:12px 16px}
.sp-riga{display:grid;grid-template-columns:minmax(110px,1.2fr) 2fr auto;grid-template-areas:'n b v';align-items:center;gap:4px 12px;padding:6px 0;font-size:14px}
.sp-riga>span:first-child{grid-area:n;min-width:0}.sp-riga>.sp-bar{grid-area:b}.sp-riga>b{grid-area:v}
@media(max-width:560px){.sp-riga{grid-template-columns:1fr auto;grid-template-areas:'n v' 'b b'}}
.sp-bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}
.sp-bar i{display:block;height:100%;background:var(--brand);border-radius:4px}
.sp-riga b{font-variant-numeric:tabular-nums;text-align:right}

/* ---------- Nuovo layout (ottobre 2026) ---------- */
/* Lista immobili: striscia dei 4 numeri */
.striscia{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;padding:0}
.striscia>a,.striscia>div{display:flex;flex-direction:column;gap:4px;padding:14px 18px;border-left:1px solid var(--line);color:inherit;text-decoration:none;min-width:0}
.striscia>:first-child{border-left:0}
.striscia>a:hover{background:var(--surface-2)}
.striscia .label{font-size:13px;color:var(--text-3);display:flex;align-items:center;gap:6px}
.striscia b{font-size:21px;font-weight:600;line-height:1.2}
.striscia b small{font-size:13.5px;font-weight:500;color:var(--text-3)}
.striscia .nota{font-size:13px;color:var(--text-2)}
.barra{display:block;height:6px;background:var(--brand-soft);border-radius:4px;overflow:hidden;margin-top:4px}
.barra>span{display:block;height:100%;background:var(--brand);border-radius:4px}
.mini-select{width:auto;min-height:0;padding:1px 22px 1px 6px;font-size:13px;border-radius:6px;background-position:right 6px center}
.neg{color:var(--red-ink)}
@media(max-width:820px){.striscia{grid-template-columns:repeat(2,minmax(0,1fr))}.striscia>:nth-child(3){border-left:0}.striscia>:nth-child(n+3){border-top:1px solid var(--line)}}
/* Filtri */
.filtri-riga{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.filtri-riga .cerca{flex:1 1 260px;display:block}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{appearance:none;border:1px solid var(--line-2);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 13px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;min-height:38px}
.chip span{color:var(--text-3);font-weight:600;margin-left:2px}
.chip:hover{background:var(--surface-2)}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.chip.on span{color:#CFE3DA}
.btn.attivo{border-color:var(--brand);color:var(--brand)}
/* Tabella immobili */
.imm-cell{display:flex;gap:10px;align-items:center}
.imm-cell .dot{width:10px;height:10px}
.segmenti{display:flex;gap:3px;margin-top:5px}
.segmenti span{width:16px;height:6px;border-radius:3px;background:var(--line-2)}
.segmenti span.pieno{background:var(--green)}
.pill.motivo{white-space:normal;line-height:1.3;max-width:100%}
.prop-table .sistemare .pill.motivo{max-width:260px}
.pill-btn{border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:600}
/* Panoramica */
.pano{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}
.pano-main{flex:2 1 520px;min-width:0;display:grid;gap:14px}
.pano-side{flex:1 1 280px;min-width:0;display:grid;gap:14px}
.mese-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.mese-2>div{padding:14px 16px;display:flex;flex-direction:column;gap:9px;min-width:0}
.mese-2>div+div{border-left:1px solid var(--line)}
@media(max-width:620px){.mese-2{grid-template-columns:1fr}.mese-2>div+div{border-left:0;border-top:1px solid var(--line)}}
.mini-h{font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--text-3);text-transform:uppercase}
.riga-mese{display:flex;justify-content:space-between;gap:10px;font-size:14.5px}
.riga-mese>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.riga-mese>span:last-child{font-weight:600;white-space:nowrap}
.mini-titolo{font-size:15.5px;font-weight:600;margin-bottom:10px}
.prossimo{display:flex;align-items:center;gap:12px;padding:6px 0}
.prossimo .grow{flex:1;min-width:0}
.giorno{flex:none;width:46px;text-align:center;line-height:1.05;border-radius:10px;padding:5px 0;background:var(--surface-2)}
.giorno b{display:block;font-size:18px;font-variant-numeric:tabular-nums}
.giorno small{font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--text-3)}
.giorno.g-ko{background:var(--red-bg);color:var(--red-ink)}.giorno.g-ko small{color:var(--red-ink)}
.giorno.g-att{background:var(--amber-bg);color:var(--amber-ink)}.giorno.g-att small{color:var(--amber-ink)}
.giorno.g-ok{background:var(--green-bg);color:var(--green-ink)}.giorno.g-ok small{color:var(--green-ink)}
.facts-1{grid-template-columns:1fr;gap:8px}
.facts-1 div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.facts-1 dd{font-size:15px}
.scheda summary{cursor:pointer;list-style:none}
.scheda summary::-webkit-details-marker{display:none}
.scheda summary::after{content:" ›";color:var(--text-3)}
.scheda[open] summary::after{content:" ⌄"}
/* Inquilini: sezioni per camera */
.cam-testa:disabled{cursor:default}
.cam-testa:disabled:hover{background:transparent}
.cam-riga{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0}
.cam-nome{font-size:16px;min-width:120px}
.cam-chi{flex:1 1 200px;min-width:0;color:var(--text-2)}
.cam-pill{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cam-corpo{border-top:1px solid var(--line);padding:4px 16px 14px 44px}
@media(max-width:620px){.cam-corpo{padding-left:16px}}
.inq-blocco{padding:14px 0;border-top:1px solid var(--line);display:grid;gap:12px}
.inq-blocco:first-child{border-top:0}
.inq-testa{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:16px}
.fatti{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px}
@media(max-width:980px){.fatti{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fatto{min-width:0;font-size:14px;overflow-wrap:anywhere}
.fatto>span{display:block;font-size:12.5px;color:var(--text-3)}
.fatto .small{font-size:12.5px;color:var(--text-3)}
.ultimi{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ultimi>span:first-child{font-size:13px;color:var(--text-3);min-width:100px}
.ritardo{display:flex;gap:8px;align-items:center;background:var(--red-bg);color:var(--red-ink);border-radius:var(--radius-s);padding:8px 12px;font-size:14px}
.ritardo svg{width:18px;height:18px;flex:none}
.inq-blocco .acts{display:flex;gap:6px;flex-wrap:wrap}
.linklike{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--brand);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.cam-libera{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0 0;border-top:1px dashed var(--line-2);color:var(--text-2)}
.cam-corpo>.cam-libera:first-child{border-top:0}
.piega>summary{cursor:pointer;padding:14px 16px;list-style:none}
.piega>summary::-webkit-details-marker{display:none}
.piega>summary::after{content:" ›";color:var(--text-3)}
.piega[open]>summary{border-bottom:1px solid var(--line)}
.piega[open]>summary::after{content:" ⌄"}
/* Scadenze del mese */
.scad-testa{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.mese-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mese-nav h2{font-size:21px;font-weight:600;min-width:160px;text-align:center}
.btn.icona{min-width:42px;padding:0 10px;font-size:18px}
.btn.sm.icona{min-width:34px;font-size:16px}
.link-cal{margin-left:8px;font-size:14px;font-weight:600;text-decoration:none}
.menu{position:relative}
.menu>summary{list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu-voci{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;min-width:260px}
.menu-voci button{appearance:none;border:0;background:none;text-align:left;font:inherit;font-size:14.5px;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--text)}
.menu-voci button:hover{background:var(--surface-2)}
.scad-riepilogo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.scad-riepilogo>.card{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.scad-riepilogo .label{font-size:13px;color:var(--text-3)}
.scad-riepilogo b{font-size:21px;font-weight:600}
.scad-riepilogo b small{font-size:13.5px;font-weight:500;color:var(--text-3)}
.scad-riepilogo .nota{font-size:13px;color:var(--text-2)}
.scad-riepilogo .rossa{background:var(--red-bg);border-color:#F3C9C2}
.scad-riepilogo .rossa .label,.scad-riepilogo .rossa b,.scad-riepilogo .rossa .nota{color:var(--red-ink)}
@media(max-width:720px){.scad-riepilogo{grid-template-columns:1fr}}
.scad-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:900px){.scad-2{grid-template-columns:1fr}}
.scad-h{font-size:15px;font-weight:600;margin:0 0 8px}
.scad-lista{overflow:hidden}
.scad-riga{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--line)}
.scad-riga:first-child{border-top:0}
.scad-riga .grow{flex:1;min-width:0}
.scad-riga .t1{font-weight:600}
.scad-riga .t2{font-size:13.5px;color:var(--text-2)}
.scad-riga.ko .t2{color:var(--red-ink)}
.scad-riga.att .t2{color:var(--amber-ink)}
.scad-riga.muta{opacity:.7}
.scad-riga .importo{font-weight:600;white-space:nowrap}
.scad-riga .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:560px){.scad-riga{flex-wrap:wrap}.scad-riga .acts{width:100%;justify-content:flex-start;padding-left:58px}}
/* Sollecito */
.sollecito-azioni{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.sollecito-azioni a[aria-disabled="true"]{opacity:.5;pointer-events:none}
.scad-2 .scad-riga{flex-wrap:wrap}
.scad-2 .scad-riga .grow{flex:1 1 160px}
.scad-2 .scad-riga .acts{margin-left:auto}
/* Riepilogo */
.rit-riga{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);flex-wrap:wrap}
.card-head+.rit-riga{border-top:0}
.rit-riga .grow{flex:1 1 200px;min-width:0;color:inherit;text-decoration:none}
.rit-riga .t1{font-weight:600}
.rit-riga .t2{font-size:13px;color:var(--text-2)}
.rit-riga .acts{display:flex;gap:6px}
.rit-gg{min-width:58px;justify-content:center;font-variant-numeric:tabular-nums}
.sist-gruppo+.sist-gruppo>.row{border-top:1px solid var(--line)}
.sist-gruppo>.row{border-top:0}
.sist-voci{background:var(--surface-2);border-top:1px solid var(--line)}
.sist-voci .row{padding-left:36px}
.sist-voci .row .grow{color:inherit;text-decoration:none}
.sist-voci .row .t1{font-weight:600;font-size:14.5px}
.legenda{font-size:13px;color:var(--text-3);display:flex;align-items:center;gap:6px}
.legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}
.l-inc,.b-inc{background:var(--brand)}
.l-spe,.b-spe{background:var(--amber)}
.grafico{display:flex;gap:10px;align-items:stretch;padding:18px 16px 10px;height:180px}
.g-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:center}
.g-barre{flex:1;width:100%;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.g-barre span{flex:1;max-width:22px;border-radius:3px 3px 0 0;min-height:0}
.g-col small{font-size:12px;color:var(--text-3)}
.imm-mini{display:flex;gap:10px;align-items:center;padding:8px 0;color:inherit;text-decoration:none;border-top:1px solid var(--line)}
.mini-titolo+.imm-mini{border-top:0}
.imm-mini .grow{flex:1;min-width:0}
.imm-mini .t1{font-weight:600;font-size:14.5px}
.imm-mini .t2{font-size:12.5px;color:var(--text-2)}
.imm-mini:hover .t1{color:var(--brand)}
/* Conti e rientro */
.conto{padding:0;overflow:hidden}
.conto-righe{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.conto-righe>div{padding:14px 18px;display:flex;flex-direction:column;gap:3px;border-left:1px solid var(--line);min-width:0}
.conto-righe>div:first-child{border-left:0}
.conto-righe span{font-size:13px;color:var(--text-3)}
.conto-righe span small{font-size:12px;color:var(--text-3);margin-left:4px}
.conto-righe b{font-size:21px;font-weight:600}
.conto-righe>div>small{font-size:12.5px;color:var(--text-2)}
.conto-righe .tot{background:var(--surface-2)}
@media(max-width:720px){.conto-righe{grid-template-columns:1fr}.conto-righe>div{border-left:0;border-top:1px solid var(--line)}.conto-righe>div:first-child{border-top:0}}
.rientro{padding:12px 18px 14px;border-top:1px solid var(--line);display:grid;gap:6px}
.rientro-testa{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px}
.rientro .t2{font-size:13px;color:var(--text-2)}
.rientro.mini{border-top:1px solid var(--line);padding:10px 0 0;margin-top:10px}
.rientro.mini .btn{justify-self:start;padding-left:0}
.cat-stack{display:flex;height:10px;margin:0 18px;border-radius:5px;overflow:hidden;gap:2px}
.cat-legenda{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 18px 14px;font-size:13.5px;color:var(--text-2)}
.cat-legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.cat-legenda b{color:var(--text);margin-left:4px}
.rientro+.cat-stack,.conto-righe+.cat-stack{margin-top:14px}
.hero .quick .quick-nota{display:block;font-size:12px;color:var(--text-3)}
/* Riquadro Guadagno */
.segmenti-periodo{display:flex;gap:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;flex-wrap:wrap}
.segmenti-periodo button{appearance:none;border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--text-2);padding:5px 10px;border-radius:7px;cursor:pointer;min-height:32px}
.segmenti-periodo button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(15,34,29,.14)}
.guadagno .card-head{flex-wrap:wrap}
.g-conto{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 18px;padding:14px 16px;align-items:baseline;font-size:15px}
.g-conto small{font-size:12.5px;color:var(--text-3);margin-left:6px}
.g-conto .g-sub{border-top:1px solid var(--line);padding-top:10px;font-weight:700}
.g-extra{border-top:1px solid var(--line);background:var(--surface-2);padding:12px 16px;display:grid;gap:8px}
.g-switch{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}
.g-switch input{width:20px;height:20px;accent-color:var(--brand);min-height:0}
.g-switch span{flex:1}
.g-switch b{color:var(--red-ink)}
.g-pers>summary{cursor:pointer;font-size:14px;color:var(--brand);font-weight:600;list-style:none}
.g-pers>summary::-webkit-details-marker{display:none}
.g-pers>summary::after{content:" ›"}
.g-pers[open]>summary::after{content:" ⌄"}
.g-cat{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.g-cat .chip:disabled{opacity:.5;cursor:default}
.g-pers .t2{font-size:12.5px;color:var(--text-3);margin-top:6px}
.g-totale{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--line)}
.g-totale span{display:block;font-weight:700;font-size:16px}
.g-totale small{font-size:12.5px;color:var(--text-3)}
.g-totale b{font-size:24px;font-weight:700}
.g-barra{display:flex;height:12px;margin:0 16px;border-radius:6px;overflow:hidden;background:var(--line)}
.g-barra span{display:block;height:100%}
.b-netto{background:var(--brand)}.b-fissi{background:#9DB3AA}.b-extra{background:var(--amber)}
.g-legenda{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 16px 14px;font-size:12.5px;color:var(--text-3)}
.g-legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.riga-mese .sotto,.prossimo .sotto{display:block;font-size:12px;color:var(--text-3);font-weight:400}

/* Inventario da foto o video */
.ai-anteprime .t2{margin:6px 0 0;font-size:14px}
.ai-barra{display:flex;gap:6px;margin:12px 0 6px}
.ai-lista{display:grid;gap:8px}
.ai-riga{display:grid;grid-template-columns:auto 64px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface)}
.ai-riga.spenta{background:var(--surface-2)}
.ai-riga.spenta .ai-campi,.ai-riga.spenta .ai-foto{opacity:.55}
.ai-sel{padding-top:20px}
.ai-sel input{width:20px;height:20px;accent-color:var(--brand)}
.ai-foto{width:64px;height:64px;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface-2);cursor:zoom-in}
.ai-foto img{width:100%;height:100%;object-fit:cover;display:block}
.ai-campi{display:grid;gap:6px;min-width:0}
.ai-campi input,.ai-campi select{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--text);min-width:0;width:100%;box-sizing:border-box}
.ai-top{display:flex;gap:8px}
.ai-top .ai-nome{font-weight:600;flex:1}
.ai-q{display:flex;align-items:center;gap:4px;flex:none;width:84px;color:var(--text-2)}
.ai-sotto{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ai-note{color:var(--text-2)}
.ai-tag{display:flex;flex-wrap:wrap;gap:4px}
.ai-tag .pill{white-space:normal}
.ai-zoom{position:fixed;inset:0;z-index:50;background:rgba(15,34,29,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}
.ai-zoom[hidden]{display:none}
.ai-zoom img{max-width:100%;max-height:80vh;border-radius:10px}
@media (max-width:560px){.ai-riga{grid-template-columns:auto 52px minmax(0,1fr)}.ai-foto{width:52px;height:52px}.ai-sotto{grid-template-columns:1fr 1fr}.ai-sotto input{grid-column:1/-1}}
.bene-foto{margin-top:6px}
.bene-foto-img{display:block;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2);max-width:100%;cursor:zoom-in;min-height:60px;min-width:120px}
.bene-foto-img img{display:block;max-width:100%;max-height:260px}
.bene-foto-img .t2{display:block;padding:18px 14px}

/* Verifica in due passaggi */
.mfa-stato{margin-top:6px}
.mfa-passi{margin:12px 0 0;padding-left:20px;display:grid;gap:10px;font-size:14px;line-height:1.5}
.mfa-qr{margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;width:max-content}
.mfa-qr img{display:block;width:180px;height:180px}
.mfa-chiave{word-break:break-all;font-size:13px;background:var(--surface-2);padding:2px 6px;border-radius:6px}
.login.login-largo{max-width:520px}
