/* Layout concept: a demo control bar over three operating spaces (FOSCEF back-office, adherent phone app, partner desk + scanner), all reading one live verification engine. */
:root{
  --navy:#0B2A5B; --navy-2:#123C77; --cyan:#16B8E0; --cyan-soft:#E8F6FA;
  --green:#18794E; --green-2:#18794E; --green-soft:#ECFDF3;
  --ok:#18794E; --ok-soft:#ECFDF3; --warn:#B54708; --warn-soft:#FFFAEB; --bad:#B42318; --bad-soft:#FEF3F2; --info:#087EA4; --info-soft:#EFF8FE; --violet:#6B55C8; --violet-soft:#ECE8FA;
  --bg:#F5F7FB; --surface:#FFFFFF; --surface-2:#F5F8FB; --surface-3:#EAF0F6; --line:#E5EAF2; --line-2:#C9D4E1;
  --fg:#0F1B2D; --muted:#475467; --faint:#667085;
  --side:#0B2A5B; --side-fg:#DAE5F5; --side-act:#174679; --bar:#081F42; --accent:#087EA4; --action:#087EA4;
  --shadow:0 1px 2px rgba(11,46,95,.06),0 4px 14px rgba(11,46,95,.06);
  --shadow-lg:0 10px 40px rgba(8,31,66,.22);
  --f-display:-apple-system,BlinkMacSystemFont,"Inter","IBM Plex Sans Arabic",system-ui,sans-serif;
  --f-body:-apple-system,BlinkMacSystemFont,"Inter","IBM Plex Sans Arabic",system-ui,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r:10px; --r-sm:7px; --r-lg:16px;
  color-scheme:light;
}

