/* Socle — feuille de style minimale (thème neutre, à enrichir par le domaine). */
:root{ --brand:#1f4e5f; --brand2:#2e6c80; --ink:#1c2b30; --muted:#5c6f81; --line:#d4dde0;
  --bg:#eef2f3; --card:#fff; --ok-bg:#e2efe8; --ok:#1e7d4f; --err-bg:#fbe2e4; --err:#9c0006;
  --warn-bg:#fcefd6; --warn:#9c5700; --info-bg:#dce9ed; --info:#1f4e5f; }
*{ box-sizing:border-box; }
body{ margin:0; font-family:system-ui,Segoe UI,Arial,sans-serif; color:var(--ink);
  background:var(--bg); font-size:14px; }
.topbar{ background:var(--brand); color:#fff; padding:12px 20px; display:flex;
  align-items:center; justify-content:space-between; }
.topbar .brand{ color:#fff; font-weight:700; text-decoration:none; font-size:16px; }
.topbar nav{ display:flex; gap:14px; align-items:center; }
.topbar a{ color:#fff; text-decoration:none; } .topbar .who{ opacity:.85; }
.topbar .link{ background:none; border:1px solid #ffffff55; color:#fff; border-radius:6px;
  padding:5px 10px; cursor:pointer; font:inherit; }
.wrap{ max-width:1100px; margin:0 auto; padding:22px 20px 60px; }
h1{ font-size:1.5rem; }
.card{ background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.2rem 1.4rem; }
.card--narrow{ max-width:380px; margin:2rem auto; }
.stack{ display:flex; flex-direction:column; gap:.8rem; }
.stack label{ display:flex; flex-direction:column; gap:.25rem; font-size:.9rem; }
input,select{ font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:6px; }
.btn{ background:var(--brand); color:#fff; border:none; border-radius:6px; padding:9px 16px;
  cursor:pointer; font:inherit; } .btn:hover{ background:var(--brand2); }
.hint{ color:var(--muted); }
.flash{ padding:9px 13px; border-radius:7px; margin:.4rem 0 1rem; border:1px solid transparent; }
.flash--info{ background:var(--info-bg); color:var(--info); }
.flash--ok{ background:var(--ok-bg); color:var(--ok); }
.flash--warn{ background:var(--warn-bg); color:var(--warn); }
.flash--err{ background:var(--err-bg); color:var(--err); }
.muted{ color:var(--muted); font-size:.9rem; }
.brand-logo{ height:28px; vertical-align:middle; }
.langswitch{ display:inline-flex; gap:4px; }
.langswitch .link{ padding:3px 7px; opacity:.7; }
.langswitch .link.active{ opacity:1; font-weight:700; border-color:#fff; }
.tbl{ width:100%; border-collapse:collapse; }
.tbl th,.tbl td{ text-align:left; padding:6px 10px; border-bottom:1px solid var(--line); }
.row{ display:flex; gap:10px; align-items:center; margin:.5rem 0; flex-wrap:wrap; }
.row--new{ background:var(--ok-bg); }
textarea{ font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:6px; }
.card + .card{ margin-top:1rem; }
.cards{ display:flex; gap:1rem; flex-wrap:wrap; margin:1rem 0; }
.cards .card{ flex:1 1 140px; text-align:center; margin-top:0; }
.cards .card h2{ margin:.2rem 0; font-size:1.8rem; }
