/* I.M. Distribuzione — Fix definitivo giustificazione bottoni/catalogo
   Questo layer NON modifica logiche React/Supabase: normalizza solo layout, spazi e contrasti. */
:root{
  --im-fix-ink:#10233a;
  --im-fix-muted:#475569;
  --im-fix-green:#0f8a58;
  --im-fix-green-dark:#08604a;
  --im-fix-teal:#087280;
  --im-fix-line:rgba(15,23,42,.12);
  --im-fix-soft:#f8fffb;
}

/* Route guards */
body.im-route-catalog,
body.im-route-main,
body.im-route-shop{
  overflow-x:hidden!important;
}

/* Header: manteniamo una riga ordinata e impediamo che i bottoni diventino card giganti */
body.im-route-catalog .im-site-header-fix,
body.im-route-main .im-site-header-fix,
body.im-route-shop .im-site-header-fix{
  min-height:82px!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 20px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

body.im-route-catalog .im-site-header-fix nav,
body.im-route-catalog .im-site-header-fix [role="navigation"],
body.im-route-catalog .im-site-header-fix > div,
body.im-route-main .im-site-header-fix nav,
body.im-route-main .im-site-header-fix [role="navigation"],
body.im-route-main .im-site-header-fix > div,
body.im-route-shop .im-site-header-fix nav,
body.im-route-shop .im-site-header-fix [role="navigation"],
body.im-route-shop .im-site-header-fix > div{
  max-width:1320px!important;
  width:100%!important;
  min-height:72px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  flex-wrap:nowrap!important;
  box-sizing:border-box!important;
}

body .im-nav-button-fix,
body .im-nav-button-fix:visited{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  max-height:48px!important;
  padding:0 18px!important;
  border-radius:14px!important;
  box-sizing:border-box!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:-.01em!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:visible!important;
  opacity:1!important;
  text-shadow:none!important;
  transform:none!important;
}

body .im-nav-button-fix:not(.im-nav-primary-fix){
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.15)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body .im-nav-button-fix:not(.im-nav-primary-fix) *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
  opacity:1!important;
}
body .im-nav-primary-fix{
  background:linear-gradient(135deg,#138b5a,#08734f)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 10px 22px rgba(8,99,76,.22)!important;
}
body .im-nav-primary-fix *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  stroke:currentColor!important;
}

