/* Bibliothèque OBD : mêmes couleurs et typographies que le site atelier. */
.skip-link{position:absolute;top:0;left:16px;z-index:50;transform:translateY(-120%);background:var(--accent);color:var(--on-accent);padding:12px 18px}
.skip-link:focus{transform:translateY(0)}
.obd-label{display:block;font-size:.74rem;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.obd-intro{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:44px;border-top:0;padding:48px 0}
.obd-intro h1{font-size:clamp(2.7rem,6vw,4.8rem);max-width:none;margin-top:16px}
.obd-title-sub{display:block;font:500 1.12rem/1.5 var(--body);margin-top:20px;color:var(--muted)}
.obd-intro .lead{font-size:1.05rem;margin-bottom:0;max-width:54ch}
.obd-instrument{border:1px solid var(--line);background:var(--surface);padding:28px 24px;position:relative}
.obd-instrument span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.14em;color:var(--muted)}
.obd-instrument strong{display:block;font:900 4.4rem/1.4 var(--display);color:var(--curve)}
.obd-instrument i{display:block;height:6px;margin-top:22px;background:repeating-linear-gradient(90deg,var(--accent) 0,var(--accent) 20px,transparent 20px,transparent 24px);width:100%}
.obd-search{padding:30px;background:var(--surface);border:1px solid var(--line)}
.obd-search h2{font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.05;margin:8px 0 24px}
.obd-search form{gap:6px}
.obd-search-controls{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.obd-search-controls input{flex:1 1 220px;width:auto;margin:0;background:var(--bg);font-size:1.1rem;min-height:52px}
.obd-clear{background:transparent;border:1px solid var(--line);color:var(--ink);font:700 .9rem var(--body);padding:12px;cursor:pointer}
.obd-notice{border-left:4px solid var(--accent);padding:16px 20px;background:var(--surface);font-size:.95rem;margin:26px 0}
.obd-catalog{padding:32px 0;border:0}
.obd-catalog-head{display:flex;gap:16px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.obd-catalog h2,.obd-method h2,.obd-workshop h2,.obd-related h2,.obd-future h2{font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.05}
.obd-catalog-head p{font-size:.9rem;color:var(--muted)}
#obd-results{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
.obd-result{border-bottom:1px solid var(--line)}
.obd-result[hidden],.obd-empty[hidden],.obd-clear[hidden]{display:none}
.obd-result a{display:grid;grid-template-columns:112px minmax(0,1fr) 30px;gap:24px;align-items:center;text-decoration:none;padding:24px 12px}
.obd-result a:hover,.obd-result a:focus-visible{background:var(--surface)}
.obd-result-code{font:800 2.5rem/1.1 var(--display);color:var(--curve)}
.obd-result h3{font-size:1.55rem;line-height:1.15;margin:4px 0}
.obd-result-detail{font-size:.85rem;color:var(--muted)}
.obd-arrow{font-size:1.6rem;color:var(--curve)}
.obd-empty{padding:28px;background:var(--surface);border:1px solid var(--line)}
.obd-empty h3{font-size:1.7rem;line-height:1.1}
.obd-method{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;padding:40px 0}
.obd-workshop{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:32px;background:var(--surface);border:1px solid var(--line);padding:28px;margin:20px 0 32px}
.obd-workshop h2{margin-top:8px}
.obd-workshop p{color:var(--muted);margin-bottom:0}
.obd-workshop .cta-band{margin:0;align-items:center}
.obd-text-link{font-weight:700;text-underline-offset:4px}
.obd-future{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 0 48px}
.obd-future>div{border-top:2px solid var(--line);padding-top:20px}
.obd-future h2{font-size:1.7rem;margin-top:12px}
.obd-future p{color:var(--muted);font-size:.95rem}
.obd-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;padding:22px 0}
.obd-article-head{display:flex;justify-content:space-between;gap:24px;align-items:end;padding:18px 0}
.obd-article-head>a{font-size:.9rem;flex-shrink:0}
.obd-article h1{max-width:23ch;font-size:clamp(2.3rem,5.5vw,3.8rem);line-height:1.04;margin-top:12px}
.obd-code{display:block;color:var(--curve);font-size:1.5em;line-height:1.1;margin-bottom:10px}
.obd-toc{flex-wrap:wrap;gap:10px 20px;border-block:1px solid var(--line);padding:16px 0;font-size:.9rem}
.obd-technical{max-width:78ch}
.obd-technical section{padding:32px 0;border-top:0;scroll-margin-top:20px}
.obd-technical section+section{border-top:1px solid var(--line)}
.obd-technical h2{font-size:clamp(1.9rem,4vw,2.5rem);line-height:1.05;margin-top:8px}
.obd-technical p,.obd-technical li{line-height:1.75}
.obd-technical ul,.obd-technical ol{padding-left:24px}
.obd-technical li+li{margin-top:12px}
.obd-technical .obd-caution{padding:24px;background:var(--surface);border-left:4px solid var(--accent);margin-block:16px}
.obd-sources{padding:28px 0;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.obd-sources h2{font-size:1.8rem;color:var(--ink)}
.obd-related{padding:28px 0}
.obd-related>div{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.obd-related a{display:block;flex:1 1 230px;border:1px solid var(--line);padding:16px;text-decoration:none;font-size:.95rem}
.obd-related a:hover{background:var(--surface)}
.obd-related b{display:block;color:var(--curve)}
@media(max-width:760px){.obd-intro{grid-template-columns:1fr;gap:24px;padding:32px 0}.obd-instrument{display:none}.obd-search{padding:20px}.obd-method,.obd-workshop{grid-template-columns:1fr;gap:20px}.obd-article-head{display:block}.obd-article-head>a{display:inline-block;padding:10px 0}.obd-future{grid-template-columns:1fr}.obd-result a{grid-template-columns:78px minmax(0,1fr) 18px;gap:12px;padding:20px 0}.obd-result-code{font-size:2rem}.obd-result h3{font-size:1.3rem}.obd-result-detail{display:none}.obd-search-controls .btn{flex:1 1 120px}.obd-search-controls input{flex-basis:100%}.obd-catalog-head h2{width:100%}.obd-catalog-head{gap:0}.obd-technical .obd-caution{padding:20px}.obd-breadcrumb{font-size:.78rem}}
/* Les règles historiques du menu mobile ne doivent pas masquer ces liens. */
nav.obd-breadcrumb a,nav.obd-toc a{display:inline-block}
.obd-remote details{padding:24px 12px;overflow-wrap:anywhere}
.obd-remote summary{cursor:pointer;min-height:48px}
.obd-remote summary h3{display:inline;margin-left:20px}
.obd-remote details p,.obd-remote details ul{max-width:80ch}
.obd-remote details h4{margin:20px 0 8px}
.obd-more{margin-top:24px;min-height:48px}
.obd-more[hidden]{display:none}
@media(max-width:760px){.obd-remote details{padding:20px 0}.obd-remote summary h3{display:block;margin:10px 0}.obd-search select{max-width:100%;min-height:44px}}
