:root{
--bg:#f5f7fa;--panel:#fff;--text:#17202a;--muted:#6b7280;--line:#dfe4ea;--accent:#17324d;--accent2:#2f75b5;--ok:#0f7b46;--bad:#b42318;--warn:#9a6700;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
.topbar{min-height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 22px;gap:16px;position:sticky;top:0;z-index:4}
.brand{display:flex;gap:11px;align-items:center;min-width:0}
.brand-logo,.brand-fallback{width:44px;height:44px;border-radius:10px;flex:0 0 44px}
.brand-logo{object-fit:contain;background:#fff}
.brand-fallback{display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:800;font-size:15px;letter-spacing:.04em}
.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-size:17px}.brand-copy span{font-size:12px}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-brand h1{margin:0}.login-brand p{margin:3px 0 0}
.top-actions{display:flex;gap:12px;align-items:center;font-size:14px}
.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 68px)}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px 12px;display:flex;flex-direction:column;gap:6px}
.sidebar a{padding:11px 12px;border-radius:9px}.sidebar a:hover{background:#edf3f8}
.content{padding:28px;max-width:1400px;width:100%;margin:0 auto}
h1{font-size:28px;margin:0 0 18px}h2{font-size:18px;margin:0 0 14px}h3{font-size:15px;margin:4px 0 0}
.page-head,.section-head,.report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-head{margin-bottom:20px}.page-head h1{margin-bottom:4px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px}
.card{padding:18px;display:flex;flex-direction:column;gap:8px}.card span{font-size:13px;color:var(--muted)}.card strong{font-size:22px}
.panel{padding:20px;margin-bottom:18px}
.stack{display:flex;flex-direction:column;gap:14px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.tenant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.tenant-card{margin-bottom:10px}.close-box{padding:14px;border-style:dashed}
.actions{display:flex;flex-wrap:wrap;gap:10px}
label{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px}
input,select,textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);padding:9px 11px;font:inherit}
input[type=checkbox]{width:auto;min-height:auto}
textarea{min-height:90px;resize:vertical}
button,.button{border:0;border-radius:9px;min-height:42px;padding:10px 14px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.primary{background:var(--accent);color:#fff}.ghost{border:1px solid var(--line);background:#fff}.danger{background:#fff0ee;color:var(--bad);border:1px solid #f1b5ae}.small{min-height:34px;padding:7px 10px;font-size:12px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.muted,.help{color:var(--muted)}.help{font-size:12px}.good{color:var(--ok)!important}.bad{color:var(--bad)!important}
.alert{padding:12px 14px;border-radius:10px;background:#e8f4ec;margin-bottom:16px}.alert.error{background:#fdecec;color:var(--bad)}
.status-pill{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:11px;color:var(--muted);font-weight:600}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px}.auth-card h1{margin-bottom:4px}
.new-tenant{scroll-margin-top:90px}
.settings-panel{max-width:720px}.logo-preview{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.logo-preview img{max-width:180px;max-height:80px;object-fit:contain;border:1px solid var(--line);border-radius:10px;padding:8px}.check{flex-direction:row;align-items:center}
@media(max-width:1050px){.tenant-grid{grid-template-columns:1fr 1fr}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.form-grid{grid-template-columns:1fr 1fr}.layout{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px 12px}.content{padding:18px}}
@media(max-width:650px){.cards,.tenant-grid,.form-grid{grid-template-columns:1fr}.topbar{padding:10px 14px;align-items:flex-start}.top-actions{flex-direction:column;align-items:flex-end}.content{padding:14px}.page-head,.section-head,.report-head{flex-direction:column}.brand-logo,.brand-fallback{width:40px;height:40px;flex-basis:40px}}
@media print{.topbar,.sidebar,.button,.no-print,form{display:none!important}.layout{display:block}.content{padding:0}.panel{border:0}.report{display:block}.cards{grid-template-columns:repeat(2,1fr)}body{background:#fff}}

.upgrade-card{width:min(560px,100%)}
.notice{padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#f7f9fb;margin-bottom:16px}
.account-summary{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px}
.account-summary span{color:var(--muted)}

.filter-row{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.filter-row label{min-width:180px}
.table-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.table-actions form{margin:0}
.expense-history{display:flex;flex-direction:column;gap:12px}
.expense-row{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fff}
.expense-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.expense-money{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.expense-note{margin:10px 0;color:var(--muted);font-size:14px}
.expense-row details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.expense-row summary{cursor:pointer;font-weight:650}
.allocation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.allocation-grid>div{display:flex;justify-content:space-between;gap:12px;background:var(--bg);border-radius:8px;padding:9px 10px;font-size:13px}
.settlement-list{display:flex;flex-direction:column;gap:9px;margin:14px 0 20px}
.settlement-suggestion{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:12px}
.settlement-suggestion>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.settlement-summary table{margin-top:14px}
@media(max-width:750px){
  .expense-main{flex-direction:column}
  .expense-money{align-items:flex-start;text-align:left}
  .allocation-grid{grid-template-columns:1fr}
  .settlement-suggestion{grid-template-columns:1fr}
}


/* =========================
   STAMPA / PDF PROFESSIONALE
   ========================= */
.print-header{display:none}
.print-section-title{font-weight:750;font-size:15px;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.print-note{font-size:12px;color:var(--muted);margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}

@page{
  size:A4;
  margin:14mm 14mm 16mm 14mm;
}

@media print{
  html,body{
    background:#fff!important;
    color:#111!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:10.5pt!important;
  }

  body{
    margin:0!important;
  }

  .topbar,
  .sidebar,
  .no-print,
  .screen-page-title,
  button,
  .button,
  form{
    display:none!important;
  }

  .layout{
    display:block!important;
    min-height:auto!important;
  }

  .content{
    padding:0!important;
    margin:0!important;
    max-width:none!important;
    width:100%!important;
  }

  .print-header{
    display:grid!important;
    grid-template-columns:1fr auto;
    gap:12px 20px;
    align-items:center;
    padding-bottom:10px;
    margin-bottom:16px;
    border-bottom:2px solid #222;
    break-inside:avoid;
  }

  .print-brand{
    display:flex;
    align-items:center;
    gap:10px;
  }

  .print-logo,
  .print-logo-fallback{
    width:46px!important;
    height:46px!important;
    flex:0 0 46px;
  }

  .print-logo{
    object-fit:contain;
  }

  .print-logo-fallback{
    display:grid;
    place-items:center;
    border:1px solid #888;
    border-radius:8px;
    font-weight:700;
  }

  .print-brand-copy{
    display:flex;
    flex-direction:column;
    line-height:1.15;
  }

  .print-brand-copy strong{
    font-size:15pt;
  }

  .print-brand-copy span{
    font-size:9.5pt;
    margin-top:3px;
    color:#555;
  }

  .print-meta{
    display:grid;
    grid-template-columns:auto auto;
    gap:6px 20px;
    text-align:right;
    align-items:end;
  }

  .print-meta div{
    display:flex;
    flex-direction:column;
  }

  .print-meta span{
    font-size:8pt;
    color:#666;
    text-transform:uppercase;
    letter-spacing:.04em;
  }

  .print-meta strong{
    font-size:10pt;
    margin-top:2px;
  }

  .print-document-title{
    grid-column:1 / -1;
    font-size:17pt;
    font-weight:750;
    padding-top:7px;
  }

  .panel{
    border:0!important;
    border-radius:0!important;
    padding:0!important;
    margin:0 0 14px!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  .report-head{
    display:block!important;
    margin-bottom:12px!important;
  }

  .report-head h2{
    font-size:14pt!important;
    margin:0 0 4px!important;
  }

  .report-head p{
    font-size:9pt!important;
    margin:2px 0!important;
  }

  .cards,
  .print-cards{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:7px!important;
    margin:0 0 12px!important;
  }

  .card{
    border:1px solid #cfcfcf!important;
    border-radius:5px!important;
    padding:9px 10px!important;
    min-height:58px!important;
    break-inside:avoid;
  }

  .card span{
    font-size:8.5pt!important;
    color:#555!important;
  }

  .card strong{
    font-size:12pt!important;
    margin-top:4px!important;
  }

  .print-section-title{
    font-size:11pt!important;
    font-weight:700!important;
    margin:15px 0 7px!important;
    padding-bottom:4px!important;
    border-bottom:1px solid #999!important;
    break-after:avoid;
  }

  .print-note{
    font-size:8.5pt!important;
    color:#555!important;
    margin-top:10px!important;
  }

  table{
    width:100%!important;
    min-width:0!important;
    font-size:8.5pt!important;
    border-collapse:collapse!important;
  }

  th,td{
    padding:6px 5px!important;
    border-bottom:1px solid #ccc!important;
    vertical-align:top!important;
  }

  th{
    font-size:7.5pt!important;
    color:#333!important;
    background:#f2f2f2!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  tr{
    break-inside:avoid;
  }

  .table-wrap{
    overflow:visible!important;
  }

  .expense-row{
    border:1px solid #ccc!important;
    border-radius:5px!important;
    padding:9px!important;
    margin-bottom:7px!important;
    break-inside:avoid;
  }

  .expense-row details{
    display:block!important;
  }

  .expense-row details > summary{
    display:none!important;
  }

  .expense-row details > *{
    display:block!important;
  }

  .allocation-grid{
    grid-template-columns:repeat(3,1fr)!important;
    gap:5px!important;
  }

  .allocation-grid>div{
    border:1px solid #ddd!important;
    background:#fff!important;
    padding:5px 6px!important;
    font-size:8pt!important;
  }

  .settlement-suggestion{
    border:1px solid #bbb!important;
    border-radius:4px!important;
    padding:7px!important;
    break-inside:avoid;
  }

  .good,.bad{
    color:#111!important;
  }

  a{
    color:#111!important;
    text-decoration:none!important;
  }

  .muted{
    color:#555!important;
  }
}


/* Elementi esclusivamente per stampa: mai visibili durante la navigazione */
@media screen {
  .print-header,
  .print-meta,
  .print-document-title {
    display:none!important;
  }
}


/* =========================
   DASHBOARD MENSILE
   ========================= */
.dashboard-head{align-items:flex-end}
.month-picker{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}
.month-picker label{min-width:155px}
.month-picker input{min-height:38px}

.dashboard-period-note{
  display:flex;
  align-items:center;
  gap:10px 16px;
  flex-wrap:wrap;
  font-size:13px;
  color:var(--muted);
  margin:-8px 0 18px;
}

.dashboard-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:20px;
}

.metric-card{
  position:relative;
  overflow:hidden;
  min-height:126px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:7px;
}

.metric-card:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:#9aa4b2;
}

.metric-card span{
  color:var(--muted);
  font-size:13px;
  font-weight:650;
}

.metric-card strong{
  font-size:24px;
  line-height:1.1;
}

.metric-card small{
  margin-top:auto;
  color:var(--muted);
  font-size:11.5px;
}

.metric-primary:before{background:#2f75b5}
.metric-ok:before{background:#17844b}
.metric-warning:before{background:#d99000}
.metric-danger:before{background:#c13c31}
.metric-credit:before{background:#4968b0}
.metric-neutral:before{background:#8a94a3}

.dashboard-table-panel{padding-top:18px}
.dashboard-deposit{
  min-width:190px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  gap:3px;
  text-align:right;
}
.dashboard-deposit span{font-size:11px;color:var(--muted)}
.dashboard-deposit strong{font-size:16px}

.dashboard-table th,
.dashboard-table td{white-space:nowrap}

.dashboard-table td:first-child,
.dashboard-table td:nth-child(2){white-space:normal}

.dashboard-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
  font-size:12px;
  color:var(--text);
}

.table-sub{font-size:11px;margin-top:3px}

.dashboard-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  font-weight:750;
  border:1px solid transparent;
}

.status-ok{
  color:#0c6b3a!important;
  background:#e9f7ef!important;
  border-color:#b9dfc8!important;
}

.status-warning{
  color:#8a5a00!important;
  background:#fff6df!important;
  border-color:#ead49b!important;
}

.status-danger{
  color:#a52d25!important;
  background:#fdecea!important;
  border-color:#efb7b2!important;
}

.status-credit{
  color:#36558f!important;
  background:#edf2fc!important;
  border-color:#c7d3ed!important;
}

.status-neutral{
  color:#5f6875!important;
  background:#f1f3f5!important;
  border-color:#d9dde2!important;
}

.amount-positive,.amount-ok{color:#0f7b46!important}
.amount-warning{color:#a56b00!important}
.amount-danger{color:#b42318!important}
.amount-credit{color:#3f5f9b!important}

.dashboard-help p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  font-size:13px;
}

@media(max-width:1100px){
  .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  .dashboard-metrics{grid-template-columns:1fr}
  .dashboard-deposit{text-align:left;width:100%}
  .month-picker{width:100%}
  .month-picker label{flex:1}
}

@media print{
  .dashboard-metrics{
    grid-template-columns:repeat(2,1fr)!important;
    gap:7px!important;
  }

  .metric-card{
    min-height:70px!important;
    padding:9px 10px!important;
    border:1px solid #ccc!important;
    break-inside:avoid;
  }

  .metric-card:before{display:none!important}
  .metric-card strong{font-size:12pt!important}
  .dashboard-period-note{font-size:8.5pt!important;margin-bottom:8px!important}
  .dashboard-help{display:none!important}
  .dashboard-deposit{background:#fff!important}
}


/* =========================
   RENDICONTO GLOBALE ADMIN
   ========================= */
.reports-main-head{align-items:flex-end}
.report-period-picker{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.report-period-picker label{min-width:190px}

.global-report{padding:22px}
.global-summary-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}

.global-report-table th,
.global-report-table td{white-space:nowrap}

.global-report-table td:first-child{white-space:normal;min-width:150px}

.global-report-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
  color:var(--text);
}

.global-settlement-box{
  margin-top:22px;
  padding-top:17px;
  border-top:1px solid var(--line);
}

.global-settlement-box h3{margin:0 0 4px}

.global-settlement-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}

.global-settlement-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafbfc;
}

.compact-alert{margin:12px 0 0}

.individual-report-section{
  margin-top:30px;
  padding-top:26px;
  border-top:2px solid var(--line);
}

.individual-report-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:12px;
}

.individual-report-title h2{font-size:22px;margin-bottom:4px}

.individual-report-selector{margin-bottom:18px}
.individual-report-card{padding:22px}

@media(max-width:1100px){
  .global-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  .global-summary-cards{grid-template-columns:1fr}
  .report-period-picker{width:100%}
  .global-settlement-row{align-items:flex-start;flex-direction:column}
}

@media print{
  .global-summary-cards{
    grid-template-columns:repeat(2,1fr)!important;
    gap:7px!important;
  }

  .global-report{
    padding:0!important;
  }

  .global-report-table{
    font-size:7.3pt!important;
  }

  .global-report-table th,
  .global-report-table td{
    padding:5px 4px!important;
  }

  .global-settlement-row{
    padding:6px 8px!important;
    background:#fff!important;
    break-inside:avoid;
  }

  .individual-report-section{
    margin-top:18px!important;
    padding-top:14px!important;
    border-top:1.5px solid #555!important;
  }

  .individual-report-title{
    display:block!important;
    margin-bottom:8px!important;
  }

  .individual-report-title h2{
    font-size:13pt!important;
  }

  .individual-report-card{
    padding:0!important;
  }
}


/* Pagamenti: evidenza competenza */
.payment-badge{
  display:inline-flex;
  margin-top:4px;
  padding:3px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  line-height:1;
}
.payment-badge.advance{
  background:#edf2fc;
  color:#36558f;
  border:1px solid #c7d3ed;
}
.payment-badge.late{
  background:#fff6df;
  color:#8a5a00;
  border:1px solid #ead49b;
}


/* =========================
   SCONTRINI / FOTO SPESE
   ========================= */
.receipt-entry-panel{scroll-margin-top:90px}

.receipt-quick-entry{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);
  gap:18px;
  align-items:stretch;
}

.receipt-camera-box,
.receipt-amount-box{
  border:1px solid var(--line);
  border-radius:13px;
  padding:16px;
  background:#fafbfc;
}

.receipt-upload-label{
  min-height:145px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:5px;
  border:2px dashed #bac5d1;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  padding:18px;
}

.receipt-upload-label:hover{
  border-color:#7e94aa;
  background:#f8fafc;
}

.receipt-upload-label strong{
  color:var(--text);
  font-size:16px;
}

.receipt-upload-label span{
  font-size:12px;
}

.receipt-upload-label input{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  overflow:hidden;
}

.receipt-camera-icon{
  font-size:30px!important;
  line-height:1;
  margin-bottom:3px;
}

.receipt-amount-box{
  display:flex;
  align-items:center;
}

.receipt-amount-box label{
  width:100%;
}

.receipt-amount-input{
  min-height:58px;
  font-size:24px;
  font-weight:750;
  text-align:right;
}

.receipt-preview-wrap{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
}

.receipt-preview{
  max-width:240px;
  max-height:300px;
  object-fit:contain;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.existing-receipt{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}

.receipt-thumb{
  width:82px;
  height:82px;
  object-fit:cover;
  border-radius:9px;
  border:1px solid var(--line);
}

.expense-info-with-receipt{
  display:flex;
  gap:12px;
  align-items:flex-start;
}

.history-receipt-thumb{
  width:60px;
  height:60px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--line);
  background:#fff;
}

.receipt-link-row{
  margin-top:5px;
  font-size:12px;
}

.receipt-link-row a{
  color:#2f75b5;
  text-decoration:underline;
}

@media(max-width:760px){
  .receipt-quick-entry{grid-template-columns:1fr}
  .receipt-upload-label{min-height:120px}
  .receipt-amount-input{text-align:left}
  .expense-info-with-receipt{gap:9px}
  .history-receipt-thumb{width:52px;height:52px}
}

@media print{
  .history-receipt-thumb-link,
  .receipt-link-row{
    display:none!important;
  }
}


/* =========================
   ACCONTI / TENDINA MESI
   ========================= */
.month-picker select{
  min-width:190px;
  min-height:38px;
}

.month-arrow{
  min-width:40px;
  padding-left:10px;
  padding-right:10px;
  font-size:21px;
  line-height:1;
}

.advance-info-box{
  border-left:4px solid #4968b0;
}

.advance-info-box p{
  line-height:1.55;
}

.payment-badge.credit{
  background:#edf2fc;
  color:#36558f;
  border:1px solid #c7d3ed;
}

.dashboard-metrics{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

@media(max-width:1250px){
  .dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:850px){
  .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  .dashboard-metrics{grid-template-columns:1fr}
  .month-picker select{min-width:0;width:100%}
}


/* =========================
   FOTOCAMERA SCONTRINI v2
   ========================= */
.receipt-entry-actions{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:10px;
}

.receipt-camera-button,
.receipt-gallery-button{
  min-height:132px;
  border:2px dashed #bac5d1;
  border-radius:12px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  text-align:center;
  padding:15px;
  cursor:pointer;
  color:var(--text);
}

.receipt-camera-button{
  font:inherit;
}

.receipt-camera-button:hover,
.receipt-gallery-button:hover{
  border-color:#7e94aa;
  background:#f7f9fb;
}

.receipt-gallery-button{
  position:relative;
}

.receipt-gallery-button input{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  pointer-events:none;
}

.receipt-preview-card{
  display:flex;
  align-items:center;
  gap:12px;
}

.receipt-preview-info{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.receipt-camera-modal[hidden]{
  display:none!important;
}

.receipt-camera-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  background:#000;
  display:flex;
  align-items:stretch;
  justify-content:center;
}

.camera-open{
  overflow:hidden;
}

.receipt-camera-shell{
  width:min(680px,100%);
  height:100dvh;
  display:grid;
  grid-template-rows:auto 1fr auto auto;
  background:#080808;
  color:#fff;
}

.receipt-camera-topbar{
  min-height:68px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  background:rgba(0,0,0,.88);
}

.receipt-camera-topbar>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.receipt-camera-topbar strong{
  font-size:16px;
}

.receipt-camera-topbar span{
  font-size:12px;
  color:#c8c8c8;
}

.camera-close{
  width:42px;
  height:42px;
  border-radius:50%;
  padding:0;
  font-size:28px;
  line-height:1;
  background:rgba(255,255,255,.12);
  color:#fff;
}

.receipt-video-stage{
  position:relative;
  overflow:hidden;
  background:#000;
}

.receipt-video-stage video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.receipt-detection-mask{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  pointer-events:none;
  background:
    linear-gradient(rgba(0,0,0,.36),rgba(0,0,0,.36));
}

.receipt-guide-frame{
  position:relative;
  width:72%;
  height:82%;
  max-width:450px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:8px;
  box-shadow:
    0 0 0 200vmax rgba(0,0,0,.38),
    inset 0 0 30px rgba(255,255,255,.05);
}

.guide-corner{
  position:absolute;
  width:28px;
  height:28px;
  border-color:#fff;
  border-style:solid;
  border-width:0;
}

.guide-corner.tl{top:-2px;left:-2px;border-top-width:3px;border-left-width:3px}
.guide-corner.tr{top:-2px;right:-2px;border-top-width:3px;border-right-width:3px}
.guide-corner.bl{bottom:-2px;left:-2px;border-bottom-width:3px;border-left-width:3px}
.guide-corner.br{bottom:-2px;right:-2px;border-bottom-width:3px;border-right-width:3px}

.receipt-guide-text{
  position:absolute;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  white-space:nowrap;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  background:rgba(0,0,0,.58);
  color:#fff;
}

.receipt-camera-controls{
  min-height:88px;
  padding:12px 16px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  background:#080808;
}

.receipt-camera-controls .button{
  color:#fff;
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.18);
}

.receipt-shutter{
  width:66px;
  height:66px;
  border-radius:50%;
  padding:5px;
  border:3px solid #fff;
  background:transparent;
}

.receipt-shutter span{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  background:#fff;
}

.receipt-camera-tips{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 14px;
  padding:0 14px 14px;
  color:#bbb;
  font-size:11px;
  background:#080808;
}

@media(max-width:760px){
  .receipt-entry-actions{
    grid-template-columns:1fr;
  }

  .receipt-camera-button,
  .receipt-gallery-button{
    min-height:100px;
  }

  .receipt-camera-shell{
    width:100%;
  }

  .receipt-guide-frame{
    width:76%;
    height:80%;
  }
}


/* =========================
   RIPARTIZIONE SELETTIVA SPESE
   ========================= */
.split-selector-field{
  grid-column:1 / -1;
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  background:#fafbfc;
}

.split-selector-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.split-selector-head>div{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.split-tenant-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}

.split-tenant-option{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:58px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}

.split-tenant-option:has(input:checked){
  border-color:#7fa4ca;
  background:#f1f7fc;
}

.split-tenant-option.disabled{
  opacity:.48;
  cursor:not-allowed;
  background:#f4f4f4;
}

.split-tenant-option input{
  width:18px;
  height:18px;
  flex:0 0 auto;
}

.split-tenant-option span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.split-tenant-option small{
  color:var(--muted);
  font-size:10px;
}

.split-preview{
  margin-top:10px;
  padding:8px 10px;
  border-radius:8px;
  background:#edf6ef;
  color:#245f3a;
  font-size:12px;
}

.split-preview.warning{
  background:#fff3df;
  color:#8a5a00;
}

.expense-split-summary{
  margin-top:5px;
}

.split-count-badge{
  display:inline-flex;
  padding:3px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  background:#f1f3f5;
  color:#5f6875;
  border:1px solid #d9dde2;
}

@media(max-width:760px){
  .split-tenant-grid{grid-template-columns:1fr}
}


/* =========================
   MULTILINGUA IT / DE / EN / FR
   ========================= */
.language-switcher{
  min-width:132px;
}

.language-switcher select{
  min-height:36px;
  height:36px;
  padding:6px 30px 6px 9px;
  border-radius:8px;
  font-size:12px;
  font-weight:650;
  background:#fff;
}

.login-language-switcher{
  display:flex;
  justify-content:flex-end;
  margin:-8px 0 14px;
}

.login-language-switcher select{
  width:auto;
  min-width:145px;
  min-height:36px;
  font-size:12px;
  font-weight:650;
}

@media(max-width:650px){
  .top-actions{
    gap:7px;
  }

  .language-switcher{
    min-width:118px;
  }

  .language-switcher select{
    min-width:118px;
    max-width:145px;
  }
}

@media print{
  .language-switcher,
  .login-language-switcher{
    display:none!important;
  }
}


/* =========================
   AMMINISTRATORE RESIDENTE
   ========================= */
.admin-resident-panel{
  border-left:4px solid #4968b0;
}

.admin-resident-current{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:16px 0;
}

.admin-resident-current>div{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fafbfc;
}

.admin-resident-current span{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.035em;
}

.admin-resident-current strong{
  font-size:16px;
}

.admin-resident-current small{
  color:var(--muted);
}

.admin-resident-form select{
  min-height:42px;
}

.admin-resident-explanation{
  padding:13px 14px;
  border-radius:10px;
  background:#edf2fc;
  color:#36558f;
  line-height:1.5;
}

.admin-resident-explanation p{
  margin:5px 0 0;
}

.admin-resident-backup-note{
  margin-top:12px;
}

.admin-resident-account{
  border-left:3px solid #4968b0;
  padding-left:10px;
}

@media(max-width:700px){
  .admin-resident-current{
    grid-template-columns:1fr;
  }
}


/* =========================
   PAGAMENTI CREDITORI + FILTRI PDF
   ========================= */
.payment-section{
  margin-bottom:32px;
}

.payment-section>.section-head{
  margin-bottom:12px;
}

.creditor-payment-section{
  padding-top:26px;
  border-top:2px solid var(--line);
}

.filter-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  align-items:end;
}

.filter-grid .actions{
  align-self:end;
}

.print-card table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.creditor-payment-section{
  scroll-margin-top:90px;
}

@media(max-width:1100px){
  .filter-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .filter-grid{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-only-tenants .print-section-creditors{
    display:none!important;
  }

  body.print-only-creditors .print-section-tenants{
    display:none!important;
  }

  .payment-section{
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  .payment-section>.section-head{
    margin-bottom:8px!important;
  }

  .payment-section>.section-head h2{
    font-size:14pt!important;
  }

  .print-card{
    break-inside:auto!important;
  }

  .print-card table{
    font-size:8pt!important;
  }

  .print-card table tfoot th{
    background:#f2f2f2!important;
    border-top:1.5px solid #777!important;
  }
}


/* Rendiconti: selettore mese come Dashboard */
.report-period-picker.month-picker{
  display:flex;
  align-items:flex-end;
  gap:9px;
  flex-wrap:wrap;
}

.report-period-picker.month-picker label{
  min-width:220px;
}

.report-period-picker.month-picker select{
  min-width:220px;
  min-height:38px;
}

@media(max-width:650px){
  .report-period-picker.month-picker{
    width:100%;
  }

  .report-period-picker.month-picker label{
    flex:1;
    min-width:0;
  }

  .report-period-picker.month-picker select{
    width:100%;
    min-width:0;
  }
}


/* =========================
   DASHBOARD COMPATTA v2
   ========================= */

/* 6 cards = 3 + 3, evitando una riga troppo larga */
.dashboard-metrics{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
}

.metric-card{
  min-height:112px!important;
  padding:14px 15px!important;
}

.metric-card strong{
  font-size:21px!important;
}

.metric-card small{
  line-height:1.35;
}

/* La tabella desktop deve stare nella larghezza del contenuto */
.dashboard-table-wrap{
  width:100%;
  overflow-x:auto;
}

.dashboard-table-compact{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
}

.dashboard-table-compact th,
.dashboard-table-compact td{
  white-space:normal!important;
  padding:11px 8px!important;
  vertical-align:top;
  overflow-wrap:anywhere;
}

.dashboard-table-compact th{
  font-size:10.5px!important;
  letter-spacing:.025em!important;
}

/* Larghezze ottimizzate delle 6 colonne */
.dashboard-table-compact th:nth-child(1),
.dashboard-table-compact td:nth-child(1){width:20%}

.dashboard-table-compact th:nth-child(2),
.dashboard-table-compact td:nth-child(2){width:16%}

.dashboard-table-compact th:nth-child(3),
.dashboard-table-compact td:nth-child(3){width:18%}

.dashboard-table-compact th:nth-child(4),
.dashboard-table-compact td:nth-child(4){width:14%}

.dashboard-table-compact th:nth-child(5),
.dashboard-table-compact td:nth-child(5){width:17%}

.dashboard-table-compact th:nth-child(6),
.dashboard-table-compact td:nth-child(6){width:15%}

.dashboard-person-cell>strong{
  display:block;
  font-size:13.5px;
}

.dashboard-stay{
  display:flex;
  flex-wrap:wrap;
  gap:3px 7px;
  margin-top:6px;
  color:var(--muted);
  font-size:10.5px;
}

.dashboard-stay small{
  font-size:10.5px;
  color:var(--muted);
}

.dashboard-cell-detail{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-top:5px;
  color:var(--muted);
  font-size:10.5px;
  line-height:1.25;
}

.dashboard-cell-caption{
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}

.dashboard-status-row{
  margin-top:7px;
}

.dashboard-table-compact .dashboard-status{
  min-width:0!important;
  max-width:100%;
  padding:4px 7px!important;
  font-size:10px!important;
  white-space:normal;
  text-align:center;
}

.dashboard-table-compact tfoot th{
  font-size:10.5px!important;
  padding:10px 8px!important;
}

.dashboard-table-panel .section-head{
  align-items:center;
}

.dashboard-table-panel .section-head>div:first-child{
  max-width:760px;
}

.dashboard-deposit{
  min-width:160px!important;
  padding:8px 10px!important;
}

/* Tablet: 2 card per riga; la tabella resta compatta */
@media(max-width:1050px){
  .dashboard-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .dashboard-table-compact{
    min-width:760px!important;
  }
}

/* Smartphone: 1 card per riga e scorrimento solo della tabella */
@media(max-width:650px){
  .dashboard-metrics{
    grid-template-columns:1fr!important;
  }

  .dashboard-table-panel{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .dashboard-table-wrap{
    margin-left:-4px;
    margin-right:-4px;
    padding-bottom:4px;
  }

  .dashboard-table-compact{
    min-width:720px!important;
  }

  .dashboard-table-panel .section-head{
    align-items:flex-start;
  }

  .dashboard-deposit{
    width:100%;
    min-width:0!important;
    text-align:left!important;
  }
}

@media print{
  .dashboard-metrics{
    grid-template-columns:repeat(3,1fr)!important;
    gap:6px!important;
  }

  .dashboard-table-compact{
    min-width:0!important;
    table-layout:fixed!important;
  }

  .dashboard-table-compact th,
  .dashboard-table-compact td{
    font-size:7.5pt!important;
    padding:4px!important;
  }

  .dashboard-cell-detail,
  .dashboard-stay,
  .dashboard-cell-caption{
    font-size:6.8pt!important;
  }
}


/* =========================
   CONTABILITÀ DARE / AVERE
   ========================= */
.accounting-ledger-section{
  margin-top:24px;
  border-left:4px solid #4968b0;
}

.ledger-filter-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr 1.15fr auto;
  gap:10px;
  align-items:end;
  margin:16px 0;
  padding:13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fafbfc;
}

.ledger-filter-grid select{
  min-height:39px;
}

.ledger-summary-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:15px 0;
}

.ledger-summary-cards .metric-card{
  min-height:105px!important;
}

.ledger-accounting-note{
  margin:12px 0;
  padding:10px 12px;
  border-radius:9px;
  background:#f5f7fa;
  border:1px solid var(--line);
  font-size:12px;
  line-height:1.5;
}

.ledger-table-wrap{
  width:100%;
  overflow-x:auto;
}

.ledger-table{
  min-width:1040px;
  width:100%;
  font-size:11px;
}

.ledger-table th,
.ledger-table td{
  padding:8px 7px!important;
  white-space:nowrap;
}

.ledger-table th:first-child,
.ledger-table td:first-child,
.ledger-table th:nth-child(2),
.ledger-table td:nth-child(2){
  white-space:normal;
}

.ledger-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

@media(max-width:1100px){
  .ledger-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ledger-filter-grid .actions{
    grid-column:1 / -1;
  }

  .ledger-summary-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .ledger-filter-grid{
    grid-template-columns:1fr;
  }

  .ledger-filter-grid .actions{
    grid-column:auto;
  }

  .ledger-summary-cards{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-accounting-only .global-report,
  body.print-accounting-only .individual-report-section,
  body.print-accounting-only .reports-main-head{
    display:none!important;
  }

  body.print-accounting-only .accounting-ledger-section{
    display:block!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-accounting-only .print-header{
    display:grid!important;
  }

  body.print-accounting-only .ledger-summary-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  body.print-accounting-only .ledger-table{
    min-width:0!important;
    font-size:7.2pt!important;
  }

  body.print-accounting-only .ledger-table th,
  body.print-accounting-only .ledger-table td{
    padding:3px!important;
    white-space:normal!important;
  }

  body.print-accounting-only .ledger-accounting-note{
    font-size:7.5pt!important;
    padding:6px!important;
  }
}


/* =========================
   RENDICONTO CANONI / ACCONTI SEPARATI
   ========================= */
.global-report-table{
  width:100%;
  font-size:11px;
}

.global-report-table th,
.global-report-table td{
  padding-left:7px!important;
  padding-right:7px!important;
}

.global-report-table th{
  white-space:normal!important;
  line-height:1.2;
}

.global-report-table .table-sub{
  line-height:1.25;
}

@media(max-width:1050px){
  .global-report .table-wrap{
    overflow-x:auto;
  }

  .global-report-table{
    min-width:920px;
  }
}

@media print{
  .global-report-table{
    font-size:6.8pt!important;
  }

  .global-report-table th,
  .global-report-table td{
    padding:4px 3px!important;
    white-space:normal!important;
  }
}


/* =========================
   PAGINA UTENTE - SELETTORE MESE
   ========================= */
.user-month-picker{
  display:flex;
  align-items:flex-end;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.user-month-picker label{
  min-width:220px;
}

.user-month-picker select{
  min-width:220px;
  min-height:38px;
}

.user-selected-period{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:14px;
  color:var(--muted);
  font-size:12px;
}

.user-month-cards{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.user-common-expense-cards{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.user-cumulative-common-card{
  border-left:3px solid #4968b0;
}

@media(max-width:1100px){
  .user-month-cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .user-common-expense-cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .user-month-cards,
  .user-common-expense-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:560px){
  .user-month-picker{
    width:100%;
  }

  .user-month-picker label{
    flex:1;
    min-width:0;
  }

  .user-month-picker select{
    width:100%;
    min-width:0;
  }

  .user-month-cards,
  .user-common-expense-cards{
    grid-template-columns:1fr;
  }
}


/* Pagina utente: affitto e spese separati */
.user-rent-card{
  border-left:3px solid #4968b0;
}

.user-expense-advance-card{
  border-left:3px solid #7c8fa3;
}

.user-total-due-card{
  background:#fafbfc;
}


/* =========================
   CONTABILITÀ GESTIONALE
   ========================= */
.accounting-filter-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.15fr 1.25fr auto;
  gap:10px;
  align-items:end;
}

.accounting-filter-grid select{
  min-height:39px;
}

.accounting-period-label{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0 16px;
  color:var(--muted);
  font-size:12px;
}

.accounting-summary-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}

.accounting-summary-cards .metric-card{
  min-height:112px!important;
}

.accounting-rule-note,
.accounting-warning-note{
  margin:12px 0 18px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f6f8fa;
  font-size:12px;
  line-height:1.5;
}

.accounting-warning-note{
  background:#fff8e9;
}

.accounting-section{
  margin-top:18px;
}

.accounting-summary-table{
  width:100%;
  min-width:880px;
  font-size:11px;
}

.accounting-summary-table th,
.accounting-summary-table td{
  padding:9px 7px!important;
}

.accounting-detail-wrap{
  width:100%;
  overflow-x:auto;
}

.accounting-detail-table{
  width:100%;
  min-width:1000px;
  font-size:10.5px;
}

.accounting-detail-table th,
.accounting-detail-table td{
  padding:8px 6px!important;
  white-space:nowrap;
}

.accounting-summary-table tfoot th,
.accounting-detail-table tfoot th,
.accounting-cash-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.accounting-cash-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.accounting-cash-grid>div{
  min-width:0;
}

.accounting-mini-summary{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:8px 0 10px;
}

.accounting-mini-summary span{
  display:inline-flex;
  gap:5px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fafbfc;
  font-size:10.5px;
}

.accounting-cash-table{
  width:100%;
  min-width:560px;
  font-size:10.5px;
}

.accounting-cash-table th,
.accounting-cash-table td{
  padding:8px 6px!important;
}

.source-badge{
  display:inline-flex;
  padding:3px 6px;
  border-radius:999px;
  background:#f0f2f5;
  border:1px solid #d9dde3;
  font-size:9.5px;
  font-weight:700;
}

.accounting-explanation p{
  max-width:960px;
  line-height:1.55;
}

@media(max-width:1180px){
  .accounting-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .accounting-filter-grid .actions{
    grid-column:1 / -1;
  }

  .accounting-summary-cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:850px){
  .accounting-summary-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .accounting-cash-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:600px){
  .accounting-filter-grid{
    grid-template-columns:1fr;
  }

  .accounting-filter-grid .actions{
    grid-column:auto;
  }

  .accounting-summary-cards{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-accounting-page .sidebar,
  body.print-accounting-page .topbar,
  body.print-accounting-page .no-print{
    display:none!important;
  }

  body.print-accounting-page .layout,
  body.print-accounting-page .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-accounting-page .print-header{
    display:grid!important;
  }

  body.print-accounting-page .accounting-summary-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  body.print-accounting-page .metric-card{
    min-height:0!important;
    padding:8px!important;
  }

  body.print-accounting-page .metric-card strong{
    font-size:11pt!important;
  }

  body.print-accounting-page .accounting-summary-table,
  body.print-accounting-page .accounting-detail-table,
  body.print-accounting-page .accounting-cash-table{
    min-width:0!important;
    width:100%!important;
    font-size:6.8pt!important;
  }

  body.print-accounting-page table th,
  body.print-accounting-page table td{
    padding:3px!important;
    white-space:normal!important;
  }

  body.print-accounting-page .accounting-cash-grid{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  body.print-accounting-page .accounting-warning-note,
  body.print-accounting-page .accounting-rule-note{
    font-size:7.2pt!important;
    padding:5px!important;
  }

  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* =========================
   RICONCILIAZIONE SPESE / CREDITORI
   ========================= */
.expense-reconciliation-section{
  border-left:4px solid #7b8794;
}

.reconciliation-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}

.reconciliation-note{
  margin:10px 0 16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f7f9fb;
  font-size:12px;
  line-height:1.5;
}

.reconciliation-table{
  width:100%;
  min-width:680px;
}

.reconciliation-table th,
.reconciliation-table td{
  padding:8px 7px!important;
}

.reconciliation-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.reconciliation-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:18px;
}

.reconciliation-detail-grid>div{
  min-width:0;
}

@media(max-width:950px){
  .reconciliation-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .reconciliation-detail-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:560px){
  .reconciliation-cards{
    grid-template-columns:1fr;
  }
}

@media print{
  .reconciliation-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  .reconciliation-detail-grid{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }

  .reconciliation-table{
    min-width:0!important;
    font-size:7pt!important;
  }
}


/* =========================
   RIEPILOGO GENERALE DARE/AVERE + CREDITORI
   ========================= */
.general-expense-summary{
  border-left:4px solid #4f657a;
}

.general-accounting-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}

.general-accounting-cards .metric-card{
  min-height:108px!important;
}

.general-expense-note{
  margin:10px 0 15px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f7f9fb;
  font-size:12px;
  line-height:1.5;
}

.general-expense-table-wrap{
  width:100%;
  overflow-x:auto;
}

.general-expense-table{
  width:100%;
  min-width:1120px;
  font-size:10.5px;
}

.general-expense-table th,
.general-expense-table td{
  padding:8px 6px!important;
  white-space:nowrap;
  text-align:right;
}

.general-expense-table th:first-child,
.general-expense-table td:first-child{
  text-align:left;
}

.general-expense-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.general-expense-print-footer{
  display:none;
  margin-top:8px;
  font-size:8pt;
  color:#555;
}

@media(max-width:1100px){
  .general-accounting-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .general-accounting-cards{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-general-expense-only .accounting-page-head,
  body.print-general-expense-only .accounting-filter-grid,
  body.print-general-expense-only .accounting-period-label,
  body.print-general-expense-only .accounting-summary-section,
  body.print-general-expense-only .accounting-rule-note,
  body.print-general-expense-only .accounting-section:not(.general-expense-summary){
    display:none!important;
  }

  body.print-general-expense-only .general-expense-summary{
    display:block!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-general-expense-only .print-header{
    display:grid!important;
  }

  body.print-general-expense-only .general-accounting-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  body.print-general-expense-only .general-accounting-cards .metric-card{
    min-height:0!important;
    padding:7px!important;
  }

  body.print-general-expense-only .general-accounting-cards .metric-card strong{
    font-size:10pt!important;
  }

  body.print-general-expense-only .general-expense-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    font-size:6.6pt!important;
  }

  body.print-general-expense-only .general-expense-table th,
  body.print-general-expense-only .general-expense-table td{
    padding:3px 2px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }

  body.print-general-expense-only .general-expense-note{
    font-size:7pt!important;
    padding:5px!important;
  }

  body.print-general-expense-only .general-expense-print-footer{
    display:block!important;
  }

  body.print-general-expense-only .sidebar,
  body.print-general-expense-only .topbar,
  body.print-general-expense-only .no-print{
    display:none!important;
  }

  body.print-general-expense-only .layout,
  body.print-general-expense-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* =========================
   CONTABILITÀ SOLO ACCONTI SPESE
   ========================= */
.expense-advance-accounting{
  margin-top:16px;
  border-left:4px solid #5b748a;
  scroll-margin-top:90px;
}

.expense-advance-filter-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr 1.15fr auto;
  gap:10px;
  align-items:end;
  margin:15px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafb;
}

.expense-advance-filter-grid select,
.expense-advance-filter-grid input{
  min-height:39px;
}

.expense-advance-period{
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:12px;
  margin-bottom:13px;
}

.expense-advance-cards{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:13px 0;
}

.expense-advance-cards .metric-card{
  min-height:110px!important;
}

.expense-advance-rule,
.expense-advance-warning{
  margin:10px 0 15px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f7f9fb;
  font-size:12px;
  line-height:1.5;
}

.expense-advance-warning{
  background:#fff8e8;
}

.expense-advance-table{
  width:100%;
  min-width:900px;
  font-size:10.5px;
}

.expense-advance-table th,
.expense-advance-table td{
  padding:8px 7px!important;
  white-space:nowrap;
}

.expense-creditor-detail-table{
  width:100%;
  min-width:760px;
  font-size:10.5px;
}

.expense-creditor-detail-table th,
.expense-creditor-detail-table td{
  padding:8px 7px!important;
}

.expense-advance-table tfoot th,
.expense-creditor-detail-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.expense-advance-print-footer{
  display:none;
  margin-top:8px;
  font-size:8pt;
  color:#555;
}

@media(max-width:1180px){
  .expense-advance-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .expense-advance-filter-grid .actions{
    grid-column:1 / -1;
  }

  .expense-advance-cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .expense-advance-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:560px){
  .expense-advance-filter-grid,
  .expense-advance-cards{
    grid-template-columns:1fr;
  }

  .expense-advance-filter-grid .actions{
    grid-column:auto;
  }
}

@media print{
  body.print-expense-advance-only .accounting-page-head,
  body.print-expense-advance-only .accounting-filter-grid,
  body.print-expense-advance-only .accounting-period-label,
  body.print-expense-advance-only .accounting-summary-section,
  body.print-expense-advance-only .accounting-rule-note,
  body.print-expense-advance-only .accounting-section:not(.expense-advance-accounting),
  body.print-expense-advance-only .general-expense-summary,
  body.print-expense-advance-only .expense-reconciliation-section{
    display:none!important;
  }

  body.print-expense-advance-only .expense-advance-accounting{
    display:block!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-expense-advance-only .sidebar,
  body.print-expense-advance-only .topbar,
  body.print-expense-advance-only .no-print{
    display:none!important;
  }

  body.print-expense-advance-only .layout,
  body.print-expense-advance-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-expense-advance-only .print-header{
    display:grid!important;
  }

  body.print-expense-advance-only .expense-advance-cards{
    grid-template-columns:repeat(5,1fr)!important;
    gap:5px!important;
  }

  body.print-expense-advance-only .expense-advance-cards .metric-card{
    min-height:0!important;
    padding:7px!important;
  }

  body.print-expense-advance-only .expense-advance-cards .metric-card strong{
    font-size:10pt!important;
  }

  body.print-expense-advance-only .expense-advance-table,
  body.print-expense-advance-only .expense-creditor-detail-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    font-size:7pt!important;
  }

  body.print-expense-advance-only .expense-advance-table th,
  body.print-expense-advance-only .expense-advance-table td,
  body.print-expense-advance-only .expense-creditor-detail-table th,
  body.print-expense-advance-only .expense-creditor-detail-table td{
    padding:3px!important;
    white-space:normal!important;
  }

  body.print-expense-advance-only .expense-advance-rule,
  body.print-expense-advance-only .expense-advance-warning{
    font-size:7.2pt!important;
    padding:5px!important;
  }

  body.print-expense-advance-only .expense-advance-print-footer{
    display:block!important;
  }

  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* =========================
   DETTAGLIO DARE/AVERE CON CREDITORI
   ========================= */
.accounting-detail-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:12px 0;
}

.accounting-detail-kpis>div{
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafbfc;
}

.accounting-detail-kpis span{
  display:block;
  color:var(--muted);
  font-size:10.5px;
  margin-bottom:3px;
}

.accounting-detail-kpis strong{
  font-size:15px;
}

.accounting-detail-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  margin:10px 0 12px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f7f9fb;
  font-size:11px;
  line-height:1.4;
}

.accounting-detail-with-creditors{
  min-width:1260px!important;
}

.accounting-detail-with-creditors th,
.accounting-detail-with-creditors td{
  vertical-align:top;
}

.accounting-detail-subject{
  min-width:170px;
  white-space:normal!important;
}

.accounting-creditor-row td{
  background:#fffaf2;
}

.accounting-creditor-row td:first-child{
  border-left:3px solid #b78035;
}

.accounting-detail-print-footer{
  display:none;
  margin-top:8px;
  font-size:8pt;
  color:#555;
}

@media(max-width:850px){
  .accounting-detail-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:520px){
  .accounting-detail-kpis{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-dare-avere-detail-only .accounting-page-head,
  body.print-dare-avere-detail-only .accounting-filter-grid,
  body.print-dare-avere-detail-only .accounting-period-label,
  body.print-dare-avere-detail-only .accounting-summary-section,
  body.print-dare-avere-detail-only .accounting-rule-note,
  body.print-dare-avere-detail-only .expense-advance-accounting,
  body.print-dare-avere-detail-only .general-expense-summary,
  body.print-dare-avere-detail-only .expense-reconciliation-section,
  body.print-dare-avere-detail-only .accounting-section:not(.accounting-dare-avere-detail){
    display:none!important;
  }

  body.print-dare-avere-detail-only .accounting-dare-avere-detail{
    display:block!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-dare-avere-detail-only .sidebar,
  body.print-dare-avere-detail-only .topbar,
  body.print-dare-avere-detail-only .no-print{
    display:none!important;
  }

  body.print-dare-avere-detail-only .layout,
  body.print-dare-avere-detail-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-dare-avere-detail-only .print-header{
    display:grid!important;
  }

  body.print-dare-avere-detail-only .accounting-detail-kpis{
    grid-template-columns:repeat(4,1fr)!important;
    gap:4px!important;
  }

  body.print-dare-avere-detail-only .accounting-detail-kpis>div{
    padding:5px!important;
  }

  body.print-dare-avere-detail-only .accounting-detail-with-creditors{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    font-size:6.2pt!important;
  }

  body.print-dare-avere-detail-only .accounting-detail-with-creditors th,
  body.print-dare-avere-detail-only .accounting-detail-with-creditors td{
    padding:2.5px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }

  body.print-dare-avere-detail-only .accounting-detail-legend{
    font-size:6.8pt!important;
    padding:4px!important;
  }

  body.print-dare-avere-detail-only .accounting-detail-print-footer{
    display:block!important;
  }

  @page{
    size:A4 landscape;
    margin:7mm;
  }
}


/* Account inquilini: dati login prima dell'attivazione */
.pending-login-box{
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafb;
}

.pending-login-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:5px;
}

.account-create-box{
  padding-top:10px;
  border-top:1px solid var(--line);
}

.account-profile-label{
  margin-top:-5px;
  font-size:10.5px;
}


/* Versione programma subito a destra del logo */
.wg-version-badge{
  display:inline-flex;
  align-items:center;
  align-self:center;
  margin-left:-5px;
  margin-right:1px;
  padding:2px 4px;
  border-radius:5px;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:8px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  opacity:.78;
}

@media(max-width:650px){
  .wg-version-badge{
    font-size:7px;
    margin-left:-4px;
    margin-right:0;
    padding:1px 2px;
  }
}

@media print{
  .wg-version-badge{
    display:none!important;
  }
}


/* Versione ancorata direttamente al lato destro del logo */
.brand-logo-version{
  position:relative;
  display:flex;
  align-items:center;
  flex:0 0 auto;
  padding-right:15px;
}

.brand-logo-version .brand-logo,
.brand-logo-version .brand-fallback{
  margin:0;
}

.brand-logo-version .wg-version-badge{
  position:absolute!important;
  left:46px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:2;
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:8px!important;
  font-weight:600!important;
  line-height:1!important;
  white-space:nowrap!important;
  opacity:.8;
}

@media(max-width:650px){
  .brand-logo-version{
    padding-right:14px;
  }

  .brand-logo-version .wg-version-badge{
    left:42px!important;
    font-size:7px!important;
  }
}

@media print{
  .brand-logo-version .wg-version-badge{
    display:none!important;
  }
}


/* Versione a destra della scritta WG Manager */
.brand-title-row{
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:0;
}

.brand-title-row .wg-version-badge{
  position:static!important;
  transform:none!important;
  display:inline-block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:8px!important;
  font-weight:600!important;
  line-height:1!important;
  white-space:nowrap!important;
  opacity:.78;
}

/* Disattiva il vecchio contenitore versione-logo se rimasto in cache CSS */
.brand-logo-version{
  padding-right:0!important;
}

@media(max-width:650px){
  .brand-title-row{
    gap:4px;
  }

  .brand-title-row .wg-version-badge{
    font-size:7px!important;
  }
}

@media print{
  .brand-title-row .wg-version-badge{
    display:none!important;
  }
}


/* Versione spostata nella riga inferiore del brand */
.brand-bottom-row{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  margin-top:1px;
}

.brand-bottom-row .wg-version-badge{
  position:static!important;
  transform:none!important;
  display:inline-block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:8px!important;
  font-weight:600!important;
  line-height:1!important;
  white-space:nowrap!important;
  opacity:.78;
}

@media(max-width:650px){
  .brand-bottom-row{
    gap:4px;
  }

  .brand-bottom-row .wg-version-badge{
    font-size:7px!important;
  }
}

@media print{
  .brand-bottom-row .wg-version-badge{
    display:none!important;
  }
}


/* Posizione definitiva versione: a destra del titolo WG Manager */
.brand-title-row{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}

.brand-title-row .wg-version-badge{
  position:static!important;
  transform:none!important;
  display:inline-block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:8px!important;
  font-weight:600!important;
  line-height:1!important;
  white-space:nowrap!important;
  opacity:.78;
}

@media(max-width:650px){
  .brand-title-row{
    gap:4px;
  }

  .brand-title-row .wg-version-badge{
    font-size:7px!important;
  }
}

@media print{
  .brand-title-row .wg-version-badge{
    display:none!important;
  }
}


/* =========================
   v1.11 FATTURE CREDITORI + FONDO SPESE
   ========================= */
.invoice-summary-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}

.invoice-filter-grid{
  display:grid;
  grid-template-columns:1fr 1.2fr 1fr 1fr auto;
  gap:10px;
  align-items:end;
}

.invoice-table{
  min-width:980px;
  width:100%;
  font-size:11px;
}

.invoice-table th,
.invoice-table td{
  padding:8px 7px!important;
  vertical-align:top;
}

.invoice-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.invoice-link{
  font-weight:700;
  text-decoration:none;
}

.expense-fund-filter{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:10px;
  align-items:end;
}

.expense-fund-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}

.expense-fund-rule{
  margin:10px 0 16px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f7f9fb;
  font-size:12px;
  line-height:1.5;
}

.expense-fund-table{
  min-width:980px;
  width:100%;
  font-size:10.5px;
}

.expense-fund-table th,
.expense-fund-table td{
  padding:8px 7px!important;
  white-space:nowrap;
}

.expense-fund-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

@media(max-width:1050px){
  .invoice-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .invoice-filter-grid .actions{
    grid-column:1 / -1;
  }

  .expense-fund-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .invoice-summary-cards,
  .expense-fund-cards{
    grid-template-columns:1fr;
  }

  .invoice-filter-grid,
  .expense-fund-filter{
    grid-template-columns:1fr;
  }

  .invoice-filter-grid .actions{
    grid-column:auto;
  }
}

@media print{
  .invoice-summary-cards{
    grid-template-columns:repeat(3,1fr)!important;
    gap:5px!important;
  }

  .expense-fund-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  .invoice-table,
  .expense-fund-table{
    min-width:0!important;
    table-layout:fixed!important;
    font-size:7pt!important;
  }

  .invoice-table th,
  .invoice-table td,
  .expense-fund-table th,
  .expense-fund-table td{
    padding:3px!important;
    white-space:normal!important;
  }

  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* =========================
   v1.12 MOVIMENTI / CHIUSURE / AUDIT
   ========================= */
.month-close-warning{
  margin:0 0 16px;
  padding:11px 13px;
  border:1px solid #e7c46a;
  border-radius:10px;
  background:#fff8e7;
  font-size:12px;
  line-height:1.5;
}

.month-close-form{
  display:grid;
  grid-template-columns:1fr 2fr auto;
  gap:10px;
  align-items:end;
}

.month-close-table{
  width:100%;
  min-width:720px;
}

.audit-filter-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr 1.2fr auto;
  gap:10px;
  align-items:end;
}

.audit-table{
  width:100%;
  min-width:980px;
  font-size:10.5px;
}

.audit-table th,
.audit-table td{
  padding:8px 7px!important;
  vertical-align:top;
}

.audit-action,
.movement-type-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#f5f7f9;
  font-size:9.5px;
  font-weight:700;
  white-space:nowrap;
}

.audit-details{
  min-width:72px;
}

.audit-details summary{
  cursor:pointer;
  font-weight:700;
}

.audit-details pre{
  max-width:440px;
  max-height:260px;
  overflow:auto;
  padding:7px;
  border-radius:7px;
  background:#f4f6f8;
  font-size:9px;
  white-space:pre-wrap;
}

.movement-filter-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr 1.2fr 1.5fr auto;
  gap:10px;
  align-items:end;
}

.movement-summary-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}

.movement-table{
  width:100%;
  min-width:1080px;
  font-size:10.5px;
}

.movement-table th,
.movement-table td{
  padding:8px 7px!important;
  vertical-align:top;
}

.movement-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

.movement-creditor_payment td{
  background:#fffaf3;
}

.movement-tenant_payment td{
  background:#fbfdfb;
}

.movement-table code{
  font-size:9px;
}

@media(max-width:1150px){
  .audit-filter-grid,
  .movement-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .audit-filter-grid .actions,
  .movement-filter-grid .actions{
    grid-column:1 / -1;
  }

  .movement-summary-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .month-close-form,
  .audit-filter-grid,
  .movement-filter-grid,
  .movement-summary-cards{
    grid-template-columns:1fr;
  }

  .audit-filter-grid .actions,
  .movement-filter-grid .actions{
    grid-column:auto;
  }
}

@media print{
  .movement-summary-cards{
    grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;
  }

  .movement-table,
  .audit-table,
  .month-close-table{
    min-width:0!important;
    width:100%!important;
    table-layout:fixed!important;
    font-size:6.8pt!important;
  }

  .movement-table th,
  .movement-table td,
  .audit-table th,
  .audit-table td,
  .month-close-table th,
  .month-close-table td{
    padding:3px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
}


/* =========================
   v1.13 ALLEGATI FATTURE CREDITORI
   ========================= */
.invoice-attachment-box{
  margin-top:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafb;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  flex-wrap:wrap;
}

.inline-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
}

.inline-check input{
  margin:0;
}

@media(max-width:650px){
  .invoice-attachment-box{
    flex-direction:column;
    align-items:stretch;
  }
}

/* =========================
   v2.0 SAAS / REGISTRAZIONE / ABBONAMENTI
   ========================= */
.register-card{
  width:min(100%,560px);
}

.auth-switch{
  margin:14px 0 0;
  text-align:center;
  font-size:12px;
  color:var(--muted);
}

.auth-switch a{
  font-weight:700;
}

.billing-grid{
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr);
  gap:14px;
  align-items:start;
}

.billing-status{
  display:inline-flex;
  align-items:center;
  margin:4px 0 12px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.billing-status.ok{
  background:#eef8f1;
}

.billing-status.blocked{
  background:#fff1f1;
}

.plan-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.plan-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafbfc;
}

.plan-card strong{
  font-size:16px;
}

.plan-card span{
  min-height:34px;
  color:var(--muted);
  font-size:12px;
}

.platform-table{
  width:100%;
  min-width:1000px;
  font-size:10.5px;
}

.platform-table th,
.platform-table td{
  padding:8px 7px!important;
  vertical-align:top;
}

.invite-link-box{
  margin-bottom:14px;
}

.invite-copy-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin:8px 0 5px;
}

.invite-copy-row input{
  width:100%;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:10px;
}

.tenant-invite-box{
  padding:11px;
  border:1px dashed var(--line);
  border-radius:10px;
  background:#fafbfc;
}

.tenant-invite-box h3{
  margin:0 0 4px;
  font-size:13px;
}

.saas-note{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7f9fb;
  font-size:12px;
  line-height:1.5;
}

@media(max-width:850px){
  .billing-grid,
  .plan-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:650px){
  .invite-copy-row{
    grid-template-columns:1fr;
  }
}


/* =========================
   v2.01 LOGIN / REGISTRAZIONE / SMTP
   ========================= */
.login-password-row{
  display:flex;
  justify-content:flex-end;
  margin-top:-4px;
  font-size:12px;
}

.login-new-account{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.login-new-account p{
  margin:3px 0 0;
}

.register-cta{
  flex:0 0 auto;
  font-weight:800;
}

.platform-control-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}

.platform-control-card{
  margin:0;
}

.platform-mail-test{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}

@media(max-width:720px){
  .login-new-account{
    flex-direction:column;
    align-items:stretch;
  }

  .register-cta{
    text-align:center;
  }

  .platform-control-cards,
  .platform-mail-test{
    grid-template-columns:1fr;
  }
}


/* =========================
   v2.04 FILTRO DARE / AVERE
   ========================= */
.accounting-filter-grid{
  grid-template-columns:1fr 1fr 1.05fr 1.15fr 1.05fr auto;
}

.source-badge-debit{
  font-weight:800;
}

.source-badge-credit{
  font-weight:800;
}

.accounting-debit-row td{
  background:rgba(0,0,0,.012);
}

.accounting-credit-row td{
  background:rgba(0,0,0,.025);
}

@media(max-width:1250px){
  .accounting-filter-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .accounting-filter-grid .actions{
    grid-column:1 / -1;
  }
}

@media(max-width:850px){
  .accounting-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .accounting-filter-grid{
    grid-template-columns:1fr;
  }

  .accounting-filter-grid .actions{
    grid-column:auto;
  }
}


/* =========================
   v2.05 SALDO DARE / AVERE CASSA
   ========================= */
.cash-dare-avere-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:10px 0 16px;
}

.cash-balance-card{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafb;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.cash-balance-card > span{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}

.cash-balance-card > strong{
  font-size:19px;
  line-height:1.15;
}

.cash-balance-card > small{
  color:var(--muted);
  font-size:10px;
}

.cash-balance-result{
  border-width:2px;
}

.cash-balance-result.cash-positive strong{
  color:#157347;
}

.cash-balance-result.cash-negative strong{
  color:#b42318;
}

@media(max-width:800px){
  .cash-dare-avere-summary{
    grid-template-columns:1fr;
  }
}

@media print{
  .cash-dare-avere-summary{
    grid-template-columns:repeat(3,1fr)!important;
    gap:5px!important;
  }

  .cash-balance-card{
    padding:6px!important;
  }

  .cash-balance-card > strong{
    font-size:12pt!important;
  }
}


/* =========================
   v2.06 SALDO CASSA - FORMULA VISIVA
   ========================= */
.cash-equation{
  display:grid;
  grid-template-columns:minmax(150px,1fr) 34px minmax(150px,1fr) 34px minmax(190px,1.25fr);
  gap:8px;
  align-items:stretch;
  margin:12px 0 18px;
}

.cash-equation-card{
  min-height:92px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fafb;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}

.cash-equation-card > strong{
  font-size:21px;
  line-height:1.1;
  letter-spacing:-.2px;
}

.cash-equation-card > small{
  color:var(--muted);
  font-size:10px;
}

.cash-equation-label{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}

.cash-side-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:47px;
  padding:3px 6px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--text);
  font-size:9px;
  font-weight:850;
  letter-spacing:.35px;
}

.cash-equation-operator{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:24px;
  font-weight:500;
}

.cash-equation-result{
  border-width:2px;
  background:#fff;
  position:relative;
  overflow:hidden;
}

.cash-equation-result::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:currentColor;
  opacity:.5;
}

.cash-equation-result > strong{
  font-size:24px;
}

.cash-side-badge-result{
  font-weight:900;
}

.cash-equation-result.cash-positive{
  color:#157347;
}

.cash-equation-result.cash-positive .cash-equation-label,
.cash-equation-result.cash-positive small{
  color:#466c59;
}

.cash-equation-result.cash-negative{
  color:#b42318;
}

.cash-equation-result.cash-negative .cash-equation-label,
.cash-equation-result.cash-negative small{
  color:#7f514d;
}

@media(max-width:900px){
  .cash-equation{
    grid-template-columns:1fr 28px 1fr;
  }

  .cash-equation-equals{
    grid-column:1 / -1;
    height:20px;
  }

  .cash-equation-result{
    grid-column:1 / -1;
  }
}

@media(max-width:560px){
  .cash-equation{
    grid-template-columns:1fr;
    gap:6px;
  }

  .cash-equation-operator,
  .cash-equation-equals{
    grid-column:auto;
    height:18px;
    font-size:20px;
  }

  .cash-equation-result{
    grid-column:auto;
  }

  .cash-equation-card{
    min-height:0;
  }
}

@media print{
  .cash-equation{
    grid-template-columns:1fr 20px 1fr 20px 1.2fr!important;
    gap:4px!important;
  }

  .cash-equation-card{
    min-height:0!important;
    padding:6px!important;
  }

  .cash-equation-card > strong,
  .cash-equation-result > strong{
    font-size:12pt!important;
  }

  .cash-equation-operator{
    font-size:14pt!important;
  }
}


/* =========================
   v2.07 SALDO CASSA SEMPRE SU UNA RIGA
   ========================= */
.cash-equation{
  grid-template-columns:minmax(140px,1fr) 24px minmax(140px,1fr) 24px minmax(180px,1.15fr)!important;
  gap:6px!important;
  align-items:stretch!important;
}

.cash-equation-card{
  min-width:0;
}

.cash-equation-label{
  white-space:nowrap;
}

.cash-equation-card > strong{
  white-space:nowrap;
}

@media(max-width:900px){
  .cash-equation{
    grid-template-columns:minmax(120px,1fr) 20px minmax(120px,1fr) 20px minmax(150px,1.1fr)!important;
    gap:4px!important;
  }

  .cash-equation-equals,
  .cash-equation-result{
    grid-column:auto!important;
  }

  .cash-equation-card{
    padding:9px 10px!important;
  }

  .cash-equation-card > strong{
    font-size:17px!important;
  }

  .cash-equation-result > strong{
    font-size:19px!important;
  }

  .cash-equation-label{
    gap:5px!important;
    font-size:10px!important;
  }

  .cash-side-badge{
    min-width:40px!important;
    padding:2px 5px!important;
    font-size:8px!important;
  }

  .cash-equation-operator{
    height:auto!important;
    font-size:20px!important;
  }
}

@media(max-width:620px){
  .cash-equation{
    display:grid!important;
    grid-template-columns:minmax(105px,1fr) 16px minmax(105px,1fr) 16px minmax(125px,1.08fr)!important;
    gap:3px!important;
    overflow-x:auto;
    padding-bottom:3px;
  }

  .cash-equation-card{
    min-width:105px;
    padding:7px 8px!important;
    border-radius:8px!important;
  }

  .cash-equation-result{
    min-width:125px;
  }

  .cash-equation-card > strong,
  .cash-equation-result > strong{
    font-size:15px!important;
  }

  .cash-equation-card > small{
    display:none;
  }

  .cash-equation-label > span:not(.cash-side-badge){
    display:none;
  }

  .cash-side-badge{
    min-width:38px!important;
  }

  .cash-equation-operator{
    font-size:17px!important;
  }
}


/* =========================
   v2.08 FILTRO / PDF / CSV MOVIMENTI DI CASSA
   ========================= */
.cash-period-toolbar{
  display:grid;
  grid-template-columns:155px 155px minmax(0,1fr);
  gap:10px;
  align-items:end;
  margin:10px 0 8px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafb;
}

.cash-period-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.cash-period-info{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 12px;
  color:var(--muted);
  font-size:11px;
}

.cash-print-period{
  display:none;
  margin-bottom:10px;
  padding-bottom:7px;
  border-bottom:1px solid #bbb;
}

.cash-print-period strong{
  display:block;
  font-size:13pt;
}

.cash-print-period span{
  font-size:8pt;
  color:#555;
}

.cash-chronology{
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

.cash-chronology-table{
  width:100%;
  min-width:850px;
  font-size:10.5px;
}

.cash-chronology-table th,
.cash-chronology-table td{
  padding:7px 6px!important;
  vertical-align:top;
}

.cash-chronology-table tfoot th{
  background:#f7f9fb;
  border-top:2px solid var(--line);
}

@media(max-width:900px){
  .cash-period-toolbar{
    grid-template-columns:1fr 1fr;
  }

  .cash-period-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}

@media(max-width:560px){
  .cash-period-toolbar{
    grid-template-columns:1fr;
  }

  .cash-period-actions{
    grid-column:auto;
  }
}

@media print{
  body.print-cash-movements-only .content > *{
    display:none!important;
  }

  body.print-cash-movements-only .content > .cash-movements-section{
    display:block!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-cash-movements-only .sidebar,
  body.print-cash-movements-only .topbar,
  body.print-cash-movements-only .no-print{
    display:none!important;
  }

  body.print-cash-movements-only .layout,
  body.print-cash-movements-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  body.print-cash-movements-only .print-header{
    display:grid!important;
  }

  body.print-cash-movements-only .cash-print-period{
    display:block!important;
  }

  body.print-cash-movements-only .cash-period-info{
    display:none!important;
  }

  body.print-cash-movements-only .cash-equation{
    grid-template-columns:1fr 18px 1fr 18px 1.15fr!important;
    gap:4px!important;
    margin:5px 0 10px!important;
  }

  body.print-cash-movements-only .cash-equation-card{
    min-height:0!important;
    padding:6px!important;
  }

  body.print-cash-movements-only .cash-equation-card > strong,
  body.print-cash-movements-only .cash-equation-result > strong{
    font-size:11pt!important;
  }

  body.print-cash-movements-only .accounting-cash-grid{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }

  body.print-cash-movements-only .accounting-cash-table,
  body.print-cash-movements-only .cash-chronology-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    font-size:6.8pt!important;
  }

  body.print-cash-movements-only .accounting-cash-table th,
  body.print-cash-movements-only .accounting-cash-table td,
  body.print-cash-movements-only .cash-chronology-table th,
  body.print-cash-movements-only .cash-chronology-table td{
    padding:3px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }

  body.print-cash-movements-only .accounting-warning-note{
    font-size:7pt!important;
    padding:5px!important;
  }

  @page{
    size:A4 landscape;
    margin:8mm;
  }
}


/* =========================
   v2.09 MOVIMENTI DI CASSA COMPATTI
   ========================= */
.cash-compact-section{
  padding:14px!important;
}

.cash-compact-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}

.cash-compact-title h2{
  margin:0 0 2px;
}

.cash-compact-title .muted{
  font-size:10.5px;
}

.cash-compact-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}

.cash-compact-toolbar label{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin:0;
  font-size:9px;
  color:var(--muted);
  font-weight:700;
}

.cash-compact-toolbar input[type="date"]{
  width:132px;
  min-height:30px;
  padding:4px 6px;
  font-size:10.5px;
}

.cash-compact-toolbar .small{
  min-height:30px;
  padding:5px 8px;
  font-size:10px;
}

.cash-compact-balance{
  display:grid;
  grid-template-columns:1fr 22px 1fr 22px 1.08fr;
  align-items:stretch;
  gap:4px;
  margin:6px 0 6px;
}

.cash-compact-value{
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8fafb;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.cash-compact-value span{
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
}

.cash-compact-value strong{
  font-size:15px;
  line-height:1;
  white-space:nowrap;
}

.cash-compact-result{
  border-width:2px;
  background:#fff;
}

.cash-compact-result.cash-positive strong{
  color:#157347;
}

.cash-compact-result.cash-negative strong{
  color:#b42318;
}

.cash-compact-op{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:17px;
  font-weight:700;
}

.cash-compact-breakdown{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  margin:0 0 10px;
}

.cash-compact-breakdown span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 6px;
  border-radius:999px;
  background:#f3f5f7;
  color:var(--muted);
  font-size:9px;
}

.cash-compact-breakdown strong{
  color:var(--text);
  font-size:9.5px;
}

.cash-register-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin:7px 0 5px;
}

.cash-register-head h3{
  margin:0;
  font-size:13px;
}

.cash-register-head .muted{
  font-size:9.5px;
}

.cash-compact-table{
  width:100%;
  min-width:700px;
  font-size:9.7px;
}

.cash-compact-table th{
  padding:5px 6px!important;
  font-size:9px;
}

.cash-compact-table td{
  padding:5px 6px!important;
  vertical-align:top;
}

.cash-compact-table tbody tr:hover td{
  background:#fafcfd;
}

.cash-compact-table .cash-date{
  width:70px;
  white-space:nowrap;
}

.cash-compact-table .cash-num{
  width:92px;
  text-align:right;
  white-space:nowrap;
}

.cash-movement-main{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  line-height:1.25;
}

.cash-movement-main .source-badge{
  flex:0 0 auto;
  padding:2px 5px;
  font-size:8px;
}

.cash-movement-main strong{
  flex:0 0 auto;
}

.cash-movement-main > span:last-child{
  color:var(--muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cash-description{
  margin-top:2px;
  font-size:8.5px;
}

.cash-compact-table tfoot th{
  padding:6px!important;
  background:#f5f7f9;
  border-top:2px solid var(--line);
}

.cash-detail-breakdown{
  margin-top:9px;
  border-top:1px solid var(--line);
  padding-top:7px;
}

.cash-detail-breakdown > summary{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:7px;
  background:#f5f7f9;
  font-size:9.5px;
  font-weight:750;
}

.cash-detail-grid{
  margin-top:8px;
}

.cash-detail-grid h3{
  font-size:11px;
  margin:0 0 5px;
}

.cash-detail-grid .accounting-cash-table{
  font-size:8.8px;
}

.cash-detail-grid .accounting-cash-table th,
.cash-detail-grid .accounting-cash-table td{
  padding:4px 5px!important;
}

.cash-compact-note{
  margin-top:7px;
  color:var(--muted);
  font-size:8.7px;
  line-height:1.35;
}

@media(max-width:1000px){
  .cash-compact-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .cash-compact-toolbar{
    justify-content:flex-start;
  }
}

@media(max-width:720px){
  .cash-compact-balance{
    grid-template-columns:minmax(115px,1fr) 15px minmax(115px,1fr) 15px minmax(125px,1.05fr);
    overflow-x:auto;
  }

  .cash-compact-value{
    padding:7px 8px;
  }

  .cash-compact-value span{
    font-size:8.5px;
  }

  .cash-compact-value strong{
    font-size:13px;
  }

  .cash-compact-toolbar input[type="date"]{
    width:120px;
  }
}

@media(max-width:520px){
  .cash-compact-section{
    padding:10px!important;
  }

  .cash-compact-toolbar{
    width:100%;
  }

  .cash-compact-toolbar label{
    flex:1 1 120px;
  }

  .cash-compact-toolbar input[type="date"]{
    width:100%;
  }

  .cash-compact-breakdown{
    gap:3px;
  }

  .cash-compact-breakdown span{
    font-size:8px;
    padding:3px 5px;
  }
}

@media print{
  body.print-cash-movements-only .cash-compact-section{
    padding:0!important;
  }

  body.print-cash-movements-only .cash-compact-head{
    margin-bottom:5px!important;
  }

  body.print-cash-movements-only .cash-compact-title{
    display:none!important;
  }

  body.print-cash-movements-only .cash-compact-balance{
    grid-template-columns:1fr 16px 1fr 16px 1.08fr!important;
    gap:3px!important;
    margin:3px 0 5px!important;
  }

  body.print-cash-movements-only .cash-compact-value{
    padding:5px!important;
  }

  body.print-cash-movements-only .cash-compact-value span{
    font-size:6.5pt!important;
  }

  body.print-cash-movements-only .cash-compact-value strong{
    font-size:9pt!important;
  }

  body.print-cash-movements-only .cash-compact-breakdown{
    margin-bottom:5px!important;
  }

  body.print-cash-movements-only .cash-compact-table{
    min-width:0!important;
    table-layout:fixed!important;
    font-size:6.7pt!important;
  }

  body.print-cash-movements-only .cash-compact-table th,
  body.print-cash-movements-only .cash-compact-table td{
    padding:2.5px 3px!important;
  }

  body.print-cash-movements-only .cash-detail-breakdown,
  body.print-cash-movements-only .cash-compact-note{
    display:none!important;
  }
}


/* =========================
   v2.10 BACKUP / RIPRISTINO
   ========================= */
.backup-overview-panel,
.backup-restore-panel,
.backup-scope-panel{
  max-width:1050px;
}

.backup-summary-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  margin:10px 0 12px;
}

.backup-summary-grid > div{
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafb;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.backup-summary-grid span{
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}

.backup-summary-grid strong{
  font-size:17px;
}

.backup-actions-row{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin:10px 0;
}

.backup-info-note,
.backup-security-note,
.backup-restore-warning{
  padding:10px 12px;
  border-radius:9px;
  line-height:1.45;
  font-size:11px;
}

.backup-info-note,
.backup-security-note{
  background:#f7f9fb;
  border:1px solid var(--line);
}

.backup-restore-warning{
  background:#fff8e8;
  border:1px solid #ead9aa;
  margin:8px 0 12px;
}

.backup-restore-form{
  max-width:720px;
}

.backup-restore-form input[type="file"],
.backup-restore-form input[type="text"]{
  max-width:560px;
}

.backup-confirm-check{
  align-items:flex-start!important;
  max-width:700px;
  line-height:1.35;
}

.backup-restore-form button.danger{
  width:max-content;
}

.backup-security-note{
  margin-top:14px;
}

.backup-security-note h3{
  margin:0 0 4px;
  font-size:12px;
}

.backup-security-note p{
  margin:0;
  color:var(--muted);
}

.backup-use-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:8px 0;
}

.backup-use-grid > div{
  padding:10px;
  border:1px solid var(--line);
  border-radius:9px;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.backup-use-grid strong{
  font-size:11px;
}

.backup-use-grid span{
  color:var(--muted);
  font-size:10px;
}

@media(max-width:1000px){
  .backup-summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .backup-summary-grid,
  .backup-use-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:430px){
  .backup-summary-grid,
  .backup-use-grid{
    grid-template-columns:1fr;
  }
}


/* =========================
   v2.11 ACCONTI SPESE - SOLO DARE / AVERE
   ========================= */
.expense-advance-simple{
  padding:14px!important;
}

.expense-simple-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}

.expense-simple-head h2{
  margin:0 0 2px;
}

.expense-simple-head p{
  margin:0;
  font-size:10.5px;
}

.expense-simple-filter{
  display:flex;
  align-items:flex-end;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:7px;
}

.expense-simple-filter label{
  margin:0;
  min-width:170px;
}

.expense-simple-filter select{
  min-height:34px;
}

.expense-simple-period{
  margin-bottom:7px;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
}

.expense-simple-balance{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:9px;
}

.expense-simple-value{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8fafb;
}

.expense-simple-value span{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}

.expense-simple-value strong{
  font-size:16px;
  white-space:nowrap;
}

.expense-simple-table{
  width:100%;
  font-size:10px;
}

.expense-simple-table th,
.expense-simple-table td{
  padding:6px 8px!important;
}

.expense-simple-table th:nth-child(2),
.expense-simple-table th:nth-child(3),
.expense-simple-table td:nth-child(2),
.expense-simple-table td:nth-child(3){
  text-align:right;
}

.expense-simple-table tfoot th{
  border-top:2px solid var(--line);
  background:#f6f8fa;
}

@media(max-width:650px){
  .expense-simple-head{
    flex-direction:column;
  }

  .expense-simple-filter{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .expense-simple-filter label{
    min-width:0;
  }

  .expense-simple-filter button,
  .expense-simple-filter a{
    width:100%;
    text-align:center;
  }

  .expense-simple-balance{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-expense-advance-only .expense-simple-filter{
    display:none!important;
  }

  body.print-expense-advance-only .expense-simple-head button{
    display:none!important;
  }

  body.print-expense-advance-only .expense-simple-balance{
    grid-template-columns:1fr 1fr!important;
  }

  body.print-expense-advance-only .expense-simple-table{
    font-size:8pt!important;
  }
}


/* =========================
   v2.12 ACCONTI + REGISTRAZIONI SPESE
   ========================= */
.expense-accounting-v212{
  padding:14px!important;
}

.expense-accounting-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:8px;
}

.expense-accounting-head h2{
  margin:0 0 2px;
}

.expense-accounting-head p{
  margin:0;
  font-size:10.5px;
}

.expense-accounting-head-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.expense-accounting-filter{
  display:flex;
  align-items:flex-end;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:5px;
}

.expense-accounting-filter label{
  min-width:165px;
  margin:0;
}

.expense-accounting-filter select{
  min-height:33px;
}

.expense-accounting-period{
  margin:2px 0 7px;
  color:var(--muted);
  font-size:9.5px;
  font-weight:700;
}

.expense-accounting-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-bottom:9px;
}

.expense-accounting-summary-card{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:2px 10px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8fafb;
}

.expense-accounting-summary-card > span{
  color:var(--muted);
  font-size:9.5px;
  font-weight:800;
  white-space:nowrap;
}

.expense-accounting-summary-card > strong{
  grid-row:1 / 3;
  grid-column:2;
  font-size:15px;
  white-space:nowrap;
}

.expense-accounting-summary-card > small{
  color:var(--muted);
  font-size:8.5px;
}

.expense-accounting-expense-total{
  background:#fff;
  border-width:2px;
}

.expense-accounting-columns{
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(520px,1.55fr);
  gap:9px;
  align-items:start;
}

.expense-accounting-block{
  min-width:0;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}

.expense-accounting-block-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px 9px;
  background:#f7f9fb;
  border-bottom:1px solid var(--line);
}

.expense-accounting-block-head h3{
  margin:0 0 1px;
  font-size:12px;
}

.expense-accounting-block-head p{
  margin:0;
  font-size:8.8px;
}

.expense-accounting-table{
  width:100%;
  font-size:9.3px;
}

.expense-accounting-table th,
.expense-accounting-table td{
  padding:5px 6px!important;
  vertical-align:top;
}

.expense-accounting-table thead th{
  font-size:8.5px;
  white-space:nowrap;
}

.expense-accounting-table tfoot th{
  background:#f6f8fa;
  border-top:2px solid var(--line);
}

.expense-accounting-advance-table th:nth-child(2),
.expense-accounting-advance-table th:nth-child(3),
.expense-accounting-advance-table td:nth-child(2),
.expense-accounting-advance-table td:nth-child(3){
  text-align:right;
  white-space:nowrap;
}

.expense-accounting-registered-table{
  min-width:650px;
}

.expense-reg-date{
  width:72px;
  white-space:nowrap;
}

.expense-reg-sub{
  margin-top:1px;
  font-size:8.2px;
  line-height:1.25;
}

.expense-reg-amount{
  width:85px;
  text-align:right;
  white-space:nowrap;
}

.expense-reg-file{
  width:54px;
  text-align:right;
  white-space:nowrap;
}

.expense-reg-file a{
  font-size:8.5px;
  font-weight:700;
}

@media(max-width:1120px){
  .expense-accounting-columns{
    grid-template-columns:1fr;
  }

  .expense-accounting-advance-table{
    max-width:none;
  }
}

@media(max-width:760px){
  .expense-accounting-head{
    flex-direction:column;
  }

  .expense-accounting-summary{
    grid-template-columns:1fr;
  }

  .expense-accounting-filter{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .expense-accounting-filter label{
    min-width:0;
  }

  .expense-accounting-filter button,
  .expense-accounting-filter a{
    width:100%;
    text-align:center;
  }
}

@media print{
  body.print-expense-advance-only .expense-accounting-v212{
    padding:0!important;
  }

  body.print-expense-advance-only .expense-accounting-head-actions,
  body.print-expense-advance-only .expense-accounting-filter{
    display:none!important;
  }

  body.print-expense-advance-only .expense-accounting-summary{
    grid-template-columns:repeat(3,1fr)!important;
    gap:4px!important;
  }

  body.print-expense-advance-only .expense-accounting-summary-card{
    padding:5px!important;
  }

  body.print-expense-advance-only .expense-accounting-columns{
    grid-template-columns:35% 65%!important;
    gap:5px!important;
  }

  body.print-expense-advance-only .expense-accounting-table{
    font-size:6.5pt!important;
  }

  body.print-expense-advance-only .expense-accounting-table th,
  body.print-expense-advance-only .expense-accounting-table td{
    padding:2.5px 3px!important;
  }

  body.print-expense-advance-only .expense-accounting-registered-table{
    min-width:0!important;
    table-layout:fixed!important;
  }
}


/* =========================
   v2.13 ACCONTI SPESE COMPLETAMENTE SEPARATI
   ========================= */
.expense-advance-isolated{
  padding:14px!important;
}

.expense-isolated-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}

.expense-isolated-head h2{
  margin:0 0 2px;
}

.expense-isolated-head p{
  margin:0;
  font-size:10.5px;
}

.expense-isolated-filter{
  display:flex;
  align-items:flex-end;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:6px;
}

.expense-isolated-filter label{
  min-width:165px;
  margin:0;
}

.expense-isolated-filter select{
  min-height:33px;
}

.expense-isolated-period{
  margin-bottom:7px;
  color:var(--muted);
  font-size:9.5px;
  font-weight:700;
}

.expense-isolated-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:9px;
}

.expense-isolated-value{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:2px 10px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8fafb;
}

.expense-isolated-value span{
  color:var(--muted);
  font-size:9.5px;
  font-weight:800;
}

.expense-isolated-value strong{
  grid-row:1 / 3;
  grid-column:2;
  font-size:16px;
  white-space:nowrap;
}

.expense-isolated-value small{
  color:var(--muted);
  font-size:8.5px;
}

.expense-isolated-table{
  width:100%;
  font-size:9.5px;
}

.expense-isolated-table th,
.expense-isolated-table td{
  padding:5px 7px!important;
}

.expense-isolated-table th:nth-child(2),
.expense-isolated-table th:nth-child(3),
.expense-isolated-table td:nth-child(2),
.expense-isolated-table td:nth-child(3){
  text-align:right;
  white-space:nowrap;
}

.expense-isolated-table tfoot th{
  background:#f6f8fa;
  border-top:2px solid var(--line);
}

.expense-isolated-note{
  margin-top:7px;
  color:var(--muted);
  font-size:8.7px;
}

@media(max-width:650px){
  .expense-isolated-head{
    flex-direction:column;
  }

  .expense-isolated-filter{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .expense-isolated-filter label{
    min-width:0;
  }

  .expense-isolated-filter button,
  .expense-isolated-filter a{
    width:100%;
    text-align:center;
  }

  .expense-isolated-summary{
    grid-template-columns:1fr;
  }
}

@media print{
  body.print-expense-advance-only .expense-isolated-filter,
  body.print-expense-advance-only .expense-isolated-head button{
    display:none!important;
  }

  body.print-expense-advance-only .expense-isolated-summary{
    grid-template-columns:1fr 1fr!important;
  }
}


/* =========================
   v2.15 SCONTRINI COMPATTI + IA
   ========================= */
.receipt-entry-actions-compact{
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
}

.receipt-source-button{
  min-height:62px!important;
  padding:8px 11px!important;
  border-width:1px!important;
  border-style:solid!important;
  border-radius:9px!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  text-align:left!important;
}

.receipt-source-button > .receipt-camera-icon,
.receipt-source-button > .receipt-gallery-icon{
  flex:0 0 auto;
  font-size:19px;
  line-height:1;
}

.receipt-source-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
  line-height:1.15;
}

.receipt-source-copy strong{
  font-size:11px;
}

.receipt-source-copy small{
  color:var(--muted);
  font-size:8.5px;
  font-weight:500;
}

.receipt-preview-actions{
  gap:5px!important;
  flex-wrap:wrap;
}

.receipt-ai-button{
  background:#f0f4f8;
  border:1px solid #aebdca;
  color:var(--text);
  font-weight:800;
}

.receipt-ai-button:hover:not(:disabled){
  background:#e7eef4;
}

.receipt-ai-button:disabled{
  opacity:.48;
  cursor:not-allowed;
}

.receipt-ai-button.is-loading{
  cursor:wait;
}

.receipt-ai-status{
  margin-top:7px;
  padding:7px 9px;
  border:1px solid var(--line);
  border-radius:7px;
  font-size:9.5px;
  line-height:1.35;
}

.receipt-ai-loading{
  background:#f6f8fa;
}

.receipt-ai-success{
  background:#f3faf6;
  border-color:#b8d9c5;
}

.receipt-ai-error{
  background:#fff5f4;
  border-color:#e3bbb7;
}

.receipt-ai-privacy{
  margin-top:5px;
  font-size:8.4px;
  line-height:1.35;
}

@media(max-width:760px){
  .receipt-entry-actions-compact{
    grid-template-columns:1fr 1fr!important;
  }

  .receipt-source-button{
    min-height:56px!important;
    padding:7px 8px!important;
  }

  .receipt-source-copy strong{
    font-size:10px;
  }

  .receipt-source-copy small{
    font-size:8px;
  }
}

@media(max-width:430px){
  .receipt-entry-actions-compact{
    gap:5px!important;
  }

  .receipt-source-button{
    min-height:52px!important;
    padding:6px 7px!important;
    gap:6px!important;
  }

  .receipt-source-button > .receipt-camera-icon,
  .receipt-source-button > .receipt-gallery-icon{
    font-size:16px;
  }

  .receipt-source-copy strong{
    font-size:9.3px;
  }

  .receipt-source-copy small{
    display:none;
  }
}


/* =========================
   v2.16 PULSANTI FOTO REALMENTE COMPATTI
   ========================= */
.receipt-entry-actions.receipt-entry-actions-compact{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  width:100%!important;
}

.receipt-entry-actions-compact .receipt-source-button{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:158px!important;
  min-height:44px!important;
  height:44px!important;
  padding:6px 10px!important;
  margin:0!important;
  border:1px solid #bac5d1!important;
  border-radius:8px!important;
  background:#fff!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  text-align:left!important;
  line-height:1.1!important;
  box-sizing:border-box!important;
}

.receipt-entry-actions-compact .receipt-source-button:hover{
  border-color:#7e94aa!important;
  background:#f7f9fb!important;
}

.receipt-entry-actions-compact .receipt-camera-icon,
.receipt-entry-actions-compact .receipt-gallery-icon{
  flex:0 0 auto!important;
  font-size:16px!important;
  line-height:1!important;
}

.receipt-entry-actions-compact .receipt-source-copy{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:0!important;
  min-width:0!important;
}

.receipt-entry-actions-compact .receipt-source-copy strong{
  font-size:10px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}

.receipt-entry-actions-compact .receipt-source-copy small{
  font-size:7.5px!important;
  line-height:1.1!important;
  margin-top:1px!important;
}

@media(max-width:600px){
  .receipt-entry-actions.receipt-entry-actions-compact{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:5px!important;
  }

  .receipt-entry-actions-compact .receipt-source-button{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    height:42px!important;
    padding:5px 7px!important;
  }

  .receipt-entry-actions-compact .receipt-camera-icon,
  .receipt-entry-actions-compact .receipt-gallery-icon{
    font-size:15px!important;
  }

  .receipt-entry-actions-compact .receipt-source-copy strong{
    font-size:9px!important;
  }

  .receipt-entry-actions-compact .receipt-source-copy small{
    display:none!important;
  }
}


/* =========================================================
   v2.17 OTTIMIZZAZIONE GENERALE SMARTPHONE / TABLET
   Desktop invariato
   ========================================================= */

.mobile-menu-toggle,
.mobile-nav-overlay{
  display:none;
}

/* Migliore comportamento dello scroll orizzontale anche sui tablet */
.table-wrap{
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}

@media(max-width:900px){

  html{
    overflow-x:hidden;
  }

  body{
    overflow-x:hidden;
  }

  body.mobile-nav-open{
    overflow:hidden;
  }

  /* ---------- TOPBAR MOBILE ---------- */
  .topbar{
    min-height:58px!important;
    height:58px;
    padding:7px 9px!important;
    gap:8px!important;
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) auto!important;
    align-items:center!important;
    position:sticky!important;
    top:0;
    z-index:40!important;
    box-shadow:0 1px 8px rgba(0,0,0,.04);
  }

  .mobile-menu-toggle{
    display:inline-flex!important;
    width:38px;
    height:38px;
    min-height:38px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:4px;
    cursor:pointer;
  }

  .mobile-menu-toggle span{
    display:block;
    width:18px;
    height:2px;
    border-radius:99px;
    background:var(--accent);
    transition:transform .18s ease,opacity .18s ease;
  }

  body.mobile-nav-open .mobile-menu-toggle span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
  }

  body.mobile-nav-open .mobile-menu-toggle span:nth-child(2){
    opacity:0;
  }

  body.mobile-nav-open .mobile-menu-toggle span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
  }

  .brand{
    min-width:0!important;
    gap:7px!important;
  }

  .brand-logo,
  .brand-fallback{
    width:36px!important;
    height:36px!important;
    flex:0 0 36px!important;
    border-radius:8px!important;
  }

  .brand-copy{
    min-width:0!important;
    overflow:hidden;
  }

  .brand-title-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:5px;
  }

  .brand-copy strong{
    display:block;
    min-width:0;
    max-width:100%;
    font-size:13px!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .brand-copy > .muted{
    display:block;
    max-width:100%;
    font-size:9px!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .wg-version-badge{
    flex:0 0 auto;
    font-size:8px!important;
    padding:2px 4px!important;
  }

  .top-actions{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    min-width:0;
    font-size:10px!important;
  }

  .top-user-summary{
    display:none!important;
  }

  .language-switcher{
    width:69px;
    flex:0 0 69px;
  }

  .language-switcher select{
    min-height:36px!important;
    height:36px!important;
    padding:4px 6px!important;
    border-radius:8px!important;
    font-size:10px!important;
  }

  .top-logout{
    min-height:36px!important;
    height:36px!important;
    padding:5px 8px!important;
    border-radius:8px!important;
    font-size:10px!important;
  }

  /* ---------- MENU A SCOMPARSA ---------- */
  .layout{
    display:block!important;
    min-height:calc(100vh - 58px)!important;
  }

  .sidebar{
    display:flex!important;
    position:fixed!important;
    top:58px!important;
    left:0!important;
    bottom:0!important;
    width:min(292px,86vw)!important;
    z-index:35!important;
    padding:10px!important;
    flex-direction:column!important;
    gap:3px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain;
    background:#fff!important;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    box-shadow:12px 0 28px rgba(20,33,46,.15);
    transform:translateX(-105%);
    transition:transform .2s ease;
  }

  body.mobile-nav-open .sidebar{
    transform:translateX(0);
  }

  .sidebar a{
    flex:0 0 auto!important;
    width:100%!important;
    min-height:42px;
    padding:10px 11px!important;
    border-radius:8px!important;
    display:flex;
    align-items:center;
    font-size:13px!important;
    white-space:normal!important;
  }

  .mobile-nav-overlay{
    position:fixed!important;
    display:block!important;
    inset:58px 0 0 0!important;
    z-index:34!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:rgba(17,28,39,.38)!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
  }

  body.mobile-nav-open .mobile-nav-overlay{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  /* ---------- CONTENUTO ---------- */
  .content{
    width:100%!important;
    max-width:none!important;
    padding:12px 10px 26px!important;
    margin:0!important;
  }

  h1{
    font-size:22px!important;
    line-height:1.15;
    margin-bottom:11px!important;
  }

  h2{
    font-size:16px!important;
    margin-bottom:9px!important;
  }

  h3{
    font-size:13px!important;
  }

  .page-head,
  .section-head,
  .report-head{
    gap:8px!important;
    margin-bottom:11px!important;
  }

  .panel{
    padding:12px!important;
    margin-bottom:10px!important;
    border-radius:11px!important;
  }

  .card{
    padding:11px!important;
    border-radius:10px!important;
    gap:4px!important;
  }

  .card span{
    font-size:10px!important;
  }

  .card strong{
    font-size:17px!important;
  }

  .cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    margin-bottom:10px!important;
  }

  /* ---------- FORM TOUCH FRIENDLY ---------- */
  .form-grid,
  .tenant-grid{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }

  label{
    gap:4px!important;
    font-size:11px!important;
  }

  input,
  select,
  textarea{
    min-height:44px!important;
    padding:8px 9px!important;
    border-radius:8px!important;
    font-size:16px!important; /* evita zoom automatico iOS */
  }

  textarea{
    min-height:78px!important;
  }

  input[type=checkbox],
  input[type=radio]{
    min-height:auto!important;
    width:auto!important;
  }

  button,
  .button{
    min-height:40px;
    padding:8px 10px;
    border-radius:8px;
    font-size:12px;
  }

  .button.small,
  button.small{
    min-height:34px!important;
    padding:6px 8px!important;
    font-size:10px!important;
  }

  .actions{
    gap:6px!important;
  }

  .filter-row{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:7px!important;
    align-items:end!important;
  }

  .filter-row label{
    min-width:0!important;
  }

  /* ---------- TABELLE ---------- */
  .table-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    border-radius:8px;
  }

  table{
    min-width:620px;
  }

  th,
  td{
    padding:8px 7px!important;
    font-size:11.5px!important;
  }

  th{
    font-size:9px!important;
    letter-spacing:.025em!important;
  }

  .table-actions{
    gap:4px!important;
  }

  /* ---------- LISTE SPESE ---------- */
  .expense-row{
    padding:11px!important;
    border-radius:10px!important;
  }

  .expense-main{
    gap:8px!important;
  }

  .expense-note{
    margin:6px 0!important;
    font-size:11px!important;
  }

  .allocation-grid > div{
    padding:7px 8px!important;
    font-size:11px!important;
  }

  /* ---------- SCONTRINI ---------- */
  .receipt-preview-card{
    align-items:flex-start!important;
    gap:8px!important;
  }

  .receipt-entry-actions.receipt-entry-actions-compact{
    width:100%!important;
  }

  .receipt-entry-actions-compact .receipt-source-button{
    min-height:44px!important;
    height:44px!important;
  }

  .receipt-camera-shell{
    height:100dvh!important;
  }

  .receipt-camera-topbar{
    min-height:54px!important;
    padding:7px 10px!important;
  }

  .receipt-camera-topbar strong{
    font-size:13px!important;
  }

  .receipt-camera-topbar span{
    font-size:9px!important;
  }

  .camera-close{
    width:38px!important;
    height:38px!important;
    min-height:38px!important;
    font-size:23px!important;
  }

  .receipt-guide-frame{
    width:82%!important;
    height:82%!important;
  }

  .receipt-camera-controls{
    min-height:76px!important;
    padding:8px 12px!important;
  }

  .receipt-shutter{
    width:58px!important;
    height:58px!important;
  }

  .receipt-camera-tips{
    gap:5px 9px!important;
    padding:0 9px 8px!important;
    font-size:9px!important;
  }
}

