/* ═══════════════════════════════════════════════════════════
   MIROIR CYBER — styles du tunnel (complète hub.css, mêmes tokens)
   ═══════════════════════════════════════════════════════════ */
body.mir{min-height:100vh;display:flex;flex-direction:column}
.mir-wrap{width:100%;max-width:760px;margin:0 auto;padding:clamp(1rem,4vw,2rem) 1.1rem 4rem;flex:1}

/* En-tête sobre */
.mir-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem clamp(1rem,4vw,2rem);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;
  background:color-mix(in srgb,var(--void) 86%,transparent);backdrop-filter:blur(10px)}
.mir-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;letter-spacing:-.01em}
.mir-brand .hub-mark{width:26px;height:15px}
.mir-brand-tag{font-weight:400;font-size:.7rem;color:var(--mut2);letter-spacing:0;align-self:center}
@media(max-width:480px){.mir-brand-tag{display:none}}
.mir-secure{color:var(--mut);font-size:.82rem;text-decoration:none}
a.mir-secure:hover{color:var(--txt)}

/* Fil d'étapes */
.mir-steps{display:flex;gap:.4rem;list-style:none;counter-reset:s;margin:.5rem 0 1.4rem;padding:0;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap}
.mir-steps li{counter-increment:s;color:var(--mut2);display:flex;align-items:center;gap:.4rem}
.mir-steps li::before{content:counter(s);width:1.3rem;height:1.3rem;border-radius:50%;display:grid;place-items:center;
  background:var(--ink-2);border:1px solid var(--line);font-size:.7rem;color:var(--mut)}
.mir-steps li:not(:last-child)::after{content:"";width:14px;height:1px;background:var(--line)}
.mir-steps li.on{color:var(--terra-b)}
.mir-steps li.on::before{background:var(--terra);border-color:var(--terra);color:#fff;font-weight:700}

/* Carte */
.mir-card{background:linear-gradient(180deg,var(--ink-2),var(--ink));border:1px solid var(--line);
  border-radius:20px;padding:clamp(1.4rem,4vw,2.4rem)}
.mir-step{display:none}
.mir-step.on{display:block;animation:mirIn .5s var(--ease) both}
@keyframes mirIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mir-card h1{font-size:clamp(1.7rem,5vw,2.5rem);line-height:1.06;letter-spacing:-.02em;margin:.7rem 0 .5rem}
.mir-card h2{font-size:clamp(1.4rem,4vw,1.9rem);letter-spacing:-.02em;margin:.2rem 0 .5rem}
.mir-card .lead{color:var(--mut);max-width:56ch}
.mir-back{background:none;border:0;color:var(--mut);cursor:pointer;font:inherit;font-size:.85rem;margin-bottom:.6rem;padding:0}
.mir-back:hover{color:var(--txt)}

/* Étape 1 — champ domaine */
.mir-domain{display:flex;gap:.6rem;margin:1.4rem 0 .8rem;flex-wrap:wrap}
.mir-field-inline{flex:1;min-width:220px;display:flex;align-items:center;background:var(--void);
  border:1px solid var(--line);border-radius:12px;padding:0 .9rem;transition:border-color .2s}
.mir-field-inline:focus-within{border-color:var(--terra)}
.mir-field-inline .pfx{color:var(--mut);font-family:var(--mono);font-size:.9rem}
.mir-field-inline input{flex:1;background:none;border:0;color:var(--txt);font:inherit;font-size:1.05rem;padding:.95rem .4rem;outline:none}
.mir-field-inline input.bad{color:#B4291E}
.mir-trust{color:var(--mut2);font-size:.8rem;margin-top:.4rem}

/* Étape 2 — formulaire */
.mir-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.2rem 0}
.mir-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:var(--mut)}
.mir-grid label.col2{grid-column:1/-1}
.mir-grid input{background:var(--void);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;
  color:var(--txt);font:inherit;outline:none;transition:border-color .2s}
.mir-grid input:focus{border-color:var(--terra)}
.mir-consents{display:flex;flex-direction:column;gap:.7rem;margin:.4rem 0 1.1rem;
  background:var(--void);border:1px solid var(--line);border-radius:12px;padding:1rem}
.chk{display:flex;gap:.7rem;align-items:flex-start;font-size:.86rem;color:var(--mut);cursor:pointer;line-height:1.4}
.chk input{margin-top:.15rem;width:18px;height:18px;accent-color:var(--terra);flex-shrink:0}
.chk a{color:var(--terra-b)}
.mir-legal-mini{color:var(--mut2);font-size:.76rem;margin-top:.8rem;line-height:1.5}
.mir-err{color:#B4291E;font-size:.86rem;background:rgba(180,41,30,.06);border:1px solid rgba(180,41,30,.22);
  border-radius:8px;padding:.6rem .8rem;margin:.2rem 0 .8rem}

/* Scan */
.mir-scanning{text-align:center;padding:2rem 0}
.mir-radar{width:96px;height:96px;margin:0 auto 1.4rem;border-radius:50%;position:relative;
  background:radial-gradient(circle,rgba(10,10,10,.06),transparent 70%);border:1px solid var(--line)}
