/* Outils libres de YZ Automation : feuille commune (générée à la main, voir scripts/outils/build.mjs). */
@font-face{font-family:Geist;src:url(/fonts/geist-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--bg:#f6f8fc;--card:#fff;--ink:#0b1120;--muted:#55607a;--line:#dfe5f0;--accent:#1d4ed8;--accent-ink:#fff;--soft:#eaf0ff;--ok:#0f7b4f;--warn:#b45309}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Geist,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--accent)}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1040px;margin:0 auto;padding:14px 16px}
.top a{text-decoration:none;font-weight:600;color:var(--ink)}
.top .brand{display:flex;align-items:center;gap:10px}
.top img{height:26px;width:auto;display:block}
.top nav{display:flex;gap:16px;font-size:.95rem}
main{max-width:860px;margin:0 auto;padding:12px 16px 56px}
main.hub{max-width:1040px}
.crumb{font-size:.9rem;color:var(--muted);margin:0 0 14px}
.crumb a{color:var(--muted)}
h1{font-size:clamp(1.7rem,5vw,2.5rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 12px;text-wrap:balance}
h2{font-size:1.3rem;line-height:1.25;margin:0 0 10px}
h3{font-size:1.05rem;margin:18px 0 4px}
p{margin:0 0 14px}
.lead{color:var(--muted);font-size:1.08rem;max-width:62ch}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;margin:0 0 16px}
.tool{border-color:#c9d6f5;box-shadow:0 10px 30px -18px rgba(29,78,216,.45)}
.grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.full{grid-column:1 / -1}
label{display:block;font-size:.9rem;font-weight:600;color:var(--muted)}
input,select,textarea{font:inherit;width:100%;margin-top:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfcff;color:var(--ink)}
textarea{min-height:92px;resize:vertical}
input[type=checkbox],input[type=radio]{width:auto;margin:0 6px 0 0}
input[type=range]{padding:0}
input[type=color]{padding:2px;height:44px}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px;font-weight:500;color:var(--ink)}
.checks label{font-weight:500;color:var(--ink);font-size:1rem}
button,.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 16px;cursor:pointer;text-decoration:none;display:inline-block}
button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.out{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--soft);border-radius:14px;padding:16px;margin-top:16px;text-align:center}
.out.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.out strong{display:block;font-size:clamp(1.25rem,4.4vw,1.9rem);line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.out span{color:var(--muted);font-size:.9rem}
pre,.code{background:#0b1120;color:#e6ecff;border-radius:12px;padding:14px;overflow:auto;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0 0}
.note{font-size:.92rem;color:var(--muted)}
.warn{color:var(--warn)}
.ok{color:var(--ok)}
.center{text-align:center}
canvas,.preview img{max-width:100%;height:auto}
ul,ol{margin:0 0 14px;padding-left:22px}
li{margin-bottom:6px}
table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:.95rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.table{overflow-x:auto}
.cta{background:#0b1120;color:#eef2fb;border:0}
.cta p{color:#c5cfe6}
.cta a.btn{margin-top:4px}
.tools{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:20px 0}
.tools li{margin:0}
.tools a{display:block;height:100%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;color:var(--ink)}
.tools a:hover{border-color:var(--accent)}
.tools b{display:block;font-size:1.08rem;margin-bottom:4px}
.tools span{color:var(--muted);font-size:.95rem}
.others{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.others a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--card);text-decoration:none;font-size:.92rem}
footer{max-width:1040px;margin:0 auto;padding:20px 16px 40px;color:var(--muted);font-size:.92rem;border-top:1px solid var(--line)}
.serp{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:16px;font-family:Arial,sans-serif;max-width:600px}
.serp .u{color:#202124;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp .t{color:#1a0dab;font-size:20px;line-height:1.3;margin:4px 0;overflow-wrap:anywhere}
.serp .d{color:#4d5156;font-size:14px;line-height:1.58;overflow-wrap:anywhere}
.sig{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:16px;margin-top:16px;overflow:auto}
.files{list-style:none;padding:0;margin:14px 0 0}
.files li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
@media (max-width:760px){.tools{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.grid,.grid.three,.tools{grid-template-columns:1fr}.out,.out.two{grid-template-columns:1fr}.top nav a.hide{display:none}}