@media(max-width:600px){

  .content{
    padding:9px 7px 22px!important;
  }

  .panel{
    padding:10px!important;
    margin-bottom:8px!important;
  }

  .cards{
    gap:5px!important;
  }

  .card{
    padding:9px!important;
  }

  .card strong{
    font-size:15px!important;
  }

  .page-head,
  .section-head,
  .report-head{
    flex-direction:column!important;
  }

  .filter-row{
    grid-template-columns:1fr!important;
  }

  .actions.mobile-full-actions,
  .page-head > .actions,
  .section-head > .actions{
    width:100%;
  }

  .page-head > .actions > .button,
  .page-head > .actions > button,
  .section-head > .actions > .button,
  .section-head > .actions > button{
    flex:1 1 auto;
  }

  .alert{
    padding:9px 10px!important;
    margin-bottom:8px!important;
    font-size:11px!important;
  }

  .status-pill{
    padding:3px 6px!important;
    font-size:9px!important;
  }

  .help,
  .muted{
    font-size:10px;
  }

  .auth-wrap{
    padding:10px!important;
  }

  .auth-card{
    padding:18px 14px!important;
    border-radius:12px!important;
  }
}

@media(max-width:380px){

  .topbar{
    grid-template-columns:36px minmax(0,1fr) auto!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }

  .mobile-menu-toggle{
    width:36px;
    height:36px;
  }

  .brand-logo,
  .brand-fallback{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
  }

  .brand-copy > .muted{
    display:none!important;
  }

  .language-switcher{
    width:58px;
    flex-basis:58px;
  }

  .language-switcher select{
    width:58px!important;
    padding-left:4px!important;
    padding-right:2px!important;
  }

  .top-logout{
    padding-left:6px!important;
    padding-right:6px!important;
  }

  .cards{
    grid-template-columns:1fr 1fr!important;
  }

  .card strong{
    font-size:14px!important;
  }
}


