:root{--blue:#0a3fd0;--blue-d:#062a8f;--blue-l:#e8eefd;--bg:#f4f7fe;--surf:#fff;--txt:#0b1a45;--mut:#44506f;--bd:#b9c6ea;--err:#a4123a;--ok:#0b6b3a}
@media (prefers-color-scheme:dark){:root{--blue:#7da2ff;--blue-d:#a9c1ff;--blue-l:#14224f;--bg:#0a1230;--surf:#101b40;--txt:#eef2ff;--mut:#b4c0e4;--bd:#34467f;--err:#ff9db5;--ok:#7fe3ae}}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:1rem/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.skip{position:absolute;left:.5rem;top:-4rem;background:var(--blue);color:#fff;padding:.75rem 1rem;border-radius:.5rem;z-index:9}
.skip:focus{top:.5rem}
:focus-visible{outline:3px solid var(--txt);outline-offset:3px}
header{background:var(--surf);border-bottom:4px solid var(--blue)}
.wrap{max-width:62rem;margin:0 auto;padding:1rem}.petit{max-width:28rem}
.brand{display:flex;align-items:center;gap:1rem}.brand img{height:auto}
.titre{font-size:clamp(1.2rem,4vw,1.8rem);font-weight:700;margin:0;color:var(--blue-d);line-height:1.2}
.sous{margin:0;color:var(--mut)}
h1{font-size:1.6rem;color:var(--blue-d);margin:.5rem 0}h2{font-size:1.25rem;color:var(--blue-d);margin:0 0 .75rem}
section{background:var(--surf);border:1px solid var(--bd);border-radius:1rem;padding:1.25rem;margin:1.25rem 0}
.haut{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.6rem 1.2rem;border-radius:.6rem;border:2px solid var(--blue);background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
@media (prefers-color-scheme:dark){.btn.pri{color:#06143d}}
.btn.sec{background:transparent;color:var(--blue-d)}.btn.dan{background:transparent;color:var(--err);border-color:var(--err)}
.btn:hover{filter:brightness(1.12)}
label.l{display:block;font-weight:700;margin-bottom:.35rem}
input[type=password],input[type=text],input[type=file]{width:100%;min-height:2.75rem;padding:.5rem .75rem;border:2px solid var(--bd);border-radius:.6rem;background:var(--surf);color:var(--txt);font:inherit}
input[aria-invalid=true]{border-color:var(--err)}
.check{display:flex;gap:.5rem;align-items:center;margin:.75rem 0 1.25rem}.check input{width:1.4rem;height:1.4rem}
.aide{color:var(--mut);margin:.5rem 0 1rem}
.msg{font-weight:600;min-height:1.6rem}.msg.err{color:var(--err)}.msg.ok{color:var(--ok)}
.sr{position:absolute;left:-9999px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse}
caption{text-align:left;color:var(--mut);padding-bottom:.5rem}
th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--bd);vertical-align:middle}th{color:var(--blue-d)}
td.n{word-break:break-word;font-weight:600}
td.a{display:flex;gap:.5rem;flex-wrap:wrap}td.a form{margin:0}
.empty{text-align:center;color:var(--mut)}
footer{text-align:center;color:var(--mut);padding:1rem 1rem 2rem;font-size:.9rem}
@media (max-width:42rem){thead{position:absolute;left:-9999px}table,tbody,tr,td{display:block;width:100%}
tr{border:1px solid var(--bd);border-radius:.8rem;margin-bottom:.8rem;padding:.4rem}td{border:0;padding:.3rem .5rem}
td[data-l]::before{content:attr(data-l) " : ";font-weight:700;color:var(--mut)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.role{margin:0;color:var(--mut)}
