/* ================================================================
   theme-waybill.css — fix51 "Lettera di Vettura"
   Tema GUI professionale per SpedireWeb.
   Direzione: il linguaggio grafico nativo delle spedizioni —
   inchiostro su carta termica, timbro rosso, codici mono,
   perforazioni. Un solo file: eliminarlo ripristina il tema
   precedente. Carica DOPO nedate-design-system, PRIMA di a11y.css.
   ================================================================ */

/* ---------- 1. TOKEN ---------- */
:root {
  /* Palette */
  --wb-ink: #12161f;            /* inchiostro: testo, sidebar */
  --wb-ink-soft: #3d4454;       /* testo secondario */
  --wb-ink-faint: #6b7385;      /* testo terziario, label */
  --wb-paper: #f6f7f9;          /* sfondo pagina (carta fredda) */
  --wb-card: #ffffff;           /* superfici */
  --wb-line: #e3e6ec;           /* bordi fustella */
  --wb-line-strong: #c9ceda;
  --wb-stamp: var(--sw-brand-600, #d92336);          /* rosso timbro (AA 4.65:1) */
  --wb-stamp-ink: #c11507;      /* rosso premuto/hover */
  --wb-stamp-tint: #fdeceb;     /* campitura rosso 6% */
  --wb-transit: #14708e;        /* petrolio: stati informativi */
  --wb-transit-tint: #e7f2f6;
  --wb-delivered: #157f3d;
  --wb-delivered-tint: #e9f5ee;
  --wb-warn: #b45309;
  --wb-warn-tint: #fdf3e7;
  --wb-error: #b42318;          /* cremisi errori ≠ rosso brand */
  --wb-error-tint: #fbebe9;

  /* Tipografia */
  --wb-font-display: 'Archivo', 'IBM Plex Sans', system-ui, sans-serif;
  --wb-font-body: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --wb-font-mono: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', monospace;

  /* Geometria: fustella etichetta */
  --wb-radius: 10px;
  --wb-radius-sm: 7px;
  --wb-shadow: 0 1px 2px rgba(18, 22, 31, .05);
  --wb-shadow-lift: 0 6px 18px rgba(18, 22, 31, .09);

  /* Aggancio ai token esistenti della piattaforma */
  --theme-font-base: var(--wb-font-body);
  --nd-radius-card: var(--wb-radius);
  --theme-primary: var(--wb-stamp);
  --brand-color: var(--wb-stamp);

  /* Bootstrap 5 bridge */
  --bs-body-bg: var(--wb-paper);
  --bs-body-color: var(--wb-ink);
  --bs-body-font-family: var(--wb-font-body);
  --bs-border-color: var(--wb-line);
  --bs-border-radius: var(--wb-radius-sm);
  --bs-primary: var(--wb-stamp);
  --bs-primary-rgb: 230, 26, 10;
  --bs-link-color: var(--wb-stamp);
  --bs-link-hover-color: var(--wb-stamp-ink);
  --bs-danger: var(--wb-error);
  --bs-success: var(--wb-delivered);
  --bs-warning: var(--wb-warn);
  --bs-info: var(--wb-transit);
  --bs-secondary-color: var(--wb-ink-soft);
}

/* ---------- 2. BASE ---------- */
body {
  background: var(--wb-paper);
  color: var(--wb-ink);
  font-family: var(--wb-font-body);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .h1, .h2, .h3, .h4,
.card-title, .modal-title, .page-title {
  font-family: var(--wb-font-display);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--wb-ink);
}

h1, .h1 { font-weight: 700; letter-spacing: -0.02em; }

small, .small { color: var(--wb-ink-soft); }

/* Dati = mono tabulare: tracking, importi, pesi, date, codici */
code, kbd, .font-monospace,
.wb-data, .tracking-code, .order-token,
td.text-end, th.text-end,
.amount, .price, .weight, .cap {
  font-family: var(--wb-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 0.925em;
  letter-spacing: 0;
}

/* ---------- 3. SIGNATURE: testata-etichetta ---------- */
/* Eyebrow stile campi LDV: MITTENTE / DESTINATARIO */
.wb-eyebrow,
.page-pretitle, .card-subtitle-eyebrow {
  font-family: var(--wb-font-mono);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--wb-ink-faint);
}

/* Motivo barcode: divisore d'accento. Un solo uso per vista. */
.wb-barcode,
.page-header::after {
  display: block;
  height: 14px;
  margin-top: 10px;
  background-image: repeating-linear-gradient(
    90deg,
    var(--wb-ink) 0 2px, transparent 2px 5px,
    var(--wb-ink) 5px 6px, transparent 6px 11px,
    var(--wb-ink) 11px 15px, transparent 15px 18px,
    var(--wb-ink) 18px 19px, transparent 19px 26px,
    var(--wb-ink) 26px 28px, transparent 28px 31px,
    var(--wb-ink) 31px 32px, transparent 32px 41px
  );
  background-size: 41px 100%;
  opacity: .16;
  max-width: 220px;
  border-radius: 1px;
  content: "";
}

/* Perforazione: separatore tratteggiato da ricevuta */
.wb-perforation, hr.wb-perforation {
  border: 0;
  border-top: 1.5px dashed var(--wb-line-strong);
  margin: 1.25rem 0;
  opacity: 1;
}

/* ---------- 4. CARD (etichetta fustellata) ---------- */
.card {
  background: var(--wb-card);
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  box-shadow: var(--wb-shadow);
  transition: box-shadow .16s ease, border-color .16s ease;
}

.card:hover { box-shadow: var(--wb-shadow-lift); }

.card-header {
  background: transparent;
  border-bottom: 1.5px dashed var(--wb-line-strong); /* perforazione */
  font-family: var(--wb-font-display);
  font-weight: 600;
  padding: .9rem 1.15rem;
}

.card-footer {
  background: var(--wb-paper);
  border-top: 1.5px dashed var(--wb-line-strong);
}

/* ---------- 5. BOTTONI (timbro) ---------- */
.btn {
  border-radius: var(--wb-radius-sm);
  font-weight: 600;
  font-family: var(--wb-font-body);
  letter-spacing: .01em;
  transition: transform .08s ease, box-shadow .16s ease,
              background-color .16s ease, border-color .16s ease;
}

.btn:active { transform: translateY(1px); }

.btn-primary {
  background: var(--wb-stamp);
  border-color: var(--wb-stamp);
  color: #fff;
  box-shadow: 0 1px 0 rgba(18,22,31,.12), inset 0 -1px 0 rgba(0,0,0,.12);
}

.btn-primary:hover, .btn-primary:focus {
  background: var(--wb-stamp-ink);
  border-color: var(--wb-stamp-ink);
  color: #fff;
}

.btn-outline-primary {
  color: var(--wb-stamp);
  border-color: var(--wb-stamp);
}

.btn-outline-primary:hover {
  background: var(--wb-stamp-tint);
  color: var(--wb-stamp-ink);
  border-color: var(--wb-stamp-ink);
}

.btn-outline-secondary {
  color: var(--wb-ink-soft);
  border-color: var(--wb-line-strong);
}

.btn-outline-secondary:hover {
  background: var(--wb-ink);
  border-color: var(--wb-ink);
  color: #fff;
}

/* ---------- 6. TABELLE (manifesto di carico) ---------- */
.table {
  --bs-table-bg: var(--wb-card);
  --bs-table-hover-bg: #fafbfc;
  border-color: var(--wb-line);
  font-size: 14px;
}

.table thead th {
  font-family: var(--wb-font-mono);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--wb-ink-faint);
  border-bottom: 2px solid var(--wb-ink);
  padding-top: .55rem;
  padding-bottom: .55rem;
  white-space: nowrap;
}

