:root {
  --brand: #f56f11; 
  --brand-dark: #d45e0d;
  --brand-light: #fff7ed;
  --bg-color: #f8fafc;
  --surface: #ffffff;
  --text-dark: #2d3748;
  --text-muted: #64748b;
  --radius-lg: 20px;
  --radius-md: 16px;
  --shadow-soft: 0 10px 30px -5px rgba(0, 0, 0, 0.05), 0 4px 12px -2px rgba(0, 0, 0, 0.02);
  --shadow-hover: 0 20px 35px -5px rgba(245, 111, 17, 0.15);
}

body { 
  background-color: var(--bg-color); 
  color: var(--text-dark);
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  padding-bottom: 80px;
}

.text-brand { color: var(--brand) !important; }
.bg-brand { background-color: var(--brand) !important; color: white; }

.btn-brand { 
  background-color: var(--brand); 
  color: white; 
  border: none; 
  border-radius: var(--radius-md);
  font-weight: 700;
  padding: 12px 24px;
  transition: all 0.25s ease; 
}
.btn-brand:hover, .btn-brand:focus { 
  background-color: var(--brand-dark); 
  color: white; 
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(245, 111, 17, 0.25);
}

.btn-outline-brand { 
  border: 2px solid var(--brand); 
  color: var(--brand); 
  border-radius: var(--radius-md);
  font-weight: 700; 
  background: transparent;
  transition: 0.25s ease; 
}
.btn-outline-brand:hover { background-color: var(--brand); color: white; }

.auth-wrapper { min-height: 100vh; background: var(--surface); }
.auth-banner {
  background: url('../Home.webp') center/cover no-repeat;
}
.auth-banner-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(245, 111, 17, 0.85) 100%);
}
.auth-form-container { width: 100%; max-width: 420px; }

.auth-card { 
  width: 100%; max-width: 440px; padding: 2.5rem 2rem; 
  border-radius: var(--radius-lg); background: var(--surface); 
  box-shadow: var(--shadow-soft); 
  border: none;
}
.full-page-card { 
  width: 100%; padding: 2rem; 
  border-radius: var(--radius-lg); background: var(--surface); 
  box-shadow: var(--shadow-soft); 
  border: none;
  margin-bottom: 2rem;
}

.top-nav { 
  background-color: var(--surface); 
  padding: 14px 24px; 
  box-shadow: 0 2px 15px rgba(0,0,0,0.03); 
  position: sticky; top: 0; z-index: 1020;
  display: flex; justify-content: space-between; align-items: center;
  border-bottom: 1px solid #f1f5f9;
}

.campaign-card-hero {
  height: 280px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-soft);
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.campaign-card-hero:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
}
.campaign-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.85) 100%);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 24px;
}

.product-card .card { 
  border: none; 
  border-radius: var(--radius-md); 
  background: var(--surface);
  box-shadow: var(--shadow-soft);
  transition: transform 0.25s ease, box-shadow 0.25s ease; 
  height: 100%; 
  overflow: hidden;
}
.product-card .card:hover { 
  transform: translateY(-5px); 
  box-shadow: var(--shadow-hover) !important; 
}
.product-img-container {
  height: 210px;
  background-color: #ffffff;
  padding: 16px;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  cursor: pointer;
}
.product-img-container img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain; 
}

.product-title-truncated {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 2.6em;
  line-height: 1.3;
}

