﻿/* Cassa, servizi, backup, health check
   Estratto da assets/style.css per rendere il progetto piu manutenibile. */

/* V5.20 - Cassa: pulsanti + / - quantità e moltiplicatore barcode */
.qty-stepper{
  display:grid;
  grid-template-columns:44px minmax(64px,1fr) 44px;
  gap:6px;
  align-items:center;
  max-width:190px;
}
.qty-stepper input{
  text-align:center;
  font-size:17px!important;
  font-weight:1000!important;
  height:44px!important;
  min-height:44px!important;
  padding-left:6px!important;
  padding-right:6px!important;
}
.qty-btn{
  min-width:44px!important;
  width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  font-size:24px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.qty-btn:hover{
  transform:translateY(-1px) scale(1.04)!important;
}
.scan input,
#barcode{
  font-weight:900!important;
}
@media(max-width:650px){
  .qty-stepper{
    max-width:none;
    grid-template-columns:46px 1fr 46px;
  }
}


/* V5.21 - rende visibili i pulsanti quantità nella riga carrello */
.cart-line-qty{
  min-width:170px;
}
.cart-line-qty .qty-stepper{
  display:grid !important;
  grid-template-columns:42px minmax(58px,76px) 42px !important;
  gap:6px !important;
  align-items:center !important;
}
.cart-line-qty .qty-stepper input{
  height:42px !important;
  min-height:42px !important;
  text-align:center !important;
  font-size:16px !important;
  font-weight:1000 !important;
  padding:4px !important;
}
.cart-line-qty .qty-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:42px !important;
  width:42px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 !important;
  border-radius:12px !important;
  font-size:24px !important;
  font-weight:1000 !important;
  line-height:1 !important;
}
.cart-line-qty .carton-note{
  display:block;
  margin-top:5px;
  color:#64748b;
  font-weight:800;
  text-align:center;
}
@media(max-width:900px){
  .cart-line{
    grid-template-columns:1fr !important;
  }
  .cart-line-qty{
    min-width:0;
    width:100%;
  }
  .cart-line-qty .qty-stepper{
    grid-template-columns:48px 1fr 48px !important;
  }
}


/* V5.22 - Cassa: quantità in colonna pulita, senza sovrapporsi al totale */
.cashier-cart-list{
  gap:8px !important;
}
.cart-line{
  grid-template-columns:minmax(240px,1fr) 92px 198px 128px 96px !important;
  gap:14px !important;
  align-items:center !important;
}
.cart-line-head{
  padding:8px 12px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#64748b;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cart-line-head:hover{
  transform:none !important;
  box-shadow:none !important;
}
.cart-line-price{
  text-align:right;
  font-weight:800;
  white-space:nowrap;
}
.cart-line-total{
  min-width:128px;
  text-align:left;
  white-space:nowrap;
}
.cart-line-qty{
  min-width:198px !important;
  width:198px !important;
}
.cart-line-qty .qty-stepper{
  width:198px !important;
  max-width:198px !important;
  display:grid !important;
  grid-template-columns:48px 82px 48px !important;
  gap:10px !important;
  align-items:center !important;
  justify-content:center !important;
}
.cart-line-qty .qty-stepper input{
  width:82px !important;
  height:46px !important;
  min-height:46px !important;
  border-radius:14px !important;
  text-align:center !important;
  font-size:18px !important;
  font-weight:1000 !important;
}
.cart-line-qty .qty-btn{
  width:48px !important;
  min-width:48px !important;
  height:46px !important;
  min-height:46px !important;
  border-radius:14px !important;
  font-size:26px !important;
  font-weight:1000 !important;
}
.cart-line button:last-child{
  min-width:96px !important;
}

/* Se lo spazio è poco, la riga diventa ordinata su due righe invece di schiacciare tutto */
@media(max-width:1250px){
  .cart-line{
    grid-template-columns:minmax(220px,1fr) 90px 198px 128px 96px !important;
    gap:10px !important;
  }
}
@media(max-width:980px){
  .cart-line{
    grid-template-columns:1fr 120px 104px !important;
  }
  .cart-line-head{
    display:none !important;
  }
  .cart-line-main{
    grid-column:1 / -1;
  }
  .cart-line-price::before{
    content:"Prezzo";
    display:block;
    font-size:11px;
    color:#64748b;
    text-align:left;
    font-weight:900;
    text-transform:uppercase;
  }
  .cart-line-qty{
    width:198px !important;
    min-width:198px !important;
  }
  .cart-line-total::before{
    content:"Totale";
    display:block;
    font-size:11px;
    color:#64748b;
    font-weight:900;
    text-transform:uppercase;
  }
}


