﻿/* DLS ERP — interface dense de type ERP : barre de menus, listes filtrables, fiches à onglets. */
:root {
  --brand:#3a2fc9; --brand-dark:#2c23a0; --on-brand:#fff;
  --bg:#eef0f4; --panel:#fff; --panel-alt:#e4e8ee; --line:#cfd5dd; --line-soft:#e3e7ec;
  --fg:#1d2430; --muted:#5d6877; --accent:#3a2fc9; --accent-soft:#e8e6fb;
  --field:#f3f5f8; --sel:#dcd9fa; --error:#b3261e; --ok:#2e7d32; --warn:#8a5a00;
}
@media (prefers-color-scheme: dark) {
  :root {
    --brand:#2a2480; --brand-dark:#1e1a5e; --bg:#14171d; --panel:#1c212a; --panel-alt:#252c37; --line:#323b49; --line-soft:#2a313c;
    --fg:#e6e9ee; --muted:#9aa5b4; --accent:#8f87f5; --accent-soft:#2b2858; --field:#171b22; --sel:#34307a; --error:#ff8a80; --ok:#7bd88f; --warn:#e0b45a;
  }
}
* { box-sizing:border-box; }
html, body { height:100%; }
body { margin:0; font:13px/1.45 "Segoe UI", system-ui, sans-serif; background:var(--bg); color:var(--fg); display:flex; flex-direction:column; }
a { color:var(--accent); }
h1 { font-size:1.35rem; margin:.2rem 0 .6rem; font-weight:600; }
h2 { font-size:1rem; margin:1.2rem 0 .5rem; }
code { font-size:.8rem; word-break:break-all; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }

/* ---- barre du haut ---- */
.topbar { display:flex; align-items:center; gap:.5rem; background:var(--brand); color:var(--on-brand); padding:0 .8rem; height:44px; flex:none; position:relative; z-index:30; }
.brand { color:var(--on-brand); font-weight:700; text-decoration:none; margin-right:.8rem; letter-spacing:.02em; }
.areas { display:flex; gap:.1rem; height:100%; }
.area { position:relative; height:100%; display:flex; align-items:stretch; }
.area-btn, .um-btn { background:transparent; color:var(--on-brand); border:0; padding:0 .8rem; font:inherit; font-weight:600; cursor:pointer; border-radius:0; }
.area-btn:hover, .area-btn[aria-expanded=true], .um-btn:hover { background:var(--brand-dark); }
.help-btn { color:var(--on-brand); text-decoration:none; font-weight:600; padding:0 .8rem; display:flex; align-items:center; align-self:stretch; }
.help-btn:hover { background:var(--brand-dark); }
.mega { position:absolute; top:100%; left:0; display:flex; min-width:560px; min-height:300px; background:var(--panel); color:var(--fg);
        border:1px solid var(--line); box-shadow:0 8px 24px rgba(0,0,0,.2); }