/* =========================
   v2.18 DIAGNOSTICA IA
   ========================= */
.receipt-ai-diagnostic-link{
  margin-top:5px;
  font-size:9px;
}

.receipt-ai-diagnostic-link a{
  color:var(--muted);
  text-decoration:underline;
  text-underline-offset:2px;
}

.ai-diag-table{
  width:100%;
  min-width:0;
}

.ai-diag-table th{
  width:42%;
  text-align:left;
  text-transform:none;
  letter-spacing:0;
}

.ai-diag-result{
  margin-top:12px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:9px;
}

.ai-diag-result h3{
  margin:0 0 5px;
}

.ai-diag-result p{
  margin:0;
}

.ai-diag-ok{
  background:#f3faf6;
  border-color:#b8d9c5;
}

.ai-diag-error{
  background:#fff5f4;
  border-color:#e3bbb7;
}

.ai-diag-meta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:8px;
}

.ai-diag-meta span{
  display:inline-flex;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(255,255,255,.75);
  border:1px solid var(--line);
  font-size:9px;
}

.ai-diag-provider-message{
  white-space:pre-wrap;
  word-break:break-word;
  font-size:10px;
  padding:8px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:7px;
}

@media(max-width:600px){
  .ai-diag-table th,
  .ai-diag-table td{
    padding:7px 6px!important;
  }

  .ai-diag-table th{
    width:50%;
  }
}


