/* NutriSaaS — Base : reset, typographie, transitions globales, champs de formulaire.
   Extrait de site/index.html (bloc <style> original) le 2026-07-13.
   Ameliore selon Impeccable (mode operate : outil calme, lisible, focus praticienne). */

* {
  box-sizing: border-box;
}

body {
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: #1e293b;
  background-color: #f8fafc;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}

/* Selection de texte sobre et harmonieuse */
::selection {
  background: #dcfce7;
  color: #14532d;
}

/* Scrollbars fines et discretes */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}
.dark ::-webkit-scrollbar-thumb {
  background: #334155;
}
.dark ::-webkit-scrollbar-thumb:hover {
  background: #475569;
}

/* Smooth theme transition */
body, main, .card, .mbox, .acc-card, .acc-header, .acc-body, .inp, .hd, .sd, .divider,
#cv-bottom-nav, .tnav, .dtab, .btn-ghost, .btn-neutral, .nap-opt,
#ai-floating-panel, .ai-panel-tabs, .ai-panel-tab,
#login-screen, #forgot-screen, #reset-screen, #force-reset-screen {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Inputs & Form Controls — calme et lisibilite sans deformation */
.inp {
  display: block;
  width: 100%;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #0f172a;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.inp:focus {
  border-color: #16a34a;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

.inp::placeholder {
  color: #94a3b8;
}

.lbl {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #475569;
  margin-bottom: 0.35rem;
}

select.inp {
  cursor: pointer;
}

textarea.inp {
  resize: vertical;
}

/* Chiffres tabulaires sur les tables de donnees medicales */
table, .tabular-nums {
  font-variant-numeric: tabular-nums;
}
