/* Écrans de connexion / compte / administration (indépendants du style de l'application) */
:root{--hy-bg:#faf9f5;--hy-fg:#141413;--hy-card:#fff;--hy-bd:#e0ddd2;--hy-ac:#2f6feb;--hy-mut:#6b6a63;--hy-err:#c0262d;--hy-ok:#1a7f45}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--hy-bg:#14130f;--hy-fg:#ecebe4;--hy-card:#1e1d18;--hy-bd:#34332b;--hy-ac:#6b95f2;--hy-mut:#a3a298;--hy-err:#ff6b70;--hy-ok:#4cc27f}}
:root[data-theme="dark"]{--hy-bg:#14130f;--hy-fg:#ecebe4;--hy-card:#1e1d18;--hy-bd:#34332b;--hy-ac:#6b95f2;--hy-mut:#a3a298;--hy-err:#ff6b70;--hy-ok:#4cc27f}
html.hy-locked{background:var(--hy-bg)}
html.hy-locked body>*:not(#hy-root){display:none!important}
html.hy-locked #hy-root{display:block}
#hy-root{font:16px/1.5 system-ui,-apple-system,sans-serif;color:var(--hy-fg)}
html.hy-locked body{background:var(--hy-bg)}
.hy-auth{max-width:420px;margin:0 auto;padding:24px 16px}
.hy-pane{position:fixed;inset:0;z-index:100000;overflow:auto;background:var(--hy-bg);color:var(--hy-fg);font:16px/1.5 system-ui,-apple-system,sans-serif;padding-top:env(safe-area-inset-top,0)}
.hy-pane *,.hy-auth *{box-sizing:border-box}
.hy-wrap{max-width:820px;margin:0 auto;padding:16px 16px 48px}
.hy-pane h1,.hy-auth h1{font-size:1.4rem;margin:.4em 0}
.hy-pane h2,.hy-auth h2{font-size:1.1rem;margin:0 0 .6em}
.hy-card{background:var(--hy-card);border:1px solid var(--hy-bd);border-radius:10px;padding:16px;margin:12px 0}
.hy-pane label,.hy-auth label{display:block;margin:10px 0 4px;color:var(--hy-mut);font-size:.9rem}
.hy-pane label.hy-chk{display:flex;gap:8px;align-items:center;color:var(--hy-fg);margin:12px 0}
.hy-pane input:not([type=checkbox]),.hy-auth input,.hy-pane select{width:100%;padding:10px;border:1px solid var(--hy-bd);border-radius:8px;background:var(--hy-bg);color:var(--hy-fg);font:inherit}
.hy-pane button,.hy-auth button{padding:10px 14px;border:0;border-radius:8px;background:var(--hy-ac);color:#fff;font:inherit;cursor:pointer;margin:8px 8px 0 0}
.hy-pane button:disabled,.hy-auth button:disabled{opacity:.6;cursor:wait}
.hy-pane button.hy-sec,.hy-auth button.hy-sec{background:transparent;color:var(--hy-fg);border:1px solid var(--hy-bd)}
.hy-pane button.hy-danger{background:var(--hy-err)}
.hy-err{color:var(--hy-err)}.hy-ok{color:var(--hy-ok)}.hy-mut{color:var(--hy-mut)}
.hy-tw{overflow-x:auto}
.hy-pane table{width:100%;border-collapse:collapse;font-size:.9rem}
.hy-pane td,.hy-pane th{text-align:left;padding:6px 4px;border-bottom:1px solid var(--hy-bd);vertical-align:top}
.hy-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.hy-pane code{background:var(--hy-bg);padding:2px 6px;border-radius:4px;border:1px solid var(--hy-bd);word-break:break-all}
html.hy-paneopen body{overflow:hidden}

/* Bouton « Déconnexion » de l'en-tête de l'application */
.hy-out{flex:none;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 13px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--fg);font:600 13px var(--f-body,system-ui);cursor:pointer;white-space:nowrap}
.hy-out svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hy-out:hover{background:var(--raise)}
.hy-out:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
header #q{flex:1 1 90px;max-width:220px}
.hy-out{padding:0 11px;gap:6px}
@media (max-width:600px){.hy-out{order:2;height:34px;padding:0 10px}}

.hy-qr{display:block;margin:12px 0;background:#fff;padding:4px;border-radius:8px;image-rendering:pixelated}
.hy-steps{margin:0 0 8px;padding-left:20px;color:var(--hy-mut)}
.hy-codes{margin:12px 0;padding:12px;border:1px dashed var(--hy-bd);border-radius:8px;background:var(--hy-bg);font:600 16px/1.7 ui-monospace,Menlo,Consolas,monospace;user-select:all}

/* éditeur de la page d'accueil (administration) */
.hy-pane textarea{width:100%;padding:10px;border:1px solid var(--hy-bd);border-radius:8px;background:var(--hy-bg);color:var(--hy-fg);font:inherit;resize:vertical}
.hy-pane h3{font-size:1rem;margin:1em 0 .2em}
.hy-litem{border:1px solid var(--hy-bd);border-radius:10px;padding:10px 12px;margin:10px 0}
.hy-lrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.hy-lrow button{margin:0!important;padding:6px 10px!important}
.hy-sp{flex:1}
.hy-lic{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--hy-ac)}
.hy-lic svg{width:20px;height:20px}
.hy-lic .hl-ic{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hy-lic .hl-ni{fill:currentColor}.hy-lic .hl-ni .o{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hy-lbody{margin-top:6px}
.hy-lprev{display:flex;align-items:center;padding:14px;background:var(--hy-bg);border:1px solid var(--hy-bd);border-radius:10px}
.hy-lprev .hl-logo b{color:var(--hy-fg)}
.hy-lpv{width:100%;max-width:340px;margin:8px 0}
.hy-lpv .hl-pv{border-radius:10px;background:var(--hy-bg);border:1px solid var(--hy-bd)}
.hy-pane .hl{min-height:0}
.hy-flash:empty{display:none}.hy-flash{position:sticky;top:0;z-index:3;background:var(--hy-bg);padding:8px 0;margin:0;font-weight:600}

/* éditeur d'apparence */
.hy-pane input[type=color]{width:44px;height:36px;padding:2px;border-radius:8px;cursor:pointer;flex:none}
.hy-pane input[type=range]{padding:0;border:0;background:transparent}
.hy-thg{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.hy-pane button.hy-th{display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:left;margin:0;padding:10px;background:var(--hy-bg);color:var(--hy-fg);border:2px solid var(--hy-bd);border-radius:12px}
.hy-pane button.hy-th.on{border-color:var(--hy-ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--hy-ac) 22%,transparent)}
.hy-th small{color:var(--hy-mut);font-size:.78rem;line-height:1.3}
.hy-thp{display:flex;flex-direction:column;border-radius:8px;overflow:hidden;border:1px solid var(--hy-bd)}
.hy-thh{display:block;height:16px}
.hy-thb{display:flex;align-items:center;gap:4px;padding:6px}
.hy-thb i{width:34px;height:14px;border-radius:4px;border:1px solid;display:block}
.hy-thb em{width:12px;height:12px;border-radius:50%;display:block}
.hy-cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px 14px;margin:10px 0}
.hy-pane label.hy-cl{display:flex;align-items:center;gap:10px;margin:0;color:var(--hy-fg)}
.hy-col{display:inline-flex;align-items:center;gap:6px}
.hy-col .hy-sec{margin:0!important;padding:4px 8px!important;font-size:.78rem}
.hy-col:not(.on) input[type=color]{opacity:.45}
.hy-seg{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.hy-pane button.on:not(.hy-th){background:var(--hy-ac);color:#fff;border-color:var(--hy-ac)}
.hy-ip{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;margin:6px 0}
.hy-ip button{margin:0!important;padding:8px!important;display:flex;align-items:center;justify-content:center}
.hy-ip svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hy-ip svg .f{fill:none}
.hy-lic svg .f{fill:none}
.hy-sticky{position:sticky;bottom:8px;z-index:4;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.hy-livebar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:100001;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center;background:#141413;color:#fff;border-radius:999px;padding:8px 8px 8px 18px;box-shadow:0 12px 40px rgba(0,0,0,.4);font:600 13px system-ui,sans-serif;max-width:calc(100vw - 24px)}
.hy-livebar button{border:0;border-radius:999px;background:#fff;color:#141413;padding:8px 14px;font:600 13px system-ui,sans-serif;cursor:pointer}

/* =====================================================================
   Tableau de bord d'administration (.ad-) : plein écran, clair / sombre, mobile 390 px
   ===================================================================== */
.ad-root{--ad-bg:#f3f4f8;--ad-sf:#fff;--ad-sf2:#f7f8fb;--ad-ln:#e6e8ef;--ad-ln-2:#d3d7e2;--ad-fg:#0e1526;--ad-mu:#5f6b82;--ad-ac:#4f46e5;--ad-ac-s:#eceafd;--ad-ac-fg:#fff;--ad-ok:#0f7b57;--ad-ok-s:#dcf5ea;--ad-er:#c62e48;--ad-er-s:#fde8ec;--ad-wa:#a8590a;--ad-wa-s:#fdf0d8;
  --ad-c1:#4f46e5;--ad-c2:#0ea5a4;--ad-c3:#f59e0b;--ad-c4:#e5484d;--ad-c5:#9b5cf6;--ad-sh:0 1px 2px rgba(15,23,42,.05),0 6px 20px rgba(15,23,42,.05);--ad-sh2:0 24px 60px rgba(15,23,42,.22);--ad-r:14px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ad-root{--ad-bg:#0b0e15;--ad-sf:#141824;--ad-sf2:#1a1f2e;--ad-ln:#262c3c;--ad-ln-2:#364058;--ad-fg:#e9ecf4;--ad-mu:#9aa5bd;--ad-ac:#8b93ff;--ad-ac-s:#23274a;--ad-ac-fg:#0b0e15;--ad-ok:#4fd1a1;--ad-ok-s:#10352a;--ad-er:#ff7a8e;--ad-er-s:#3b1a22;--ad-wa:#f5b45a;--ad-wa-s:#3a2a10;--ad-c1:#8b93ff;--ad-c2:#2dd4bf;--ad-c3:#fbbf24;--ad-c4:#ff7a8e;--ad-c5:#b794f6;--ad-sh:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.28);--ad-sh2:0 24px 60px rgba(0,0,0,.6)}}
:root[data-theme="dark"] .ad-root{--ad-bg:#0b0e15;--ad-sf:#141824;--ad-sf2:#1a1f2e;--ad-ln:#262c3c;--ad-ln-2:#364058;--ad-fg:#e9ecf4;--ad-mu:#9aa5bd;--ad-ac:#8b93ff;--ad-ac-s:#23274a;--ad-ac-fg:#0b0e15;--ad-ok:#4fd1a1;--ad-ok-s:#10352a;--ad-er:#ff7a8e;--ad-er-s:#3b1a22;--ad-wa:#f5b45a;--ad-wa-s:#3a2a10;--ad-c1:#8b93ff;--ad-c2:#2dd4bf;--ad-c3:#fbbf24;--ad-c4:#ff7a8e;--ad-c5:#b794f6;--ad-sh:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.28);--ad-sh2:0 24px 60px rgba(0,0,0,.6)}
.ad-root,.ad-root *{box-sizing:border-box}
.ad-root[hidden]{display:none!important}
.ad-root{position:fixed;inset:0;z-index:100000;display:grid;grid-template-columns:252px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"side head" "side body";background:var(--ad-bg);color:var(--ad-fg);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
.ad-root button,.ad-root input,.ad-root select{font:inherit;color:inherit}
.ad-ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ad-flip{transform:rotate(180deg)}
.ad-mu{color:var(--ad-mu)}
.ad-root h1,.ad-root h2,.ad-root h3,.ad-root h4{margin:0;font-weight:650;letter-spacing:-.02em}
.ad-root p{margin:0}
.ad-root :focus-visible{outline:2px solid var(--ad-ac);outline-offset:2px;border-radius:8px}

/* barre latérale */
.ad-side{grid-area:side;display:flex;flex-direction:column;gap:6px;padding:18px 14px 14px;background:var(--ad-sf);border-right:1px solid var(--ad-ln);min-height:0;overflow:auto}
.ad-brand{display:flex;gap:11px;align-items:center;padding:4px 8px 18px}
.ad-logo{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--ad-c1),var(--ad-c5));box-shadow:0 6px 16px color-mix(in srgb,var(--ad-c1) 38%,transparent)}
.ad-logo .ad-ic{width:20px;height:20px}
.ad-brand b{display:block;font-size:16px;letter-spacing:-.02em;line-height:1.1}
.ad-brand small{color:var(--ad-mu);font-size:12px}
.ad-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.ad-nav-i{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:0;border-radius:11px;background:transparent;color:var(--ad-mu);font-weight:550;text-align:left;cursor:pointer;transition:background .15s,color .15s}
.ad-nav-i:hover{background:var(--ad-sf2);color:var(--ad-fg)}
.ad-nav-i.on{background:var(--ad-ac-s);color:var(--ad-ac)}
.ad-nav-i.on::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--ad-ac)}
.ad-me{display:flex;gap:10px;align-items:center;padding:12px 8px 2px;border-top:1px solid var(--ad-ln);margin-top:8px;min-width:0}
.ad-me>div{min-width:0}.ad-me b,.ad-me small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-me small{color:var(--ad-mu);font-size:12px}

/* en-tête */
.ad-head{grid-area:head;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px 14px;min-width:0}
.ad-hd{min-width:0}
.ad-head h1{font-size:24px;line-height:1.15}
.ad-sub{color:var(--ad-mu);margin-top:3px!important;font-size:13.5px}
.ad-ha{display:flex;gap:8px;flex:none}
.ad-body{grid-area:body;overflow:auto;padding:4px 28px 56px;min-height:0;outline:none;scroll-behavior:smooth}
.ad-view{max-width:1480px;margin:0 auto;display:flex;flex-direction:column;gap:16px;animation:ad-in .35s cubic-bezier(.2,.7,.2,1) both}

/* boutons / champs */
.ad-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid var(--ad-ln-2);border-radius:10px;background:var(--ad-sf);color:var(--ad-fg);font-weight:560;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}
.ad-btn:hover:not(:disabled){background:var(--ad-sf2);border-color:color-mix(in srgb,var(--ad-ac) 40%,var(--ad-ln-2))}
.ad-btn:active:not(:disabled){transform:translateY(1px)}
.ad-btn:disabled{opacity:.5;cursor:not-allowed}
.ad-btn .ad-ic{width:16px;height:16px}
.ad-b-pri{background:var(--ad-ac);border-color:var(--ad-ac);color:var(--ad-ac-fg)}
.ad-b-pri:hover:not(:disabled){background:color-mix(in srgb,var(--ad-ac) 88%,#000);border-color:transparent}
.ad-b-bad{color:var(--ad-er);border-color:color-mix(in srgb,var(--ad-er) 35%,var(--ad-ln))}
.ad-b-bad:hover:not(:disabled){background:var(--ad-er-s);border-color:var(--ad-er)}
.ad-btn-l{border-color:transparent;background:transparent;color:var(--ad-mu)}
.ad-in{width:100%;min-height:38px;padding:7px 11px;border:1px solid var(--ad-ln-2);border-radius:10px;background:var(--ad-sf);color:var(--ad-fg);transition:border-color .15s,box-shadow .15s}
.ad-in:focus{outline:none;border-color:var(--ad-ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ad-ac) 22%,transparent)}
.ad-in::placeholder{color:color-mix(in srgb,var(--ad-mu) 80%,transparent)}
select.ad-in{appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a93a6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:15px}
.ad-form{display:flex;flex-direction:column;gap:12px}
.ad-fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.ad-fld>span{font-size:12.5px;font-weight:600;color:var(--ad-mu)}
.ad-fld small{color:var(--ad-mu);font-size:12px}
.ad-inl{display:flex;gap:8px}.ad-inl .ad-in{flex:1;min-width:0}
.ad-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ad-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ad-btns{display:flex;gap:8px;flex-wrap:wrap}
.ad-chk{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.ad-chk input{margin-top:3px;width:17px;height:17px;accent-color:var(--ad-ac)}
.ad-msg{min-height:20px;font-size:13px}.ad-msg:empty{display:none}.ad-msg-ok{color:var(--ad-ok)}.ad-msg-bad{color:var(--ad-er)}
.ad-warn{display:flex;gap:9px;padding:10px 12px;border-radius:10px;background:var(--ad-wa-s);color:var(--ad-wa);font-size:13px;margin-top:12px!important}
.ad-warn .ad-ic{margin-top:2px}

/* interrupteur */
.ad-sw{display:inline-flex;align-items:center;gap:11px;cursor:pointer;position:relative}
.ad-sw input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:pointer}
.ad-sw-t{flex:none;width:42px;height:24px;border-radius:99px;background:var(--ad-ln-2);position:relative;transition:background .2s}
.ad-sw-t::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s cubic-bezier(.3,.7,.3,1)}
.ad-sw input:checked+.ad-sw-t{background:var(--ad-ok)}
.ad-sw input:checked+.ad-sw-t::after{transform:translateX(18px)}
.ad-sw input:focus-visible+.ad-sw-t{outline:2px solid var(--ad-ac);outline-offset:2px}
.ad-sw input:disabled+.ad-sw-t{opacity:.55}
.ad-sw-l{font-weight:560}

/* cartes */
.ad-card{display:flex;flex-direction:column;background:var(--ad-sf);border:1px solid var(--ad-ln);border-radius:var(--ad-r);box-shadow:var(--ad-sh);padding:18px 20px;min-width:0;animation:ad-in .45s cubic-bezier(.2,.7,.2,1) both}
.ad-ch{display:flex;justify-content:space-between;gap:8px 12px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}
.ad-ct h3{font-size:15px}
.ad-ct p{color:var(--ad-mu);font-size:12.5px;margin-top:2px}
.ad-cx{flex:none;display:flex;gap:8px;align-items:center}
.ad-card>.ad-mu,.ad-card .ad-mu+.ad-mu{margin-top:8px}
.ad-grow{align-self:start}
.ad-row{display:grid;gap:16px;align-items:stretch}
.ad-row>*{animation-delay:.05s}.ad-row>*:nth-child(2){animation-delay:.1s}.ad-row>*:nth-child(3){animation-delay:.15s}
.ad-r21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.ad-r2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ad-r3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ad-col{display:flex;flex-direction:column;gap:16px}
.ad-note{display:flex;gap:8px;align-items:center;margin-top:12px!important;padding:8px 11px;border-radius:10px;background:var(--ad-wa-s);color:var(--ad-wa);font-size:12.5px}
.ad-split{display:flex;flex-direction:column}
.ad-act{display:flex;gap:16px;align-items:center}
.ad-act>div{flex:1;min-width:0}
.ad-act h3{font-size:15px}.ad-act p{color:var(--ad-mu);font-size:13px;margin-top:3px}
.ad-act-i{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--ad-ac-s);color:var(--ad-ac);flex:none}
.ad-act-i .ad-ic{width:22px;height:22px}
.ad-err{display:flex;gap:14px;align-items:center;color:var(--ad-er)}.ad-err p{color:var(--ad-mu)}.ad-err>div{flex:1}

/* KPI */
.ad-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ad-kpis-s{grid-template-columns:repeat(3,minmax(0,1fr))}
.ad-kpi{background:var(--ad-sf);border:1px solid var(--ad-ln);border-radius:var(--ad-r);box-shadow:var(--ad-sh);padding:16px 18px 14px;display:flex;flex-direction:column;gap:2px;min-width:0;animation:ad-in .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--d,0)*55ms);transition:transform .2s,box-shadow .2s}
.ad-kpi:hover{transform:translateY(-2px);box-shadow:var(--ad-sh),0 10px 28px rgba(15,23,42,.07)}
.ad-kpi-t{display:flex;align-items:center;gap:9px;color:var(--ad-mu);font-weight:560;font-size:13px}
.ad-kpi-ic{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.ad-kpi-ic .ad-ic{width:15px;height:15px}
.ad-kpi-v{font-size:30px;font-weight:700;letter-spacing:-.035em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums}
.ad-kpi-s{color:var(--ad-mu);font-size:12.5px}
.ad-kpi-f{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;margin-top:8px;min-height:32px}
.ad-spark{flex:none}
.ad-trw{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.ad-tr{display:inline-flex;align-items:center;gap:3px;padding:2px 8px 2px 6px;border-radius:99px;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}
.ad-tr .ad-ic{width:12px;height:12px;stroke-width:2.6}
.ad-tr-up{color:var(--ad-ok);background:var(--ad-ok-s)}.ad-tr-down{color:var(--ad-er);background:var(--ad-er-s)}.ad-tr-flat{color:var(--ad-mu);background:var(--ad-sf2);padding-left:8px}
.ad-trl{color:var(--ad-mu);font-size:12px}

/* graphiques */
.ad-chart-box{position:relative;flex:1 1 auto;min-height:220px}
.ad-mini{min-height:0;flex:none;height:130px}
.ad-chart-host{position:relative}
.ad-chart-in{position:absolute;inset:0}
.ad-chart{display:block;overflow:visible;touch-action:pan-y}
.ad-grid{stroke:var(--ad-ln);stroke-width:1;stroke-dasharray:3 4}
.ad-grid0{stroke:var(--ad-ln-2);stroke-dasharray:none}
.ad-ax{fill:var(--ad-mu);font-size:11px;font-variant-numeric:tabular-nums}
.ad-curl{stroke:var(--ad-ln-2);stroke-width:1;stroke-dasharray:3 3}
.ad-bar-r{transition:opacity .15s,filter .15s;opacity:.88}
.ad-bar-r.hot{opacity:1;filter:brightness(1.1)}
.ad-bar-now{opacity:1}
.ad-tip{position:absolute;z-index:3;pointer-events:none;display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:10px;background:var(--ad-fg);color:var(--ad-bg);font-size:12px;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.ad-tip b{font-weight:650}.ad-tip span{opacity:.85}
.ad-tip[hidden]{display:none}
.ad-anim .ad-line{stroke-dasharray:1;stroke-dashoffset:1;animation:ad-draw 1.1s .1s cubic-bezier(.4,.1,.2,1) forwards}
.ad-anim .ad-area{animation:ad-fade .9s .35s both}
.ad-anim .ad-bar-r{transform-box:fill-box;transform-origin:bottom;animation:ad-grow .6s calc(var(--i,0)*28ms) cubic-bezier(.2,.8,.2,1) both}
.ad-spark .ad-line{stroke-dasharray:200;stroke-dashoffset:200;animation:ad-draw2 1.2s .2s ease forwards}
.ad-donuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.ad-donuts>div{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.ad-donut{max-width:100%;height:auto}
.ad-dn-bg{stroke:var(--ad-sf2)}
.ad-dn-s{animation:ad-dn .9s calc(var(--i,0)*120ms + .1s) cubic-bezier(.3,.7,.2,1) both}
.ad-dn-n{fill:var(--ad-fg);font-size:23px;font-weight:700;letter-spacing:-.03em}
.ad-dn-c{fill:var(--ad-mu);font-size:11px}
.ad-leg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;width:100%;font-size:12.5px}
.ad-leg li{display:flex;align-items:center;gap:8px}
.ad-leg i{width:9px;height:9px;border-radius:3px;flex:none}
.ad-leg span{flex:1;color:var(--ad-mu);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-leg b{font-variant-numeric:tabular-nums}
.ad-leg-b{margin-top:12px}
.ad-meter{display:block;height:6px;border-radius:99px;background:var(--ad-sf2);overflow:hidden;min-width:40px}
.ad-meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--ad-c1),var(--ad-c5));animation:ad-w .8s cubic-bezier(.3,.7,.2,1) both;transform-origin:left}
.ad-stack{display:flex;height:12px;border-radius:99px;overflow:hidden;gap:3px}
.ad-stack i{display:block;min-width:4px;border-radius:99px;animation:ad-w .9s cubic-bezier(.3,.7,.2,1) both;transform-origin:left}
.ad-tables{margin-top:16px;border-top:1px solid var(--ad-ln);padding-top:12px}
.ad-tables h4{font-size:12px;color:var(--ad-mu);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.ad-tb{display:grid;grid-template-columns:minmax(70px,1fr) minmax(40px,1.4fr) auto;gap:10px;align-items:center;font-size:12.5px;padding:3px 0}
.ad-tb span{color:var(--ad-mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-tb b{font-variant-numeric:tabular-nums;font-weight:600}

/* classements, flux, listes */
.ad-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ad-rank a,.ad-ra-r{display:flex;align-items:center;gap:11px;padding:8px 8px;border-radius:11px;color:inherit;text-decoration:none;transition:background .15s}
.ad-rank a:hover{background:var(--ad-sf2)}
.ad-rk{width:20px;text-align:center;color:var(--ad-mu);font-weight:650;font-size:12px;flex:none}
.ad-rn{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.ad-rn b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.ad-rv{flex:none;font-variant-numeric:tabular-nums;color:var(--ad-mu);font-size:12.5px;font-weight:560}
.ad-rank-s .ad-rn{flex:1}
.ad-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ad-feed li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--ad-ln)}
.ad-feed li:last-child{border-bottom:0}
.ad-feed li>div{flex:1;min-width:0}.ad-feed b,.ad-feed small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-feed small{color:var(--ad-mu);font-size:12.5px}.ad-feed b{font-weight:600}
.ad-feed-ev li{gap:11px}
.ad-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ad-ln-2);flex:none;margin-right:2px}
.ad-dot-ok{background:var(--ad-ok)}.ad-dot-bad{background:var(--ad-er)}.ad-dot-ac{background:var(--ad-ac)}.ad-dot-warn{background:var(--ad-c3)}
.ad-feed-ev .ad-dot{margin-right:0}
.ad-dl{margin:0;display:flex;flex-direction:column}
.ad-dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--ad-ln)}
.ad-dl>div:last-child{border-bottom:0}
.ad-dl dt{color:var(--ad-mu)}.ad-dl dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.ad-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ad-ok);padding:3px 10px;border-radius:99px;background:var(--ad-ok-s)}
.ad-live i{width:7px;height:7px;border-radius:50%;background:var(--ad-ok);animation:ad-pulse 2s infinite}
.ad-seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--ad-sf2);border:1px solid var(--ad-ln);gap:2px}
.ad-seg button{border:0;background:transparent;padding:4px 10px;border-radius:8px;color:var(--ad-mu);font-size:12.5px;font-weight:600;cursor:pointer}
.ad-seg button.on{background:var(--ad-sf);color:var(--ad-fg);box-shadow:0 1px 3px rgba(15,23,42,.12)}

