
/* ===== Accès sécurisé à une demande depuis un e-mail (?acces=…) ===== */
.acx{position:fixed;inset:0;z-index:9500;overflow:auto;display:grid;place-items:start center;padding:28px 16px 60px;background:radial-gradient(90% 70% at 0% 0%,rgba(224,19,122,.35),transparent 60%),radial-gradient(90% 70% at 100% 100%,rgba(31,166,220,.35),transparent 60%),rgba(12,13,17,.82);backdrop-filter:blur(8px);animation:acxFade .3s ease}
@keyframes acxFade{from{opacity:0}}
.acx-card{width:min(460px,100%);margin-top:6vh;background:var(--surface,#fff);color:var(--ink,#14151a);border-radius:26px;padding:28px 26px 24px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);position:relative;overflow:hidden;animation:acxPop .45s cubic-bezier(.2,.9,.3,1.15)}
@keyframes acxPop{from{transform:translateY(24px) scale(.96);opacity:0}}
.acx-card:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#1fa6dc,#e0137a,#ffd400,#14151a)}
.acx-x{all:unset;cursor:pointer;position:absolute;right:14px;top:16px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:1.1rem;color:var(--muted,#61656f)}.acx-x:hover{background:color-mix(in srgb,var(--ink,#14151a) 8%,transparent)}
.acx-ic{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;font-size:2.2rem;background:linear-gradient(135deg,#e0137a,#8a4fe0);box-shadow:0 16px 30px -14px #8a4fe0;margin-bottom:14px;animation:acxBob 3s ease-in-out infinite}
@keyframes acxBob{50%{transform:translateY(-5px) rotate(-4deg)}}
.acx-k{font-size:.74rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#e0137a}
.acx h2{font-family:var(--f-display);font-size:1.6rem;line-height:1.1;margin:6px 0 8px}
.acx p{margin:0 0 16px;color:var(--muted,#61656f);line-height:1.5}
.acx-go{all:unset;box-sizing:border-box;cursor:pointer;width:100%;text-align:center;padding:15px;border-radius:15px;font-weight:800;color:#fff;background:linear-gradient(135deg,#e0137a,#8a4fe0);box-shadow:0 16px 30px -16px #e0137a;transition:transform .2s,opacity .2s}
.acx-go:hover{transform:translateY(-2px)}.acx-go:disabled{opacity:.55;cursor:default;transform:none}.acx-go:focus-visible{outline:3px solid #8a4fe0;outline-offset:2px}
.acx-lk{all:unset;cursor:pointer;display:block;text-align:center;margin-top:12px;font-weight:700;font-size:.9rem;color:var(--muted,#61656f);text-decoration:underline;text-underline-offset:3px}
.acx-pin{display:flex;gap:8px;justify-content:center;margin:8px 0 14px}
.acx-pin input{width:48px;height:58px;text-align:center;font:800 1.5rem/1 var(--f-display,system-ui);border-radius:14px;border:2px solid var(--line,#e4e6eb);background:var(--bg,#fff);color:var(--ink,#14151a);transition:border-color .2s,transform .2s}
.acx-pin input:focus{outline:none;border-color:#e0137a;box-shadow:0 0 0 4px color-mix(in srgb,#e0137a 16%,transparent);transform:translateY(-2px)}
.acx-pin.shake{animation:acxShake .4s}@keyframes acxShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.acx-err{min-height:1.3em;text-align:center;color:#c8102e;font-weight:700;font-size:.9rem;margin:0 0 10px}
.acx-ok{display:grid;place-items:center;padding:20px 0 6px}.acx-ok svg{width:96px;height:96px}
.acx-ok circle{stroke:#178a4c;stroke-width:6;fill:none;stroke-dasharray:290;stroke-dashoffset:290;animation:acxDraw .6s ease forwards}
.acx-ok path{stroke:#178a4c;stroke-width:7;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80;animation:acxDraw .4s .45s ease forwards}
@keyframes acxDraw{to{stroke-dashoffset:0}}
/* page du devis */
.acx-dv{width:min(860px,100%);background:var(--surface,#fff);color:var(--ink,#14151a);border-radius:28px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);animation:acxPop .5s cubic-bezier(.2,.9,.3,1.1);position:relative}
.acx-dh{position:relative;padding:26px 28px 22px;color:#fff;background:linear-gradient(125deg,#e0137a,#8a4fe0 55%,#1fa6dc);overflow:hidden}
.acx-dh:after{content:"";position:absolute;width:260px;height:260px;right:-60px;top:-110px;border-radius:50%;background:rgba(255,255,255,.14);animation:acxBob 6s ease-in-out infinite}
.acx-dh small{font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-size:.74rem}
.acx-dh h2{font-family:var(--f-display);font-size:clamp(1.5rem,3.4vw,2.2rem);margin:4px 0 6px;color:#fff}
.acx-dh .who{opacity:.92}
.acx-st{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-weight:800;font-size:.86rem;padding:6px 12px;border-radius:999px;background:#fff;color:#14151a}
.acx-st i{width:9px;height:9px;border-radius:50%;background:#f08c00}.acx-st.won i{background:#178a4c}.acx-st.lost i{background:#c8102e}
.acx-db{padding:22px 28px 26px;display:grid;gap:18px}
.acx-tl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;position:relative}
.acx-tl li{list-style:none;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--muted,#61656f);position:relative}
.acx-tl li:not(:last-child):after{content:"";position:absolute;top:17px;left:calc(50% + 22px);right:calc(-50% + 22px);height:3px;border-radius:3px;background:var(--line,#e4e6eb)}
.acx-tl li.done:not(:last-child):after{background:linear-gradient(90deg,#e0137a,#8a4fe0);animation:acxBar .8s ease both}
@keyframes acxBar{from{transform:scaleX(0);transform-origin:left}}
.acx-tl b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--line,#e4e6eb);color:var(--muted,#61656f);font-size:.95rem}
.acx-tl li.done b{background:#e0137a;color:#fff}.acx-tl li.cur b{background:#ffd400;color:#14151a;animation:acxPulse 1.6s infinite}.acx-tl li.lost b{background:#c8102e;color:#fff}.acx-tl li.done,.acx-tl li.cur{color:var(--ink,#14151a)}
@keyframes acxPulse{0%{box-shadow:0 0 0 0 rgba(255,212,0,.7)}100%{box-shadow:0 0 0 12px rgba(255,212,0,0)}}
.acx-ln{border:1.5px solid var(--line,#e4e6eb);border-radius:18px;overflow:hidden}
.acx-ln .r{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--line,#e4e6eb);opacity:0;transform:translateY(8px);animation:acxIn .45s cubic-bezier(.2,.8,.2,1) forwards}
.acx-ln .r:first-child{border-top:0}.acx-ln .r b{display:block}.acx-ln .r small{color:var(--muted,#61656f)}.acx-ln .q{color:var(--muted,#61656f);font-weight:700;white-space:nowrap}.acx-ln .p{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
@keyframes acxIn{to{opacity:1;transform:none}}
.acx-tot{display:grid;justify-content:end;gap:4px;text-align:right}.acx-tot span{color:var(--muted,#61656f)}.acx-tot .big{font-family:var(--f-display);font-size:2rem;font-weight:900;background:linear-gradient(90deg,#e0137a,#8a4fe0);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.acx-val{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,#ffd400 18%,var(--surface,#fff));font-weight:700;font-size:.92rem}
.acx-note{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--ink,#14151a) 4%,transparent);font-size:.95rem;line-height:1.5}
.acx-act{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}
.acx-b{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;padding:14px 12px;border-radius:14px;font-weight:800;border:1.5px solid var(--line,#e4e6eb);transition:transform .2s,box-shadow .2s}.acx-b:hover{transform:translateY(-2px)}.acx-b:focus-visible{outline:3px solid #8a4fe0;outline-offset:2px}
.acx-b.ok{background:#178a4c;color:#fff;border-color:#178a4c;box-shadow:0 14px 26px -14px #178a4c}.acx-b.no{color:#c8102e}
.acx-box{display:grid;gap:10px;padding:14px;border-radius:16px;border:1.5px solid var(--line,#e4e6eb);animation:acxIn .35s forwards}
.acx-box textarea{font:inherit;min-height:84px;padding:12px;border-radius:12px;border:1.5px solid var(--line,#e4e6eb);background:var(--bg,#fff);color:var(--ink,#14151a);resize:vertical}
.acx-box label{display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:.92rem}.acx-box label input{margin-top:3px;width:18px;height:18px;accent-color:#178a4c}
.acx-msgs{display:grid;gap:8px}.acx-msgs div{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,#1fa6dc 10%,var(--surface,#fff));font-size:.92rem}.acx-msgs small{display:block;color:var(--muted,#61656f);font-size:.78rem}
.acx-done{display:flex;gap:14px;align-items:center;padding:16px;border-radius:18px;font-weight:700;animation:acxIn .4s forwards}.acx-done.won{background:color-mix(in srgb,#178a4c 14%,var(--surface,#fff))}.acx-done.lost{background:color-mix(in srgb,#c8102e 10%,var(--surface,#fff))}
.acx-done span:first-child{font-size:2rem}
.acx-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:.88rem;color:var(--muted,#61656f)}
.acx-foot button{all:unset;cursor:pointer;font-weight:800;color:var(--ink,#14151a);text-decoration:underline;text-underline-offset:3px}
.acx-cf{position:fixed;inset:0;pointer-events:none;z-index:9600;overflow:hidden}.acx-cf i{position:absolute;top:-20px;width:10px;height:16px;border-radius:3px;animation:acxFall linear forwards}
@keyframes acxFall{to{transform:translateY(110vh) rotate(720deg)}}
@media (max-width:640px){.acx{padding:0;place-items:stretch}.acx-card{margin:0;border-radius:0;min-height:100%;width:100%}.acx-dv{border-radius:0}.acx-db{padding:18px}.acx-dh{padding:22px 18px}.acx-act{grid-template-columns:1fr}.acx-ln .r{grid-template-columns:1fr auto}.acx-ln .q{grid-column:1;grid-row:2}.acx-pin input{width:42px;height:52px}}
@media print{body>*:not(.acx){display:none!important}.acx{position:static;background:none;padding:0}.acx-dv{box-shadow:none;width:100%}.acx-act,.acx-foot,.acx-box{display:none!important}}
@media (prefers-reduced-motion:reduce){.acx *{animation:none!important;opacity:1!important;transform:none!important}}
