:root{
  --bg:#ffffff;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#475569;
  --line:rgba(2,6,23,.10);
  --good:#16a34a;
  --warn:#d97706;
  --bad:#dc2626;
  --accent:#2563eb;
  --shadow: 0 10px 20px rgba(2,6,23,.08);
  --radius:16px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--text);
  background:#f6f7fb;
  overflow-x:hidden; /* no scroll orizzontale */
}

.wrap{max-width:1200px;margin:0 auto;padding:14px 16px 40px;}

/* Header/Toolbar: niente padding-bottom extra */
.app-header .wrap{padding:12px 16px;}
.toolbar .wrap{padding:12px 16px;}

@media(max-width:520px){ .wrap{padding:12px 12px 30px;} }

/* =========================
   HEADER: MINIMO - 1 RIGA DESKTOP - NO SCROLL
========================= */
.app-header{
  position:static; /* NON sticky su desktop */
  background:rgba(255,255,255,.95);
  border-bottom:1px solid var(--line);
}

.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:nowrap;
}

@media(max-width:760px){
  .header-row{flex-wrap:wrap;}
}

.header-row > *{min-width:0;}

.header-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  white-space:nowrap;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.logo{
  width:34px;height:34px;border-radius:12px;
  background: linear-gradient(135deg, rgba(96,165,250,.85), rgba(167,139,250,.85));
  box-shadow: var(--shadow);
  flex:0 0 auto;
}

.brand-text{min-width:0}
.brand-title{
  font-weight:900;
  font-size:15px;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:520px;
}
.brand-subtitle{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:520px;
}

/* azioni header */
.view-switch{
  display:flex;
  background:#f1f5f9;
  padding:3px;
  border-radius:12px;
  border:1px solid var(--line);
  gap:3px;
  flex:0 0 auto;
}
.view-switch button{
  background:transparent;
  border:none;
  padding:7px 12px;
  font-weight:800;
  color:var(--muted);
  cursor:pointer;
  border-radius:10px;
  font-size:13px;
}
.view-switch button.active{
  background:#ffffff;
  color:var(--accent);
  box-shadow:0 2px 4px rgba(0,0,0,0.05);
}

.account{
  display:flex;
  align-items:center;
  gap:8px;
}
.account-pill{
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  background:#f8fafc;
  padding:7px 10px;
  border-radius:999px;
  font-size:12px;
  color:var(--text);
  max-width:260px;
}
.account-email{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:200px;
}
.account-dot{
  width:8px;height:8px;border-radius:50%;
  background:#7c3aed;
  flex:0 0 auto;
}

.btn-ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px;
  border-radius:10px;
  border:1px solid var(--line);
  text-decoration:none;
  font-size:12px;
  color:var(--text);
  background:#fff;
}
.btn-ghost:hover{background:rgba(37,99,235,.06)}