/* =========================
   v2.20 RIPARTIZIONE SPESE INDIPENDENTE DALL'IA
   ========================= */
.split-tenant-option{
  cursor:pointer!important;
  opacity:1!important;
}

.split-tenant-option.disabled{
  opacity:1!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}

.split-tenant-option.disabled input{
  pointer-events:auto!important;
}

.split-status{
  color:var(--muted);
  font-size:8px;
  font-weight:500;
  line-height:1.2;
}

@media(max-width:600px){
  .split-tenant-grid{
    grid-template-columns:1fr!important;
    gap:5px!important;
  }

  .split-tenant-option{
    min-height:42px;
    padding:7px 8px!important;
  }
}


/* =========================
   v2.21 DETTAGLIO REGISTRAZIONE SPESA
   ========================= */
.receipt-expense-row{
  scroll-margin-top:76px;
}

.expense-row-focus{
  border:2px solid #9bb4c8!important;
  box-shadow:0 0 0 3px rgba(116,148,174,.10);
}

.expense-registration-detail{
  margin-top:9px;
  padding:9px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafb;
}

.expense-registration-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
  font-size:10.5px;
}

.expense-registration-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}

.expense-registration-field{
  min-width:0;
  padding:6px 7px;
  border-radius:7px;
  background:#fff;
  border:1px solid rgba(0,0,0,.045);
  display:flex;
  flex-direction:column;
  gap:2px;
}