.table tbody td {
  padding-top: .62rem;
  padding-bottom: .62rem;
  vertical-align: middle;
  border-color: var(--wb-line);
}

.table tbody tr:hover td { background: var(--bs-table-hover-bg); }

/* Numeri e importi: mono, a destra */
.table td.text-end, .table th.text-end {
  font-variant-numeric: tabular-nums;
}

/* ---------- 7. FORM (campi modulo) ---------- */
.form-control, .form-select {
  border: 1px solid var(--wb-line-strong);
  border-radius: var(--wb-radius-sm);
  background: var(--wb-card);
  color: var(--wb-ink);
  font-size: 14.5px;
  transition: border-color .14s ease, box-shadow .14s ease;
}

.form-control:focus, .form-select:focus {
  border-color: var(--wb-stamp);
  box-shadow: 0 0 0 3px var(--wb-stamp-tint);
}

.form-label {
  font-family: var(--wb-font-mono);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--wb-ink-faint);
  margin-bottom: .3rem;
}

/* ---------- 8. STATI SPEDIZIONE (badge) ---------- */
.badge {
  font-family: var(--wb-font-mono);
  font-weight: 600;
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 5px;
  padding: .32em .55em;
}

.badge.bg-success, .badge-delivered {
  background: var(--wb-delivered-tint) !important;
  color: var(--wb-delivered) !important;
  border: 1px solid currentColor;
}

