:root{
  --bg-1:#e9f7ec;
  --bg-2:#d3f0db;
  --brand:#28a745;
  --brand-700:#1e8f38;
  --brand-900:#157b2d;
  --ink:#203222;
  --muted:#6b8a73;
  --card:#ffffff;
  --card-2:#f4fbf6;
  --ring:rgba(40,167,69,.25);
  --radius:22px;
}

/* Scope all styles to the welcome page to avoid conflits avec Tailwind */
.welcome-page{
  min-height: calc(100vh - 9rem); /* header + footer space */
  background: radial-gradient(1200px 800px at 90% -10%, var(--bg-2), transparent 60%),
              radial-gradient(900px 700px at -10% 110%, var(--bg-2), transparent 55%),
              linear-gradient(180deg, var(--bg-1), #f9fffb);
  padding: 24px 0;
}

.welcome-page .wrap{
  max-width:1100px;
  margin:0 auto;
  padding:0 16px;
}

.welcome-page .chrome{
  background:linear-gradient(180deg,#f7fff9,#f4fbf6);
  border:2px solid #bfeac7;
  box-shadow: 0 8px 30px rgba(24,74,37,.12), inset 0 0 0 1px #e7f7ea;
  border-radius:30px;
  padding:16px;
  position:relative;
  overflow:hidden;
}

.welcome-page .sidebar{
  position:absolute;
  inset:16px auto 16px 16px;
  width:84px;
  border-radius:24px;
  background:linear-gradient(180deg,#edfbef,#e7f7ea);
  box-shadow:inset 0 0 0 1px #ddf3e2;
}

.welcome-page .sidebar .line{
  height:6px;
  border-radius:6px;
  background:#cfead6;
  margin:14px 12px;
}

.welcome-page .sidebar .line.thick{
  height:10px;
  margin:18px 12px;
  background:#bfe0c7;
}

.welcome-page .content {
  margin-left: 0;   /* supprime l’espace à gauche */
  width: 100%;      /* prend toute la largeur */
  padding: 12px 12px 24px 12px;
}


.welcome-page .top{
  display:flex;
  align-items:center;
  gap:16px;
  justify-content:space-between;
  padding:8px 6px 12px 6px;
}

.welcome-page .brand{
  display:flex;
  align-items:center;
  gap:10px;
}

.welcome-page .brand-logo{
  width:42px;
  height:42px;
  border-radius:12px;
  background: radial-gradient(circle at 30% 30%, #2ca54d, #1f8b3b 70%);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:800;
  letter-spacing:.5px;
  box-shadow:0 6px 16px rgba(25,94,45,.25);
}

.welcome-page .brand-name{
  font-weight:800;
  font-size:22px;
}

.welcome-page .search{
  flex:1;
  max-width:500px;
  position:relative;
}

.welcome-page .search input{
  width:100%;
  border:1.5px solid #cfead6;
  background:#fff;
  padding:12px 40px;
  border-radius:999px;
  font-size:15px;
  outline:none;
  box-shadow:0 2px 0 rgba(23,102,45,.03);
}

.welcome-page .search input:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 4px var(--ring);
}

.welcome-page .search svg{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  opacity:.6;
}

.welcome-page .version{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
}

.welcome-page .version .dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--brand);
  display:inline-block;
}

.welcome-page .progress{
  margin:18px 0 24px 0;
  height:8px;
  background:#dcedd9;
  border-radius:10px;
  overflow:hidden;
}

.welcome-page .progress > span{
  display:block;
  height:100%;
  width:40%;
  background:linear-gradient(90deg,#28a745,#6fd086);
}

.welcome-page .cta{
  display:flex;
  justify-content:center;
  margin:8px 0 24px 0;
}

.welcome-page .btn-primary{
  background:var(--brand);
  color:#fff;
  border:none;
  border-radius:999px;
  padding:16px 28px;
  font-weight:700;
  font-size:18px;
  box-shadow:0 10px 20px rgba(28,110,49,.25);
  transition:transform .05s ease, box-shadow .2s ease, background .2s ease;
  cursor:pointer;
}

.welcome-page .btn-primary:hover{
  background:var(--brand-700);
  box-shadow:0 12px 24px rgba(28,110,49,.28);
}

.welcome-page .btn-primary:active{
  transform:translateY(1px);
}

/* 3 colonnes sur desktop */
.welcome-page .grid { grid-template-columns: repeat(1, minmax(0,1fr)); }
@media (min-width: 768px){ .welcome-page .grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1280px){ .welcome-page .grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }



.welcome-page .card{
  background:var(--card);
  border-radius:18px;
  padding:16px;
  border:1.5px solid #d5efdb;
  box-shadow:0 4px 14px rgba(27,89,43,.08);
  display:flex;
  align-items:center;
  gap:14px;
  transition:transform .08s ease, box-shadow .2s ease;
}

.welcome-page .card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(27,89,43,.12);
}

.welcome-page .icon{
  width:44px;
  height:44px;
  border-radius:12px;
  background:#ecfaf0;
  display:grid;
  place-items:center;
  border:1px solid #d2eed9;
  flex:0 0 auto;
}

.welcome-page .label{
  font-weight:700;
}

.welcome-page .muted{
  color:var(--muted);
  font-size:12px;
}

/* Responsive */
@media (max-width: 920px){
  .welcome-page .grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .welcome-page .content{
    margin-left:100px;
  }
}

@media (max-width: 640px){
  .welcome-page .sidebar{
    display:none;
  }
  .welcome-page .content{
    margin:0;
    padding:0;
  }
  .welcome-page .grid{
    grid-template-columns:1fr;
  }
  .welcome-page .top{
    flex-wrap:wrap;
    gap:10px;
  }
}

/* ====== Login polish (extends welcome.css) ====== */

/* Titre central + cohérence typographique */
.welcome-page h1 {
  font-size: 32px;
  line-height: 1.2;
  text-align: center;
  margin: 16px 0 24px;
  color: var(--ink);
  letter-spacing: .2px;
}

/* Carte formulaire : layout vertical propre */
.welcome-page .form-card {
  background: var(--card);
  border: 1.5px solid #d5efdb;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(27,89,43,.10);
  padding: 18px;
  max-width: 480px;
  margin: 0 auto;
}

/* Labels */
.welcome-page .form-card .label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
  color: var(--ink);
}

