/* OVDA-RH — charte commune (bleu OVDA #0095c9, registre institutionnel).
   FIVE SARL — logiciel conçu par Thierry Zola Kwandi. */
@import url('https://fonts.bunny.net/css?family=figtree:400,500,600,700,800&display=swap');
:root{
  --bleu:#0077a3; --bleu-vif:#0095c9; --bleu-fonce:#0b3a53; --bleu-pale:#e6f4fa;
  --vert:#1a7f37; --vert-pale:#e3f4e8; --ambre:#9a6200; --ambre-pale:#fdf3dc; --rouge:#b42318; --rouge-pale:#fdecea;
  --violet:#5b4bb7; --violet-pale:#efedfb;
  --fond:#f4f7f9; --carte:#ffffff; --texte:#14232e; --doux:#51606b; --ligne:#dbe3e8;
  --ombre:0 1px 2px rgba(11,58,83,.06),0 4px 14px rgba(11,58,83,.06);
  --r:12px; --police:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif; --mono:ui-monospace,'SFMono-Regular',Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bleu:#4cc2ec; --bleu-vif:#4cc2ec; --bleu-fonce:#d9f1fb; --bleu-pale:#0f2f40;
  --vert:#5cd27c; --vert-pale:#10301b; --ambre:#f0b44c; --ambre-pale:#352708; --rouge:#ff8a80; --rouge-pale:#3b1512;
  --violet:#a99cff; --violet-pale:#221d43;
  --fond:#0b1720; --carte:#12222d; --texte:#e6eef3; --doux:#9fb1bd; --ligne:#24394a; --ombre:none;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--police);background:var(--fond);color:var(--texte);font-size:15px;line-height:1.5}
a{color:var(--bleu)}
img{max-width:100%;display:block}
h1,h2,h3{line-height:1.2;margin:0 0 .4em;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;border:1px solid transparent;border-radius:10px;padding:.62em 1.1em;font-weight:600;cursor:pointer;background:var(--bleu);color:#fff;text-decoration:none;min-height:44px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn:not(.sec):not(.danger){color:#08202c}}
.btn.sec{background:var(--carte);color:var(--bleu);border-color:var(--ligne)}
.btn.danger{background:var(--rouge);color:#fff}
.btn:disabled{opacity:.55;cursor:wait}
.btn.petit{min-height:34px;padding:.35em .8em;font-size:.88em}
.champ{display:flex;flex-direction:column;gap:.3em;margin-bottom:.8em}
.champ label{font-weight:600;font-size:.9em}
.champ input,.champ select,.champ textarea{border:1px solid var(--ligne);border-radius:10px;padding:.65em .8em;background:var(--carte);min-height:44px;width:100%}
.champ input:focus,.champ select:focus,.champ textarea:focus,.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--bleu-vif) 45%,transparent);outline-offset:1px}
.carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r);box-shadow:var(--ombre);padding:16px}
.pastille{display:inline-flex;align-items:center;gap:.35em;font-size:.8em;font-weight:700;padding:.2em .65em;border-radius:99px;white-space:nowrap}
.p-present{background:var(--vert-pale);color:var(--vert)} .p-retard{background:var(--ambre-pale);color:var(--ambre)}
.p-absent{background:var(--rouge-pale);color:var(--rouge)} .p-hors_site{background:var(--ambre-pale);color:var(--ambre)}
.p-mission,.p-conge{background:var(--violet-pale);color:var(--violet)} .p-neutre{background:var(--bleu-pale);color:var(--bleu)}
.doux{color:var(--doux)} .mono{font-family:var(--mono)} .petit{font-size:.86em}
.alerte{border-radius:10px;padding:.7em .9em;margin:.6em 0;font-size:.92em}
.alerte.err{background:var(--rouge-pale);color:var(--rouge)} .alerte.ok{background:var(--vert-pale);color:var(--vert)}
.alerte.info{background:var(--bleu-pale);color:var(--bleu-fonce)} .alerte.att{background:var(--ambre-pale);color:var(--ambre)}
.vide{padding:24px;text-align:center;color:var(--doux)}
.chargement{padding:24px;text-align:center;color:var(--doux)}
.chargement::before{content:"";display:inline-block;width:16px;height:16px;border:2px solid var(--ligne);border-top-color:var(--bleu);border-radius:50%;animation:tour 0.8s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes tour{to{transform:rotate(360deg)}}
table{width:100%;border-collapse:collapse;font-size:.92em}
th,td{text-align:left;padding:.55em .5em;border-bottom:1px solid var(--ligne);vertical-align:top}
th{font-size:.8em;text-transform:uppercase;letter-spacing:.04em;color:var(--doux);font-weight:700}
.tablo{overflow-x:auto;-webkit-overflow-scrolling:touch}
.num{text-align:right;font-variant-numeric:tabular-nums}
.pied{font-size:.78em;color:var(--doux);text-align:center;padding:22px 16px 90px;line-height:1.6}
.pied strong{color:var(--texte)}
.marque{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.marque img{height:34px;width:auto;background:#fff;border-radius:6px;padding:2px 4px}
.demo{background:var(--ambre-pale);color:var(--ambre);font-size:.8em;text-align:center;padding:.4em 16px;font-weight:600}
.cache{display:none!important}
dialog{border:none;border-radius:16px;padding:0;max-width:min(560px,calc(100vw - 32px));width:100%;background:var(--carte);color:var(--texte);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(5,20,30,.55)}
dialog .corps{padding:18px}
.grille2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media (max-width:520px){.grille2{grid-template-columns:1fr}}