.expense-registration-field > span{
  color:var(--muted);
  font-size:8.3px;
  font-weight:750;
}

.expense-registration-field > strong{
  min-width:0;
  font-size:9.8px;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.expense-registration-field > small{
  color:var(--muted);
  font-size:7.8px;
  line-height:1.2;
  overflow-wrap:anywhere;
}

.expense-registration-split{
  grid-column:span 2;
}

.expense-registration-note{
  grid-column:span 2;
}

.expense-receipt-present{
  color:#157347;
}

.expense-registration-receipt-link{
  margin-top:2px;
  font-size:8px;
  font-weight:750;
}

.expense-allocation-details{
  margin-top:7px;
}

.expense-allocation-details > summary{
  cursor:pointer;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}

@media(max-width:900px){
  .expense-registration-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .expense-registration-split,
  .expense-registration-note{
    grid-column:span 2;
  }
}

@media(max-width:520px){
  .expense-registration-detail{
    margin-top:7px;
    padding:7px;
  }

  .expense-registration-grid{
    grid-template-columns:1fr 1fr;
    gap:4px;
  }

  .expense-registration-field{
    padding:6px;
  }

  .expense-registration-field > span{
    font-size:7.8px;
  }

  .expense-registration-field > strong{
    font-size:9.2px;
  }

  .expense-registration-split,
  .expense-registration-note{
    grid-column:1 / -1;
  }
}

@media print{
  .expense-registration-detail{
    padding:5px!important;
  }

  .expense-registration-grid{
    grid-template-columns:repeat(4,1fr)!important;
    gap:3px!important;
  }

  .expense-registration-field{
    padding:3px!important;
  }

  .expense-registration-field > span{
    font-size:6pt!important;
  }

  .expense-registration-field > strong{
    font-size:7pt!important;
  }

  .expense-allocation-details{
    display:none!important;
  }
}


/* =========================
   v2.22 BLOCCO MODIFICHE UTENTI DOPO 24 ORE
   ========================= */
.expense-edit-window,
.settlement-edit-window{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
  margin-top:7px;
}

.expense-locked-pill{
  background:#f4f5f6;
  color:#68717a;
  border:1px solid #d8dde1;
  font-weight:700;
}

.settlement-edit-window{
  margin-top:0;
  justify-content:flex-start;
  min-width:155px;
}

@media(max-width:600px){
  .expense-edit-window{
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
  }

  .expense-edit-window .table-actions{
    width:100%;
  }

  .expense-edit-window .table-actions > a,
  .expense-edit-window .table-actions > form{
    flex:1 1 auto;
  }

  .expense-edit-window .table-actions button,
  .expense-edit-window .table-actions a{
    width:100%;
    text-align:center;
  }

  .settlement-edit-window{
    min-width:135px;
  }
}


/* =========================
   v2.23 DETTAGLIO SPESA RICHIUDIBILE
   ========================= */
.expense-registration-collapsible{
  margin-top:7px;
}

.expense-registration-collapsible > summary{
  list-style:none;
}

.expense-registration-collapsible > summary::-webkit-details-marker{
  display:none;
}

.expense-detail-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:30px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#f7f9fb;
  color:var(--text);
  font-size:9px;
  font-weight:800;
  cursor:pointer;
  user-select:none;
}

