/* =====================================================================
   Module Qualité — design loop-ui (préfixe lfq-)
   Tokens : mylms/loop-ui.css (accent = couleur de l'organisme).
   ===================================================================== */
.lfq, .lfq-dr, .lfq-mod { font-family: var(--lui-font); font-size: 14.5px; line-height: 1.5; color: var(--lui-ink); }
.gtt { font-family: var(--lui-font); color: #fff; }
.lfq *, .lfq-dr *, .lfq-mod * { box-sizing: border-box; }
.lfq { background: var(--lui-bg); min-height: 80vh; padding: 0 0 120px; }
.lfq-in { width: 94%; max-width: 1380px; margin: 0 auto; }
.lfq a { color: inherit; }
.lfq a:hover { text-decoration: none; }
.lfq button, .lfq-dr button, .lfq-mod button, .lfq input, .lfq select, .lfq textarea,
.lfq-dr input, .lfq-dr select, .lfq-dr textarea, .lfq-mod input, .lfq-mod select, .lfq-mod textarea { font-family: inherit; }
.lfq [hidden], .lfq-dr [hidden], .lfq-mod [hidden] { display: none !important; }

/* ---- bandeau ---- */
.lfq-hero { border-radius: 24px; margin: 18px 0 16px; box-shadow: var(--lui-sh1); }
.lfq-hero-row { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.lfq-hero-main { flex: 1 1 420px; min-width: 0; }
.lfq-hero .lui-h1 { font-size: 28px; }
.lfq-hero p { margin: 6px 0 0; color: rgba(255,255,255,.92); font-weight: 500; max-width: 720px; }
.lfq-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.lfq-chips .lui-chip b { font-weight: 800; }
.lfq-acts { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding-top: 4px; }

/* ---- navigation ---- */
.lfq-nav { background: #fff; border: 1px solid var(--lui-line); border-radius: 18px; padding: 0 18px; position: sticky; top: 70px; z-index: 30;
    box-shadow: var(--lui-sh1); margin-bottom: 18px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
@media (max-width: 991px) { .lfq-nav { top: 60px; } }
.lfq-tabs { display: flex; gap: 24px; overflow-x: auto; flex: 1 1 auto; min-width: 0; }
.lfq-tab { padding: 14px 0 15px; font: 600 14px/1.3 var(--lui-font); color: var(--lui-ink3); border: 0; border-bottom: 2.5px solid transparent; background: none;
    cursor: pointer; display: flex; gap: 8px; align-items: center; white-space: nowrap; }
.lfq-tab:hover { color: var(--lui-ink); }
.lfq-tab.on { color: var(--lui-ink); border-bottom-color: var(--lui-acc); }
.lfq-tab .lui-ic { width: 16px; height: 16px; }
.lfq-tools { display: flex; gap: 8px; align-items: center; margin-left: auto; padding: 8px 0; flex-wrap: wrap; }
.lfq-search { position: relative; width: 230px; }
.lfq-search .lui-ic { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--lui-ink3); width: 16px; height: 16px; }
.lfq-search input { width: 100%; height: 38px; border: 1px solid var(--lui-line2); border-radius: 999px; padding: 0 14px 0 36px; font: 500 13.5px/1 var(--lui-font); background: #fff; color: var(--lui-ink); }
.lfq-sel { height: 38px; border: 1px solid var(--lui-line2); border-radius: 999px; padding: 0 30px 0 14px; font: 600 13px/1 var(--lui-font); background: #fff; color: var(--lui-ink2); }

/* ---- chiffres ---- */
.lfq-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 16px; }
.lfq-kpi { background: #fff; border: 1px solid var(--lui-line); border-radius: 20px; padding: 16px 18px; display: flex; gap: 14px; align-items: center; box-shadow: var(--lui-sh1); }
.lfq-kpi .v { font: 800 24px/1.1 var(--lui-font); letter-spacing: -.02em; }
.lfq-kpi .l { font: 600 12.5px/1.35 var(--lui-font); color: var(--lui-ink3); }
.lfq-kpi.dark { background: #1A1815; border-color: #1A1815; color: #fff; position: relative; overflow: hidden; }
.lfq-kpi.dark .l { color: rgba(255,255,255,.7); }
.lfq-kpi.dark::after { content: ""; position: absolute; right: -26px; top: -26px; width: 100px; height: 100px; border-radius: 50%; border: 14px solid color-mix(in srgb, var(--lui-acc) 55%, transparent); }

/* ---- liste (tableau) ---- */
.lfq-card { background: #fff; border: 1px solid var(--lui-line); border-radius: 22px; box-shadow: var(--lui-sh1); overflow: hidden; }
.lfq-card-h { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--lui-line); flex-wrap: wrap; }
.lfq-card-h h2 { margin: 0; font: 800 16px/1.3 var(--lui-font); letter-spacing: -.015em; flex: 1; display: flex; align-items: center; gap: 8px; }
.lfq-t { width: 100%; border-collapse: collapse; }
.lfq-t th { text-align: left; font: 700 12px/1.3 var(--lui-font); color: var(--lui-ink3); padding: 11px 14px; background: #FAFAF8; border-bottom: 1px solid var(--lui-line); white-space: nowrap; }
.lfq-t td { padding: 12px 14px; border-bottom: 1px solid var(--lui-line); vertical-align: middle; font-size: 14px; }
.lfq-t tr:last-child td { border-bottom: 0; }
.lfq-t tbody tr.clk { cursor: pointer; }
.lfq-t tbody tr.clk:hover td { background: var(--lui-acc-50); }
.lfq-t .ref { font: 700 12.5px/1.3 var(--lui-font); color: var(--lui-ink3); white-space: nowrap; }
.lfq-t .ttl { font-weight: 700; }
.lfq-t .sub { font: 500 12.5px/1.4 var(--lui-font); color: var(--lui-ink3); }
.lfq-scroll { overflow-x: auto; }
.lfq-kind { display: inline-flex; align-items: center; gap: 8px; font: 700 13px/1.3 var(--lui-font); white-space: nowrap; }
.lfq-kind .lui-tile { width: 30px; height: 30px; border-radius: 10px; }
.lfq-kind .lui-tile .lui-ic { width: 15px; height: 15px; }
.lfq-lock { display: inline-flex; gap: 6px; align-items: center; color: var(--lui-ink3); font-weight: 600; }
.lfq-empty { padding: 40px 20px; text-align: center; color: var(--lui-ink3); }
.lfq-empty b { display: block; color: var(--lui-ink); font-size: 15px; margin-bottom: 4px; }
.lfq-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 16px; background: var(--lui-warn-bg); color: #5C3A00; margin-bottom: 16px; font-weight: 500; }
.lfq-alert .lui-ic { color: var(--lui-warn); margin-top: 2px; }
.lfq-alert.info { background: var(--lui-info-bg); color: #18407F; }
.lfq-alert.info .lui-ic { color: var(--lui-info); }
.lfq-alert .lui-b { margin-left: auto; }

/* ---- tiroir (fiche) ---- */
.lfq-ov { position: fixed; inset: 0; background: rgba(20,20,20,.38); z-index: 1084; display: none; }
.lfq-ov.on { display: block; }
/* Tiroir ou fenêtre ouverts : les bulles flottantes de Loop (assistant, discussions) ne recouvrent pas les boutons. */
html.lfq-lock #laiLauncher, html.lfq-lock #laiTeaser, html.lfq-lock #lfdk { display: none !important; }
.lfq-dr { display: none; }
.lfq-dr.on { display: flex; }
.lfq-dr .lui-dr-h .meta { font: 600 12.5px/1.4 var(--lui-font); color: rgba(255,255,255,.85); }
.lfq-dr .lui-dr-b { padding-top: 14px; }
.lfq-f { margin-bottom: 14px; }
.lfq-f > label { display: block; font: 700 12.5px/1.3 var(--lui-font); color: var(--lui-ink2); margin-bottom: 6px; }
.lfq-f textarea, .lfq-f input[type=text], .lfq-f input[type=date], .lfq-f input[type=email], .lfq-f input[type=tel], .lfq-f input[type=number], .lfq-f select {
    width: 100%; border: 1px solid var(--lui-line2); border-radius: 12px; padding: 10px 13px; font: 500 14px/1.45 var(--lui-font); background: #fff; color: var(--lui-ink); }
.lfq-f input, .lfq-f select { height: 44px; }
.lfq-f textarea { min-height: 92px; resize: vertical; }
.lfq-f textarea:focus, .lfq-f input:focus, .lfq-f select:focus { outline: 0; border-color: var(--lui-ink); box-shadow: 0 0 0 1px var(--lui-ink); }
.lfq-f small { display: block; color: var(--lui-ink3); font-size: 12.5px; margin-top: 4px; }
.lfq-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .lfq-row2 { grid-template-columns: 1fr; } }
.lfq-ro { background: var(--lui-soft); border-radius: 14px; padding: 12px 14px; white-space: pre-wrap; font-size: 14px; }
.lfq-kv { display: grid; grid-template-columns: 150px 1fr; gap: 6px 12px; font-size: 13.5px; margin: 4px 0 8px; }
.lfq-kv dt { color: var(--lui-ink3); font-weight: 600; }
.lfq-kv dd { margin: 0; font-weight: 600; }
.lfq-jr { list-style: none; margin: 0; padding: 0; }
.lfq-jr li { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--lui-line); font-size: 13.5px; }
.lfq-jr li:last-child { border: 0; }
.lfq-jr .t { color: var(--lui-ink3); font: 600 12px/1.4 var(--lui-font); width: 118px; flex: none; }
.lfq-jr .note { background: var(--lui-acc-50); border-radius: 10px; padding: 6px 10px; }
.lfq-steps { display: flex; gap: 6px; flex-wrap: wrap; }
.lfq-chk { display: flex; gap: 9px; align-items: flex-start; padding: 8px 0; cursor: pointer; font-weight: 500; }
.lfq-chk input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--lui-acc); flex: none; }
.lfq-chks { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 0 14px; }

/* ---- fenêtre ---- */
.lfq-mod { display: none; }
.lfq-mod.on { display: flex; }

/* ---- matrice des risques ---- */
.lfq-mx { display: grid; grid-template-columns: 34px repeat(4, minmax(0, 1fr)); gap: 6px; }
.lfq-mx .ax { font: 700 11.5px/1.2 var(--lui-font); color: var(--lui-ink3); display: flex; align-items: center; justify-content: center; text-align: center; }
.lfq-mx .cell { min-height: 74px; border-radius: 14px; padding: 6px; display: flex; flex-wrap: wrap; gap: 4px; align-content: flex-start; }
.lfq-mx .cell.ok { background: #E4F4EC; } .lfq-mx .cell.inf { background: #E8F0FD; } .lfq-mx .cell.wa { background: #FFF3DD; } .lfq-mx .cell.dng { background: #FDECEC; }
.lfq-mx .dot { width: 26px; height: 26px; border-radius: 50%; background: #1F1F1F; color: #fff; font: 800 11px/26px var(--lui-font); text-align: center; cursor: pointer; border: 0; }
.lfq-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .lfq-grid2 { grid-template-columns: 1fr; } }
.lfq-legend { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.lfq-pg { display: flex; gap: 4px; }
.lfq-pg button { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--lui-line2); background: #fff; font: 700 13px/1 var(--lui-font); cursor: pointer; }
.lfq-pg button.on { background: var(--lui-acc); border-color: var(--lui-acc); color: #fff; }

/* ---- certification ---- */
.lfq-taux { display: flex; gap: 16px; align-items: center; }
.lfq-ring { width: 76px; height: 76px; flex: none; position: relative; }
.lfq-ring svg { transform: rotate(-90deg); }
.lfq-ring b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 800 18px/1 var(--lui-font); }
.lfq-mini { font: 500 12.5px/1.45 var(--lui-font); color: var(--lui-ink3); }
.lfq-check { display: flex; gap: 8px; align-items: center; padding: 7px 0; font-weight: 600; font-size: 13.5px; }
.lfq-check .lui-ic { width: 16px; height: 16px; }
.lfq-check.ok .lui-ic { color: var(--lui-ok); }
.lfq-check.ko { color: var(--lui-ink3); }
.lfq-check.ko .lui-ic { color: #B91C1C; }
.lfq-selbar { position: sticky; bottom: 16px; margin-top: 12px; background: #1A1815; color: #fff; border-radius: 18px; padding: 10px 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; box-shadow: var(--lui-sh2); }
.lfq-selbar .lui-b { height: 36px; }
.lfq-selbar input, .lfq-selbar select { height: 36px; border-radius: 999px; border: 0; padding: 0 12px; font: 600 13px/1 var(--lui-font); }
.lfq-inl { height: 34px; border: 1px solid var(--lui-line2); border-radius: 10px; padding: 0 8px; font: 500 13px/1 var(--lui-font); background: #fff; max-width: 180px; }
.lfq-blocs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.lfq-blocs label { display: inline-flex; gap: 5px; align-items: center; font: 600 11.5px/1.2 var(--lui-font); background: var(--lui-soft); border-radius: 999px; padding: 4px 9px; cursor: pointer; }
.lfq-blocs input { accent-color: var(--lui-acc); }

/* ---- page publique ---- */
.lfq-pub { min-height: 100vh; background: var(--lui-bg); padding: 0 0 60px; }
.lfq-pub-h { color: #fff; padding: 26px 0 70px; background: linear-gradient(115deg, var(--lui-acc-700) 0%, var(--lui-acc) 52%, color-mix(in srgb, var(--lui-acc) 60%, #FFD27A) 100%); position: relative; overflow: hidden; }
.lfq-pub-h .lui-deco { position: absolute; right: 0; top: 0; height: 100%; width: 62%; pointer-events: none; }
.lfq-pub-w { width: min(1040px, 92%); margin: 0 auto; position: relative; }
.lfq-pub-brand { display: flex; gap: 12px; align-items: center; font-weight: 700; }
.lfq-pub-brand img { max-height: 40px; background: #fff; border-radius: 10px; padding: 4px 8px; }
.lfq-pub-h h1 { font: 800 30px/1.15 var(--lui-font); letter-spacing: -.03em; margin: 18px 0 6px; color: #fff; }
.lfq-pub-h p { margin: 0; max-width: 720px; color: rgba(255,255,255,.94); font-weight: 500; }
.lfq-pub-body { margin-top: -46px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
@media (max-width: 900px) { .lfq-pub-body { grid-template-columns: 1fr; } .lfq-pub-side { order: 2; } }
.lfq-pub-card { background: #fff; border-radius: 24px; box-shadow: var(--lui-sh2); padding: 24px; }
.lfq-choice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
@media (max-width: 640px) { .lfq-choice { grid-template-columns: 1fr; } }
.lfq-choice button { text-align: left; border: 1.5px solid var(--lui-line2); background: #fff; border-radius: 18px; padding: 14px; cursor: pointer; display: flex; flex-direction: column; gap: 8px; font: 700 14px/1.3 var(--lui-font); color: var(--lui-ink); }
.lfq-choice button small { font: 500 12.5px/1.4 var(--lui-font); color: var(--lui-ink3); }
.lfq-choice button.on { border-color: var(--c); box-shadow: 0 0 0 2px var(--c); background: color-mix(in srgb, var(--c) 5%, #fff); }
.lfq-pub-side .lfq-pub-card { padding: 20px; box-shadow: var(--lui-sh1); }
.lfq-urg { list-style: none; padding: 0; margin: 10px 0 0; }
.lfq-urg li { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--lui-line); font-size: 13.5px; }
.lfq-urg li:last-child { border: 0; }
.lfq-urg b { font: 800 15px/1.2 var(--lui-font); min-width: 52px; }
.lfq-done { text-align: center; padding: 26px 10px; }
.lfq-done .lui-tile { margin: 0 auto 14px; width: 60px; height: 60px; border-radius: 20px; }
.lfq-done .ref { display: inline-block; font: 800 22px/1.2 var(--lui-font); background: var(--lui-acc-50); color: var(--lui-acc-700); padding: 8px 16px; border-radius: 14px; margin: 10px 0; }
.lfq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Rapport PDF : rappel des filtres repris */
.lfq-rp-flt { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 8px; }

/* Réglages : carte « Contenu de la page » */
.lfq-perso { display: flex; gap: 12px; align-items: center; margin-top: 12px; padding: 14px 16px; border-radius: 16px; background: var(--lui-acc-50); border: 1px solid var(--lui-acc-100); }
@media (max-width: 640px) { .lfq-perso { flex-wrap: wrap; } }

/* Éditeur de la page de déclaration (formulaire à gauche, aperçu à droite) */
.lfq-pe { display: grid; grid-template-columns: minmax(0, 470px) minmax(0, 1fr); gap: 20px; align-items: start; }
.lfq-pe-f { max-height: calc(100vh - 250px); overflow: auto; padding-right: 6px; }
.lfq-pe-v { position: sticky; top: 0; }
.lfq-pe-vw { height: calc(100vh - 280px); min-height: 380px; border: 1px solid var(--lui-line2); border-radius: 16px; overflow: hidden; background: var(--lui-bg); }
.lfq-pe-vw iframe { width: 1180px; height: 100%; border: 0; transform-origin: 0 0; display: block; background: var(--lui-bg); }
.lfq-pe-mod .lui-m-f { flex-wrap: wrap; }
.lfq-pe-b { border: 1px solid var(--lui-line2); border-radius: 16px; padding: 10px 12px; margin-bottom: 10px; background: #fff; }
.lfq-pe-b.off { background: var(--lui-soft); }
.lfq-pe-b.off .lfq-pe-bc { display: none; }
.lfq-pe-bh { display: flex; gap: 10px; align-items: center; }
.lfq-pe-bh input[type=text] { width: 100%; height: 36px; border: 1px solid var(--lui-line2); border-radius: 10px; padding: 0 10px; font: 600 13.5px/1 var(--lui-font); margin-top: 3px; }
.lfq-pe-bh .lui-tg input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.lfq-pe-bc { margin-top: 10px; }
.lfq-pe-u { display: grid; grid-template-columns: 22px 78px minmax(0, 1fr) 34px; gap: 6px; align-items: center; margin-bottom: 6px; }
.lfq-pe-u input[type=text] { height: 36px; border: 1px solid var(--lui-line2); border-radius: 10px; padding: 0 8px; font: 500 13px/1 var(--lui-font); width: 100%; min-width: 0; }
.lfq-pe-u input[data-k=num] { font-weight: 800; }
@media (max-width: 900px) { .lfq-pe { grid-template-columns: 1fr; } .lfq-pe-f { max-height: none; } .lfq-pe-vw { height: 420px; } }