*{box-sizing:border-box}
/* Iconify — hérite la couleur / alignement des anciens SVG .ic */
iconify-icon.ic{display:inline-block;vertical-align:-.2em;color:inherit;flex:none;line-height:1}
a .ic,button .ic,.btn .ic,.nav .ic,.nf-ctrl .ic,.nf-seg-opt .ic{color:inherit}
svg{flex-shrink:0;vertical-align:-3px}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:24px;font-weight:800} h2{font-size:18px;font-weight:750} h3{font-size:16px;font-weight:700} h4{font-size:14.5px;font-weight:700}
p{margin:0}
a{color:var(--cyan)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .faint{color:var(--faint)} .small{font-size:13.5px} .xs{font-size:12.5px}
.upper{text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}
[dir=rtl] .upper{letter-spacing:0}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* ---------- Demo bar ---------- */
.demobar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--bar);color:#E6EEF8;display:flex;align-items:center;gap:12px;padding:8px 16px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.06)}
.demobar .brand{display:flex;align-items:center;gap:10px;min-width:0}
.demobar .brand img{height:30px;width:auto}
.demobar .brand .tag{font-size:12.5px;color:#9FB4D3;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:2px 8px;white-space:nowrap}
.seg{display:flex;background:rgba(255,255,255,.07);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;color:#C3D2E8;padding:6px 12px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14.5px;display:flex;gap:6px;align-items:center;white-space:nowrap}
.seg button.on{background:#fff;color:#0B2E5F}
.seg button .dot{width:7px;height:7px;border-radius:50%}
.demobar .grow{flex:1}
.demobar .tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dbtn{border:1px solid rgba(255,255,255,.18);background:transparent;color:#DCE6F4;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;position:relative;white-space:nowrap}
.dbtn:hover{background:rgba(255,255,255,.08)}
.dbtn .badge{position:absolute;top:-6px;inset-inline-end:-6px;background:#E5484D;color:#fff;border-radius:10px;font-size:12px;padding:1px 5px;font-weight:700}
@media (max-width:820px){.demobar .brand .tag{display:none}.dbtn .lbl{display:none}.seg button{padding:6px 9px}.seg button .lbl2{display:none}}

/* ---------- App shell (admin / partner) ---------- */
.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);color:var(--side-fg);padding:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;max-height:100vh;overflow:hidden}
.side .logo{display:flex;align-items:center;gap:12px;padding:18px 18px 16px;border-bottom:1px solid rgba(255,255,255,.08);flex:none}
.side .logo>img{height:42px;width:auto;flex:none}
.side .logo-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.side .logo-txt strong{color:#fff;font-size:16px;font-weight:750;letter-spacing:-.02em;line-height:1.2}
.side .logo-txt span{font-size:12.5px;color:#8CA4C6;font-weight:500}
.side-nav{flex:1;min-height:0;overflow:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:2px;scrollbar-width:none;-ms-overflow-style:none}
.side-nav::-webkit-scrollbar{width:0;height:0;display:none}
.side .sect{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#6F8AB0;font-weight:700;padding:14px 12px 6px}
.side .sect:first-child{padding-top:6px}
.nav{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;cursor:pointer;border:0;background:transparent;color:inherit;text-align:start;width:100%;font-size:15px;font-weight:500;text-decoration:none;line-height:1.25}
.nav:hover{background:rgba(255,255,255,.07);color:#fff}
.nav.on{background:#1264D6;color:#fff;font-weight:650;box-shadow:0 6px 16px rgba(18,100,214,.35)}
[dir=rtl] .nav.on{box-shadow:0 6px 16px rgba(18,100,214,.35)}
.nav svg,.nav iconify-icon.ic{width:18px;height:18px;flex:none;opacity:.92}
.nav>span:not(.cnt){flex:1;min-width:0}
.nav .cnt{margin-inline-start:auto;background:#E5484D;color:#fff;border-radius:999px;font-size:12px;padding:2px 7px;font-weight:700;line-height:1.2;flex:none}
.nav .cnt.soft{background:rgba(255,255,255,.16)}
.nav .cnt.lock{background:transparent;padding:0;opacity:.8}
.nav.locked{opacity:.42;cursor:default}
.side .foot{flex:none;margin-top:auto;padding:14px 14px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.side .foot-brand{display:flex;flex-direction:column;gap:8px;min-width:0}
.side .foot img{height:40px;width:auto;background:#fff;border-radius:8px;padding:4px 8px;align-self:flex-start}
.side .hostnote{font-size:12px;color:#8CA4C6;line-height:1.35;max-width:16ch}
.main{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.topline{display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20;flex-wrap:wrap}
.topline .search{flex:1;min-width:180px;max-width:560px;position:relative}
.topline .search input{width:100%;padding:10px 72px 10px 36px;border:1px solid var(--line);border-radius:12px;background:#F5F7FB}
.topline .search kbd{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);font-family:var(--f-body);font-size:11px;font-weight:700;color:#64748B;background:#fff;border:1px solid #E5EAF2;border-radius:6px;padding:2px 6px}
.year-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:10px;border:1px solid #E5EAF2;background:#fff;color:#172B4D;font-size:13px;font-weight:700}
[dir=rtl] .topline .search input{padding:10px 36px 10px 14px}
.topline .search svg{position:absolute;top:50%;inset-inline-start:12px;transform:translateY(-50%);width:16px;color:var(--faint)}
.who{display:flex;align-items:center;gap:8px;margin-inline-start:auto;min-width:0}
.who-name{min-width:0;max-width:168px;overflow:hidden}
.who-name b,.who-name .muted{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:860px){.who-name{display:none}}
@media (max-width:620px){.topline{flex-wrap:nowrap}.topline .search{min-width:0}}
.who select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:5px 8px;font-size:14px;max-width:240px}
.content{padding:22px 24px 48px;display:flex;flex-direction:column;gap:18px;min-width:0;flex:1}
.icon-btn.menu-btn{display:inline-grid;flex:none}
@media (max-width:960px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:280px;z-index:60;transform:translateX(-105%);transition:transform .2s;height:100vh}
  [dir=rtl] .side{inset:0 0 0 auto;transform:translateX(105%)}
  .side.open{transform:none!important;box-shadow:var(--shadow-lg)}
  .content{padding:16px 16px 40px}
  .topline{padding:10px 16px}
}
.scrim{position:fixed;inset:0;background:rgba(5,14,28,.45);z-index:55}

/* ---------- Page header ---------- */
.ph{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;justify-content:space-between}
.ph .t{display:flex;flex-direction:column;gap:3px;min-width:0}
.ph .acts{display:flex;gap:8px;flex-wrap:wrap}
.crumb{font-size:13.5px;color:var(--muted);display:flex;gap:6px;align-items:center}
.crumb button{border:0;background:none;color:var(--cyan);cursor:pointer;padding:0;font-size:13.5px}

/* ---------- Panels ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.panel>.hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel>.bd{padding:16px 18px}
.panel>.bd.flush{padding:0}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)} .g-1-2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.g-2-1,.g-1-2{grid-template-columns:1fr}}
@media (max-width:620px){.g2,.g3{grid-template-columns:1fr}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.col{display:flex;flex-direction:column;gap:10px;min-width:0}
.sp{flex:1}
.hr{height:1px;background:var(--line);margin:4px 0}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow)}
.kpi .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none}
.kpi .ic svg,.kpi iconify-icon.ic{width:19px;height:19px}
.kpi .v{font-family:var(--f-display);font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi .l{font-size:13.5px;color:var(--muted)}
.kpi .d{font-size:13px;margin-top:2px}
.t-ok{color:var(--ok)} .t-bad{color:var(--bad)} .t-warn{color:var(--warn)} .t-info{color:var(--info)}
.bg-ok{background:var(--ok-soft);color:var(--ok)} .bg-bad{background:var(--bad-soft);color:var(--bad)} .bg-warn{background:var(--warn-soft);color:var(--warn)} .bg-info{background:var(--info-soft);color:var(--info)} .bg-violet{background:var(--violet-soft);color:var(--violet)} .bg-neutral{background:var(--surface-3);color:var(--muted)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:8px 14px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);cursor:pointer;font-weight:600;font-size:14.5px;white-space:nowrap;text-decoration:none;transition:background .12s,border-color .12s}
.btn:hover{background:var(--surface-2)}
.btn svg{width:16px;height:16px}
.btn.pri{background:var(--cyan);border-color:var(--cyan);color:#fff}
.btn.pri:hover{filter:brightness(1.06)}
.btn.navy{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.ok{background:var(--green);border-color:var(--green);color:#fff}
.btn.bad{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.ghost-bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.btn.ghost-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:5px 10px;font-size:13.5px;border-radius:7px}
.btn.lg{padding:12px 18px;font-size:15.5px;border-radius:11px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.icon-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:32px;height:32px;display:inline-grid;place-items:center;cursor:pointer;color:var(--muted)}
.icon-btn svg,.icon-btn iconify-icon.ic{width:16px;height:16px}

/* Chips */
.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:650;padding:5px 10px;border-radius:999px;white-space:nowrap;line-height:1.3}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9;flex:none}
.chip.nodot::before{display:none}
.chip.bg-ok{background:#D1FAE5;color:#047857}
.chip.bg-bad{background:#FEE2E2;color:#B91C1C}
.chip.bg-warn{background:#FFEDD5;color:#C2410C}
.chip.bg-info{background:#DBEAFE;color:#1D4ED8}
.chip.bg-violet{background:#EDE9FE;color:#6D28D9}
.chip.bg-neutral{background:#F1F5F9;color:#64748B}

/* Forms */
.form{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.form .full{grid-column:1/-1}
@media (max-width:620px){.form{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label,.lab{font-size:13.5px;font-weight:600;color:var(--muted)}
.field label .req{color:var(--bad)}
.inp,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-2);border-radius:9px;padding:9px 11px;background:var(--surface);min-width:0}
.field textarea{min-height:76px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);outline:2px solid color-mix(in srgb,var(--cyan) 25%,transparent);outline-offset:0}
.field .hint{font-size:13px;color:var(--faint)}
.field.err input,.field.err select{border-color:var(--bad)}
.field .errt{font-size:13px;color:var(--bad)}
.radios{display:flex;gap:8px;flex-wrap:wrap}
.radios label{display:flex;gap:6px;align-items:center;border:1px solid var(--line-2);border-radius:9px;padding:7px 11px;cursor:pointer;font-size:14.5px;color:var(--fg);font-weight:500}
.radios label.on{border-color:var(--cyan);background:var(--cyan-soft)}
.check{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;cursor:pointer}
.check input{margin-top:3px;accent-color:var(--cyan);width:16px;height:16px;flex:none}

/* Stepper */
.stepper{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px}
.step{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:20px;font-size:13.5px;color:var(--muted);white-space:nowrap;border:1px solid transparent}
.step .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);font-weight:700;font-size:12.5px;color:var(--muted)}
.step.on{color:var(--fg);font-weight:600;border-color:var(--line)}
.step.on .n{background:var(--cyan);color:#fff}
.step.done .n{background:var(--ok);color:#fff}
.wizard-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding-top:6px}
.saved{font-size:13.5px;color:var(--ok);display:flex;align-items:center;gap:5px}

/* Tables — style moderne coloré */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px}
.t th{text-align:start;font-size:12.5px;color:#64748B;font-weight:700;padding:12px 14px;border-bottom:1px solid #E8EEF5;white-space:nowrap;background:#F8FAFC;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}
.t td{padding:13px 14px;border-bottom:1px solid #F1F5F9;vertical-align:middle;color:#0F172A}
.t tbody tr{transition:background .12s}
.t tbody tr:nth-child(even) td{background:#FAFBFC}
.t tbody tr:hover td{background:#EFF6FF}
.t tr:last-child td{border-bottom:0}
.t tr.click{cursor:pointer}
.t tr.click:hover td{background:#DBEAFE}
.t tr.hl td{background:#FEF2F2}
.t tr.hl:hover td{background:#FEE2E2}
.pcell{display:flex;align-items:center;gap:10px;min-width:180px}
.pcell .nm{font-weight:700}
.pcell .sub{font-size:13px;color:#94A3B8}
.av{width:36px;height:36px;border-radius:50%;overflow:hidden;flex:none;background:#E2E8F0;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 0 0 1px #E2E8F0}
.av img,.av svg{width:100%;height:100%;object-fit:cover}
.av.lg{width:96px;height:120px;border-radius:12px}
.av.md{width:52px;height:52px;border-radius:12px}
.empty{padding:40px 20px;text-align:center;color:#94A3B8;display:flex;flex-direction:column;align-items:center;gap:8px}
.empty svg{width:40px;height:40px;color:#CBD5E1}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters select,.filters input{border:1px solid #E2E8F0;border-radius:10px;padding:9px 12px;background:#F8FAFC;font-size:14.5px;min-width:0;transition:border-color .12s,box-shadow .12s}
.filters select:focus,.filters input:focus{outline:0;border-color:#93C5FD;box-shadow:0 0 0 3px rgba(59,130,246,.15);background:#fff}
.dt-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid #F1F5F9;background:linear-gradient(180deg,#fff,#F8FAFC)}
.dt-bar .filters{flex:1}
/* Export — barre segmentée (pas de menu flottant) */
.exp-bar{display:inline-flex;align-items:stretch;border:1px solid #E2E8F0;border-radius:11px;overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04);flex:none}
.exp-bar-lab{display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:650;color:#64748B;background:#F8FAFC;border-inline-end:1px solid #E2E8F0;white-space:nowrap}
.exp-bar-lab svg{color:#94A3B8}
.exp-bar-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;font-size:14px;font-weight:700;color:#0F172A;text-decoration:none;border-inline-end:1px solid #E2E8F0;background:#fff;transition:background .12s,color .12s;min-width:52px}
.exp-bar-btn:last-child{border-inline-end:0}
.exp-bar-btn:hover{background:#EFF6FF;color:#1D4ED8}
.exp-menu,.exp-trigger,.exp-drop{display:none!important}

/* Listes data modernes (partenaires, etc.) */
.dt-page{display:flex;flex-direction:column;gap:18px}
.dt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.dt-kicker{margin:0 0 4px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#94A3B8}
.dt-head h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.03em;color:#0F172A}
.dt-sub{margin:4px 0 0;font-size:15px;color:#64748B}
.dt-head-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;position:relative;z-index:45}
.dt-card{background:#fff;border:1px solid #E8EEF5;border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.05);overflow:visible}
.dt-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 18px;border-bottom:1px solid #F1F5F9;background:linear-gradient(180deg,#fff 0%,#F8FAFC 100%);border-radius:16px 16px 0 0}
.dt-search{position:relative;flex:1;min-width:200px;max-width:280px}
.dt-search svg{position:absolute;top:50%;inset-inline-start:12px;transform:translateY(-50%);color:#94A3B8;pointer-events:none}
.dt-search input{width:100%;padding:10px 12px 10px 38px;border:1px solid #E2E8F0;border-radius:11px;background:#fff;font-size:15px;font-weight:500}
.dt-filters select{padding:10px 12px;border:1px solid #E2E8F0;border-radius:11px;background:#fff;font-size:14.5px;font-weight:500;min-width:160px}
.dt-filters select:focus,.dt-search input:focus{outline:0;border-color:#93C5FD;box-shadow:0 0 0 3px rgba(59,130,246,.16)}
.dt-table-wrap{overflow-x:auto;border-radius:0 0 16px 16px}
.dt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px}
.dt-table th{text-align:start;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#94A3B8;padding:14px 16px;background:#F8FAFC;border-bottom:1px solid #E8EEF5;white-space:nowrap}
.dt-table td{padding:14px 16px;border-bottom:1px solid #F1F5F9;vertical-align:middle;color:#0F172A}
.dt-table tbody tr:last-child td{border-bottom:0}
.dt-table tbody tr{transition:background .12s}
.dt-table tbody tr:hover td{background:#F0F7FF}
.dt-person{display:flex;align-items:center;gap:12px;min-width:200px}
.dt-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}
.dt-person-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.dt-person-txt b{font-size:15px;font-weight:700;line-height:1.25}
.dt-person-txt em{font-style:normal;font-size:13.5px;color:#94A3B8}
.dt-cat{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:13.5px;font-weight:650;white-space:nowrap}
.dt-muted{font-size:14px;color:#64748B;max-width:220px}
.dt-stack{display:flex;flex-direction:column;gap:2px}
.dt-stack .mono{font-size:14px;font-weight:600}
.dt-stack em{font-style:normal;font-size:13px;color:#94A3B8}
.dt-metric{display:flex;flex-direction:column;gap:1px}
.dt-metric b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.dt-metric em{font-style:normal;font-size:13px;color:#94A3B8}
.dt-num{display:inline-flex;min-width:36px;justify-content:center;padding:4px 10px;border-radius:8px;background:#F1F5F9;font-weight:700;font-variant-numeric:tabular-nums;font-size:14.5px}
.ph .acts{position:relative;z-index:40}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;padding:0 8px;background:#fff}
.tab{border:0;background:none;padding:12px 14px;cursor:pointer;color:#64748B;font-weight:650;font-size:14.5px;border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}
.tab.on{color:#2563EB;border-color:#2563EB}
.tab .badge-mini{margin-inline-start:6px;background:#EFF6FF;color:#2563EB}
.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;color:#64748B;border-top:1px solid #F1F5F9;gap:10px;flex-wrap:wrap;background:#F8FAFC}

/* Key-value */
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 18px}
.kv div{display:flex;flex-direction:column;gap:2px;min-width:0}
.kv dt,.kv .k{font-size:13px;color:var(--muted)}
.kv dd,.kv .v{margin:0;font-weight:600;overflow-wrap:anywhere}

/* Timeline */
.tl{display:flex;flex-direction:column;gap:0;position:relative}
.tl .it{display:grid;grid-template-columns:auto 1fr;gap:12px;padding-bottom:14px;position:relative}
.tl .it::before{content:"";position:absolute;inset-inline-start:11px;top:24px;bottom:0;width:2px;background:var(--line)}
.tl .it:last-child::before{display:none}
.tl .b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none}
.tl .b svg{width:13px;height:13px}
.tl .x{font-size:14.5px}
.tl .x .w{font-size:13px;color:var(--muted)}

/* Alerts */
.alert{display:flex;gap:10px;padding:11px 14px;border-radius:11px;font-size:14.5px;align-items:flex-start}
.alert svg{width:18px;height:18px;flex:none;margin-top:1px}
.alert b{font-weight:700}

/* Progress bars */
.bar{height:8px;border-radius:5px;background:var(--surface-3);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:5px;background:var(--cyan)}

/* Modal / drawer / toast */
.modal-bg{position:fixed;inset:0;background:rgba(5,14,28,.55);z-index:80;display:grid;place-items:center;padding:16px;animation:fade .15s}
.modal{background:var(--surface);border-radius:18px;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}
.modal.wide{width:min(860px,100%)}
.modal .mh{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);gap:10px}
.modal .mb{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.modal .mf{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.drawer{position:fixed;top:0;bottom:0;inset-inline-end:0;width:min(440px,100%);background:var(--surface);z-index:90;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slidein .2s}
[dir=rtl] .drawer{animation:slideinr .2s}
.drawer .dh{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding-top:calc(16px + env(safe-area-inset-top,0px))}
.drawer .db{flex:1;overflow:auto;padding:14px 18px;display:flex;flex-direction:column;gap:12px}
@keyframes slidein{from{transform:translateX(30px);opacity:0}}
@keyframes slideinr{from{transform:translateX(-30px);opacity:0}}
@keyframes fade{from{opacity:0}}
.toasts{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));inset-inline-end:18px;z-index:120;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 36px)}
.toast{background:var(--fg);color:var(--bg);border-radius:11px;padding:11px 14px;font-size:14.5px;box-shadow:var(--shadow-lg);display:flex;gap:9px;align-items:flex-start;max-width:380px;animation:fade .2s}
.toast svg{width:17px;height:17px;flex:none;margin-top:1px}
.toast.ok svg{color:#4BD08E} .toast.bad svg{color:#FF8A8A}

/* Inbox */
.msg{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--surface-2)}
.msg .mh2{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);flex-wrap:wrap}
.msg .body{font-size:14.5px;white-space:pre-line}
.msg .code{font-family:var(--f-mono);font-size:20px;font-weight:600;letter-spacing:.2em;color:var(--fg)}
.msg.new{border-color:var(--cyan)}

/* Scenario drawer */
.scn{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.scn .sh{padding:12px 14px;display:flex;gap:10px;align-items:flex-start;cursor:pointer;background:var(--surface-2)}
.scn .sh .ix{width:26px;height:26px;border-radius:8px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13.5px;flex:none}
.scn .steps{display:flex;flex-direction:column}
.scn .st{display:flex;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--line);font-size:14.5px}
.scn .st .ck{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;flex:none}
.scn .st.done .ck{background:var(--ok);border-color:var(--ok);color:#fff}
.scn .st.done .ck svg{width:12px;height:12px}
.scn .st .tx{flex:1;min-width:0}
.scn .st.done .tx{color:var(--muted)}

/* ---------- Membership card (physical/digital) ---------- */
.mcard{--cw:340px;width:var(--cw);max-width:100%;aspect-ratio:85.6/54;border-radius:14px;position:relative;overflow:hidden;color:#fff;font-family:var(--f-body);box-shadow:0 8px 24px rgba(8,40,30,.25);background:linear-gradient(135deg,#0F6B3F 0%,#1C8A52 45%,#25A06A 70%,#1599CC 140%);container-type:inline-size;flex:none}
.mcard .wave{position:absolute;inset:0;background:radial-gradient(120% 80% at 110% 120%,rgba(255,255,255,.18),transparent 60%),radial-gradient(60% 70% at -10% -20%,rgba(255,255,255,.14),transparent 60%)}
.mcard .tree{position:absolute;inset-inline-end:-4%;bottom:-10%;width:42%;opacity:.12}
.mcard .top{position:absolute;top:5.5%;inset-inline:5%;display:flex;align-items:center;gap:2.5%}
.mcard .top .lg{background:#fff;border-radius:6px;padding:1.2% 2%;height:15cqw;display:flex;align-items:center}
.mcard .top .lg img{height:100%;width:auto}
.mcard .top .ttl{display:flex;flex-direction:column;line-height:1.1}
.mcard .top .ttl b{font-family:var(--f-display);font-size:5.3cqw;letter-spacing:.02em}
.mcard .top .ttl span{font-size:3.4cqw;opacity:.9}
.mcard .ph{position:absolute;inset-inline-start:5%;top:33%;width:22%;aspect-ratio:3/4;border-radius:6px;overflow:hidden;background:#fff;border:2px solid rgba(255,255,255,.9)}
.mcard .ph img,.mcard .ph svg{width:100%;height:100%;object-fit:cover;display:block}
.mcard .info{position:absolute;inset-inline-start:31%;top:34%;inset-inline-end:31%;display:flex;flex-direction:column;gap:1.4cqw;line-height:1.15}
.mcard .info .n1{font-family:var(--f-display);font-weight:800;font-size:5cqw;text-transform:uppercase}
.mcard .info .n2{font-family:"IBM Plex Sans Arabic",sans-serif;font-size:4.4cqw;font-weight:600;direction:rtl;text-align:start}
.mcard .info .l{font-size:3.3cqw;opacity:.92}
.mcard .info .l b{font-family:var(--f-mono);font-weight:600}
.mcard .qr{position:absolute;inset-inline-end:5%;top:31%;width:24%;aspect-ratio:1;background:#fff;border-radius:6px;padding:1.5%}
.mcard .qr svg{width:100%;height:100%;display:block}
.mcard .foot{position:absolute;bottom:5%;inset-inline:5%;display:flex;justify-content:space-between;font-size:3.1cqw;opacity:.95;gap:6px}
.mcard .stamp{position:absolute;inset:0;display:grid;place-items:center;background:rgba(30,10,10,.45);backdrop-filter:grayscale(1)}
.mcard .stamp span{border:3px solid #fff;color:#fff;font-weight:800;font-family:var(--f-display);padding:2% 5%;border-radius:8px;transform:rotate(-10deg);font-size:6cqw;letter-spacing:.06em;background:rgba(207,54,54,.85)}
.mcard.verso{background:linear-gradient(135deg,#F7FBF8,#E6F3EC)}
.mcard.verso{color:#11402A}
.mcard .vt{position:absolute;inset:6%;display:grid;grid-template-columns:1fr 26%;gap:4%}
.mcard .vt h5{margin:0 0 2cqw;font-size:4cqw;font-family:var(--f-display)}
.mcard .vt ul{margin:0;padding-inline-start:4.5cqw;font-size:3.2cqw;display:flex;flex-direction:column;gap:1.2cqw}
.mcard .vt .vq{align-self:center;background:#fff;border-radius:6px;padding:4%;aspect-ratio:1}
.mcard .vt .vq svg{width:100%;height:100%;display:block}
.mcard .vfoot{position:absolute;bottom:5%;inset-inline:6%;display:flex;justify-content:space-between;font-size:3cqw;color:#2B6A48}
/* Badge par type : même gabarit, palette et bandeau différents */
.mcard .btype{position:absolute;inset-inline-end:5%;top:71%;width:24%;display:flex;flex-direction:column;align-items:center;line-height:1.05;padding:.9cqw 0;border-radius:5px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.45)}
.mcard .btype b{font-family:var(--f-display);font-weight:800;font-size:2.7cqw;letter-spacing:.06em}
.mcard .btype span{font-family:"IBM Plex Sans Arabic",sans-serif;font-size:2.6cqw;font-weight:600}
.mcard.t-retraite{background:linear-gradient(135deg,#0B1F3A 0%,#16325C 48%,#22477A 78%,#B8893B 150%)}
.mcard.t-retraite .btype{background:#D4A64A;border-color:#F1D18A;color:#1B1405}
.mcard.t-retraite .ph{border-color:#D4A64A}
.mcard.t-conjoint{background:linear-gradient(135deg,#0A5257 0%,#11797F 48%,#1A9EA1 76%,#62CBC2 140%)}
.mcard.t-enfant{background:linear-gradient(135deg,#A63A28 0%,#CF5039 45%,#EA7349 75%,#F4A65E 140%)}
.mcard.t-veuf{background:linear-gradient(135deg,#341A3D 0%,#512A5B 48%,#6B3B75 78%,#A57BAE 145%)}
.mcard.t-veuf .btype{background:rgba(255,255,255,.14);border-color:rgba(230,205,236,.6)}
.mcard.verso.t-retraite{background:linear-gradient(135deg,#F6F8FC,#E3E9F3);color:#16325C}
.mcard.verso.t-retraite .vfoot{color:#8A6420}
.mcard.verso.t-conjoint{background:linear-gradient(135deg,#F3FBFB,#DDF1F0);color:#0A5257}
.mcard.verso.t-conjoint .vfoot{color:#11797F}
.mcard.verso.t-enfant{background:linear-gradient(135deg,#FFF8F3,#FCE6D8);color:#8C2F20}
.mcard.verso.t-enfant .vfoot{color:#CF5039}
.mcard.verso.t-veuf{background:linear-gradient(135deg,#FAF6FB,#EDE2F0);color:#41224B}
.mcard.verso.t-veuf .vfoot{color:#6B3B75}
.flip{perspective:1200px;cursor:pointer}
.flip .in{position:relative;transition:transform .6s;transform-style:preserve-3d;display:grid}
.flip .in>*{grid-area:1/1;backface-visibility:hidden}
.flip .in>.verso{transform:rotateY(180deg)}
.flip.on .in{transform:rotateY(180deg)}

/* ---------- Phone frame ---------- */
.stage{display:flex;gap:28px;justify-content:center;align-items:flex-start;padding:24px 16px 48px;flex-wrap:wrap}
.phone{width:390px;max-width:100%;height:812px;max-height:calc(100vh - 100px);min-height:640px;background:#0B1424;border-radius:46px;padding:12px;box-shadow:0 20px 60px rgba(8,31,66,.35),inset 0 0 0 2px #2a3446;position:relative;flex:none}
.phone .scr{background:var(--bg);border-radius:36px;height:100%;overflow:hidden;display:flex;flex-direction:column;position:relative}
.phone .notch{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:120px;height:30px;background:#0B1424;border-radius:0 0 18px 18px;z-index:5}
.sbar{display:flex;justify-content:space-between;padding:14px 26px 6px;font-size:14px;font-weight:700;flex:none}
.sbar .ic{display:flex;gap:5px;align-items:center}
.sbar svg{width:15px;height:15px}
.app{flex:1;overflow:auto;display:flex;flex-direction:column;min-height:0}
.app .ap-h{padding:8px 18px 10px;display:flex;align-items:center;gap:10px}
.app .ap-h img{height:28px;width:auto}
.app .ap-b{padding:4px 18px 20px;display:flex;flex-direction:column;gap:14px;flex:1}
.tabbar{display:flex;border-top:1px solid var(--line);background:var(--surface);padding:6px 6px 14px;flex:none}
.tabbar button{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;color:var(--faint);cursor:pointer;padding:4px 0;position:relative}
.tabbar button svg{width:21px;height:21px}
.tabbar button.on{color:var(--cyan);font-weight:600}
.tabbar .bdg{position:absolute;top:0;inset-inline-end:calc(50% - 18px);background:#E5484D;color:#fff;font-size:12px;border-radius:8px;padding:0 4px}
@media (max-width:620px){
  .stage{padding:0;gap:0}
  .phone{width:100%;height:calc(100vh - 50px);max-height:none;min-height:0;border-radius:0;padding:0;box-shadow:none;background:transparent}
  .phone .scr{border-radius:0}
  .phone .notch,.sbar{display:none}
  .stage>.aside{display:none}
}
.aside{width:340px;max-width:100%;display:flex;flex-direction:column;gap:14px}
.aside .panel .bd{display:flex;flex-direction:column;gap:10px}

/* Member app bits */
.hello{display:flex;flex-direction:column;gap:2px}
.hello h2{font-size:21px}
.prog{display:flex;align-items:flex-start;gap:0;justify-content:space-between;position:relative;padding:4px 4px 0}
.prog .pi{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;color:var(--muted);text-align:center;flex:1;position:relative;z-index:1}
.prog .pi .c{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--muted);font-weight:700;font-size:13.5px;border:2px solid var(--bg)}
.prog .pi.done .c{background:var(--ok);color:#fff}
.prog .pi.cur .c{background:var(--cyan);color:#fff}
.prog .pi .c svg{width:14px;height:14px}
.prog::before{content:"";position:absolute;top:18px;inset-inline:12%;height:2px;background:var(--line)}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;gap:12px;align-items:center}
.tile .ti{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none}
.tile .ti svg{width:20px;height:20px}
.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.list .li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);cursor:default}
.list .li:last-child{border-bottom:0}
.list .li.click{cursor:pointer}
.list .li.click:hover{background:var(--surface-2)}
.wallet-btn{display:flex;align-items:center;gap:10px;justify-content:center;background:#000;color:#fff;border-radius:11px;padding:11px;border:0;cursor:pointer;font-weight:600;font-size:15px;width:100%}
.wallet-btn .wl{width:30px;height:21px;border-radius:4px;background:linear-gradient(180deg,#F4B400 0 25%,#34A853 25% 50%,#4285F4 50% 75%,#EA4335 75%)}
.wallet-btn.added{background:var(--surface-3);color:var(--fg)}
.otp{display:flex;gap:8px;justify-content:center;direction:ltr}
.otp input{width:44px;height:52px;text-align:center;font-family:var(--f-mono);font-size:24px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface)}
.hero-pub{border-radius:18px;overflow:hidden;position:relative;color:#fff;padding:22px 18px;background:linear-gradient(160deg,#0B3A26 0%,#145C3A 55%,#1C8A52 100%)}
.hero-pub h1{font-size:24px;line-height:1.15}
.hero-pub p{opacity:.88;margin-top:8px;font-size:15px}
.hero-pub .trees{position:absolute;inset-inline-end:-20px;bottom:-10px;width:170px;opacity:.16}

/* Results (verification) */
.result{border-radius:18px;padding:22px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.result.ok{background:var(--ok-soft)}
.result.bad{background:var(--bad-soft)}
.result .big{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:#fff;animation:pop .35s ease-out}
.result.ok .big{background:var(--ok)} .result.bad .big{background:var(--bad)}
.result .big svg{width:38px;height:38px}
.result h2{font-size:24px}
.result.ok h2{color:var(--ok)} .result.bad h2{color:var(--bad)}
.benefit{background:var(--surface);border:1px dashed color-mix(in srgb,var(--ok) 50%,transparent);border-radius:12px;padding:10px 14px;width:100%}
.benefit b{font-family:var(--f-display);font-size:24px;color:var(--ok)}
@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1)}}
.scanview{border-radius:18px;background:#0A1526;position:relative;aspect-ratio:3/3.2;overflow:hidden;display:grid;place-items:center}
.scanview .frame{width:62%;aspect-ratio:1;border-radius:14px;position:relative}
.scanview .frame i{position:absolute;width:24%;height:24%;border:4px solid #3CC283}
.scanview .frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.scanview .frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.scanview .frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-radius:0 0 0 12px}
.scanview .frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-radius:0 0 12px 0}
.scanview .laser{position:absolute;left:8%;right:8%;height:2px;background:#FF5A5A;box-shadow:0 0 10px #FF5A5A;animation:laser 1.8s ease-in-out infinite alternate}
@keyframes laser{from{top:12%}to{top:86%}}
.scanview .hintx{position:absolute;bottom:10px;left:0;right:0;text-align:center;color:#C9D8EA;font-size:13.5px}
.scanview .cardin{position:absolute;width:70%;transform:rotate(-6deg);opacity:.95;animation:slideup .5s ease-out}
@keyframes slideup{from{transform:translateY(60%) rotate(-6deg);opacity:0}}
.present{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.present button{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:8px;display:flex;gap:8px;align-items:center;cursor:pointer;text-align:start;font-size:13.5px}
.present button:hover{border-color:var(--cyan)}
.present .av{width:30px;height:30px}
.spin{width:64px;height:64px;border-radius:50%;border:5px solid var(--surface-3);border-top-color:var(--cyan);animation:rot .8s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}

/* Fullscreen live card */
.live{position:fixed;inset:0;z-index:100;background:linear-gradient(170deg,#0B3A26,#1C8A52 60%,#1599CC);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}
.live .clock{font-family:var(--f-mono);font-size:30px;font-weight:600;letter-spacing:.05em}
.live .bigqr{background:#fff;border-radius:18px;padding:14px;width:min(260px,70vw);position:relative;overflow:hidden}
.live .bigqr::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(28,138,82,.25) 50%,transparent 70%);animation:shine 2.4s linear infinite}
@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.live .ph2{width:96px;height:120px;border-radius:12px;overflow:hidden;border:3px solid #fff}
.live .ph2 svg,.live .ph2 img{width:100%;height:100%;object-fit:cover}

/* Wallet pass */
.pass{width:300px;max-width:100%;border-radius:16px;overflow:hidden;color:#fff;background:#0E5A36;box-shadow:var(--shadow-lg);font-size:13.5px}
.pass.google{background:#fff;color:#1F2937;border:1px solid var(--line)}
.pass .p1{display:flex;align-items:center;gap:8px;padding:12px 14px}
.pass .p1 img{height:26px;background:#fff;border-radius:5px;padding:2px 4px}
.pass .p2{padding:4px 14px 10px;display:flex;justify-content:space-between;gap:10px}
.pass .p2 small{display:block;opacity:.75;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.pass .p2 b{font-size:15px}
.pass .p3{background:rgba(255,255,255,.08);padding:14px;display:grid;place-items:center}
.pass.google .p3{background:#F3F6F9}
.pass .p3 .q{background:#fff;padding:8px;border-radius:8px;width:140px}
.pass.void{filter:grayscale(1);opacity:.7}

/* Landing */
.land{max-width:1180px;margin:0 auto;padding:28px 16px 60px;display:flex;flex-direction:column;gap:26px}
.land .intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:center}
@media (max-width:900px){.land .intro{grid-template-columns:1fr}}
.land .intro h1{font-size:clamp(28px,4vw,42px);line-height:1.08;font-weight:800}
.land .intro h1 em{font-style:normal;color:var(--cyan)}
.land .intro p.lead{font-size:17px;color:var(--muted);max-width:60ch;margin-top:12px}
.logos{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.logos .lgw{background:#fff;border-radius:12px;padding:8px 12px;border:1px solid var(--line);display:flex;align-items:center}
.logos .lgw img{height:46px;width:auto}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.roles{grid-template-columns:1fr}}
.role{border-radius:18px;padding:20px;color:#fff;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;min-height:250px;border:0;text-align:start;cursor:pointer;font:inherit}
.role:hover{transform:translateY(-2px)}
.role{transition:transform .15s}
.role.a{background:linear-gradient(150deg,#0B2E5F,#123C77)}
.role.m{background:linear-gradient(150deg,#0E7FB0,#1599CC)}
.role.p{background:linear-gradient(150deg,#13603C,#1C8A52)}
.role h3{font-size:24px;font-weight:800}
.role p{opacity:.88;font-size:15px}
.role ul{margin:0;padding-inline-start:18px;font-size:14.5px;opacity:.92;display:flex;flex-direction:column;gap:3px}
.role .go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;background:rgba(255,255,255,.16);border-radius:10px;padding:9px 14px;align-self:flex-start}
.role .rico{position:absolute;inset-inline-end:16px;top:16px;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.15);display:grid;place-items:center}
.role .rico svg{width:24px;height:24px}
.flowstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:900px){.flowstrip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.flowstrip{grid-template-columns:1fr}}
.flowstrip .fs{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px}
.flowstrip .fs .k{font-family:var(--f-mono);font-size:13.5px;color:var(--cyan);font-weight:600}

/* Login */
.auth{min-height:calc(100vh - 50px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth .art{padding:40px;color:#fff;display:flex;flex-direction:column;gap:18px;justify-content:center;position:relative;overflow:hidden}
.auth .art.admin{background:linear-gradient(160deg,#081F42,#0B2E5F 60%,#123C77)}
.auth .art.partner{background:linear-gradient(160deg,#0B3A26,#145C3A 60%,#1C8A52)}
.auth .art img.lg{height:64px;width:auto;align-self:flex-start}
.auth .art h2{font-size:28px;font-weight:800;max-width:16ch}
.auth .art p{opacity:.85;max-width:44ch}
.auth .art .feat{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:440px}
.auth .art .feat div{background:rgba(255,255,255,.08);border-radius:12px;padding:10px 12px;font-size:14px;display:flex;gap:8px;align-items:center}
.auth .art .feat svg{width:18px;height:18px;flex:none}
.auth .form-side{display:grid;place-items:center;padding:28px 16px;background:var(--bg)}
.auth .box{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
@media (max-width:860px){.auth{grid-template-columns:1fr}.auth .art{padding:24px 16px}.auth .art .feat{display:none}}
.demo-acc{display:flex;flex-direction:column;gap:6px}
.demo-acc button{border:1px dashed var(--line-2);background:var(--surface-2);border-radius:10px;padding:8px 10px;text-align:start;cursor:pointer;display:flex;gap:10px;align-items:center;font-size:14px}
.demo-acc button:hover{border-color:var(--cyan)}
.demo-acc .ph3{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}
.demo-acc .ph3 svg{width:16px;height:16px}

/* Charts */
.chart svg{width:100%;height:auto;display:block}
.chart text{fill:var(--muted);font-size:12px;font-family:var(--f-body)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.donut-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.donut-wrap svg{width:150px;height:150px;flex:none}
.donut-wrap .lg2{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0;flex:1}
.donut-wrap .lg2 div{display:flex;gap:8px;align-items:center}
.donut-wrap .lg2 b{margin-inline-start:auto;font-variant-numeric:tabular-nums}

/* Doc tiles */
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.doc{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2);font-size:13.5px}
.doc .thumb{aspect-ratio:4/3;border-radius:8px;background:var(--surface-3);display:grid;place-items:center;overflow:hidden;position:relative}
.doc .thumb svg{width:100%;height:100%}
.doc .thumb img{width:100%;height:100%;object-fit:cover}
.upl{border:2px dashed var(--line-2);border-radius:14px;padding:18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-size:14.5px}
.upl svg{width:30px;height:30px;color:var(--cyan)}
.checks{display:flex;flex-direction:column;gap:7px;font-size:14.5px}
.checks div{display:flex;gap:8px;align-items:center}
.checks svg{width:17px;height:17px;flex:none}
.photo-big{width:200px;max-width:100%;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--surface-3);border:1px solid var(--line)}
.photo-big img,.photo-big svg{width:100%;height:100%;object-fit:cover;display:block}
.facecam{width:100%;aspect-ratio:3/4;max-height:340px;border-radius:16px;background:#111;position:relative;overflow:hidden;display:grid;place-items:center}
.facecam .oval{width:62%;aspect-ratio:3/4;border:3px dashed rgba(255,255,255,.75);border-radius:50%}
.facecam img,.facecam svg.face{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.code-block{background:#0B1628;color:#D7E3F4;border-radius:12px;padding:12px 14px;font-family:var(--f-mono);font-size:13.5px;overflow-x:auto;white-space:pre;direction:ltr;text-align:left}
.code-block .k{color:#7FD1FF}.code-block .s{color:#A6E3A1}.code-block .n{color:#F9C97A}
.pill-tabs{display:inline-flex;background:var(--surface-3);border-radius:9px;padding:3px;gap:2px}
.pill-tabs button{border:0;background:transparent;padding:5px 12px;border-radius:7px;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted)}
.pill-tabs button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}
.stock{display:flex;flex-direction:column;gap:12px}
.stock .s1{display:flex;flex-direction:column;gap:5px}
.stock .s1 .row{justify-content:space-between;font-size:14px}
.printing{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px}
.printer{width:200px;height:120px;background:linear-gradient(#2C3442,#1A202B);border-radius:16px 16px 10px 10px;position:relative}
.printer::before{content:"";position:absolute;left:30px;right:30px;top:40px;height:6px;background:#0C0F15;border-radius:3px}
.printer .out{position:absolute;left:50%;top:44px;transform:translateX(-50%);width:120px;animation:printout 1.1s ease-in-out infinite}
@keyframes printout{from{transform:translate(-50%,-70px);opacity:0}30%{opacity:1}to{transform:translate(-50%,30px);opacity:1}}
.toggle{position:relative;width:38px;height:22px;flex:none}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle span{position:absolute;inset:0;background:var(--line-2);border-radius:20px;cursor:pointer;transition:background .15s}
.toggle span::before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}
.toggle input:checked+span{background:var(--ok)}
.toggle input:checked+span::before{transform:translateX(16px)}
.sticker{width:180px;border-radius:16px;background:linear-gradient(160deg,#0E5A36,#1C8A52);color:#fff;padding:16px;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}
.sticker img{background:#fff;border-radius:8px;padding:4px 8px;height:40px;width:auto}
.sticker b{font-family:var(--f-display);font-size:19px;line-height:1.1}
.mapbox{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surface-2)}
.mapbox svg{display:block;width:100%;height:auto}
.right{text-align:end}
.nowrap{white-space:nowrap}
.hide-sm{}
@media (max-width:620px){.hide-sm{display:none}}
.callout{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--muted)}
.callout b{color:var(--fg)}
.dup{border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.decide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:620px){.decide{grid-template-columns:1fr}}
.decide button{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:16px 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:14px;color:var(--muted)}
.decide button b{font-size:15px;color:var(--fg)}
.decide button .di{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff}
.decide button .di svg{width:20px;height:20px}
.decide button.on{border-width:2px}
.decide button.a.on{border-color:var(--ok);background:var(--ok-soft)}
.decide button.c.on{border-color:var(--warn);background:var(--warn-soft)}
.decide button.r.on{border-color:var(--bad);background:var(--bad-soft)}
.lock-note{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted);background:var(--surface-2);border:1px dashed var(--line-2);border-radius:10px;padding:8px 12px}
.lock-note svg{width:16px;height:16px}
.av svg[viewBox="0 0 24 24"],.ti svg[viewBox="0 0 24 24"]{width:22px;height:22px}
.av.lg svg[viewBox="0 0 24 24"]{width:28px;height:28px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.scanview{aspect-ratio:auto;height:230px}
.scanview .frame{height:74%;width:auto;aspect-ratio:1}
.scanview .cardin{width:min(260px,70%)}
.t td.mono{white-space:nowrap}

/* ===== v4 : alignement sur les maquettes ===== */
/* KPI teintées */
.kpi[class*="tone-bg-"] .ic{background:var(--surface)}
.kpi.tone-bg-info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 22%,transparent)} .kpi.tone-bg-info .v,.kpi.tone-bg-info .l{color:var(--info)}
.kpi.tone-bg-ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 22%,transparent)} .kpi.tone-bg-ok .v,.kpi.tone-bg-ok .l{color:var(--ok)}
.kpi.tone-bg-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 22%,transparent)} .kpi.tone-bg-warn .v,.kpi.tone-bg-warn .l{color:var(--warn)}
.kpi.tone-bg-bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 22%,transparent)} .kpi.tone-bg-bad .v,.kpi.tone-bg-bad .l{color:var(--bad)}
.kpi.tone-bg-violet{background:var(--violet-soft);border-color:color-mix(in srgb,var(--violet) 22%,transparent)} .kpi.tone-bg-violet .v,.kpi.tone-bg-violet .l{color:var(--violet)}
.kpi .v{font-size:28px}
/* Sidebar repliable */
.side .collapse{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:transparent;color:#C9D7EA;display:grid;place-items:center;cursor:pointer;flex:none}
.side .collapse:hover{background:rgba(255,255,255,.1);color:#fff}
@media (min-width:961px){
  .shell.mini{grid-template-columns:78px minmax(0,1fr)}
  .side.mini .logo{justify-content:center;padding:16px 10px}
  .side.mini .logo-txt,.side.mini .sect,.side.mini .nav>span:not(.cnt),.side.mini .hostnote,.side.mini .foot-brand img{display:none}
  .side.mini .logo>img{height:40px;width:40px;object-fit:contain;border-radius:10px;background:#fff;padding:3px}
  .side.mini .side-nav{padding:8px 10px;align-items:stretch}
  .side.mini .nav{justify-content:center;padding:11px;position:relative}
  .side.mini .nav .cnt{position:absolute;top:2px;inset-inline-end:2px;padding:0 5px;font-size:12px}
  .side.mini .nav .cnt.soft,.side.mini .nav .cnt.lock{display:none!important}
  .side.mini .foot{justify-content:center;padding:12px 10px}
  .side.mini .foot-brand{display:none}
}
.nav svg,.nav iconify-icon.ic{width:19px;height:19px}
.vsep{width:1px;height:26px;background:var(--line)}
.usersel{font-weight:600}
.langsw{border:0;background:none;cursor:pointer;display:flex;gap:6px;align-items:center;color:var(--muted);font-size:14.5px}
.langsw b{font-weight:600} .langsw b.on{color:var(--fg)}
/* Photos à valider (dashboard) */
.phgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.phcell{border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:13.5px;text-align:center;padding:0}
.phcell .phimg{width:100%;max-width:110px;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--surface-3);display:block}
.phcell .phimg img,.phcell .phimg svg{width:100%;height:100%;object-fit:cover;display:block}
.phcell:hover .phimg{outline:2px solid var(--cyan)}
/* Partenaire : résultat */
.vres{border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--line)}
.vres.idle{align-items:center;text-align:center;background:var(--surface-2);padding:40px 20px}
.vres.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}
.vres.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.vres .vh{display:flex;gap:14px;align-items:center}
.vres .vh .big{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none;animation:pop .35s ease-out}
.vres .vh .big svg{width:32px;height:32px}
.vres.ok .vh .big{background:var(--ok)} .vres.bad .vh .big{background:var(--bad)}
.vres .vh h2{font-size:26px} .vres.ok .vh h2{color:var(--ok)} .vres.bad .vh h2{color:var(--bad)}
.vwho{background:var(--surface);border-radius:14px;padding:14px;display:flex;gap:16px;align-items:center}
.vph{width:110px;height:130px;border-radius:12px;overflow:hidden;flex:none;background:var(--surface-3)}
.vph img,.vph svg{width:100%;height:100%;object-fit:cover;display:block}
.vname{font-family:var(--f-display);font-size:19px;font-weight:800;text-transform:uppercase}
.vname-ar{font-family:"IBM Plex Sans Arabic",sans-serif;font-size:17px;font-weight:600;text-align:start}
.kv2{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14.5px;color:var(--muted);align-items:center;margin-top:4px}
.kv2 b{color:var(--fg)}
.vben{border:1.5px dashed color-mix(in srgb,var(--ok) 55%,transparent);background:var(--surface);border-radius:14px;padding:12px 14px;display:flex;gap:14px;align-items:center}
.vres.bad .vben{border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.vben .bi{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--ok-soft);color:var(--ok);flex:none}
.vben .bi svg{width:24px;height:24px}
.vben .bl{font-family:var(--f-display);font-size:20px;color:var(--ok);line-height:1.2}
@media (max-width:620px){.vph{width:84px;height:104px}.vres .vh h2{font-size:21px}}
.present.strip{display:flex;overflow-x:auto;gap:8px;padding-bottom:6px;scrollbar-width:thin}
.present.strip button{flex:0 0 190px}
.scanview{height:280px}
.mtiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mt{border-radius:12px;padding:12px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.mt svg{grid-row:1/3;width:30px;height:30px;padding:5px;border-radius:50%;color:#fff}
.mt b{font-family:var(--f-display);font-size:24px;line-height:1}
.mt span{font-size:13.5px}
.mt.ok{background:var(--ok-soft);color:var(--ok)} .mt.ok svg{background:var(--ok)}
.mt.bad{background:var(--bad-soft);color:var(--bad)} .mt.bad svg{background:var(--bad)}
.mt.info{background:var(--info-soft);color:var(--info)} .mt.info svg{background:var(--info)}
.mt.warn{background:var(--warn-soft);color:var(--warn)} .mt.warn svg{background:var(--warn)}
/* Adhérent : en-tête navy, onglets, avantages */
.scr.in-app .sbar{background:#0B2E5F;color:#fff}
.ap-h.navy{background:#0B2E5F;color:#fff;padding:6px 18px 14px;margin-bottom:6px}
.ap-h.navy .icon-btn{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}
.langpill{border:1px solid var(--line-2);background:var(--surface);border-radius:20px;padding:4px 12px;font-size:13.5px;font-weight:700;cursor:pointer;color:var(--fg)}
.ap-h.navy .langpill{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.app{background:var(--bg)}
.tabbar button{border-radius:12px;margin:0 2px}
.tabbar button.on{background:var(--cyan-soft)}
.okbanner{display:flex;gap:10px;align-items:flex-start;background:var(--ok-soft);color:var(--ok);border-radius:12px;padding:10px 12px;font-size:14.5px}
.okbanner svg{width:18px;height:18px;margin-top:2px;flex:none}
.okbanner .xs{color:var(--fg);opacity:.8}
.search-inp{border-radius:12px;padding:10px 14px}
.fchip{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 14px;font-size:14px;cursor:pointer;white-space:nowrap;color:var(--fg)}
.fchip.on{background:var(--cyan);border-color:var(--cyan);color:#fff;font-weight:600}
.ben{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;gap:12px;align-items:center}
.bthumb{width:86px;height:86px;border-radius:12px;display:grid;place-items:center;color:#fff;flex:none}
.bthumb svg{width:34px;height:34px}
.s-hebergement.bthumb{background:linear-gradient(140deg,#1F6FB2,#5BB0E0)} .s-sante.bthumb{background:linear-gradient(140deg,#1C8A52,#5CC28C)} .s-commerce.bthumb{background:linear-gradient(140deg,#6B55C8,#A493F0)} .s-restauration.bthumb{background:linear-gradient(140deg,#C9741E,#F0B067)} .s-loisirs.bthumb,.s-transport.bthumb,.s-centre.bthumb{background:linear-gradient(140deg,#0B2E5F,#1599CC)}
.s-chip{align-self:flex-start;font-size:12px;padding:2px 8px}
.s-chip.s-hebergement{background:var(--info-soft);color:var(--info)} .s-chip.s-sante{background:var(--ok-soft);color:var(--ok)} .s-chip.s-commerce{background:var(--violet-soft);color:var(--violet)} .s-chip.s-restauration{background:var(--warn-soft);color:var(--warn)}
.pct{align-self:flex-start;background:var(--bad-soft);color:var(--bad);font-family:var(--f-display);font-weight:800;font-size:18px;border-radius:8px;padding:1px 10px}
.notif{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;gap:12px;align-items:flex-start}
.notif.new{border-color:color-mix(in srgb,var(--cyan) 45%,transparent)}
.notif .dotn{width:9px;height:9px;border-radius:50%;background:var(--cyan);flex:none;margin-top:6px}
.demobar.mode-admin{border-bottom-color:#3B82F6}
.demobar.mode-member{border-bottom:2px solid #22B5E8}
.demobar.mode-partner{border-bottom:2px solid #3CC283}
@media (max-width:600px){ .demobar.mode-member{display:none} }

/* ===== Application PHP : ajustements (pas de barre démo) ===== */
.shell{min-height:100vh}
.side{top:0;height:100vh}
.topline{top:0}
@media (max-width:960px){.side{inset-block:0 0}}
.auth{min-height:100vh}
a.nav{text-decoration:none}
a.btn{text-decoration:none}
.flashes{display:flex;flex-direction:column;gap:8px}
.alert.ok{background:var(--ok-soft);color:var(--ok)} .alert.bad{background:var(--bad-soft);color:var(--bad)} .alert.warn{background:var(--warn-soft);color:var(--warn)} .alert.info{background:var(--info-soft);color:var(--info)}
.alert .ac{color:var(--fg)}
.t td a{color:inherit;text-decoration:none}
.t tr.click td a.rowlink{display:block}
.pagination{display:flex;gap:4px;flex-wrap:wrap}
.pagination a,.pagination span{padding:4px 10px;border-radius:7px;border:1px solid var(--line);text-decoration:none;color:var(--fg);font-size:13.5px}
.pagination .on{background:var(--cyan);color:#fff;border-color:var(--cyan)}
.inline{display:inline}
form.inline{display:inline-flex}
.demo-box{border:1px dashed var(--warn);background:var(--warn-soft);border-radius:12px;padding:10px 12px;font-size:14px;color:var(--fg)}
.demo-box b{color:var(--warn)}
.demo-box code{font-family:var(--f-mono);background:var(--surface);padding:1px 5px;border-radius:5px}
details.more summary{cursor:pointer;color:var(--cyan);font-weight:600;font-size:14.5px}
.pubbar{background:var(--bar);color:#fff;display:flex;align-items:center;gap:12px;padding:10px 18px}
.pubbar img{height:32px}
.pubbar .sp{flex:1}
.pubbar a{color:#DCE6F4;text-decoration:none;font-size:14.5px;font-weight:600}
.wrap{max-width:860px;margin:0 auto;padding:24px 16px 60px;display:flex;flex-direction:column;gap:18px}
/* Espace adhérent : application web mobile */
body.mapp{background:var(--bg)}
.mshell{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);position:relative}
@media (min-width:600px){.mshell{border-inline:1px solid var(--line);box-shadow:var(--shadow)}}
.mshell .ap-h{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 18px 12px}
.ap-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:#fff;text-decoration:none;flex:none}
.ap-bell svg{width:20px;height:20px}
.ap-bell .bdg{position:absolute;top:0;inset-inline-end:0;background:#E5484D;color:#fff;font-size:10px;font-weight:700;line-height:16px;border-radius:8px;padding:0 4px}
.ap-bell[aria-current="page"]{background:rgba(255,255,255,.16)}
.mshell .ap-h img{height:30px}
.ap-brand{display:flex;flex-direction:column;line-height:1.15;color:#fff;min-width:0}
.ap-brand b{font-size:14px;font-weight:750}
.ap-brand small{font-size:11px;font-weight:550;opacity:.85}
.nt-page{display:flex;flex-direction:column;gap:12px}
.nt-head{display:flex;align-items:flex-start;gap:10px}
.nt-head h1{margin:0;font-size:22px;line-height:1.15;color:#172B4D}
.nt-head p{margin:2px 0 0;color:#64748B;font-size:13px}
.nt-bell{width:36px;height:36px;border-radius:12px;background:#E8F1FC;color:#1264D6;display:grid;place-items:center;flex:none}
.nt-read{margin-inline-start:auto;display:inline-flex;align-items:center;gap:6px;border:1px solid #D6E6FA;background:#F4F8FE;color:#1264D6;border-radius:999px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.nt-read:disabled{opacity:.45;cursor:not-allowed}
.nt-filters{display:flex;gap:8px;overflow-x:auto}
.nt-filters button{display:inline-flex;align-items:center;gap:6px;border:1px solid #E5EAF2;background:#fff;color:#475569;border-radius:999px;padding:7px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.nt-filters button b{font-weight:750}
.nt-filters button.on{background:#1264D6;border-color:#1264D6;color:#fff}
.nt-filters .pip{width:8px;height:8px;border-radius:50%;background:#DC2626;flex:none}
.nt-filters button.on .pip{background:#fff}
.nt-list{display:flex;flex-direction:column;gap:10px}
.nt-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #E5EAF2;border-radius:16px;padding:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.nt-card[hidden]{display:none}
.nt-card.is-new{border-color:#C9DDF8}
.nt-ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff}
.nt-ic.info{background:#1264D6}
.nt-ic.ok{background:#16A34A}
.nt-ic.warn{background:#F59E0B}
.nt-ic.bad{background:#DC2626}
.nt-ic.violet{background:#7C3AED}
.nt-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.nt-body h2{margin:0;font-size:15.5px;line-height:1.3;color:#172B4D}
.nt-text{margin:0;color:#475569;font-size:13.5px;line-height:1.45}
.nt-facts{margin:0;display:flex;flex-direction:column;gap:2px;color:#172B4D;font-size:13.5px}
.nt-facts b{font-weight:750}
.nt-go{display:inline-flex;align-items:center;gap:6px;color:#1264D6;font-weight:750;font-size:13.5px;text-decoration:none}
.nt-links{background:#F8FAFC;border:1px solid #E5EAF2;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.nt-links div{min-width:0}
.nt-links span{display:block;color:#64748B;font-size:11.5px;font-weight:700}
.nt-links a{color:#1264D6;font-size:12.5px;word-break:break-all;text-decoration:none}
.nt-body time{display:inline-flex;align-items:center;gap:6px;color:#94A3B8;font-size:12px}
.nt-dot{width:9px;height:9px;border-radius:50%;background:#1264D6;flex:none;margin-top:6px}
.nt-empty{margin:0;padding:18px;text-align:center;color:#64748B;background:#fff;border:1px solid #E5EAF2;border-radius:14px}
@media (max-width:420px){
  .nt-head{flex-wrap:wrap}
  .nt-read{margin-inline-start:0}
}
.mshell .ap-b{padding:16px 18px 100px;display:flex;flex-direction:column;gap:14px;flex:1}
.mshell .tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(480px,100%);z-index:20;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
.tabbar a{flex:1;min-width:0;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;line-height:1.15;color:var(--faint);padding:6px 2px;position:relative;text-decoration:none;border-radius:12px;margin:0}
.tabbar a > span:not(.bdg){display:block;max-width:100%;text-align:center;line-height:1.15;white-space:nowrap}
.tabbar a svg{width:22px;height:22px}
.tabbar a.on{color:var(--cyan);font-weight:600;background:var(--cyan-soft)}
.mcard{--cw:100%}
.flip{width:100%}
.ben{text-decoration:none;color:inherit}
.fchips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
a.fchip{text-decoration:none}
.list a.li{text-decoration:none;color:inherit}
.sheet{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.ma-home{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-decoration:none;color:inherit}
.ma-home b{display:block;font-size:15px}
.ma-home small{display:block;color:var(--muted);font-size:12.5px;font-weight:500}
.ma-home .ic{color:var(--cyan)}
.ma-dues-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ma-dues-hd b{display:flex;align-items:center;gap:6px;white-space:nowrap}
.ma-dues-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.ma-dues-row b,.ma-dues-row .xs{display:block}
.ma-dues-row span:last-child{text-align:end}
a.sheet.ma-dues-go,div.sheet.ma-pay,a.sheet.ma-pay{flex-direction:row;align-items:center;gap:10px;text-decoration:none;color:inherit}
.ma-dues-go .grow,.ma-pay .grow{flex:1;min-width:0}
.ma-dues-go .grow b,.ma-dues-go .grow .xs,.ma-pay .grow b,.ma-pay .grow .xs{display:block}
.ma-pay{margin-top:8px}
.ma-pay-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ma-pay-end b,.ma-pay .chip{white-space:nowrap}
.ma-pick{position:relative;display:flex;align-items:center;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px}
.ma-pick input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.ma-pick em{font-style:normal;color:var(--muted);font-size:13px}
.ma-file{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.ma-file .grow{flex:1;min-width:0}
.ma-file b,.ma-file .xs{display:block}
.ma-kicker{margin:4px 0 0;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.ma-list{display:flex;flex-direction:column;gap:8px}
.ma-invite{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--cyan) 9%,#fff);border:1px solid color-mix(in srgb,var(--cyan) 35%,#fff)}
.ma-invite-hd{display:flex;align-items:center;gap:10px}
.ma-invite-hd b{display:block;font-size:15px}
.ma-invite-hd small{display:block;color:var(--muted);font-size:12.5px}
.ma-invite .ma-ic{background:var(--cyan);color:#fff}
a.ma-card{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;text-decoration:none;color:inherit}
.ma-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--cyan) 14%,#fff);color:var(--cyan);flex:none}
.ma-card-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ma-card-t b{font-size:14.5px;line-height:1.3}
.ma-card-t small,.ma-ar{color:var(--muted);font-size:12.5px;line-height:1.35}
.ma-ar{font-family:"IBM Plex Sans Arabic","Cairo","Tajawal",sans-serif}
.ma-back{display:inline-flex;align-items:center;gap:6px;color:var(--cyan);font-weight:700;text-decoration:none;font-size:14px}
.ma-fiche-h{display:flex;gap:10px;align-items:flex-start}
.ma-fiche-h h2{margin:0;font-size:18px;line-height:1.25}
.ma-text{margin:0;color:var(--muted);font-size:13.5px;line-height:1.45}
.ma-steps{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.ma-steps li{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;color:var(--faint);font-size:11px}
.ma-steps span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);font-weight:700}
.ma-steps .done span,.ma-steps .on span{background:var(--cyan);color:#fff}
.ma-steps .bad span{background:var(--bad);color:#fff}
.ma-steps b{font-weight:650;line-height:1.2}
.ma-amount{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ma-amount b{font-size:18px}
.ma-lines{margin:0;padding-inline-start:18px;color:var(--fg);font-size:13.5px}
.ma-files{display:flex;flex-direction:column;gap:8px}
.ma-file{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:13.5px}
.ma-file small{color:var(--muted);flex-basis:100%}
.ma-checks{display:flex;flex-direction:column;gap:8px}
.ma-check{display:flex;align-items:flex-start;gap:8px;font-weight:600}
.ma-check input{width:16px;height:16px;margin-top:2px;flex:none}
.sheet .btn{align-self:stretch}
/* Partenaire : caméra */
.scanview video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scanview .frame,.scanview .laser,.scanview .hintx{z-index:2}
.scan-ctrl{display:flex;gap:8px;flex-wrap:wrap}
/* Impression des cartes */
@media print{
  body{background:#fff!important}
  .noprint{display:none!important}
  .printsheet{display:flex;flex-direction:column;gap:0}
  .printcard{page-break-after:always;break-after:page;padding:0;margin:0}
  @page{size:85.60mm 53.98mm;margin:0}
  .printcard .mcard{width:85.60mm!important;height:53.98mm!important;border-radius:0;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.printsheet{display:flex;flex-wrap:wrap;gap:16px;padding:16px}
.printcard .mcard{width:340px}
.qrbox svg{width:100%;height:100%;display:block}
.photo-big.sm{width:120px}
.stat-num{font-family:var(--f-display);font-size:26px;font-weight:800}
.badge-mini{font-size:12px;padding:1px 7px;border-radius:10px;background:var(--surface-3);color:var(--muted);font-weight:600}
textarea.inp{min-height:76px}
.helpnum{counter-reset:s;display:flex;flex-direction:column;gap:10px}

/* ---------- Formulaire nouvel adhérent (layout expert) ---------- */
.nf{display:flex;flex-direction:column;gap:16px;width:100%}
.nf-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;background:#fff;border:1px solid #E4E7EC;border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.nf-top h1{font-size:26px;font-weight:800;letter-spacing:-.03em;color:#0B2A5B;margin:0}
.nf-top .small{margin-top:4px}
.nf-steps{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
  background:#fff;border:1px solid #E4E7EC;border-radius:14px;padding:6px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.nf-step{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 10px;border-radius:10px;color:#667085;font-size:14.5px;font-weight:650;
  position:relative;
}
.nf-step .n{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:#F1F5F9;color:#667085;font-size:13.5px;font-weight:800;flex:none;
  border:2px solid #E4E7EC;
}
.nf-step.on{color:#0B2A5B;background:#EFF8FE;box-shadow:inset 0 -2px 0 #087EA4}
.nf-step.on .n{background:#087EA4;color:#fff;border-color:#087EA4}

.nf-foot-acts .nf-accept{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 12px;border-radius:10px;background:#EFF8FE;border:1px solid #B9E0EC;font-size:14px;font-weight:650;color:#0B2A5B;cursor:pointer}
.nf-accept input{width:16px;height:16px;margin:0;accent-color:#087EA4}
.nf-read{border:0;background:transparent;color:#087EA4;font-weight:750;font-size:14px;text-decoration:underline;cursor:pointer;padding:0 2px;min-height:36px}
.nf-read:hover,.nf-read:focus-visible{color:#0B2A5B;outline:none}
.nf-dlg-ft{display:flex;justify-content:flex-end;padding:0 16px 16px}
.nf-dlg{width:min(720px,calc(100vw - 24px));max-height:min(86vh,760px);border:0;border-radius:16px;padding:0;color:#172B4D;box-shadow:0 24px 60px rgba(11,42,91,.28)}
.nf-dlg::backdrop{background:rgba(11,42,91,.45)}
.nf-dlg-hd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 16px 8px}
.nf-dlg-hd p{margin:0;font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:#087EA4}
.nf-dlg-hd h2{margin:4px 0 0;font-size:20px;line-height:1.25;font-weight:800;font-style:normal;color:#0B2A5B}
.nf-dlg-x{width:34px;height:34px;border-radius:8px;border:1px solid #E4E7EC;background:#fff;cursor:pointer;display:grid;place-items:center;color:#344054;flex:none}
.nf-dlg-body{padding:4px 16px 8px;overflow:auto;max-height:58vh}
.nf-dlg-body h3{margin:16px 0 6px;font-size:16px;font-weight:750;font-style:normal;color:#0B2A5B}
.nf-dlg-body h3:first-child{margin-top:0}
.nf-dlg-body p,.nf-dlg-body li{font-size:14.5px;line-height:1.55;color:#344054}
.nf-dlg-body ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.nf-reg-lab{font-weight:750;color:#0B2A5B}
.nf-reg-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.nf-reg-dl div{background:#F8FAFC;border:1px solid #E4E7EC;border-radius:10px;padding:8px 10px}
.nf-reg-dl dt{color:#667085;font-size:12px}
.nf-reg-dl dd{margin:2px 0 0;font-weight:750;color:#0B2A5B}
@media (max-width:640px){.nf-reg-dl{grid-template-columns:1fr}.nf-dlg-hd h2{font-size:18px}}

.nf-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:18px;align-items:start}
.nf-layout.solo{grid-template-columns:1fr}
.nf-main,.nf-aside{display:flex;flex-direction:column;gap:14px;min-width:0}
.nf-aside{position:sticky;top:80px}

.nf-card{background:#fff;border:1px solid #E4E7EC;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 16px rgba(15,23,42,.03);overflow:hidden}
.nf-card-hd{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid #F1F5F9;background:#fff}
.nf-card-hd h2{font-size:16px;font-weight:750;margin:0 0 2px;color:#0B2A5B}
.nf-card-hd p{margin:0;color:#667085;font-size:14px;line-height:1.4}
.nf-card-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#EFF8FE;color:#087EA4;flex:none}
.nf-card-ico.ton-cam{background:#FEF3C7;color:#B54708}
.nf-card-ico.ton-pin{background:#ECFDF3;color:#18794E}
.nf-card-ico.ton-coin{background:#EEF2FF;color:#4F46E5}
.nf-pad{padding:16px}
.nf-aside-bd{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
.nf-dues .field{display:flex;flex-direction:column;gap:6px}
.nf-dues .field label{font-size:13.5px;font-weight:650;color:#344054}

.nf-fields.form{align-content:start;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.nf-tag{font-family:var(--f-mono);font-size:12px;font-weight:700;color:#087EA4;background:#EFF8FE;border-radius:4px;padding:2px 6px;margin-inline-start:4px}
.nf-ctrl{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;min-height:42px;padding:0 12px;border:1px solid #E4E7EC;border-radius:10px;background:#F8FAFC;transition:border-color .12s,box-shadow .12s,background .12s}
.nf-ctrl>svg,.nf-ctrl>iconify-icon.ic{color:#98A2B3}
.nf-ctrl input,.nf-ctrl select{border:0;background:transparent;padding:10px 0;width:100%;min-width:0;border-radius:0;font-size:15px}
.nf-ctrl input:focus,.nf-ctrl select:focus{outline:none;box-shadow:none}
.nf-ctrl:focus-within{background:#fff;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.14)}
.nf-ctrl.nf-locked{background:#EEF2F6;cursor:not-allowed}
.nf-ctrl.nf-locked input{color:#667085;cursor:not-allowed}
.nf-ctrl.nf-locked:focus-within{border-color:#E4E7EC;box-shadow:none;background:#EEF2F6}
.nf-ctrl.ar{grid-template-columns:minmax(0,1fr) 34px;padding-inline-end:6px}
.nf-ctrl .ar-input{font-family:"IBM Plex Sans Arabic",var(--f-body);font-size:16px;text-align:right}
.nf-ctrl .ar-kb-btn{border:0;background:transparent;color:#087EA4;width:34px;height:32px;border-radius:8px;display:grid;place-items:center;cursor:pointer;padding:0}
.nf-ctrl .ar-kb-btn:hover,.nf-ctrl .ar-kb-btn.on{background:#EFF8FE;color:#0B2A5B}

/* Sexe — segment */
.nf-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nf-seg-opt{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #E4E7EC;border-radius:10px;background:#F8FAFC;cursor:pointer;font-weight:650;font-size:15px;color:#667085;transition:all .12s;position:relative}
.nf-seg-opt input{position:absolute;opacity:0;pointer-events:none}
.nf-seg-opt>span{display:inline-flex;align-items:center;gap:8px}
.nf-seg-opt svg,.nf-seg-opt iconify-icon.ic{flex:none;opacity:.9}
.nf-seg-opt.on{background:#087EA4;border-color:#087EA4;color:#fff;box-shadow:0 4px 12px rgba(8,126,164,.25)}
.nf-seg-opt.on svg,.nf-seg-opt.on iconify-icon.ic{opacity:1}

/* Photo */
.nf-drop-wrap{position:relative;width:100%;max-width:200px;margin:0 auto}
.nf-drop{cursor:pointer;display:block;width:100%}
.nf-drop input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.nf-drop-prev{display:block;width:100%;aspect-ratio:1;border-radius:50%;border:2px dashed #B9E0EC;background:#F8FAFC;overflow:hidden;position:relative;transition:border-color .15s,box-shadow .15s}
.nf-drop-prev.has-img{border-style:solid;border-color:#087EA4}
.nf-drop-prev.ok{border-color:#18794E;box-shadow:0 0 0 4px rgba(24,121,78,.18)}
.nf-drop-prev.bad{border-color:#B42318;box-shadow:0 0 0 4px rgba(180,35,24,.16)}
.nf-drop-prev.warn{border-color:#B54708;box-shadow:0 0 0 4px rgba(181,71,8,.16)}
.nf-drop-prev img{width:100%;height:100%;object-fit:cover;display:block}
.nf-drop-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#98A2B3;text-align:center;padding:16px}
.nf-drop-empty b{font-size:14.5px;color:#344054;font-weight:700}
.nf-drop-empty em{font-style:normal;font-size:13px;color:#98A2B3}
.nf-drop-empty svg{color:#087EA4}
.nf-drop-prev.has-img .nf-drop-empty{display:none}
.nf-qa-badge{position:absolute;right:8px;bottom:8px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:3px solid #fff;font-size:16px;font-weight:800;line-height:1;z-index:2;box-shadow:0 2px 8px rgba(15,23,42,.18)}
.nf-qa-badge[hidden]{display:none!important}
.nf-qa-badge.ok{background:#18794E;color:#fff}
.nf-qa-badge.bad{background:#B42318;color:#fff}
.nf-qa-badge.warn{background:#B54708;color:#fff}
.nf-qa-badge.ok::before{content:"✓"}
.nf-qa-badge.bad::before{content:"✕"}
.nf-qa-badge.warn::before{content:"!"}
.nf-tips{list-style:none;margin:0;padding:10px 12px;border-radius:10px;background:#EFF8FE;border:1px solid #B9E0EC;display:flex;flex-direction:column;gap:4px}
.nf-tips li{font-size:13.5px;color:#087EA4;padding-inline-start:14px;position:relative;line-height:1.35}
.nf-tips li::before{content:"";position:absolute;inset-inline-start:0;top:6px;width:6px;height:6px;border-radius:50%;background:#087EA4}
.nf-qa{width:100%;border:1px solid #E4E7EC;border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:6px}
.nf-qa.ok{border-color:#A6F4C5;background:#ECFDF3}
.nf-qa.bad{border-color:#FECDCA;background:#FEF3F2}
.nf-qa.warn{border-color:#FEC84B;background:#FFFAEB}
.nf-qa-score{font-weight:800;font-size:15px;color:#0B2A5B}
.nf-qa.ok .nf-qa-score{color:#18794E}
.nf-qa.bad .nf-qa-score{color:#B42318}
.nf-qa.warn .nf-qa-score{color:#B54708}
.nf-qa-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.nf-qa-list li{font-size:13px;display:flex;gap:6px;align-items:flex-start;color:#344054;line-height:1.35}
.nf-qa-list li::before{content:"";width:7px;height:7px;border-radius:50%;margin-top:4px;flex:none;background:#98A2B3}
.nf-qa-list li.pass::before{background:#18794E}
.nf-qa-list li.fail::before{background:#B42318}

/* Attestation */
.nf-file{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1.5px dashed #D0D5DD;border-radius:12px;background:#F8FAFC;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}
.nf-file:hover,.nf-file.has-file{border-color:#087EA4;background:#EFF8FE;box-shadow:0 0 0 3px rgba(8,126,164,.1)}
.nf-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.nf-file-ico{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#EFF8FE;color:#087EA4}
.nf-file.has-file .nf-file-ico{background:#ECFDF3;color:#18794E}
.nf-file-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.nf-file-txt b{font-size:14px;font-weight:700;color:#0B2A5B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nf-file-txt em{font-style:normal;font-size:12.5px;color:#667085}
.nf-file-btn{font-size:13px;font-weight:700;color:#087EA4;padding:6px 10px;border-radius:8px;background:#fff;border:1px solid #B9E0EC;flex:none}
.nf-attest-ok{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:8px;background:#ECFDF3;color:#18794E;font-size:14px;font-weight:650}
.nf-attest-ok[hidden]{display:none!important}

.nf-invite-inline{display:flex;align-items:flex-start;gap:8px;margin:4px 0 0;padding:10px;border-radius:10px;background:#EFF8FE;border:1px solid #B9E0EC;font-size:14px;font-weight:600;color:#0B2A5B;cursor:pointer}
.nf-invite-inline input{margin-top:2px}

.nf-help{padding:12px 14px;border-radius:12px;background:#EFF8FE;border:1px solid #B9E0EC}
.nf-help-hd{display:flex;align-items:center;gap:6px;font-weight:750;font-size:14.5px;color:#087EA4;margin-bottom:6px}
.nf-help ul{margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px}
.nf-help li{font-size:13.5px;color:#344054;line-height:1.4}
.nf-secure{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:#ECFDF3;border:1px solid #A6F4C5;color:#18794E}
.nf-secure b{display:block;font-size:14.5px;font-weight:750}
.nf-secure span{display:block;font-size:13px;color:#3B7C5A;margin-top:2px}

.nf-foot{
  display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;
  padding:12px 16px;margin-top:4px;background:#fff;border:1px solid #E4E7EC;border-radius:14px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);position:sticky;bottom:12px;z-index:5;
}
.nf-foot-acts{display:flex;gap:8px;margin-inline-start:auto}

@media (max-width:1100px){
  .nf-layout{grid-template-columns:1fr}
  .nf-aside{position:static}
}
@media (max-width:900px){
  .nf-steps{grid-template-columns:1fr 1fr}
  .nf-fields.form{grid-template-columns:1fr}
}

/* Clavier arabe */
.ar-kb{position:fixed;z-index:80;left:50%;bottom:16px;transform:translateX(-50%);width:min(540px,calc(100vw - 20px));background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:12px;display:flex;flex-direction:column;gap:8px}
.ar-kb[hidden]{display:none!important}
.ar-kb-bar{display:flex;align-items:center;justify-content:space-between}
.ar-kb-title{font-family:"IBM Plex Sans Arabic",var(--f-body);font-weight:700;font-size:14.5px}
.ar-kb-close{border:0;background:var(--surface-2);width:28px;height:28px;border-radius:7px;cursor:pointer;display:grid;place-items:center;color:var(--muted);padding:0}
.ar-kb-rows{display:flex;flex-direction:column;gap:5px}
.ar-kb-row{display:flex;gap:4px;justify-content:center}
.ar-key{min-width:34px;height:40px;padding:0 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-family:"IBM Plex Sans Arabic",var(--f-body);font-size:17px;font-weight:600;cursor:pointer}
.ar-key:hover{background:var(--cyan-soft)}
.ar-key.wide{min-width:60px;font-size:14.5px}
.ar-key.space{flex:1;min-width:120px;font-size:13.5px;color:var(--muted)}
.ar-key.ok{background:var(--cyan);border-color:var(--cyan);color:#fff}
.ar-kb-actions{display:flex;gap:5px}

/* ---------- Liste adhérents (style tableau clair) ---------- */
.ml{display:flex;flex-direction:column;gap:16px}
.ml-ph{align-items:flex-start;margin-bottom:2px}
.ml-ph h1{font-size:24px;font-weight:800;letter-spacing:-.03em}
.ml-ph .crumb{font-size:13.5px;color:var(--muted);font-weight:500}
.ml-acts{gap:8px}
.ml-exp{background:var(--surface);border-color:var(--line-2)}
.ml-panel{overflow:hidden}
.ml-panel>.bd.flush{padding:0}

/* Onglets liste (demandes / impression) */
.ml-tabs{display:flex;gap:4px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff;overflow-x:auto;scrollbar-width:none}
.ml-tabs::-webkit-scrollbar{display:none}
.ml-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:650;color:#667085;text-decoration:none;white-space:nowrap;border:1px solid transparent}
.ml-tab:hover{background:#F8FAFC;color:#0B2A5B}
.ml-tab.on{background:#EFF8FE;color:#087EA4;border-color:#B9E0EC}
.ml-tab em{font-style:normal;font-family:var(--f-mono);font-size:12.5px;font-weight:700;background:#F1F5F9;color:#647085;padding:2px 7px;border-radius:999px}
.ml-tab.on em{background:#087EA4;color:#fff}
.ml-filter-selects.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ml-filter-selects.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ml-filter-selects.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ml-toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap}
.ml-toolbar .sp{flex:1}
.ml-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}
.ml-photo-card{background:#fff;border:1px solid #E4E7EC;border-radius:14px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ml-photo-card .photo-big{width:140px;aspect-ratio:3/4;border-radius:12px;overflow:hidden;border:1px solid #E4E7EC}
.ml-photo-card .photo-big img{width:100%;height:100%;object-fit:cover;display:block}
.ml-photo-card form{width:100%}
.ml-callout{margin:0 16px 16px;padding:12px 14px;border-radius:12px;background:#EFF8FE;border:1px solid #B9E0EC;font-size:14.5px;color:#0B2A5B;line-height:1.45}
.ml-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.ml-kpi{background:#fff;border:1px solid #E4E7EC;border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ml-kpi b{display:block;font-size:24px;font-weight:800;color:#0B2A5B;letter-spacing:-.02em;line-height:1.1}
.ml-kpi span{font-size:13.5px;color:#667085;font-weight:600}
@media (max-width:900px){.ml-photo-grid{grid-template-columns:1fr 1fr}.ml-filter-selects.n2,.ml-filter-selects.n3,.ml-filter-selects.n4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ml-photo-grid{grid-template-columns:1fr}}

/* Filtres — 2 rangées alignées (recherche + selects) */
.ml-filters{padding:10px 14px;border-bottom:1px solid var(--line);background:#F8FAFC}
.ml-filters-form{display:flex;flex-direction:column;gap:8px;width:100%}
.ml-filter-row{display:flex;align-items:center;gap:8px;width:100%;min-width:0}
.ml-filter-search .ml-search{flex:1;min-width:0}
.ml-filter-selects{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ml-search{position:relative;min-width:0}
.ml-search svg,.ml-search iconify-icon.ic{
  position:absolute;top:50%;inset-inline-start:12px;transform:translateY(-50%);
  color:#94A3B8;pointer-events:none;z-index:1;width:16px;height:16px;
}
.ml-search input{
  width:100%;height:38px;box-sizing:border-box;margin:0;
  padding:0 12px 0 38px;border:1px solid #E2E8F0;border-radius:10px;
  background:#fff;font-size:15px;font-weight:500;line-height:40px;
}
.ml-search input:focus{outline:none;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}
[dir=rtl] .ml-search input{padding:0 38px 0 12px}
.ml-filters select{
  width:100%;height:38px;box-sizing:border-box;min-width:0;margin:0;
  padding:0 32px 0 12px;border-radius:10px;border:1px solid #E2E8F0;background:#fff;
  font-size:14.5px;font-weight:500;cursor:pointer;line-height:40px;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}
[dir=rtl] .ml-filters select{padding:0 12px 0 32px;background-position:left 10px center}
.ml-filters select:focus{outline:none;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}
.ml-filter-acts{display:flex;align-items:center;gap:8px;flex:none}
.ml-filters .btn{
  height:38px;min-height:38px;padding:0 16px;border-radius:10px;white-space:nowrap;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;margin:0;
}

/* Table liste — base commune ; largeurs fixes seulement si .ml-t-members / .ml-t-print */
.ml-t,.datatable-table.ml-t,.datatable-wrapper .ml-t{
  font-size:14.5px;
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.ml-t-members,.ml-t-print{table-layout:fixed}
.ml-t-members th:nth-child(1),.ml-t-members td:nth-child(1){width:20%}
.ml-t-members th:nth-child(2),.ml-t-members td:nth-child(2){width:8%}
.ml-t-members th:nth-child(3),.ml-t-members td:nth-child(3){width:7%}
.ml-t-members th:nth-child(4),.ml-t-members td:nth-child(4){width:18%}
.ml-t-members th:nth-child(5),.ml-t-members td:nth-child(5){width:13%}
.ml-t-members th:nth-child(6),.ml-t-members td:nth-child(6){width:10%}
.ml-t-members th:nth-child(7),.ml-t-members td:nth-child(7){width:11%}
.ml-t-members th:nth-child(8),.ml-t-members td:nth-child(8){width:13%}
.ml-t-print th:nth-child(1),.ml-t-print td:nth-child(1){width:44px}
.ml-t-print th:nth-child(2),.ml-t-print td:nth-child(2){width:28%}
.ml-t-print th:nth-child(3),.ml-t-print td:nth-child(3){width:14%}
.ml-t-print th:nth-child(4),.ml-t-print td:nth-child(4){width:22%}
.ml-t-print th:nth-child(5),.ml-t-print td:nth-child(5){width:12%}
.ml-t-print th:nth-child(6),.ml-t-print td:nth-child(6){width:12%}
.ml-t-members th:last-child,.ml-t-members td:last-child{text-align:end;padding-inline-end:14px}
.ml-yn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:4px 10px;border-radius:999px;font-size:13.5px;font-weight:700;line-height:1.2}
.ml-yn.oui{background:var(--ok-soft);color:var(--ok)}
.ml-yn.non{background:var(--bad-soft);color:var(--bad)}
.ml-t th,.datatable-wrapper .ml-t th{
  font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748B;font-weight:700;
  background:#F8FAFC;padding:9px 12px;border-bottom:1px solid #E8EEF5;white-space:nowrap;
  position:sticky;top:0;z-index:3;box-shadow:0 1px 0 #E2E8F0;
}
.ml-t td,.datatable-wrapper .ml-t td{
  padding:8px 12px;vertical-align:middle;border-bottom:1px solid #F1F5F9;
}
.ml-t tbody tr:nth-child(even) td{background:#FAFBFC}
.ml-t tbody tr:hover td{background:#EFF8FE}
.ml-person{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:0;max-width:none}
.ml-person .av{
  width:40px;height:40px;border-radius:50%;flex:none;overflow:hidden;
  border:2px solid #fff;background:#E2E8F0;
  box-shadow:0 0 0 1px #E2E8F0;
  display:grid;place-items:center;
}
.ml-person .av img{
  width:100%;height:100%;object-fit:cover;object-position:center 18%;
  display:block;
}
.ml-person-txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ml-person .nm{font-weight:700;font-size:15px;line-height:1.25;color:#0B2A5B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-person .sub{font-size:13.5px;color:#647085;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-mat{display:inline-block;padding:4px 8px;border-radius:7px;background:#F1F5F9;color:#475569;font-size:13.5px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.ml-contact{display:flex;flex-direction:column;gap:3px;font-size:14px;color:#334155;min-width:0;max-width:none}
.ml-contact span{display:inline-flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-contact svg,.ml-contact iconify-icon.ic{color:#94A3B8;flex:none;width:14px;height:14px}
.ml-pill{display:inline-block;padding:4px 9px;border-radius:7px;background:#EFF8FE;color:#0B2A5B;font-size:13.5px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-dir{font-size:14.5px;color:#334155;font-weight:500}
.ml-st{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;white-space:nowrap}
.ml-st i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.ml-st.bg-ok{color:var(--ok);background:none;padding:0}
.ml-st.bg-bad{color:var(--bad);background:none;padding:0}
.ml-st.bg-warn{color:var(--warn);background:none;padding:0}
.ml-st.bg-info{color:var(--info);background:none;padding:0}
.ml-st.bg-neutral,.ml-st.bg-violet{color:var(--muted);background:none;padding:0}
.ml-card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.ml-card .chip,.ml-card .badge{font-size:12.5px;padding:3px 9px;border-radius:999px;font-weight:650;line-height:1.3;white-space:nowrap}
.ml-card .mono{font-size:13.5px;color:#647085}
.ml-ops{display:inline-flex;gap:4px;justify-content:flex-end}
.ml-op{width:30px;height:30px;border-radius:7px;border:1px solid #E2E8F0;background:#fff;display:inline-grid;place-items:center;color:#647085;text-decoration:none;transition:border-color .12s,color .12s,background .12s}
.ml-op svg,.ml-op iconify-icon.ic{width:15px;height:15px}
.ml-op.view:hover{color:#087EA4;border-color:#B9E0EC;background:#EFF8FE}
.ml-op.edit:hover{color:#0B2A5B;border-color:#D0D5DD;background:#F5F7FA}
.ml-panel .pager{border-top:1px solid #F1F5F9}
/* Onglets soulignés (impression, files) */
.ml-tabs.line{gap:0;padding:0 16px;background:#fff}
.ml-tabs.line .ml-tab{border-radius:0;border:0;border-bottom:2px solid transparent;padding:14px 16px;margin-bottom:-1px;color:#667085}
.ml-tabs.line .ml-tab:hover{background:transparent;color:#0B2A5B}
.ml-tabs.line .ml-tab.on{background:transparent;color:#0B2A5B;border-bottom-color:#087EA4;font-weight:750}
.ml-tabs.line .ml-tab em{background:transparent;color:inherit;padding:0;font-weight:700}
.ml-tabs.line .ml-tab.on em{background:transparent;color:#087EA4}
.ml-toolbar .check{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:#334155;cursor:pointer;user-select:none}
.ml-toolbar .check input{width:16px;height:16px;accent-color:#087EA4}
@media (max-width:1100px){
  .ml-filter-selects{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .ml-filter-search{flex-wrap:wrap}
  .ml-filter-search .ml-search{flex:1 1 100%}
  .ml-filter-acts{width:100%}
  .ml-filter-acts .btn{flex:1}
  .ml-filter-selects{grid-template-columns:1fr 1fr}
  .ml-t-members th:nth-child(n),.ml-t-members td:nth-child(n),
  .ml-t-print th:nth-child(n),.ml-t-print td:nth-child(n){width:auto}
  .ml-person .av{width:48px;height:48px}
}
@media (max-width:560px){
  .ml-filter-selects{grid-template-columns:1fr}
}

/* ---------- Fiche adherent ---------- */
.ms{display:flex;flex-direction:column;gap:16px}
.ms-hero{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow)}
.ms-hero-main{display:flex;flex-direction:column;gap:12px;min-width:0;flex:1}
.ms-hero .crumb{gap:8px;margin:0}
.ms-id{display:flex;align-items:center;gap:16px;min-width:0}
.ms-av-wrap{position:relative;flex:none}
.ms-av{width:84px;height:84px;border-radius:50%;border:3px solid #E8F1F8;box-shadow:0 0 0 1px var(--line);display:block}
.ms-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.ms-av-cam{position:absolute;inset-inline-end:0;bottom:2px;width:28px;height:28px;border-radius:50%;background:#087EA4;color:#fff;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 2px 8px rgba(8,126,164,.35);text-decoration:none}
.ms-av-cam:hover{background:var(--navy);color:#fff}
.ms-id-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.ms-name-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 14px}
.ms-id-txt h1{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:0}
.ms-ar{font-family:"IBM Plex Sans Arabic",var(--f-body);font-size:17px;color:#667085;font-weight:600}
.ms-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:14.5px;color:var(--muted)}
.ms-meta .dot{opacity:.5}
.ms-meta b{color:var(--fg);font-weight:700}
.ms-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.ms-hero-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.ms-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:16px;align-items:start}
.ms-main,.ms-aside{display:flex;flex-direction:column;gap:14px;min-width:0}
.ms-aside{position:static}
.ms-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.ms-media .ms-preview{padding:16px 16px 10px}
.ms-card-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);background:#F8FAFC;flex-wrap:wrap}
.ms-card-hd h3{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:750;margin:0}
.ms-card-hd h3 svg,.ms-card-hd h3 iconify-icon.ic{color:#087EA4}
.ms-card-hd h3 em{font-style:normal;font-family:var(--f-mono);font-size:13.5px;color:var(--muted);background:var(--surface-3);padding:2px 8px;border-radius:999px;margin-inline-start:4px}
.ms-badge{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:650;padding:4px 10px;border-radius:999px}
.ms-badge.ok{background:var(--ok-soft);color:var(--ok)}
.ms-badge.muted{background:var(--surface-3);color:var(--muted)}
.ms-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:2px 4px 6px}
.ms-kv-it{display:flex;align-items:flex-start;gap:10px;padding:12px 12px;border-bottom:1px solid var(--line);min-width:0}
.ms-kv-ic{width:32px;height:32px;border-radius:9px;background:#EAF4FB;color:#087EA4;display:grid;place-items:center;flex:none}
.ms-kv-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ms-kv .k{font-size:12.5px;color:#98A2B3;font-weight:650;letter-spacing:.02em}
.ms-kv .v{font-size:15px;font-weight:700;overflow-wrap:anywhere;color:var(--fg)}
.ms-deps{display:flex;flex-direction:column}
.ms-dep{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.ms-dep:last-child{border-bottom:0}
.ms-dep:hover{background:var(--cyan-soft)}
.ms-dep .av{width:40px;height:40px;border-radius:50%}
.ms-dep-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ms-dep-txt b{font-size:15px}
.ms-dep-txt span{font-size:13.5px;color:var(--muted)}
.ms-dep-st{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.ms-card-ft{padding:12px 16px;border-top:1px solid var(--line);background:#F8FAFC}
.ms-add{display:inline-flex;align-items:center;gap:6px;list-style:none;cursor:pointer;font-weight:650;color:#087EA4}
.ms-add::-webkit-details-marker{display:none}
.ms-dep-form{margin-top:12px}
.ms-t th{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
.ms-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:15px;display:flex;flex-direction:column;align-items:center;gap:8px}
.ms-empty-ic{width:52px;height:52px;border-radius:14px;background:#F2F4F7;color:#98A2B3;display:grid;place-items:center}
.ms-empty p{margin:0}
.ms-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ms-msgs{display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.ms-msg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px}
.ms-msg-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.ms-msg-body{font-size:14.5px;white-space:pre-line}
.ms-tl{display:flex;flex-direction:column;gap:0;padding:14px 16px 8px}
.ms-tl-it{display:grid;grid-template-columns:16px 1fr;gap:10px;padding-bottom:14px;position:relative}
.ms-tl-it::before{content:"";position:absolute;inset-inline-start:6px;top:14px;bottom:0;width:2px;background:var(--line)}
.ms-tl-it:last-child::before{display:none}
.ms-tl-it .dot{width:12px;height:12px;border-radius:50%;background:#087EA4;margin-top:3px;box-shadow:0 0 0 3px #EAF4FB;z-index:1}
.ms-tl-it .x{font-size:14.5px;font-weight:550}
.ms-tl-it .w{font-size:13px;color:var(--muted);margin-top:2px}
.ms-preview{display:flex;flex-direction:column;align-items:center;gap:8px;overflow:hidden}
.ms-preview .mcard,.ms-preview .flip{width:min(320px,100%)!important;max-width:100%}
.ms-print-row{display:flex;flex-direction:column;gap:8px;padding:0 16px 14px}
.ms-print-row .ms-note{margin:0;display:inline-flex;align-items:center;gap:6px}
.ms-print-row form{margin:0}
.ms-photo-block{border-top:1px solid var(--line);background:#F8FAFC}
.ms-photo-block-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 0;flex-wrap:wrap}
.ms-photo-block-hd b{display:inline-flex;align-items:center;gap:7px;font-size:14.5px}
.ms-photo-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:12px 16px 14px}
.ms-photo-frame{width:96px;aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface);flex:none}
.ms-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}
.ms-photo-side{display:flex;flex-direction:column;gap:8px;min-width:0}
.ms-photo-up{margin:0}
.ms-file-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;border:1px dashed #CBD5E1;border-radius:9px;background:#fff;cursor:pointer;font-weight:600;font-size:14px;color:var(--fg);overflow:hidden}
.ms-file-btn:hover{border-color:#087EA4;background:#EAF4FB;color:var(--navy)}
.ms-file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ms-acts{display:flex;flex-direction:column;gap:8px;padding:12px}
.ms-pass{display:flex;flex-direction:column;gap:10px;padding:12px 16px 16px}
.ms-pass .field{margin:0}
.ms-pass .ms-note{margin:0}
.ms-act{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font-weight:650;font-size:14px;cursor:pointer;text-align:start;line-height:1.25}
.ms-act span{min-width:0}
.ms-act:hover{filter:brightness(.98)}
.ms-act.danger{color:#B42318;border-color:#FECDCA;background:#FEF3F2}
.ms-act.warn{color:#B54708;border-color:#FEDF89;background:#FFFAEB}
.ms-act.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 28%,var(--line));background:var(--ok-soft)}
.ms-act.neutral{color:var(--navy);border-color:var(--line);background:#F8FAFC}
.ms-note{padding:10px 12px;border-radius:10px;background:var(--info-soft);color:var(--navy);font-size:14px;border:1px solid color-mix(in srgb,var(--cyan) 20%,transparent)}
.ms-note.bad{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}
.ms-danger-zone{padding:12px 16px}
.ms-del{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.ms-t td,.ms-t th{padding:10px 14px}
.ms-kv-it:nth-last-child(-n+3){border-bottom:0}
@media (max-width:1100px){.ms-grid{grid-template-columns:1fr}.ms-kv{grid-template-columns:repeat(2,minmax(0,1fr))}.ms-kv-it:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.ms-kv-it:nth-last-child(-n+2){border-bottom:0}.ms-split{grid-template-columns:1fr}.ms-aside{max-width:420px}}
@media (max-width:620px){.ms-kv{grid-template-columns:1fr}.ms-kv-it{border-bottom:1px solid var(--line)}.ms-kv-it:last-child{border-bottom:0}.ms-dep{grid-template-columns:40px minmax(0,1fr)}.ms-dep .ml-mat,.ms-dep-st{grid-column:2}.ms-aside{max-width:none}.ms-av{width:72px;height:72px}.ms-id-txt h1{font-size:24px}}

/* Historique onglets + lignes */
.ms-activity .ms-act-hd{border-bottom:0}
.ms-tabs{display:flex;gap:4px;padding:0 12px 0;border-bottom:1px solid var(--line);background:#F8FAFC;overflow-x:auto;scrollbar-width:none}
.ms-tabs::-webkit-scrollbar{display:none}
.ms-tab{display:inline-flex;align-items:center;gap:7px;padding:11px 12px;font-size:14px;font-weight:650;color:#667085;text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;flex:none}
.ms-tab:hover{color:var(--navy);background:rgba(8,126,164,.06)}
.ms-tab.on{color:#087EA4;border-bottom-color:#087EA4;background:#fff}
.ms-tab em{font-style:normal;font-family:var(--f-mono);font-size:12.5px;font-weight:700;background:#EAF4FB;color:#087EA4;padding:1px 7px;border-radius:999px}
.ms-tab.on em{background:#087EA4;color:#fff}
.ms-act-body{min-height:120px}
.ms-rows{display:flex;flex-direction:column}
.ms-row{display:grid;grid-template-columns:118px minmax(0,1.4fr) 72px auto minmax(0,1fr);gap:10px 12px;align-items:center;padding:12px 16px;border-bottom:1px solid #F1F5F9}
.ms-row:last-child{border-bottom:0}
.ms-row:hover{background:#F8FAFC}
.ms-row-dt{font-size:13.5px;color:#98A2B3;font-variant-numeric:tabular-nums;white-space:nowrap}
.ms-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.ms-row-main b{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-row-main .sub{font-size:13.5px;color:#98A2B3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-row-ch{font-size:13.5px;color:#667085;text-transform:lowercase}
.ms-row-note{font-size:14px;color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-rows-msg .ms-row{grid-template-columns:118px minmax(0,1fr)}
.ms-row-body{font-size:14.5px;color:var(--fg);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;margin-top:4px}
.ms-tl-pad{padding:14px 16px 8px}
.pager.compact{padding:10px 14px;font-size:13.5px;background:#F8FAFC}
@media (max-width:900px){
  .ms-row{grid-template-columns:1fr 1fr;gap:6px 10px}
  .ms-row-dt{grid-column:1/-1}
  .ms-row-main{grid-column:1/-1}
  .ms-row-note{grid-column:1/-1;white-space:normal}
}
.ms-send{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.ms-send-hd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.ms-send-hd h3{margin:0;font-size:15px;font-weight:750;display:inline-flex;align-items:center;gap:8px}
.ms-send-hd h3 svg,.ms-send-hd h3 iconify-icon.ic{color:#087EA4}
.ms-send-hd p{margin:4px 0 0;font-size:14px;color:var(--muted)}
.ms-send-link{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:#087EA4;text-decoration:none;padding:6px 10px;border-radius:8px;background:#EAF4FB;font-weight:650}
.ms-send-link:hover{color:var(--navy)}
.ms-send-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(140px,1.15fr);gap:10px}
.ms-send-acts form{margin:0}
.ms-send-btn{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 10px;border-radius:12px;border:1px solid var(--line);background:#F8FAFC;cursor:pointer;font-weight:700;font-size:14.5px;color:var(--fg);min-height:78px}
.ms-send-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.06)}
.ms-send-btn:disabled{opacity:.45;cursor:not-allowed}
.ms-send-btn.sms{border-color:#B6E0F0;background:#EAF4FB;color:#0B2A5B}
.ms-send-btn.wa{border-color:#A7F3D0;background:#ECFDF5;color:#047857}
.ms-send-btn.mail{border-color:#BFDBFE;background:#EFF6FF;color:#1D4ED8}
.ms-send-btn.all{flex-direction:row;gap:10px;border:0;background:#0B2A5B;color:#fff;min-height:78px;font-size:15px}
.ms-send-btn.all:hover:not(:disabled){background:#0a234c;box-shadow:0 6px 16px rgba(11,42,91,.28)}
@media (max-width:720px){.ms-send-acts{grid-template-columns:1fr 1fr}.ms-send-all{grid-column:1/-1}}

/* Page publique carte (/c/{token}) */
body.bare{background:radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--cyan) 18%,transparent),transparent 55%),linear-gradient(180deg,var(--navy) 0%,#0b1f33 38%,var(--bg) 38%)}
.bp{max-width:480px;margin:0 auto;padding:28px 18px 48px;display:flex;flex-direction:column;gap:18px;color:var(--fg)}
.bp-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bp-logo{height:32px}
.bp-org{font-size:13.5px;font-weight:700;color:rgba(255,255,255,.85);letter-spacing:.04em;text-transform:uppercase}
.bp-hero{color:#fff;display:flex;flex-direction:column;gap:6px;padding:4px 2px 8px}
.bp-kicker{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.bp-hero h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.bp-ar{margin:0;align-self:flex-start;font-family:"IBM Plex Sans Arabic",var(--f-body);font-size:17px;line-height:1.4;opacity:.92}
.bp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.bp-card-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px 16px 16px;box-shadow:var(--shadow-lg)}
.bp-hint{margin:0;font-size:13.5px;color:var(--muted);text-align:center}
.bp-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow)}
.bp-meta>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.bp-meta span{font-size:12px;color:var(--faint);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.bp-meta b{font-size:14.5px;overflow-wrap:anywhere}
.bp-alert{display:flex;gap:8px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn);font-size:14.5px;font-weight:600;border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}
.bp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bp-foot{margin:0;text-align:center;font-size:13px;color:var(--muted);line-height:1.4}
@media (max-width:480px){.bp-meta{grid-template-columns:1fr}.bp-actions{grid-template-columns:1fr}}
@media print{
  body.bare{background:#fff!important}
  .bp-top,.bp-actions,.bp-foot,.bp-hint,.bp-alert{display:none!important}
  .bp{max-width:none;padding:0}
  .bp-hero{color:#000}
  .bp-card-wrap{box-shadow:none;border:0;padding:0}
}

/* ---------- Dashboard FlowTask (cartes claires pastels) ---------- */
.ft{display:flex;flex-direction:column;gap:20px}
.ft-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.ft-hello{font-size:28px;font-weight:800;letter-spacing:-.035em;margin:0 0 4px;color:#0F172A}
.ft-wave{display:inline-block;animation:ftw .9s ease-in-out 2}
@keyframes ftw{0%,100%{transform:rotate(0)}25%{transform:rotate(18deg)}50%{transform:rotate(-8deg)}}
.ft-muted{margin:0;color:#64748B;font-size:15px}
.ft-top-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ft-live{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #E2E8F0;border-radius:999px;padding:7px 12px;font-size:13.5px;font-weight:700;color:#10B981;box-shadow:0 1px 2px rgba(15,23,42,.04),0 4px 12px rgba(15,23,42,.04)}
.ft-dot{width:8px;height:8px;border-radius:50%;background:#10B981;animation:ftp 1.5s ease-out infinite}
@keyframes ftp{0%{box-shadow:0 0 0 0 rgba(16,185,129,.45)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.ft-range{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:8px 14px;font-size:14px;font-weight:600;display:flex;gap:8px;align-items:center;box-shadow:0 1px 2px rgba(15,23,42,.04),0 4px 12px rgba(15,23,42,.04);color:#0F172A}
.ft-range em{font-style:normal;color:#94A3B8;font-weight:500}
.ft-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ft-kpi{background:#fff;border:1px solid #E8EEF5;border-radius:16px;padding:18px;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 18px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:12px;transition:transform .14s,box-shadow .14s}
.ft-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(15,23,42,.1)}
.ft-kpi-top{display:flex;justify-content:space-between;align-items:center}
.ft-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center}
.ft-kpi.ton-blue .ft-ico{background:#DBEAFE;color:#2563EB}
.ft-kpi.ton-green .ft-ico{background:#D1FAE5;color:#059669}
.ft-kpi.ton-orange .ft-ico{background:#FFEDD5;color:#EA580C}
.ft-kpi.ton-purple .ft-ico{background:#EDE9FE;color:#7C3AED}
.ft-kpi b{font-size:30px;font-weight:800;letter-spacing:-.035em;font-variant-numeric:tabular-nums;line-height:1;color:#0F172A}
.ft-kpi>span{font-size:14.5px;color:#64748B;font-weight:600}
.ft-trend{font-size:13px;font-weight:700;padding:4px 9px;border-radius:999px}
.ft-trend.up{background:#D1FAE5;color:#059669}
.ft-trend.down{background:#FEE2E2;color:#DC2626}
.ft-trend.flat{background:#F1F5F9;color:#64748B}
.ft-actions{display:flex;flex-wrap:wrap;gap:8px}
.ft-act{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;background:#fff;border:1px solid #E2E8F0;text-decoration:none;color:#0F172A;font-size:14px;font-weight:650;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ft-act:hover{border-color:#93C5FD;color:#1D4ED8;background:#EFF6FF}
.ft-act.pri{background:linear-gradient(135deg,#3B82F6,#2563EB);border-color:transparent;color:#fff}
.ft-act.pri:hover{filter:brightness(1.05);color:#fff}
.ft-act.warn{border-color:#FDBA74;background:#FFF7ED;color:#C2410C}
.ft-act.info{border-color:#93C5FD;background:#EFF6FF;color:#1D4ED8}
.ft-mid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px}
.ft-low{display:grid;grid-template-columns:1fr 1.25fr;gap:14px}
.ft-card{background:#fff;border:1px solid #E8EEF5;border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 18px rgba(15,23,42,.05);overflow:hidden;min-width:0}
.ft-card-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid #F1F5F9}
.ft-card-hd h3{margin:0;font-size:15.5px;font-weight:750;color:#0F172A}
.ft-card-bd{padding:16px 18px}
.ft-link{font-size:14px;font-weight:650;color:#2563EB;text-decoration:none}
.ft-link:hover{text-decoration:underline}
.ft-badge{font-size:12.5px;font-weight:800;background:#2563EB;color:#fff;border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}
.ft-prog{display:flex;flex-direction:column;gap:14px;padding:16px 18px}
.ft-prog-i{text-decoration:none;color:inherit;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center}
.ft-prog-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none}
.ft-prog-main{display:flex;flex-direction:column;gap:7px;min-width:0}
.ft-prog-row{display:flex;justify-content:space-between;gap:8px;font-size:14.5px}
.ft-prog-row b{font-weight:650;color:#0F172A}
.ft-prog-row em{font-style:normal;font-weight:750;font-variant-numeric:tabular-nums;color:#64748B}
.ft-bar{height:8px;border-radius:999px;background:#F1F5F9;overflow:hidden}
.ft-bar>i{display:block;height:100%;border-radius:999px}
.ft-timeline{display:flex;flex-direction:column;padding:6px 0}
.ft-tl{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:start;padding:11px 18px;text-decoration:none;color:inherit}
.ft-tl:hover{background:#F8FAFC}
.ft-tl-rail{display:flex;justify-content:center;padding-top:5px;position:relative}
.ft-tl-dot{width:10px;height:10px;border-radius:50%;background:#3B82F6;box-shadow:0 0 0 4px #DBEAFE}
.ft-tl.hot .ft-tl-dot{background:#EF4444;box-shadow:0 0 0 4px #FEE2E2}
.ft-tl.warn .ft-tl-dot{background:#F59E0B;box-shadow:0 0 0 4px #FEF3C7}
.ft-tl-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.ft-tl-body b{font-size:14.5px;font-weight:700;color:#0F172A}
.ft-tl-body em{font-style:normal;font-size:13px;color:#94A3B8}
.ft-tl-n{font-size:12.5px;font-weight:800;background:#F1F5F9;border-radius:999px;padding:2px 7px;font-variant-numeric:tabular-nums;color:#475569}
.ft-people{display:flex;flex-direction:column}
.ft-person{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid #F1F5F9;text-decoration:none;color:inherit}
.ft-person:last-child{border-bottom:0}
.ft-person:hover{background:#F8FAFC}
.ft-av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#DBEAFE;color:#1D4ED8;font-weight:800;font-size:13.5px}
.ft-person-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ft-person-txt b{font-size:15px;font-weight:700;color:#0F172A}
.ft-person-txt em{font-style:normal;font-size:13px;color:#94A3B8}
.ft-empty{padding:18px 16px;color:#94A3B8;font-size:14.5px;margin:0}
.ft-empty.ok{display:flex;align-items:center;gap:8px;color:#059669;font-weight:600}
@media (max-width:1100px){.ft-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-mid,.ft-low{grid-template-columns:1fr}}
@media (max-width:620px){.ft-hello{font-size:24px}.ft-kpis{grid-template-columns:1fr}}

/* Rôles (navbar) */
.role-pill{font-size:12.5px;font-weight:750;padding:4px 10px;border-radius:999px;letter-spacing:.02em}
.role-pill.role-admin{background:var(--info-soft);color:var(--info)}
.role-pill.role-gestionnaire{background:var(--ok-soft);color:var(--ok)}
.role-pill.role-agent{background:var(--violet-soft);color:var(--violet)}

/* Gestion utilisateurs */
.ug{display:flex;flex-direction:column;gap:16px}
.ug-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.ug-top h1{font-size:26px;font-weight:800;letter-spacing:-.03em;margin:0}
.ug-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ug-kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}
.ug-kpi b{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--navy)}
.ug-kpi span{font-size:13px;color:var(--muted);font-weight:600}
.ug-kpi.ton-admin b{color:var(--info)}
.ug-kpi.ton-gest b{color:var(--ok)}
.ug-kpi.ton-agent b{color:var(--violet)}
.ug-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ug-role{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.ug-role header{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.ug-role h3{margin:0;font-size:16px;font-weight:750}
.ug-role p{margin:0;font-size:14px;color:var(--muted);line-height:1.45}
.ug-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.ug-card-hd{padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.ug-card-hd h2{margin:0;font-size:15px;font-weight:750;display:inline-flex;align-items:center;gap:8px}
.ug-card-hd h2 svg{color:var(--cyan)}
.ug-user{display:flex;align-items:center;gap:10px}
.ug-av{width:34px;height:34px;background:var(--cyan-soft);color:var(--navy)}
.ug-t td,.ug-t th{padding:12px 14px;vertical-align:middle}
.ug-dlg{border:0;border-radius:16px;padding:0;width:min(520px,calc(100vw - 24px));box-shadow:var(--shadow-lg);background:var(--surface)}
.ug-dlg::backdrop{background:rgba(5,14,28,.45)}
.ug-dlg-in{display:flex;flex-direction:column}
.ug-dlg-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.ug-dlg-hd h3{margin:0;font-size:17px;font-weight:750}
.ug-dlg-bd{padding:16px}
.ug-dlg-ft{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2)}
@media (max-width:900px){.ug-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ug-roles{grid-template-columns:1fr}}

.s-pharmacie.bthumb{background:linear-gradient(140deg,#0F7B6C,#4CC3A8)} .s-chip.s-pharmacie{background:var(--ok-soft);color:var(--ok)}
.s-chip.s-centre,.s-chip.s-loisirs,.s-chip.s-transport{background:var(--info-soft);color:var(--info)}
details>summary::-webkit-details-marker{display:none}

/* ---------- Rapports ---------- */
.rp{display:flex;flex-direction:column;gap:18px}
.rp-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding:14px 16px;background:#fff;border:1px solid #E8EEF5;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.rp-bar label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:#64748B;text-transform:uppercase;letter-spacing:.04em}
.rp-bar input[type=date]{border:1px solid #E2E8F0;border-radius:10px;padding:9px 12px;background:#F8FAFC;font-size:14.5px;font-weight:600;color:#0F172A}
.rp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rp-kpi{background:#fff;border:1px solid #E8EEF5;border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 16px rgba(15,23,42,.04);display:flex;flex-direction:column;gap:4px;position:relative}
.rp-kpi-dot{position:absolute;top:16px;inset-inline-end:16px;width:10px;height:10px;border-radius:50%}
.rp-kpi b{font-size:26px;font-weight:800;letter-spacing:-.03em;color:#0F172A}
.rp-kpi em{font-style:normal;font-size:14px;color:#64748B;font-weight:600}
.rp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rp-card{background:#fff;border:1px solid #E8EEF5;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 16px rgba(15,23,42,.04);display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px 14px;align-items:start}
.rp-card-ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#DBEAFE;color:#2563EB}
.rp-card-txt h3{margin:0 0 4px;font-size:16px;font-weight:750;color:#0F172A}
.rp-card-txt p{margin:0;font-size:14px;color:#64748B}
.rp-card-acts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
.rp-card-acts .btn{background:#F8FAFC}
@media (max-width:900px){.rp-kpis,.rp-grid{grid-template-columns:1fr}}

/* ---------- Formulaire public adhésion ---------- */
.ad{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,260px);gap:18px;align-items:start;max-width:1100px;margin:0 auto;padding:8px 0 40px}
.ad-hero{grid-column:1/-1;display:flex;justify-content:space-between;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:4px}
.ad-kicker{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13.5px;font-weight:700;color:#087EA4}
.ad-hero h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.03em;color:#0B2A5B}
.ad-lead{margin:6px 0 0;color:#667085;font-size:15px;max-width:52ch;line-height:1.45}
.ad-panel{grid-column:1;overflow:hidden}
.ad-help{grid-column:2;position:sticky;top:24px}
.ad-steps{display:flex;gap:4px;padding:14px 16px;border-bottom:1px solid #E4E7EC;background:#F8FAFC;overflow-x:auto}
.ad-steps .step{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-size:14px;font-weight:650;color:#98A2B3;flex:none;white-space:nowrap}
.ad-steps .step .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#E4E7EC;font-size:12.5px;font-weight:800;color:#667085}
.ad-steps .step .t{display:inline}
.ad-steps .step.on{background:#EFF8FE;color:#0B2A5B}
.ad-steps .step.on .n{background:#087EA4;color:#fff}
.ad-steps .step.done{color:#087EA4}
.ad-steps .step.done .n{background:#B9E0EC;color:#0B2A5B}
.ad-form{padding:16px 16px 8px;display:flex;flex-direction:column;gap:14px}
.ad-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.ad-pieces{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ad-pieces .nf-drop-wrap{max-width:180px}
.ad-recap-wrap{display:flex;flex-direction:column;gap:14px}
.ad-recap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #E4E7EC;border-radius:12px;overflow:hidden;background:#F8FAFC}
.ad-recap>div{padding:11px 14px;border-bottom:1px solid #E4E7EC;display:flex;flex-direction:column;gap:2px}
.ad-recap>div:nth-last-child(-n+2){border-bottom:0}
.ad-recap .k{font-size:12.5px;color:#98A2B3;font-weight:650}
.ad-recap .v{font-size:15px;font-weight:700;color:#0B2A5B;overflow-wrap:anywhere}
.ad-legal{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:#EFF8FE;color:#0B2A5B;font-size:14px;line-height:1.45;border:1px solid #B9E0EC}
.ad-legal p{margin:0}
.ad-legal iconify-icon,.ad-legal svg{color:#087EA4;flex:none;margin-top:2px}
.ad-consent{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #E4E7EC;border-radius:12px;background:#fff;font-size:14.5px;font-weight:550;color:#344054;cursor:pointer;line-height:1.4}
.ad-consent input{margin-top:3px;flex:none;accent-color:#087EA4}
.ad-consent.err{border-color:#FDA29B;background:#FEF3F2}
.ad-foot{padding:8px 0 12px;border-top:1px solid #F1F5F9;margin-top:4px}
.ad-help-card{background:#fff;border:1px solid #E4E7EC;border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ad-help-card b{display:inline-flex;align-items:center;gap:7px;font-size:15px;color:#0B2A5B;margin-bottom:10px}
.ad-help-card ul{margin:0;padding:0 0 0 1.1em;display:flex;flex-direction:column;gap:7px;font-size:14px;color:#667085;line-height:1.4}
.ad-help-card a{color:#087EA4;font-weight:650}
.hint-inline{font-weight:500;color:#98A2B3;font-size:13.5px}
body.sb-public{background:linear-gradient(180deg,#F0F4F8 0%,#F8FAFC 40%,#F8FAFC 100%);min-height:100vh}
body.sb-public.bare{background:radial-gradient(120% 70% at 50% -20%,color-mix(in srgb,var(--cyan) 22%,transparent),transparent 50%),linear-gradient(180deg,var(--navy) 0 300px,#0b1f33 300px,var(--bg) 300px)}
body.sb-public .wrap{max-width:1140px}
@media (max-width:960px){
  .ad{grid-template-columns:1fr}
  .ad-help{grid-column:1;position:static;order:3}
  .ad-panel{order:2}
  .ad-pieces{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ad-hero h1{font-size:24px}
  .ad-steps .step .t{display:none}
  .ad-steps .step.on .t{display:inline}
  .ad-recap{grid-template-columns:1fr}
  .ad-recap>div:nth-last-child(-n+2){border-bottom:1px solid #E4E7EC}
  .ad-recap>div:last-child{border-bottom:0}
}

/* Pages merci / suivi */
.ad-thanks,.ad-track{max-width:640px;margin:12px auto 40px}
.ad-thanks-card{background:#fff;border:1px solid #E4E7EC;border-radius:16px;padding:36px 24px;text-align:center;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.05);display:flex;flex-direction:column;align-items:center;gap:12px}
.ad-thanks-ico{width:64px;height:64px;border-radius:50%;background:#ECFDF3;color:#18794E;display:grid;place-items:center}
.ad-thanks-card h1{margin:0;font-size:24px;color:#0B2A5B}
.ad-thanks-card .muted{margin:0;max-width:40ch}
.ad-thanks-kv{width:100%;max-width:400px;text-align:start;margin:8px 0}
.ad-track-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.ad-track-top h1{margin:0;font-size:24px;color:#0B2A5B}

/* Formulaire service Fondation */
.svc-form{margin-top:4px}
.svc-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:16px;align-items:start}
.svc-main,.svc-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.svc-account .hd{background:#EFF8FE;border-bottom-color:#B9E0EC}
.svc-account .hd h3{color:#087EA4}
.svc-check{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;font-weight:600;color:#334155;cursor:pointer;line-height:1.35;padding:10px 12px;border-radius:10px;background:#F8FAFC;border:1px solid #E4E7EC}
.svc-check input{margin-top:2px;width:16px;height:16px;accent-color:#087EA4;flex:none}
.svc-actions{display:flex;flex-direction:column;gap:8px}
.svc-actions .btn.block{width:100%;justify-content:center}
.svc-form .panel .hd h3{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:16px}
.svc-form .panel .bd.form{padding-top:16px}
@media (max-width:960px){.svc-grid{grid-template-columns:1fr}}

/* Fiche service Fondation */
.svc-show-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch}
.svc-show-grid.hotel{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc-show-grid.hotel>.panel:nth-child(3){grid-column:1/-1}
.svc-show .panel.ml-panel{height:100%;display:flex;flex-direction:column}
.svc-show .panel.ml-panel>.bd{flex:1;display:flex;flex-direction:column}
.svc-show .panel.ml-panel>.bd>.svc-inline-form{margin-top:auto}
.svc-note{padding:10px 14px;font-size:14px;color:#667085;border-top:1px solid #F1F5F9;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.svc-note code{font-size:13.5px;background:#F1F5F9;padding:2px 6px;border-radius:6px}
.svc-inline-form{padding:14px 16px;border-top:1px solid #F1F5F9;background:#F8FAFC;display:flex;flex-direction:column;gap:10px}
.svc-inline-title{font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748B}
.svc-inline-fields{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr) minmax(0,.9fr);gap:10px}
.svc-inline-form .field{margin:0}
.svc-inline-form .field label{font-size:13.5px;font-weight:650;color:#475569;margin-bottom:4px;display:block}
.svc-inline-form .field input,.svc-inline-form .field select{width:100%;height:40px;border:1px solid #E4E7EC;border-radius:10px;padding:0 12px;background:#fff;font-size:14.5px;box-sizing:border-box}
.svc-inline-form .field input:focus,.svc-inline-form .field select:focus{outline:none;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}
.svc-inline-form .field input:disabled,.svc-inline-form .field select:disabled{opacity:.55;background:#F1F5F9}
.svc-inline-form .btn{align-self:flex-start}
.svc-inline-form .btn:disabled{opacity:.5;cursor:not-allowed}
.empty.sm{padding:28px 16px;font-size:14.5px;flex:1;display:grid;place-items:center;text-align:center;color:#667085}
@media (max-width:960px){
  .svc-show-grid.hotel{grid-template-columns:1fr}
  .svc-show-grid.hotel>.panel:nth-child(3){grid-column:auto}
  .svc-inline-fields{grid-template-columns:1fr}
}

/* Partner � gestion h�tel */
.ph-hotel-forms{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.ph-hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.ph-hotel .panel.ml-panel .hd h3{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:16px}
.ph-hotel .bd .field{margin:0}
.ph-hotel .bd .field label{font-size:13.5px;font-weight:650;color:#475569;margin-bottom:4px;display:block}
.ph-hotel .bd .field input,.ph-hotel .bd .field select{width:100%;height:40px;border:1px solid #E4E7EC;border-radius:10px;padding:0 12px;background:#fff;font-size:14.5px;box-sizing:border-box}
.ph-hotel .bd .field input:focus,.ph-hotel .bd .field select:focus{outline:none;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}
.ph-hotel .bd .field input:disabled,.ph-hotel .bd .field select:disabled{opacity:.55;background:#F1F5F9}
.ph-hotel-status select{height:34px;border:1px solid #E4E7EC;border-radius:8px;padding:0 8px;font-size:14px;background:#fff;max-width:140px}
.ph-hotel-acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.ph-hotel-checkin{display:inline-flex;gap:6px;align-items:center}
.ph-hotel-checkin select{height:34px;border:1px solid #E4E7EC;border-radius:8px;padding:0 8px;font-size:14px;min-width:110px}
@media (max-width:900px){.ph-hotel-forms,.ph-hotel-grid{grid-template-columns:1fr}}

.qrbox.stale{opacity:.35;filter:grayscale(1);transition:opacity .3s}

/* Vue Badges (familles) */
.bg-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px}
.bg-sw{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--fg)}
.bg-sw i{width:26px;height:16px;border-radius:4px;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.bg-sw i.t-actif{background:linear-gradient(135deg,#0F6B3F,#25A06A)}
.bg-sw i.t-retraite{background:linear-gradient(135deg,#16325C,#22477A 70%,#D4A64A)}
.bg-sw i.t-veuf{background:linear-gradient(135deg,#512A5B,#A57BAE)}
.bg-sw i.t-conjoint{background:linear-gradient(135deg,#11797F,#62CBC2)}
.bg-sw i.t-enfant{background:linear-gradient(135deg,#CF5039,#F4A65E)}
.bg-sw em{font-style:normal;font-weight:500;color:var(--muted);font-family:var(--f-mono);font-size:12px}
.bg-note{display:flex;align-items:center;gap:8px;margin:0 16px 4px;padding:9px 12px;border-radius:var(--r-sm);background:var(--info-soft);font-size:13px}
.bf{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:16px;overflow:hidden}
.bf-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.bf-id{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.bf-id b{font-family:var(--f-display);font-size:15px}
.bf-acts{display:flex;gap:8px;flex-wrap:wrap}
.bf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding:16px}
.bt{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}
.bt .flip{width:300px;max-width:100%}
.bt .mcard{transition:transform .2s ease,box-shadow .2s ease}
.bt .flip:hover .mcard{box-shadow:0 14px 30px rgba(8,40,30,.3)}
.bt-none{width:300px;max-width:100%;aspect-ratio:85.6/54;border:2px dashed var(--line-2);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:13px}
.bt figcaption{width:300px;max-width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center}
.bt-n{display:flex;flex-direction:column;min-width:0}
.bt-n a{font-weight:700;color:var(--fg);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bt-n a:hover{text-decoration:underline}
.bt-n span{font-size:12px;color:var(--muted)}
.bt-s{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.bt-a{grid-row:1;grid-column:2;display:flex;gap:4px}
@media (prefers-reduced-motion:reduce){.bt .mcard{transition:none}}

/* Reception partenaire — poste de verification */
.pv{display:flex;flex-direction:column;gap:14px}
.pv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.pv-head h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.03em;color:#0B2A5B}
.pv-head .crumb{font-size:12px;font-weight:650;color:#087EA4;text-transform:uppercase;letter-spacing:.06em}
.pv-head p{margin:4px 0 0;color:#667085;font-size:14px}
.pv-clock{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;color:#0B2A5B;letter-spacing:-.03em;line-height:1}
.pv-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pv-kpi{position:relative;overflow:hidden;min-height:108px;border:0;border-radius:16px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff}
.pv-kpi span{font-size:13px;font-weight:650;color:rgba(255,255,255,.92)}
.pv-kpi b{display:block;margin-top:6px;font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff}
.pv-kpi-ico{width:64px;height:64px;display:grid;place-items:center;color:#fff;opacity:.42;flex:none}
.pv-kpi-ico iconify-icon,.pv-kpi-ico svg{width:46px;height:46px}
.pv-kpi.tone-orange{background:#F5A524}
.pv-kpi.tone-violet{background:#6C63FF}
.pv-kpi.tone-rose{background:#F25C78}
.pv-kpi.tone-green{background:#2FBF71}
.pv-desk{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:14px;align-items:stretch}
.pv-scan,.pv-verdict{min-width:0}
.pv .scanview{height:320px;border-radius:16px;background:#071426;position:relative;overflow:hidden}
.scanview.cam-on{position:relative!important;inset:auto!important;z-index:auto!important;display:grid!important;height:320px!important;overflow:hidden!important}
.scanview.cam-on video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.pv-camrow{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.pv-camrow span{font-size:12.5px;color:#667085}
.pv-entry{margin-top:12px;background:#fff;border:1px solid #E4E7EC;border-radius:14px;padding:12px 14px}
.pv-entry label{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}
.pv-entry-row{display:flex;align-items:center;gap:8px}
.pv-entry-ico{width:42px;height:42px;border-radius:12px;background:#FFF4E5;color:#F5A524;display:grid;place-items:center;flex:none}
.pv-entry-ico iconify-icon,.pv-entry-ico svg{color:#F5A524}
.pv .hintx{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border-radius:999px;padding:6px 12px;width:auto;left:50%;right:auto;transform:translateX(-50%);bottom:14px}
.pv-entry-row input{flex:1;min-width:0;height:46px;border:1px solid #E4E7EC;border-radius:10px;padding:0 12px;font-size:18px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#0B2A5B;font-family:var(--f-mono,ui-monospace,monospace)}
.pv-entry-row input:focus{outline:none;border-color:#087EA4;box-shadow:0 0 0 3px rgba(8,126,164,.15)}
.pv-demo{margin-top:12px}
.pv-demo>span{display:block;font-size:12px;font-weight:650;color:#667085;margin-bottom:8px}
.pv-verdict{background:#fff;border:1px solid #E4E7EC;border-radius:16px;padding:8px;min-height:100%}
.pv-verdict #vres,.pv-verdict .vres{height:100%}
.pv .vres.idle{background:#F8FAFC;border:1px dashed #D0D5DD;min-height:360px;justify-content:center}
.pv .vres.idle h3{margin:8px 0 0;color:#0B2A5B;font-size:20px}
.pv .vres.idle ol{margin:8px 0 0;padding:0;list-style:none;text-align:start;display:flex;flex-direction:column;gap:6px;width:min(100%,320px)}
.pv .vres.idle ol li{font-size:13.5px;font-weight:600;color:#334155;background:#fff;border:1px solid #E4E7EC;border-radius:10px;padding:8px 10px}
.pv .vres.idle p{margin:10px 0 0;max-width:36ch;font-size:12.5px;color:#667085}
.pv-idle-mark{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#EFF8FE;color:#087EA4}
.pv-log .hd{display:flex;align-items:center;justify-content:space-between}
.pv-log .hd h3{display:inline-flex;align-items:center;gap:8px;margin:0}
.pv-row-ok td:first-child{box-shadow:inset 3px 0 0 #18794E}
.pv-row-bad td:first-child{box-shadow:inset 3px 0 0 #B42318}
@media (max-width:960px){
  .pv-kpis,.pv-desk{grid-template-columns:1fr 1fr}
  .pv-desk{grid-template-columns:1fr}
  .pv-clock{font-size:22px}
}
@media (max-width:560px){.pv-kpis{grid-template-columns:1fr 1fr}.pv-entry-row{flex-wrap:wrap}.pv-entry-row input{flex:1 1 100%}}