.badge.bg-info, .badge-transit {
  background: var(--wb-transit-tint) !important;
  color: var(--wb-transit) !important;
  border: 1px solid currentColor;
}

.badge.bg-warning, .badge-warn {
  background: var(--wb-warn-tint) !important;
  color: var(--wb-warn) !important;
  border: 1px solid currentColor;
}

.badge.bg-danger, .badge-error {
  background: var(--wb-error-tint) !important;
  color: var(--wb-error) !important;
  border: 1px solid currentColor;
}

.badge.bg-primary {
  background: var(--wb-stamp-tint) !important;
  color: var(--wb-stamp-ink) !important;
  border: 1px solid currentColor;
}

/* ---------- 9. SIDEBAR / NAVBAR (inchiostro) ---------- */
.nedate-has-desktop-sidebar .sidebar,
#sidebar, .app-sidebar {
  background: var(--wb-ink);
  color: #c7ccd8;
  border-right: 0;
}

#sidebar .nav-link, .app-sidebar .nav-link, .sidebar .nav-link {
  color: #c7ccd8;
  border-radius: var(--wb-radius-sm);
  font-weight: 500;
  position: relative;
}

#sidebar .nav-link:hover, .app-sidebar .nav-link:hover, .sidebar .nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .06);
}

#sidebar .nav-link.active, .app-sidebar .nav-link.active, .sidebar .nav-link.active {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

/* rail rosso sull'attivo: il timbro */
#sidebar .nav-link.active::before,
.app-sidebar .nav-link.active::before,
.sidebar .nav-link.active::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 18%;
  bottom: 18%;
  width: 3px;
  border-radius: 2px;
  background: var(--wb-stamp);
}

.navbar, .app-header {
  background: var(--wb-card);
  border-bottom: 1px solid var(--wb-line);
  box-shadow: none;
}

/* ---------- 10. MODAL / DROPDOWN / TOAST ---------- */
.modal-content {
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  box-shadow: 0 18px 50px rgba(18,22,31,.22);
}

.modal-header { border-bottom: 1.5px dashed var(--wb-line-strong); }
.modal-footer { border-top: 1.5px dashed var(--wb-line-strong); }

.dropdown-menu {
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius-sm);
  box-shadow: var(--wb-shadow-lift);
  font-size: 14px;
}

.dropdown-item:active { background: var(--wb-stamp); }

/* ---------- 11. TRACKING TIMELINE ---------- */
.tracking-step .step-dot, .timeline-dot {
  background: var(--wb-line-strong);
  border: 2px solid var(--wb-card);
  box-shadow: 0 0 0 1.5px var(--wb-line-strong);
}

.tracking-step.done .step-dot, .timeline-dot.done {
  background: var(--wb-delivered);
  box-shadow: 0 0 0 1.5px var(--wb-delivered);
}

.tracking-step.current .step-dot, .timeline-dot.current {
  background: var(--wb-stamp);
  box-shadow: 0 0 0 1.5px var(--wb-stamp), 0 0 0 6px var(--wb-stamp-tint);
}

/* ---------- 12. DARK MODE: turno di notte ---------- */
[data-theme="dark"], .dark-mode {
  --wb-ink: #e8eaf0;
  --wb-ink-soft: #a7adbd;
  --wb-ink-faint: #7d8496;
  --wb-paper: #0f1319;
  --wb-card: #161b23;
  --wb-line: #262d39;
  --wb-line-strong: #343d4c;
  --wb-stamp: #ff5a49;          /* timbro schiarito: 5.0:1 su card */
  --wb-stamp-ink: #ff7365;
  --wb-stamp-tint: rgba(255, 90, 73, .12);
  --wb-transit: #4db3d4;
  --wb-transit-tint: rgba(77, 179, 212, .12);
  --wb-delivered: #4ade80;
  --wb-delivered-tint: rgba(74, 222, 128, .1);
  --wb-warn: #fbbf24;
  --wb-warn-tint: rgba(251, 191, 36, .1);
  --wb-error: #f87171;
  --wb-error-tint: rgba(248, 113, 113, .1);
  --wb-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  --wb-shadow-lift: 0 8px 24px rgba(0, 0, 0, .5);
}

