:root{
  /* === PALETTE OFFICIELLE === */
  --vinaceous-tawny: #C56227;
  --green: #00FF00;
  --warm-gray: #A49A87;
  --vistoris-lake: #5C2C45;
  --white: #FFFFFF;

  /* Dérivés doux */
  --vt-soft: rgba(197,98,39,.12);
  --vt-medium: rgba(197,98,39,.22);

  --wg-soft: rgba(164,154,135,.15);
  --wg-medium: rgba(164,154,135,.35);

  --vl-soft: rgba(92,44,69,.12);
  --vl-medium: rgba(92,44,69,.25);

  --green-soft: rgba(0,255,0,.12);

  --radius: 14px;
  --container: 1100px;
  --shadow: 0 6px 18px rgba(164,154,135,.18);
}

/* =========================
   BASE
========================= */

*{ box-sizing:border-box; }

body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: linear-gradient(
    180deg,
    var(--white),
    var(--wg-soft)
  );
  color: #2d2d2d;
}

.container{
  width: min(var(--container), calc(100% - 2rem));
  margin: 0 auto;
}

.page{
  padding: 2rem 0 6rem;
}

/* =========================
   NAVBAR
========================= */

.navbar{
  background: var(--white);
  border-bottom: 1px solid var(--wg-medium);
}

.navbar__inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding: 1rem 0;
}

.navbar__brand{
  font-weight:900;
  font-size:1.1rem;
  color: var(--vistoris-lake);
}

.navbar__nav{
  display:flex;
  gap:.6rem;
  align-items:center;
}

.navbar__user{
  font-size:.9rem;
  color: var(--warm-gray);
}

/* =========================
   FOOTER
========================= */

.footer{
  background: var(--white);
  border-top:1px solid var(--wg-medium);
  position: fixed;
  bottom:0;
  left:0;
  right:0;
}

.footer__inner{
  display:flex;
  justify-content:space-between;
  padding:.8rem 0;
  font-size:.9rem;
  color: var(--warm-gray);
}

/* =========================
   CARDS
========================= */

.card{
  background: var(--white);
  border:1px solid var(--wg-medium);
  border-radius: var(--radius);
  padding:1.2rem;
  box-shadow: var(--shadow);
  transition:.15s ease;
}

.card:hover{
  border-color: var(--vistoris-lake);
}

/* =========================
   TITRES
========================= */

h1{
  margin-top:0;
  color: var(--vistoris-lake);
}

h2{
  margin-top:0;
  color: var(--vinaceous-tawny);
}

h3{
  color: var(--warm-gray);
}

/* =========================
   BOUTONS
========================= */

.btn{
  padding:.5rem .9rem;
  border-radius:10px;
  border:1px solid var(--wg-medium);
  background: var(--white);
  cursor:pointer;
  transition:.15s ease;
  font-weight:600;
}

.btn:hover{
  background: var(--wg-soft);
}

/* CTA principal */
.btn--primary{
  border-color: var(--vinaceous-tawny);
  background: var(--vt-soft);
  color: var(--vinaceous-tawny);
}

.btn--primary:hover{
  background: var(--vt-medium);
}

/* Bouton secondaire */
.btn--ghost{
  border-color: transparent;
  color: var(--vistoris-lake);
}

.btn--ghost:hover{
  background: var(--vl-soft);
}

/* Success */
.btn--success{
  border-color: var(--green);
  background: var(--green-soft);
  color: #008000;
}

/* =========================
   FORM
========================= */

.label{
  font-weight:600;
  font-size:.85rem;
  color: var(--warm-gray);
}

.input{
  width:100%;
  padding:.7rem .8rem;
  border-radius:10px;
  border:1px solid var(--wg-medium);
  background: var(--white);
}

.input:focus{
  outline:none;
  border-color: var(--vistoris-lake);
  box-shadow: 0 0 0 3px var(--vl-soft);
}

.form-row{ margin-bottom:1rem; }
.form-actions{ display:flex; gap:.6rem; }

/* =========================
   LIST ROWS
========================= */

.list-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.7rem 0;
  border-top:1px solid var(--wg-soft);
}

.list-row:first-child{
  border-top:0;
}

.list-row__sub{
  font-size:.85rem;
  color: var(--warm-gray);
}

/* =========================
   ALERTS
========================= */

.alert--ok{
  border-left:4px solid var(--green);
  background: var(--green-soft);
  padding:.8rem;
  border-radius:8px;
}

.alert--error{
  border-left:4px solid var(--vinaceous-tawny);
  background: var(--vt-soft);
  padding:.8rem;
  border-radius:8px;
}