.sections { list-style:none; margin:0; padding:.4rem 0; width:230px; border-right:1px solid var(--line-soft); background:var(--panel); }
.sections button { width:100%; text-align:left; background:transparent; color:var(--fg); border:0; padding:.55rem 1rem; font:inherit; font-weight:600; cursor:pointer; border-radius:0; }
.sections button.on { background:var(--accent-soft); }
.sections .empty { padding:1rem; color:var(--muted); }
.items { flex:1; background:var(--panel-alt); padding:.4rem 0; }
.items ul { list-style:none; margin:0; padding:0; }
.items .head { padding:.5rem 1rem; font-weight:600; }
.items a { display:block; padding:.4rem 1rem; color:var(--fg); text-decoration:none; }
.items a:hover { background:var(--accent-soft); }
.gsearch { flex:1; max-width:560px; margin:0 auto; position:relative; }
.gsearch input { width:100%; padding:.4rem .7rem; border:0; border-radius:6px; background:rgba(255,255,255,.95); color:#1d2430; }
.gsearch ul { position:absolute; top:calc(100% + 4px); left:0; right:0; list-style:none; margin:0; padding:.25rem 0; background:var(--panel); color:var(--fg); border:1px solid var(--line); box-shadow:0 8px 24px rgba(0,0,0,.2); border-radius:6px; }
.gsearch li a { display:flex; justify-content:space-between; gap:1rem; padding:.45rem .8rem; color:var(--fg); text-decoration:none; }
.gsearch li small { color:var(--muted); }
.gsearch li.on a, .gsearch li a:hover { background:var(--accent-soft); }
.gsearch .none { padding:.5rem .8rem; color:var(--muted); }
.usermenu { position:relative; height:100%; display:flex; align-items:stretch; }
.um-panel { position:absolute; right:0; top:100%; min-width:220px; background:var(--panel); color:var(--fg); border:1px solid var(--line); box-shadow:0 8px 24px rgba(0,0,0,.2); padding:.3rem 0; }
.um-panel a, .um-panel button { display:block; width:100%; text-align:left; padding:.5rem 1rem; color:var(--fg); background:transparent; border:0; font:inherit; text-decoration:none; cursor:pointer; border-radius:0; }
.um-panel a:hover, .um-panel button:hover { background:var(--accent-soft); }
.um-panel .who { padding:.5rem 1rem; color:var(--muted); border-bottom:1px solid var(--line-soft); }

/* ---- zone centrale et barre d'état ---- */
.content { flex:1; overflow:auto; padding:.8rem 1rem 1rem; }
.statusbar { flex:none; display:flex; gap:1.2rem; align-items:center; padding:.25rem 1rem; background:var(--panel); border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
.statusbar strong { color:var(--fg); font-weight:600; }
.statusbar select { padding:.1rem .3rem; font-size:.85rem; }
.flash { padding:.5rem .8rem; border:1px solid var(--line); border-left-width:4px; background:var(--panel); margin:0 0 .8rem; }
.flash.ok { border-left-color:var(--ok); } .flash.err { border-left-color:var(--error); color:var(--error); }
.crumbs { margin:0 0 .3rem; color:var(--muted); font-size:.85rem; }

/* ---- champs et boutons ---- */
input, select, textarea { font:inherit; color:var(--fg); background:var(--field); border:1px solid var(--line); border-radius:3px; padding:.2rem .4rem; }
input[readonly], input:disabled, select:disabled { background:var(--panel-alt); color:var(--muted); }
button, .btn { font:inherit; padding:.32rem .8rem; border:1px solid var(--accent); border-radius:3px; background:var(--accent); color:#fff; cursor:pointer; text-decoration:none; display:inline-block; }
button.secondary, .btn.secondary { background:var(--panel); color:var(--accent); }
button:disabled { opacity:.45; cursor:not-allowed; }
button.icon { padding:.1rem .5rem; background:var(--panel); color:var(--fg); border-color:var(--line); font-weight:700; }
label.chk { display:flex; gap:.45rem; align-items:center; color:var(--fg); padding:.05rem 0; }
.error { color:var(--error); margin:0; }

/* ---- barre d'outils des listes ---- */
.toolbar { display:flex; flex-wrap:wrap; gap:.15rem; align-items:center; background:var(--panel); border:1px solid var(--line); border-bottom:0; padding:.3rem .5rem; }
.toolbar button, .toolbar .btn { background:transparent; color:var(--fg); border:1px solid transparent; padding:.3rem .7rem; }
.toolbar button:hover:not(:disabled), .toolbar .btn:hover { background:var(--accent-soft); border-color:var(--line); }
.toolbar button.primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.toolbar button.primary:hover:not(:disabled) { background:var(--accent); filter:brightness(1.1); }
.toolbar .inline-form { display:flex; align-items:center; gap:.6rem; margin:0; }
.toolbar .sep { width:1px; align-self:stretch; background:var(--line); margin:0 .3rem; }
.dropdown { position:relative; }
.dd-panel { position:absolute; top:100%; left:0; min-width:200px; z-index:20; background:var(--panel); border:1px solid var(--line); box-shadow:0 6px 18px rgba(0,0,0,.18); padding:.25rem 0; }
.dd-panel a, .dd-panel button { display:block; width:100%; text-align:left; background:transparent; color:var(--fg); border:0; padding:.4rem .9rem; text-decoration:none; }
.dd-panel a:hover { background:var(--accent-soft); }

/* ---- filtres ---- */
.filters { background:var(--panel-alt); border:1px solid var(--line); border-bottom:0; padding:.5rem .6rem; display:grid; gap:.35rem; }
.frow { display:flex; gap:.4rem; align-items:center; }
.frow select { min-width:150px; }
.frow .fval input, .frow .fval select { min-width:260px; }
.fbtns { display:flex; gap:.4rem; align-items:center; padding-top:.2rem; }
.resultbar { background:var(--panel); border:1px solid var(--line); border-bottom:0; padding:.25rem .6rem; color:var(--muted); display:flex; justify-content:space-between; }

/* ---- tableau ---- */
.gridwrap { background:var(--panel); border:1px solid var(--line); overflow:auto; }
table.grid { width:100%; border-collapse:collapse; }
table.grid th { position:sticky; top:0; background:var(--panel-alt); text-align:left; font-weight:600; padding:.35rem .6rem; border-bottom:1px solid var(--line); border-right:1px solid var(--line-soft); white-space:nowrap; }
table.grid th a { color:var(--fg); text-decoration:none; }
table.grid th .arrow { color:var(--accent); }
table.grid td { padding:.3rem .6rem; border-bottom:1px solid var(--line-soft); border-right:1px solid var(--line-soft); vertical-align:top; }
table.grid tbody tr[data-url] { cursor:pointer; }
table.grid tbody tr:hover { background:var(--accent-soft); }
table.grid tbody tr.sel { background:var(--sel); }
table.grid .empty { text-align:center; padding:1.5rem; color:var(--muted); }
.pager { display:flex; gap:.6rem; align-items:center; justify-content:flex-end; padding:.4rem 0; color:var(--muted); }

/* ---- fiches (saisie / consultation) ---- */
.record { background:var(--panel); border:1px solid var(--line); display:flex; flex-direction:column; }
.rec-title { padding:.5rem .9rem; border-bottom:1px solid var(--line); display:flex; align-items:baseline; gap:.8rem; }
.rec-title h1 { margin:0; }
.rec-title .sub { color:var(--muted); }
/* le titre s'adapte (et se raccourcit si besoin) ; la barre d'icônes reste collée à droite, toujours au même endroit */
.rec-heading { display:flex; align-items:baseline; gap:.8rem; flex:1 1 auto; min-width:0; overflow:hidden; }
.rec-heading h1 { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.rec-heading .sub, .rec-heading .badge { white-space:nowrap; flex:none; }
.tabs { display:flex; gap:0; background:var(--panel-alt); border-bottom:1px solid var(--line); padding:.3rem .5rem 0; }
.tabs button { background:transparent; color:var(--fg); border:1px solid transparent; border-bottom:0; border-radius:3px 3px 0 0; padding:.4rem .9rem; margin-bottom:-1px; }
.tabs button[aria-selected=true] { background:var(--panel); border-color:var(--line); font-weight:600; }
.tabpanel { padding:.6rem .8rem; }
.rec-body { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:.8rem; align-items:start; }
@media (max-width:900px) { .rec-body { grid-template-columns:1fr; } }
.fgrid { display:grid; gap:.4rem; }
.f { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:.5rem; }
.f label { color:var(--muted); text-align:right; }
.f label.chk { color:var(--fg); text-align:left; }
.f input, .f select { width:100%; max-width:420px; }
.f input.short { max-width:140px; }
.sidepanel { border:1px solid var(--line); background:var(--panel-alt); padding:.6rem .8rem; display:grid; gap:.1rem; }
.sidepanel h3 { margin:.1rem 0 .4rem; font-size:.9rem; color:var(--muted); font-weight:600; }
.sidepanel form { margin:0; } .sidepanel button { width:100%; margin-top:.35rem; }
.sidepanel { min-width:0; overflow-wrap:anywhere; }                       /* rien ne dépasse du cadre : champs, boutons et liens s'adaptent à sa largeur */
.sidepanel input, .sidepanel select, .sidepanel textarea, .sidepanel button, .sidepanel .btn { box-sizing:border-box; max-width:100%; width:100%; }
.sidepanel input[type=checkbox], .sidepanel input[type=radio] { width:auto; }
.sidepanel input[type=file] { font-size:.8rem; }
.sidepanel code { white-space:normal; }
.rec-bar { display:flex; align-items:center; gap:.5rem; padding:.45rem .8rem; border-top:1px solid var(--line); background:var(--panel-alt); }
.rec-bar .nav { display:flex; align-items:center; gap:.4rem; margin-right:auto; color:var(--muted); }
.rec-bar .nav a, .rec-bar .nav span.dis { padding:.15rem .6rem; border:1px solid var(--line); background:var(--panel); border-radius:3px; text-decoration:none; color:var(--fg); }
.rec-bar .nav span.dis { opacity:.4; }
.notice { padding:.5rem .8rem; border:1px solid var(--line); border-left:4px solid var(--warn); background:var(--panel); margin-bottom:.8rem; }
fieldset { border:1px solid var(--line); border-radius:3px; margin:0 0 .8rem; padding:.5rem .8rem; }
legend { color:var(--muted); padding:0 .4rem; font-weight:600; }
.permgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:0 1.5rem; }

/* ---- accueil / pages de synthèse ---- */
.home { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1rem; align-items:start; }
.card { background:var(--panel); border:1px solid var(--line); }
.card > h2 { margin:0; padding:.5rem .8rem; border-bottom:1px solid var(--line); font-size:.95rem; }
.card .body { padding:.5rem .8rem; }
.card ul { list-style:none; margin:0; padding:0; }
.card li { padding:.35rem 0; border-bottom:1px solid var(--line-soft); }
.card li:last-child { border-bottom:0; }
.card li small { color:var(--muted); display:block; }
.card.wide { max-width:560px; margin:2rem auto; }
.card.wide .body { display:grid; gap:.8rem; padding:1rem; }
.secret { display:block; padding:.8rem; font-size:1.1rem; background:var(--field); border:1px dashed var(--line); user-select:all; }
.muted { color:var(--muted); }

/* ---- connexion ---- */
body.plain { align-items:center; justify-content:center; }
.login { width:360px; background:var(--panel); border:1px solid var(--line); padding:1.5rem; display:grid; gap:.9rem; }
.login h1 { margin:0; }
.login .logo { background:var(--brand); color:var(--on-brand); margin:-1.5rem -1.5rem .3rem; padding:.8rem 1.5rem; font-weight:700; }
.login label { display:grid; gap:.25rem; color:var(--muted); }
.login input { width:100%; padding:.5rem; }
.login button { padding:.55rem; }

/* ---- fiche société : cadres de champs ---- */
/* Une fiche se répartit en plusieurs cadres côte à côte (3 à 4 colonnes sur un écran de 24") : tout est visible sans défiler. */
.boxes { column-width:400px; column-gap:.6rem; min-width:0; }   /* cadres rangés en colonnes, sans trous */
.boxes > fieldset.box, .boxes > div { break-inside:avoid; margin:0 0 .6rem; }
.boxes > div { display:grid; gap:.6rem; align-content:start; min-width:0; }
.rec-body > .boxes { min-width:0; }
fieldset.box { margin:0; padding:.45rem .8rem .6rem; display:grid; gap:.3rem; background:var(--panel); min-width:0; }
.inline-group { display:contents; }   /* les champs d'un groupe sont des lignes ordinaires : libellés et champs alignés */
.f .inline-group { display:flex; align-items:center; gap:.5rem; }   /* sauf deux champs sur une même ligne (ex. schéma : identifiant) */
.mini { display:grid; gap:.15rem; }
.mini label { color:var(--muted); font-size:.85rem; }
code.gen { font-size:.95rem; font-weight:600; padding:.1rem .4rem; background:var(--accent-soft); border-radius:3px; }

/* ---- fenêtre de confirmation ---- */
dialog { border:1px solid var(--line); background:var(--panel); color:var(--fg); max-width:560px; padding:1rem 1.2rem; border-radius:6px; }
dialog::backdrop { background:rgba(0,0,0,.45); }
dialog h2 { margin-top:0; }
.dlg-actions { display:flex; gap:.6rem; justify-content:flex-end; margin-top:1rem; }

.warn { color:var(--warn); }

/* ---- barre d'icônes de la fiche : reste en haut quand on fait défiler ---- */
.rec-title { position:sticky; top:0; z-index:6; background:var(--panel); }
.rec-tools { display:flex; align-items:center; gap:.3rem; margin-left:auto; flex:none; }
.iconbtn { display:inline-flex; align-items:center; justify-content:center; width:2rem; height:2rem; padding:0; border:1px solid var(--line);
           border-radius:4px; background:var(--panel); color:var(--accent); cursor:pointer; text-decoration:none; }
.iconbtn:hover { background:var(--accent-soft); }
.iconbtn.off { opacity:.35; pointer-events:none; }
.iconbtn[data-save].dirty { background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.rec-tools .pos { color:var(--muted); font-size:.85rem; margin-left:.2rem; min-width:4.6rem; text-align:right; white-space:nowrap; }

.rec-tools .iconbtn.danger { margin-left:1.4rem; }   /* isolée des autres boutons : pas de clic par erreur */
.iconbtn.danger { color:var(--error); }
.iconbtn.danger:hover { background:var(--error); color:#fff; border-color:var(--error); }
button.danger { background:var(--error); border-color:var(--error); color:#fff; }
.logo-preview { background:repeating-conic-gradient(#e9ecf1 0 25%, #fff 0 50%) 50% / 16px 16px; border:1px solid var(--line); display:flex; justify-content:center; padding:.5rem; min-height:90px; }
.logo-preview img { max-width:100%; max-height:160px; object-fit:contain; }
.logo-preview.faded img { opacity:.55; }
.logo-actions { display:flex; gap:.5rem; }
.record.dropping { outline:3px dashed var(--accent); outline-offset:-3px; background:var(--accent-soft); }
#drop-dialog { min-width:min(560px, 92vw); }
#drop-dialog h2 { margin-top:0; }
.signatory { border:1px solid var(--line-soft); border-radius:3px; padding:.4rem .6rem .5rem; display:grid; gap:.3rem; background:var(--panel-alt); }
.signatory h3 { margin:0 0 .1rem; font-size:.9rem; color:var(--muted); font-weight:600; }
.badge { display:inline-block; padding:.05rem .55rem; border-radius:10px; font-size:.8rem; font-weight:600; border:1px solid var(--line); background:var(--panel-alt); color:var(--fg); margin-left:.4rem; }
.badge.st-signing { background:#fff3d6; border-color:#e0b45a; color:#6b4a00; }
.badge.st-signed { background:#dff3e3; border-color:#7bd88f; color:#1e5c2a; }
.signatory.is-signed { border-color:var(--ok); }
.signatory .ok-mark { color:var(--ok); font-weight:700; margin-left:.4rem; }
.signatory .proof { border-left:4px solid var(--ok); background:var(--panel); padding:.35rem .6rem; }
.signatory .sign-now { display:grid; gap:.3rem; }
.warn { color:var(--warn); }
/* ---- procédure : présentation à la forme du document (en-tête de contrôle, approbation, sections numérotées) ---- */
.docpage { max-width:920px; width:100%; background:var(--panel); border:1px solid var(--line); padding:1.2rem 1.6rem 2rem; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.doc-head, .doc-approval, .doc-glossary { width:100%; border-collapse:collapse; margin:0 0 .6rem; }
.doc-head th, .doc-head td, .doc-approval th, .doc-approval td, .doc-glossary th, .doc-glossary td { border:1px solid var(--fg); padding:.3rem .5rem; text-align:left; vertical-align:top; }
.doc-head th, .doc-approval th, .doc-glossary th { background:var(--panel-alt); font-weight:600; }
.doc-head .doc-type { text-align:center; letter-spacing:.04em; }
.doc-head .doc-title { font-size:1.15rem; font-weight:700; }
.doc-head .doc-code { text-align:center; font-weight:700; font-size:1.05rem; white-space:nowrap; }
.doc-head input, .doc-approval input, .doc-approval select { width:100%; max-width:none; }
.doc-head .doc-title input { font-size:1.1rem; font-weight:700; }
.doc-approval tr.is-signed td, .doc-approval tr.is-signed th { background:rgba(46,125,50,.08); }
.doc-approval .sign-now, .sign-box .sign-now { display:flex; gap:.4rem; }
.doc-h { font-size:1.05rem; margin:1.1rem 0 .35rem; }
.doc-text { width:100%; max-width:none; min-height:6rem; resize:vertical; field-sizing:content; line-height:1.5; }
.doc-text.doc-big { min-height:18rem; }
.doc-read { white-space:pre-wrap; line-height:1.55; }
.doc-rich { line-height:1.55; } .doc-rich .doc-p { margin:.35rem 0 .8rem; } .doc-rich .mtable { margin:.6rem 0; } .doc-rich .mtable th, .doc-rich .mtable td { vertical-align:top; padding:.3rem .5rem; }
.doc-preview { margin:.4rem 0 .8rem; border:1px solid var(--line, #d8dce6); border-radius:6px; padding:.4rem .8rem; background:var(--panel, #fafbfe); } .doc-preview summary { cursor:pointer; color:var(--muted); font-size:.9rem; }
.fig-upload { display:grid; gap:.35rem; margin:.5rem 0; } .fig-upload input[type=file], .fig-upload input:not([type]) { max-width:100%; }
.doc-annexes { margin:0 0 .5rem; padding-left:1.2rem; }
.doc-ident { margin-bottom:1rem; }
.doc-head .doc-title-input { width:100%; resize:none; font-size:1.1rem; font-weight:700; field-sizing:content; min-height:2.6rem; line-height:1.3; }

/* formation aux procedures : etats, matrice, signature de lecture */
.tr-valid { background:#8fd35c; color:#17400a; }
.tr-scheduled { background:#4ba3c7; color:#06293a; }
.tr-todo { background:#ffcf66; color:#4a3300; }
.tr-expired { background:#ff3b30; color:#fff; }
.tr-none { background:repeating-linear-gradient(45deg,#fff,#fff 3px,#222 3px,#222 4px); }
span[class^="tr-"], .legend span { display:inline-block; padding:.05rem .6rem; border:1px solid var(--line); border-radius:4px; font-size:.85rem; margin-right:.4rem; }
.gridwrap table.matrix { width:auto; }
.matrix td { text-align:center; width:6.5rem; min-width:6.5rem; max-width:6.5rem; }
.matrix th.vert { width:6.5rem; min-width:6.5rem; max-width:6.5rem; white-space:normal; word-break:break-word; vertical-align:bottom; }
.matrix th.who { position:sticky; left:0; z-index:2; }
.matrix td:nth-child(2), .matrix thead th:nth-child(2) { width:auto; min-width:0; max-width:none; white-space:nowrap; text-align:left; }
.matrix td a { color:inherit; text-decoration:none; font-weight:700; display:block; }
.matrix th.who { text-align:left; white-space:nowrap; }
.sign-box { margin-top:1.5rem; border-top:2px solid var(--fg); padding-top:.5rem; }
.notice.ok { background:#dff3e3; border-color:#7bd88f; }
.checks { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; }

/* droits par ecran : arbre depliant */
.rights { border:1px solid var(--line); background:var(--panel); max-width:1100px; }
.rights summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:.5rem; padding:.35rem .6rem; }
.rights summary::-webkit-details-marker { display:none; }
.rights .pm::before { content:"+"; display:inline-block; width:1.1rem; height:1.1rem; line-height:1rem; text-align:center; border:1px solid var(--line); background:var(--panel-alt); font-weight:700; }
.rights details[open] > summary > .pm::before { content:"\2212"; }
.rz > summary { background:var(--panel-alt); border-bottom:1px solid var(--line); }
.rs { margin-left:1.4rem; }
.rs > summary { border-bottom:1px dotted var(--line); }
.rrow { display:grid; grid-template-columns:minmax(12rem,1.2fr) auto 1fr; gap:.4rem 1rem; align-items:center; padding:.25rem .6rem .25rem 2.2rem; border-bottom:1px dotted var(--line); }
.rlevels label, .rextra label { margin-right:.8rem; white-space:nowrap; }
.bulk { margin-left:auto; font-weight:400; font-size:.85rem; }
.bulk button { padding:.05rem .45rem; margin-left:.25rem; font-size:.8rem; }
.rscope { display:inline-block; }
.rscope-list { display:grid; gap:.15rem; padding:.3rem 0 .3rem .6rem; }
.doclink { font-weight:600; }
.legend span { display:inline-block; padding:.05rem .6rem; border:1px solid var(--line); border-radius:4px; font-size:.85rem; margin-right:.4rem; }

/* manuel qualite */
.manual-bar h1 { margin-bottom:.2rem; }
.manual-toc { list-style:none; padding:0; margin:0 0 1rem; columns:2; }
.manual-toc li { padding:.1rem 0; break-inside:avoid; }
.manual-toc li.lv2 { padding-left:1.2rem; font-size:.95rem; }
.manual-toc li.lv3 { padding-left:2.4rem; font-size:.9rem; }
.msec { margin-top:1.4rem; }
.msec.lv1 > .mh { color:#1a1462; border-bottom:2px solid #1a1462; padding-bottom:.2rem; }
.msec.lv2 > .mh, .msec.lv3 > .mh { color:#215e99; }
.mh { display:flex; align-items:center; gap:1rem; }
.mtools { margin-left:auto; display:inline-flex; gap:.4rem; align-items:center; font-size:.8rem; font-weight:400; }
.mtools form { margin:0; } .mtools button { padding:0 .4rem; font-size:.75rem; }
.mli { margin:.1rem 0 .1rem 1.2rem; padding-left:.4rem; } .mli li { margin:0; }
.msub { color:#215e99; margin:.8rem 0 .2rem; }
.mfig { margin:.8rem 0; text-align:center; } .mfig img { max-width:100%; height:auto; } .mfig figcaption { color:var(--muted); font-size:.85rem; }
.manual-add { margin-top:2rem; }
.manual-pics { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.8rem; margin-bottom:1rem; }
.mpic { border:1px solid var(--line); padding:.4rem; font-size:.85rem; } .mpic img { max-width:100%; height:auto; display:block; margin-bottom:.3rem; }
.manual-version { width:6rem; text-align:center; }
.mtable { margin-bottom:1.4rem; }
.mtable { table-layout:fixed; } .mtable th:first-child, .mtable td:first-child { width:30%; }

.draftbar { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; margin:.6rem 0; }
.draftbar form.inline { display:inline; margin:0; }
.manual-version + .doc-code .vedit, .doc-code .vedit { font-size:.8em; text-decoration:none; opacity:.6; }