/* Inputs (unifiés) */
.welcome-page .input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #cfead6;
  border-radius: 12px;
  background: #fff;
  outline: none;
  transition: box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 2px 0 rgba(23,102,45,.03);
  margin-bottom: 14px;
  font-size: 15px;
}

/* Focus ring cohérent avec la charte */
.welcome-page .input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px var(--ring);
}

/* Bouton plein largeur sur le formulaire */
.welcome-page .btn-primary.btn-block {
  width: 100%;
  border-radius: 999px;
  padding: 14px 18px;
  font-size: 17px;
}

/* Lien retour/secondaires */
.welcome-page .link-muted {
  color: var(--muted);
  text-decoration: underline;
}
.welcome-page .link-muted:hover {
  color: var(--brand-700);
}

/* Messages d’erreur/validation */
.welcome-page .form-error {
  background: #fff4f4;
  border: 1px solid #ffd6d6;
  color: #7b1f1f;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 13px;
  margin-bottom: 12px;
}

/* Légers ajustements de la “chrome box“ pour le login */
.welcome-page .chrome {
  max-width: 980px;           /* un peu plus étroit que la home */
  margin: 0 auto;
}
.welcome-page .content {
  padding: 16px 16px 28px 16px;
}

/* Responsive : resserrer encore le conteneur */
@media (max-width: 640px){
  .welcome-page .chrome { max-width: 92vw; }
  .welcome-page h1 { font-size: 24px; margin: 12px 0 18px; }
  .welcome-page .form-card { padding: 16px; }
}

/* Empêche tout débordement dans la page welcome/login */
.welcome-page *, 
.welcome-page *::before, 
.welcome-page *::after {
  box-sizing: border-box;
}

/* Sécurise la largeur des champs et du bouton dans la carte */
.welcome-page .form-card .input,
.welcome-page .form-card .btn-primary {
  width: 100%;
  max-width: 100%;
  display: block;
}

/* (optionnel) réduit encore le risque de débordement dû au zoom/arrondi */
.welcome-page .form-card { 
  max-width: 480px;
  margin: 0 auto;
  /* gap si tu veux un espacement vertical uniforme sans margins sur inputs */
  display: grid;
  gap: 12px;
}

/* === Patch "cards plus grandes + plus d'air" === */

/* conteneur un peu plus large */
.welcome-page .wrap { max-width: 1280px; }

/* grille plus espacée */
.welcome-page .grid { gap: 24px; }
@media (min-width: 1280px){ .welcome-page .grid { gap: 32px; } }

/* cards plus hautes et avec plus de padding */
.welcome-page .card{
  padding: 22px 24px;
  min-height: 128px;
  gap: 18px;
  border-radius: 22px;
}
@media (min-width: 1024px){
  .welcome-page .card{
    padding: 26px 28px;
    min-height: 150px;
  }
}

/* icône agrandie */
.welcome-page .icon{
  width: 56px;
  height: 56px;
  border-radius: 14px;
}

/* titres et sous-titres un peu plus grands */
.welcome-page .label{ font-size: 1.125rem; /* ~18px */ }
@media (min-width: 1024px){
  .welcome-page .label{ font-size: 1.25rem; /* ~20px */ }
}
.welcome-page .muted{ font-size: .95rem; }

/* barre de recherche plus généreuse */
.welcome-page .search{ max-width: 680px; }
.welcome-page .search input{
  padding: 14px 48px;
  font-size: 16px;
}
.welcome-page .search svg{ left: 16px; }
