/* Smart Nutrition v14.0.0 - Product UI Polish
   Fix mirati: OpenFoodFacts, Bilancio, Idratazione, Chat, contrasto. */
:root{
  --sn-bg:#f6fbff;
  --sn-surface:#ffffff;
  --sn-text:#0b1635;
  --sn-muted:#5f708a;
  --sn-line:rgba(37,99,235,.12);
  --sn-blue:#2563eb;
  --sn-cyan:#06b6d4;
  --sn-green:#22c55e;
  --sn-shadow:0 22px 60px rgba(15,43,91,.09);
  --sn-shadow-soft:0 12px 34px rgba(15,43,91,.06);
}

/* 1) OPEN FOOD FACTS / PRODOTTO CONFEZIONATO: niente blocco scuro pesante */
.sn-off-panel{
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,252,255,.94))!important;
  border:1px solid var(--sn-line)!important;
  border-radius:34px!important;
  box-shadow:var(--sn-shadow)!important;
  padding:34px!important;
  color:var(--sn-text)!important;
}
.sn-off-panel *{opacity:1!important;}
.sn-off-head h2,.sn-off-card h3{color:var(--sn-text)!important;}
.sn-off-head p,.sn-off-help,.sn-off-note,.sn-off-muted{color:var(--sn-muted)!important;}
.sn-off-version{
  background:rgba(37,99,235,.08)!important;
  border:1px solid rgba(37,99,235,.16)!important;
  color:var(--sn-blue)!important;
}
.sn-off-grid{gap:18px!important;}
.sn-off-card{
  background:#fff!important;
  border:1px solid var(--sn-line)!important;
  border-radius:28px!important;
  box-shadow:var(--sn-shadow-soft)!important;
  padding:24px!important;
  color:var(--sn-text)!important;
}
.sn-off-label{color:#334155!important;}
.sn-off-input,.sn-off-card input,.sn-off-card select{
  background:#fff!important;
  color:var(--sn-text)!important;
  border:1px solid rgba(37,99,235,.18)!important;
  border-radius:20px!important;
  min-height:60px!important;
  padding:0 18px!important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.04)!important;
}
.sn-off-input::placeholder{color:#9aa9bd!important;}
.sn-off-btn{
  background:linear-gradient(135deg,#2563eb,#06b6d4)!important;
  color:#fff!important;
  border:0!important;
  border-radius:18px!important;
  min-height:54px!important;
  padding:0 20px!important;
  box-shadow:0 14px 30px rgba(37,99,235,.18)!important;
}
.sn-off-btn.save{background:linear-gradient(135deg,#22c55e,#8bdc65)!important;color:#062114!important;}
.sn-off-btn.ghost{background:#fff!important;color:var(--sn-text)!important;border:1px solid var(--sn-line)!important;box-shadow:none!important;}
.sn-off-product strong,.sn-off-nutrients b,.sn-off-portion>strong{color:var(--sn-text)!important;}
.sn-off-product span,.sn-off-product small,.sn-off-nutrients span{color:var(--sn-muted)!important;}
.sn-off-nutrients div,.sn-off-portion,.sn-off-scanner,.sn-off-message{
  background:#f8fbff!important;
  border:1px solid var(--sn-line)!important;
  color:var(--sn-text)!important;
}

/* 2) CARD BASE: più leggibili, più product-design */
.final-bottom{display:grid!important;grid-template-columns:1.1fr 1fr 1fr!important;gap:22px!important;align-items:stretch!important;}
.final-chart-card,.card.final-chart-card{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(37,99,235,.12)!important;
  border-radius:34px!important;
  box-shadow:var(--sn-shadow)!important;
  color:var(--sn-text)!important;
  padding:34px!important;
  overflow:hidden!important;
}
.final-chart-card *, .card.final-chart-card *{opacity:1!important;}
.final-card-head{margin-bottom:24px!important;}
.final-card-head h3,.final-card-head h2{font-size:26px!important;letter-spacing:-.04em!important;color:var(--sn-text)!important;}
.final-select{
  background:rgba(34,197,94,.10)!important;
  border:1px solid rgba(34,197,94,.18)!important;
  color:#15803d!important;
  border-radius:16px!important;
  padding:10px 14px!important;
}

/* 3) BILANCIO DI OGGI: elimina quadrati colorati dietro ai ring */
.final-rings{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  margin-top:4px!important;
}
.final-ring{
  min-width:0!important;
  min-height:142px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  border:1px solid rgba(37,99,235,.10)!important;
  box-shadow:0 12px 28px rgba(15,43,91,.05)!important;
  display:grid!important;
  grid-template-rows:92px auto!important;
  place-items:center!important;
  padding:14px!important;
  position:relative!important;
  text-align:center!important;
  color:var(--sn-text)!important;
}
.final-ring svg{width:92px!important;height:92px!important;grid-row:1!important;}
.final-ring circle.bg{stroke:#e6eef8!important;}
.final-ring b{
  position:absolute!important;
  top:43px!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  font-size:26px!important;
  line-height:1!important;
  color:var(--sn-text)!important;
  letter-spacing:-.04em!important;
}
.final-ring small{
  margin:0!important;
  grid-row:2!important;
  color:#64748b!important;
  font-weight:900!important;
  font-size:13px!important;
}

/* 4) IDRATAZIONE: niente centro nero, bicchieri più puliti */
.final-hydration{grid-template-columns:150px 1fr!important;gap:26px!important;margin-top:12px!important;}
.final-big-ring{
  width:132px!important;height:132px!important;border-radius:50%!important;
  background:conic-gradient(var(--sn-blue) 0 20%,var(--sn-green) 20% 100%,#e8f0fb 0)!important;
  box-shadow:0 18px 40px rgba(37,99,235,.12)!important;
}
.final-big-ring div{
  width:96px!important;height:96px!important;border-radius:50%!important;
  background:#fff!important;
  color:var(--sn-text)!important;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.08)!important;
  font-size:30px!important;
}
.final-glasses{grid-template-columns:repeat(5,52px)!important;gap:12px!important;align-content:start!important;}
.final-glass{
  height:58px!important;
  border-radius:15px!important;
  background:#f8fbff!important;
  border:1px solid rgba(37,99,235,.12)!important;
  box-shadow:0 8px 20px rgba(15,43,91,.04)!important;
}
.final-glass:after{
  left:5px!important;right:5px!important;bottom:5px!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,#6ee7ff,#2563eb)!important;
}
.final-glass.empty:after{display:none!important;}
.final-hydration-actions{grid-template-columns:1fr 1fr!important;gap:14px!important;}
.final-water-btn,.final-water-input{
  background:#fff!important;
  color:var(--sn-text)!important;
  border:1px solid rgba(37,99,235,.14)!important;
  border-radius:20px!important;
  min-height:58px!important;
  box-shadow:0 10px 24px rgba(15,43,91,.04)!important;
}
.final-water-btn:first-child{background:linear-gradient(135deg,#2563eb,#06b6d4)!important;color:#fff!important;border:0!important;}
.final-hydration-note{color:#64748b!important;font-size:15px!important;}

/* 5) CHAT NUTRIZIONISTA: card meno vuota e più premium */
.final-chart-card:has(h3) p.muted{color:#64748b!important;font-size:18px!important;line-height:1.55!important;}
.final-chart-card:has(h3) .sn810-chat-compact,
.final-chart-card:has(h3) .nutritionist-message-small{
  background:#f8fbff!important;
  border:1px solid rgba(37,99,235,.10)!important;
  border-radius:22px!important;
  padding:16px!important;
  color:var(--sn-text)!important;
}

/* 6) Contrasto generale, niente bianco su bianco */
.card,.panel,.final-profile-card,.admin-detail-panel{color:var(--sn-text)!important;}
.card p,.panel p,.final-profile-card p,.admin-detail-panel p{color:#64748b!important;}
button.secondary,.secondary{color:var(--sn-text)!important;background:#fff!important;}
.primary,.final-cta,.sn-lp-btn-primary{color:#fff!important;}

@media(max-width:1200px){.final-bottom{grid-template-columns:1fr!important}.final-rings{grid-template-columns:repeat(4,minmax(0,1fr))!important}.final-hydration{grid-template-columns:150px 1fr!important}}
@media(max-width:700px){.sn-off-panel,.final-chart-card,.card.final-chart-card{padding:22px!important;border-radius:26px!important}.final-rings{grid-template-columns:repeat(2,minmax(0,1fr))!important}.final-hydration{grid-template-columns:1fr!important}.final-glasses{grid-template-columns:repeat(5,1fr)!important}.final-card-head h3,.final-card-head h2{font-size:22px!important}}
