/* V6.6 — affinamento posizionamento smartphone. Nessuna modifica al desktop. */
.mobile-table-hint{display:none}
@media (max-width:700px){
 html,body{width:100%;max-width:100%;overflow-x:clip}
 .workspace{width:100%;min-width:0}
 .topbar{grid-template-columns:42px minmax(0,1fr);column-gap:12px;row-gap:11px;padding:11px 16px 13px;align-items:center}
 .menu-btn{width:42px;height:42px;font-size:19px}
 .breadcrumbs{font-size:12px;letter-spacing:.1px}
 .breadcrumbs span{padding-inline:5px}
 .top-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .search-box{grid-column:1/-1;min-height:46px;height:46px;padding-inline:14px;border-radius:12px}
 .search-box input{width:100%;font-size:14px;height:100%;min-width:0}
 .toolbar-button{width:100%;height:43px;min-width:0;font-size:12px;border-radius:11px;padding:0 9px}
 main{padding:22px 16px 24px}
 .page-intro{gap:16px;margin-bottom:24px}
 .eyebrow{margin-bottom:7px;font-size:9px}
 .page-intro h1{font-size:clamp(23px,6vw,29px);line-height:1.18;letter-spacing:-.6px}
 .intro-desc{font-size:12px;line-height:1.55;margin-top:8px}
 .page-intro .primary{width:100%;height:46px;font-size:13px;border-radius:11px}
 .section-heading{margin-bottom:13px;gap:8px;align-items:flex-start}
 .section-heading h2{font-size:15px}
 .section-heading p{line-height:1.5}
 .kpis{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .kpi{padding:15px 14px;min-height:132px;border-radius:14px}
 .kpi-top{font-size:11px;align-items:flex-start;line-height:1.35}
 .kpi-icon{width:29px;height:29px}
 .kpi strong{font-size:clamp(17px,4.5vw,24px);line-height:1.18;letter-spacing:-.45px;margin:13px 0 8px}
 .kpi small{line-height:1.4;display:block}
 .charts,.analytics-charts{gap:13px;margin-top:16px}
 .chart-card,.analytics-chart{padding:18px 14px;border-radius:14px}
 .card-heading{align-items:flex-start;gap:8px}
 .card-heading h2{font-size:14px;line-height:1.4}
 .card-heading p{line-height:1.5}
 .chart-tag{font-size:10px}
 .canvas-container,.analytics-canvas{height:230px;min-width:0}
 .pie-wrap{height:235px}
 .analytics-summary{gap:10px}
 .analytics-tile{min-width:0;padding:15px 12px;border-radius:12px}
 .analytics-tile strong{overflow-wrap:anywhere}
 .secondary-kpis{margin:13px 0 26px;gap:10px}
 .secondary-kpis article{min-width:0;gap:8px;border-radius:12px}
 .secondary-kpis strong{white-space:normal;text-align:right;overflow-wrap:anywhere}
 .table-card{border-radius:14px;margin-top:16px}
 .table-top{padding:17px 15px 13px;align-items:center;gap:10px}
 .table-top>div{min-width:0}
 .table-top h2{font-size:15px}
 .table-top p{line-height:1.45}
 .count{flex-shrink:0;padding:7px 9px}
 .mobile-table-hint{display:block;padding:0 15px 11px;color:#888e9f;font-size:10px;line-height:1.5}
 .table-scroll{border-top:1px solid #eceef2;scrollbar-width:thin}
 .table-scroll table{min-width:740px}
 .table-scroll th,.table-scroll td{padding:14px 13px;font-size:11px}
 .site-map-panel{padding:15px;border-radius:14px}
 .site-map-header{gap:11px}
 .site-map-header h2{font-size:15px}
 .site-map-layout{gap:12px}
 .site-map-list{max-height:190px}
 .site-map{width:100%;height:260px;border-radius:12px;overflow:hidden}
 .site-map iframe{display:block;width:100%;height:100%;border:0}
 .map-external-link{width:100%;text-align:center}
 .modal-backdrop{padding:0;align-items:end}
 .modal{width:100%;max-width:none;max-height:92dvh;padding:20px 17px max(18px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overscroll-behavior:contain}
 .modal-head{position:sticky;top:-20px;padding:4px 0 14px;background:inherit;z-index:1;margin-bottom:12px}
 .form-grid{gap:13px}
 .field{font-size:12px}
 .field input,.field select{height:46px;font-size:16px}
 .form-actions{gap:9px;margin-top:20px}
 .form-actions button{min-height:45px}
 .drop-zone{padding:25px 13px}
 .toast{bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px}
 footer{padding-bottom:22px}
 :root[data-theme="dark"] .mobile-table-hint{color:#a8aec1}
 :root[data-theme="dark"] .table-scroll{border-color:#363b4d}
}
@media (max-width:390px){
 .topbar{padding-inline:12px}
 main{padding-inline:12px}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .kpi{padding:12px 10px;min-height:124px}
 .kpi strong{font-size:clamp(15px,4.45vw,19px)}
 .kpi-top{font-size:10px}
 .kpi-icon{width:25px;height:25px}
 .analytics-summary{grid-template-columns:minmax(0,1fr)}
 .chart-tag{display:none}
 .table-top{flex-wrap:wrap}
}
@media(max-width:340px){.kpis{grid-template-columns:minmax(0,1fr)}.kpi{min-height:auto}.kpi strong{font-size:22px}}


/* v18 — Spaziatura regolare delle card e dei grafici.
   Questo file viene caricato DOPO styles.css e prevale sulle regole responsive precedenti. */
:root { --gw-card-gap: 22px; --gw-card-padding: 22px; --gw-section-gap: 32px; }
#dashboard .kpis,
#dashboard .secondary-kpis,
.overview-group .analytics-summary,
.overview-group .analytics-charts,
#section-analytics .analytics-summary,
#section-analytics .analytics-charts,
#dashboard .charts {
  column-gap: var(--gw-card-gap);
  row-gap: var(--gw-card-gap);
  align-items: stretch;
}
#dashboard .kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
#dashboard .kpi,
.overview-group .analytics-tile,
#section-analytics .analytics-tile {
  min-width:0; height:100%; padding:var(--gw-card-padding);
  display:flex; flex-direction:column; justify-content:flex-start;
}
#dashboard .kpi-top { gap:14px; }
#dashboard .kpi strong { margin:17px 0 11px; line-height:1.25; }
#dashboard .kpi small { margin-top:auto; line-height:1.55; }
.overview-group .analytics-tile strong,
#section-analytics .analytics-tile strong { margin-top:14px; line-height:1.25; }
.overview-group .analytics-chart,
#section-analytics .analytics-chart,
#dashboard .chart-card { min-width:0; padding:var(--gw-card-padding); }
.overview-group .analytics-chart h3,
#section-analytics .analytics-chart h3 { margin-bottom:10px; line-height:1.4; }
.overview-group .analytics-chart p,
#section-analytics .analytics-chart p { margin-bottom:20px; line-height:1.5; }
.overview-group { margin-bottom:var(--gw-section-gap); }
.overview-group-title { margin-bottom:18px; }
#dashboard .secondary-kpis { margin-top:var(--gw-card-gap); margin-bottom:var(--gw-section-gap); }
#dashboard .charts { margin-top:var(--gw-card-gap); }
#dashboard .kpi, #dashboard .chart-card,
.overview-group .analytics-tile,.overview-group .analytics-chart,
#section-analytics .analytics-tile,#section-analytics .analytics-chart { box-sizing:border-box; }
@media(max-width:1100px) {
  :root { --gw-card-gap:18px; --gw-card-padding:19px; --gw-section-gap:28px; }
  .overview-group .analytics-charts,#section-analytics .analytics-charts { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px) {
  :root { --gw-card-gap:16px; --gw-card-padding:17px; --gw-section-gap:26px; }
  #dashboard .kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .overview-group .analytics-summary,#section-analytics .analytics-summary {grid-template-columns:repeat(2,minmax(0,1fr));}
  .overview-group .analytics-charts,#section-analytics .analytics-charts {grid-template-columns:minmax(0,1fr);}
  #dashboard .kpi strong {margin:14px 0 9px;}
}
@media(max-width:540px) {
  :root { --gw-card-gap:14px; --gw-card-padding:16px; --gw-section-gap:24px; }
  #dashboard .kpis,.overview-group .analytics-summary,#section-analytics .analytics-summary {grid-template-columns:minmax(0,1fr);}
  #dashboard .secondary-kpis {grid-template-columns:minmax(0,1fr);}
  #dashboard .kpi {min-height:116px;}
}

/* v19 — Correzione strutturale di tutte le coppie di grafici. */
:root { --gw-chart-gap: 26px; --gw-chart-inset: 24px; }
#section-analytics > .analytics-charts,
#section-analytics .overview-group > .analytics-charts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--gw-chart-gap);
  row-gap:var(--gw-chart-gap);
  align-items:stretch;
  margin-top:var(--gw-chart-gap);
  margin-bottom:var(--gw-chart-gap);
  min-width:0;
}
#section-analytics .analytics-charts > .analytics-chart {
  min-width:0;
  width:100%;
  height:auto;
  padding:var(--gw-chart-inset);
  display:flex;
  flex-direction:column;
  gap:0;
}
#section-analytics .analytics-charts > .analytics-chart h3 {margin:0 0 10px;line-height:1.45;}
#section-analytics .analytics-charts > .analytics-chart p {margin:0 0 22px;line-height:1.55;}
#section-analytics .analytics-charts > .analytics-chart .analytics-canvas {margin-top:auto;min-width:0;max-width:100%;}
#section-analytics .overview-group {margin-bottom:36px;}
@media(max-width:1200px) {
  :root {--gw-chart-gap:20px;--gw-chart-inset:20px;}
  #section-analytics > .analytics-charts,
  #section-analytics .overview-group > .analytics-charts {grid-template-columns:minmax(0,1fr);}
}
@media(max-width:700px) {
  :root {--gw-chart-gap:16px;--gw-chart-inset:17px;}
  #section-analytics .overview-group {margin-bottom:28px;}
}

/* v20: navigazione e paginazione comuni a tutte le tabelle */
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 23px 22px;border-top:1px solid #edf0f4;flex-wrap:wrap}
.table-pagination #page-summary{font-size:12px;color:#687082;text-align:center;flex:1;min-width:180px}
.table-pagination button{min-width:155px;white-space:nowrap}
.table-pagination button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:650px){.table-pagination{padding:16px;gap:10px}.table-pagination #page-summary{order:-1;flex-basis:100%}.table-pagination button{flex:1;min-width:0;font-size:11px;padding-inline:8px}}
:root[data-theme="dark"] .table-pagination{border-color:#373c49}
:root[data-theme="dark"] .table-pagination #page-summary{color:#b8becd}

/* v21: campo ricerca dedicato, integrato in tutte le tabelle. */
.table-search-toolbar{display:flex;flex-direction:column;gap:8px;padding:0 22px 18px;min-width:0}
.table-search-label{font-size:13px;font-weight:700;color:var(--text,#263043)}
.table-search-field{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;min-height:48px;padding:0 12px;border:1px solid var(--border,#d9dee8);border-radius:12px;background:var(--surface,#fff)}
.table-search-field:focus-within{border-color:#7c75d8;box-shadow:0 0 0 3px rgba(110,101,214,.12)}
.table-search-field>span{font-size:23px;line-height:1;color:#727d91}
.table-search-field input{flex:1;min-width:0;width:100%;background:transparent;border:0;outline:0;box-shadow:none;color:inherit;font:inherit;font-size:14px;padding:12px 0}
.table-search-clear{flex:none;background:transparent;color:inherit;border:0;cursor:pointer;padding:8px 10px;border-radius:8px}
.table-search-clear:disabled{opacity:.32;cursor:default}
.table-search-info{font-size:12px;color:var(--muted,#727d91)}
@media(max-width:680px){.table-search-toolbar{padding:0 15px 15px}.table-search-field{min-height:44px}.table-search-field input{font-size:16px}}

/* v22: grafico degli stati dei preventivi nel riepilogo finanziario */
#dashboard .financial-chart-row { margin-top: 26px; margin-bottom: 24px; display: grid; grid-template-columns: minmax(0, 1fr); }
#dashboard .financial-status-card { width: 100%; max-width: 760px; min-width: 0; box-sizing: border-box; }
#dashboard .financial-status-card .analytics-canvas { min-width: 0; height: 250px; }
@media (max-width: 720px) {
  #dashboard .financial-chart-row { margin-top: 18px; margin-bottom: 18px; }
  #dashboard .financial-status-card { max-width: 100%; }
  #dashboard .financial-status-card .analytics-canvas { height: 230px; }
}