.expense-detail-button:hover{
  background:#eef3f7;
}

.expense-detail-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  line-height:1;
  color:var(--muted);
  transform:rotate(0deg);
  transition:transform .15s ease;
}

.expense-registration-collapsible[open] .expense-detail-chevron{
  transform:rotate(90deg);
}

.expense-registration-collapsible .expense-registration-detail{
  margin-top:6px;
}

.expense-focus-badge{
  display:flex;
  justify-content:flex-end;
  margin-bottom:4px;
}

@media(max-width:600px){
  .expense-detail-button{
    min-height:34px;
    padding:6px 9px;
    font-size:9.5px;
  }

  .expense-registration-collapsible .expense-registration-detail{
    margin-top:5px;
  }
}

@media print{
  .expense-registration-collapsible{
    display:none!important;
  }
}


/* =========================
   v2.28 INQUILINI + ACCOUNT UNIFICATI
   ========================= */
.tenant-page-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:8px;
}

#dati-inquilini,
#account-inquilini{
  scroll-margin-top:76px;
}

.tenant-section-divider{
  border:0;
  border-top:1px solid var(--line);
  margin:24px 0 18px;
}

.tenant-account-section{
  margin-top:0;
}

.tenant-account-main-head{
  margin-bottom:10px;
}

.tenant-account-main-head h2{
  margin-bottom:3px;
}