.mir-radar::before{content:"";position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 300deg,var(--terra-b) 360deg);
  -webkit-mask:radial-gradient(circle,transparent 38%,#000 39%);mask:radial-gradient(circle,transparent 38%,#000 39%);
  animation:mirSpin 1.1s linear infinite}
@keyframes mirSpin{to{transform:rotate(360deg)}}
#scan-line{min-height:1.4em;color:var(--mut)}

/* Résultat : la carte cy-* vient de hub.css. Grades (sécurité si absents de hub.css) */
.g{font-weight:800;font-size:.82rem;padding:.12rem .5rem;border-radius:6px;display:inline-block}
.g.ga{background:rgba(30,122,70,.12);color:#1E7A46}
.g.gb{background:rgba(63,122,32,.12);color:#3F7A20}
.g.gc{background:rgba(160,120,15,.14);color:#8A6A0E}
.g.gd{background:rgba(176,83,28,.12);color:#B0531C}
.g.ge{background:rgba(180,41,30,.12);color:#B4291E}

/* Paywall — plan flouté */
.mir-locked{position:relative;overflow:hidden}
.mir-locked .cy-fix,.mir-locked .mir-blurmsg{filter:blur(6px);opacity:.7;user-select:none;pointer-events:none}
.mir-locked .cy-plan-t{position:relative;z-index:2}
.mir-lock{font-size:.72rem;color:var(--terra-b);margin-left:.5rem;font-weight:600}
.mir-blurmsg{margin-top:.6rem;font-size:.85rem;color:var(--mut)}

.mir-paywall{margin-top:1.6rem;background:linear-gradient(180deg,rgba(10,10,10,.04),transparent);
  border:1px solid var(--terra-deep);border-radius:16px;padding:clamp(1.2rem,3vw,1.8rem);text-align:center}
.mir-paywall h3{font-size:1.35rem;letter-spacing:-.01em;margin-bottom:.3rem}
.mir-price{display:flex;flex-direction:column;align-items:center;gap:.1rem;margin:1rem 0}
.mir-price .amount{font-size:2.3rem;font-weight:800;color:var(--terra-b);letter-spacing:-.02em}
.mir-price .once{color:var(--mut2);font-size:.8rem}
.mir-methods{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin:1rem 0}
.mir-method{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start;cursor:pointer;
  background:var(--void);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;min-width:170px;transition:border-color .2s,background .2s}
.mir-method:has(input:checked){border-color:var(--terra);background:rgba(10,10,10,.04)}
.mir-method input{position:absolute;opacity:0}
.mir-method .m-name{font-weight:600}
.mir-method .m-by{color:var(--mut);font-size:.78rem}
.btn.lg{font-size:1.05rem;padding:.95rem 1.6rem}
.btn.loading{opacity:.6;pointer-events:none}

/* Correctifs débloqués */
.mir-unlocked .cy-fix.full{display:block;padding:.9rem 0;border-bottom:1px solid var(--line)}
.mir-unlocked .cy-fix.full b{color:var(--ok);display:inline-block;margin-right:.6rem}
.mir-unlocked .cy-fix.full .ttl{font-weight:700}
.mir-unlocked .cy-fix.full .dtl{color:var(--mut);font-size:.9rem;margin-top:.35rem;line-height:1.5}
.badge.ok .dot{background:var(--ok)}

/* Note séquence Endless HUB */
.mir-seqnote{margin:1.1rem 0;background:rgba(127,176,105,.08);border:1px solid rgba(127,176,105,.28);
  border-radius:12px;padding:.8rem 1rem;color:#2E7D53;font-size:.9rem}

/* Devis d'intervention forfaitaire (upsell) */
.mir-devis{margin-top:1.4rem;background:linear-gradient(180deg,rgba(10,10,10,.045),transparent);
  border:1px solid var(--terra-deep);border-radius:16px;padding:clamp(1.2rem,3vw,1.8rem)}
.mir-devis-kick{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--terra-b);font-weight:700}
.mir-devis-title{font-size:1.3rem;letter-spacing:-.01em;margin:.3rem 0 .9rem}
.mir-devis-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.5rem}
.mir-devis-list li{position:relative;padding-left:1.5rem;color:var(--mut);font-size:.9rem;line-height:1.45}
.mir-devis-list li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:800}
.mir-devis-price{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;margin:.4rem 0 1.1rem}
.mir-devis-price .mkt{color:var(--mut2);font-size:.82rem}
.mir-devis-price .mkt s{color:var(--mut)}
.mir-devis-price .amount{font-size:2rem;font-weight:800;color:var(--terra-b);letter-spacing:-.02em}
.mir-devis-price .delay{color:var(--mut);font-size:.82rem}
.mir-devis-cta{display:flex;gap:.7rem;flex-wrap:wrap}
.mir-devis-done{color:#2E7D53;font-weight:600;padding:.4rem 0}

/* Pied */
.mir-foot{border-top:1px solid var(--line);padding:1.4rem clamp(1rem,4vw,2rem);text-align:center;color:var(--mut2);font-size:.78rem;line-height:1.6}
.mir-foot a{color:var(--mut)}
.mir-foot a:hover{color:var(--txt)}

@media(max-width:560px){.mir-grid{grid-template-columns:1fr}.mir-grid label.col2{grid-column:auto}}