/* V5.23 - Cassa più pulita: colonna Utile separata e quantità compatta */
.cart-line{
  grid-template-columns:minmax(260px,1fr) 96px 154px 118px 110px 104px !important;
  gap:12px !important;
  align-items:center !important;
}
.cart-line-head{
  grid-template-columns:minmax(260px,1fr) 96px 154px 118px 110px 104px !important;
}
.cart-line-price,
.cart-line-total,
.cart-line-profit{
  text-align:right !important;
  white-space:nowrap !important;
}
.cart-line-total b{
  font-size:16px !important;
  font-weight:1000 !important;
  color:#0f172a !important;
}
.cart-line-profit{
  border-radius:14px;
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  padding:9px 10px;
}
.cart-line-profit b{
  display:block;
  color:#047857 !important;
  font-size:15px !important;
  font-weight:1000 !important;
}
.cart-line-profit::before{
  content:"";
}
.cart-line-qty{
  min-width:154px !important;
  width:154px !important;
}
.cart-line-qty .qty-stepper{
  width:154px !important;
  max-width:154px !important;
  display:grid !important;
  grid-template-columns:40px 62px 40px !important;
  gap:6px !important;
  align-items:center !important;
  justify-content:center !important;
}
.cart-line-qty .qty-stepper input{
  width:62px !important;
  height:42px !important;
  min-height:42px !important;
  border-radius:13px !important;
  text-align:center !important;
  font-size:18px !important;
  font-weight:1000 !important;
  padding:2px !important;
}
.cart-line-qty .qty-btn{
  width:40px !important;
  min-width:40px !important;
  height:42px !important;
  min-height:42px !important;
  border-radius:13px !important;
  font-size:23px !important;
  font-weight:1000 !important;
  padding:0 !important;
}
.cart-remove-btn{
  min-width:104px !important;
}
.cart-line-total small{
  display:none !important;
}

