/* dedigpu.com — console (espace client) et pages d'authentification.
   Chargée APRÈS site.css, dont elle réutilise les jetons. CSP : aucun style en ligne. */

.p-app{background:var(--bg);-webkit-tap-highlight-color:transparent}
.p-app a,.p-app button,.p-app summary,.p-app label{touch-action:manipulation}
.tabbar{display:none}
.ahdr__top span{display:inline}
.ahdr{position:sticky;top:0;z-index:40;height:60px;background:rgba(9,12,19,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.ahdr__in{height:100%;display:flex;align-items:center;gap:1rem;padding:0 1.25rem}
.logo{display:inline-block;line-height:0}
.logo img{height:30px;width:auto;display:block}
.ahdr__sep{width:1px;height:22px;background:var(--line-2)}
.ahdr__ctx{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ahdr__right{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.bal{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;padding:.35rem .8rem;border:1px solid var(--line-2);border-radius:10px;color:var(--fg);background:var(--panel)}
.bal:hover{border-color:rgba(148,163,184,.5);color:#fff}
.bal__k{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bal__v{font-size:1rem;color:#fff}
.bal__burn{font-size:.66rem;color:var(--muted)}
.bal--low{border-color:rgba(251,191,36,.55)}
.bal--empty{border-color:rgba(248,113,113,.55)}
.umenu{position:relative}
.umenu__b{list-style:none;display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.3rem .5rem;border-radius:10px;color:var(--fg-2)}
.umenu__b::-webkit-details-marker{display:none}
.umenu__b:hover{background:rgba(255,255,255,.05)}
.umenu__av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#7c9cff,#4fd1ff);color:#0a0f1f;display:grid;place-items:center;font-weight:800;font-size:.9rem}
.umenu__e{font-size:.85rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu__p{position:absolute;right:0;top:calc(100% + 6px);min-width:230px;background:var(--panel);border:1px solid var(--line-2);border-radius:12px;padding:.5rem;box-shadow:var(--sh);z-index:50}
.umenu__p a,.umenu__out{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .6rem;border-radius:8px;color:var(--fg-2);font-size:.9rem;font-weight:600;text-align:left}
.umenu__p a:hover,.umenu__out:hover{background:rgba(255,255,255,.06);color:#fff}
.umenu__mail{margin:0 0 .3rem;padding:.4rem .6rem .6rem;font-size:.78rem;color:var(--muted);border-bottom:1px solid var(--line);overflow-wrap:anywhere}

.app{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 60px)}
.anav{border-right:1px solid var(--line);padding:1.25rem .75rem;background:var(--bg-2);display:flex;flex-direction:column;gap:.15rem}
.anav ul{display:grid;gap:.15rem}
.anav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:10px;color:var(--fg-2);font-weight:600;font-size:.93rem}
.anav a:hover{background:rgba(255,255,255,.05);color:#fff}
.anav a.is-on{background:var(--brand-soft);color:#fff;box-shadow:inset 3px 0 0 var(--brand)}
.anav a .ic{color:var(--muted)}
.anav a.is-on .ic{color:var(--brand)}
.anav__foot{margin:auto 0 0;font-size:.72rem;color:var(--dim);display:flex;gap:.4rem;align-items:center;padding:1rem .8rem 0}
.amain{padding:1.75rem 2rem 4rem;min-width:0}

.ptitle{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin:0 0 1.5rem}
.ptitle__h{font-size:1.65rem;font-weight:800;letter-spacing:-.025em;margin:0;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;line-height:1.2}
.ptitle__s{margin:.3rem 0 0;color:var(--muted);font-size:.95rem}
.ptitle__a{display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs{display:flex;gap:.5rem;font-size:.82rem;color:var(--dim);margin-bottom:.9rem}
.crumbs a{color:var(--muted)}
.alert{padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);margin:0 0 1.2rem;font-size:.95rem;color:var(--fg-2);display:flex;gap:.5rem;align-items:flex-start;line-height:1.5}
.alert .ic{flex:none;margin-top:.2rem}
.alert--ok{border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.alert--bad{border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.08)}
.alert--info{border-color:rgba(124,156,255,.35);background:rgba(124,156,255,.08)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-bottom:1.25rem}
.stat{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.stat__k{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}
.stat__v{font-size:1.65rem;color:#fff;margin:.2rem 0;line-height:1.15}
.stat__v small{font-size:.85rem;color:var(--muted);font-family:var(--font)}
.stat__s{font-size:.8rem;color:var(--muted);margin:0}
.stat--bad{border-color:rgba(248,113,113,.45)}

.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.cols--wide{grid-template-columns:1.25fr .75fr}
.card{padding:1.25rem;border:1px solid var(--line);border-radius:16px;background:var(--panel);min-width:0}
.card--flush{padding:0}
.card--soft{background:rgba(124,156,255,.06)}
.card__h{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem}
.card__h .h3{margin:0}
.card__h--pad{padding:1.1rem 1.25rem .75rem;margin:0}
.card__t{display:flex;align-items:center;gap:.6rem}
.num{width:26px;height:26px;border-radius:8px;display:inline-grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-family:var(--mono);font-size:.8rem;flex:none;vertical-align:middle}
.lnk{font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap;color:var(--brand)}
button.lnk{padding:0;background:none;border:0;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700}
button.lnk:hover{text-decoration:underline}

.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.65rem 1rem;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:.75rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle;font-size:.93rem}
.tbl tr:last-child td{border-bottom:0}
.tbl__main{display:block;font-weight:700;color:var(--fg)}
.tbl__sub{display:block;font-size:.76rem;color:var(--muted)}
.tbl--tight td,.tbl--tight th{padding:.5rem .6rem}

.b{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--fg-2);vertical-align:middle;white-space:nowrap}
.b--ok{color:#6ee7b7;border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.1)}
.b--wait{color:#a6bbff;border-color:rgba(124,156,255,.4);background:rgba(124,156,255,.1)}
.b--off{color:var(--muted)}
.b--warn{color:#fcd34d;border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.1)}
.b--bad{color:#fca5a5;border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.1)}

.empty{text-align:center;padding:2rem 1rem}
.empty__h{font-weight:800;font-size:1.1rem;margin:0 0 .3rem}
.empty p{color:var(--fg-2)}
.quick li a{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:12px;margin-bottom:.5rem;color:var(--fg)}
.quick li a:hover{border-color:var(--line-2);background:rgba(255,255,255,.03);color:#fff}
.quick__n{font-weight:700}
.quick__n small{color:var(--muted);font-weight:500}
.quick__p{margin-left:auto;color:var(--brand-2)}
.feed li{display:flex;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.feed li:last-child{border-bottom:0}
.feed__t{color:var(--muted);flex:none;min-width:84px;font-size:.78rem;padding-top:.15rem}
.feed--pad{padding:0 1.25rem 1rem}
.bul li{padding:.35rem 0 .35rem 1.2rem;position:relative;color:var(--fg-2);font-size:.93rem}
.bul li::before{content:"";position:absolute;left:0;top:.85rem;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.bul{margin-bottom:1rem}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.25rem;margin:0}
.kv dt{color:var(--muted);font-size:.85rem;padding-top:.15rem;white-space:nowrap}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.kline{display:block}
.cbtn{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand);padding:.15rem .45rem;border:1px solid rgba(124,156,255,.35);border-radius:6px;vertical-align:middle;margin-left:.3rem}
.cbtn:hover{background:var(--brand-soft)}
.cbtn.is-done{color:#6ee7b7;border-color:rgba(52,211,153,.5)}
.reveal summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:.9rem;list-style:none}
.reveal summary::-webkit-details-marker{display:none}
.reveal[open] summary{margin-bottom:.4rem}
.code{margin:0;padding:.9rem 1rem;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;font-size:.82rem;overflow:auto;white-space:pre;color:var(--fg-2)}
.mt{margin-top:1.25rem}
.small{font-size:.82rem}
.pad{padding:1.25rem;margin:0}
.pos{color:#6ee7b7}
.neg{color:var(--fg-2)}
.coin{vertical-align:middle;margin-right:.2rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.form{display:grid;gap:.9rem}
.form__note{font-size:.8rem;color:var(--dim);margin:0}
.fld textarea{width:100%;padding:.65rem .8rem;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);resize:vertical;font:inherit;line-height:1.5}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--brand-2);outline-offset:1px}
.fld span small{font-weight:500;text-transform:none;letter-spacing:0}
.fld--grow{flex:1}
.fld__msg{display:block;margin-top:.35rem;font-size:.78rem;color:#6ee7b7}
.fld__msg.is-bad{color:#fca5a5}
.fld__msg.is-dim{color:var(--dim)}
.cf-turnstile{min-height:65px;margin:.1rem 0}
.row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}
.inline{display:inline-flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.btn--block{width:100%}
.btn--danger{background:rgba(248,113,113,.12);color:#fca5a5;border-color:rgba(248,113,113,.35)}
.btn--danger:hover{background:rgba(248,113,113,.24);color:#fff}
.btn.is-armed{background:#f87171;color:#0a0f1f;border-color:#f87171}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* ── Sélecteurs à cartes (partagés par l'assistant) ───────────────── */
.gpick{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:1rem}
.gpick__i,.rpick__i,.tpick__i,.cpick__i,.opick__i,.mpick__i,.seg__r{position:relative;display:block}
.gpick__i input,.rpick__i input,.tpick__i input,.cpick__i input,.opick__i input,.mpick__i input,.seg__r input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.gpick__c{display:grid;grid-template-columns:1fr auto;grid-template-areas:"n p" "s p";align-items:center;gap:.1rem .75rem;padding:.7rem .85rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .12s,background .12s}
.gpick__i input:checked + .gpick__c,.rpick__i input:checked + .rpick__c,.tpick__i input:checked + .tpick__c,.cpick__i input:checked + .cpick__c,.opick__i input:checked + .opick__c,.mpick__i input:checked + .mpick__c{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand)}
.gpick__i input:focus-visible + .gpick__c,.rpick__i input:focus-visible + .rpick__c,.tpick__i input:focus-visible + .tpick__c,.cpick__i input:focus-visible + .cpick__c,.opick__i input:focus-visible + .opick__c,.mpick__i input:focus-visible + .mpick__c{outline:2px solid var(--brand-2);outline-offset:2px}
.gpick__c:hover,.rpick__c:hover,.tpick__c:hover,.opick__c:hover,.mpick__c:hover{border-color:var(--line-2)}
.gpick__n{grid-area:n;font-weight:800;display:flex;align-items:center;gap:.4rem}
.gpick__tag{font-size:.6rem;font-weight:800;letter-spacing:.08em;padding:.1rem .35rem;border-radius:5px;background:rgba(248,113,113,.15);color:#fca5a5}
.gpick__s{grid-area:s;font-size:.74rem;color:var(--muted)}
.gpick__p{grid-area:p;color:#fff;font-size:1rem}
.gpick__p small{color:var(--muted)}
.seg--form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.35rem;border-radius:12px}
.seg__r span{display:inline-block;padding:.4rem .8rem;border-radius:7px;font-weight:700;font-family:var(--mono);color:var(--fg-2);cursor:pointer}
.seg__r input:checked + span{background:var(--panel-3);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.06) inset}
.seg__hint{font-size:.76rem;color:var(--dim);margin-left:.5rem}
.rpick{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.rpick__c{display:flex;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;height:100%}
.rpick__c img{border-radius:3px;flex:none;margin-top:.15rem}
.rpick__c > span{display:flex;flex-direction:column;gap:.1rem}
.rpick__c small{font-size:.74rem;color:var(--muted)}
.tpick{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.tpick__c,.opick__c{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .85rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;height:100%}
.tpick__c small,.opick__c small{font-size:.74rem;color:var(--muted)}
.tpick__c b,.opick__c b{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.tpick__tag{font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.1rem .4rem;border-radius:5px;background:rgba(79,209,255,.15);color:var(--brand-2)}
.opick__lic{color:var(--brand-2);font-weight:700;font-size:.72rem}
.tpick__why,.opick__why{color:#fca5a5;display:none}
.tpick__i.is-off,.opick__i.is-off{opacity:.55}
.tpick__i.is-off .tpick__c,.opick__i.is-off .opick__c{cursor:not-allowed;border-style:dashed}
.tpick__i.is-off .tpick__why,.opick__i.is-off .opick__why{display:block}
.opick{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.25rem}
.tgroup{margin-bottom:.9rem}
.tgroup__t{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .45rem}

/* ── Assistant de commande ────────────────────────────────────────── */
.wiz{display:block;position:relative}
.wiz__nav{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem;margin:0 0 1.1rem;padding:.35rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.wiz__stb{display:flex;align-items:center;gap:.55rem;width:100%;padding:.55rem .7rem;border-radius:10px;color:var(--muted);font-weight:700;font-size:.82rem;text-align:left;cursor:pointer;background:none;border:0;font-family:inherit}
.wiz__stb:hover{background:rgba(255,255,255,.05);color:var(--fg)}
.wiz__stn{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);font-family:var(--mono);font-size:.74rem;flex:none}
.wiz__st.is-on .wiz__stb{background:var(--brand-soft);color:#fff}
.wiz__st.is-on .wiz__stn{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.wiz__st.is-done .wiz__stb{color:var(--fg-2)}
.wiz__st.is-done .wiz__stn{background:rgba(52,211,153,.15);color:#6ee7b7;border-color:rgba(52,211,153,.45)}
.wiz__stl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wiz__body{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem;align-items:start}
.wiz__steps{display:grid;gap:1.25rem;min-width:0}
.wiz__side{position:sticky;top:76px}
.wstep__h{margin:0 0 1.1rem}
.wstep__h .h3{margin:0 0 .3rem;display:flex;align-items:center;gap:.6rem}
.wstep__h .h3:focus{outline:none}
.wstep__h p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.55}
.wstep__sub{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:1.25rem 0 .6rem}
.wstep__sub:first-of-type{margin-top:0}
.wstep__f{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line)}
.wstep__f .btn:last-child{margin-left:auto}
.wstep__hint{font-size:.76rem;color:var(--dim)}
.wiz__hint{display:flex;gap:.5rem;align-items:flex-start;margin:.8rem 0 0;padding:.6rem .8rem;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-size:.84rem;color:var(--fg-2);line-height:1.5}
.wiz__hint .ic{flex:none;color:var(--brand);margin-top:.15rem}
.wiz__note{margin:0 0 1rem;padding:.6rem .8rem;border-radius:10px;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.4);color:#fcd34d;font-size:.86rem;line-height:1.5}
.wiz__err{margin:1rem 0 0;padding:.6rem .8rem;border-radius:10px;background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.4);color:#fca5a5;font-size:.88rem}
.preload{margin-top:1.25rem;padding:1rem;border:1px dashed var(--line-2);border-radius:12px}
.preload .wstep__sub{margin-top:0}
.wiz__fit{display:flex;gap:.5rem;align-items:flex-start;margin:.8rem 0 0;font-size:.84rem;color:#6ee7b7;line-height:1.5}
.wiz__fit .ic{flex:none;margin-top:.15rem}
.wiz__fit .ic--bad{display:none}
.wiz__fit.is-bad{color:#fca5a5}
.wiz__fit.is-bad .ic--ok{display:none}
.wiz__fit.is-bad .ic--bad{display:inline-block}
.opts{display:grid;gap:.6rem}
.opt{display:grid;grid-template-columns:minmax(0,1fr) auto 84px;gap:1rem;align-items:center;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px}
.opt__t b{display:block;font-weight:700}
.opt__t small{display:block;font-size:.76rem;color:var(--muted);line-height:1.45}
.opt__why{color:#a6bbff}
.opt.is-off{opacity:.55}
.opt.is-off .switch{pointer-events:none}
.opt select{width:auto;min-width:170px;padding:.5rem 2rem .5rem .7rem;border:1px solid var(--line-2);border-radius:10px;background:var(--bg-2);color:var(--fg);font:inherit;font-size:.9rem}
.opt select:focus{outline:2px solid var(--brand-2);outline-offset:1px}
.opt__p{text-align:right;color:#fff}
.switch{position:relative;display:inline-block;width:44px;height:26px;flex:none}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch__t{position:absolute;inset:0;border-radius:999px;background:var(--panel-3);border:1px solid var(--line-2);cursor:pointer;transition:background .15s}
.switch__t::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked + .switch__t{background:var(--brand);border-color:var(--brand)}
.switch input:checked + .switch__t::after{transform:translateX(18px)}
.switch input:focus-visible + .switch__t{outline:2px solid var(--brand-2);outline-offset:2px}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--fg-2);line-height:1.5;cursor:pointer;margin-top:1rem}
.check input{margin-top:.3rem;flex:none;accent-color:var(--brand);width:16px;height:16px}
.check--tight{margin:0;padding:.45rem 0;border-bottom:1px solid var(--line)}
.kpick{display:grid;margin-top:.35rem}
.kpick li:last-child .check--tight{border-bottom:0}
.kpick__none{margin:.4rem 0 0}
.mpick{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.mpick__c{display:flex;flex-direction:column;gap:.15rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;height:100%}
.mpick__c b{font-weight:800}
.mpick__d{font-size:.72rem;color:var(--brand-2);font-weight:700}
.mpick__p{font-size:1.15rem;color:#fff;margin-top:.35rem}
.mpick__p small{font-size:.72rem;color:var(--muted)}
.mpick__due{font-size:.72rem;color:var(--muted)}
.rev{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.25rem;margin:0 0 1.25rem}
.rev dt{color:var(--muted);font-size:.85rem;padding-top:.1rem;white-space:nowrap}
.rev dd{margin:0;min-width:0;overflow-wrap:anywhere;font-size:.93rem}
.rev dd .lnk{margin-left:.4rem}
.cost{width:100%;border-collapse:collapse;font-size:.92rem}
.cost td{padding:.5rem 0;border-bottom:1px solid var(--line)}
.cost td.t-r{text-align:right;white-space:nowrap}
.cost__disc td{color:#6ee7b7}
.cost tfoot td{border-bottom:0}
.cost__month td{padding-top:.75rem;font-weight:700}
.cost__due td{font-size:1.15rem;font-weight:800;color:#fff}
.cost__bal td{color:var(--muted);font-size:.85rem;padding-top:0}
.wiz__bar{display:none}
@media (min-width:1101px){.wiz .tpick{grid-template-columns:repeat(3,1fr)}}
html:not(.js) [data-next],html:not(.js) [data-back],html:not(.js) .wiz__bar,html:not(.js) button.lnk{display:none}

/* Récapitulatif latéral */
.sum{padding:1.25rem;border:1px solid var(--line-2);border-radius:16px;background:linear-gradient(160deg,rgba(124,156,255,.14),rgba(79,209,255,.04)),var(--panel)}
.sum__k{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem}
.sum__n{font-size:1.25rem;font-weight:800;margin:0 0 .8rem}
.sum__specs li{display:flex;justify-content:space-between;gap:.75rem;font-size:.86rem;padding:.3rem 0;border-bottom:1px solid var(--line)}
.sum__specs span{color:var(--muted);flex:none}
.sum__specs b{text-align:right;overflow-wrap:anywhere}
.sum__price{margin:1rem 0}
.sum__pv{font-size:2rem;color:#fff}
.sum__pu{margin-left:.4rem;color:var(--muted)}
.sum__pm{display:block;font-size:.78rem;color:var(--muted);margin-top:.2rem}
.sum__due{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;padding:.7rem .8rem;border-radius:10px;background:rgba(124,156,255,.12);border:1px solid rgba(124,156,255,.3);margin-bottom:.6rem}
.sum__due span{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-2)}
.sum__due b{font-size:1.35rem;color:#fff}
.sum__due small{color:var(--muted);font-size:.78rem}
.sheet__l--card li{grid-template-columns:120px 1fr auto}
.sum__bal{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem;padding:.6rem .8rem;border-radius:10px;background:var(--bg-2);margin-bottom:.75rem;border:1px solid transparent}
.sum__bal.is-short{border-color:rgba(248,113,113,.45)}
.sum__need{font-size:.85rem;color:#fca5a5;margin:0 0 .75rem;line-height:1.5}
.sum__foot{font-size:.76rem;color:var(--dim);margin:.75rem 0 0}

/* ── Rechargement : pleine largeur, deux colonnes, bouton collant ─── */
.tu{max-width:none}
.tu__card{padding:0}
.tu__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.tu__col{padding:1.25rem 1.5rem;min-width:0}
.tu__col + .tu__col{border-left:1px solid var(--line)}
.tu__lbl{margin:0 0 .75rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.tu__lbl small{font-weight:500;letter-spacing:0;text-transform:none;color:var(--dim)}
.hero{display:flex;align-items:center;gap:.2rem;padding:.4rem .9rem;border:1px solid var(--line-2);border-radius:14px;background:var(--bg-2);cursor:text}
.hero:focus-within{outline:2px solid var(--brand-2);outline-offset:1px}
.hero__cur{font-family:var(--mono);font-size:1.6rem;color:var(--muted);font-weight:700}
.hero input{border:0;background:none;width:100%;min-width:0;font-family:var(--mono);font-size:2.1rem;font-weight:700;color:#fff;padding:.25rem 0}
.hero input:focus{outline:none}
.amt__msg{margin:.5rem 0 0;font-size:.84rem;color:#fca5a5}
.presets{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;margin-top:.75rem}
.preset{padding:.55rem .3rem;border:1px solid var(--line-2);border-radius:10px;font-weight:700;font-family:var(--mono);color:var(--fg-2);text-align:center;line-height:1.2;font-size:.92rem}
.preset:hover{color:#fff;border-color:rgba(148,163,184,.5)}
.preset.is-on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.tu__after{margin:.7rem 0 0;font-size:.84rem;color:var(--muted)}
.tu__next{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.6rem 0 0;padding:.6rem .8rem;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-size:.84rem;color:var(--fg-2)}
.tu__next .ic{color:var(--brand);flex:none}
.tu__next span{flex:1 1 auto}
.tu__next .lnk{font-size:.84rem}
.coins{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.coin{display:block;position:relative}
.coin input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.coin__r{display:grid;grid-template-columns:26px minmax(0,1fr) auto 20px;align-items:center;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .12s,background .12s;position:relative}
.coin__r:hover{border-color:var(--line-2)}
.coin__t{display:flex;flex-direction:column;min-width:0;gap:.05rem}
.coin__t b{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.9rem;line-height:1.2}
.coin__t small{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coin__net{font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.1rem .35rem;border-radius:5px;background:var(--panel-3);color:var(--muted)}
.coin__tag{font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.18rem .4rem;border-radius:6px;background:rgba(52,211,153,.14);color:#6ee7b7;white-space:nowrap}
.coin__chk{width:20px;height:20px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:transparent}
.coin__chk .ic{width:12px;height:12px}
.coin input:checked + .coin__r{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand)}
.coin input:checked + .coin__r .coin__net{background:rgba(124,156,255,.25);color:#fff}
.coin input:checked + .coin__r .coin__chk{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.coin input:focus-visible + .coin__r{outline:2px solid var(--brand-2);outline-offset:2px}
.tu__note{display:flex;gap:.5rem;align-items:flex-start;margin:.75rem 0 0;font-size:.8rem;color:var(--muted);line-height:1.5}
.tu__note .ic{flex:none;color:var(--brand);margin-top:.15rem}
/* Bandeau collant : le bouton reste visible, quelle que soit la hauteur de la carte. */
.tu__go{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:1.25rem;padding:.9rem 1.5rem;border-top:1px solid var(--line);background:rgba(13,17,27,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:0 0 16px 16px}
.tu__go .btn{flex:none}
.tu__btnd{margin-left:.15rem}
.tu__trust{margin:0;font-size:.78rem;color:var(--dim);line-height:1.45}
.tu__trust .ic{display:inline-block;vertical-align:-3px;margin-right:.3rem}

/* Facture */
.pay{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}
.paystate{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-size:.92rem;margin:0 0 1rem}
.paystate--seen{border-color:rgba(124,156,255,.4)}
.paystate--short{border-color:rgba(251,191,36,.4)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}
.dot--live{background:var(--ok);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.45)}100%{box-shadow:0 0 0 9px rgba(52,211,153,0)}}
.payrow{display:grid;grid-template-columns:110px 1fr;gap:.25rem 1rem;padding:.8rem 0;border-top:1px solid var(--line);margin:0}
.payrow dt{color:var(--muted);font-size:.85rem;padding-top:.2rem}
.payrow dd{margin:0;min-width:0}
.payamt{font-size:1.4rem;color:#fff}
.payaddr{display:inline-block;padding:.45rem .6rem;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;font-size:.88rem;overflow-wrap:anywhere;max-width:100%}
.payhint{display:block;font-size:.76rem;color:var(--dim);margin-top:.3rem}
.pay__cancel{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid var(--line)}
.pay__qr{text-align:center}
.pay__qr img{margin:0 auto .6rem;border-radius:12px;background:#fff;padding:8px;width:220px;height:220px}
.pay__usd{font-size:1.4rem;font-weight:800;margin:.5rem 0 0}
.pay__usd small{display:block;font-size:.76rem;color:var(--muted);font-weight:500}
.pay__tips{margin:1rem 0 0;text-align:left;display:grid;gap:.45rem}
.pay__tips li{display:flex;gap:.45rem;align-items:flex-start;font-size:.8rem;color:var(--muted);line-height:1.45}
.pay__tips .ic{flex:none;color:#6ee7b7;margin-top:.15rem}
.wallet{margin-left:.4rem;vertical-align:middle}
.tl{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:0 0 1.25rem;padding:.6rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.tl li{list-style:none;display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border-radius:10px;color:var(--muted)}
.tl__n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);font-family:var(--mono);font-size:.74rem;flex:none}
.tl__t{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.tl__t b{font-size:.84rem;color:var(--fg-2)}
.tl__t small{font-size:.7rem}
.tl li.is-done .tl__n{background:rgba(52,211,153,.15);color:#6ee7b7;border-color:rgba(52,211,153,.45)}
.tl li.is-done .tl__t b{color:var(--fg)}
.tl li.is-now{background:var(--brand-soft)}
.tl li.is-now .tl__n{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.tl li.is-now .tl__t b{color:#fff}
.card--done{display:flex;gap:1rem;align-items:flex-start}
.done__ic{width:44px;height:44px;border-radius:50%;background:rgba(52,211,153,.15);color:#6ee7b7;display:grid;place-items:center;flex:none}
.done__t{font-weight:700;font-size:1.05rem;margin:0 0 .4rem}
.card--done .btns{margin-top:.75rem}
.card--bad{display:flex;gap:1rem;align-items:flex-start;border-left:4px solid #ef4444}
.done__ic--bad{background:rgba(239,68,68,.15);color:#f87171}
.done__t--bad{color:#ef4444}
.done__sub{margin:0 0 .5rem;color:var(--muted);font-size:.95rem;line-height:1.5}
.card--bad .btns{margin-top:.75rem}

/* Authentification */
.p-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(60% 50% at 50% 0%,rgba(124,156,255,.18),transparent 60%),var(--bg)}
.auth{width:100%;max-width:440px;padding:2rem 1.25rem}
.auth__logo{display:block;width:max-content;margin:0 auto 1.5rem}
.auth__logo img{height:36px;width:auto}
.auth__card{padding:1.75rem;border:1px solid var(--line-2);border-radius:18px;background:var(--panel);box-shadow:var(--sh)}
.auth__h{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0 0 .3rem}
.auth__s{color:var(--muted);margin:0 0 1.25rem}
.auth__alt{text-align:center;font-size:.9rem;color:var(--muted);margin:1rem 0 0}
.auth__foot{text-align:center;font-size:.8rem;color:var(--dim);margin:1.25rem 0 0;display:flex;justify-content:center;gap:.4rem;align-items:center;flex-wrap:wrap}
.rcode{padding:1rem 1.1rem;border:1px dashed rgba(124,156,255,.5);border-radius:12px;background:var(--brand-soft);margin:0 0 1.25rem;text-align:center}
.rcode--wide{text-align:left}
.rcode__k{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);margin:0 0 .5rem;display:flex;gap:.4rem;justify-content:center;align-items:center}
.rcode--wide .rcode__k{justify-content:flex-start}
.rcode__v{font-size:1.35rem;color:#fff;margin:0 0 .6rem;letter-spacing:.04em;overflow-wrap:anywhere}
.rcode__v--sm{font-size:.95rem;letter-spacing:0}
.rcode__s{font-size:.8rem;color:var(--muted);margin:.6rem 0 0}

/* Verrou (support reserve aux comptes avec un serveur en ligne) */
.lock{display:flex;gap:1rem;align-items:flex-start;border-color:rgba(124,156,255,.35);background:linear-gradient(160deg,rgba(124,156,255,.12),rgba(79,209,255,.03)),var(--panel)}
.lock__ic{width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;flex:none}
.lock__t{font-weight:800;font-size:1.05rem;margin:0 0 .35rem}
.lock__s{margin:0 0 .85rem;color:var(--fg-2);font-size:.93rem;line-height:1.55}
.lock .btns{display:flex;gap:.5rem;flex-wrap:wrap}
.locked{opacity:.42;filter:grayscale(.45) saturate(.7);pointer-events:none;user-select:none;-webkit-user-select:none}

/* Tickets */
.thread{display:grid;gap:.8rem}
.msg{padding:.9rem 1rem;border-radius:12px;background:var(--bg-2);border:1px solid var(--line)}
.msg--staff{border-color:rgba(124,156,255,.35);background:rgba(124,156,255,.06)}
.msg__meta{margin:0 0 .4rem;font-size:.82rem}
.msg__body{font-size:.95rem;color:var(--fg-2)}

@media (max-width:1100px){
  .app{grid-template-columns:1fr}
  /* La barre laterale devient une barre d'onglets fixe en bas, comme une application. */
  .anav{display:none}
  .amain{padding-bottom:calc(5.6rem + env(safe-area-inset-bottom))}
  .p-app--focus .amain{padding-bottom:1rem}
  .p-app--focus .tabbar{display:none}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);gap:.15rem;padding:.3rem .3rem calc(.3rem + env(safe-area-inset-bottom));background:rgba(9,12,19,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line-2)}
  .tabbar__i{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:54px;border-radius:12px;color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:.02em;list-style:none;cursor:pointer;user-select:none;-webkit-user-select:none}
  .tabbar__i::-webkit-details-marker{display:none}
  .tabbar__i .ic{width:22px;height:22px;flex:none}
  .tabbar__i:active{background:rgba(255,255,255,.06)}
  .tabbar__i.is-on,.more.is-on .tabbar__i,.more[open] .tabbar__i{color:#fff}
  .tabbar__i.is-on .ic,.more.is-on .tabbar__i .ic{color:var(--brand)}
  .tabbar__go{width:42px;height:42px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;margin-top:-16px;box-shadow:0 8px 20px rgba(124,156,255,.35);border:3px solid var(--bg)}
  .tabbar__go .ic{width:22px;height:22px;color:var(--brand-ink)}
  .tabbar__i--go{color:var(--fg-2)}
  .tabbar__i--go.is-on{color:#fff}
  .more{position:static}
  /* Volet « More » : feuille au-dessus de la barre ; le fond assombri est le
     summary lui-meme etendu a tout l'ecran, donc un tap n'importe ou le ferme (sans JS). */
  .more[open] > summary::before{content:"";position:fixed;inset:0;background:rgba(3,5,10,.55);z-index:-1}
  .more__p{position:fixed;left:.6rem;right:.6rem;bottom:calc(4.8rem + env(safe-area-inset-bottom));z-index:61;background:var(--panel);border:1px solid var(--line-2);border-radius:18px;padding:.5rem;box-shadow:0 20px 50px rgba(0,0,0,.55)}
  .more__p a,.more__p button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.85rem .85rem;border-radius:12px;color:var(--fg-2);font-weight:600;font-size:1rem;text-align:left;background:none;border:0;font-family:inherit;cursor:pointer}
  .more__p a:active,.more__p button:active,.more__p a.is-on{background:rgba(255,255,255,.06);color:#fff}
  .more__p a.is-on .ic{color:var(--brand)}
  .more__p .ic{color:var(--muted)}
  .more__mail{display:flex;align-items:center;gap:.6rem;margin:0 0 .3rem;padding:.6rem .85rem .85rem;font-size:.82rem;color:var(--muted);border-bottom:1px solid var(--line);overflow-wrap:anywhere}
  .more__mail .umenu__av{flex:none}
  .stats{grid-template-columns:1fr 1fr}
  .cols,.cols--wide{grid-template-columns:1fr}
  .pay{grid-template-columns:1fr}
  .cpick{grid-template-columns:repeat(2,1fr)}
  .umenu__e{display:none}
  /* Assistant : le récapitulatif latéral devient une barre fixe en bas. */
  .wiz__body{grid-template-columns:1fr}
  .wiz__side{display:none}
  html.js .wiz{padding-bottom:4.5rem}
  html.js .wiz__bar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom));background:rgba(9,12,19,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line-2)}
  .wiz__barp{display:flex;flex-direction:column;line-height:1.2;min-width:0}
  .wiz__barp b{font-size:1.15rem;color:#fff}
  .wiz__barp small{font-size:.74rem;color:var(--muted)}
  .tl{grid-template-columns:repeat(2,1fr)}
  .tu__grid{grid-template-columns:1fr}
  .tu__col + .tu__col{border-left:0;border-top:1px solid var(--line)}
  .coins{grid-template-columns:repeat(4,1fr)}
  .coin__r{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem;padding:.7rem .4rem .6rem}
  .coin__t{align-items:center}
  .coin__t b{justify-content:center}
  .coin__t small{white-space:normal}
  .coin__tag{display:none}
  .coin__chk{position:absolute;top:.4rem;right:.4rem;width:16px;height:16px}
  .coin__chk .ic{width:10px;height:10px}
  .tu__go{bottom:calc(4.6rem + env(safe-area-inset-bottom))}
  .wiz__nav{display:flex;overflow:auto;scrollbar-width:none}
  .wiz__nav::-webkit-scrollbar{display:none}
  .wiz__st{flex:none}
  .opick{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:700px){
  .amain{padding:1rem 1rem calc(5.6rem + env(safe-area-inset-bottom))}
  .ahdr{height:56px}
  .ahdr__in{padding:0 .75rem;gap:.5rem}
  .ahdr__ctx,.ahdr__sep,.bal__burn,.umenu{display:none}
  .logo img{height:26px}
  .bal{padding:.25rem .6rem}
  .bal__v{font-size:.95rem}
  .ahdr__top{padding:.5rem .7rem}
  .ahdr__top span{display:none}
  .ptitle{margin-bottom:1rem;gap:.7rem}
  .ptitle__h{font-size:1.35rem}
  .ptitle__s{font-size:.88rem}
  .ptitle__a{width:100%}
  .ptitle__a .btn{flex:1 1 auto;justify-content:center}
  .ptitle__a form.inline{display:flex;width:100%;gap:.5rem}
  .ptitle__a form.inline .btn{flex:1 1 auto}
  .crumbs{margin-bottom:.6rem}
  .card{padding:1rem;border-radius:14px}
  .card__h--pad{padding:.9rem 1rem .6rem}
  .card__h{flex-wrap:wrap;row-gap:.15rem}
  .card__h > .muted{flex-basis:100%;order:3;font-size:.78rem}
  .card__h > .lnk{margin-left:auto}
  .cols{gap:.9rem;margin-bottom:.9rem}
  .h3{font-size:1.08rem}
  .stats{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.9rem}
  .stat{padding:.8rem .85rem;border-radius:12px}
  .stat__v{font-size:1.3rem}
  .stat__s{font-size:.72rem}
  /* iOS zoome sur tout champ sous 16 px : jamais moins. */
  .fld input,.fld select,.fld textarea,.amt input,.opt select{font-size:16px}
  .btn{min-height:44px}
  .btn--sm{min-height:38px}
  .cbtn{min-height:28px}
  .form .btn,.row .btn{width:100%;justify-content:center}
  .row{flex-direction:column;align-items:stretch}
  .feed li{flex-direction:column;gap:.15rem}
  .feed__t{min-width:0}
  .code{font-size:.76rem}
  .alert{font-size:.9rem;padding:.75rem .85rem}
  .empty{padding:1.25rem .5rem}
  .quick li a{padding:.75rem .7rem}
  .rcode__v{font-size:1.1rem}
  .lock{flex-direction:column;gap:.6rem}
  .lock .btn{width:100%;justify-content:center}
  .auth{padding:1.25rem 1rem}
  .auth__card{padding:1.25rem}
  .gpick,.rpick,.tpick,.grid2,.opick{grid-template-columns:1fr}
  .tu__col{padding:1rem 1rem}
  .hero input{font-size:1.8rem}
  .presets{gap:.35rem}
  .preset{padding:.5rem .2rem;font-size:.82rem}
  .coins{grid-template-columns:1fr 1fr}
  .tu__go{flex-direction:column;align-items:stretch;gap:.45rem;padding:.75rem 1rem}
  .tu__go .btn{width:100%}
  .tu__trust{text-align:center}
  .tu__btnd{display:none}
  .tl{grid-template-columns:1fr;gap:.2rem}
  .wallet{margin:.5rem 0 0;display:inline-flex}
  .kv{grid-template-columns:1fr;gap:.15rem .5rem}
  .kv dt{margin-top:.6rem}
  .mpick{grid-template-columns:1fr 1fr}
  .wiz__stl{display:none}
  .wiz__st.is-on .wiz__stl{display:inline}
  .wiz__stb{padding:.5rem .55rem}
  .opt{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t p" "c c";row-gap:.6rem}
  .opt__t{grid-area:t}
  .opt__p{grid-area:p}
  .opt select,.opt .switch{grid-area:c;justify-self:start}
  .opt select{width:100%}
  .rev{grid-template-columns:1fr;gap:.15rem .5rem}
  .rev dt{margin-top:.6rem}
  .wstep__f .wstep__hint{order:3;width:100%}
  /* Tableaux → fiches empilees : jamais de defilement horizontal. Chaque <td>
     porte son libelle en data-l ; le contenu passe en colonne 2. */
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr{display:block}
  .tbl tr{padding:.65rem 1rem;border-bottom:1px solid var(--line)}
  .tbl tr:last-child{border-bottom:0}
  .tbl td{display:grid;grid-template-columns:6.5rem minmax(0,1fr);column-gap:.75rem;align-items:baseline;padding:.2rem 0;border:0;text-align:left}
  .tbl td > *{grid-column:2}
  .tbl td::before{content:attr(data-l);grid-column:1;grid-row:1;color:var(--muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding-top:.15rem}
  .tbl td:not([data-l])::before{content:none}
  .tbl td:not([data-l]){grid-template-columns:1fr}
  .tbl td:not([data-l]) > *{grid-column:1}
  .tbl td.t-r{text-align:left}
  .card--flush .tbl{min-width:0}
  .payrow{grid-template-columns:1fr}
  .pay__cancel{flex-direction:column;align-items:flex-start}
}

/* ── Logos de marques du configurateur (inc/brands.php) ──────────────
   Couleurs OFFICIELLES de chaque marque ; les glyphes noirs (AMD, Ollama)
   passent en blanc — l'usage officiel prévu sur fond sombre. */
.opick__c,.tpick__c{display:grid;grid-template-columns:auto 1fr;column-gap:.65rem;row-gap:.15rem;align-items:start}
.opick__c>.ic,.tpick__c>.ic{grid-row:1/span 3;width:20px;height:20px;margin-top:.15rem}
.gpick__c{grid-template-columns:auto 1fr auto;grid-template-areas:"i n p" "i s p"}
.gpick__c>.ic{grid-area:i;width:22px;height:22px}
img.bi{object-fit:contain}
.bi--house{color:var(--muted)}
.bi--nvidia{color:#76b900}
.bi--amd{color:#fff}
.bi--ubuntu{color:#e95420}
.bi--debian{color:#d70a53}
.bi--rockylinux{color:#10b981}
.bi--windows{color:#0078d4}
.bi--pytorch{color:#ee4c2c}
.bi--tensorflow{color:#ff6f00}
.bi--jupyter{color:#f37626}
.bi--huggingface{color:#ffd21e}
.bi--ollama{color:#fff}
.bi--docker{color:#2496ed}
.bi--k3s{color:#ffc61c}
.bi--blender{color:#e87d0d}



}
}

/* ── Facturation : ce que le client doit savoir, dans l'ordre où il se le demande.
   Ai-je de quoi tenir ? → .run   Faut-il agir ? → .att
   Que va-t-on me prendre ? → .sch   Où est passé l'argent ? → .act
   CSP : aucun style en ligne. Les largeurs variables passent par la géométrie
   SVG (attributs, pas CSS), jamais par style=""..                            */

/* Rythme vertical unique de la page : une seule valeur, partout. */
.bsec{margin:0 0 1.1rem}
.bhead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem 1rem;margin:0 0 .65rem}
.bhead .h3{margin:0}

/* ── Bandeau « à faire » ───────────────────────────────────────────── */
.att{border:1px solid rgba(251,191,36,.38);border-radius:16px;background:linear-gradient(165deg,rgba(251,191,36,.08),transparent 55%),var(--panel);margin:0 0 1.1rem;overflow:hidden}
.att--bad{border-color:rgba(248,113,113,.42);background:linear-gradient(165deg,rgba(248,113,113,.09),transparent 55%),var(--panel)}
.att__h{display:flex;align-items:center;gap:.5rem;margin:0;padding:.75rem 1.15rem;border-bottom:1px solid var(--line);font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#fcd34d}
.att--bad .att__h{color:#fca5a5}
.att__h .ic{width:15px;height:15px}
.att__l{margin:0;padding:0;list-style:none}
.att__i{display:flex;gap:.85rem;align-items:flex-start;padding:.85rem 1.15rem;border-bottom:1px solid var(--line)}
.att__i:last-child{border-bottom:0}
.att__ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;margin-top:.05rem;background:rgba(251,191,36,.14);color:#fcd34d}
.att__ic .ic{width:17px;height:17px}
.att__ic--bad{background:rgba(248,113,113,.14);color:#fca5a5}
.att__ic--info{background:var(--brand-soft);color:var(--brand)}
/* [!] Enfants DIRECTS : un `.att__t b` large mettait en bloc le moindre <b>
       d'insistance a l'interieur de la phrase, et coupait la ligne en trois. */
.att__t{flex:1 1 auto;min-width:0}
.att__t>b{display:block;font-weight:700;font-size:.95rem;color:var(--fg);line-height:1.45}
.att__t>span{display:block;font-size:.85rem;color:var(--muted);line-height:1.55;margin-top:.15rem}
.att__t>span b{color:var(--fg-2);font-weight:700}
.att__a{flex:none;align-self:center}

/* ── Solde et autonomie ────────────────────────────────────────────── */
.run{display:grid;grid-template-columns:minmax(0,1fr) 292px;border:1px solid var(--line);border-radius:16px;background:var(--panel);margin:0 0 1.1rem;overflow:hidden}
.run__m{padding:1.3rem 1.5rem 1.25rem;min-width:0}
.run__k{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.run__v{margin:.25rem 0 0;font-size:2.7rem;line-height:1.02;color:#fff}
.run__s{margin:.6rem 0 0;font-size:.97rem;color:var(--fg-2);display:flex;align-items:baseline;gap:.5rem;line-height:1.5}
.run__s b{color:#fff;font-weight:700}
.run__dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--ok);align-self:center}
.run__dot--warn{background:var(--warn)}
.run__dot--bad{background:var(--bad)}

/* Courbe d'épuisement : ce qu'il reste, jour après jour, aux dates de prélèvement. */
.rbar{margin:1.2rem 0 0}
.rbar__svg{display:block;width:100%;height:auto}
.rbar__ax{display:flex;justify-content:space-between;gap:1rem;margin:.4rem 0 0;font-size:.72rem;color:var(--dim)}
.rbar__ax b{font-weight:700;color:var(--muted)}
.rb-grid{stroke:var(--line)}
.rb-zero{stroke:var(--line-2);stroke-dasharray:3 4}
.rb-area{fill:rgba(124,156,255,.13)}
.rb-line{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.rb-drop{stroke:rgba(124,156,255,.4);stroke-width:1;stroke-dasharray:2 3}
.rb-tick{fill:var(--panel);stroke:var(--brand);stroke-width:2}
.rb-cut{stroke:var(--bad);stroke-width:1.5;stroke-dasharray:4 3}
.rb-cutd{fill:var(--bad)}
.rb-short{fill:none;stroke:var(--bad);stroke-width:2;stroke-linejoin:round;stroke-dasharray:5 4}
.rbar__lg{display:flex;gap:.55rem;align-items:flex-start;margin:.75rem 0 0;padding:.65rem .8rem;border-radius:10px;background:rgba(248,113,113,.07);border:1px solid rgba(248,113,113,.3);font-size:.87rem;color:var(--fg-2);line-height:1.55}
.rbar__lg .ic{flex:none;color:#fca5a5;margin-top:.15rem}
.rbar__lg b{color:#fff;font-weight:700}
.rbar__lg--ok{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.28)}
.rbar__lg--ok .ic{color:#6ee7b7}

/* Colonne « prochain prélèvement » */
.run__a{padding:1.3rem 1.35rem 1.25rem;border-left:1px solid var(--line);background:var(--bg-2);display:flex;flex-direction:column}
.run__an{margin:.5rem 0 0;font-weight:800;font-size:1.05rem;overflow-wrap:anywhere}
.run__au{margin:.1rem 0 0;font-size:.74rem;color:var(--dim)}
.run__ap{margin:.7rem 0 0;font-size:1.6rem;color:#fff;line-height:1.1}
.run__ad{margin:.2rem 0 0;font-size:.86rem;color:var(--muted)}
.run__aa{margin:.9rem 0 0;padding:.6rem .75rem;border-radius:10px;background:var(--panel);border:1px solid var(--line);display:flex;justify-content:space-between;gap:.6rem;font-size:.84rem;color:var(--muted)}
.run__aa b{color:var(--fg)}
.run__aa.is-short{border-color:rgba(248,113,113,.45)}
.run__aa.is-short b{color:#fca5a5}
.run__f{display:grid;gap:.55rem;margin:1.1rem 0 0;padding:.95rem 0 0;border-top:1px solid var(--line)}
.run__f>div{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}
.run__f dt{font-size:.82rem;color:var(--muted)}
.run__f dd{margin:0;font-size:.89rem;font-weight:700;color:var(--fg);text-align:right}
.run__ab{margin:auto 0 0;padding-top:1.1rem}
.run__ab .btn{width:100%}
.run__none{margin:.6rem 0 0;font-size:.9rem;color:var(--muted);line-height:1.55}
.run__hint{display:flex;gap:.55rem;align-items:flex-start;margin:1.1rem 0 0;padding:.7rem .85rem;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);font-size:.88rem;color:var(--fg-2);line-height:1.55}
.run__hint .ic{flex:none;color:var(--brand);margin-top:.15rem}

/* ── Paiements en cours d'acheminement ─────────────────────────────── */
.flt{display:grid;gap:.55rem;margin:0 0 1.1rem;padding:0;list-style:none}
.flt__i{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem 1.5rem;padding:.8rem 1rem;border:1px solid rgba(124,156,255,.3);border-radius:14px;background:linear-gradient(160deg,rgba(124,156,255,.07),transparent 55%),var(--panel)}
.flt__i img{border-radius:50%}
.flt__r{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.flt__r a{font-family:var(--mono);font-size:.9rem;font-weight:500}
.flt__r small{font-size:.76rem;color:var(--muted)}
.flt__amt{font-size:1.15rem;color:#fff;white-space:nowrap;text-align:right}
.flt__st{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end;min-width:0;text-align:right}
.flt__exp{font-size:.78rem;color:var(--muted);white-space:nowrap}
.flt__exp b{color:#fcd34d;font-variant-numeric:tabular-nums}
.flt__exp.is-soon b{color:#fca5a5}

/* ── Prélèvements programmés ───────────────────────────────────────── */
.sch__due{display:flex;flex-direction:column;line-height:1.3}
.sch__due small{font-size:.76rem;color:var(--muted)}
.sch__amt{color:var(--fg)}
.sch__proj{color:var(--muted)}
.tbl tr.is-short .sch__proj,.sch__short{color:#fca5a5}
.tbl tr.is-short td{background:rgba(248,113,113,.05)}
.tbl tr.is-now td{background:rgba(251,191,36,.05)}
.sch__off{color:var(--dim)}
.sch__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:0;padding:.8rem 1.25rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}

/* ── Mouvements ────────────────────────────────────────────────────── */
.fchips{display:flex;gap:.35rem;flex-wrap:wrap;margin:0}
.fchip{padding:.35rem .8rem;border:1px solid var(--line-2);border-radius:999px;font-size:.8rem;font-weight:700;color:var(--fg-2);background:none;cursor:pointer;font-family:inherit;line-height:1.4}
.fchip:hover{color:#fff;border-color:rgba(148,163,184,.45)}
.fchip.is-on{background:var(--brand-soft);border-color:var(--brand);color:#fff}
.fchip span{color:var(--muted);font-weight:600;margin-left:.35rem;font-variant-numeric:tabular-nums}
.fchip.is-on span{color:var(--brand-2)}
html:not(.js) .fchips{display:none}
.act__e{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.act__e b{font-weight:700;color:var(--fg)}
.act__e small{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.act__ref{font-family:var(--mono);font-size:.76rem;color:var(--dim)}
.act__none{padding:1.5rem 1.25rem;margin:0;text-align:center;color:var(--muted)}
.tbl tr.is-void td{color:var(--dim)}
.tbl tr.is-void .act__e b{color:var(--muted)}
.act__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:0;padding:.8rem 1.25rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}

/* ── Ce qui se passe si le solde ne suffit plus ─────────────────────── */
.wflow{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:0;padding:0;list-style:none}
.wflow li{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem .95rem;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.wflow__n{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;flex:none;font-family:var(--mono);font-size:.76rem;background:rgba(251,191,36,.13);color:#fcd34d}
.wflow li:last-child .wflow__n{background:rgba(248,113,113,.13);color:#fca5a5}
.wflow__t{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.wflow__t b{font-weight:700;font-size:.92rem}
.wflow__t small{font-size:.8rem;color:var(--muted);line-height:1.5}

@media (max-width:1100px){
  .run{grid-template-columns:1fr}
  .run__a{border-left:0;border-top:1px solid var(--line)}
  .run__ab{margin-top:1rem}
  .wflow{grid-template-columns:1fr}
  .flt__i{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"i r a" "i s s" "b b b";row-gap:.65rem}
  .flt__i>img{grid-area:i}
  .flt__r{grid-area:r}
  .flt__amt{grid-area:a;text-align:right}
  .flt__st{grid-area:s;flex-direction:row;align-items:center;gap:.6rem;flex-wrap:wrap}
  .flt__i>.btn{grid-area:b;width:100%}
}
@media (max-width:700px){
  .run__m{padding:1.05rem 1.1rem}
  .run__v{font-size:2.1rem}
  .run__s{font-size:.9rem}
  .run__f{gap:.75rem 1.2rem}
  .run__a{padding:1.05rem 1.1rem}
  .att__i{flex-wrap:wrap}
  .att__a{width:100%;padding-left:calc(30px + .85rem)}
  .att__a .btn{width:100%;justify-content:center}
  .rbar__ax{font-size:.68rem}
  .sch__foot,.act__foot{padding:.75rem 1rem}
  .fchips{width:100%;order:3;margin-top:.35rem}
  .fchip{flex:1 1 auto;text-align:center}
}

/* ── Facturation v2 : état vide, mois, recherche, aide repliée ──────── */
.run__go{margin:1.2rem 0 0;padding:1rem 1.1rem;border:1px dashed var(--line-2);border-radius:12px}
.run__go .run__k{margin:0 0 .6rem}
.run__pre{margin-top:0}
.run__pre .preset{display:block}
.run__gs{margin:.7rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.5}
.act__h{flex-wrap:wrap}
.act__tools{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-left:auto}
.act__q{display:flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid var(--line-2);border-radius:999px;color:var(--muted);background:var(--bg-2)}
.act__q:focus-within{outline:2px solid var(--brand-2);outline-offset:1px;color:var(--fg)}
.act__q .ic{flex:none}
.act__q input{border:0;background:none;color:var(--fg);font:inherit;font-size:.85rem;width:12rem;padding:.15rem 0}
.act__q input:focus{outline:none}
.act__q input::placeholder{color:var(--dim)}
html:not(.js) .act__q{display:none}
.tbl tr.act__m td{padding:.9rem 1rem .45rem;border-bottom:0;background:var(--bg-2)}
.tbl tr.act__m td > *{display:inline}
.act__mn{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2)}
.act__ms{float:right;font-size:.76rem;color:var(--muted);display:inline-flex;gap:.45rem;align-items:baseline}
.act__ms b{font-weight:500;color:var(--fg-2)}
.act__ms b.pos{color:#6ee7b7}
.help{padding:0}
.help__s{display:flex;align-items:center;gap:.6rem;padding:.95rem 1.25rem;font-weight:700;font-size:.95rem;color:var(--fg-2);cursor:pointer;list-style:none}
.help__s::-webkit-details-marker{display:none}
.help__s > .ic:first-child{color:var(--muted)}
.help__s span{flex:1 1 auto}
.help__c{transition:transform .15s}
.help[open] .help__c{transform:rotate(180deg)}
.help[open] .help__s{border-bottom:1px solid var(--line);margin:0}
.help .wflow{padding:1rem 1.25rem 1.25rem}

/* ── Réglages : compte, appareils, journal ───────────────────────────── */
.acct{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.acct__av{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7c9cff,#4fd1ff);color:#0a0f1f;display:grid;place-items:center;font-weight:800;font-size:1.25rem;flex:none}
.acct__t{min-width:0;flex:1 1 16rem}
.acct__e{margin:0;font-weight:800;font-size:1.08rem;overflow-wrap:anywhere;line-height:1.3}
.acct__s{margin:.2rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.5}
.acct__f{display:flex;gap:1.5rem;margin:0;padding:0 .25rem}
.acct__f > div{display:flex;flex-direction:column;line-height:1.3}
.acct__f dt{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.acct__f dd{margin:0;font-size:.95rem;font-weight:700;color:var(--fg)}
.dev{list-style:none;margin:0;padding:0}
.dev__i{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.dev__i:last-child{border-bottom:0;padding-bottom:.2rem}
.dev__i:first-child{padding-top:0}
.dev__ic{width:38px;height:38px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted)}
.dev__i.is-me .dev__ic{color:var(--brand);border-color:rgba(124,156,255,.35);background:var(--brand-soft)}
.dev__t{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.dev__t b{font-weight:700;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.dev__t small{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.dev__a form{margin:0}
.dev__foot{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.9rem 0 0;padding-top:.9rem;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted);line-height:1.5}
.dev__foot form{margin:0;flex:none}
.tbl--log td{padding-top:.55rem;padding-bottom:.55rem}
.tbl--log td:first-child{white-space:nowrap;width:1%}
.tbl--log .act__e b{font-weight:600}

@media (max-width:1100px){
  .act__tools{margin-left:0;width:100%}
}
@media (max-width:700px){
  .run__go{padding:.85rem .9rem}
  .act__q{width:100%}
  .act__q input{width:100%}
  .act__ms{float:none;display:flex;margin-top:.2rem}
  .tbl tr.act__m{padding:.75rem 1rem .4rem}
  .acct__f{width:100%;gap:1rem;padding:.75rem 0 0;border-top:1px solid var(--line)}
  .dev__i{grid-template-columns:38px minmax(0,1fr)}
  .dev__a{grid-column:2}
  .dev__foot form,.dev__foot .btn{width:100%}
  .help__s{padding:.85rem 1rem}
  .help .wflow{padding:.9rem 1rem 1rem}
}