/* pastilles, avatars */
.ad-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:620;white-space:nowrap;background:var(--ad-sf2);color:var(--ad-mu);border:1px solid var(--ad-ln)}
.ad-p-ok{background:var(--ad-ok-s);color:var(--ad-ok);border-color:transparent}
.ad-p-bad{background:var(--ad-er-s);color:var(--ad-er);border-color:transparent}
.ad-p-ac{background:var(--ad-ac-s);color:var(--ad-ac);border-color:transparent}
.ad-av{--h:230;flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:hsl(var(--h) 55% 32%);background:hsl(var(--h) 80% 90%);border:1px solid hsl(var(--h) 60% 80%)}
.ad-av-lg{width:56px;height:56px;font-size:22px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ad-av{color:hsl(var(--h) 85% 82%);background:hsl(var(--h) 40% 22%);border-color:hsl(var(--h) 40% 32%)}}
:root[data-theme="dark"] .ad-av{color:hsl(var(--h) 85% 82%);background:hsl(var(--h) 40% 22%);border-color:hsl(var(--h) 40% 32%)}

/* barre d'outils + filtres */
.ad-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ad-search{position:relative;flex:1 1 280px;max-width:460px}
.ad-search .ad-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ad-mu);width:16px;height:16px;pointer-events:none}
.ad-search .ad-in{padding-left:36px;min-height:40px}
.ad-tb-r{display:flex;gap:8px;flex-wrap:wrap}
.ad-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ad-filters .ad-in{width:auto;min-height:34px;padding-top:4px;padding-bottom:4px}
.ad-chip{border:1px solid var(--ad-ln-2);background:var(--ad-sf);border-radius:99px;min-height:34px;padding:0 13px;font-weight:560;cursor:pointer;color:var(--ad-mu);transition:all .15s}
.ad-chip:hover{border-color:var(--ad-ac);color:var(--ad-fg)}
.ad-chip.on{background:var(--ad-ac-s);border-color:var(--ad-ac);color:var(--ad-ac)}
.ad-bulk{position:sticky;top:0;z-index:5;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;border-radius:12px;background:var(--ad-fg);color:var(--ad-bg);box-shadow:var(--ad-sh2);animation:ad-in .25s both}
.ad-bulk[hidden]{display:none}
.ad-bulk .ad-btn{min-height:32px;background:color-mix(in srgb,var(--ad-bg) 14%,transparent);border-color:transparent;color:var(--ad-bg)}
.ad-bulk .ad-btn:hover:not(:disabled){background:color-mix(in srgb,var(--ad-bg) 26%,transparent);border-color:transparent}
.ad-bulk .ad-btn-l{background:transparent;opacity:.8}
.ad-bulk-r{display:inline-flex;gap:6px;align-items:center;margin-left:auto}
.ad-bulk .ad-in{width:auto;min-height:32px;padding-top:2px;padding-bottom:2px;background-color:color-mix(in srgb,var(--ad-bg) 14%,transparent);border-color:transparent;color:var(--ad-bg)}
.ad-bulk .ad-in option{color:#111}

/* tableau */
.ad-ut{margin-top:4px}
.ad-tw{overflow:auto;border:1px solid var(--ad-ln);border-radius:var(--ad-r);background:var(--ad-sf);box-shadow:var(--ad-sh)}
.ad-card .ad-tw{border:0;box-shadow:none;border-radius:0}
.ad-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.ad-tbl th{position:sticky;top:0;z-index:2;background:var(--ad-sf2);text-align:left;font-size:12px;font-weight:620;color:var(--ad-mu);padding:0;white-space:nowrap;border-bottom:1px solid var(--ad-ln)}
.ad-tbl-s th{padding:9px 12px;text-transform:none}
.ad-tbl td{padding:10px 12px;border-bottom:1px solid var(--ad-ln);vertical-align:middle;white-space:nowrap}
.ad-tbl-s td{white-space:normal}
.ad-tbl tbody tr:last-child td{border-bottom:0}
.ad-ut .ad-tbl tbody tr{cursor:pointer;transition:background .12s}
.ad-ut .ad-tbl tbody tr:hover{background:var(--ad-sf2)}
.ad-ut .ad-tbl tbody tr.sel{background:var(--ad-ac-s)}
.ad-ut .ad-tbl tbody tr:focus-visible{outline:2px solid var(--ad-ac);outline-offset:-2px}
.ad-sort{display:flex;align-items:center;gap:5px;width:100%;padding:10px 12px;border:0;background:transparent;color:inherit;font-weight:inherit;cursor:pointer;text-align:left;white-space:nowrap}
.ad-num .ad-sort{justify-content:flex-end}
.ad-sort:hover{color:var(--ad-fg)}
.ad-sort-i{width:13px;height:13px;opacity:0;transition:opacity .15s,transform .2s}
.ad-sort:hover .ad-sort-i{opacity:.4}
.ad-sorted{color:var(--ad-ac)}.ad-sorted .ad-sort-i{opacity:1}
.ad-num{text-align:right;font-variant-numeric:tabular-nums}
.ad-th-c{width:44px;padding:0 0 0 14px!important}
.ad-th-x{width:34px;padding:0 12px 0 0!important;color:var(--ad-mu)}
.ad-go{width:15px;height:15px;opacity:.4}
.ad-tbl input[type=checkbox],.ad-uk-h input{width:16px;height:16px;accent-color:var(--ad-ac);cursor:pointer}
.ad-uc{display:flex;align-items:center;gap:10px;position:relative}
.ad-uc-t{display:flex;gap:7px;align-items:center;min-width:0}.ad-uc-t b{font-weight:600}
.ad-online{width:9px;height:9px;border-radius:50%;background:var(--ad-ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ad-ok) 25%,transparent);flex:none}
.ad-tbl td.ad-off{color:var(--ad-mu)}
.ad-tbl td.ad-off .ad-av{filter:grayscale(.8);opacity:.7}
.ad-rts{display:flex;gap:5px;flex-wrap:wrap}
.ad-rt{display:inline-flex;align-items:center;gap:3px;padding:1px 8px 1px 5px;border-radius:99px;font-size:12px;font-weight:600;background:var(--ad-er-s);color:var(--ad-er)}
.ad-rt .ad-ic{width:11px;height:11px;stroke-width:3}
.ad-ra{text-align:right;white-space:nowrap!important}
.ad-nw{white-space:nowrap!important;color:var(--ad-mu)}
.ad-mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;color:var(--ad-mu)}
.ad-code-s{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ad-mu);font-size:11.5px;margin-top:1px}
.ad-tbl td b{font-weight:600}
.ad-tbl td small{display:block}
.ad-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 4px 0}
.ad-pg-i{color:var(--ad-mu);font-size:13px}
.ad-pg-r{display:flex;align-items:center;gap:8px}
.ad-pg-s{display:flex;align-items:center;gap:8px;color:var(--ad-mu);font-size:13px}
.ad-pg-s .ad-in{width:auto;min-height:34px;padding-top:3px;padding-bottom:3px}
.ad-pg-n{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:var(--ad-mu)}
.ad-pager .ad-btn{padding:0 9px}
.ad-ucards{display:none}
.ad-pop{position:fixed;z-index:100010;width:250px;max-height:70vh;overflow:auto;padding:12px;border-radius:14px;background:var(--ad-sf);border:1px solid var(--ad-ln);box-shadow:var(--ad-sh2);animation:ad-pop .15s both}
.ad-pop h4{font-size:12px;color:var(--ad-mu);text-transform:uppercase;letter-spacing:.06em;margin:0 4px 8px}
.ad-pop-i{display:flex;align-items:center;gap:10px;padding:6px 6px;border-radius:8px;cursor:pointer}
.ad-pop-i:hover{background:var(--ad-sf2)}.ad-pop-i input{width:16px;height:16px;accent-color:var(--ad-ac)}
.ad-pop .ad-btn{width:100%;margin-top:8px}