.stepper-btn {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: none;
  background-color: var(--brand-light);
  color: var(--brand);
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.2s ease;
}
.stepper-btn:hover { background-color: #ffedd5; }

.bottom-nav-item {
  display: flex; flex-direction: column; align-items: center;
  color: var(--text-muted);
  font-size: 0.72rem; font-weight: 700;
  text-decoration: none;
  background: none; border: none;
  padding: 6px 12px;
  border-radius: 12px;
  transition: all 0.2s ease;
}
.bottom-nav-item.active {
  color: var(--brand);
  background-color: var(--brand-light);
}
.bottom-nav-icon { font-size: 1.3rem; margin-bottom: 2px; }

.eye-btn { cursor: pointer; background-color: #f8fafc; border-color: #e2e8f0; }

/* STILI LAYOUT MOBILE & BOTTOM NAV */
@media (max-width: 767.98px) {
  body {
    padding-bottom: 100px !important;
  }

  .bottom-nav {
    display: flex !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 65px !important;
    background: #ffffff !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08) !important;
    z-index: 1040 !important;
    justify-content: space-around;
    align-items: center;
    border-top: 1px solid #f1f5f9;
  }

  #nav-cart-button {
    padding: 4px 8px !important;
  }
}

@media (min-width: 768px) {
  .bottom-nav {
    display: none !important;
  }
}

/* =========================================================
   Checkout / storico ordini - revisione 2026-09
   Carrello coerente con "Ordini & Arrivi": compatto, per sede,
   con tabella prodotti e riepilogo logistico separato.
   ========================================================= */
.checkout-page { padding: clamp(1rem, 2.5vw, 2rem); }

.checkout-topbar,
.checkout-category-head,
.checkout-submit-panel,
.order-history-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.checkout-topbar { margin-bottom: 1.5rem; }
.checkout-topbar h3,
.checkout-category-head h4,
.order-history-head h4 { margin: 0; font-weight: 800; }
.checkout-topbar p { margin: .35rem 0 0; color: var(--text-muted); }

.checkout-kicker {
  display: block;
  margin-bottom: .25rem;
  color: var(--text-muted);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.checkout-budget-warning {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border-radius: 12px;
  margin-bottom: .75rem;
}

.checkout-campaigns { display: grid; gap: 1.75rem; }
.checkout-campaign-head { margin-bottom: .75rem; }
.checkout-campaign-head h3 { margin: 0; font-weight: 800; font-size: 1.2rem; }
.checkout-categories { display: grid; gap: 1rem; }

.checkout-category {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.checkout-category.meets-minimum { border-top: 4px solid #198754; }
.checkout-category.below-minimum { border-top: 4px solid #dc3545; }
.checkout-category-head { padding: 1rem 1.1rem; border-bottom: 1px solid #eef2f7; }
.checkout-category-total { text-align: right; display: grid; gap: .15rem; justify-items: end; }
.checkout-category-total > strong { font-size: 1.25rem; }
.checkout-category-total > small { color: var(--text-muted); }

.checkout-status {
  display: inline-flex;
  width: fit-content;
  padding: .25rem .55rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
}

.checkout-status.ok { background: #ecfdf3; color: #157347; }
.checkout-status.ko { background: #fff1f2; color: #b42318; }
.checkout-status.pending { background: #fff7ed; color: #9a3412; }

.checkout-minimum-note {
  margin: .9rem 1rem 0;
  padding: .75rem .9rem;
  border-radius: 10px;
  background: #fff7ed;
  color: #7c2d12;
  font-size: .9rem;
  font-weight: 600;
}

/* Sedi: prima si legge cosa è stato ordinato, poi la logistica. */
.checkout-shop-sections { padding: .2rem 1rem .4rem; }
.checkout-shop-section { padding: .9rem 0; }
.checkout-shop-section + .checkout-shop-section { border-top: 1px dashed #dbe2ea; }

.checkout-shop-block-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .75rem;
  margin-bottom: .45rem;
}

.checkout-shop-block-head strong {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text-dark);
}

.checkout-shop-block-meta {
  color: var(--text-muted);
  font-size: .82rem;
  font-weight: 700;
  white-space: nowrap;
}

.checkout-table-wrap {
  border: 1px solid #e5eaf0;
  border-radius: 10px;
  overflow: auto;
  background: #fff;
}

.checkout-cart-table {
  min-width: 700px;
  --bs-table-bg: transparent;
  --bs-table-hover-bg: #fffaf5;
}

.checkout-cart-table thead th {
  background: #f8fafc;
  color: var(--text-dark);
  border-bottom: 1px solid #dfe5ec;
  padding: .6rem .7rem;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}

.checkout-cart-table tbody td {
  padding: .55rem .7rem;
  border-color: #eef2f7;
  vertical-align: middle;
}

.checkout-code-cell { width: 145px; white-space: nowrap; }
.checkout-code-cell code { font-size: .82rem; }
.checkout-product-cell { min-width: 280px; }
.checkout-product-cell strong { display: block; font-size: .9rem; color: var(--text-dark); }
.checkout-qty-cell { width: 120px; }
.checkout-money-cell { width: 110px; white-space: nowrap; }
.checkout-remove-cell { width: 52px; }
.checkout-remove-head { width: 52px; }

.checkout-stepper {
  display: inline-grid;
  grid-template-columns: 30px 34px 30px;
  align-items: center;
  border: 1px solid #dbe2ea;
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
}

.checkout-stepper button {
  border: 0;
  background: #f8fafc;
  height: 30px;
  font-weight: 800;
}

.checkout-stepper button:hover { background: #fff1e8; color: var(--brand-dark); }
.checkout-stepper span { text-align: center; font-size: .82rem; font-weight: 800; }

/* Logistica: sempre dopo tutte le sedi del modulo. */
.checkout-logistics {
  margin: .35rem 1rem 1rem;
  padding: .9rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
}

.checkout-logistics-head h5 { margin: 0; font-size: 1rem; font-weight: 800; }
.checkout-logistics-list { display: grid; gap: .55rem; margin-top: .65rem; }

.checkout-logistics-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: .7rem .8rem;
  border-radius: 10px;
  background: #fff;
  border-left: 4px solid #e2e8f0;
}

.checkout-logistics-row.is-direct { border-left-color: #198754; }
.checkout-logistics-row.is-grouped { border-left-color: #f59e0b; }
.checkout-logistics-main { display: grid; gap: .15rem; min-width: 0; }
.checkout-logistics-kind { color: var(--text-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.checkout-logistics-main > strong { font-size: .88rem; color: var(--text-dark); }
.checkout-logistics-total { white-space: nowrap; font-size: .9rem; }
.checkout-logistics-destination { margin-top: .45rem; }
.checkout-logistics-destination label { display: block; margin-bottom: .3rem; font-size: .78rem; font-weight: 800; color: var(--text-dark); }
.checkout-logistics-destination .form-select { min-width: min(420px, 70vw); }
.checkout-logistics-fixed-destination { color: var(--text-muted); }

.checkout-submit-panel {
  margin-top: 1.25rem;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  align-items: center;
  flex-wrap: wrap;
}

.checkout-submit-panel > div:first-child { display: grid; }
.checkout-submit-panel > div:first-child span { color: var(--text-muted); font-size: .8rem; font-weight: 700; }
.checkout-submit-panel > div:first-child strong { font-size: 1.45rem; }
.checkout-force { display: flex; gap: .6rem; align-items: flex-start; margin-left: auto; }
.checkout-force span { display: grid; }
.checkout-force small { color: var(--text-muted); }
.checkout-empty { text-align: center; padding: 3rem 1.25rem; }

/* Ordini & Arrivi */
.order-history-card {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  margin-bottom: 1rem;
  overflow: hidden;
}

.order-history-head { padding: 1rem 1.1rem; border-bottom: 1px solid #eef2f7; }
.order-history-head small { color: var(--text-muted); }
.order-history-status { display: grid; gap: .25rem; justify-items: end; }
.order-history-meta { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; padding: .9rem 1.1rem; background: #f8fafc; }
.order-history-meta > div { display: grid; gap: .15rem; }
.order-history-meta span { color: var(--text-muted); font-size: .75rem; font-weight: 700; }
.order-history-footer { padding: .8rem 1.1rem; border-top: 1px solid #eef2f7; display: flex; justify-content: flex-end; }

@media (max-width: 767.98px) {
  .checkout-topbar,
  .checkout-category-head,
  .checkout-submit-panel,
  .order-history-head { flex-direction: column; }

  .checkout-category-total,
  .order-history-status { text-align: left; justify-items: start; }

  .checkout-shop-sections { padding-left: .7rem; padding-right: .7rem; }
  .checkout-product-cell { min-width: 220px; }
  .checkout-logistics { margin-left: .7rem; margin-right: .7rem; }
  .checkout-logistics-row { flex-direction: column; gap: .45rem; }
  .checkout-logistics-destination { width: 100%; }
  .checkout-logistics-destination .form-select { min-width: 0; width: 100%; }
  .checkout-force { margin-left: 0; }
  .order-history-meta { grid-template-columns: 1fr; }
}

/* =========================================================
   ALTRAQUALITÀ B2B — VISUAL SYSTEM 2026
   Ispirazione: showroom wholesale + backoffice operativo.
   Solo presentazione: nessuna logica applicativa modificata.
   ========================================================= */
:root {
  --aq-brand: #f56f11;
  --aq-brand-dark: #c94f08;
  --aq-brand-soft: #fff3e8;
  --aq-brand-softer: #fffaf6;
  --aq-ink: #172033;
  --aq-ink-soft: #344054;
  --aq-muted: #667085;
  --aq-canvas: #f5f7fa;
  --aq-surface: #ffffff;
  --aq-surface-alt: #f9fafb;
  --aq-border: #e4e7ec;
  --aq-border-strong: #d0d5dd;
  --aq-success: #157f5b;
  --aq-warning: #a15c00;
  --aq-danger: #b42318;
  --aq-info: #175cd3;
  --aq-radius-xl: 18px;
  --aq-radius-lg: 14px;
  --aq-radius-md: 10px;
  --aq-shadow-xs: 0 1px 2px rgba(16,24,40,.04);
  --aq-shadow-sm: 0 4px 12px rgba(16,24,40,.05);
  --aq-shadow-md: 0 12px 30px rgba(16,24,40,.08);
  --brand: var(--aq-brand);
  --brand-dark: var(--aq-brand-dark);
  --brand-light: var(--aq-brand-soft);
  --bg-color: var(--aq-canvas);
  --surface: var(--aq-surface);
  --text-dark: var(--aq-ink);
  --text-muted: var(--aq-muted);
  --radius-lg: var(--aq-radius-xl);
  --radius-md: var(--aq-radius-lg);
  --shadow-soft: var(--aq-shadow-sm);
  --shadow-hover: var(--aq-shadow-md);
}

html { background: var(--aq-canvas); }
body {
  background:
    radial-gradient(circle at 12% -10%, rgba(245,111,17,.05), transparent 28rem),
    var(--aq-canvas);
  color: var(--aq-ink);
  letter-spacing: -.005em;
}

/* Tipografia e controlli */
h1,h2,h3,h4,h5,h6 { color: var(--aq-ink); letter-spacing: -.025em; }
.fw-extrabold { font-weight: 800 !important; }
.text-muted { color: var(--aq-muted) !important; }

.form-control,
.form-select,
.input-group-text {
  border-color: var(--aq-border);
  border-radius: var(--aq-radius-md);
  min-height: 42px;
}
.form-control:focus,
.form-select:focus {
  border-color: rgba(245,111,17,.65);
  box-shadow: 0 0 0 3px rgba(245,111,17,.10);
}

.btn {
  border-radius: var(--aq-radius-md);
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.btn-brand {
  border-radius: var(--aq-radius-md);
  padding: .66rem 1.1rem;
  box-shadow: none;
}
.btn-brand:hover,
.btn-brand:focus {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(245,111,17,.18);
}
.btn-outline-brand {
  border-width: 1px;
  border-radius: var(--aq-radius-md);
}

/* Login: più showroom, meno landing-page generica */
.auth-wrapper { background: #fff; }
.auth-banner-overlay {
  background:
    linear-gradient(180deg, rgba(13,18,28,.18), rgba(13,18,28,.76)),
    linear-gradient(135deg, rgba(245,111,17,.12), transparent 55%);
}
.auth-form-container { max-width: 400px; }
.auth-form-container h3 { font-size: 1.7rem; }
.auth-card {
  border: 1px solid var(--aq-border);
  box-shadow: var(--aq-shadow-md);
  border-radius: var(--aq-radius-xl);
}
.center-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
}

/* Header buyer — Pepperi-like: sede e carrello diventano controlli operativi */
.top-nav {
  min-height: 68px;
  padding: 10px clamp(14px, 2.2vw, 34px);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--aq-border);
  box-shadow: 0 1px 0 rgba(16,24,40,.02);
  gap: 18px;
}
.top-nav > div:first-child img { box-shadow: 0 0 0 1px rgba(16,24,40,.06); }
.top-nav h5 { letter-spacing: -.03em; }
.top-nav .nav-link-custom {
  position: relative;
  color: var(--aq-ink-soft) !important;
  font-size: .91rem;
  padding: 22px 0;
  font-weight: 700 !important;
}
.top-nav .nav-link-custom::after {
  content: '';
  position: absolute;
  left: 50%; right: 50%; bottom: 8px;
  height: 2px;
  background: var(--aq-brand);
  border-radius: 99px;
  transition: left .16s ease, right .16s ease;
}
.top-nav .nav-link-custom:hover { color: var(--aq-brand-dark) !important; }
.top-nav .nav-link-custom:hover::after { left: 0; right: 0; }
body:has(#app-section[style*="display: block"]) .nav-link-custom[onclick*="app-section"]::after,
body:has(#orders-section[style*="display: block"]) .nav-link-custom[onclick*="orders-section"]::after,
body:has(#budget-section[style*="display: block"]) .nav-link-custom[onclick*="budget-section"]::after,
body:has(#profile-section[style*="display: block"]) .nav-link-custom[onclick*="profile-section"]::after { left: 0; right: 0; }

.top-nav-buttons { gap: 6px; }
.top-nav-buttons > .d-flex.bg-light {
  background: #fff !important;
  border-color: var(--aq-border) !important;
  border-radius: 11px !important;
  min-height: 40px;
  padding-left: 12px !important;
  padding-right: 10px !important;
}
#global-bottega-selector {
  color: var(--aq-ink) !important;
  min-width: 135px;
}
#nav-cart-button {
  min-height: 40px;
  padding: .42rem .78rem;
  background: var(--aq-brand-softer);
  border-color: rgba(245,111,17,.55);
  color: var(--aq-brand-dark);
}
#nav-cart-button:hover {
  background: var(--aq-brand);
  border-color: var(--aq-brand);
  color: #fff;
}
#nav-cart-button .badge { font-size: .67rem; }

/* Layout pagina */
#dashboard-wrapper {
  max-width: 1500px;
  margin: 0 auto !important;
  padding-top: 28px;
  padding-bottom: 48px;
}
.full-page-card {
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-xl);
  box-shadow: var(--aq-shadow-xs);
  padding: clamp(1rem, 2vw, 1.6rem);
}

/* Headings generali */
#orders-section > .full-page-card > .d-flex:first-child,
#profile-section > .full-page-card > h3,
#budget-section > .full-page-card > h3 {
  position: relative;
}
#orders-section > .full-page-card > .d-flex:first-child::before { content: none; }

/* Vetrina campagne — NuORDER-like: più contenuto visibile, meno hero */
#app-container > .col-12.mb-4.text-start { margin-bottom: 1.25rem !important; }
#app-container > .col-12.mb-4.text-start h2 {
  font-size: clamp(1.55rem, 2.5vw, 2rem);
  margin-bottom: .25rem !important;
}
#app-container > .col-12.mb-4.text-start p { max-width: 760px; font-size: .92rem; }

.campaign-card-hero {
  height: 198px;
  border-radius: var(--aq-radius-xl);
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: var(--aq-shadow-sm);
  transform: none;
}
.campaign-card-hero:hover {
  transform: translateY(-2px);
  box-shadow: var(--aq-shadow-md);
}
.campaign-overlay {
  padding: 18px;
  background: linear-gradient(180deg, rgba(8,13,23,.12) 0%, rgba(8,13,23,.18) 33%, rgba(8,13,23,.90) 100%);
}
.campaign-overlay .badge {
  box-shadow: none !important;
  border: 1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(7px);
  font-size: .68rem !important;
  padding: .38rem .62rem !important;
}
.campaign-overlay h3 {
  font-size: 1.18rem;
  line-height: 1.25;
  margin-bottom: .5rem !important;
}
.campaign-overlay .text-brand {
  color: #ffb77f !important;
  font-size: .66rem !important;
  letter-spacing: .06em;
}

/* Moduli ordine */
.campaign-card {
  cursor: pointer;
  border: 1px solid var(--aq-border) !important;
  border-radius: var(--aq-radius-lg) !important;
  box-shadow: var(--aq-shadow-xs);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
  background: #fff;
}
.campaign-card:hover {
  border-color: rgba(245,111,17,.40) !important;
  box-shadow: var(--aq-shadow-sm);
  transform: translateY(-1px);
}
.campaign-card .card-body { padding: .35rem !important; }
.campaign-card h4 { font-size: 1rem; margin-top: .15rem; }
.campaign-card .badge.bg-light {
  background: var(--aq-brand-soft) !important;
  border: 0 !important;
  border-radius: 6px !important;
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.campaign-card .progress { height: 7px !important; background: #edf0f3 !important; }
.campaign-card .progress-bar { box-shadow: none; background-image: none !important; }

/* Barra ricerca catalogo */
#inline-product-search { min-height: 48px; }
#inline-product-search::placeholder { color: #98a2b3; }
.input-group:has(#inline-product-search) {
  box-shadow: var(--aq-shadow-xs) !important;
  border-radius: var(--aq-radius-lg) !important;
  border-color: var(--aq-border) !important;
  background: #fff;
}

/* Catalogo prodotto — tile wholesale compatto */
#products-grid-wrapper { row-gap: 14px !important; }
.product-card { margin-bottom: 0 !important; }
.product-card .card {
  border: 1px solid var(--aq-border) !important;
  border-radius: var(--aq-radius-lg);
  box-shadow: var(--aq-shadow-xs) !important;
  transform: none;
  background: #fff;
}
.product-card .card:hover {
  transform: translateY(-2px);
  border-color: #d8dde5 !important;
  box-shadow: var(--aq-shadow-sm) !important;
}
.product-img-container {
  height: 172px;
  padding: 14px;
  background: linear-gradient(180deg,#fff,#fbfcfd);
  border-bottom: 1px solid var(--aq-border);
}
.product-img-container .badge {
  font-size: .62rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
  opacity: .88 !important;
  box-shadow: none !important;
}
.product-card .card > .badge.position-absolute {
  margin: 8px !important;
  font-size: .62rem;
  box-shadow: none !important;
  z-index: 5 !important;
}
.product-card .card-body {
  padding: 12px 13px 13px !important;
  border-top: 0 !important;
}
.product-title-truncated {
  height: 2.65em;
  font-size: .88rem;
  line-height: 1.34;
  margin-bottom: .25rem !important;
}
.product-card .card-body > span.text-muted:first-child {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  color: #98a2b3 !important;
  font-size: .67rem !important;
  letter-spacing: .01em;
}
.product-card .card-body small.text-success,
.product-card .card-body small.text-primary {
  font-size: .66rem !important;
  font-weight: 650 !important;
}
.product-card .card-body .fs-5.text-brand {
  font-size: 1.02rem !important;
  color: var(--aq-ink) !important;
}
.product-card .card-body .text-muted.small.fw-semibold { font-size: .68rem !important; }
.product-card .btn-brand { padding: .5rem .7rem; font-size: .78rem !important; }
.product-card .stepper-btn,
.stepper-btn {
  width: 30px;
  height: 30px;
  background: #f5f6f8;
  color: var(--aq-ink);
}
.product-card .stepper-btn:hover,
.stepper-btn:hover { background: var(--aq-brand-soft); color: var(--aq-brand-dark); }

/* Galleria prodotto */
#galleryModal .modal-content {
  border-radius: var(--aq-radius-xl) !important;
  border: 1px solid var(--aq-border) !important;
  box-shadow: 0 24px 60px rgba(16,24,40,.18) !important;
}
#galleryModal .modal-header { padding: 1rem 1.2rem .7rem; }
#galleryModal .modal-body { background: #fbfcfd !important; }
#modal-product-details { background: #fff !important; padding: 1.1rem 1.2rem !important; }

/* Carrello offcanvas */
#offcanvasCarrello {
  width: min(460px, 94vw);
  border-left: 1px solid var(--aq-border);
  border-radius: 0 !important;
}
#offcanvasCarrello .offcanvas-header { padding: 1rem 1.1rem; }
#offcanvasCarrello .offcanvas-title { font-size: 1rem; }
#offcanvas-carrello-content { background: var(--aq-surface-alt); }

/* Checkout e storico: allineati allo stesso design system */
.checkout-page { padding: 0; }
.checkout-category,
.order-history-card,
.checkout-submit-panel {
  border-color: var(--aq-border);
  border-radius: var(--aq-radius-lg);
  box-shadow: var(--aq-shadow-xs);
}
.checkout-category.meets-minimum { border-top: 1px solid var(--aq-border); border-left: 4px solid var(--aq-success); }
.checkout-category.below-minimum { border-top: 1px solid var(--aq-border); border-left: 4px solid var(--aq-danger); }
.checkout-category-head { background: #fff; }
.checkout-table-wrap { border-color: var(--aq-border); border-radius: var(--aq-radius-md); }
.checkout-cart-table thead th,
.order-history-card .table thead th {
  background: #f7f8fa;
  color: var(--aq-muted);
  text-transform: uppercase;
  letter-spacing: .045em;
  font-size: .68rem;
}
.checkout-cart-table tbody td,
.order-history-card .table tbody td { font-size: .82rem; }
.checkout-logistics { background: #f7f8fa; border-color: var(--aq-border); }
.checkout-logistics-row { border: 1px solid var(--aq-border); border-left-width: 4px; }
.checkout-submit-panel { position: sticky; bottom: 12px; z-index: 20; box-shadow: 0 10px 26px rgba(16,24,40,.10); }
.order-history-meta { background: #f8f9fb; }
.order-history-footer { background: #fff; }

/* Gestione rete — card di sede e budget più leggibili */
#budget-section .full-page-card { max-width: 1180px !important; }
#budget-section .full-page-card > h3 { color: var(--aq-ink) !important; }
#budget-section .full-page-card > .bg-light {
  background: #fff !important;
  border: 1px solid var(--aq-border) !important;
  box-shadow: none !important;
  border-radius: var(--aq-radius-lg) !important;
}
#botteghe-list-container > .bg-light {
  background: #fff !important;
  border: 1px solid var(--aq-border) !important;
  box-shadow: var(--aq-shadow-xs) !important;
  border-radius: var(--aq-radius-lg) !important;
}
#botteghe-list-container .bg-white.rounded-3.border {
  background: #f8f9fb !important;
  border-color: var(--aq-border) !important;
}
#botteghe-list-container .bg-light.border.border-secondary-subtle {
  background: #fff !important;
  border-color: var(--aq-border) !important;
  box-shadow: none !important;
}

/* Profilo */
#profile-section .full-page-card {
  border: 1px solid var(--aq-border);
  box-shadow: var(--aq-shadow-sm);
}
#profile-section input[readonly] { background: #f8f9fb !important; border-color: var(--aq-border); }

/* Mobile */
@media (max-width: 991.98px) {
  #dashboard-wrapper { padding-top: 18px; }
  .campaign-card-hero { height: 178px; }
  .top-nav { min-height: 62px; padding: 8px 12px; }
}

@media (max-width: 767.98px) {
  body { background: #fff; }
  .top-nav { box-shadow: 0 1px 0 var(--aq-border); }
  .top-nav-buttons > button[data-bs-target="#offcanvasNavMobile"] { display: none !important; }
  .top-nav-buttons > .d-flex.bg-light { padding-left: 8px !important; padding-right: 6px !important; margin-right: 4px !important; }
  #global-bottega-selector { min-width: 105px; max-width: 145px; font-size: .76rem; }
  #nav-cart-button { margin-right: 0 !important; }
  #dashboard-wrapper { padding-left: 12px !important; padding-right: 12px !important; padding-bottom: 86px; }
  .full-page-card { border-radius: 12px; padding: 1rem; box-shadow: none; }
  .campaign-card-hero { height: 164px; }
  .campaign-overlay { padding: 14px; }
  .campaign-overlay h3 { font-size: 1.02rem; }
  .product-img-container { height: 150px; }
  .product-card .card-body { padding: 10px !important; }
  .checkout-submit-panel { bottom: 72px; }
  .bottom-nav {
    height: 68px !important;
    box-shadow: 0 -8px 24px rgba(16,24,40,.07) !important;
    border-color: var(--aq-border) !important;
  }
  .bottom-nav-item { border-radius: 9px; min-width: 58px; }
  .bottom-nav-item.active { background: transparent; color: var(--aq-brand-dark); }
  .bottom-nav-icon { font-size: 1.15rem; }
}


/* =========================================================
   Restyle V2 — login + Ordini & Arrivi
   ========================================================= */

/* Sul visual del login il testo deve restare bianco sopra la fotografia. */
.auth-banner-overlay,
.auth-banner-overlay h1,
.auth-banner-overlay h2,
.auth-banner-overlay h3,
.auth-banner-overlay h4,
.auth-banner-overlay h5,
.auth-banner-overlay p,
.auth-banner-overlay div,
.auth-banner-overlay span {
  color: #fff !important;
}

#orders-section > .full-page-card > .d-flex:first-child {
  margin-bottom: 1.1rem !important;
}
#orders-section > .full-page-card > .d-flex:first-child h3 {
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
  letter-spacing: -.035em;
}
#orders-section > .full-page-card > .d-flex:first-child p {
  max-width: 880px;
  font-size: .9rem !important;
}

.orders-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: .25rem 0 1rem;
}
.orders-overview > div {
  background: #f8f9fb;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-md);
  padding: .8rem .95rem;
  display: grid;
  gap: .2rem;
}
.orders-overview span {
  color: var(--aq-muted);
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .055em;
}
.orders-overview strong {
  color: var(--aq-ink);
  font-size: 1.05rem;
  letter-spacing: -.02em;
}

.orders-card-list {
  display: grid;
  gap: .8rem;
}
.order-summary-card {
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-lg);
  overflow: hidden;
  box-shadow: var(--aq-shadow-xs);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.order-summary-card:hover,
.order-summary-card.is-open {
  border-color: #cfd5dd;
  box-shadow: var(--aq-shadow-sm);
}
.order-summary-toggle {
  width: 100%;
  border: 0;
  background: #fff;
  color: inherit;
  padding: 1rem 1.05rem;
  display: grid;
  grid-template-columns: minmax(260px, 1.3fr) minmax(470px, 1fr);
  align-items: center;
  gap: 1rem;
  text-align: left;
}
.order-summary-toggle:hover { background: #fcfcfd; }
.order-summary-main { min-width: 0; }
.order-campaign-label {
  display: block;
  color: var(--aq-muted);
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .065em;
  margin-bottom: .28rem;
}
.order-summary-main h4 {
  margin: 0;
  color: var(--aq-ink);
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: -.025em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.order-summary-sub {
  margin-top: .3rem;
  color: var(--aq-muted);
  font-size: .76rem;
  font-weight: 600;
}
.order-summary-metrics {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(150px, 1.15fr) minmax(120px, .8fr) 24px;
  gap: .8rem;
  align-items: center;
}
.order-summary-metric {
  display: grid;
  gap: .18rem;
  min-width: 0;
}
.order-summary-metric > span:first-child {
  color: var(--aq-muted);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 800;
}
.order-summary-metric > strong {
  color: var(--aq-ink);
  font-size: .84rem;
  line-height: 1.25;
}
.order-summary-metric.total { text-align: right; }
.order-summary-metric.total > strong {
  font-size: 1rem;
  letter-spacing: -.02em;
}
.order-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border-radius: 999px;
  padding: .26rem .55rem;
  font-size: .72rem !important;
  font-weight: 800;
}
.order-status.ok { background: #ecfdf3; color: #157347 !important; }
.order-status.partial { background: #fff7ed; color: #9a3412 !important; }
.order-status.pending { background: #f2f4f7; color: #475467 !important; }
.order-summary-chevron {
  color: #98a2b3;
  font-size: 1rem;
  transition: transform .18s ease;
}
.order-summary-card.is-open .order-summary-chevron { transform: rotate(180deg); }

.order-detail-panel {
  border-top: 1px solid var(--aq-border);
  background: #fbfcfd;
}
.order-detail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--aq-border);
  background: #fff;
}
.order-detail-stats {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
}
.order-detail-stats span {
  color: var(--aq-muted);
  font-size: .74rem;
  border-right: 1px solid var(--aq-border);
  padding-right: .65rem;
}
.order-detail-stats span:last-child { border-right: 0; padding-right: 0; }
.order-detail-stats strong { color: var(--aq-ink); }
.order-detail-actions {
  display: flex;
  gap: .45rem;
  align-items: end;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.order-sort-control {
  display: grid;
  gap: .15rem;
  min-width: 150px;
}
.order-sort-control > span {
  color: var(--aq-muted);
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .045em;
  font-weight: 800;
}
.order-sort-control .form-select {
  min-height: 31px;
  font-size: .75rem;
}
.order-detail-lines {
  display: grid;
  gap: .7rem;
  padding: .8rem 1rem 1rem;
}
.order-shipment-block {
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: var(--aq-radius-md);
  overflow: hidden;
}
.order-shipment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .65rem .8rem;
  background: #f8f9fb;
  border-bottom: 1px solid var(--aq-border);
}
.order-shipment-head > div:first-child { display: grid; gap: .08rem; }
.order-shipment-head strong { font-size: .8rem; color: var(--aq-ink); }
.order-shipment-label {
  color: var(--aq-muted);
  font-size: .61rem;
  text-transform: uppercase;
  letter-spacing: .055em;
  font-weight: 800;
}
.order-shipment-total {
  color: var(--aq-muted);
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.order-lines-wrap { background: #fff; }
.order-lines-table thead th {
  background: #fff !important;
  color: var(--aq-muted);
  font-size: .64rem;
  text-transform: uppercase;
  letter-spacing: .045em;
  border-bottom-color: var(--aq-border);
  padding: .55rem .65rem;
}
.order-lines-table tbody td {
  font-size: .78rem;
  padding: .58rem .65rem;
  border-bottom-color: #eef1f4;
}
.order-lines-table tbody tr:last-child td { border-bottom: 0; }
.order-lines-table code {
  color: #b54708;
  font-size: .72rem;
}
.order-shop-name { color: var(--aq-ink-soft); font-weight: 700; }
.order-detail-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  padding: .75rem 1rem;
  background: #fff;
  border-top: 1px solid var(--aq-border);
}
.order-detail-note {
  color: var(--aq-muted);
  font-size: .72rem;
  line-height: 1.4;
}

@media (max-width: 991.98px) {
  .order-summary-toggle {
    grid-template-columns: 1fr;
    gap: .8rem;
  }
  .order-summary-metrics { grid-template-columns: repeat(3, 1fr) 24px; }
  .order-summary-metric.total { text-align: left; }
}

@media (max-width: 767.98px) {
  .orders-overview { grid-template-columns: 1fr; gap: .45rem; }
  .orders-overview > div { grid-template-columns: 1fr auto; align-items: center; }
  .order-summary-toggle { padding: .9rem; }
  .order-summary-metrics {
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
  }
  .order-summary-chevron { display: none; }
  .order-summary-metric.total { grid-column: 1 / -1; }
  .order-detail-toolbar,
  .order-detail-footer,
  .order-shipment-head {
    align-items: stretch;
    flex-direction: column;
  }
  .order-detail-actions { justify-content: flex-start; }
  .order-sort-control { width: 100%; }
  .order-detail-actions .btn { flex: 1 1 auto; }
  .order-lines-table { min-width: 720px; }
}

/* =========================================================
   ALTRAQUALITÀ B2B — V3 WORKSPACE
   Gerarchia cliente: Vetrina / Ordini & Arrivi / Budget / Profilo
   ========================================================= */

/* Login: sul visual fotografico il testo deve rimanere sempre bianco. */
.auth-banner-overlay,
.auth-banner-overlay *,
.auth-banner-overlay h1,
.auth-banner-overlay h2,
.auth-banner-overlay h3,
.auth-banner-overlay h4,
.auth-banner-overlay p,
.auth-banner-overlay span,
.auth-banner-overlay div { color: #fff !important; }

.top-nav-logo {
  width: 36px;
  height: 36px;
  border-radius: 7px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(16,24,40,.06);
}

.active-shop-control {
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: 11px;
  min-height: 40px;
  padding: 0 10px 0 12px;
}
.active-shop-control #global-bottega-selector {
  min-height: 34px;
  min-width: 150px;
  color: var(--aq-ink) !important;
  box-shadow: none !important;
}

.top-nav .nav-link-custom.active { color: var(--aq-ink) !important; }
.top-nav .nav-link-custom.active::after { left: 0; right: 0; }

/* Shell comune alle sezioni operative. */
.workspace-shell {
  max-width: 1480px;
  margin: 0 auto 2rem;
}
.workspace-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.15rem;
}
.workspace-heading > div:first-child { min-width: 0; }
.workspace-eyebrow {
  display: block;
  margin-bottom: .28rem;
  color: var(--aq-brand-dark);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.workspace-heading h2 {
  margin: 0;
  font-size: clamp(1.55rem, 2.2vw, 2.05rem);
  font-weight: 800;
  letter-spacing: -.04em;
}
.workspace-heading p {
  margin: .35rem 0 0;
  color: var(--aq-muted);
  font-size: .9rem;
  max-width: 760px;
}

/* ---------------------------------------------------------
   ORDINI & ARRIVI — vere card ordine, filtri e dettaglio
   --------------------------------------------------------- */
.orders-workspace #orders-list-container { min-height: 220px; }

.orders-toolbar {
  display: flex;
  align-items: end;
  gap: .65rem;
  flex-wrap: wrap;
  padding: .75rem;
  margin-bottom: .8rem;
  border: 1px solid var(--aq-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--aq-shadow-xs);
}
.orders-filter {
  display: grid;
  gap: .18rem;
  min-width: 180px;
}
.orders-filter:first-child { min-width: 230px; }
.orders-filter label {
  color: var(--aq-muted);
  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.orders-filter .form-select {
  min-height: 34px;
  font-size: .76rem;
  font-weight: 650;
}
.orders-reset { min-height: 34px; margin-left: auto; }

.orders-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin: 0 0 .9rem;
}
.orders-overview > div {
  padding: .72rem .85rem;
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: 11px;
  box-shadow: var(--aq-shadow-xs);
}
.orders-overview span {
  display: block;
  color: var(--aq-muted);
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .055em;
}
.orders-overview strong {
  display: block;
  margin-top: .15rem;
  color: var(--aq-ink);
  font-size: 1.08rem;
}

.orders-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  align-items: start;
}
.order-summary-card {
  position: relative;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--aq-shadow-xs);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.order-summary-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--aq-brand);
  opacity: .88;
  z-index: 1;
}
.order-summary-card:hover {
  border-color: #cfd5dd;
  box-shadow: var(--aq-shadow-sm);
  transform: translateY(-1px);
}
.order-summary-card.is-open {
  grid-column: 1 / -1;
  border-color: #cfd5dd;
  box-shadow: var(--aq-shadow-sm);
  transform: none;
}
.order-summary-toggle {
  width: 100%;
  display: block;
  padding: 1rem 1.05rem 0;
  border: 0;
  background: #fff;
  color: inherit;
  text-align: left;
}
.order-summary-toggle:hover { background: #fff; }
.order-card-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  margin-bottom: .7rem;
}
.order-campaign-label {
  margin: 0;
  color: var(--aq-brand-dark);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.order-summary-main h4 {
  margin: 0;
  color: var(--aq-ink);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
  white-space: normal;
}
.order-summary-sub {
  margin-top: .25rem;
  color: var(--aq-muted);
  font-size: .73rem;
  font-weight: 600;
}
.order-summary-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
  margin-top: .85rem;
}
.order-summary-metric {
  padding: .65rem .7rem;
  border: 1px solid #edf0f3;
  border-radius: 10px;
  background: #f9fafb;
}
.order-summary-metric > span:first-child {
  display: block;
  color: var(--aq-muted);
  font-size: .59rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.order-summary-metric > strong {
  display: block;
  margin-top: .15rem;
  color: var(--aq-ink);
  font-size: .84rem;
}
.order-summary-metric.total { text-align: left; }
.order-summary-metric.total > strong { font-size: 1.02rem; }
.order-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: .9rem -1.05rem 0;
  padding: .7rem 1.05rem;
  border-top: 1px solid var(--aq-border);
  background: #fbfcfd;
}
.order-card-stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .7rem;
  color: var(--aq-muted);
  font-size: .68rem;
  font-weight: 650;
}
.order-card-stats span { display: inline-flex; align-items: center; gap: .28rem; }
.order-card-stats i { color: #98a2b3; }
.order-open-label {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--aq-ink-soft);
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}
.order-summary-chevron { transition: transform .18s ease; }
.order-summary-card.is-open .order-summary-chevron { transform: rotate(180deg); }

.order-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border-radius: 999px;
  padding: .25rem .52rem;
  font-size: .66rem !important;
  font-weight: 800;
  white-space: nowrap;
}
.order-status.ok { background: #ecfdf3; color: #157347 !important; }
.order-status.partial { background: #fff7ed; color: #9a3412 !important; }
.order-status.pending { background: #f2f4f7; color: #475467 !important; }

.order-detail-panel {
  border-top: 1px solid var(--aq-border);
  background: #f8fafc;
}
.order-detail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  background: #fff;
  border-bottom: 1px solid var(--aq-border);
}
.order-detail-stats { display: flex; gap: .65rem; flex-wrap: wrap; }
.order-detail-stats span { color: var(--aq-muted); font-size: .72rem; }
.order-detail-stats strong { color: var(--aq-ink); }
.order-detail-actions { display: flex; align-items: end; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; }
.order-sort-control { display: grid; gap: .15rem; min-width: 145px; }
.order-sort-control > span { color: var(--aq-muted); font-size: .58rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.order-sort-control .form-select { min-height: 31px; font-size: .73rem; }
.order-detail-lines { display: grid; gap: .7rem; padding: .8rem 1rem 1rem; }
.order-shipment-block { background: #fff; border: 1px solid var(--aq-border); border-radius: 10px; overflow: hidden; }
.order-shipment-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .62rem .75rem; background: #f8f9fb; border-bottom: 1px solid var(--aq-border); }
.order-shipment-label { color: var(--aq-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.order-shipment-head strong { color: var(--aq-ink); font-size: .78rem; }
.order-shipment-total { color: var(--aq-muted); font-size: .69rem; font-weight: 700; }
.order-lines-table thead th { background: #fff !important; color: var(--aq-muted); font-size: .61rem; text-transform: uppercase; letter-spacing: .045em; padding: .5rem .62rem; }
.order-lines-table tbody td { font-size: .76rem; padding: .55rem .62rem; border-bottom-color: #eef1f4; }
.order-lines-table code { color: #b54708; font-size: .69rem; }
.order-detail-footer { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .75rem 1rem; background: #fff; border-top: 1px solid var(--aq-border); }
.order-detail-note { color: var(--aq-muted); font-size: .7rem; line-height: 1.45; }
.orders-empty-filter { grid-column: 1 / -1; }

/* ---------------------------------------------------------
   BUDGET — configurazione + monitoraggio, senza ruoli extra
   --------------------------------------------------------- */
.budget-campaign-list { display: grid; gap: .8rem; }
.budget-campaign {
  border: 1px solid var(--aq-border);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: var(--aq-shadow-xs);
}
.budget-campaign > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  cursor: pointer;
  user-select: none;
}
.budget-campaign > summary::-webkit-details-marker { display: none; }
.budget-campaign > summary > div:first-child { display: grid; gap: .08rem; }
.budget-campaign > summary span {
  color: var(--aq-muted);
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.budget-campaign > summary strong { color: var(--aq-ink); font-size: .98rem; }
.budget-campaign-meta { display: flex; align-items: center; gap: .55rem; color: var(--aq-muted); }
.budget-campaign-meta > span { text-transform: none !important; letter-spacing: 0 !important; font-size: .7rem !important; }
.budget-campaign-meta i { transition: transform .16s ease; }
.budget-campaign[open] .budget-campaign-meta i { transform: rotate(180deg); }
.budget-campaign-body { display: grid; gap: .8rem; padding: .8rem; background: #f8fafc; border-top: 1px solid var(--aq-border); }

.budget-module-card { background: #fff; border: 1px solid var(--aq-border); border-radius: 12px; overflow: hidden; }
.budget-module-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem .9rem; border-bottom: 1px solid var(--aq-border); }
.budget-module-head > div { display: grid; gap: .05rem; }
.budget-module-head span { color: var(--aq-muted); font-size: .59rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.budget-module-head h4 { margin: 0; font-size: .94rem; font-weight: 800; }

.budget-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; border-bottom: 1px solid var(--aq-border); background: #fbfcfd; }
.budget-kpi-grid > div { padding: .7rem .85rem; border-right: 1px solid var(--aq-border); }
.budget-kpi-grid > div:last-child { border-right: 0; }
.budget-kpi-grid span { display: block; color: var(--aq-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.budget-kpi-grid strong { display: block; margin-top: .12rem; color: var(--aq-ink); font-size: .98rem; }
.budget-kpi-grid small { display: block; margin-top: .05rem; color: var(--aq-muted); font-size: .62rem; }
.budget-kpi-grid .is-negative strong { color: var(--aq-danger); }

.budget-table { min-width: 790px; }
.budget-table thead th { padding: .5rem .7rem; color: var(--aq-muted); background: #fff; font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; border-bottom-color: var(--aq-border); }
.budget-table tbody td { padding: .58rem .7rem; font-size: .75rem; border-bottom-color: #eef1f4; }
.budget-row td:first-child strong { display: block; color: var(--aq-ink); }
.budget-row td:first-child span { display: block; margin-top: .05rem; color: var(--aq-muted); font-size: .64rem; }
.budget-input-cell { width: 155px; }
.budget-input-cell .input-group-text { min-height: 31px; font-size: .72rem; background: #f8fafc; }
.budget-input-cell .form-control { min-height: 31px; font-size: .74rem; }
.budget-readonly-value { display: inline-flex; align-items: center; min-height: 31px; padding: .25rem .5rem; color: var(--aq-ink); font-size: .75rem; font-weight: 750; }
.budget-readonly-value.is-unlimited { color: var(--aq-muted); font-weight: 500; }
.budget-readonly-note { display: inline-flex; align-items: center; color: var(--aq-muted); font-size: .68rem; font-weight: 700; white-space: nowrap; }
.budget-remaining { font-weight: 800; color: var(--aq-ink); }
.budget-remaining.negative { color: var(--aq-danger); }
.budget-progress-cell { width: 135px; }
.budget-mini-progress { height: 5px; border-radius: 999px; overflow: hidden; background: #eef1f4; }
.budget-mini-progress span { display: block; height: 100%; border-radius: inherit; background: var(--aq-brand); }
.budget-row.is-warning .budget-mini-progress span { background: #f59e0b; }
.budget-row.is-over .budget-mini-progress span { background: var(--aq-danger); }
.budget-progress-cell small { display: block; margin-top: .18rem; color: var(--aq-muted); font-size: .61rem; }

/* ---------------------------------------------------------
   PROFILO — account e sedi, budget separato
   --------------------------------------------------------- */
.profile-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; margin-bottom: .8rem; }
.profile-card,
.profile-sites-section {
  background: #fff;
  border: 1px solid var(--aq-border);
  border-radius: 14px;
  box-shadow: var(--aq-shadow-xs);
}
.profile-card { padding: 1rem; }
.profile-card-head { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: .9rem; }
.profile-card-head > i { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 9px; background: var(--aq-brand-soft); color: var(--aq-brand-dark); font-size: .95rem; }
.profile-card-head h3 { margin: 0; font-size: .94rem; font-weight: 800; }
.profile-card-head p { margin: .15rem 0 0; color: var(--aq-muted); font-size: .69rem; }
.profile-fields { display: grid; gap: .65rem; }
.profile-fields label,
.site-add-grid label,
.site-edit-grid label { display: block; margin-bottom: .22rem; color: var(--aq-muted); font-size: .61rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.profile-fields .form-control { min-height: 38px; font-size: .78rem; }

.profile-sites-section { overflow: hidden; }
.profile-sites-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .9rem 1rem; border-bottom: 1px solid var(--aq-border); }
.profile-sites-head h3 { margin: 0; font-size: .98rem; font-weight: 800; }
.profile-sites-head p { margin: .15rem 0 0; color: var(--aq-muted); font-size: .69rem; }
.profile-sites-count { padding: .26rem .52rem; border-radius: 999px; background: #f2f4f7; color: var(--aq-ink-soft); font-size: .66rem; font-weight: 800; white-space: nowrap; }
.site-add-panel { padding: .8rem 1rem; background: #fbfcfd; border-bottom: 1px solid var(--aq-border); }
.site-add-grid { display: grid; grid-template-columns: 1fr 1.35fr auto; gap: .65rem; align-items: end; }
.site-add-grid .form-control { min-height: 38px; font-size: .77rem; }
.site-add-grid .btn { min-height: 38px; }
.profile-sites-list { display: grid; }
.site-card { padding: .9rem 1rem; border-bottom: 1px solid var(--aq-border); }
.site-card:last-child { border-bottom: 0; }
.site-card-title { display: flex; align-items: center; gap: .65rem; margin-bottom: .75rem; }
.site-avatar { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: #f2f4f7; color: var(--aq-ink-soft); }
.site-card-title h4 { margin: 0; font-size: .86rem; font-weight: 800; }
.site-card-title p { margin: .1rem 0 0; color: var(--aq-muted); font-size: .66rem; }
.site-edit-grid { display: grid; grid-template-columns: 1.1fr 1.5fr .8fr 1.1fr; gap: .55rem; }
.site-edit-grid .form-control { min-height: 35px; font-size: .74rem; }
.site-card-actions { display: flex; justify-content: flex-end; gap: .4rem; margin-top: .65rem; }

.empty-state-compact { display: flex; align-items: center; gap: .7rem; padding: 1rem; color: var(--aq-muted); }
.empty-state-compact > i { font-size: 1.25rem; }
.empty-state-compact div { display: grid; gap: .08rem; }
.empty-state-compact strong { color: var(--aq-ink); font-size: .82rem; }
.empty-state-compact span { font-size: .69rem; }
.empty-state-large { display: grid; justify-items: center; text-align: center; gap: .35rem; padding: 3rem 1rem; background: #fff; border: 1px solid var(--aq-border); border-radius: 14px; }
.empty-state-large > i { font-size: 1.6rem; color: #98a2b3; }
.empty-state-large h3 { margin: .2rem 0 0; font-size: 1rem; font-weight: 800; }
.empty-state-large p { margin: 0; color: var(--aq-muted); font-size: .76rem; }
.empty-state-large .btn { margin-top: .45rem; }

@media (max-width: 1199.98px) {
  .orders-card-list { grid-template-columns: 1fr; }
  .order-summary-card.is-open { grid-column: auto; }
  .site-edit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 991.98px) {
  .budget-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .budget-kpi-grid > div:nth-child(2) { border-right: 0; }
  .budget-kpi-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--aq-border); }
  .profile-overview-grid { grid-template-columns: 1fr; }
  .site-add-grid { grid-template-columns: 1fr 1fr; }
  .site-add-grid .btn { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .workspace-heading { align-items: flex-start; flex-direction: column; }
  .orders-toolbar { align-items: stretch; }
  .orders-filter, .orders-filter:first-child { min-width: 0; flex: 1 1 100%; }
  .orders-reset { margin-left: 0; width: 100%; }
  .orders-overview { grid-template-columns: 1fr; }
  .orders-overview > div { display: flex; align-items: center; justify-content: space-between; }
  .orders-overview strong { margin: 0; }
  .order-summary-metrics { grid-template-columns: 1fr; }
  .order-card-footer { align-items: flex-start; flex-direction: column; }
  .order-detail-toolbar, .order-detail-footer, .order-shipment-head { align-items: stretch; flex-direction: column; }
  .order-detail-actions { justify-content: stretch; }
  .order-sort-control { width: 100%; }
  .order-detail-actions .btn { flex: 1 1 auto; }
  .budget-kpi-grid { grid-template-columns: 1fr; }
  .budget-kpi-grid > div { border-right: 0; border-bottom: 1px solid var(--aq-border); }
  .budget-kpi-grid > div:last-child { border-bottom: 0; }
  .budget-module-head { align-items: stretch; flex-direction: column; }
  .site-add-grid, .site-edit-grid { grid-template-columns: 1fr; }
  .site-card-actions { justify-content: stretch; }
  .site-card-actions .btn { flex: 1 1 0; }
  .active-shop-control { max-width: 155px; padding-left: 8px; padding-right: 6px; }
  .active-shop-control #global-bottega-selector { min-width: 0; width: 138px; font-size: .72rem; }
}

/* =========================================================
   CODICI CLIENTE / SEDE + EXPORT DEMETRA
   ========================================================= */
.profile-fields-erp { grid-template-columns: repeat(2, minmax(0,1fr)); }
.site-card-title-copy { min-width: 0; flex: 1 1 auto; }
.site-erp-chip {
  margin-left: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: .24rem .48rem;
  border: 1px solid #dbe2ea;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .61rem;
  font-weight: 800;
  white-space: nowrap;
}
.site-erp-chip.is-empty { color: #94a3b8; font-family: inherit; }

.btn-demetra {
  border: 1px solid #dbe2ea;
  background: #fff;
  color: var(--aq-ink);
}
.btn-demetra:hover,
.btn-demetra:focus {
  border-color: var(--aq-brand);
  background: #fff7ed;
  color: #9a3412;
}

.demetra-modal {
  border: 1px solid var(--aq-border) !important;
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(15,23,42,.16) !important;
}
.demetra-kicker {
  display: block;
  margin-bottom: .18rem;
  color: var(--aq-muted);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.demetra-order-context {
  display: grid;
  gap: .1rem;
  margin-bottom: .85rem;
  padding: .8rem .9rem;
  border: 1px solid var(--aq-border);
  border-radius: 12px;
  background: #f8fafc;
}
.demetra-order-context strong { color: var(--aq-ink); font-size: .9rem; }
.demetra-order-context span { color: var(--aq-muted); font-size: .72rem; }
.demetra-scope-block { margin-bottom: .85rem; }
.demetra-scope-block > label {
  display: block;
  margin-bottom: .3rem;
  color: var(--aq-muted);
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.demetra-scope-block > small { display: block; margin-top: .3rem; font-size: .68rem; }
.demetra-preview {
  border: 1px solid var(--aq-border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.demetra-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem .75rem;
  border-bottom: 1px solid var(--aq-border);
  background: #f8fafc;
  color: var(--aq-muted);
}
.demetra-preview-head > div { display: flex; align-items: baseline; gap: .5rem; }
.demetra-preview-head span { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.demetra-preview-head strong { font-size: .68rem; color: var(--aq-ink); }
.demetra-preview-head code { color: #9a3412; font-size: .68rem; }
#demetra-preview-content {
  margin: 0;
  padding: .8rem;
  max-height: 210px;
  overflow: auto;
  color: #334155;
  background: #fff;
  font-size: .72rem;
  line-height: 1.55;
}
.demetra-actions { background: #fff; border-top: 1px solid var(--aq-border); }

@media (max-width: 767.98px) {
  .profile-fields-erp { grid-template-columns: 1fr; }
  .site-card-title { align-items: flex-start; flex-wrap: wrap; }
  .site-erp-chip { margin-left: 40px; }
  .demetra-preview-head { align-items: flex-start; flex-direction: column; }
  .demetra-actions { align-items: stretch; }
  .demetra-actions > .d-flex { width: 100%; margin-left: 0 !important; }
  .demetra-actions .btn { flex: 1 1 auto; }
}

/* Filtri combinabili catalogo - Tranche 1A */
.catalog-filters { box-shadow: 0 3px 16px rgba(15,23,42,.045); }
.catalog-filters .form-label { margin-bottom: .25rem; }
.catalog-filters .form-control, .catalog-filters .form-select { min-height: 40px; }
.catalog-filters summary { cursor: pointer; }
.catalog-filters .catalog-filter-count { font-variant-numeric: tabular-nums; }
@media (max-width: 767.98px) {
  .catalog-filters { padding: 12px !important; }
}

/* AltraQ R4.1: il login non deve ereditare lo spazio della barra mobile.
   Il padding aggiuntivo è previsto soltanto per la dashboard. */
body.altraq-auth-mode {
  padding-bottom: 0 !important;
  background: #fff;
}
body.altraq-auth-mode .auth-wrapper {
  min-height: 100vh;
  min-height: 100dvh;
}
@media (max-width: 767.98px) {
  body.altraq-auth-mode { padding-bottom: 0 !important; }
}

/* R4.2: il pannello login non deve ereditare lo scorrimento della dashboard. */
body.altraq-auth-mode #login-section { min-height: 100dvh; }
body.altraq-auth-mode #login-section > .container-fluid,
body.altraq-auth-mode #login-section > .container-fluid > .row { min-height: 100dvh; }
body.altraq-auth-mode .auth-banner-overlay { min-height: 100dvh; }


/* Documenti: accesso ai materiali già pubblicati per le campagne. */
.aq-doc-workspace{max-width:1160px;margin-inline:auto}
.aq-doc-toolbar{max-width:390px;background:#fff;border:1px solid #e4e8ee;border-radius:13px;padding:15px}
.aq-doc-toolbar .form-label{display:block;color:#5e6b7d}
.aq-doc-list{display:grid;gap:10px;margin-top:12px}
.aq-doc-item{display:flex;align-items:center;gap:14px;min-width:0;padding:15px;border:1px solid #e5e8ee;border-radius:13px;background:#fff}
.aq-doc-icon{font-size:1.6rem;color:#e27822;flex-shrink:0}
.aq-doc-item-info{flex:1;min-width:0}
.aq-doc-item-info strong{display:block;font-size:.9rem;overflow-wrap:anywhere}
.aq-doc-item-info small{display:block;color:#718093;font-size:.75rem;margin-top:3px}
.aq-doc-open{flex-shrink:0}
.aq-doc-empty{background:#fff;border:1px dashed #d5dde7;border-radius:14px;padding:26px 16px;color:#6e7b8d;font-size:.87rem}
.aq-doc-future{color:#748297;font-size:.77rem;line-height:1.5;margin-top:24px}
@media(max-width:560px){.aq-doc-item{gap:9px;padding:12px}.aq-doc-icon{font-size:1.3rem}.aq-doc-open{padding:5px 10px}}


/* Navigazione AltraQ: cinque destinazioni e menu suddiviso per argomento. */
.aq-primary-desktop{min-width:0;flex:1;justify-content:center}
.aq-primary-desktop .nav-link-custom{white-space:nowrap;flex-shrink:0}
.aq-primary-menu-btn{padding:8px 11px;border:1px solid #dce3eb;background:#fff;border-radius:9px;color:#435267;font-weight:700;white-space:nowrap}
.aq-primary-menu-btn:hover,.aq-primary-menu-btn.active{color:#b45f17;background:#fff5ea;border-color:#f3c395}
.aq-primary-menu-btn i{margin-right:6px;font-size:1.05rem}
.aq-offcanvas-body{overflow:auto;padding:18px}
.aq-menu-group{margin-bottom:22px}
.aq-menu-group h3{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#8a603c;font-weight:800;margin:0 0 8px;padding:0 5px}
.aq-menu-links{display:flex;flex-direction:column;gap:5px}
.aq-menu-link{display:flex;align-items:center;gap:12px;min-height:44px;border:1px solid transparent;border-radius:10px;background:#f7f8fa;padding:10px 12px;color:#354357;text-align:left;font-weight:700;width:100%;font-size:.88rem}
.aq-menu-link:hover,.aq-menu-link:focus-visible{background:#fff3e5;border-color:#f3c9a0;color:#97510f}
.aq-menu-link>.bi:first-child{font-size:1.1rem;color:#737e8c;width:24px;text-align:center}
.aq-menu-link span{flex:1}.aq-menu-arrow{font-size:.7rem;color:#9199a4}
.aq-menu-workspace{max-width:1050px}
.aq-menu-workspace .aq-menu-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.aq-menu-workspace .aq-menu-group{background:#fff;border:1px solid #e4e8ed;border-radius:13px;padding:16px;margin:0}
.aq-menu-workspace .aq-menu-link{background:#fafbfc}
.aq-info-workspace{max-width:1000px}
.aq-info-heading{margin:0 0 20px}.aq-info-heading h3{font-weight:800;font-size:1.45rem}
.aq-info-groups{display:grid;gap:12px}
.aq-info-item{padding:18px;background:#fff;border:1px solid #e1e7ee;border-radius:13px}
.aq-info-item h4{font-size:.94rem;font-weight:800;margin:0 0 7px}
.aq-info-item p{margin:0;color:#667386;font-size:.85rem;line-height:1.55}
.aq-info-caveat{margin-top:18px;font-size:.79rem;color:#7a613e}
.aq-catalog-hub-toolbar{display:flex;gap:10px;max-width:700px}
.aq-catalog-hub-toolbar input{min-width:0;flex:2}
.aq-catalog-hub-toolbar select{flex:1;min-width:145px}
.aq-catalog-hub-intro{font-size:.83rem;color:#69788b}
.aq-catalog-hub-list{display:grid;gap:10px;margin:12px 0}
.aq-catalog-hub-card{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:16px;border:1px solid #e3e8ef;border-radius:13px;background:#fff}
.aq-catalog-hub-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.aq-catalog-hub-info strong{font-size:.87rem;overflow-wrap:anywhere}
.aq-catalog-hub-info small{font-size:.73rem;color:#718093}
.aq-catalog-empty{border:1px dashed #ccd4df;border-radius:12px;background:#fff;padding:22px;color:#6d7b8b}
@media (min-width:1200px){
 .top-nav{gap:12px;padding-inline:clamp(12px,1.3vw,25px)}
 .top-nav h5{font-size:1rem}
 .aq-primary-desktop{gap:clamp(9px,1.2vw,22px)!important}
 .aq-primary-desktop .nav-link-custom{font-size:.84rem;padding-block:18px}
 .active-shop-control #global-bottega-selector{min-width:110px;max-width:165px}
 .top-nav-buttons{flex-shrink:0}
}
@media (max-width:1199.98px){
 .top-nav{gap:9px}
 .top-nav h5{font-size:1rem}
}
@media (max-width:767.98px){
 .bottom-nav{justify-content:space-between!important;padding-inline:2px}
 .bottom-nav-item{flex:1;min-width:0!important;padding:5px 1px;font-size:.64rem}
 .bottom-nav-icon{font-size:1.22rem}
 .aq-menu-workspace .aq-menu-content{grid-template-columns:1fr}
}
@media (max-width:560px){
 .aq-catalog-hub-toolbar{flex-direction:column}
 .aq-catalog-hub-card{flex-wrap:wrap}
 .aq-catalog-hub-card .btn{width:100%}
}

.aq-menu-logout{width:100%;padding:11px 14px;display:flex;align-items:center;justify-content:center;gap:9px;margin-top:13px;border:1px solid #d5a0aa;border-radius:10px;background:#fff;color:#b03648;font-size:.82rem;font-weight:800}
.aq-menu-logout:hover,.aq-menu-logout:focus-visible{background:#fff0f2;border-color:#bf4d60}
.aq-menu-workspace .aq-menu-logout{grid-column:1/-1}