[data-theme="dark"] body, .dark-mode body,
body.dark-mode { background: var(--wb-paper); color: var(--wb-ink); }

[data-theme="dark"] .table, .dark-mode .table {
  --bs-table-bg: var(--wb-card);
  --bs-table-hover-bg: #1b212b;
  --bs-table-color: var(--wb-ink);
}

[data-theme="dark"] .table thead th,
.dark-mode .table thead th { border-bottom-color: var(--wb-ink-soft); }

[data-theme="dark"] .page-header::after,
.dark-mode .page-header::after,
[data-theme="dark"] .wb-barcode,
.dark-mode .wb-barcode {
  background-image: repeating-linear-gradient(
    90deg,
    var(--wb-ink) 0 2px, transparent 2px 5px,
    var(--wb-ink) 5px 6px, transparent 6px 11px,
    var(--wb-ink) 11px 15px, transparent 15px 18px,
    var(--wb-ink) 18px 19px, transparent 19px 26px,
    var(--wb-ink) 26px 28px, transparent 28px 31px,
    var(--wb-ink) 31px 32px, transparent 32px 41px
  );
  opacity: .22;
}

[data-theme="dark"] .navbar, .dark-mode .navbar,
[data-theme="dark"] .app-header, .dark-mode .app-header {
  background: var(--wb-card);
  border-bottom-color: var(--wb-line);
}

[data-theme="dark"] #sidebar, .dark-mode #sidebar,
[data-theme="dark"] .app-sidebar, .dark-mode .app-sidebar {
  background: #0b0e13; /* più scuro della carta: profondità */
}

/* ---------- 13. DETTAGLI ---------- */
::selection { background: var(--wb-stamp-tint); color: var(--wb-stamp-ink); }

[data-theme="dark"] ::selection, .dark-mode ::selection {
  background: rgba(255, 90, 73, .25);
  color: #fff;
}

/* Scrollbar coerente (WebKit) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb {
  background: var(--wb-line-strong);
  border-radius: 6px;
  border: 2px solid var(--wb-paper);
}
::-webkit-scrollbar-thumb:hover { background: var(--wb-ink-faint); }
::-webkit-scrollbar-track { background: transparent; }

/* ================================================================
   fix53 — LOOK INTERO: copertura completa componenti
   ================================================================ */

/* ---------- 14. APP SHELL ---------- */
.navbar .navbar-brand { font-family: var(--wb-font-display); font-weight: 700; letter-spacing: -.02em; }

.navbar .nav-link { font-weight: 500; color: var(--wb-ink-soft); }
.navbar .nav-link:hover { color: var(--wb-ink); }
.navbar .nav-link.active { color: var(--wb-stamp); }

.breadcrumb { font-family: var(--wb-font-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; }
.breadcrumb-item + .breadcrumb-item::before { content: "›"; color: var(--wb-line-strong); }
.breadcrumb-item.active { color: var(--wb-ink); font-weight: 600; }
.breadcrumb-item a { color: var(--wb-ink-faint); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--wb-stamp); }

/* ---------- 15. TABS (linguette raccoglitore) ---------- */
.nav-tabs { border-bottom: 2px solid var(--wb-line); gap: .25rem; }
.nav-tabs .nav-link {
  border: 0; border-bottom: 2px solid transparent; margin-bottom: -2px;
  color: var(--wb-ink-soft); font-weight: 600; border-radius: 0; padding: .55rem .9rem;
}
.nav-tabs .nav-link:hover { color: var(--wb-ink); border-bottom-color: var(--wb-line-strong); }
.nav-tabs .nav-link.active { color: var(--wb-stamp); background: transparent; border-bottom-color: var(--wb-stamp); }