/* panneau latéral */
.ad-bd{position:absolute;inset:0;z-index:20;background:rgba(10,14,26,.42);backdrop-filter:blur(2px);animation:ad-fade .2s both}
.ad-dr{position:absolute;z-index:21;top:0;right:0;bottom:0;width:min(500px,100%);display:flex;flex-direction:column;background:var(--ad-sf);border-left:1px solid var(--ad-ln);box-shadow:var(--ad-sh2);overflow:auto;animation:ad-slide .28s cubic-bezier(.2,.8,.2,1) both}
.ad-dr-h{position:sticky;top:0;z-index:2;display:flex;gap:14px;align-items:flex-start;padding:20px 20px 14px;background:var(--ad-sf);border-bottom:1px solid var(--ad-ln)}
.ad-dr-id{flex:1;min-width:0}
.ad-dr-id h2{font-size:16px;overflow-wrap:anywhere}
.ad-dr-id p{color:var(--ad-mu);font-size:13px}
.ad-dr-b{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.ad-dr-x{padding:0;width:36px;flex:none}
.ad-dr-c{padding:6px 20px 28px;display:flex;flex-direction:column}
.ad-dr-s{padding:18px 0 4px;border-top:1px solid var(--ad-ln);margin-top:16px}
.ad-dr-c>.ad-stats+.ad-dr-s{margin-top:16px}
.ad-dr-s h3{font-size:13px;color:var(--ad-mu);text-transform:uppercase;letter-spacing:.06em;font-weight:650;margin-bottom:12px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ad-dr-s h3 small{text-transform:none;letter-spacing:0;font-weight:500;font-size:12px}
.ad-stats{margin:14px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ad-st{padding:10px 12px;border-radius:12px;background:var(--ad-sf2);border:1px solid var(--ad-ln)}
.ad-st dt{font-size:12px;color:var(--ad-mu)}.ad-st dd{margin:2px 0 0;font-weight:650;font-size:15px;font-variant-numeric:tabular-nums}
.ad-rl{display:flex;flex-direction:column}
.ad-rli{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--ad-ln)}
.ad-rli:last-child{border-bottom:0}
.ad-rli b{display:block;font-weight:600}.ad-rli small{color:var(--ad-mu);font-size:12.5px}
.ad-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ad-acts .ad-btn{justify-content:flex-start;white-space:normal;text-align:left;padding-top:6px;padding-bottom:6px}
.ad-ses{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ad-ses li{display:flex;gap:12px;align-items:center;padding:8px 0}
.ad-ses li>div{flex:1;min-width:0}.ad-ses b,.ad-ses small{display:block}.ad-ses small{color:var(--ad-mu);font-size:12.5px;overflow-wrap:anywhere}
.ad-ses-i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--ad-sf2);color:var(--ad-mu);flex:none}
.ad-skel-l{height:56px;border-radius:12px;background:linear-gradient(90deg,var(--ad-sf2),var(--ad-ln),var(--ad-sf2));background-size:200% 100%;animation:ad-sh 1.3s infinite linear}

/* modales + toasts */
.ad-modal-bd{position:absolute;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(10,14,26,.5);backdrop-filter:blur(3px);animation:ad-fade .2s both}
.ad-modal{width:min(480px,100%);max-height:100%;overflow:auto;padding:22px;border-radius:18px;background:var(--ad-sf);border:1px solid var(--ad-ln);box-shadow:var(--ad-sh2);animation:ad-pop .2s both}
.ad-modal h3{font-size:18px;margin-bottom:14px}
.ad-modal-a{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.ad-pwbox{display:block;margin:10px 0;padding:14px;border-radius:12px;background:var(--ad-sf2);border:1px dashed var(--ad-ln-2);font:600 20px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;text-align:center;word-break:break-all;user-select:all}
.ad-toasts{position:absolute;z-index:60;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:calc(100% - 24px)}
.ad-toast{display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:12px;background:var(--ad-fg);color:var(--ad-bg);box-shadow:var(--ad-sh2);font-weight:560;max-width:min(520px,100%);animation:ad-toast .3s cubic-bezier(.2,.8,.2,1) both;transition:opacity .3s,transform .3s}
.ad-toast.out{opacity:0;transform:translateY(8px)}
.ad-toast .ad-ic{color:#4fd1a1;width:17px;height:17px;stroke-width:2.6}.ad-toast-bad .ad-ic{color:#ff7a8e}

/* inscriptions : choix du mode, invitations */
.ad-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ad-mode{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border:1.5px solid var(--ad-ln);border-radius:14px;background:var(--ad-sf);text-align:left;cursor:pointer;transition:all .15s}
.ad-mode:hover{border-color:var(--ad-ln-2);background:var(--ad-sf2)}
.ad-mode.on{border-color:var(--ad-ac);background:var(--ad-ac-s);box-shadow:0 0 0 3px color-mix(in srgb,var(--ad-ac) 16%,transparent)}
.ad-mode small{color:var(--ad-mu);font-size:12.5px;line-height:1.4}
.ad-mode-i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--ad-sf2);color:var(--ad-mu);margin-bottom:6px}
.ad-mode.on .ad-mode-i{background:var(--ad-ac);color:var(--ad-ac-fg)}
.ad-mode-c{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;display:none;place-items:center;background:var(--ad-ac);color:var(--ad-ac-fg)}
.ad-mode.on .ad-mode-c{display:grid}.ad-mode-c .ad-ic{width:12px;height:12px;stroke-width:3.2}
.ad-code{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0;padding:12px 14px;border-radius:12px;background:var(--ad-ok-s);color:var(--ad-ok)}
.ad-code[hidden]{display:none}
.ad-code code{font:700 15px ui-monospace,Menlo,Consolas,monospace;user-select:all;word-break:break-all;color:var(--ad-fg);background:var(--ad-sf);padding:4px 10px;border-radius:8px;border:1px solid var(--ad-ln)}
.ad-card .ad-btns{margin-top:10px}

/* états */
.ad-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 16px;color:var(--ad-mu);text-align:center}
.ad-empty .ad-ic{width:30px;height:30px;opacity:.5}
.ad-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:70px 0;color:var(--ad-mu)}
.ad-spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--ad-ln-2);border-top-color:var(--ad-ac);animation:ad-rot .7s linear infinite}
.ad-modwrap.hy-pane{position:static;inset:auto;z-index:auto;overflow:visible;background:transparent;padding:0;font:inherit;color:var(--ad-fg)}
.ad-modwrap .hy-wrap{max-width:none;padding:0}