@media(max-width:600px){
  .tenant-page-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .tenant-page-tabs .button{
    width:100%;
    text-align:center;
  }

  .tenant-section-divider{
    margin:18px 0 14px;
  }

  .tenant-account-main-head{
    align-items:flex-start;
  }
}


/* =========================
   v2.31 INVITO INQUILINO COME FLUSSO PRINCIPALE
   ========================= */
.tenant-invite-primary{
  padding:10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafb;
}

.tenant-invite-primary .tenant-invite-box{
  margin-top:7px;
}

.account-manual-create{
  margin-top:7px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}

.account-manual-create > summary{
  cursor:pointer;
  padding:8px 10px;
  font-size:9px;
  font-weight:750;
  color:var(--muted);
}

.account-manual-create-body{
  padding:0 10px 10px;
}

@media(max-width:600px){
  .tenant-invite-primary{
    padding:8px;
  }

  .account-manual-create > summary{
    min-height:38px;
    display:flex;
    align-items:center;
  }
}


/* =========================
   v2.35 ELIMINA WG DA PIATTAFORMA
   ========================= */
.platform-delete-org-button{
  border-color:#a91e2b;
}

.platform-delete-org-form{
  margin:0;
}

.platform-table .table-actions{
  align-items:center;
  flex-wrap:wrap;
}

