/* CEDITECH by TransNumerik — Système de Présence QR */
:root{
  --blue:#016FE9; --purple:#602487; --pink:#E5217C;
  --orange:#FA5622; --amber:#F9B848;
  --grad:linear-gradient(118deg,#016FE9 0%,#602487 34%,#E5217C 64%,#FA5622 100%);
  --ink:#231f33; --muted:#6b6880; --line:#e4e1ef;
  --bg:#f7f6fb; --card:#ffffff;
  --ok:#12854F; --warn:#B26A00; --err:#C22436;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{ -webkit-text-size-adjust:100% }
body{
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.5;
}
img.logo{display:block;height:auto}
button{
  font-family:inherit; font-size:1rem; font-weight:600; cursor:pointer;
  border:0; border-radius:10px; padding:.8rem 1.4rem;
  background:var(--blue); color:#fff; transition:filter .15s;
}
button:hover{filter:brightness(1.1)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{
  outline:3px solid var(--pink); outline-offset:2px;
}
button.secondary{background:#ece9f6;color:var(--purple)}
button.orange{background:var(--orange)}
button.grad{background:var(--grad)}
button.ghost{background:transparent;color:var(--muted);font-weight:500}
input,select{
  font-family:inherit; font-size:1rem; width:100%;
  padding:.75rem .9rem; border:1.5px solid var(--line); border-radius:10px;
  background:#fff; color:var(--ink);
}
label{font-size:.82rem;font-weight:600;color:var(--muted);display:block;margin:.7rem 0 .25rem}
h2,h3{color:var(--purple)}
.card{background:var(--card);border-radius:var(--radius);
  box-shadow:0 1px 2px rgba(96,36,135,.07),0 8px 28px rgba(96,36,135,.08);padding:1.4rem}
.msg{border-radius:10px;padding:.8rem 1rem;font-size:.92rem;margin:.8rem 0;display:none}
.msg.err{display:block;background:#fbe9ec;color:var(--err)}
.msg.ok{display:block;background:#e7f4ee;color:var(--ok)}
.msg.warn{display:block;background:#fdf3e2;color:var(--warn)}
.badge{display:inline-block;font-size:.72rem;font-weight:600;border-radius:999px;padding:.15rem .6rem}
.badge.ok{background:#e7f4ee;color:var(--ok)}
.badge.pend{background:#fdf3e2;color:var(--warn)}
.badge.blue{background:#e3effd;color:var(--blue)}
.badge.purple{background:#efe6f6;color:var(--purple)}
.badge.pink{background:#fbe4ef;color:var(--pink)}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
   text-align:left;padding:.55rem .6rem;border-bottom:2px solid var(--line)}
td{padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* v2 : alignement strict des champs et boutons sur une même ligne */
input,select{height:48px}
input[type=file]{height:auto;padding:.6rem .9rem}
.row>button,.row>a>button{height:48px;padding-top:0;padding-bottom:0;white-space:nowrap}
.badge{white-space:nowrap} td.nw{white-space:nowrap}