@keyframes ad-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ad-fade{from{opacity:0}to{opacity:1}}
@keyframes ad-slide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes ad-pop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes ad-toast{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes ad-draw{to{stroke-dashoffset:0}}
@keyframes ad-draw2{to{stroke-dashoffset:0}}
@keyframes ad-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes ad-w{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ad-dn{from{stroke-dasharray:0 100;opacity:.3}}
@keyframes ad-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ad-ok) 55%,transparent)}60%{box-shadow:0 0 0 6px transparent}}
@keyframes ad-rot{to{transform:rotate(360deg)}}
@keyframes ad-sh{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){
  .ad-root *,.ad-root *::before,.ad-root *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .ad-anim .ad-line,.ad-spark .ad-line{stroke-dasharray:none;stroke-dashoffset:0}
}

/* écrans moyens */
@media (max-width:1180px){
  .ad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-r3{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-r3>:last-child{grid-column:1/-1}
  .ad-modes{grid-template-columns:1fr}
}
@media (max-width:980px){
  .ad-r21,.ad-r2,.ad-r3{grid-template-columns:minmax(0,1fr)}.ad-r3>:last-child{grid-column:auto}
}
/* mobile : onglets défilants en haut, cartes à la place du tableau */
@media (max-width:820px){
  .ad-root{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"head" "side" "body";padding-top:env(safe-area-inset-top,0)}
  .ad-head{padding:12px 16px 6px;gap:10px}
  .ad-head h1{font-size:20px}
  .ad-sub{display:none}
  .ad-hide-s{display:none}
  .ad-close span{display:none}.ad-close{padding:0;width:38px;min-width:38px}
  .ad-side{flex-direction:row;padding:0 16px 8px;border:0;background:transparent;overflow:visible;gap:0}
  .ad-brand,.ad-me{display:none}
  .ad-nav{flex-direction:row;overflow-x:auto;gap:6px;padding:2px 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .ad-nav::-webkit-scrollbar{display:none}
  .ad-nav-i{flex:none;width:auto;padding:8px 14px;border:1px solid var(--ad-ln);background:var(--ad-sf);border-radius:99px;scroll-snap-align:center;white-space:nowrap}
  .ad-nav-i.on{background:var(--ad-ac);color:var(--ad-ac-fg);border-color:var(--ad-ac)}
  .ad-nav-i.on::before{display:none}
  .ad-nav-i .ad-ic{width:16px;height:16px}
  .ad-body{padding:6px 16px 40px}
  .ad-view{gap:12px}
  .ad-card{padding:15px 15px}
  .ad-kpis{gap:10px}
  .ad-kpi{padding:13px 13px 11px}
  .ad-kpi-v{font-size:23px}
  .ad-kpi-t{font-size:12px}.ad-kpi-ic{display:none}
  .ad-kpi-s{font-size:12px}
  .ad-spark{display:none}
  .ad-kpi-f{min-height:0}
  .ad-trl{display:none}
  .ad-grid2,.ad-grid3{grid-template-columns:1fr}
  .ad-tw:not(.ad-keep){}
  .ad-ut .ad-tw{display:none}
  .ad-ucards{display:flex;flex-direction:column;gap:10px}
  .ad-ucard{padding:13px;border-radius:14px;background:var(--ad-sf);border:1px solid var(--ad-ln);box-shadow:var(--ad-sh);cursor:pointer}
  .ad-ucard.sel{border-color:var(--ad-ac);background:var(--ad-ac-s)}
  .ad-ucard.ad-off .ad-av{filter:grayscale(.8);opacity:.7}
  .ad-uk-h{display:flex;align-items:center;gap:10px}
  .ad-uk-n{flex:1;min-width:0}.ad-uk-n b,.ad-uk-n small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-uk-n small{color:var(--ad-mu);font-size:12.5px}
  .ad-uk-p{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0}
  .ad-uk-d{margin:10px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:10px;border-top:1px solid var(--ad-ln)}
  .ad-uk-d dt{font-size:11px;color:var(--ad-mu)}.ad-uk-d dd{margin:0;font-weight:620;font-size:12.5px}
  .ad-toolbar{flex-direction:column;align-items:stretch}.ad-search{max-width:none;flex:none}
  .ad-tb-r{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ad-only-m{display:inline-flex!important}
  .ad-filters{display:none;grid-template-columns:1fr 1fr;gap:8px}.ad-filters.open{display:grid}.ad-filters .ad-in{width:100%}
  .ad-filters .ad-chip,.ad-filters .ad-btn-l{width:100%}
  .ad-bulk{padding:10px}.ad-bulk-r{margin-left:0;width:100%}
  .ad-pager{justify-content:center}
  .ad-dr{width:100%;border-left:0}
  .ad-acts{grid-template-columns:1fr}
  .ad-act{flex-wrap:wrap}.ad-act .ad-btn{width:100%}
  .ad-donuts{gap:4px}
  .ad-modes{grid-template-columns:1fr}
  .ad-toasts{bottom:14px}
  .ad-tbl-s td,.ad-tbl-s th{padding:8px 8px}
  .ad-ch{flex-wrap:wrap}
}
@media (max-width:420px){
  .ad-uk-d{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-stats{grid-template-columns:1fr 1fr}
}

/* tableau : colonnes e-mail et sélection figées au défilement horizontal */
.ad-tbl{font-size:13px}
.ad-tbl td{padding:9px 10px}
.ad-sort{padding:10px 10px}
.ad-tbl .ad-stk0,.ad-tbl .ad-stk1{position:sticky;background:var(--ad-sf);z-index:1}
.ad-tbl th.ad-stk0,.ad-tbl th.ad-stk1{background:var(--ad-sf2);z-index:3}
.ad-tbl .ad-stk0{left:0}
.ad-tbl .ad-stk1{left:44px;min-width:236px;max-width:236px;box-shadow:1px 0 0 var(--ad-ln)}
.ad-ut .ad-tbl tbody tr:hover .ad-stk0,.ad-ut .ad-tbl tbody tr:hover .ad-stk1{background:var(--ad-sf2)}
.ad-ut .ad-tbl tbody tr.sel .ad-stk0,.ad-ut .ad-tbl tbody tr.sel .ad-stk1{background:var(--ad-ac-s)}
.ad-uc{max-width:100%}
.ad-uc-t{flex:1;min-width:0}
.ad-uc-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-rts{flex-wrap:nowrap}
.ad-av{width:28px;height:28px;font-size:12px}.ad-av-lg{width:56px;height:56px;font-size:22px}
.ad-tbl td{padding:8px 8px}
.ad-sort{padding:10px 8px}
.ad-tbl .ad-stk1{min-width:214px;max-width:214px}
.ad-tbl .ad-pill{padding:1px 8px;font-size:11.5px}
.ad-th-x{width:26px}
.ad-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.ad-st{padding:9px 11px}.ad-st dd{font-size:14px}
@media (max-width:420px){.ad-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ad-act{flex-direction:column;align-items:flex-start;gap:12px}
.ad-act>div{flex:none}
.ad-act .ad-btn{margin-top:auto}
.ad-tb-r .ad-in{width:auto;min-height:40px}
.ad-tbl .ad-dot{margin-right:9px}
.ad-card>.ad-btns:not(:first-child),.ad-card .ad-grid3+.ad-btn{margin-top:12px}
.ad-grid3+.ad-btn{margin-top:14px}
.ad-col .ad-card:last-child{flex:1}
.ad-col>.ad-card{min-width:0}

.ad-only-m{display:none}
@media (max-width:820px){
  .ad-mode{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:center;padding:12px}
  .ad-mode-i{grid-row:1/3;margin:0}
  .ad-mode small{grid-column:2}
  .ad-mode-c{top:10px;right:10px}
}
.ad-btns .ad-btn{white-space:normal;text-align:left;max-width:100%;height:auto;padding-top:7px;padding-bottom:7px}
.ad-mp{display:flex;flex-direction:column;gap:6px}.ad-mp select{width:100%}

.ad-sub{margin:14px 0 4px;font-size:13px;font-weight:700}
.ad-paid{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.ad-prow{border:1px solid var(--ad-ln-2);border-radius:12px;background:var(--ad-sf2);padding:10px 12px}
.ad-prow.on{border-color:var(--ad-ac);box-shadow:0 0 0 1px var(--ad-ac) inset}
.ad-prow-h{display:flex;align-items:center;gap:10px;cursor:pointer;flex-wrap:wrap}
.ad-prow-h input{width:20px;height:20px;accent-color:var(--ad-ac);flex:none}
.ad-prow-k{font-size:12px}
.ad-prow-b{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.ad-prow-loc{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ad-det{font-size:12.5px;color:var(--ad-mu)}.ad-det.ok{color:var(--ad-ok,#15803d)}.ad-det.bad{color:var(--ad-bad,#b91c1c)}