@media(max-width:900px){
  .platform-table .table-actions{
    min-width:180px;
  }
}


/* =========================
   v2.37 MODALITÀ GESTIONE WG
   ========================= */
.management-mode-picker{
  border:1px solid var(--line);
  border-radius:10px;
  padding:9px;
  margin:0;
}

.management-mode-picker legend{
  font-weight:800;
  padding:0 5px;
}

.management-mode-option{
  display:flex!important;
  align-items:flex-start;
  gap:8px;
  padding:9px;
  margin:5px 0;
  border:1px solid var(--line);
  border-radius:8px;
  cursor:pointer;
}

.management-mode-option input{
  width:auto!important;
  margin-top:3px;
}

.management-mode-option span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.management-mode-option small{
  color:var(--muted);
  line-height:1.3;
}

.management-mode-option:has(input:checked){
  background:#f2f7fa;
  border-color:#9bb4c8;
}


/* =========================
   v2.39 PREZZI / WG TEST
   ========================= */
.platform-free-test-form{
  min-width:180px;
  display:grid;
  gap:6px;
}
.platform-test-toggle{
  display:flex!important;
  align-items:center;
  gap:7px;
  font-weight:700;
}
.platform-test-toggle input{
  width:auto!important;
}
.platform-free-test-form input[type="date"]{
  min-width:145px;
}