/* =========================
   TOOLBAR SOTTO HEADER (PRO)
========================= */
.toolbar{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.toolbar .wrap{padding:12px 16px;}
.toolbar-main{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.toolbar-left{
  display:flex;
  gap:16px;
  align-items:flex-end;
  flex:1 1 auto;
  min-width:0;
  flex-wrap:wrap;
}
.field-inline{
  display:flex;
  gap:8px;
  align-items:center;
}
#companySelect{min-width:240px;}
.toolbar-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex:0 0 auto;
  white-space:nowrap;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.toolbar-status{
  padding-top:0 !important;
  border-top:1px solid rgba(2,6,23,.06);
}
.toolbar-status .working-pill{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.toolbar-secondary{
  padding-top:0 !important;
  border-top:1px solid rgba(2,6,23,.06);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.toolbar-actions--secondary button{
  padding:8px 10px;
  font-size:13px;
}
.tool{display:flex; flex-direction:column; gap:6px; min-width:0;}
.tool label{
  font-size:10px;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
}

.working-pill{
  border-color: rgba(96,165,250,.45);
  background: rgba(96,165,250,.10);
  color: var(--text);
  font-weight:900;
}
/* inputs */
select, input[type="text"], input[type="number"], input[type="month"]{
  background:#ffffff;
  border:1px solid var(--line);
  color:var(--text);
  padding:9px 10px;
  border-radius:10px;
  outline:none;
  font-size:13px;
  min-width:0;
}
input[type="number"]{min-width:120px}

button{
  background:#ffffff;
  border:1px solid var(--line);
  color:var(--text);
  padding:9px 10px;
  border-radius:10px;
  cursor:pointer;
  transition:.15s transform, .15s background;
  font-size:13px;
  display:inline-flex; align-items:center; gap:6px;
  white-space:nowrap;
}
button:hover{background: rgba(37,99,235,.06); transform: translateY(-1px)}
button.primary{
  background: linear-gradient(135deg, rgba(96,165,250,.95), rgba(167,139,250,.85));
  border: none; color: white;
}
button.danger{border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08); color: var(--bad);}
button.good{border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.08); color: var(--good);}

.pill{
  font-family:var(--mono);
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  background:#f1f5f9;
  border:1px solid var(--line);
  color:var(--muted);
  white-space:nowrap;
}

/* =========================
   LAYOUT
========================= */
.card{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.card .hd{
  padding:14px 14px 10px;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border-bottom:1px solid var(--line);
}
.card .hd h2{margin:0; font-size:14px}
.card .bd{padding:14px}

.grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:14px;
  margin-top:16px;
}
@media(max-width:980px){ .grid{grid-template-columns:1fr} }

.kpis{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:10px;
}
@media(max-width:980px){ .kpis{grid-template-columns: repeat(2, 1fr)} }
@media(max-width:520px){ .kpis{grid-template-columns: 1fr} }

.kpi{
  padding:12px 12px 10px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.92);
  box-shadow:0 1px 0 rgba(15,23,42,.04);
}
.kpi .label{font-size:11px;color:rgba(15,23,42,.62);letter-spacing:.04em;text-transform:uppercase}
.kpi .value{font-size:22px;font-weight:900;margin-top:6px;line-height:1.1}
.kpi .hint{font-size:11px;color:rgba(71,85,105,.85);margin-top:6px}

.indicator{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#f8fafc;
  margin-top:10px;
}
.dot{width:12px;height:12px;border-radius:50%}
.indicator-title{font-weight:900}
.muted{color:var(--muted)}
.small{font-size:12px}
.right{text-align:right}
.mono{font-family:var(--mono)}
.hide{display:none !important}

/* Modal (Import fatture, ecc.) */
.modal{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.modal-card{ position:relative; background:#fff; width:min(720px, calc(100vw - 24px)); border-radius:12px; overflow:hidden; box-shadow:0 12px 40px rgba(0,0,0,.25); }
.modal-hd{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid #eee; }
.modal-hd h3{ margin:0; font-size:18px; }
.modal-x{ border:0; background:transparent; font-size:18px; cursor:pointer; }
.modal-bd{ padding:16px; }
.modal-ft{ padding:14px 16px; border-top:1px solid #eee; display:flex; justify-content:flex-end; gap:10px; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:680px){ .grid2{ grid-template-columns:1fr; } }

.btn-outline{ background:#fff; border:1px solid #ccc; }

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
@media(max-width:980px){ .split{grid-template-columns:1fr} }
.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media(max-width:980px){ .two{grid-template-columns:1fr} }

.tabs{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-top:12px;
}
.tab{
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#f8fafc;
  color:var(--muted);
  cursor:pointer;
  user-select:none;
  font-size:13px;
  font-weight:800;
}
.tab.active{
  color:var(--text);
  border-color: rgba(96,165,250,.45);
  background: rgba(96,165,250,.12);
}

table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:14px;
  border:1px solid var(--line);
}
thead th{
  text-align:left;
  font-size:12px;
  color:var(--muted);
  background:#f8fafc;
  padding:10px;
  border-bottom:1px solid var(--line);
}
tbody td{
  padding:10px;
  border-bottom:1px solid rgba(0,0,0,.06);
  vertical-align:top;
  font-size:13px;
}
tbody tr:last-child td{border-bottom:none}

.formline{
  display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end;
  margin-bottom:10px;
}
.formline label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px}
.field{display:flex; flex-direction:column}
.field.grow{flex:1; min-width:220px}

.note{
  padding:10px 12px;
  border-radius:14px;
  border:1px dashed rgba(2,6,23,.18);
  color:var(--muted);
  background:#f8fafc;
  font-size:12px;
  line-height:1.35;
}

canvas{
  width:100%;
  height:260px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#f8fafc;
}

select option{
  color:#0f172a;
  background:#ffffff;
}

/* =========================
   MOBILE: header resta compatto, toolbar va a colonne
========================= */
@media(max-width:860px){
  /* header diventa sticky SOLO su mobile (utile) */
  .app-header{ position:sticky; top:0; z-index:1000; }

  .brand-subtitle{display:none;} /* salva spazio */
  .brand-title{max-width:220px}

  .account-pill{max-width:180px}
  .account-email{max-width:120px}

  .toolbar-grid{
    grid-template-columns: 1fr;
    align-items:stretch;
  }
  .toolbar-grid-2{
    grid-template-columns: 1fr;
  }
  .btn-row{justify-content:stretch}
  .btn-row button, .btn-row .btn-ghost{width:100%; justify-content:center}
  select, input[type="month"]{width:100%}
}

/* PRINT */
@media print{
  .app-header, .toolbar, button, a { display:none !important; }
  body{ background:#fff; }
  .wrap{ max-width:none; padding:0; }
  .card{ box-shadow:none; border:none; }
  canvas{ display:none !important; }
  .grid{ grid-template-columns:1fr; }
  .panel.hide{ display:block !important; }
}
 .btn-sm{ padding:6px 8px; font-size:12px; border-radius:10px; }
   .in{ width:100%; padding:7px 8px; border:1px solid rgba(2,6,23,.12); border-radius:10px; font-size:13px; background:#fff; }
   .in.right{text-align:right;}

.brand-subtitle{max-width:520px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
@media(max-width:980px){.brand-subtitle{display:none;}}

#btnAddCompany{min-width:40px; font-size:18px; line-height:1; padding:6px 10px;}


/* ====== V4: Header compatto e toolbar ordinata ====== */
.app-header{ position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--line); }
.app-header .wrap{ padding:10px 16px; }
.header-row{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:12px;
}
.brand{ min-width: 280px; }
.brand-title{ line-height:1.1; }
.brand-subtitle{ line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width: 52vw; }
.header-actions{ display:flex; align-items:center; gap:10px; justify-content:flex-end; }

.toolbar{ background:#fff; border-bottom:1px solid var(--line); }
.toolbar .wrap{ padding:10px 16px; }
.toolbar-grid{
  display:grid;
  grid-template-columns: 320px 190px 1fr auto;
  gap:10px;
  align-items:end;
}
.tool-actions .btn-row{
  flex-wrap:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.tool-actions .btn-row > *{ flex:0 0 auto; }

@media(max-width:980px){
  .toolbar-grid{ grid-template-columns: 1fr 1fr; }
  .tool-actions{ grid-column: 1 / -1; }
  .tool-actions .btn-row{ flex-wrap:nowrap; overflow-x:auto; }
}
@media(max-width:760px){
  .header-row{ grid-template-columns: 1fr; }
  .brand-subtitle{ white-space:normal; max-width:100%; }
  .header-actions{ justify-content:flex-start; flex-wrap:wrap; }
  .toolbar-grid{ grid-template-columns: 1fr; }
}

/* --- V5 layout fixes --- */
.header-row{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:12px;
}
.header-actions{
  flex-wrap:nowrap;
}
@media (max-width: 820px){
  .header-row{ grid-template-columns: 1fr; }
  .header-actions{ flex-wrap:wrap; justify-content:flex-start; white-space:normal; }
  .brand{ max-width:100%; }
  .brand-subtitle{ display:none; }
}

/* Toolbar + buttons: keep horizontal, allow scroll instead of stacking */
.btn-row{
  flex-wrap:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.btn-row::-webkit-scrollbar{ display:none; }
.btn-row > *{ flex:0 0 auto; }
.toolbar-grid{ align-items:end; }
@media (max-width: 900px){
  .toolbar-grid{ grid-template-columns: 1fr; }
  .tool-actions .btn-row{ justify-content:flex-start; }
}

/* Grafici per settore (Annuale) */
.sector-charts{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.sector-chart{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.sector-chart canvas{ width:100%; }
@media (max-width: 760px){
  .sector-charts{ grid-template-columns: 1fr; }
}
