/* OmniLayer TrustForge Verify — vitrine publique (mode clair, identité institutionnelle). */
@font-face{font-family:'Inter';src:url('/ds/fonts/InterVariable-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
:root{
  --navy:#071A3A;--trust:#0B2F68;--blue:#0878E8;--cyan:#22C5F5;--bg:#F1F5F9;--card:#fff;--border:#DCE7F5;--text:#071A3A;--muted:#64748B;
  --ok:#16a34a;--ok-bg:#E8F7EE;--warn:#d97706;--warn-bg:#FFF4E0;--fail:#dc2626;--fail-bg:#FDECEC;--unk:#64748B;--unk-bg:#EEF2F7;--run:#0878E8;--run-bg:#E6F1FD;
  --r:12px;--shadow:0 1px 2px rgba(7,26,58,.06),0 6px 18px rgba(7,26,58,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
button{font:inherit;cursor:pointer}
.ds-i{display:inline-block;vertical-align:middle;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px;border-radius:6px}
.wrap{max-width:1400px;margin:0 auto;padding:0 20px}

/* ── En-tête ── */
.hdr{background:linear-gradient(90deg,#071A3A,#0B2F68);color:#fff;position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(255,255,255,.08)}
.hdr .wrap{display:flex;align-items:center;gap:18px;min-height:66px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;font-size:17px;line-height:1.1}
.brand img{width:40px;height:40px;object-fit:contain}
.brand small{display:block;font-weight:600;color:var(--cyan);font-size:17px}
.hdr .sep{width:1px;align-self:stretch;background:rgba(255,255,255,.25);margin:6px 2px}
.hdr .ttl{font-weight:700;font-size:18px;line-height:1.2}
.hdr .ttl small{display:block;font-weight:400;font-size:13px;color:#cfe3ff;margin-top:2px}
.nav{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nav a{color:#e6efff;text-decoration:none;padding:10px 12px;border-radius:8px;font-size:14px;display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid transparent}
.nav a:hover{background:rgba(255,255,255,.1)}
.nav a.on{border-bottom-color:var(--cyan);color:#fff}
.lang{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:8px 10px;font-size:14px}
.lang option{color:#071A3A}

/* ── Héros ── */
.hero{background:radial-gradient(1200px 400px at 70% 120%,rgba(34,197,245,.25),transparent),linear-gradient(120deg,#071A3A,#0B2F68 60%,#0A4A9A);color:#fff}
.hero .wrap{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:24px;align-items:center;padding-top:34px;padding-bottom:62px}
.hero h1{font-size:clamp(26px,3.2vw,38px);line-height:1.12;margin:0 0 12px;font-weight:800;letter-spacing:-.02em}
.hero p{margin:0;color:#d6e6ff;font-size:16px;max-width:560px}
.hero svg.art{width:100%;max-width:320px;height:auto;justify-self:center}
.hero ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14.5px;color:#e8f1ff}
.hero li{display:flex;gap:10px;align-items:flex-start}
.hero li .ds-i{color:#4ade80;margin-top:2px}

/* ── Cartes d'explication ── */
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-34px;position:relative}
.xcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;display:flex;gap:14px;align-items:flex-start;transition:transform .18s,box-shadow .18s;cursor:default}
.xcard:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(7,26,58,.08),0 12px 26px rgba(7,26,58,.1)}
.xcard .ic{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;flex:none;background:#E6F1FD;color:var(--blue)}
.xcard:nth-child(2) .ic{background:#EFE9FD;color:#6d45d8}.xcard:nth-child(3) .ic{background:#E6F1FD;color:var(--blue)}.xcard:nth-child(4) .ic{background:#FFF1DD;color:#e08a14}
.xcard h3{margin:0 0 3px;font-size:16px}.xcard p{margin:0;color:#475569;font-size:13.5px}
.xcard a{font-size:13px;font-weight:600;text-decoration:none;display:inline-block;margin-top:6px}

/* ── Panneaux ── */
.main3>*,.grid2>*,.grid3>*,.cards4>*,.trust3>*,.panel,.pb,.ph>div,.banner>*,.orgcard>*,.cacard>*,.file>div,.rp,.rp-b,.sec{min-width:0}
.panel{max-width:100%}
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}
.main3{display:grid;grid-template-columns:1.25fr 1.05fr .8fr;gap:16px;margin-top:16px}
.panel .ph{display:flex;gap:12px;align-items:center;padding:18px 20px 6px}
.panel .ph .ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#E6F1FD;color:var(--blue);flex:none}
.panel .ph h2{margin:0;font-size:20px;line-height:1.2}.panel .ph p{margin:2px 0 0;color:var(--muted);font-size:13.5px}
.panel .pb{padding:12px 20px 20px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:11px 14px;color:#334155;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--trust);border-bottom-color:var(--blue)}
.tabs button:hover{background:#F6F9FD}

/* ── Dépôt ── */
.drop{margin-top:14px;border:2px dashed #7fb4f0;border-radius:var(--r);background:#F7FBFF;text-align:center;padding:26px 16px;transition:background .15s,border-color .15s}
.drop.over{background:#E6F1FD;border-color:var(--blue)}
.drop .pdf{width:50px;height:58px;margin:0 auto 8px}
.drop strong{display:block;font-size:15px}.drop .or{color:var(--muted);font-size:13px;margin:4px 0}
.btn{border:0;border-radius:9px;padding:11px 18px;font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.btn.pri{background:var(--blue);color:#fff}.btn.pri:hover{background:#0668c9}
.btn.sec{background:#fff;color:var(--blue);border:1px solid #9cc7f4}.btn.sec:hover{background:#F3F8FE}
.btn.ghost{background:transparent;color:#334155;border:1px solid var(--border)}.btn.ghost:hover{background:#F6F9FD}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.drop .meta{margin-top:12px;font-size:12.5px;color:#475569}
.priv{margin-top:10px;font-size:12.5px;color:var(--muted);display:flex;gap:7px;align-items:flex-start}
.file{margin-top:14px;border:1px solid var(--border);border-radius:var(--r);padding:14px;display:flex;gap:12px;align-items:center;background:#fff}
.file .fi{width:42px;height:48px;flex:none}
.file .fn{font-weight:700;word-break:break-all}.file .fm{color:var(--muted);font-size:13px}
.file .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.bar{height:6px;border-radius:99px;background:#E2EBF6;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;width:0;background:var(--blue);transition:width .15s}
.field{margin-top:14px}.field label{display:block;font-weight:600;margin-bottom:6px;font-size:14px}
.field input[type=text]{width:100%;padding:12px 14px;border:1px solid #bcd3ee;border-radius:9px;font:inherit;background:#fff}
.hint{color:var(--muted);font-size:13px;margin-top:8px}
.err{margin-top:12px;background:var(--fail-bg);color:#991b1b;border:1px solid #f5b5b5;border-radius:10px;padding:10px 12px;font-size:14px}
.qrbox{margin-top:14px;text-align:center}
.qrbox video{width:100%;max-width:360px;border-radius:12px;background:#0b1730;aspect-ratio:4/3;object-fit:cover}

/* ── Étapes ── */
.steps{list-style:none;margin:6px 0 0;padding:0;position:relative}
.step{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:9px 8px;border-radius:10px;position:relative}
.step:not(:last-child)::after{content:'';position:absolute;left:22px;top:42px;bottom:-8px;width:2px;background:#d6e2f0}
.step .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:2px solid #b6c4d6;background:#fff;color:#fff;z-index:1}
.step h4{margin:0;font-size:14.5px}.step p{margin:0;color:var(--muted);font-size:12.5px}
.step .tag{font-size:12px;font-weight:700;border-radius:7px;padding:3px 9px;background:var(--unk-bg);color:var(--unk);white-space:nowrap}
.step.done .dot,.step.ok .dot{background:var(--ok);border-color:var(--ok)}.step.done .tag,.step.ok .tag{background:var(--ok-bg);color:var(--ok)}
.step.warn .dot{background:var(--warn);border-color:var(--warn)}.step.warn .tag{background:var(--warn-bg);color:var(--warn)}
.step.fail .dot{background:var(--fail);border-color:var(--fail)}.step.fail .tag{background:var(--fail-bg);color:var(--fail)}
.step.running{background:var(--run-bg)}.step.running .dot{border-color:var(--run);background:#fff;color:var(--run)}.step.running .tag{background:#fff;color:var(--run)}
.step.running .dot .ds-i{animation:spin 1s linear infinite}
.step.unknown .dot,.step.absent .dot{background:#fff;border-color:#b6c4d6;color:#94a3b8}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ── Aide ── */
.help{list-style:none;margin:0;padding:6px 10px 14px}
.help button{width:100%;background:none;border:0;border-bottom:1px solid #EAF0F8;padding:13px 10px;display:flex;align-items:center;gap:12px;text-align:left;font-weight:600;font-size:14px;color:var(--navy)}
.help button:hover{background:#F6F9FD}.help li:last-child button{border-bottom:0}.help .ds-i:first-child{color:var(--blue)}.help .go{margin-left:auto;color:#94a3b8}
dialog.hd{border:0;border-radius:14px;padding:0;max-width:560px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(7,26,58,.35)}
dialog.hd::backdrop{background:rgba(7,26,58,.55)}
dialog.hd header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}
dialog.hd h3{margin:0;font-size:18px}dialog.hd .bd{padding:14px 20px 20px;color:#334155}dialog.hd .bd p{margin:0 0 10px}
dialog.hd .x{background:none;border:0;padding:6px;border-radius:8px;color:#475569}dialog.hd .x:hover{background:#EEF2F7}

/* ── Résultat ── */
#result{margin-top:16px}
.banner{border-radius:var(--r);border:1px solid;padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;box-shadow:var(--shadow)}
.banner.valid{background:#EAF8EF;border-color:#b6e3c5}.banner.warning,.banner.indeterminate{background:#FFF6E5;border-color:#f3d79c}.banner.invalid{background:#FDEEEE;border-color:#f3b3b3}.banner.none{background:#EEF2F7;border-color:#cbd5e1}
.banner .big{width:64px;height:64px}
.banner h2{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.01em}
.banner.valid h2{color:#15803d}.banner.warning h2,.banner.indeterminate h2{color:#b45309}.banner.invalid h2{color:#b91c1c}.banner.none h2{color:#475569}
.banner p{margin:4px 0 0;color:#334155}
.banner .docm{border-left:1px solid rgba(7,26,58,.12);padding-left:18px;font-size:13.5px;min-width:200px}.banner .docm b{display:block;font-size:15px;word-break:break-all}
.banner .ba{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.note{margin-top:10px;font-size:13px;color:#475569;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 12px}
.rtabs{margin-top:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--r) var(--r) 0 0;padding:0 8px}
.rpanels{background:transparent}
.rp{display:none;margin-top:14px}.rp.on{display:block}
.rp-h{display:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:16px}
.sec{padding:16px 18px}.sec h3{margin:0 0 12px;font-size:17px;display:flex;align-items:center;gap:9px}.sec h3 .ds-i{color:var(--blue)}
.crow{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid #EEF3FA;font-size:14.5px}.crow:last-child{border-bottom:0}
.crow .ci{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none}
.crow.ok .ci{background:var(--ok)}.crow.warn .ci{background:var(--warn)}.crow.fail .ci{background:var(--fail)}.crow.unknown .ci,.crow.absent .ci{background:#fff;border:2px solid #b6c4d6;color:#94a3b8}
.pill{margin-left:auto;font-size:12px;font-weight:700;border-radius:7px;padding:3px 9px;white-space:nowrap}
.crow.ok .pill{background:var(--ok-bg);color:var(--ok)}.crow.warn .pill{background:var(--warn-bg);color:var(--warn)}.crow.fail .pill{background:var(--fail-bg);color:var(--fail)}.crow.unknown .pill,.crow.absent .pill{background:var(--unk-bg);color:var(--unk)}
.counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.counts div{background:#F6F9FD;border-radius:10px;padding:9px 10px;text-align:center}.counts b{display:block;font-size:20px}.counts span{font-size:12px;color:var(--muted)}
.signer{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #EEF3FA}.signer:last-child{border-bottom:0}
.signer .av{width:42px;height:42px;border-radius:50%;background:#E6F1FD;color:var(--blue);display:grid;place-items:center;flex:none;overflow:hidden}.signer .av img{width:100%;height:100%;object-fit:contain;background:#fff}
.signer .nm{font-weight:700}.signer .sm{font-size:12.5px;color:var(--muted)}

/* ── Cartes organisation / autorité ── */
.orgcard{border:1px solid var(--border);border-radius:var(--r);background:linear-gradient(180deg,#fff,#F7FAFE);padding:18px 20px;display:grid;grid-template-columns:104px 1fr;gap:18px;align-items:start}
.orgcard+.orgcard{margin-top:12px}
.logo{width:104px;height:104px;border-radius:14px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;overflow:hidden;position:relative}
.logo img{max-width:100%;max-height:100%;object-fit:contain;padding:8px}
.logo .ini{font-size:34px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--trust),var(--blue));width:100%;height:100%;display:grid;place-items:center;letter-spacing:.02em}
.lg-note{font-size:11px;color:var(--muted);text-align:center;margin-top:5px}
.orgcard h4{margin:0;font-size:22px;letter-spacing:-.01em;text-transform:uppercase}
.orgcard .sub{color:var(--muted);font-size:13px;margin:2px 0 10px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;border-radius:99px;padding:4px 11px}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:#b45309}.badge.unk{background:var(--unk-bg);color:#475569}.badge.fail{background:var(--fail-bg);color:var(--fail)}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:14px;margin-top:10px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}
.mono{font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:12.5px;word-break:break-all}
.cacard{border:1px solid var(--border);border-radius:var(--r);background:#fff;padding:16px 20px;display:grid;grid-template-columns:104px 1fr;gap:18px;margin-top:12px}
.cacard .logo{width:84px;height:84px}.cacard .logo .ini{font-size:26px;background:linear-gradient(135deg,#334155,#64748b)}
.cacard h4{margin:0;font-size:18px}
table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th{text-align:left;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13px}table.t td{padding:10px;border-bottom:1px solid #EEF3FA;vertical-align:top}
.tbl-scroll{overflow-x:auto}
.det{border:1px solid var(--border);border-radius:var(--r);background:#fff;margin-bottom:12px}.det>summary{padding:13px 16px;font-weight:700;cursor:pointer;display:flex;gap:10px;align-items:center}.det .dbody{padding:4px 16px 16px;border-top:1px solid #EEF3FA}
.chain{list-style:none;margin:6px 0 0;padding:0}.chain li{padding:8px 12px;border-left:3px solid var(--blue);background:#F6F9FD;border-radius:0 8px 8px 0;margin:6px 0;font-size:13.5px}
.preview{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:#fff}
.preview iframe{width:100%;height:420px;border:0;display:block;background:#EEF2F7}
.preview .pv-h{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px;color:var(--muted)}
.preview .empty{padding:36px 18px;text-align:center;color:var(--muted);font-size:14px}
pre.json{background:#0b1730;color:#cfe3ff;border-radius:12px;padding:14px;overflow:auto;max-height:520px;font-size:12.5px;margin:0}

/* ── Sections de contenu ── */
.sect{margin-top:34px}.sect h2{font-size:26px;margin:0 0 6px;letter-spacing:-.01em}.sect .lead{color:var(--muted);margin:0 0 16px}
.trust3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.trust3 .panel{padding:18px 20px}.trust3 h3{margin:0 0 6px;font-size:17px}.trust3 p{margin:0;color:#334155;font-size:14.5px}
details.faq{background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:8px}details.faq summary{padding:14px 16px;font-weight:600;cursor:pointer}details.faq p{margin:0;padding:0 16px 14px;color:#334155}
.off{max-width:620px;margin:60px auto;text-align:center;padding:36px}
footer{margin-top:44px;border-top:1px solid var(--border);background:#fff}footer .wrap{padding-top:18px;padding-bottom:22px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ── Adaptatif ── */
@media (max-width:1180px){
  .hero .wrap{grid-template-columns:1fr 1fr}.hero svg.art{display:none}
  .cards4{grid-template-columns:1fr 1fr}.main3{grid-template-columns:1fr 1fr}.main3 .help-col{grid-column:1/-1}
  .banner{grid-template-columns:auto 1fr}.banner .docm{border-left:0;padding-left:0;grid-column:1/-1}.banner .ba{grid-column:1/-1;justify-content:flex-start}
  .grid3{grid-template-columns:1fr 1fr}.grid3>:last-child{grid-column:1/-1}.trust3{grid-template-columns:1fr}
}
@media (max-width:760px){
  .hdr .sep,.hdr .ttl small{display:none}.hdr .ttl{font-size:15px}.nav{margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap}.nav a{white-space:nowrap}
  .hero .wrap{grid-template-columns:1fr;padding-bottom:50px}
  .cards4,.main3,.grid2,.grid3{grid-template-columns:1fr}
  .banner h2{font-size:22px}.banner .big{width:48px;height:48px}
  .orgcard,.cacard{grid-template-columns:1fr}.logo{width:84px;height:84px}.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}
  .file{flex-direction:column;align-items:flex-start}.file .acts{margin-left:0}
  #vtabs{overflow-x:visible}#vtabs button{flex:1 1 0;flex-direction:column;justify-content:center;gap:4px;text-align:center;white-space:normal;padding:10px 4px;font-size:12.5px;line-height:1.25}
  .panel .ph{padding:16px 14px 4px}.panel .pb{padding:10px 14px 16px}.panel .ph h2{font-size:18px}.drop{padding:20px 12px}.step{grid-template-columns:30px 1fr;}.step .tag{grid-column:2;justify-self:start}
  .banner{padding:14px 14px}.banner .ba .btn{flex:1 1 100%;justify-content:center}.counts{grid-template-columns:1fr 1fr 1fr}
  .sec{padding:14px 12px}.rp-b .sec{padding:12px 10px}table.t{font-size:13px}
  dialog.hd{width:calc(100% - 20px)}
  .rtabs{display:none}.rp{display:block;margin-top:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
  .rp-h{display:flex;width:100%;align-items:center;justify-content:space-between;background:#fff;border:0;padding:14px 16px;font-weight:700;font-size:15px}
  .rp .rp-b{display:none;padding:0 12px 14px}.rp.open .rp-b{display:block}.rp.open .rp-h .ds-i{transform:rotate(90deg)}
  .preview iframe{height:320px}
}

/* Signature détachée : zone du document d'origine */
.orig{margin-top:14px;border:1.5px dashed #9db4d6;border-radius:var(--r);padding:16px;background:#f6f9ff}
.orig h4{margin:0 0 6px;font-size:15px}.orig p{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.55}
.orig .acts{display:flex;gap:10px;flex-wrap:wrap}.orig .fm{margin-top:8px;overflow-wrap:anywhere}
/* Ligne du fichier : le nom garde une largeur minimale, les boutons passent dessous si la place manque */
.file{flex-wrap:wrap}.file>div:nth-of-type(1){flex:1 1 180px;min-width:180px}
.file .fn{word-break:normal;overflow-wrap:anywhere}
