/* =====================================================================
   MOBILE E APP INSTALLATA — caricato per ultimo, rifinisce tutto il gestionale
   sul telefono senza toccare l'aspetto da computer.
   ===================================================================== */

/* I messaggi a comparsa (toast) non devono MAI intercettare i tocchi: sul telefono
   coprivano il pulsante "+ Nuovo" per qualche secondo dopo ogni salvataggio e
   sembrava che il gestionale si bloccasse. */
#toast-container, #toast-container .toast {pointer-events:none}
#toast-container {top:calc(12px + env(safe-area-inset-top))}

/* Dashboard: il riquadro dei compiti (con l'avviso dei ritardi) subito sotto il titolo */
#page-dashboard.active {grid-template-areas:'heading' 'compiti' 'actions' 'stats' 'charts' 'recent'}
#page-dashboard > .cmp-dash {grid-area:compiti;margin:0;min-width:0}

/* Pulsante "Installa l'app" nel menu e avviso in dashboard */
.app-installa-nav {display:none}
.app-installa-nav.visibile {display:flex}
.app-banner {display:none;align-items:center;gap:12px;background:var(--surface);border:1.5px solid var(--primary);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow)}
.app-banner.visibile {display:flex}
.app-banner img {width:44px;height:44px;border-radius:11px;flex:none;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.app-banner div {flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.app-banner strong {font-size:14px}
.app-banner span {font-size:12px;color:var(--text2)}
.app-banner .btn-chiudi {border:none;background:transparent;color:var(--text3);width:32px;height:32px;border-radius:8px;flex:none}
#page-dashboard > .app-banner {grid-area:banner}
#page-dashboard.active:has(> .app-banner.visibile) {grid-template-areas:'heading' 'banner' 'compiti' 'actions' 'stats' 'charts' 'recent'}
.ios-passi {display:flex;flex-direction:column;gap:12px;font-size:15px;line-height:1.45}
.ios-passi div {display:flex;gap:12px;align-items:flex-start}
.ios-passi b.n {flex:none;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}
.ios-passi i.fa-arrow-up-from-bracket {color:var(--primary)}

/* App aperta dall'icona (senza barra del browser): spazio per notch e barra di sistema */
@media (display-mode: standalone) {
  .topbar {padding-top:env(safe-area-inset-top);height:calc(var(--header-h) + env(safe-area-inset-top))}
  .sidebar {padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  body {overscroll-behavior-y:none}
}

/* Colonne che non devono allargarsi oltre lo schermo per colpa dei contenuti lunghi */
@media (max-width:1100px) {
  .eti-layout {grid-template-columns:minmax(0,1fr)!important}
  .ass-form-grid {grid-template-columns:minmax(0,1fr)!important}
}

/* =====================================================================
   TELEFONO
   ===================================================================== */
@media (max-width:768px) {
  #page-dashboard.active {grid-template-areas:'heading' 'compiti' 'actions' 'stats' 'charts' 'recent'}
  #page-dashboard.active:has(> .app-banner.visibile) {grid-template-areas:'heading' 'banner' 'compiti' 'actions' 'stats' 'charts' 'recent'}

  /* iPhone ingrandisce la pagina quando si tocca un campo con testo sotto i 16px */
  input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea, .form-control {font-size:16px!important}

  /* Pulsanti e campi comodi da toccare */
  .btn {min-height:40px}
  .btn-xs {min-height:36px;min-width:36px;justify-content:center}
  .modal-close {width:40px;height:40px}

  /* Schede (tab) su una sola riga che scorre di lato, invece di andare a capo su 3 righe */
  .tabs, .eti-tabs {display:flex;flex-wrap:nowrap!important;overflow-x:auto;width:100%!important;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .tabs::-webkit-scrollbar {display:none}
  .tab-btn {flex:none;white-space:nowrap;scroll-snap-align:start}

  /* Finestre a foglio dal basso: spazio per la barra di sistema dell'iPhone */
  .modal-footer {padding-bottom:calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:8px}
  .modal-footer .btn {flex:1 1 auto;justify-content:center}
  .ass-det-footer .btn {flex:1 1 calc(50% - 8px)}
  .modal-body {padding:16px}

  /* Ricerche dentro le pagine a tutta larghezza (quella della barra in alto è nascosta) */
  .content .topbar-search {flex:1 1 100%!important;max-width:none!important;min-width:0!important}
  .content .topbar-search input {width:100%}
  .table-card-header {flex-wrap:wrap}

  /* Barra dei filtri */
  .filters-bar > * {min-width:0}
  .filters-bar label {flex:none}
  .filters-bar input[type=date] {flex:1 1 140px;width:auto!important}

  /* ---------- Tabelle trasformate in schede (vedi mobile.js) ---------- */
  .table-wrap:has(table.tab-card) {overflow:visible;background:var(--surface2);padding:2px 0}
  table.tab-card, table.tab-card > tbody {display:block;width:100%}
  table.tab-card > thead {display:none}
  table.tab-card > tbody > tr {display:block;position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 14px;margin:10px;box-shadow:0 1px 3px rgba(15,23,42,.06);animation:none}
  table.tab-card > tbody > tr > td {display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:5px 0!important;border:none!important;background:transparent!important;box-shadow:none!important;white-space:normal!important;text-align:right;font-size:14px;overflow-wrap:anywhere}
  table.tab-card > tbody > tr > td::before {content:attr(data-label);flex:0 0 36%;max-width:36%;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text3);padding-top:3px;overflow-wrap:normal}
  table.tab-card > tbody > tr > td > * {min-width:0}
  table.tab-card td div {max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
  table.tab-card > tbody > tr > td.tc-titolo {display:block;text-align:left;font-size:15px;padding:0 44px 8px 0!important;margin-bottom:4px;border-bottom:1px solid var(--border)!important}
  table.tab-card > tbody > tr > td.tc-titolo::before {display:none}
  table.tab-card > tbody > tr > td.tc-lato {position:absolute;top:10px;right:12px;padding:0!important;display:block}
  table.tab-card > tbody > tr > td.tc-lato::before {display:none}
  table.tab-card > tbody > tr > td.tc-azioni {justify-content:flex-end;flex-wrap:wrap;gap:6px;padding-top:10px!important;margin-top:4px;border-top:1px solid var(--border)!important}
  table.tab-card > tbody > tr > td.tc-azioni::before {display:none}
  table.tab-card > tbody > tr > td.tc-azioni .btn {min-height:40px;min-width:40px}
  table.tab-card > tbody > tr > td.tc-piena {display:block;text-align:center;padding:14px 0!important}
  table.tab-card > tbody > tr > td.tc-piena::before {display:none}
  table.tab-card > tbody > tr:has(> td.tc-piena:only-child) {box-shadow:none;background:transparent;border-style:dashed}
  table.tab-card > tbody > tr > td[data-label=""]::before {display:none}
  table.tab-card > tbody > tr:hover > td {background:transparent!important;box-shadow:none!important}
  table.tab-card > tbody > tr[onclick] {cursor:pointer}
  table.tab-card > tbody > tr:active {background:var(--primary-light)}
  table.tab-card .ass-riga-ritardo td:first-child, table.tab-card tr.ass-riga-ritardo {box-shadow:inset 4px 0 0 #dc2626}

  /* Righe della ricevuta in cassa: descrizione in alto, quantità e prezzo affiancati */
  table.eti-righe.tab-card > tbody > tr {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'desc desc' 'qta prezzo' 'az az';column-gap:12px}
  table.eti-righe.tab-card > tbody > tr > td {display:block;text-align:left}
  table.eti-righe.tab-card > tbody > tr > td::before {display:block;max-width:none;margin-bottom:4px}
  table.eti-righe.tab-card > tbody > tr > td:nth-child(1) {grid-area:qta;border-bottom:none!important;padding:5px 0!important;font-size:14px;margin:0}
  table.eti-righe.tab-card > tbody > tr > td:nth-child(2) {grid-area:desc;min-width:0!important;padding-right:0!important;border-bottom:none!important}
  table.eti-righe.tab-card > tbody > tr > td:nth-child(2)::before {display:none}
  table.eti-righe.tab-card > tbody > tr > td:nth-child(3) {grid-area:prezzo}
  table.eti-righe.tab-card > tbody > tr > td:nth-child(4) {grid-area:az;display:flex}
  table.eti-righe.tab-card > tbody > tr > td.tc-piena {grid-column:1/-1}
  .eti-riga-extra {grid-template-columns:1fr!important}

  /* Cassa ed etichette */
  .eti-preset-grid {max-height:none;padding:12px}
  .eti-preset-lista {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .eti-manuale-row {grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .eti-manuale-row > input:first-child {grid-column:1/-1}
  .eti-filtri {padding:10px 12px 0}
  .eti-preview-wrap {max-height:none}

  /* Valutazioni, riparazioni, compiti */
  .ass-marca {flex:1 1 calc(50% - 10px);min-width:0;padding:12px}
  .ass-modelli {grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
  .ass-opzioni-grandi {grid-template-columns:repeat(2,minmax(0,1fr))}
  .ass-check-grid {grid-template-columns:minmax(0,1fr)}
  .ass-passo small {font-size:10px}
  .cmp-card {padding:12px}
  .cmp-check {width:36px;height:36px}

  /* Dashboard: elenco compiti */
  .cmp-dash-card .table-card-header {gap:8px}
  .cmp-dash-card .table-card-header h3 {flex:1 1 100%}
  .cmp-dash-num {flex:1}

  /* Grafici e tabelle in Analisi */
  .chart-card table {font-size:13px}
}

@media (max-width:340px) {
  .eti-preset-lista {grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:400px) {
  .ass-opzioni-grandi, .ass-modelli {grid-template-columns:minmax(0,1fr)}
  table.tab-card > tbody > tr {margin:8px}
  table.tab-card > tbody > tr > td::before {flex-basis:40%;max-width:40%}
}