.nav-pills .nav-link { color: var(--wb-ink-soft); font-weight: 600; border-radius: var(--wb-radius-sm); }
.nav-pills .nav-link.active { background: var(--wb-ink); color: #fff; }

/* ---------- 16. PAGINAZIONE (numeratore bolla) ---------- */
.pagination { --bs-pagination-border-color: var(--wb-line); gap: 4px; }
.page-link {
  font-family: var(--wb-font-mono); font-size: 13px; font-weight: 500;
  color: var(--wb-ink); border-radius: var(--wb-radius-sm) !important;
  border: 1px solid var(--wb-line); min-width: 36px; text-align: center;
}
.page-link:hover { background: var(--wb-paper); color: var(--wb-stamp); border-color: var(--wb-line-strong); }
.page-item.active .page-link { background: var(--wb-ink); border-color: var(--wb-ink); color: #fff; }
.page-item.disabled .page-link { color: var(--wb-line-strong); }

/* ---------- 17. ALERT (tagliando di avviso) ---------- */
.alert { border: 1px solid; border-left-width: 4px; border-radius: var(--wb-radius-sm); font-size: 14px; }
.alert-success { background: var(--wb-delivered-tint); border-color: var(--wb-delivered); color: #0c5c2b; }
.alert-info    { background: var(--wb-transit-tint);   border-color: var(--wb-transit);   color: #0b556c; }
.alert-warning { background: var(--wb-warn-tint);      border-color: var(--wb-warn);      color: #8a3f07; }
.alert-danger  { background: var(--wb-error-tint);     border-color: var(--wb-error);     color: #8f1c13; }
.alert .alert-heading { font-family: var(--wb-font-display); font-weight: 650; }

/* ---------- 18. LIST GROUP / ACCORDION ---------- */
.list-group { border-radius: var(--wb-radius); }
.list-group-item { border-color: var(--wb-line); padding: .8rem 1.05rem; background: var(--wb-card); color: var(--wb-ink); }
.list-group-item.active { background: var(--wb-stamp-tint); border-color: var(--wb-stamp); color: var(--wb-stamp-ink); font-weight: 600; }
.list-group-item-action:hover { background: var(--wb-paper); }

.accordion { --bs-accordion-border-color: var(--wb-line); --bs-accordion-btn-focus-box-shadow: none; }
.accordion-item { background: var(--wb-card); border-color: var(--wb-line); }
.accordion-button { background: var(--wb-card); color: var(--wb-ink); font-weight: 600; font-family: var(--wb-font-display); }
.accordion-button:not(.collapsed) { background: var(--wb-paper); color: var(--wb-stamp-ink); box-shadow: inset 0 -1.5px 0 var(--wb-line-strong); }
.accordion-body { border-top: 1.5px dashed var(--wb-line-strong); }

/* ---------- 19. PROGRESS / SPINNER ---------- */
.progress { height: 8px; background: var(--wb-line); border-radius: 99px; }
.progress-bar { background: var(--wb-stamp); border-radius: 99px; }
.progress-bar.bg-success { background: var(--wb-delivered) !important; }
.progress-bar.bg-info { background: var(--wb-transit) !important; }
/* La rotella e' rossa dove sta per conto suo, su una superficie chiara. Dentro
   un bottone no: `btn-primary-custom` e' rosso pieno, e una rotella rossa su
   fondo rosso non si vede — misurato su /accedi, rgb(217,35,54) su rgb(217,35,54)
   mentre il testo del bottone e' bianco. Li' prende il colore del bottone. */
.spinner-border:not(.btn *), .spinner-grow:not(.btn *) { color: var(--wb-stamp); }

/* ---------- 20. CONTROLLI: switch, check, radio, range ---------- */
.form-check-input { border: 1.5px solid var(--wb-line-strong); }
.form-check-input:checked { background-color: var(--wb-stamp); border-color: var(--wb-stamp); }
.form-check-input:focus { border-color: var(--wb-stamp); box-shadow: 0 0 0 3px var(--wb-stamp-tint); }
.form-switch .form-check-input { height: 1.25em; }
.form-switch .form-check-input:checked { background-color: var(--wb-delivered); border-color: var(--wb-delivered); }
.form-range::-webkit-slider-thumb { background: var(--wb-stamp); }
.form-range::-moz-range-thumb { background: var(--wb-stamp); }

.input-group-text {
  font-family: var(--wb-font-mono); font-size: 12px; color: var(--wb-ink-faint);
  background: var(--wb-paper); border-color: var(--wb-line-strong);
}

/* ---------- 21. TOOLTIP / POPOVER / TOAST / OFFCANVAS ---------- */
.tooltip-inner { background: var(--wb-ink); font-family: var(--wb-font-mono); font-size: 11.5px; border-radius: 6px; }
.popover { border-color: var(--wb-line); border-radius: var(--wb-radius-sm); box-shadow: var(--wb-shadow-lift); }
.popover-header { background: var(--wb-paper); border-bottom: 1.5px dashed var(--wb-line-strong); font-family: var(--wb-font-display); font-weight: 650; }
.toast { border: 1px solid var(--wb-line); border-radius: var(--wb-radius-sm); box-shadow: var(--wb-shadow-lift); background: var(--wb-card); }
.toast-header { border-bottom: 1.5px dashed var(--wb-line-strong); font-weight: 600; background: transparent; color: var(--wb-ink); }
.offcanvas { background: var(--wb-card); border-color: var(--wb-line) !important; }
.offcanvas-header { border-bottom: 1.5px dashed var(--wb-line-strong); }

/* ---------- 22. AUTH (guest): scheda-etichetta ---------- */
.nedate-no-desktop-sidebar .card.auth-card,
body > div > .w-full.sm\:max-w-md {
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  box-shadow: var(--wb-shadow-lift);
  position: relative;
}

body > div > .w-full.sm\:max-w-md::before {
  content: "SPEDIREWEB · ACCESSO";
  display: block;
  font-family: var(--wb-font-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .14em; color: var(--wb-ink-faint);
  padding-bottom: .6rem; margin-bottom: 1rem;
  border-bottom: 1.5px dashed var(--wb-line-strong);
}

/* ---------- 23. RIFINITURE GLOBALI ---------- */
a { text-underline-offset: 3px; }
hr { border-color: var(--wb-line); opacity: 1; }
kbd {
  font-family: var(--wb-font-mono); font-size: 11px;
  background: var(--wb-ink); color: #fff; border-radius: 4px;
  padding: 2px 6px; box-shadow: inset 0 -1.5px 0 rgba(255,255,255,.2);
}
.text-muted, .text-secondary { color: var(--wb-ink-soft) !important; }
.border { border-color: var(--wb-line) !important; }

/* tabelle striped/dense coerenti */
.table-striped > tbody > tr:nth-of-type(odd) > * { background: #fafbfc; box-shadow: none; }
.table-sm tbody td { padding-top: .4rem; padding-bottom: .4rem; }

/* empty state */
.empty-state, .no-results {
  color: var(--wb-ink-faint);
  font-family: var(--wb-font-mono);
  letter-spacing: .04em;
}

/* ---------- 24. DARK: parità componenti fix53 ---------- */
[data-theme="dark"] .navbar .nav-link, .dark-mode .navbar .nav-link { color: var(--wb-ink-soft); }
[data-theme="dark"] .nav-pills .nav-link.active, .dark-mode .nav-pills .nav-link.active { background: var(--wb-ink); color: #0f1319; }
[data-theme="dark"] .page-item.active .page-link, .dark-mode .page-item.active .page-link { background: var(--wb-ink); border-color: var(--wb-ink); color: #0f1319; }
[data-theme="dark"] .alert-success, .dark-mode .alert-success { color: #86efac; background: var(--wb-delivered-tint); }
[data-theme="dark"] .alert-info, .dark-mode .alert-info { color: #7dd3ec; background: var(--wb-transit-tint); }
[data-theme="dark"] .alert-warning, .dark-mode .alert-warning { color: #fcd34d; background: var(--wb-warn-tint); }
[data-theme="dark"] .alert-danger, .dark-mode .alert-danger { color: #fca5a5; background: var(--wb-error-tint); }
[data-theme="dark"] .list-group-item, .dark-mode .list-group-item,
[data-theme="dark"] .accordion-button, .dark-mode .accordion-button { background: var(--wb-card); color: var(--wb-ink); }
[data-theme="dark"] .accordion-button:not(.collapsed), .dark-mode .accordion-button:not(.collapsed) { background: var(--wb-paper); color: var(--wb-stamp); }
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > *,
.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > * { background: #1a202a; }
[data-theme="dark"] .input-group-text, .dark-mode .input-group-text { background: var(--wb-paper); color: var(--wb-ink-faint); border-color: var(--wb-line-strong); }
[data-theme="dark"] .tooltip-inner, .dark-mode .tooltip-inner { background: #e8eaf0; color: #12161f; }

.qq-rate-sep { border-bottom: 1.5px dashed var(--wb-line-strong, #c9ceda); }

/* ================================================================
   fix55 — PUBBLICO · USER · ADMIN: allineamento totale
   ================================================================ */

/* ---------- 25. PONTE TOKEN LEGACY ----------
   --nd-public-red è la variabile madre dei rossi pagina-per-pagina
   (cart, ship, imports, address, hero pubblici). Un solo override
   li allinea tutti al timbro. L'orange dei gradient legacy diventa
   il rosso premuto: i gradient collassano in una rampa tonale
   coerente col tema piatto, senza inseguire i singoli !important. */
:root {
  --nd-public-red: var(--wb-stamp);
  --nd-public-orange: var(--wb-stamp-ink);
  --primary: var(--wb-stamp);
}

[data-theme="dark"], .dark-mode {
  --nd-public-red: var(--wb-stamp);
  --nd-public-orange: var(--wb-stamp-ink);
}

/* ---------- 26. TESTATA PAGINE APP (user + admin) ----------
   Le pagine interne usano .nedate-page-hero come testata:
   stesso trattamento etichetta della landing, barcode incluso. */
.nedate-page-hero h1, .nedate-page-hero h2, .nedate-page-hero .h2 {
  font-family: var(--wb-font-display);
  letter-spacing: -0.02em;
}

.nedate-page-hero::after {
  content: "";
  flex-basis: 100%;
  display: block;
  height: 12px;
  margin-top: 2px;
  max-width: 190px;
  border-radius: 1px;
  opacity: .14;
  background-size: 41px 100%;
  background-image: repeating-linear-gradient(
    90deg,
    var(--wb-ink) 0 2px, transparent 2px 5px,
    var(--wb-ink) 5px 6px, transparent 6px 11px,
    var(--wb-ink) 11px 15px, transparent 15px 18px,
    var(--wb-ink) 18px 19px, transparent 19px 26px,
    var(--wb-ink) 26px 28px, transparent 28px 31px,
    var(--wb-ink) 31px 32px, transparent 32px 41px
  );
}

[data-theme="dark"] .nedate-page-hero::after,
.dark-mode .nedate-page-hero::after { opacity: .2; }

/* ---------- 27. ADMIN (.nedate-admin-ui / .platform-admin-page) ---------- */
.nedate-admin-ui .card .card-header {
  font-size: 15px;
}

.nedate-admin-ui .table thead th,
.platform-admin-page .table thead th {
  position: sticky;
  top: 0;
  background: var(--wb-card);
  z-index: 2;
}

/* filtri admin: pannello coerente */
.nedate-admin-ui .nedate-filter-panel,
.platform-admin-page .filters {
  background: var(--wb-card);
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
}

/* stat/kpi admin: numeri mono */
.nedate-admin-ui .stat-value,
.nedate-admin-ui .kpi-value,
.platform-admin-page .stat-value {
  font-family: var(--wb-font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* ---------- 28. USER MODERN UI ---------- */
.user-modern-ui .card { box-shadow: var(--wb-shadow); }

.user-modern-ui .nedate-filter-panel {
  border: 1px solid var(--wb-line);
  border-radius: var(--wb-radius);
  background: var(--wb-card);
}

/* Stepper flusso spedizione: pallini timbro */
.user-modern-ui .step-indicator .active,
.user-modern-ui .wizard-step.active {
  color: var(--wb-stamp);
  border-color: var(--wb-stamp);
}

/* ---------- 29. PAGINE PUBBLICHE MARKETING ---------- */
.nedate-public-standard h1,
.nedate-marketing-standard h1 {
  font-family: var(--wb-font-display);
  font-weight: 700;
  letter-spacing: -0.025em;
}

.nedate-public-standard .hero-eyebrow,
.nedate-marketing-standard .hero-eyebrow {
  font-family: var(--wb-font-mono);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 12px;
  color: var(--wb-ink-faint);
}

/* fix56: navigazione — quick-search e breadcrumb auto */
.wb-navsearch input.form-control-sm {
  border-color: var(--wb-line-strong);
  background: var(--wb-paper);
  font-size: 12.5px;
}
.wb-navsearch input.form-control-sm:focus { background: var(--wb-card); }
.wb-breadcrumb-auto .breadcrumb { padding: 0; background: transparent; }
[data-theme="dark"] .wb-navsearch input.form-control-sm,
.dark-mode .wb-navsearch input.form-control-sm { background: var(--wb-card); }
