/* Thèmes TiOrga — variables CSS (source : maquette tour 3b) */
:root, [data-theme="clair"] {
  --fond: #f6f4ef; --carte: #ffffff; --encre: #2b2b2b; --encre-2: #6b6b6b;
  --accent: #7c5cd6; --accent-doux: #ede8fb; --ok: #2e8b57; --attention: #c0392b;
  --bord: #e3ded4; --ombre: 0 1px 4px rgba(0,0,0,.08);
}
[data-theme="sombre"] {
  --fond: #1c1c22; --carte: #26262e; --encre: #eceaf2; --encre-2: #a5a2b3;
  --accent: #a68bff; --accent-doux: #35304a; --ok: #5fce93; --attention: #ff8a76;
  --bord: #3a3a45; --ombre: 0 1px 4px rgba(0,0,0,.4);
}
[data-theme="foret"] {
  --fond: #eef3ea; --carte: #fbfdf9; --encre: #253226; --encre-2: #5f705f;
  --accent: #3d7a4a; --accent-doux: #dcebde; --ok: #2e8b57; --attention: #b3541e;
  --bord: #cfdccb; --ombre: 0 1px 4px rgba(40,70,40,.12);
}
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, sans-serif; background:var(--fond); color:var(--encre); }
main { max-width:1080px; margin:0 auto; padding:1rem; }
.carte { background:var(--carte); border:1px solid var(--bord); border-radius:12px;
  padding:.9rem 1rem; box-shadow:var(--ombre); }
.btn { background:var(--accent); color:#fff; border:0; border-radius:8px;
  padding:.45rem .8rem; cursor:pointer; font:inherit; }
.sous { color:var(--encre-2); font-size:.85rem; }
input, select { font:inherit; color:inherit; border:1px solid var(--bord);
  border-radius:8px; padding:.4rem; background:var(--fond); }
header.top { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; padding:.7rem 1rem;
  background:var(--carte); border-bottom:1px solid var(--bord); }
header.top h1 { font-size:1.05rem; margin:0; }
table { width:100%; border-collapse:collapse; background:var(--carte); border:1px solid var(--bord);
  border-radius:12px; overflow:hidden; }
th, td { text-align:left; padding:.55rem .7rem; border-bottom:1px solid var(--bord);
  vertical-align:top; font-size:.92rem; }
th { background:var(--accent-doux); font-size:.85rem; }
tr:last-child td { border-bottom:0; }
td .nom { font-weight:600; }
td .petit { display:block; color:var(--encre-2); font-size:.8rem; }
.etat { border-radius:6px; padding:.1rem .45rem; font-size:.8rem; white-space:nowrap; }
.etat.oui { background:var(--ok); color:#fff; } .etat.non { background:var(--attention); color:#fff; }
.etat.attente { background:var(--accent-doux); } .etat.peutetre { background:#d8b74a; color:#fff; }
.btn.mini { padding:.15rem .45rem; font-size:.85rem; }
.btn.sec { background:var(--accent-doux); color:var(--encre); border:1px solid var(--bord); }
.barre-outils { display:flex; flex-wrap:wrap; gap:.5rem; margin:.5rem 0 .8rem; align-items:flex-start; }
.cartes { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.8rem; margin-bottom:1rem; }
.gros { font-size:1.5rem; font-weight:700; }
.rsvp-choix { display:flex; gap:.4rem; }
.rsvp-choix button { flex:1; border:1px solid var(--bord); background:var(--fond); border-radius:10px;
  padding:.5rem .2rem; cursor:pointer; color:var(--encre); font:inherit; }
.rsvp-choix button.choisi { background:var(--ok); color:#fff; border-color:var(--ok); }
.bloc-invite { border:1px solid var(--bord); border-radius:12px; padding:.8rem; margin-bottom:.8rem;
  background:var(--carte); }
