/* Charte de l'OMS : bloc de style de la maquette v8, lignes 11 à 158, repris tel quel
   (docs/oms/oms_maquette_v8_reference_20260918.html ; docs/oms/04-ecrans.md §1).
   Une différence : la police Rubik n'est pas chargée. La maquette la prend chez Google Fonts, ce que la CSP
   (default-src 'self', docs/oms/07-securite.md §5) interdit ; la liste de polices de la maquette retombe sur
   celle du système. Les ajouts propres à l'OMS sont en fin de fichier. */

:root{
  --cuivre:#D98664; --cuivre-fonce:#BF6541; --texte:#0D0E16; --gris:#6E6E75;
  --fond:#F5F2EE; --carte:#FFFFFF; --trait:#E6DFD6; --doux:#F4E7D6;
  --rouge:#B3261E; --rouge-fond:#FBE9E7; --vert:#2E6B3F; --vert-fond:#E6F2E9;
  --ambre:#8A5A00; --ambre-fond:#FFF3D6;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --texte:#F2EEE9; --gris:#A7A3A0; --fond:#17161A; --carte:#221F24; --trait:#3A3438;
    --doux:#3A2C24; --cuivre-fonce:#E8A283; --rouge:#F2B8B5; --rouge-fond:#46201D;
    --vert:#9ED3AB; --vert-fond:#1E3325; --ambre:#F3CF7A; --ambre-fond:#3B2F14;
  }
}
:root[data-theme="dark"]{
  --texte:#F2EEE9; --gris:#A7A3A0; --fond:#17161A; --carte:#221F24; --trait:#3A3438;
  --doux:#3A2C24; --cuivre-fonce:#E8A283; --rouge:#F2B8B5; --rouge-fond:#46201D;
  --vert:#9ED3AB; --vert-fond:#1E3325; --ambre:#F3CF7A; --ambre-fond:#3B2F14;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--texte);font-family:Rubik,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.45}
button{font-family:inherit;font-size:15px;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cuivre);outline-offset:2px}
.app{max-width:560px;margin:0 auto;padding:0 14px 90px}
header.top{padding:18px 0 10px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
header.top h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}
.clock{font-size:13px;color:var(--gris);margin-top:2px}
.note{background:var(--doux);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.lien{background:none;border:none;color:var(--cuivre-fonce);padding:6px 0;font-weight:500;text-decoration:underline;text-underline-offset:3px}
nav.tabs{position:sticky;top:0;z-index:5;background:var(--fond);display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 10px}
nav.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;border:1.5px solid var(--trait);background:var(--carte);color:var(--texte);border-radius:22px;padding:8px 13px;font-weight:500;white-space:nowrap}
.tab .n{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:10px;background:var(--fond);color:var(--gris);font-size:13px;text-align:center}
.tab.on{border-color:var(--texte);background:var(--texte);color:var(--carte)}
.tab.on .n{background:var(--cuivre);color:#fff}
.tab .n.chaud{background:var(--cuivre);color:#fff}
h2.file{font-size:17px;margin:6px 0 4px}
.aide{color:var(--gris);font-size:13px;margin:0 0 12px}
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:14px;margin-bottom:10px}
.carte.cliquable{cursor:pointer}
.ligne1{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.num{font-weight:700;font-size:16px}
.montant{font-weight:700;font-variant-numeric:tabular-nums}
.meta{color:var(--gris);font-size:13px;margin-top:2px}
.pastilles{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pa{font-size:12px;border-radius:6px;padding:2px 8px;background:var(--fond);color:var(--gris)}
.pa.woo{background:transparent;border:1px solid var(--trait)}
.pa.alerte{background:var(--rouge-fond);color:var(--rouge);font-weight:500}
.pa.attention{background:var(--ambre-fond);color:var(--ambre);font-weight:500}
.pa.ok{background:var(--vert-fond);color:var(--vert)}
.pa.scen{background:var(--doux);color:var(--cuivre-fonce)}
.marge{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.marge.neg{color:var(--rouge)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.btn{min-height:44px;border-radius:10px;padding:10px 14px;border:1.5px solid var(--trait);background:var(--carte);color:var(--texte);font-weight:500;flex:1 1 auto}
.btn.p{background:var(--cuivre);border-color:var(--cuivre);color:#fff}
.btn.p:hover{background:var(--cuivre-fonce);border-color:var(--cuivre-fonce)}
.btn.danger{color:var(--rouge);border-color:var(--rouge-fond)}
.btn.petit{min-height:36px;padding:6px 10px;font-size:14px;flex:0 0 auto}
.produit{font-weight:500}
.reco{margin-top:8px;padding:10px;border-radius:10px;background:var(--fond);font-size:14px}
.reco b{font-weight:500}
.alt{margin-top:8px;font-size:13px;color:var(--gris)}
.alt div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px dashed var(--trait);align-items:center}
.bandeau{border-radius:10px;padding:10px;margin-top:10px;font-size:14px}
.bandeau.manque{background:var(--rouge-fond);color:var(--rouge)}
.bandeau.garde{background:var(--ambre-fond);color:var(--ambre)}
.vide{text-align:center;color:var(--gris);padding:36px 12px;border:1.5px dashed var(--trait);border-radius:14px}
.groupe-titre{font-size:13px;color:var(--gris);margin:14px 0 6px;font-weight:500}
table.lignes{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
table.lignes td,table.lignes th{padding:7px 4px;border-top:1px solid var(--trait);text-align:left;vertical-align:top}
table.lignes th{font-weight:500;color:var(--gris);font-size:12px}
table.lignes td.r,table.lignes th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tabwrap{overflow-x:auto}
.totaux{margin-top:10px;font-size:14px}
.totaux div{display:flex;justify-content:space-between;padding:3px 0;font-variant-numeric:tabular-nums}
.totaux .fort{font-weight:700;font-size:16px;border-top:1px solid var(--trait);padding-top:8px;margin-top:4px}
.voile{position:fixed;inset:0;background:rgba(13,14,22,.45);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.feuille{background:var(--carte);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:18px 16px 24px}
.feuille h3{margin:0 0 4px;font-size:18px}
.champ{margin-top:12px}
.champ label{display:block;font-size:13px;color:var(--gris);margin-bottom:4px}
.champ input,.champ select{width:100%;min-height:44px;border-radius:10px;border:1.5px solid var(--trait);background:var(--fond);color:var(--texte);padding:8px 10px;font-size:16px;font-family:inherit}
.choix{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.choix label{display:flex;gap:10px;align-items:center;border:1.5px solid var(--trait);border-radius:10px;padding:10px;min-height:44px}
.choix input{accent-color:var(--cuivre);width:18px;height:18px}
.case{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:14px}.case input{accent-color:var(--cuivre);width:18px;height:18px}.bloc-retour{border:1px solid var(--trait);border-radius:12px;padding:10px;margin-top:10px}.bloc-retour .produit{font-size:14px}.erreur{color:var(--rouge);font-size:13px;margin-top:8px}
.filtres{display:flex;gap:6px;margin-bottom:10px}
.toast{pointer-events:none;position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--texte);color:var(--carte);padding:12px 16px;border-radius:12px;font-size:14px;max-width:92vw;z-index:30;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.telegram{display:block;font-size:12px;opacity:.8;margin-top:3px}
@media (prefers-reduced-motion: no-preference){.feuille{animation:monte .18s ease-out}@keyframes monte{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}}

.entete-actions{display:flex;flex-direction:column;gap:6px}
.btns-alt{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
table.kpi td:first-child{white-space:normal}
table.kpi tr.fort td{font-weight:700}
.case{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:14px}
/* ---- v8 : navigation à deux niveaux ---- */
.recap{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.recap .rb{background:none;border:1.5px solid transparent;border-radius:8px;padding:5px 9px;color:var(--gris);font-weight:500;font-size:14px}
.recap .rb.on{border-color:var(--texte);color:var(--texte)}
.recap .rb .n{font-size:12px;margin-left:4px;color:var(--gris)}
.nav2{position:sticky;top:0;z-index:5;background:var(--fond);padding:6px 0 10px}
.groupes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.gr{border:1.5px solid var(--trait);background:var(--carte);color:var(--texte);border-radius:12px;padding:9px 8px;font-weight:700;text-align:left;line-height:1.2}
.gr small{display:block;font-weight:400;color:var(--gris);font-size:12px;margin-top:2px}
.gr.on{background:var(--texte);border-color:var(--texte);color:var(--carte)}
.gr.on small{color:var(--carte);opacity:.75}
.gr .tot{float:right;min-width:22px;text-align:center;border-radius:10px;font-size:13px;padding:0 6px;background:var(--fond);color:var(--gris);font-weight:500}
.gr .tot.chaud{background:var(--cuivre-fonce);color:#fff}
.etapes{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px}
.et{border:1.5px solid var(--trait);background:var(--carte);color:var(--texte);border-radius:22px;padding:7px 12px;font-weight:500;white-space:nowrap}
.et .k{color:var(--gris);font-size:12px;margin-right:5px;font-variant-numeric:tabular-nums}
.et .n{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:10px;background:var(--fond);color:var(--gris);font-size:13px;text-align:center}
.et .n.chaud{background:var(--cuivre-fonce);color:#fff}
.et.on{border-color:var(--texte);background:var(--texte);color:var(--carte)}
.et.on .k{color:var(--carte);opacity:.7}
.fleche{color:var(--gris);font-size:13px;padding:0 1px}
.retour-trait{margin-top:8px}
/* ---- alerte de rupture ---- */
.carte.alerte-rupture{border:2px solid var(--rouge);}
.etat-ligne{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--trait);font-size:14px;align-items:center}
.etat-ligne span:last-child{flex:0 0 auto}
.carte.orpheline{border-style:dashed}
/* ---- rendez-vous ---- */
.jours{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.jours label,.creneaux label{position:relative;display:block;cursor:pointer}
.jours .lab,.creneaux .lab{border:1.5px solid var(--trait);border-radius:10px;padding:8px 6px;text-align:center;min-height:44px;display:flex;flex-direction:column;justify-content:center;font-size:14px}
.jours input,.creneaux input{position:absolute;opacity:0;width:1px;height:1px}
.jours input:checked + .lab,.creneaux input:checked + .lab{border-color:var(--cuivre-fonce);background:var(--doux);font-weight:500}
.jours input:focus-visible + .lab,.creneaux input:focus-visible + .lab{outline:3px solid var(--cuivre);outline-offset:2px}
.creneaux{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
/* ---- chiffres ---- */
.cartes-kpi{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.kc{border-radius:14px;padding:12px 13px;color:#fff;min-height:104px;display:flex;flex-direction:column;justify-content:space-between}
.kc.large{grid-column:1 / -1}
.kc .per{display:flex;justify-content:space-between;font-size:14px;opacity:.9;gap:6px}
.kc .ca{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:6px}
.kc.large .ca{font-size:32px}
.kc .ca small{font-size:13px;font-weight:500;opacity:.85}
.kc .bas{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px;margin-top:4px;font-variant-numeric:tabular-nums}
.k1{background:#A65634}.k2{background:#5C4A42}.k3{background:#3F6B4E}.k4{background:#3E4E6B}.k5{background:#7A5A1E}
.graphe{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:22px;margin-top:10px}
.graphe .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.graphe .v{font-size:11px;font-weight:500;margin-bottom:3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.graphe .barre{width:70%;max-width:34px;border-radius:6px 6px 0 0;min-height:2px}
.graphe .j{font-size:11px;color:var(--gris);margin-top:5px}
.b1{background:#3F6B4E}.b2{background:#A65634}
.leg{font-size:12px;color:var(--gris);margin-top:4px}

/* ---- ajouts de l'OMS ---- */
main{display:block}
a.lien{display:inline-block}
