/* Stili propri dell'area «hr-warehouse» nel restyling come HubLEM (docs/restyle). */

/* =========================================================================
   Comuni dell'area: pagine telefono, card desktop, moduli in finestra
   ========================================================================= */
.min-w-0 { min-width: 0; }

/* Sul telefono la testata colorata sostituisce titolo e briciole di pane. */
@media (max-width: 767.98px) {
  .app-content:has(.hw-phone-page) .app-page-header,
  .app-content:has(.hw-phone-page) .breadcrumb,
  .app-content:has(.hw-phone-page) nav[aria-label="breadcrumb"] { display: none !important; }
}

/* Card bianche con bordo spesso (desktop-card di HubLEM). */
.hw-card { background: #fff; border: 2px solid #e5e7eb; border-radius: .9rem; transition: box-shadow .2s; min-width: 0; }
.hw-card:hover { box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .15); }
.hw-card.is-muted { opacity: .7; }
.hw-card--pad { padding: 1.25rem; }
.hw-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; padding: 1rem 1.25rem .8rem; border-bottom: 1px solid #e5e7eb; }
.hw-card__head--gray { background: #f9fafb; border-radius: .8rem .8rem 0 0; }
.hw-card__body { padding: 1rem 1.25rem 1.25rem; }
.hw-card__title { display: block; font-size: 1.1rem; font-weight: 700; color: #111827; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hw-card__title:hover { text-decoration: underline; color: #111827; }
.hw-card__title--sm { font-size: .9rem; }
.hw-card__sub { font-size: .82rem; color: #6b7280; }
.hw-card__ident { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.hw-card__square { flex: 0 0 3rem; width: 3rem; height: 3rem; border-radius: .6rem; background: #f3f4f6; color: #374151; display: grid; place-items: center; font-size: 1.4rem; }
.hw-card__icons { display: flex; gap: .15rem; flex-shrink: 0; }
.hw-card__icons form { margin: 0; }
.hw-card__actions { display: flex; gap: .5rem; padding: 0 1.25rem 1.25rem; }
.hw-card__actions > * { flex: 1 1 auto; }
.hw-card__actions form { margin: 0; flex: 0 0 auto; }

.hw-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1199.98px) { .hw-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Righe colorate «Quantità» / «Prezzo Med.» / «Valore Totale». */
.hw-lines { display: grid; gap: .75rem; }
.hw-line { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .7rem .8rem; border-radius: .5rem; font-size: .85rem; color: #374151; }
.hw-line strong { font-size: 1.15rem; font-weight: 700; white-space: nowrap; }
.hw-line--blue { background: #eff6ff; } .hw-line--blue strong { color: #1e3a8a; }
.hw-line--purple { background: #faf5ff; } .hw-line--purple strong { color: #581c87; font-size: 1.05rem; }
.hw-line--green { background: #f0fdf4; } .hw-line--green strong { color: #14532d; }
.hw-line--green-strong { background: #dcfce7; border: 1px solid #86efac; color: #166534; font-weight: 600; } .hw-line--green-strong strong { color: #14532d; }
.hw-line--orange { background: #fff7ed; } .hw-line--orange strong { color: #7c2d12; }
.hw-line--red { background: #fef2f2; } .hw-line--red strong { color: #7f1d1d; }
.hw-line--gray { background: #f9fafb; } .hw-line--gray strong { color: #111827; }

/* Mini-card articolo dentro la card dell'operatore (Giacenze Operatori). */
.hw-mini { border: 1px solid #e5e7eb; border-radius: .75rem; padding: .85rem; background: #fff; min-width: 0; }
.hw-mini__head { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; margin-bottom: .6rem; }
.hw-mini__title { display: block; font-weight: 600; color: #111827; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hw-mini .hw-lines { gap: .5rem; }
.hw-mini .hw-line { padding: .5rem .65rem; }
.hw-mini .hw-line strong { font-size: .95rem; }

/* Riquadro «In Magazzino» / «Non in Stock» del catalogo. */
.hw-stockbox { border: 1px solid #e5e7eb; background: #f9fafb; border-radius: .6rem; padding: .7rem; text-align: center; color: #4b5563; }
.hw-stockbox small { display: block; font-size: .72rem; font-weight: 600; }
.hw-stockbox strong { display: block; font-size: 1.15rem; font-weight: 700; color: #374151; }
.hw-stockbox--green { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }
.hw-stockbox--green strong { color: #14532d; }

/* Elenco vuoto come HubLEM: icona grigia e una frase. */
.hw-empty { background: #fff; border: 2px solid #e5e7eb; border-radius: .9rem; padding: 3rem 1rem; text-align: center; color: #6b7280; }
.hw-empty .bi { font-size: 3.5rem; color: #d1d5db; display: block; margin-bottom: 1rem; }
.hw-empty p { margin: 0; }
.hw-empty strong { display: block; color: #4b5563; font-size: 1.05rem; }

/* Barra ricerca + pulsanti sotto le statistiche. */
.hw-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.hw-toolbar__search { position: relative; flex: 1 1 18rem; margin: 0; }
.hw-toolbar__search .bi { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: #9ca3af; }
.hw-toolbar__search .form-control { padding-left: 2.3rem; }
.hw-toolbar__buttons, .hw-toolbar__row { display: flex; flex-wrap: wrap; gap: .5rem; }
.hw-toolbar__row { margin-bottom: 1.25rem; }
.hw-btn-soft-orange { background: #fff7ed !important; border-color: #fed7aa !important; color: #c2410c !important; }
.hw-btn-soft-orange:hover { background: #ffedd5 !important; }
.hw-btn-soft-indigo { background: #eef2ff; border: 1px solid #c7d2fe; color: #4338ca; }
.hw-btn-soft-indigo:hover { background: #e0e7ff; color: #4338ca; }
.hw-btn-soft-green { background: #f0fdf4; border: 1px solid #bbf7d0; color: #15803d; }
.hw-btn-soft-green:hover { background: #dcfce7; color: #15803d; }

/* Pulsanti dei dialog: «Annulla» / azione nera a destra. */
.hw-dialog-actions { justify-content: flex-end; gap: .75rem; padding-top: 1rem; }

/* Moduli: in finestra (desktop) i blocchi numerati del telefono diventano
   semplici gruppi di campi come i dialog di HubLEM. */
@media (min-width: 768px) {
  .hw-form .hub-step { border: 0; box-shadow: none; padding: 0; margin-bottom: 1rem; background: transparent; border-radius: 0; }
  .hw-form .hub-step > .hub-step__label { display: none; }
}
@media (max-width: 767.98px) {
  /* Un solo campo nel blocco: l'etichetta numerata basta. */
  .hw-form .hub-step > .hub-step__label + div:last-child > .form-label { display: none; }
  .hw-form .hub-step .form-control, .hw-form .hub-step .form-select { min-height: 3rem; border-radius: .9rem; }
  .hw-form .hub-mbar { margin: 0 -.75rem; padding-left: .75rem; padding-right: .75rem; }
}

/* =========================================================================
   Telefono: tasti rapidi, barre sfumate, ricerca, card
   ========================================================================= */
.hw-mtiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: 1.25rem 0 1rem; }
.hw-mtiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.hw-mtiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hw-mtile { display: flex; flex-direction: column; align-items: center; gap: .25rem; background: #fff; border: 1px solid #f3f4f6; border-radius: 1rem; padding: .75rem .25rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .08); text-decoration: none; color: #111827; }
.hw-mtile .bi { font-size: 1.6rem; }
.hw-mtile span { font-size: .6rem; font-weight: 900; }
.hw-mtile:active { transform: scale(.95); }
.hw-mtile.is-colored { color: #fff; border: 0; }
.hw-mbar-btn { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; border-radius: 1rem; padding: 1rem; margin-bottom: .75rem; color: #fff; font-weight: 900; font-size: .85rem; text-decoration: none; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .12); border: 0; }
.hw-mbar-btn:hover, .hw-mbar-btn:focus { color: #fff; }
.hw-mbar-btn .bi { font-size: 1.3rem; }
.hw-msearch { display: flex; align-items: center; gap: .75rem; background: #fff; border: 1px solid #f3f4f6; border-radius: 1rem; padding: .75rem; margin: .5rem 0 1rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .07); }
.hw-msearch .bi { color: #9ca3af; }
.hw-msearch input { flex: 1 1 auto; border: 0; outline: 0; background: transparent; font-size: .9rem; font-weight: 600; min-width: 0; }
.hw-mcard { border-color: #f3f4f6; }
.hw-mcard .hub-mcard__box small + strong + small { font-size: .6rem; font-weight: 600; }
.hw-band { border-radius: 1rem; padding: .9rem 1rem; color: #fff; margin-bottom: .75rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .12); }
.hw-band small { display: block; font-size: .7rem; font-weight: 700; opacity: .85; }
.hw-band strong { display: block; font-size: 1.4rem; font-weight: 900; }
.hw-msection { font-size: .8rem; font-weight: 900; color: #374151; margin: 1.25rem 0 .75rem; display: flex; align-items: center; gap: .5rem; }
.hw-avatar { color: #fff; font-weight: 900; font-size: 1.1rem; }

/* =========================================================================
   Storico movimenti (finestra «Storico Movimenti Magazzino»)
   ========================================================================= */
.hw-movfilters { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; padding-bottom: 1rem; border-bottom: 1px solid #e5e7eb; margin-bottom: 1rem; }
.hw-movfilters .form-label { font-size: .72rem; margin-bottom: .2rem; }
.hw-movfilters__more { grid-column: 1 / -1; margin: 0 !important; }
@media (max-width: 991.98px) { .hw-movfilters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hw-movcount { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; font-size: .85rem; color: #4b5563; }
.hw-movlist { display: grid; gap: .75rem; }
.hw-mov { border: 1px solid #e5e7eb; border-radius: .75rem; padding: .85rem 1rem; background: #fff; }
.hw-mov:hover { background: #f9fafb; }
.hw-mov__head { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; }
.hw-mov__head form { margin: 0; }
.hw-mov__item { font-weight: 700; color: #111827; text-decoration: none; }
.hw-mov__date { font-size: .8rem; color: #6b7280; }
.hw-mov__fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem 1rem; margin: .6rem 0 0; font-size: .8rem; }
.hw-mov__fields > div { display: flex; gap: .3rem; min-width: 0; }
.hw-mov__fields dt { font-weight: 500; color: #6b7280; }
.hw-mov__fields dd { margin: 0; font-weight: 600; color: #111827; overflow-wrap: anywhere; }
@media (max-width: 767.98px) { .hw-mov__fields { grid-template-columns: 1fr; } }
.hw-mov__notes { font-size: .8rem; color: #4b5563; margin-top: .4rem; }
.hw-mov--green { border-left: 4px solid #22c55e; }
.hw-mov--orange { border-left: 4px solid #f97316; }
.hw-mov--blue { border-left: 4px solid #3b82f6; }
.hw-kind { width: 2.25rem; height: 2.25rem; border-radius: .7rem; display: grid; place-items: center; color: #fff; flex: 0 0 2.25rem; }

/* =========================================================================
   Ordini di materiale: «Ordini da Evadere», assegnazione, carrello
   ========================================================================= */
.hw-orders-box { border: 2px solid #fed7aa; background: #fff7ed; border-radius: .9rem; padding: 1.25rem; }
.hw-orders-box__title { font-size: 1.05rem; font-weight: 700; color: #9a3412; display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.hw-orders { display: grid; gap: .75rem; }
.hw-order { background: #fff; border: 1px solid #fed7aa; border-radius: .75rem; padding: 1rem; }
.hw-order-lines { background: #f9fafb; border-radius: .6rem; padding: .6rem .75rem; }
.hw-order-line { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-size: .85rem; padding: .2rem 0; }
.hw-order-line + .hw-order-line { border-top: 1px dashed #e5e7eb; }
.hw-assign-line { border: 1px solid #e5e7eb; border-radius: .75rem; padding: .85rem; margin-bottom: .75rem; background: #fff; }
.btn-purple { color: #fff; background: #9333ea; border-color: #9333ea; }
.btn-purple:hover { color: #fff; background: #7e22ce; border-color: #7e22ce; }
.btn-outline-indigo { color: #4338ca; border-color: #a5b4fc; background: #fff; }
.btn-outline-indigo:hover { color: #fff; background: #4f46e5; border-color: #4f46e5; }
.hw-catalog { display: grid; gap: .5rem; }
.hw-catalog__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; border: 1px solid #e5e7eb; border-radius: .75rem; padding: .65rem .8rem; }
.hw-catalog__row.is-selected { border-color: #a5b4fc; background: #eef2ff; }
@media (max-width: 575.98px) { .hw-catalog__row { grid-template-columns: minmax(0, 1fr) auto; } .hw-catalog__row .hw-stepper { grid-column: 1 / -1; } }
.hw-stepper { display: flex; align-items: center; gap: .3rem; }
.hw-stepper input { width: 4rem; }
.hw-myorder { border: 1px solid #e5e7eb; border-radius: .6rem; padding: .6rem .75rem; margin-bottom: .5rem; }
.hw-cart__line { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; padding: .35rem 0; border-bottom: 1px solid #f3f4f6; }
@media (min-width: 992px) { .hw-cart { position: sticky; top: 1rem; } }
.hw-mbar-single { grid-template-columns: 1fr; }

/* Dipendenti: card bianche con l'icona colorata (blu, smeraldo, verde, viola). */
.hw-stats-icons .hub-stat__icon { opacity: 1; font-size: 1.6rem; }
.hw-stats-icons .hub-stat:nth-child(1) .hub-stat__icon { color: #2563eb; }
.hw-stats-icons .hub-stat:nth-child(2) .hub-stat__icon { color: #059669; }
.hw-stats-icons .hub-stat:nth-child(3) .hub-stat__icon { color: #16a34a; }
.hw-stats-icons .hub-stat:nth-child(4) .hub-stat__icon { color: #9333ea; }

/* =========================================================================
   Gestione Presenze
   ========================================================================= */
.hw-card__head--blue { background: #eff6ff; border-radius: .8rem .8rem 0 0; color: #1e3a8a; }
.hw-period { display: grid; grid-template-columns: repeat(2, minmax(0, 12rem)) 1fr; gap: 1rem; align-items: end; }
.hw-period__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 767.98px) { .hw-period { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hw-period__actions { grid-column: 1 / -1; } }
.hw-stats-6 .hub-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1199.98px) { .hw-stats-6 .hub-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hub-mhero__tiles[style*="--tiles: 6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hw-kindbadge { display: inline-block; border: 2px solid; border-radius: .5rem; padding: .3rem .75rem; font-size: .8rem; font-weight: 700; }
.hw-kindbadge--green { background: #dcfce7; border-color: #86efac; color: #166534; }
.hw-kindbadge--red { background: #fee2e2; border-color: #fca5a5; color: #991b1b; }
.hw-kindbadge--orange { background: #ffedd5; border-color: #fdba74; color: #9a3412; }
.hw-kindbadge--blue { background: #dbeafe; border-color: #93c5fd; color: #1e40af; }
.hw-kindbadge--purple { background: #f3e8ff; border-color: #d8b4fe; color: #6b21a8; }
.hw-kindbadge--gray { background: #f3f4f6; border-color: #d1d5db; color: #374151; }

/* =========================================================================
   Gestione Cedolini
   ========================================================================= */
.hw-monthnav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.hw-monthnav__month { font-size: 1.5rem; font-weight: 700; color: #111827; }
.hw-summary { background: linear-gradient(135deg, #eff6ff, #f0fdf4); border: 2px solid #e5e7eb; border-radius: .9rem; padding: 1.25rem; }
.hw-summary__grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 1399.98px) { .hw-summary__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hw-summary__grid > div { background: rgba(255, 255, 255, .75); border-radius: .6rem; padding: .55rem .7rem; min-width: 0; }
.hw-summary__grid small { display: block; font-size: .7rem; font-weight: 600; color: #6b7280; }
.hw-summary__grid strong { display: block; font-size: .95rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hw-summary__strong-blue strong { color: #1e3a8a; }
.hw-summary__final { grid-column: span 2; background: #dcfce7 !important; }
.hw-summary__final strong { font-size: 1.5rem; color: #14532d; }
.hw-subtitle { font-size: .75rem; font-weight: 700; color: #4b5563; margin-top: .25rem; }
.hw-fields--red dd { color: #b91c1c; }
.hw-sumbox { border: 1px solid #e5e7eb; background: #f9fafb; border-radius: .75rem; padding: .7rem .9rem; }
.hw-sumbox small { display: block; font-size: .72rem; font-weight: 700; color: #4b5563; }
.hw-sumbox strong { display: block; font-size: 1.25rem; font-weight: 800; color: #111827; }
.hw-sumbox span { display: block; font-size: .72rem; color: #6b7280; }
.hw-sumbox--green { background: #f0fdf4; border-color: #bbf7d0; } .hw-sumbox--green strong { color: #14532d; }
.hw-sumbox--blue { background: #eff6ff; border-color: #bfdbfe; } .hw-sumbox--blue strong { color: #1e3a8a; }
.hw-sumbox--final { background: #f0fdf4; border: 2px solid #22c55e; } .hw-sumbox--final strong { font-size: 1.6rem; color: #14532d; }

/* =========================================================================
   Le Mie Prenotazioni
   ========================================================================= */
.hw-fields { display: grid; gap: .45rem; margin: 0; font-size: .85rem; }
.hw-fields > div { display: flex; justify-content: space-between; gap: .75rem; }
.hw-fields dt { font-weight: 500; color: #6b7280; }
.hw-fields dd { margin: 0; font-weight: 600; color: #111827; text-align: right; overflow-wrap: anywhere; }
.hw-pickup--blue { border-color: #bfdbfe; }
.hw-pickup--orange { border-color: #fed7aa; }
.hw-pickup--green { border-color: #bbf7d0; }
.hw-pickup:has([data-hw-route-pick]:checked) { border-color: #2563eb; box-shadow: 0 0 0 2px #bfdbfe; }
.hw-inline-dialog > summary { list-style: none; }
.hw-inline-dialog > summary::-webkit-details-marker { display: none; }
.hw-inline-dialog[open] { flex-basis: 100%; }

/* =========================================================================
   Campanella delle notifiche (menu a tendina)
   ========================================================================= */
.hw-bell-menu { width: min(24rem, 92vw); }
.hw-bell__head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .75rem 1rem; border-bottom: 1px solid #e5e7eb; }
.hw-bell__head form { margin: 0; }
.hw-bell__list { list-style: none; margin: 0; padding: 0; max-height: 26rem; overflow-y: auto; }
.hw-bell__item { display: flex; align-items: flex-start; gap: .25rem; border-bottom: 1px solid #f3f4f6; padding: .25rem .5rem .25rem 0; }
.hw-bell__item.is-unread { background: #eff6ff; }
.hw-bell__item form { margin: 0; }
.hw-bell__open { flex: 1 1 auto; min-width: 0; }
.hw-bell__body { display: grid; gap: .15rem; width: 100%; text-align: left; background: transparent; border: 0; padding: .6rem .5rem .6rem 1rem; position: relative; }
.hw-bell__body .badge { justify-self: start; text-transform: uppercase; font-size: .6rem; }
.hw-bell__dot { position: absolute; left: .35rem; top: 1rem; width: .45rem; height: .45rem; border-radius: 50%; background: #2563eb; }
.hw-bell__title { font-weight: 700; font-size: .85rem; color: #111827; }
.hw-bell__text { font-size: .78rem; color: #4b5563; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hw-bell__date { font-size: .7rem; color: #9ca3af; }
.hw-bell__foot { padding: .6rem 1rem; font-size: .75rem; color: #6b7280; text-align: center; }
.hw-bell__empty { padding: 1.5rem 1rem; text-align: center; color: #6b7280; font-size: .85rem; }

/* =========================================================================
   Archivio DDT e foglio «DOCUMENTO DI TRASPORTO»
   ========================================================================= */
.hw-card--orange { border-color: #fed7aa; }
.hw-card--orange .hw-card__head { background: #fff7ed; border-radius: .8rem .8rem 0 0; }
.hw-ddts { display: grid; gap: 1rem; }
.hw-ddt { display: block; background: #fff; border: 2px solid #e5e7eb; border-radius: .9rem; padding: 1.1rem 1.25rem; text-decoration: none; color: inherit; transition: box-shadow .2s, border-color .2s; }
.hw-ddt:hover { box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .15); border-color: #bfdbfe; color: inherit; }
.hw-ddt__head { display: flex; align-items: center; gap: .75rem; }
.hw-ddt__number { font-weight: 800; font-size: 1.05rem; color: #111827; }
.hw-ddt__lines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
@media (max-width: 991.98px) { .hw-ddt__lines { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .hw-ddt__lines { grid-template-columns: 1fr; } }
.hw-ddt__line { display: flex; justify-content: space-between; align-items: center; gap: .5rem; background: #f9fafb; border: 1px solid #f3f4f6; border-radius: .6rem; padding: .5rem .65rem; font-size: .82rem; min-width: 0; }
.hw-ddt-sheet { background: #fff; border: 1px solid #e5e7eb; border-radius: .5rem; padding: 2.5rem; max-width: 52rem; margin: 0 auto; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .2); color: #111827; }
@media (max-width: 575.98px) { .hw-ddt-sheet { padding: 1.25rem; } }
.hw-ddt-sheet__head { text-align: center; border-bottom: 3px solid #111827; padding-bottom: 1rem; margin-bottom: 1.5rem; }
.hw-ddt-sheet__head h2 { font-size: 1.5rem; font-weight: 800; margin: 0; letter-spacing: .04em; }
.hw-ddt-sheet__number { font-size: 1.1rem; font-weight: 700; color: #4b5563; margin-top: .25rem; }
.hw-ddt-sheet__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.hw-ddt-sheet small { display: block; font-size: .7rem; font-weight: 700; color: #6b7280; letter-spacing: .04em; }
.hw-ddt-sheet__box { border: 2px solid #111827; border-radius: .5rem; padding: .85rem 1rem; margin-bottom: 1.5rem; }
.hw-ddt-sheet__section { font-size: .85rem; font-weight: 800; margin-bottom: .5rem; letter-spacing: .04em; }
.hw-ddt-sheet__table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.hw-ddt-sheet__table th { background: #111827; color: #fff; padding: .55rem .75rem; text-align: left; }
.hw-ddt-sheet__table td { border-bottom: 1px solid #e5e7eb; padding: .55rem .75rem; }
.hw-ddt-sheet__table tfoot td { font-weight: 800; background: #f3f4f6; border-top: 2px solid #111827; }
.hw-ddt-sheet__signs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; margin-top: 3rem; }
.hw-ddt-sheet__signs span { display: block; border-bottom: 1px solid #111827; height: 3rem; }
.hw-ddt-sheet__foot { text-align: center; font-size: .72rem; color: #6b7280; border-top: 1px solid #e5e7eb; margin-top: 2rem; padding-top: .75rem; }

/* =========================================================================
   Stampa della giacenza (pagina autonoma)
   ========================================================================= */
.hw-print { font-family: Arial, sans-serif; padding: 20px; background: #fff; color: #000; margin: 0; }
.hw-print *, .hw-print *::before, .hw-print *::after { box-sizing: border-box; }
.hw-print__noprint { text-align: center; margin: 20px 0; }
.hw-print__button { background: #000; color: #fff; border: 0; padding: 15px 30px; font-size: 16px; font-weight: bold; cursor: pointer; border-radius: 8px; text-transform: uppercase; }
.hw-print__button:hover { background: #333; }
.hw-print__header { text-align: center; margin-bottom: 30px; border-bottom: 3px solid #000; padding-bottom: 20px; }
.hw-print__header h1 { font-size: 28px; margin: 0 0 10px; text-transform: uppercase; }
.hw-print__header p { font-size: 14px; color: #666; margin: 0; }
.hw-print__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 30px; }
.hw-print__stats > div { border: 2px solid #000; padding: 15px; text-align: center; border-radius: 8px; }
.hw-print__stats span { display: block; font-size: 12px; color: #666; text-transform: uppercase; margin-bottom: 5px; }
.hw-print__stats strong { font-size: 24px; }
.hw-print__table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.hw-print__table th, .hw-print__table td { border: 1px solid #000; padding: 12px; text-align: left; font-size: 12px; }
.hw-print__table th { background: #000; color: #fff; text-transform: uppercase; }
.hw-print__table .num { text-align: right; }
.hw-print__table tbody tr:nth-child(even) { background: #f9f9f9; }
.hw-print__table .hw-print__total { background: #e0e0e0 !important; }
.hw-print__footer { margin-top: 30px; text-align: center; font-size: 11px; color: #666; border-top: 2px solid #000; padding-top: 15px; }
@media print {
  .hw-print__noprint { display: none; }
  .hw-print { padding: 0; }
}