/* Quando la finestra è più stretta, non schiaccia: divide la riga in modo ordinato */
@media(max-width:1250px){
  .cart-line,
  .cart-line-head{
    grid-template-columns:minmax(230px,1fr) 88px 154px 110px 100px 100px !important;
    gap:10px !important;
  }
}
@media(max-width:980px){
  .cart-line{
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .cart-line-head{
    display:none !important;
  }
  .cart-line-main{
    grid-column:1 / -1 !important;
  }
  .cart-line-price,
  .cart-line-total,
  .cart-line-profit{
    text-align:left !important;
  }
  .cart-line-price::before,
  .cart-line-total::before,
  .cart-line-profit::before{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    color:#64748b;
    font-weight:1000;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .cart-line-price::before{content:"Prezzo";}
  .cart-line-total::before{content:"Totale";}
  .cart-line-profit::before{content:"Utile";}
  .cart-line-qty{
    width:100% !important;
    min-width:0 !important;
  }
  .cart-line-qty::before{
    content:"Quantità";
    display:block;
    margin-bottom:4px;
    font-size:11px;
    color:#64748b;
    font-weight:1000;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .cart-line-qty .qty-stepper{
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:44px 1fr 44px !important;
  }
  .cart-line-qty .qty-stepper input{
    width:100% !important;
  }
  .cart-remove-btn{
    width:100% !important;
    min-width:0 !important;
  }
}


/* V5.24 - Cassa: riga carrello stile tabella, colonne vere e pulite */
.cart-table-clean{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
}

/* Griglia finale:
   Prodotto | Prezzo | Quantità | Totale | Utile | Azione */
.cart-table-clean .cart-line,
.cart-table-clean .cart-line-head{
  display:grid !important;
  grid-template-columns:minmax(300px, 1fr) 110px 150px 135px 135px 120px !important;
  column-gap:18px !important;
  align-items:center !important;
}

.cart-table-clean .cart-line-head{
  padding:0 18px 8px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:1000 !important;
  text-transform:uppercase !important;
  letter-spacing:.05em !important;
}

.cart-table-clean .cart-line{
  min-height:76px !important;
  padding:14px 18px !important;
  border:1px solid #d7e1ee !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(15,23,42,.05) !important;
}

.cart-table-clean .cart-line-main{
  min-width:0 !important;
}
.cart-table-clean .cart-line-main b{
  display:block !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:17px !important;
}
.cart-table-clean .cart-line-main small{
  display:block !important;
  margin-top:4px !important;
  color:#64748b !important;
  font-weight:700 !important;
}

.cart-table-clean .cart-line-price{
  text-align:right !important;
  white-space:nowrap !important;
  font-size:16px !important;
  font-weight:1000 !important;
}

.cart-table-clean .cart-line-qty{
  width:150px !important;
  min-width:150px !important;
  justify-self:center !important;
}
.cart-table-clean .cart-line-qty .qty-stepper{
  display:grid !important;
  grid-template-columns:38px 58px 38px !important;
  gap:8px !important;
  align-items:center !important;
  justify-content:center !important;
  width:150px !important;
  max-width:150px !important;
}
.cart-table-clean .cart-line-qty .qty-btn{
  width:38px !important;
  min-width:38px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 !important;
  border-radius:13px !important;
  border:2px solid #cbd5e1 !important;
  background:#fff !important;
  color:#0f172a !important;
  font-size:22px !important;
  font-weight:1000 !important;
  line-height:1 !important;
  box-shadow:none !important;
}
.cart-table-clean .cart-line-qty .qty-btn:hover{
  border-color:#0f172a !important;
  background:#f8fafc !important;
  transform:none !important;
}
.cart-table-clean .cart-line-qty .qty-input{
  width:58px !important;
  min-width:58px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 !important;
  border-radius:13px !important;
  border:2px solid #cbd5e1 !important;
  background:#fff !important;
  text-align:center !important;
  font-size:18px !important;
  font-weight:1000 !important;
  color:#0f172a !important;
}

.cart-table-clean .cart-line-total,
.cart-table-clean .cart-line-profit{
  width:135px !important;
  min-width:135px !important;
  justify-self:end !important;
  border-radius:16px !important;
  padding:9px 12px !important;
  text-align:right !important;
  white-space:nowrap !important;
}
.cart-table-clean .cart-line-total{
  background:#f8fafc !important;
  border:1px solid #e2e8f0 !important;
}
.cart-table-clean .cart-line-profit{
  background:#ecfdf5 !important;
  border:1px solid #bbf7d0 !important;
}
.cart-table-clean .cart-line-total span,
.cart-table-clean .cart-line-profit span{
  display:none !important;
}
.cart-table-clean .cart-line-total b,
.cart-table-clean .cart-line-profit b{
  display:block !important;
  font-size:16px !important;
  font-weight:1000 !important;
  line-height:1.1 !important;
}
.cart-table-clean .cart-line-total b{
  color:#0f172a !important;
}
.cart-table-clean .cart-line-profit b{
  color:#047857 !important;
}

.cart-table-clean .cart-remove-btn{
  justify-self:end !important;
  width:120px !important;
  min-width:120px !important;
  height:46px !important;
  min-height:46px !important;
  padding:0 14px !important;
  border-radius:15px !important;
  font-size:15px !important;
  font-weight:1000 !important;
}

/* Desktop medio: riduce spazi ma resta ordinato */
@media(max-width:1350px){
  .cart-table-clean .cart-line,
  .cart-table-clean .cart-line-head{
    grid-template-columns:minmax(260px, 1fr) 92px 142px 118px 118px 108px !important;
    column-gap:12px !important;
  }
  .cart-table-clean .cart-line-qty,
  .cart-table-clean .cart-line-qty .qty-stepper{
    width:142px !important;
    max-width:142px !important;
    grid-template-columns:36px 58px 36px !important;
    gap:6px !important;
  }
  .cart-table-clean .cart-line-total,
  .cart-table-clean .cart-line-profit{
    width:118px !important;
    min-width:118px !important;
  }
  .cart-table-clean .cart-remove-btn{
    width:108px !important;
    min-width:108px !important;
  }
}

/* Mobile/tablet: diventa card a due colonne, senza sovrapposizioni */
@media(max-width:980px){
  .cart-table-clean .cart-line-head{
    display:none !important;
  }
  .cart-table-clean .cart-line{
    grid-template-columns:1fr 1fr !important;
    row-gap:12px !important;
    column-gap:12px !important;
    padding:16px !important;
  }
  .cart-table-clean .cart-line-main{
    grid-column:1 / -1 !important;
  }
  .cart-table-clean .cart-line-price,
  .cart-table-clean .cart-line-qty,
  .cart-table-clean .cart-line-total,
  .cart-table-clean .cart-line-profit,
  .cart-table-clean .cart-remove-btn{
    width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    text-align:left !important;
  }
  .cart-table-clean .cart-line-price::before,
  .cart-table-clean .cart-line-qty::before,
  .cart-table-clean .cart-line-total span,
  .cart-table-clean .cart-line-profit span{
    display:block !important;
    margin-bottom:5px !important;
    color:#64748b !important;
    font-size:11px !important;
    font-weight:1000 !important;
    text-transform:uppercase !important;
    letter-spacing:.05em !important;
  }
  .cart-table-clean .cart-line-price::before{content:"Prezzo";}
  .cart-table-clean .cart-line-qty::before{content:"Quantità";}
  .cart-table-clean .cart-line-qty .qty-stepper{
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:44px 1fr 44px !important;
  }
  .cart-table-clean .cart-line-qty .qty-input{
    width:100% !important;
  }
  .cart-table-clean .cart-remove-btn{
    grid-column:1 / -1 !important;
  }
}


/* V5.25 - movimenti eliminati/non conteggiati */
.movement-deleted-note{
  border:1px solid #fecaca;
  background:#fef2f2;
  color:#991b1b;
  border-radius:14px;
  padding:10px 12px;
  font-weight:800;
}


/* V5.27 - stati attivo/disattivato/esaurito e focus scanner */
.badge.good{
  background:#dcfce7!important;
  color:#166534!important;
}
.badge.danger{
  background:#fee2e2!important;
  color:#991b1b!important;
}
.badge.muted{
  background:#e2e8f0!important;
  color:#475569!important;
}
button:disabled,
button[disabled]{
  opacity:.45!important;
  cursor:not-allowed!important;
  filter:grayscale(.25);
}
#barcode:focus{
  border-color:#10b981!important;
  box-shadow:0 0 0 4px rgba(16,185,129,.18)!important;
}


/* V5.28 - Servizi disattivati e pulsante Riattiva */
.item:has(.badge.muted){
  background:#f8fafc;
  opacity:.86;
}
.item:has(.badge.muted) .toolbar{
  filter:grayscale(.25);
}
.badge.good{
  background:#dcfce7!important;
  color:#166534!important;
}
.badge.muted{
  background:#e2e8f0!important;
  color:#475569!important;
}
button[disabled],
input[disabled]{
  opacity:.45!important;
  cursor:not-allowed!important;
}


/* V5.29 - Servizi/Giochi: barra ricerca e modifica */
.service-search-bar{
  margin-top:16px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto auto;
  gap:10px;
  align-items:center;
}
.service-list{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.service-row{
  border:1px solid #dbe4f0;
  background:#fff;
}
.service-row.service-inactive{
  background:#f8fafc;
  opacity:.82;
}
.service-row-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
}
.service-money-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.service-money-buttons input{
  max-width:210px;
}
.editing-service-card{
  border:3px solid #0f172a!important;
  box-shadow:0 14px 34px rgba(15,23,42,.14)!important;
}
.editing-service-card h2{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
@media(max-width:850px){
  .service-search-bar{
    grid-template-columns:1fr;
  }
  .service-row .row{
    align-items:flex-start;
  }
  .service-row-actions{
    justify-content:flex-start;
    margin-top:8px;
  }
}


/* V5.30 - Importo libero Servizi/Giochi */
.free-amount-box{
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  gap:8px;
  width:100%;
  max-width:360px;
  align-items:center;
}
.free-amount-box input{
  min-height:40px;
  border:2px solid #cbd5e1;
  border-radius:12px;
  padding:8px 10px;
  font-weight:800;
}
.free-amount-box input:focus{
  outline:none;
  border-color:#0f172a;
  box-shadow:0 0 0 3px rgba(15,23,42,.12);
}
.free-amount-box button{
  min-height:40px;
  border-radius:12px;
  padding:8px 12px;
  font-weight:900;
}
.service-money-buttons{
  align-items:center;
}
@media(max-width:700px){
  .free-amount-box{
    grid-template-columns:1fr;
    max-width:none;
  }
}


/* V5.31 - Lettore barcode globale */
.global-barcode-hint{
  border:1px solid #bbf7d0;
  background:#ecfdf5;
  color:#166534;
  border-radius:14px;
  padding:9px 12px;
  font-weight:800;
  font-size:13px;
}
#barcode{
  border-color:#10b981!important;
}
#barcode:focus{
  border-color:#059669!important;
  box-shadow:0 0 0 4px rgba(16,185,129,.20)!important;
}


/* V5.33 - Resi, backup, login/logout, controllo sistema */
.logout-btn{
  border:2px solid #cbd5e1!important;
  background:#fff!important;
  color:#0f172a!important;
}
.logout-btn:hover{
  border-color:#ef4444!important;
  color:#991b1b!important;
  background:#fef2f2!important;
}
.success-box{
  margin:12px 0;
  border:1px solid #bbf7d0;
  background:#ecfdf5;
  color:#166534;
  border-radius:16px;
  padding:12px;
  font-weight:800;
}
.return-preview{
  margin-top:14px;
  border:1px solid #dbeafe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:16px;
  padding:14px;
}
.health-summary{
  margin-top:12px;
  border-radius:16px;
  padding:12px;
  font-weight:900;
}
.health-summary.ok{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}
.health-summary.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.health-summary.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.health-list{
  margin-top:12px;
  display:grid;
  gap:8px;
}
.health-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-radius:14px;
  padding:10px 12px;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  font-size:13px;
}
.health-row.ok{background:#f8fafc}
.health-row.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.health-row.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.backup-list{
  margin-top:12px;
  display:grid;
  gap:8px;
}
.notice{
  margin:10px 0;
  border:1px solid #dbeafe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:14px;
  padding:11px 12px;
  font-weight:800;
}
.notice.good{
  background:#ecfdf5;
  color:#166534;
  border-color:#bbf7d0;
}
.notice.warn{
  background:#fffbeb;
  color:#92400e;
  border-color:#fde68a;
}
.backup-auto-card{
  margin:12px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border-radius:16px;
  padding:12px;
  border:1px solid #dbe3ef;
  background:#f8fafc;
}
.backup-auto-card b,
.backup-auto-card span,
.backup-auto-card small{
  display:block;
}
.backup-auto-card span{
  margin-top:3px;
  font-weight:800;
}
.backup-auto-card small{
  margin-top:4px;
  color:#64748b;
}
.backup-auto-card.ok{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}
.backup-auto-card.warn{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e;
}
.backup-auto-card.disabled{
  background:#f1f5f9;
  border-color:#cbd5e1;
  color:#475569;
}
.self-test-score{
  margin-top:12px;
  border-radius:16px;
  padding:14px;
  border:1px solid #dbe3ef;
  background:#f8fafc;
}
.self-test-score b,
.self-test-score span{
  display:block;
}
.self-test-score b{
  font-size:22px;
}
.self-test-score span{
  margin-top:4px;
  color:#475569;
  font-weight:800;
}
.self-test-score.ok{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}
.self-test-score.warn{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e;
}
.self-test-score.error{
  background:#fef2f2;
  border-color:#fecaca;
  color:#991b1b;
}
.self-test-groups{
  margin-top:12px;
  display:grid;
  gap:12px;
}
.self-test-group{
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
}
.self-test-group h3{
  margin:0 0 8px;
  font-size:16px;
}
.restore-table-list{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.restore-table-list span{
  border:1px solid #cbd5e1;
  border-radius:999px;
  padding:4px 8px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:900;
}
@media(max-width:800px){
  .health-row{display:block}
  .backup-auto-card{display:block}
  .backup-auto-card button{margin-top:10px;width:100%}
}