/* Barra catalogo: griglia pulita, una sola riga desktop, ordine coerente */
body.im-route-catalog .im-catalog-filterbar-fix{
  width:min(1320px,calc(100vw - 48px))!important;
  margin:28px auto 24px!important;
  padding:0!important;
  min-height:0!important;
  height:auto!important;
  display:grid!important;
  grid-template-columns:160px minmax(330px,1fr) minmax(190px,220px) minmax(190px,220px) minmax(160px,190px)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:16px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

body.im-route-catalog .im-catalog-control-fix,
body.im-route-catalog .im-catalog-search-fix,
body.im-route-catalog .im-catalog-filterbar-fix button,
body.im-route-catalog .im-catalog-filterbar-fix a,
body.im-route-catalog .im-catalog-filterbar-fix [role="combobox"],
body.im-route-catalog .im-catalog-filterbar-fix [aria-haspopup="listbox"],
body.im-route-catalog .im-catalog-filterbar-fix select{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:54px!important;
  min-height:54px!important;
  max-height:54px!important;
  padding:0 18px!important;
  border-radius:17px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  border:1px solid rgba(15,138,88,.32)!important;
  box-shadow:0 10px 24px rgba(4,48,40,.10)!important;
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
  font-size:15px!important;
  font-weight:850!important;
  line-height:1!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  opacity:1!important;
  text-shadow:none!important;
  transform:none!important;
}

body.im-route-catalog .im-catalog-filterbar-fix input,
body.im-route-catalog .im-catalog-search-fix input{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0 8px!important;
  border:0!important;
  outline:none!important;
  background:transparent!important;
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
  font-size:15px!important;
  font-weight:800!important;
  text-align:left!important;
  opacity:1!important;
}
body.im-route-catalog .im-catalog-filterbar-fix input::placeholder{
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  opacity:1!important;
}

body.im-route-catalog .im-catalog-filterbar-fix *,
body.im-route-catalog .im-catalog-control-fix *,
body.im-route-catalog .im-catalog-search-fix *{
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.im-route-catalog .im-catalog-filterbar-fix svg,
body.im-route-catalog .im-catalog-control-fix svg,
body.im-route-catalog .im-catalog-search-fix svg{
  color:#64748b!important;
  stroke:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  flex:none!important;
}

body.im-route-catalog .im-catalog-home-control-fix{
  font-weight:900!important;
}

/* Il pannello admin shop non deve entrare nella barra filtri */
body.im-route-catalog #im-shop-admin-panel,
body.im-route-catalog .im-shop-admin-panel{
  width:min(1320px,calc(100vw - 48px))!important;
  margin:0 auto 28px!important;
  padding:18px 20px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  flex-wrap:wrap!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,#f8fffb,#edf8f3)!important;
  border:1px solid rgba(15,138,88,.20)!important;
  box-shadow:0 16px 34px rgba(4,48,40,.10)!important;
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
  position:relative!important;
  z-index:8!important;
  transform:none!important;
}
body.im-route-catalog #im-shop-admin-panel *,
body.im-route-catalog .im-shop-admin-panel *{
  opacity:1!important;
  text-shadow:none!important;
}
body.im-route-catalog #im-shop-admin-panel strong,
body.im-route-catalog .im-shop-admin-panel strong{
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
  font-weight:950!important;
}
body.im-route-catalog #im-shop-admin-panel span,
body.im-route-catalog .im-shop-admin-panel span{
  color:#526b73!important;
  -webkit-text-fill-color:#526b73!important;
  font-weight:750!important;
}
body.im-route-catalog #im-shop-admin-panel a,
body.im-route-catalog #im-shop-admin-panel button,
body.im-route-catalog .im-shop-admin-panel a,
body.im-route-catalog .im-shop-admin-panel button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  height:46px!important;
  padding:0 18px!important;
  border-radius:14px!important;
  font-weight:900!important;
  font-size:15px!important;
  line-height:1!important;
  text-align:center!important;
  white-space:nowrap!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.im-route-catalog #im-shop-admin-panel a.im-primary,
body.im-route-catalog #im-shop-admin-panel button.im-primary,
body.im-route-catalog .im-shop-admin-panel a.im-primary,
body.im-route-catalog .im-shop-admin-panel button.im-primary{
  background:linear-gradient(135deg,#138b5a,#08734f)!important;
  border-color:#08734f!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body.im-route-catalog #im-shop-admin-panel a:not(.im-primary),
body.im-route-catalog #im-shop-admin-panel button:not(.im-primary),
body.im-route-catalog .im-shop-admin-panel a:not(.im-primary),
body.im-route-catalog .im-shop-admin-panel button:not(.im-primary){
  background:#fff!important;
  border:1px solid rgba(15,23,42,.12)!important;
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
}

/* Pannelli catalogo condiviso e PDF: testi sempre leggibili */
body.im-route-catalog #im-catalog-share-panel,
body.im-route-catalog #im-catalog-pdf-panel{
  width:min(1320px,calc(100vw - 48px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
  color:var(--im-fix-ink)!important;
  -webkit-text-fill-color:var(--im-fix-ink)!important;
}
body.im-route-catalog #im-catalog-share-panel button,
body.im-route-catalog #im-catalog-pdf-panel button{
  color:inherit!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.im-route-catalog #im-catalog-share-panel .im-catalog-share-primary,
body.im-route-catalog #im-catalog-share-panel .im-catalog-share-whatsapp,
body.im-route-catalog #im-catalog-pdf-panel .im-pdf-generate{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Mobile/tablet: i controlli vanno in colonna pulita, non sovrapposti */
@media (max-width:1100px){
  body.im-route-catalog .im-catalog-filterbar-fix{
    grid-template-columns:1fr 1fr!important;
    width:min(760px,calc(100vw - 28px))!important;
  }
  body.im-route-catalog .im-catalog-search-fix{grid-column:1 / -1!important;}
}
@media (max-width:720px){
  body.im-route-catalog .im-site-header-fix,
  body.im-route-main .im-site-header-fix,
  body.im-route-shop .im-site-header-fix{
    padding:10px 12px!important;
  }
  body.im-route-catalog .im-site-header-fix nav,
  body.im-route-catalog .im-site-header-fix [role="navigation"],
  body.im-route-catalog .im-site-header-fix > div,
  body.im-route-main .im-site-header-fix nav,
  body.im-route-main .im-site-header-fix [role="navigation"],
  body.im-route-main .im-site-header-fix > div,
  body.im-route-shop .im-site-header-fix nav,
  body.im-route-shop .im-site-header-fix [role="navigation"],
  body.im-route-shop .im-site-header-fix > div{
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:10px!important;
  }
  body .im-nav-button-fix{
    height:46px!important;
    min-height:46px!important;
    padding:0 14px!important;
    font-size:14px!important;
  }
  body.im-route-catalog .im-catalog-filterbar-fix{
    grid-template-columns:1fr!important;
    width:calc(100vw - 24px)!important;
    gap:12px!important;
    margin-top:18px!important;
  }
  body.im-route-catalog #im-shop-admin-panel,
  body.im-route-catalog .im-shop-admin-panel,
  body.im-route-catalog #im-catalog-share-panel,
  body.im-route-catalog #im-catalog-pdf-panel{
    width:calc(100vw - 24px)!important;
  }
}
