/* Studio Tout Nu — Audit. Identité : rose nu, encre, menthe, canard ; Comfortaa (titres et texte) (hébergées ici). Aucune règle en ligne : CSP stricte. */
@font-face{font-family:"Comfortaa";src:url(comfortaa-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Comfortaa";src:url(comfortaa-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Comfortaa";src:url(comfortaa-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Comfortaa";src:url(comfortaa-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--nu:#faeeea;--paper:#fffaf8;--ink:#14120f;--ink-2:#5b524d;--line:#ecdcd6;--line-2:#dfc9c1;
--mint:#00f1bc;--mint-soft:#d3fbf0;--teal:#0b5761;--teal-soft:#dcedeb;--brick:#b0335a;--brick-soft:#fbe3ea;--ochre:#6e5650;--ochre-soft:#efe2dd;--bar-low:#d4527c;--bar-mid:#b8a19a;--bar-good:#0b5761;
--serif:"Comfortaa",system-ui,sans-serif;--sans:"Comfortaa",system-ui,-apple-system,"Segoe UI",sans-serif;--r:6px;--r-lg:8px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--nu);color:var(--ink);font:400 16px/1.65 var(--sans);letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
a{color:var(--teal);text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.15;letter-spacing:-.025em;margin:0}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.muted{color:var(--ink-2)}.small{font-size:.86rem}
.sr-only,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;left:-9999px}

/* ---------- Barre haute */
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:96px;flex-wrap:wrap}
.brand img{display:block;width:132px;height:auto}
.top-link{font-weight:700;font-size:.88rem;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--mint);padding-bottom:2px}
.topbar nav{display:flex;gap:22px;align-items:center;flex-wrap:wrap;font-weight:500}
.topbar nav a{color:var(--ink);text-decoration:none}.topbar nav a:hover{color:var(--teal)}
.badge{display:inline-block;background:var(--brick);color:#fff;border-radius:3px;padding:0 7px;font-size:.72rem;margin-left:5px;vertical-align:2px}

/* ---------- Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 .92rem/1 var(--sans);padding:15px 24px;border-radius:6px;border:2px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;transition:transform .15s ease,background .15s ease}
.btn:hover{color:#fff;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:wait;transform:none}
.btn-mint{background:var(--mint);border-color:var(--mint);color:var(--ink)}.btn-mint:hover{color:var(--ink);background:#2bf5c8}
.btn-ink{background:var(--ink);color:#fff}
.btn.secondary{background:transparent;color:var(--ink)}.btn.secondary:hover{background:var(--ink);color:#fff}
.btn.danger{background:transparent;color:var(--brick);border-color:var(--brick)}.btn.danger:hover{background:var(--brick);color:#fff}
.btn-block{width:100%}
.link{background:none;border:0;color:var(--ink);font:inherit;font-weight:500;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.inline{display:inline}

/* ---------- Héros */
.hero{position:relative;overflow:hidden;padding:36px 0 72px}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:20px}
.hero-txt{position:relative;z-index:2}
.hero h1{margin-bottom:28px}
.h1-kicker{display:inline-block;font:700 2.55rem/1 var(--sans);letter-spacing:.02em;text-transform:uppercase;background:var(--mint);color:var(--ink);padding:.4em .5em .24em;border-radius:3px;margin-bottom:22px}
.h1-main{display:block;font-size:clamp(1.25rem,3.4vw,2.6rem);line-height:1.2;letter-spacing:-.03em;white-space:nowrap}
.h1-tail{display:block;font-weight:400;color:var(--ink-2)}
.lead{font-size:1.1rem;line-height:1.65;max-width:32em;margin-bottom:32px;color:#2b2622}
.audit-form{display:flex;align-items:center;gap:6px;background:#fff;border-radius:6px;padding:6px 6px 6px 26px;max-width:580px;box-shadow:0 0 0 1px var(--line-2),0 18px 40px -22px rgba(20,18,15,.35);transition:box-shadow .2s ease}
.audit-form:focus-within{box-shadow:0 0 0 2px var(--ink),0 18px 40px -22px rgba(20,18,15,.35)}
.audit-form input{flex:1;min-width:0;border:0;background:transparent;font:500 1.08rem var(--sans);color:var(--ink);padding:12px 0;outline:none;box-shadow:none}
.audit-form input::placeholder{color:#a3958e}
.reassure{margin-top:18px;color:var(--ink-2);font-size:.82rem}
.status{min-height:1.6em;margin-top:14px;font-weight:600}
.status.err{color:var(--brick)}.status.ok{color:var(--teal)}
.status.wait::before{content:"";display:inline-block;width:15px;height:15px;margin-right:10px;border:2.5px solid var(--teal);border-right-color:transparent;border-radius:6px;animation:spin .8s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}


/* ---------- Résultat : mise en page landing */
.result{outline:none}
.result-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start;padding:8px 0 90px}
.lead-col{position:sticky;top:24px}
.report{background:var(--paper);border-radius:8px;padding:40px 44px;box-shadow:0 1px 0 rgba(20,18,15,.04),0 24px 60px -30px rgba(20,18,15,.28)}
.r-head h2{font-size:clamp(1.6rem,2.8vw,2.2rem);word-break:break-word}
.r-meta{color:var(--ink-2);margin-top:8px;font-size:.88rem}
.big{font-family:var(--serif);line-height:.85;margin-bottom:14px}
.big-num{font-size:clamp(3.6rem,6.4vw,5rem);letter-spacing:-.06em;color:var(--mint)}
.big-of{font-size:1.15rem;color:#a99d98;margin-left:4px}
.grade-line{display:flex;align-items:center;gap:12px;font-weight:600;margin-bottom:18px}
.grade{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:5px;font:700 1.6rem/1 var(--serif);background:var(--ink-2);color:#fff}
.grade-A{background:var(--mint);color:var(--ink)}.grade-B{background:#9cecd6;color:var(--ink)}.grade-C{background:#e6d8d3;color:var(--ink)}.grade-D{background:#f0b7c7;color:var(--ink)}.grade-E{background:var(--bar-low);color:#fff}
.cb-bar{height:8px;border-radius:2px;background:var(--line);overflow:hidden}
.cb-in{display:block;height:100%;border-radius:2px}
.cb-in.good{background:var(--bar-good)}.cb-in.mid{background:var(--bar-mid)}.cb-in.low{background:var(--bar-low)}
.w0{width:0%}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}
.r-prio{padding:30px 0 6px}
.r-prio h3,.r-detail h3{font-size:1.3rem;margin-bottom:14px}
.prio{list-style:none;margin:0;padding:0;counter-reset:p;display:grid;gap:10px}
.prio li{counter-increment:p;display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:start;padding:14px 16px;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.prio li::before{content:counter(p);font:700 1.3rem/1.3 var(--serif);color:var(--teal)}
.prio p{color:var(--ink-2);font-size:.93rem;margin-top:3px}
.effort{display:inline-block;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:3px;background:var(--teal-soft);color:var(--teal);white-space:nowrap}
.effort.e-moyen{background:var(--ochre-soft);color:var(--ochre)}.effort.e-important{background:var(--brick-soft);color:var(--brick)}
.r-detail{padding-top:30px}
.checks{list-style:none;margin:0;padding:0}
.check{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.check strong{font-weight:700;font-size:.95rem}
.check p{color:var(--ink-2);font-size:.86rem;margin-top:4px;line-height:1.6}
.check .fix{color:var(--ink);margin-top:8px}
.cat-tag{display:inline-block;margin-left:8px;font-size:.7rem;color:var(--ink-2);border:1px solid var(--line-2);border-radius:3px;padding:1px 9px;vertical-align:1px}
.st{justify-self:start;align-self:start;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:3px;white-space:nowrap}
.st-bad{background:var(--brick-soft);color:var(--brick)}.st-warn{background:var(--ochre-soft);color:var(--ochre)}.st-ok{background:var(--teal-soft);color:var(--teal)}
.st-info{background:#e6eef0;color:#2f5a63}.st-na{background:#efe9e6;color:var(--ink-2)}
.cat{margin-top:30px}.cat h4{font-size:1.25rem;margin-bottom:6px}.cat h4 span{font:500 .95rem var(--sans);color:var(--ink-2)}
.pages{list-style:none;margin:0;padding:0}.pages li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem;word-break:break-all}

/* Le voile : le rapport « reste habillé » */
.veil{position:relative;pointer-events:none;user-select:none;-webkit-mask-image:linear-gradient(#000 0%,rgba(0,0,0,.55) 45%,transparent 100%);mask-image:linear-gradient(#000 0%,rgba(0,0,0,.55) 45%,transparent 100%)}
.fake .f0{filter:blur(2.5px)}.fake .f1{filter:blur(4px)}.fake .f2{filter:blur(6px)}.fake .f3{filter:blur(8px)}
.veil-cta{position:relative;margin-top:-56px;text-align:center;padding:0 10px 4px;font-size:.95rem;color:var(--ink-2)}.veil-cta strong{color:var(--ink)}
.veil-drape{width:46px;fill:var(--mint);margin:0 auto 14px;display:block}
.veil-title{font:700 1.3rem/1.25 var(--serif);letter-spacing:-.025em;color:var(--ink);margin-bottom:8px}
.veil-cta p{max-width:30em;margin-left:auto;margin-right:auto}
.veil-cta .btn{margin-top:20px}
.method{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);font-size:.74rem;line-height:1.6;color:var(--ink-2)}
.share{margin-top:24px}.share-input{width:100%;margin-top:6px}

/* Carte formulaire collante */
.lead-card{background:var(--ink);color:#f6efec;border-radius:8px;padding:28px 26px;box-shadow:0 30px 60px -30px rgba(20,18,15,.6)}
.lead-card h3{font-size:1.35rem;color:#fff;margin-bottom:10px}
.lead-intro{color:#cdbfba;margin-bottom:22px;font-size:.88rem;line-height:1.6}
.lead-form label{display:block;font-weight:700;font-size:.8rem;margin-bottom:14px;color:#fff}
.lead-form .opt{font-weight:400;color:#b9aea9}
.lead-form input[type=text],.lead-form input:not([type]),.lead-form input[type=email],.lead-form input[type=tel]{display:block;width:100%;margin-top:6px;padding:12px 14px;border-radius:5px;border:1px solid #3d3733;background:#1e1b18;color:#fff;font:400 .95rem var(--sans)}
.lead-form input:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px rgba(0,241,188,.25)}
.check-l{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;font-size:.78rem!important;line-height:1.5;color:#d6cbc6!important;margin:4px 0 18px!important}
.check-l input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--mint)}
.lead-status{min-height:1.4em;margin-top:10px;font-weight:600;font-size:.92rem}.lead-status.err{color:#ff9fbd}
.lead-ok{font:700 1.3rem/1.3 var(--serif);color:var(--mint)}
.rgpd{margin-top:6px;font-size:.74rem;color:#a99d98;line-height:1.55}.rgpd summary{cursor:pointer}.rgpd p{margin-top:8px}.rgpd a{color:var(--mint)}
.lead-card .btn-ink{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.mobile-cta{display:none}

/* ---------- Pied */
.foot{background:var(--ink);color:#b9aea9;padding:34px 0;font-size:.8rem;border-top:1px solid #2a2622}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.foot a{color:#fff;margin-left:22px}.foot a:first-child{margin-left:0}

/* ---------- Administration */
body.admin main.wrap{padding-bottom:70px}
.card{background:var(--paper);border-radius:8px;padding:32px 36px;margin:26px 0;box-shadow:0 1px 0 rgba(20,18,15,.04),0 24px 60px -30px rgba(20,18,15,.28)}
.card{overflow-wrap:anywhere}.card p,.card label{max-width:68ch}
.card h1{font-size:1.9rem;margin-bottom:12px}.card h2{font-size:1.4rem;margin:30px 0 12px}
.narrow{max-width:460px;margin:60px auto}
label{display:block;margin:0 0 14px;font-weight:600;font-size:.95rem}
label input,label select{display:block;width:100%;margin-top:6px;font-weight:400}
input,select,textarea{font:400 1rem var(--sans);padding:11px 13px;border:1.5px solid var(--line-2);border-radius:5px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(11,87,97,.15)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}.row input{flex:1 1 180px}.between{justify-content:space-between}
.flash{background:var(--mint-soft);border-radius:var(--r);padding:12px 16px;margin-top:22px;font-weight:500}
.note{background:var(--ochre-soft);border-radius:var(--r);padding:12px 16px;margin-top:22px}
.error{color:var(--brick);font-weight:600}
.table{width:100%;border-collapse:collapse;margin:10px 0}
.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font-size:.85rem;color:var(--ink-2);font-weight:600}
.score{display:inline-block;min-width:44px;text-align:center;border-radius:6px;padding:2px 10px;font-weight:700;background:var(--line);color:var(--ink)}
.score.good{background:var(--teal);color:#fff}.score.mid{background:var(--bar-mid);color:var(--ink)}.score.low{background:var(--bar-low);color:#fff}
.spark{list-style:none;display:flex;gap:4px;align-items:flex-end;height:70px;padding:0;margin:8px 0}
.spark li{flex:0 0 18px;height:100%;display:flex;align-items:flex-end}.spark a{display:flex;align-items:flex-end;width:100%;height:100%}
.spark .bar{display:block;width:100%;border-radius:2px 2px 0 0;background:var(--line-2)}
.spark .good .bar{background:var(--bar-good)}.spark .mid .bar{background:var(--bar-mid)}.spark .low .bar{background:var(--bar-low)}.spark .cur .bar{outline:2px solid var(--ink)}
.spark .h0{height:4%}.spark .h1{height:10%}.spark .h2{height:20%}.spark .h3{height:30%}.spark .h4{height:40%}.spark .h5{height:50%}.spark .h6{height:60%}.spark .h7{height:70%}.spark .h8{height:80%}.spark .h9{height:90%}.spark .h10{height:100%}
.plain{padding-left:20px}.plain li{margin:4px 0}.ok-t{color:var(--teal);font-weight:600}.warn-t{color:var(--ochre);font-weight:600}
code{background:#f3e7e2;padding:2px 7px;border-radius:3px;font-size:.88em;word-break:break-all}
.pre{white-space:pre-wrap}
body.admin .report{margin:24px 0}


/* ---------- Héros : drapé + carte en verre dépoli (le « voile ») */
.hero-art{position:relative;justify-self:end;width:100%;max-width:400px}
.glass{position:relative;width:100%;padding:22px 24px;border-radius:8px;background:#fff;box-shadow:0 0 0 1px var(--line),0 30px 60px -28px rgba(20,18,15,.35)}
.glass .g-host{font-weight:600;font-size:.9rem;color:var(--ink-2)}
.glass .g-score{font:700 1.2rem var(--serif);margin:2px 0 12px;display:flex;align-items:center;gap:6px}
.glass .g-score span{display:inline-block;width:1.2em;text-align:left;font-size:2.6rem;line-height:1;letter-spacing:-.05em}
.glass .grade{width:32px;height:32px;font-size:1.1rem;border-radius:5px;font-style:normal;margin-left:auto}
.glass ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:.85rem}
.glass li{display:grid;grid-template-columns:8.6em 1fr;align-items:center;column-gap:14px}
.glass i,.glass b{display:block}
.glass .g-veil{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(20,18,15,.25);font-size:.85rem;font-weight:600}
body.has-result .hero{padding:4px 0 26px}
body.has-result .h1-main{font-size:clamp(1.2rem,2.2vw,1.6rem)}body.has-result .hero h1{margin-bottom:16px}body.has-result .h1-kicker{margin-bottom:12px;font-size:1.6rem}
body.has-result .hero .lead,body.has-result .hero-art,body.has-result .reassure{display:none}
body.has-result .hero-in{grid-template-columns:1fr}
body.has-result .band,body.has-result .regards{display:none}

/* ---------- Bande « Comment ça se passe » */
.band{background:var(--ink);color:#f3ebe8;padding:84px 0;border-radius:0}
.band h2{font-size:clamp(1.6rem,3vw,2.1rem);color:#fff;margin-bottom:40px}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.steps li{counter-increment:s;display:grid;gap:8px;align-content:start}
.steps li::before{content:counter(s);width:44px;height:44px;border-radius:6px;background:var(--mint);color:var(--ink);font:700 1.25rem/44px var(--serif);text-align:center;margin-bottom:8px}
.steps strong{font-size:1rem;color:#fff}.steps span{color:#b9aea9;font-size:.9rem;line-height:1.6}

/* ---------- Huit regards : grille de tuiles */
.wrap.regards{padding-top:84px;padding-bottom:100px}
.regards h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:30px}
.cats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cats li{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:8px;background:var(--paper);box-shadow:0 0 0 1px var(--line);min-height:200px}
.cats li strong{font:700 1.08rem/1.25 var(--serif);letter-spacing:-.02em;margin-top:auto}
.cats li span:last-child{color:var(--ink-2);font-size:.82rem;line-height:1.55}
.cats .w-pct{align-self:flex-start;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:3px;background:var(--mint-soft);color:var(--teal)}
.cats .b0{background:var(--ink);border-color:var(--ink);color:#fff}.cats .b0 span:last-child{color:#c9bdb8}.cats .b0 .w-pct{background:var(--mint);color:var(--ink)}
.cats .b1,.cats .b2{background:var(--mint-soft);border-color:#b5f2e1}.cats .b1 .w-pct,.cats .b2 .w-pct{background:#fff}

/* ---------- Synthèse en tuiles */
.bento{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px;margin:28px 0 12px}
.tile{border-radius:8px;padding:20px 22px;background:#fff;box-shadow:0 0 0 1px var(--line);display:flex;flex-direction:column;gap:4px;min-width:0}
.t-label{font-size:.8rem;font-weight:600;color:var(--ink-2)}
.t-score{background:var(--ink);box-shadow:none;color:#fff;display:grid;grid-template-columns:1fr auto;column-gap:14px;align-items:start;padding:22px 24px}
.t-score .t-label{color:#a99d98}
.t-score .big{margin:4px 0 0}
.t-score-side{display:contents}
.t-score-side .grade{grid-column:2;grid-row:1}
.t-score-side p{grid-column:1/-1;font-size:.78rem;line-height:1.5;color:#a99d98;margin-top:2px}
.t-score .meter{grid-column:1/-1;margin-top:14px}
.meter{position:relative;display:block;height:6px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden}
.meter-in{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--mint)}
/* La couleur du score suit la note : framboise (faible), taupe (moyen), menthe (bon) */
.t-score.sc-low .big-num{color:#ff86ab}.t-score.sc-low .meter-in{background:#ff86ab}
.t-score.sc-mid .big-num{color:#e6d3cc}.t-score.sc-mid .meter-in{background:#e6d3cc}
.t-after{background:#fff}
.t-after .meter{background:var(--line);margin-top:auto}.t-after .meter-in{background:var(--teal)}.t-after .meter-now{position:absolute;left:0;top:0;bottom:0;background:var(--bar-mid);border-radius:2px}
.mid-num{font:700 2.1rem/1 var(--serif);letter-spacing:-.04em;margin:8px 0 4px}.mid-num span{font-size:1rem;color:var(--ink-2);margin-left:2px}
.t-note{font-size:.82rem;color:var(--ink-2);margin-bottom:12px}
.cat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.t-cat{display:flex;flex-direction:column;justify-content:space-between;gap:8px;height:100%;padding:16px 18px;border-radius:8px;background:#fff;box-shadow:0 0 0 1px var(--line);text-decoration:none;color:var(--ink);transition:box-shadow .15s ease}
.t-cat:hover{color:var(--ink);box-shadow:0 0 0 1.5px var(--ink)}
.tc-name{font-weight:700;font-size:.8rem}
.tc-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.tc-num{font:700 1.55rem/1 var(--serif);letter-spacing:-.04em}
.t-cat.low .tc-num{color:var(--brick)}.t-cat.mid .tc-num{color:var(--ochre)}.t-cat.good .tc-num{color:var(--teal)}
.tc-todo{font-size:.74rem;color:var(--ink-2);white-space:nowrap}
.t-cat .cb-bar{height:5px}
.r-sub{color:var(--ink-2);margin:-6px 0 12px;font-size:.95rem}
.report.is-public .r-detail{padding-top:34px}
@media (max-width:980px){.cats{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr}}
@media (max-width:640px){.bento{grid-template-columns:1fr 1fr}.t-score{grid-column:1/-1}.cat-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  .hero-art{display:none}
  .hero-txt{padding-top:6px}
  .glass{display:none}
  .band{padding:60px 0;border-radius:0}.wrap.regards{padding-top:60px;padding-bottom:72px}
  .cats{grid-template-columns:1fr}.cats li{min-height:0}
}


/* ---------- Mobile */
@media (max-width:980px){
  .result-grid{grid-template-columns:1fr}
  .lead-col{position:static}
  body.has-result .mobile-cta{display:flex;position:fixed;left:14px;right:14px;bottom:14px;z-index:20;justify-content:center;padding:16px;border-radius:6px;background:var(--mint);color:var(--ink);font-weight:700;text-decoration:none;box-shadow:0 0 0 2px var(--ink),5px 5px 0 var(--ink);transition:opacity .2s ease,transform .2s ease}
  body.lead-visible .mobile-cta{opacity:0;transform:translateY(20px);pointer-events:none}
}
@media (max-width:760px){
  body{font-size:16px}.wrap{padding:0 18px}
  .hero{padding:10px 0 54px}.hero-in{grid-template-columns:1fr}
  .h1-kicker{font-size:1.9rem}
  .audit-form{flex-direction:column;align-items:stretch;border-radius:8px;padding:8px}
  .audit-form input{padding:10px 12px}
  .report{padding:26px 20px;border-radius:8px}
  .check{grid-template-columns:1fr;gap:8px}
  .card{padding:22px 18px}
  .foot a{margin-left:0;margin-right:18px}
  .topbar .wrap{min-height:76px}.brand img{width:124px}
}
/* ---------- Vignette « Mode administrateur » (pages publiques) */
.top-right{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.admin-gear{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:4px;color:var(--ink-2);transition:color .15s ease,background .15s ease}
.admin-gear:hover{color:var(--ink);background:#fff}
.admin-gear svg{transition:transform .4s ease}.admin-gear:hover svg{transform:rotate(60deg)}
@media (prefers-reduced-motion:reduce){.admin-gear svg{transition:none}}
@media (max-width:640px){.top-right{gap:12px}}

/* ---------- Rapport partagé et PDF de synthèse (écran) */
.print-only{display:none}
.report-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin:6px 0 18px}
.report-cta{margin:28px 0 90px;padding:30px 32px;border-radius:8px;background:var(--ink);color:#f6efec}
.report-cta h3{color:#fff;font-size:1.3rem;margin-bottom:8px}.report-cta p{color:#cfc4bf;max-width:60ch;margin-bottom:18px}
.report-cta .btn-ink{background:transparent;border-color:#5b524d;color:#fff}
.shared .report{margin-bottom:24px}
.pdf-bar{position:sticky;top:0;z-index:5;background:var(--ink);color:#f6efec;padding:12px 0}
.pdf-bar .wrap{gap:16px}.pdf-bar p{margin:0;font-size:.92rem}.pdf-bar .muted{color:#b9aea9;display:block;margin-top:2px}
.pdf-bar .btn{background:var(--mint);border-color:var(--mint);color:var(--ink);padding:12px 20px}
.pdf-view main.wrap{padding-top:26px;padding-bottom:60px}

/* ---------- Impression / PDF A4 : sobre, aux couleurs du studio */
@page{size:A4;margin:16mm 15mm 17mm;@bottom-left{content:"Studio Tout Nu · Audit de site web";font:400 7.5pt Comfortaa,sans-serif;color:#8a7f7a}@bottom-right{content:counter(page) " / " counter(pages);font:700 7.5pt Comfortaa,sans-serif;color:#8a7f7a}}
@page :first{margin:0;@bottom-left{content:none}@bottom-right{content:none}}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important;text-shadow:none!important}
  html,body{background:#fff!important;font-size:9.6pt;line-height:1.5}
  .topbar,.no-print,.foot,.flash,form,.history,.lead-col,.mobile-cta,.hero,.band,.regards,.share,.pdf-bar,nav,body.admin main.wrap>.card,body.admin main.wrap>section.card{display:none!important}
  .print-only{display:block}
  .wrap,main.wrap,.pdf-view main.wrap{max-width:none;padding:0!important;margin:0}
  .result-grid{display:block;padding:0}
  a{color:inherit;text-decoration:none}

  /* Couverture : pleine page */
  .cover{position:relative;height:297mm;box-sizing:border-box;padding:24mm 22mm 20mm;display:flex!important;flex-direction:column;background:var(--nu);break-after:page;overflow:hidden}
  .cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5mm;background:var(--mint)}
  .cover-top{display:flex;align-items:center;justify-content:space-between}
  .cover-logo{width:46mm;height:auto}
  .cover-kicker{font:700 8.5pt var(--sans);letter-spacing:.14em;text-transform:uppercase;background:var(--mint);color:var(--ink);padding:2.2mm 3.2mm 1.6mm;border-radius:1mm}
  .cover-mid{margin-top:62mm}
  .cover-host{font:700 30pt/1.08 var(--serif);letter-spacing:-.03em;color:var(--ink);word-break:break-word;margin:0}
  .cover-date{margin-top:6mm;font-size:11pt;color:var(--ink-2);line-height:1.6}
  .cover-score{margin-top:auto;display:grid;grid-template-columns:auto auto 1fr;align-items:end;gap:9mm;padding:9mm 0 12mm;border-top:.3mm solid var(--line-2)}
  .cover-label{font:700 8pt var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:2mm}
  .cover-big{font-family:var(--serif);line-height:.85;margin:0}
  .cover-num{font-size:58pt;font-weight:700;letter-spacing:-.06em;color:var(--ink)}
  .cover-of{font-size:14pt;color:#a99d98;margin-left:1.5mm}
  .cover-score .grade{width:17mm;height:17mm;font-size:24pt;border-radius:1.5mm;margin-bottom:1.5mm}
  .cover-facts{list-style:none;margin:0;padding:0;justify-self:end;text-align:right;font-size:9.5pt;color:var(--ink-2);line-height:1.9}
  .cover-facts strong{color:var(--ink);font-size:11pt}
  .cover-foot{display:flex;justify-content:space-between;font-size:8.5pt;color:var(--ink-2);margin:0}
  .cover-foot span:first-child{font-weight:700;color:var(--ink)}

  /* Synthèse */
  .report{background:#fff!important;border:0;border-radius:0;padding:0!important;margin:0!important}
  .r-head{padding-bottom:4mm;border-bottom:.6mm solid var(--mint);margin-bottom:6mm}
  .r-head h2{font-size:18pt}
  .r-meta{font-size:8.8pt}
  .bento{display:grid!important;grid-template-columns:1.35fr 1fr 1fr;gap:4mm;margin:0 0 4mm}
  .tile{border-radius:1.5mm!important;padding:5mm!important;min-height:0!important;break-inside:avoid}
  .t-score{background:var(--ink)!important;color:#fff}
  .big-num{font-size:40pt!important}
  .t-score-side p{font-size:8pt}
  .t-after,.t-site{background:#fff!important;border:.3mm solid var(--line)}
  .mid-num{font-size:24pt!important}
  .cat-grid{grid-template-columns:repeat(4,1fr)!important;gap:3mm!important;margin-bottom:2mm}
  .cat-grid li{break-inside:avoid}
  .t-cat{padding:3.5mm 4mm!important;border-radius:1.5mm!important;border:.3mm solid var(--line)}
  .tc-num{font-size:16pt!important}.tc-name,.tc-todo{font-size:7.8pt!important}
  .r-prio{padding:7mm 0 0;break-inside:avoid}
  .r-prio h3,.r-detail h3{font-size:13pt;margin-bottom:3.5mm}
  .prio{gap:2mm}
  .prio li{padding:3mm 4mm;border-radius:1.5mm;border:.3mm solid var(--line);break-inside:avoid}
  .prio p{font-size:8.6pt}

  /* Détail */
  .r-detail{break-before:page}
  .cat{margin-top:7mm}
  .cat:first-of-type{margin-top:0}
  .cat h4{font-size:12pt;padding-bottom:2mm;border-bottom:.3mm solid var(--ink);margin-bottom:0;break-after:avoid}
  .cat h4 span{font-size:8.6pt}
  .check{grid-template-columns:24mm 1fr!important;gap:4mm;padding:3mm 0;border-top:.25mm solid var(--line);break-inside:avoid}
  .cat h4+.checks .check:first-child{border-top:0}
  .check strong{font-size:9.4pt}
  .check p{font-size:8.4pt;margin-top:1mm;line-height:1.5}
  .check .fix{margin-top:1.5mm;padding-left:3mm;border-left:.6mm solid var(--mint)}
  .st{font-size:7pt;padding:1mm 2.4mm;border-radius:.8mm}
  .effort{font-size:6.8pt;padding:.6mm 2.2mm}
  .pages li{font-size:8pt;padding:1.6mm 0;break-inside:avoid}
  .method{margin-top:8mm;padding-top:3mm;font-size:7.2pt;break-inside:avoid}
  h3,h4{break-after:avoid}
}

/* Champ fichier (mise à jour) aux couleurs du studio */
input[type=file]{display:block;width:100%;margin-top:8px;padding:14px;border:1.5px dashed var(--line-2);border-radius:6px;background:#fff;font:500 .9rem var(--sans);color:var(--ink-2);cursor:pointer}
input[type=file]:hover{border-color:var(--ink)}
input[type=file]::file-selector-button{font:700 .85rem var(--sans);margin-right:14px;padding:10px 16px;border:1.5px solid var(--ink);border-radius:6px;background:var(--ink);color:#fff;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--teal);border-color:var(--teal)}
.upd label{font-weight:600}
/* Bandeau de mise à jour en tête du tableau de bord */
.upd-compact{margin:24px 0 0}
.dropzone.dz-compact{min-height:0;margin:0!important;padding:14px 18px;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:4px 12px;text-align:left}
.dz-compact .dz-title{font-size:.92rem}.dz-compact .dz-sub{font-size:.8rem}
.dz-compact .dz-file{flex-basis:100%;margin-top:2px}
.upd-confirm{display:none;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}
.upd-confirm label{flex:1;min-width:220px;margin:0}
.upd-compact.has-file .upd-confirm{display:flex}
.card p.muted{margin-bottom:18px}.card form{margin-top:6px}

/* Zone de dépôt (mise à jour) */
.step-l{font-weight:600;font-size:.95rem;margin:0 0 8px}
.dropzone{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:150px;margin:0 0 18px!important;padding:22px;border:1.5px dashed var(--line-2);border-radius:8px;background:#fff;text-align:center;cursor:pointer;font-weight:400!important;transition:border-color .15s ease,background .15s ease}
.dropzone:hover,.dropzone.is-over{border-color:var(--teal);background:var(--teal-soft)}
.dropzone:focus-within{outline:3px solid var(--teal);outline-offset:3px}
.dz-input{position:absolute!important;inset:0;width:100%!important;height:100%;opacity:0;cursor:pointer;margin:0!important;padding:0!important;border:0!important}
.dz-title{font-weight:700;font-size:1.05rem;color:var(--ink)}
.dz-sub{font-size:.85rem;color:var(--ink-2)}
.dz-file{font-size:.88rem;font-weight:700;color:var(--teal);margin-top:6px}
.dropzone.has-file{border-style:solid;border-color:var(--teal);background:var(--teal-soft)}
.dropzone.dz-err{border-color:var(--brick);background:var(--brick-soft)}.dropzone.dz-err .dz-file{color:var(--brick)}
.dz-btn{margin-top:6px;pointer-events:none;padding:11px 20px}
.dropzone:hover .dz-btn{background:var(--ink);color:#fff}

/* Champ d'adresse : un seul état de focus, porté par le conteneur (pas de double contour) */
.audit-form input,.audit-form input:focus,.audit-form input:focus-visible{border:0;outline:none;box-shadow:none;background:transparent;border-radius:0}
.audit-form:focus-within{box-shadow:0 0 0 1.5px var(--ink),0 0 0 6px rgba(0,241,188,.45),0 18px 40px -22px rgba(20,18,15,.35)}
.audit-form .btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.audit-form input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #fff inset;-webkit-text-fill-color:var(--ink)}

/* ---------- Indicateur d'analyse (console) */
.scan{position:relative;display:grid;grid-template-columns:112px 1fr;gap:26px;align-items:center;margin-top:22px;max-width:580px;padding:24px 26px;background:var(--ink);color:#f3ebe8;border-radius:8px;box-shadow:0 30px 60px -30px rgba(20,18,15,.6);overflow:hidden}
.scan-ring{position:relative;width:112px;height:112px;display:flex;align-items:center;justify-content:center}
.sr-spin{position:absolute;inset:0;border-radius:50%;border:5px solid rgba(255,255,255,.1);border-top-color:var(--mint);will-change:transform;animation:orbit .9s linear infinite}
.sr-mark{position:relative;width:46px;height:auto;fill:var(--mint)}
.scan.is-done .sr-spin{animation:none;border-color:var(--mint)}
@keyframes orbit{to{transform:rotate(360deg)}}
.scan-body{min-width:0}
.scan-target{font-size:1rem;color:#cdbfba;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:14px}
.scan-lead{font-size:.74rem;color:#8f837e;margin-bottom:8px}
.scan-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-size:.8rem}
.scan-list li{display:flex;align-items:center;gap:9px;color:#b9aea9}
.scan-list li::before{content:"";flex:0 0 5px;height:5px;border-radius:1px;background:#5c534e}
.scan-target strong{color:#fff;font-weight:700}
.scan-note{margin-top:12px;font-size:.74rem;color:#7e736e}
.scan.is-done body.admin .scan{max-width:none;margin-top:18px}
@media (max-width:520px){.scan{grid-template-columns:1fr;justify-items:start;gap:18px}.scan-ring{width:88px;height:88px}}
@media (prefers-reduced-motion:reduce){.sr-spin{animation-duration:3s}}
@media (max-width:520px){.scan-list{grid-template-columns:1fr}}

/* Admin : lien bien visible vers la page publique */
.topbar nav a.nav-public{background:var(--mint);color:var(--ink);font-weight:700;padding:9px 14px;border-radius:6px}
.topbar nav a.nav-public:hover{background:var(--ink);color:#fff}
.topbar nav .link{color:var(--ink-2)}
.topbar nav a:not(.nav-public){position:relative;padding:6px 0}
.topbar nav a.is-current{color:var(--ink);font-weight:700}
.topbar nav a.is-current::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:1px;background:var(--mint)}
.topbar nav{gap:18px;font-size:.88rem}

/* Carte « rapport complet » : mise en valeur de l'offre */
.lead-badge{display:inline-block;font:700 .72rem/1 var(--sans);letter-spacing:.02em;background:var(--mint);color:var(--ink);padding:7px 10px;border-radius:3px;margin-bottom:14px}
.lead-card h3{font-size:1.7rem;line-height:1.15;letter-spacing:-.03em;margin-bottom:16px}
.lead-perks{list-style:none;margin:0 0 22px;padding:0 0 20px;display:grid;gap:10px;border-bottom:1px solid #2e2925}
.lead-perks li{position:relative;padding-left:28px;font-size:.86rem;line-height:1.5;color:#cdbfba}
.lead-perks li strong{color:#fff}
.lead-perks li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:3px;background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3.5 7.2l2.3 2.3 4.7-4.9' fill='none' stroke='%2314120f' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}

/* Mise en évidence du formulaire au clic sur « Recevoir le rapport complet » */
.lead-card.is-pulsed{animation:leadFlash 1.1s ease-out 2}
@keyframes leadFlash{0%{box-shadow:0 0 0 0 rgba(0,241,188,.75),0 30px 60px -30px rgba(20,18,15,.6)}100%{box-shadow:0 0 0 16px rgba(0,241,188,0),0 30px 60px -30px rgba(20,18,15,.6)}}
@media (prefers-reduced-motion:reduce){.lead-card.is-pulsed{animation:none;outline:3px solid var(--mint);outline-offset:4px}}

.status .unblock{display:inline-block;margin-left:10px;font-size:.85rem;font-weight:700;color:var(--ink);background:var(--mint);padding:6px 10px;border-radius:5px;text-decoration:none}
.status .unblock:hover{background:var(--ink);color:#fff}

/* Vue administrateur sur la page publique */
.admin-view{display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;margin:6px 0 14px;padding:8px 8px 8px 16px;border-radius:6px;background:var(--ink);color:var(--mint);font-size:.85rem;font-weight:700}
.admin-view p{margin:0}
.admin-pdf{display:inline-flex;align-items:center;padding:9px 14px;border-radius:4px;background:var(--mint);color:var(--ink);font-weight:700;text-decoration:none;white-space:nowrap}
.admin-pdf:hover{background:#2bf5c8;color:var(--ink)}
.admin-acts{display:flex;gap:8px;flex-wrap:wrap}
.admin-deep{display:inline-flex;align-items:center;padding:9px 14px;border-radius:4px;border:1px solid #3a3430;color:#fff;font-weight:700;text-decoration:none;white-space:nowrap}
.admin-deep:hover{border-color:var(--mint);color:var(--mint)}
.admin-report{padding-bottom:80px}

/* Tableau de bord admin */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}
.stat{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:8px;background:#fff;box-shadow:0 0 0 1px var(--line);text-decoration:none;color:var(--ink-2);font-size:.85rem}
.stat:hover{box-shadow:0 0 0 1.5px var(--ink);color:var(--ink-2)}
.stat-num{font:700 2rem/1 var(--sans);letter-spacing:-.04em;color:var(--ink)}
.stat-hot{background:var(--ink);box-shadow:none;color:#cdbfba}.stat-hot .stat-num{color:var(--mint)}.stat-hot:hover{color:#cdbfba}
.grade-sm{width:30px;height:30px;font-size:.95rem;border-radius:5px}
.card .row.between h1{margin:0}
@media (max-width:700px){.stats{grid-template-columns:1fr}}
