/* theme.css — styles partagés par connexion.php et admin.php */
:root {
  --canvas:#F4F5F7; --surface:#FFFFFF; --ink:#1A2233; --muted:#69738A;
  --line:#E4E7EC; --line-soft:#EEF0F4;
  --violet:#4B3FCF; --violet-soft:#EEECFB; --violet-deep:#3A31A8;
  --amber:#B45309; --amber-soft:#FDF2E3;
  --teal:#0F766E; --teal-soft:#E7F4F2;
  --rose:#BE123C; --rose-soft:#FCEDF1;
  --r:10px;
}
* { box-sizing:border-box; }
body {
  margin:0; background:var(--canvas); color:var(--ink);
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.mono { font-family:'JetBrains Mono',ui-monospace,Menlo,monospace; font-variant-numeric:tabular-nums; }
a { color:var(--violet); }

.brand { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.brand-mark { width:30px; height:30px; border-radius:8px; background:var(--violet); color:#fff;
  display:grid; place-items:center; font-weight:700; font-size:13px; letter-spacing:-.02em; }
.brand-name { font-weight:600; letter-spacing:-.01em; }

.h1 { font-size:23px; font-weight:700; letter-spacing:-.022em; margin:0; }
.h1-sub { color:var(--muted); margin:4px 0 0; }

.bloc { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); margin-bottom:18px; }
.bloc-h { padding:14px 20px; border-bottom:1px solid var(--line-soft); font-weight:600; font-size:14.5px; }
.bloc-b { padding:20px; }

.ch-l, label { display:block; font-size:12.5px; color:var(--muted); font-weight:500; margin-bottom:6px; }
.i, input, select { font:inherit; font-size:13.5px; padding:9px 11px; border:1px solid var(--line);
  border-radius:8px; background:var(--surface); color:var(--ink); width:100%; }
.i:focus, input:focus, select:focus { border-color:var(--violet); outline:none;
  box-shadow:0 0 0 3px var(--violet-soft); }
.gr { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:18px; }

.b, button { font:inherit; font-size:13px; font-weight:500; padding:9px 15px; border-radius:8px;
  border:1px solid var(--violet); background:var(--violet); color:#fff; cursor:pointer; width:auto; }
.b:hover, button:hover { background:var(--violet-deep); border-color:var(--violet-deep); }
.b.g, button.g { background:var(--surface); color:var(--ink); border-color:var(--line); }
.b.g:hover, button.g:hover { background:var(--canvas); border-color:#D3D8E0; }
.b.s, button.s { font-size:12.5px; padding:6px 11px; }
button:focus-visible, input:focus-visible, a:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }

table { width:100%; border-collapse:collapse; font-size:13px; }
th { text-align:left; font-weight:600; color:var(--muted); font-size:12px; padding:11px 16px;
  border-bottom:1px solid var(--line); }
td { padding:11px 16px; border-bottom:1px solid var(--line-soft); }
tr:last-child td { border-bottom:none; }

.alerte { padding:12px 16px; border-radius:var(--r); font-size:13px; margin-bottom:18px; }
.alerte.ok { background:var(--teal-soft); border:1px solid #C8E4DF; color:var(--teal); }
.alerte.err { background:var(--rose-soft); border:1px solid #F3D2DC; color:var(--rose); }
.alerte.avert { background:var(--amber-soft); border:1px solid #F2DFC2; color:var(--amber); }
.inactif { color:var(--muted); }
