/* Mobile d'abord : cibles tactiles ≥ 44 px, champs à 16 px (évite le zoom iOS), zones sûres (encoche). */
:root {
  --bg:#F1F5F9; --carte:#FFFFFF; --texte:#0F172A; --doux:#475569; --pale:#64748B; --bord:#E2E8F0; --bord2:#CBD5E1;
  --marque:#1D4ED8; --sur-marque:#FFFFFF; --marque-bg:#DBEAFE; --nuit:#0F172A; --danger:#B91C1C; --danger-bg:#FEE2E2; --ok:#15803D; --ok-bg:#DCFCE7;
  --warn-bg:#FEF3C7; --warn:#92400E; --rayon:14px;
  --urg-rouge:#B3261E; --urg-rouge-bg:#FBE3DF; --urg-rouge-bd:#E0A49C;
  --urg-jaune:#875411; --urg-jaune-bg:#FAEFD4; --urg-jaune-bd:#DFC489;
  --urg-vert:#1E6B4B;  --urg-vert-bg:#E2F0E9;  --urg-vert-bd:#9AC7B2;
  --urg-gris:#55687B;  --urg-gris-bg:#EDF0F3;  --urg-gris-bd:#C9D3DC;
  --haut:env(safe-area-inset-top,0px); --bas:env(safe-area-inset-bottom,0px);
  --nav:62px;
}
/* Sombre : d'office avec le réglage de l'appareil, sauf si l'utilisateur a choisi « Clair ».
   Le même jeu de couleurs sert au choix manuel « Sombre », quel que soit le réglage de l'appareil. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --bg:#0B1120; --carte:#131C2E; --texte:#F1F5F9; --doux:#CBD5E1; --pale:#94A3B8; --bord:#243049; --bord2:#334155;
    --marque:#60A5FA; --sur-marque:#0B1120; --marque-bg:#1E3A8A; --danger:#FCA5A5; --danger-bg:#450A0A; --ok:#86EFAC; --ok-bg:#052E16; --warn-bg:#422006; --warn:#FCD34D;
    --urg-rouge:#FCA5A5; --urg-rouge-bg:#45130F; --urg-rouge-bd:#7F2A22;
    --urg-jaune:#FCD34D; --urg-jaune-bg:#3B2206; --urg-jaune-bd:#6B4310;
    --urg-vert:#86EFAC;  --urg-vert-bg:#0A2E1E;  --urg-vert-bd:#1D5B3C;
    --urg-gris:#B7C4D1;  --urg-gris-bg:#1B2639;  --urg-gris-bd:#334155; color-scheme:dark; }
}
:root[data-theme="dark"] { --bg:#0B1120; --carte:#131C2E; --texte:#F1F5F9; --doux:#CBD5E1; --pale:#94A3B8; --bord:#243049; --bord2:#334155;
    --marque:#60A5FA; --sur-marque:#0B1120; --marque-bg:#1E3A8A; --danger:#FCA5A5; --danger-bg:#450A0A; --ok:#86EFAC; --ok-bg:#052E16; --warn-bg:#422006; --warn:#FCD34D;
    --urg-rouge:#FCA5A5; --urg-rouge-bg:#45130F; --urg-rouge-bd:#7F2A22;
    --urg-jaune:#FCD34D; --urg-jaune-bg:#3B2206; --urg-jaune-bd:#6B4310;
    --urg-vert:#86EFAC;  --urg-vert-bg:#0A2E1E;  --urg-vert-bd:#1D5B3C;
    --urg-gris:#B7C4D1;  --urg-gris-bg:#1B2639;  --urg-gris-bd:#334155; color-scheme:dark; }
:root[data-theme="light"] { color-scheme:light; }
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--texte); font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; overscroll-behavior-y:none; }
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
h1,h2,h3,p { margin:0; }
:focus-visible { outline:3px solid var(--marque); outline-offset:2px; }
[hidden] { display:none !important; }

/* Barre du haut */
.entete { position:sticky; top:0; z-index:20; background:var(--nuit); color:#F8FAFC; padding:calc(10px + var(--haut)) 16px 10px; display:flex; align-items:center; gap:12px; }
.entete .logo { width:34px; height:34px; border-radius:9px; background:#1D4ED8; display:grid; place-items:center; font-weight:900; font-size:18px; flex:none; }
.entete h1 { font-size:16px; font-weight:800; line-height:1.1; }
.entete small { display:block; color:#94A3B8; font-size:11px; letter-spacing:.6px; font-weight:600; }
.entete .qui { margin-left:auto; text-align:right; font-size:12px; color:#CBD5E1; max-width:45%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contenu { padding:12px 12px calc(var(--nav) + 90px + var(--bas)); max-width:980px; margin:0 auto; }

/* Navigation du bas */
.nav { position:fixed; left:0; right:0; bottom:0; z-index:30; background:var(--carte); border-top:1px solid var(--bord); display:flex; padding-bottom:var(--bas); }
.nav button { flex:1; min-width:0; padding:0 2px; border:0; background:none; color:var(--pale); font-size:11.5px; min-height:var(--nav); font-weight:700; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.nav button .ic { font-size:22px; line-height:1; }
.nav button[aria-current="page"] { color:var(--marque); }
.nav .pastille { position:absolute; margin:-4px 0 0 18px; background:var(--danger); color:#fff; border-radius:9px; font-size:10px; padding:0 5px; }

/* Contrôles */
.barre { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.recherche { width:100%; min-height:48px; border:1px solid var(--bord2); border-radius:12px; padding:0 14px; background:var(--carte); }
.puces { display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
.puces::-webkit-scrollbar { display:none; }
.puce { flex:none; min-height:40px; padding:0 14px; border-radius:20px; border:1px solid var(--bord2); background:var(--carte); font-weight:700; font-size:14px; color:var(--doux); }
.puce[aria-pressed="true"] { background:var(--marque); border-color:var(--marque); color:var(--sur-marque); }
.btn { min-height:48px; padding:0 18px; border-radius:12px; border:1px solid var(--bord2); background:var(--carte); font-weight:700; }
.btn.primaire { background:var(--marque); border-color:var(--marque); color:var(--sur-marque); }
.btn.danger { color:var(--danger); border-color:var(--danger); }
.btn.petit { min-height:40px; padding:0 12px; font-size:14px; }
.btn:disabled { opacity:.5; cursor:default; }
.fab { position:fixed; right:16px; bottom:calc(var(--nav) + 16px + var(--bas)); z-index:25; width:60px; height:60px; border-radius:30px; border:0; background:var(--marque); color:var(--sur-marque); font-size:32px; line-height:1; box-shadow:0 6px 20px rgba(0,0,0,.35); }

/* Cartes patients */
.liste { display:flex; flex-direction:column; gap:10px; min-width:0; }
.carte-p { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:12px; align-items:center; min-width:0; overflow:hidden; background:var(--carte); border:1px solid var(--bord); border-radius:var(--rayon); padding:12px; width:100%; text-align:left; min-height:84px; }
.carte-p.attention { border-left:5px solid #DC2626; }
.carte-p.prioritaire { border:2px solid var(--urg-rouge); box-shadow:0 0 0 3px var(--urg-rouge-bg); }
.panneau.prioritaire { border:2px solid var(--urg-rouge); }
.badge.info { background:var(--bg); color:var(--doux); border-color:var(--bord2); font-variant-numeric:tabular-nums; }
.badge.prio { background:var(--urg-rouge); color:var(--carte); border-color:var(--urg-rouge); letter-spacing:.4px; }
.carte-p { touch-action:pan-y; user-select:none; -webkit-user-select:none; position:relative; }
.carte-p.pret-droite { border-color:var(--ok); box-shadow:0 0 0 3px var(--ok-bg); }
.carte-p.pret-gauche { border-color:var(--urg-rouge); box-shadow:0 0 0 3px var(--urg-rouge-bg); }
.pile-actions { display:flex; flex-direction:column; gap:6px; align-items:stretch; }
.conge { min-width:64px; min-height:32px; border-radius:12px; border:1px solid var(--bord2); background:var(--carte); color:var(--pale); font-weight:700; font-size:11px; display:flex; align-items:center; justify-content:center; gap:4px; }
.conge .ic { font-size:13px; line-height:1; }
.conge:hover { color:var(--texte); border-color:var(--pale); }
.astuce { text-align:center; color:var(--pale); font-size:12px; margin-top:6px; }
.chambre { background:var(--bg); border:1px solid var(--bord); border-radius:12px; min-height:60px; display:grid; place-items:center; font-weight:900; font-size:18px; font-variant-numeric:tabular-nums; }
.carte-p .nom { font-weight:800; font-size:17px; line-height:1.2; }
.carte-p .ligne { color:var(--doux); font-size:14px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Chirurgien remplaçant : c'est lui qu'on appelle, donc son nom passe devant */
.carte-p .ligne.remp { display:flex; align-items:center; gap:6px; color:var(--texte); }
/* flex:none — le nom du remplaçant, c'est lui qu'on appelle : il ne se coupe jamais.
   C'est « pour Dr X » qui se tronque quand la place manque. */
.carte-p .ligne.remp strong { font-weight:800; flex:none; }
.carte-p .ligne.remp .pour { flex:1 1 auto; min-width:0; color:var(--pale); font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Sous 600 px, la ligne ne tient pas : « pour Dr X » passe dessous, en entier,
   plutôt que d'être réduit à deux lettres. Seules les fiches avec remplacement s'allongent. */
@media (max-width:600px) {
  .carte-p .ligne.remp { flex-wrap:wrap; row-gap:1px; }
  .carte-p .ligne.remp .pour { flex:0 0 100%; font-size:12px; }
}
.et-remp { flex:none; font-size:10px; font-weight:800; letter-spacing:.5px; padding:2px 6px; border-radius:6px; background:var(--marque-bg); color:var(--marque); }
.carte-p .meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.badge { display:inline-flex; align-items:center; border-radius:7px; padding:2px 9px; font-size:12px; font-weight:800; border:1px solid transparent; }
.n-A { background:#FEE2E2; color:#B91C1C; } .n-B { background:#FFEDD5; color:#C2410C; } .n-C { background:#CFFAFE; color:#0E7490; } .n-Confort { background:#EDE9FE; color:#6D28D9; }
.jour { font-variant-numeric:tabular-nums; color:var(--pale); font-size:13px; font-weight:700; }
.excl { display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#DC2626; color:#fff; font-weight:900; font-size:15px; flex:none; }
.bascule { min-width:64px; min-height:56px; border-radius:12px; border:2px solid var(--bord2); background:var(--carte); font-weight:800; font-size:12px; color:var(--pale); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.bascule .ic { font-size:20px; line-height:1; }
.bascule .hr-t { font-variant-numeric:tabular-nums; white-space:nowrap; letter-spacing:-.2px; }
.bascule[aria-pressed="true"] { background:var(--ok-bg); border-color:var(--ok); color:var(--ok); }
.vide { text-align:center; color:var(--pale); padding:40px 16px; }
.pied-liste { text-align:center; color:var(--pale); font-size:12px; margin-top:14px; }

/* Panneaux & formulaires */
.panneau { background:var(--carte); border:1px solid var(--bord); border-radius:var(--rayon); padding:16px; margin-bottom:12px; }
.panneau h2 { font-size:15px; margin-bottom:12px; }
.tete-panneau + p { margin-top:-4px; }
.champ { margin-bottom:14px; }
.champ label, .lbl { display:block; font-size:12px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; color:var(--pale); margin-bottom:6px; }
.champ input, .champ select, .champ textarea { width:100%; min-height:48px; border:1px solid var(--bord2); border-radius:12px; padding:10px 12px; background:var(--carte); }
.champ textarea { resize:vertical; line-height:1.5; }
.panneau textarea, .modal textarea { width:100%; min-height:88px; border:1px solid var(--bord2); border-radius:12px; padding:10px 12px; background:var(--carte); resize:vertical; line-height:1.5; }
.contenu, .fiche-corps, .modal { min-width:0; }
body { overflow-x:hidden; }
.grille2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:420px) { .grille2.empile { grid-template-columns:1fr; } }
.choix { display:flex; gap:8px; }
.choix button { flex:1; min-height:52px; border-radius:12px; border:2px solid var(--bord2); background:var(--carte); font-weight:800; color:var(--pale); }
.choix button[aria-pressed="true"] { border-color:currentColor; }
.choix .c-A[aria-pressed="true"] { background:#FEE2E2; color:#B91C1C; } .choix .c-B[aria-pressed="true"] { background:#FFEDD5; color:#C2410C; }
.choix .c-C[aria-pressed="true"] { background:#CFFAFE; color:#0E7490; } .choix .c-Confort[aria-pressed="true"] { background:#EDE9FE; color:#6D28D9; }
.choix .th { font-size:15px; }
.choix .th[aria-pressed="true"] { background:var(--marque-bg); color:var(--marque); }
.choix .oui[aria-pressed="true"] { background:var(--ok-bg); color:var(--ok); }
.choix .prio-oui[aria-pressed="true"] { background:var(--urg-rouge-bg); color:var(--urg-rouge); }
.choix .non[aria-pressed="true"] { background:var(--bg); color:var(--doux); }
.prob { display:flex; align-items:center; gap:10px; background:var(--bg); border:1px solid var(--bord); border-radius:10px; padding:6px 6px 6px 12px; margin-bottom:6px; }
.prob span { flex:1; overflow-wrap:anywhere; }
.prob button { width:44px; height:44px; border:0; background:none; color:var(--pale); font-size:18px; }
.ligne-ajout { display:flex; gap:8px; }
.ligne-ajout input { flex:1; min-height:48px; border:1px solid var(--bord2); border-radius:12px; padding:0 12px; background:var(--carte); }
.note { background:var(--bg); border:1px solid var(--bord); border-radius:12px; padding:12px; margin-top:10px; }
.note .tete { font-size:12px; color:var(--pale); font-weight:700; margin-bottom:4px; }
.note.faite { background:var(--ok-bg); border-color:var(--ok); }
.note-pied { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; }
.note-pied .tete { margin:0; }
.coche { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:0 14px 0 10px; border-radius:12px;
  border:2px solid var(--bord2); background:var(--carte); font-weight:800; font-size:14px; color:var(--doux); }
.coche .case { display:inline-grid; place-items:center; width:24px; height:24px; border-radius:7px;
  border:2px solid var(--bord2); background:var(--carte); font-size:16px; font-weight:900; line-height:1; }
.coche[aria-pressed="true"] { border-color:var(--ok); color:var(--ok); background:var(--carte); }
.coche[aria-pressed="true"] .case { border-color:var(--ok); background:var(--ok); color:var(--carte); }
.coche:disabled { opacity:.5; }
.tete-panneau { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.tete-panneau h2 { margin:0; }
.compteur { font-size:12px; font-weight:800; color:var(--pale); border:1px solid transparent; border-radius:7px; padding:3px 9px; }
.etat-depasse { background:var(--urg-rouge-bg); color:var(--urg-rouge); border-color:var(--urg-rouge-bd); }
.etat-aujourdhui { background:var(--urg-jaune-bg); color:var(--urg-jaune); border-color:var(--urg-jaune-bd); }
.etat-avenir { background:var(--urg-vert-bg); color:var(--urg-vert); border-color:var(--urg-vert-bd); }
.etat-sans { background:var(--urg-gris-bg); color:var(--urg-gris); border-color:var(--urg-gris-bd); }
.etat-fait { background:var(--ok-bg); color:var(--ok); }
.note.ech-depasse { border-left:5px solid var(--urg-rouge); }
.note.ech-aujourdhui { border-left:5px solid var(--urg-jaune); }
.note.ech-avenir { border-left:5px solid var(--urg-vert); }
.note.ech-sans { border-left:5px solid var(--bord2); }
/* Grille de la semaine : patients en lignes, journées en colonnes */
.grille-sem { display:grid; grid-template-columns:minmax(0,1fr) repeat(7, 34px); gap:1px;
  background:var(--bord); border:1px solid var(--bord); border-radius:12px; overflow:hidden; }
@media (min-width:560px) { .grille-sem { grid-template-columns:minmax(0,1fr) repeat(7, 56px); } }
.grille-sem > * { background:var(--carte); }
.gs-tete { padding:6px 2px 7px; text-align:center; background:var(--bg); }
.gs-tete.gs-pat { text-align:left; padding:8px 10px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--pale); }
.gs-tete.auj { background:var(--marque-bg); }
.gs-tete.futur { opacity:.45; }
.gs-j { font-size:10px; font-weight:800; color:var(--pale); letter-spacing:.3px; }
.gs-d { font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.15; }
.gs-n { font-size:11px; font-weight:800; color:var(--pale); font-variant-numeric:tabular-nums; min-height:14px; }
.gs-n.plein { color:var(--ok); }
.gs-pat { display:flex; flex-direction:column; align-items:flex-start; gap:1px; min-width:0; padding:8px 10px; border:0; text-align:left; width:100%; }
.gs-lien { color:var(--texte); }
.gs-ch { font-size:11px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--pale); letter-spacing:.3px; }
.gs-nom { font-size:14px; font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gs-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-height:46px; font-size:15px; font-weight:800; color:var(--pale); }
.gs-cell.coche { color:var(--ok); background:var(--ok-bg); font-size:13px; }
.gs-cell.auj { box-shadow:inset 0 0 0 1px var(--marque-bg); }
.gs-ini { font-size:12px; font-weight:800; line-height:1.1; }
.gs-hr { font-size:10px; font-weight:700; line-height:1.1; font-variant-numeric:tabular-nums; letter-spacing:-.2px; }
.gs-vide { padding:28px 16px; text-align:center; color:var(--pale); }

/* Détail chronologique de l'historique : la feuille qu'on relit pour facturer */
.det-titre { font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--pale); margin:22px 0 8px; }
.det-bloc { margin-bottom:14px; }
.det-jour { font-size:12px; font-weight:800; color:var(--doux); padding:6px 2px; border-bottom:1px solid var(--bord); }
.det-l { display:flex; align-items:center; gap:10px; width:100%; min-height:44px; padding:6px 2px; background:none; border:0; border-bottom:1px solid var(--bord); text-align:left; color:inherit; font:inherit; }
.det-h { font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--ok); min-width:58px; }
.det-p { flex:1; min-width:0; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.det-par { font-size:11px; font-weight:800; color:var(--pale); letter-spacing:.3px; }
.avancement { font-size:13px; font-weight:700; color:var(--doux); margin-top:2px; }
.aide { font-size:13px; line-height:1.4; color:var(--pale); margin-top:6px; }
.bascule.muette { opacity:.55; }
.note p { white-space:pre-wrap; overflow-wrap:anywhere; }
.alerte { border-radius:12px; padding:12px 14px; margin-bottom:12px; font-size:14px; }
.alerte.err { background:var(--danger-bg); color:var(--danger); border:1px solid var(--danger); }
.alerte.warn { background:var(--warn-bg); color:var(--warn); border:1px solid #FCD34D; }
.alerte.ok { background:var(--ok-bg); color:var(--ok); border:1px solid var(--ok); }

/* Fiche patient (plein écran sur téléphone, panneau latéral sur grand écran) */
.fond { position:fixed; inset:0; z-index:50; background:rgba(15,23,42,.55); display:flex; justify-content:flex-end; }
.fiche { background:var(--bg); width:100%; height:100%; display:flex; flex-direction:column; }
@media (min-width:760px) { .fiche { max-width:600px; } }
.fiche-tete { background:var(--carte); border-bottom:1px solid var(--bord); padding:calc(10px + var(--haut)) 8px 10px; display:flex; align-items:center; gap:6px; }
.fiche-tete .retour { width:48px; height:48px; border:0; background:none; font-size:26px; color:var(--marque); }
.fiche-tete h2 { font-size:18px; font-weight:800; line-height:1.15; flex:1; overflow-wrap:anywhere; }
.fiche-tete small { display:block; color:var(--pale); font-weight:600; font-size:12px; }
.fiche-corps { flex:1; overflow-y:auto; padding:12px; -webkit-overflow-scrolling:touch; }
.fiche-pied { background:var(--carte); border-top:1px solid var(--bord); padding:10px 12px calc(10px + var(--bas)); display:flex; gap:10px; }
.fiche-pied .btn { flex:1; }
.fiche-pied .btn.primaire { flex:2; }
.attn { display:flex; align-items:center; gap:12px; }
.attn .gros { width:52px; height:52px; border-radius:12px; border:2px solid #DC2626; background:var(--carte); color:#DC2626; font-size:30px; font-weight:900; flex:none; }
.attn .gros[aria-pressed="true"] { background:#DC2626; color:#fff; }

/* Fenêtres modales */
.modal-fond { position:fixed; inset:0; z-index:80; background:rgba(15,23,42,.6); display:flex; align-items:flex-end; justify-content:center; }
@media (min-width:600px) { .modal-fond { align-items:center; } }
.modal { background:var(--carte); width:100%; max-width:480px; max-height:90vh; overflow-y:auto; border-radius:20px 20px 0 0; padding:20px 18px calc(18px + var(--bas)); }
@media (min-width:600px) { .modal { border-radius:20px; } }
.modal h2 { font-size:18px; margin-bottom:8px; }
.modal p { color:var(--doux); margin-bottom:14px; }
.modal .actions { display:flex; gap:10px; margin-top:6px; }
.modal .actions .btn { flex:1; }
.secret { font:700 18px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:1px; background:var(--bg); border:1px dashed var(--bord2); border-radius:10px; padding:12px; overflow-wrap:anywhere; text-align:center; margin-bottom:12px; user-select:all; }

/* Connexion */
.connexion { min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:calc(20px + var(--haut)) 16px calc(20px + var(--bas)); background:var(--nuit); }
.connexion .boite { width:100%; max-width:400px; background:var(--carte); border-radius:20px; padding:26px 22px; }
.connexion .logo { width:56px; height:56px; border-radius:15px; background:#1D4ED8; color:#fff; display:grid; place-items:center; font-size:30px; font-weight:900; margin-bottom:14px; }
.connexion h1 { font-size:22px; font-weight:800; }
.connexion .sous { color:var(--pale); margin:4px 0 20px; font-size:14px; }
.connexion .btn { width:100%; }
.connexion .legal { color:var(--pale); font-size:12px; margin-top:16px; line-height:1.5; }

/* Administration */
.ligne-u { display:flex; flex-direction:column; gap:8px; background:var(--carte); border:1px solid var(--bord); border-radius:var(--rayon); padding:14px; margin-bottom:10px; }
.ligne-u .actions { display:flex; gap:8px; flex-wrap:wrap; }
.journal-l { font-size:13px; border-bottom:1px solid var(--bord); padding:9px 2px; overflow-wrap:anywhere; }
.journal-l b { font-weight:800; } .journal-l .t { color:var(--pale); font-variant-numeric:tabular-nums; }

/* Masque de confidentialité et notifications */
#masque { position:fixed; inset:0; z-index:200; background:var(--nuit); color:#F8FAFC; display:grid; place-items:center; text-align:center; }
#masque div { display:flex; flex-direction:column; gap:6px; }
#masque span { color:#94A3B8; }
#toasts { position:fixed; left:12px; right:12px; bottom:calc(var(--nav) + 84px + var(--bas)); z-index:150; display:flex; flex-direction:column; gap:8px; pointer-events:none; align-items:center; }
.toast { background:var(--nuit); color:#fff; padding:12px 16px; border-radius:12px; font-size:14px; box-shadow:0 6px 20px rgba(0,0,0,.35); max-width:520px; }
.toast.err { background:#991B1B; }

/* Grand écran : navigation en haut */
@media (min-width:900px) {
  .nav { top:calc(56px + var(--haut)); bottom:auto; justify-content:center; border-top:0; border-bottom:1px solid var(--bord); }
  .nav button { flex:none; flex-direction:row; gap:8px; min-height:48px; padding:0 22px; font-size:14px; }
  .contenu { padding-top:72px; padding-bottom:40px; }
  .liste { display:grid; grid-template-columns:1fr 1fr; }
  .fab { bottom:24px; }
  #toasts { bottom:24px; }
}
@media print { .nav,.fab,.entete { display:none; } }
