/* =========================================================
   CFB2B — thème propre, full width & stable
   ========================================================= */

/* -------- Tokens -------- */
:root{
  --font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  --bg:   #0d0a16;
  --bg2:  #151126;
  --bg3:  #1b1630;
  --panel:#141022;
  --txt:  #f6f4fb;
  --muted:#b9b3cf;
  --line: rgba(151,112,255,.16);
  --line2:rgba(151,112,255,.30);

  --brand:   #15c262;
  --brand2:  #24d873;
  --accent:  #8a46ff;

  --r1: 10px; --r2: 14px; --r3: 18px; --r4: 24px;
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 20px; --s6: 24px; --s7: 32px; --s8: 40px;
  --shadow: 0 1px 2px rgba(0,0,0,.35), 0 14px 34px rgba(34,8,74,.28);
  --z-header: 100; --z-dd: 120;
}

/* -------- Base -------- */
*{ box-sizing: border-box; }
html, body{ height:100%; }
html{ color-scheme: dark; background: var(--bg); }
body{
  margin:0; font-family: var(--font); color: var(--txt); line-height:1.5;
  background: radial-gradient(1000px 560px at 12% -10%, rgba(138,70,255,.18), transparent 60%),
              radial-gradient(920px 580px at 100% -10%, rgba(21,194,98,.12), transparent 56%),
              radial-gradient(720px 420px at 50% 120%, rgba(138,70,255,.10), transparent 50%),
              var(--bg);
}
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

/* Containers — plein écran (ultrawide OK) */
.container{
  width:100%;
  max-width:100%;
  margin-inline:auto;
  padding-inline: clamp(14px, 2vw, 28px);
}

/* Header */
.site-header{
  position: sticky; top:0; z-index: var(--z-header);
  background: linear-gradient(to bottom, rgba(13,10,22,.92), rgba(13,10,22,.76));
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  direction: ltr; /* header toujours stable, même en RTL */
}
.site-header .nav{
  display:flex; align-items:center; justify-content:space-between; gap: var(--s4);
  padding: var(--s3) 0;
}
.nav-left, .nav-right{ display:flex; align-items:center; gap: var(--s3); }

/* Brand */
.brand{ display:flex; align-items:center; gap: var(--s2); font-weight:800; letter-spacing:.2px; min-width:0; }
.brand > img{ width:40px; height:40px; object-fit:contain; flex:0 0 auto; padding:4px; border-radius:14px; background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.06)); border:1px solid rgba(255,255,255,.10); box-shadow: 0 10px 22px rgba(71,22,145,.25); }
.brand-text{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.brand-short{ font-size: clamp(18px, 1.2vw, 24px); line-height:1; display:flex; align-items:center; }
.brand-wordmark{ display:block; width: min(100%, 260px); height:auto; filter: drop-shadow(0 10px 26px rgba(57,18,121,.22)); }
.brand-long{ font-size: 13px; font-weight:600; color: var(--muted); letter-spacing:0; line-height:1.2; }

/* Search (compact) */
.search{
  display:flex; align-items:center; gap: var(--s2);
  width: clamp(260px, 30vw, 420px);
  background: rgba(255,255,255,.04); border: 1px solid var(--line); border-radius: 999px;
  padding: 6px 10px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.search input{
  flex:1; min-width:0; outline:none; border:0; background:transparent; color:var(--txt);
  font-size:14px;
}
.btn-search{
  padding:8px 14px; border-radius:999px; border:1px solid transparent;
  background: var(--brand); color:#06221b; font-weight:700; cursor:pointer;
}
.btn-search:hover{ background: var(--brand2); }

/* Primary nav */
.primary-nav a{
  padding:6px 10px; border-radius:999px; border:1px solid transparent;
}
.primary-nav a:hover{ background: rgba(255,255,255,.05); border-color: var(--line2); }

/* Pills (header right) */
.pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius: 999px; border:1px solid var(--line);
  background: rgba(255,255,255,.05); font-weight:600; font-size:13px;
}
.pill:hover{ background: rgba(255,255,255,.08); border-color: var(--line2); }

/* Lang switcher (menu ANCRE au header, pas flottant) */
.lang-switcher{ position: relative; }
.lang-switcher .ls-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:12px; background: var(--bg3); border:1px solid var(--line); cursor:pointer;
}
.lang-switcher .ls-btn .flag{ font-size:16px; }
.lang-switcher .ls-btn .code-short{ display:none; font-weight:800; letter-spacing:.04em; }
.lang-switcher .ls-btn .name{ font-weight:700; }
.lang-switcher .ls-btn .caret{ opacity:.7; }
.lang-switcher .ls-menu{
  position:absolute; inset-block-start: calc(100% + 8px); inset-inline-end: 0;
  min-width: 240px; max-height: 55vh; overflow:auto;
  display:none; padding:6px; z-index: var(--z-dd);
  background: var(--bg2); border:1px solid var(--line); border-radius:12px; box-shadow: var(--shadow);
}
.lang-switcher .ls-menu.open{ display:block; }
.lang-switcher .ls-item{
  display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; color:inherit;
}
.lang-switcher .ls-item:hover{ background: rgba(255,255,255,.06); }
.lang-switcher .ls-item.active{ outline:2px solid rgba(25,209,161,.35); background: rgba(0,0,0,.25); }
.lang-switcher .ls-item .flag{ font-size:16px; }
.lang-switcher .ls-item .code{ width:42px; opacity:.8; }
.lang-switcher .ls-item .label{ flex:1; opacity:.9; }

/* Page layout */
.page{ padding-block: var(--s7); }
.layout{
  display:grid; grid-template-columns: 300px 1fr; gap: var(--s4);
}
.home-layout{
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  align-items: start;
}
@media (max-width: 1100px){
  .layout{ grid-template-columns: 1fr; }
  .home-layout{ grid-template-columns: 1fr; }
}

/* Panels / Sidebar */
.panel{
  background: radial-gradient(880px 420px at 110% 0%, rgba(138,70,255,.10), transparent 55%),
              radial-gradient(720px 360px at -10% -10%, rgba(21,194,98,.06), transparent 55%),
              var(--bg2);
  border:1px solid var(--line); border-radius: var(--r3);
  box-shadow: var(--shadow);
}
.stack{ display:flex; flex-direction:column; gap: var(--s4); }
.panel-title{
  padding: var(--s4) var(--s4) var(--s2);
  color: var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:12px;
}
.row-item{
  margin: 0 var(--s4) var(--s2); padding: 10px 12px; border-radius:12px;
  background: rgba(255,255,255,.05); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
}
.row-item:hover{ background: rgba(255,255,255,.08); border-color: var(--line2); }

/* Hero */
.hero{ padding: var(--s7); }
.hero .eyebrow{ color: var(--muted); text-transform:uppercase; letter-spacing:.14em; margin-bottom: var(--s2); }
.hero h1{ margin: 0 0 var(--s2); font-size: clamp(28px, 3.2vw, 44px); line-height:1.2; }
.hero .lead{ color: var(--muted); max-width: 80ch; }
.hero-logo{ width:min(100%, 620px); height:auto; margin: -4px 0 16px; filter: drop-shadow(0 16px 38px rgba(73,25,148,.28)); }
.hero-note{
  margin-top: var(--s3);
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  color: var(--muted);
}
.hero-note strong{
  display:block;
  margin-bottom: 4px;
  color: var(--txt);
}
.actions{ display:flex; flex-wrap:wrap; gap: var(--s3); margin-top: var(--s3); }
.btn{
  display:inline-flex; align-items:center; gap:8px; padding: 9px 14px;
  border-radius:12px; border:1px solid var(--line); background: var(--bg3); font-weight:700;
}
.btn:hover{ background: rgba(255,255,255,.06); border-color: var(--line2); }
.btn.primary{ background: var(--brand); border-color: transparent; color:#05231a; }
.btn.primary:hover{ background: var(--brand2); }
.badges{ display:flex; gap: var(--s2); margin-top: var(--s3); flex-wrap:wrap; }
.badge{
  padding:6px 10px; border-radius:999px; border:1px solid rgba(151,112,255,.22);
  background: linear-gradient(135deg, rgba(138,70,255,.14), rgba(21,194,98,.10)); font-size:12px; font-weight:700;
}

/* Bar */
.bar{ display:flex; align-items:center; justify-content:space-between; gap: var(--s4); margin-top: var(--s4); }
.between{ justify-content:space-between; }
.row{ display:flex; align-items:center; }
.gap{ gap: var(--s3); }
.muted{ color: var(--muted); }
.select, select{
  background: var(--bg3); color: var(--txt); border:1px solid var(--line);
  border-radius: 12px; padding: 8px 12px; font: inherit;
}

/* Grille produits — plein ultrawide */
.grid-products{
  display:grid; gap: var(--s4);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.card{
  background: var(--bg2); border:1px solid var(--line); border-radius: var(--r2);
  box-shadow: var(--shadow); padding: var(--s4); min-height: 220px;
}
.card .ph{
  height: 140px; border-radius:12px;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.card .title{ font-weight:800; margin-top: var(--s3); }
.card .price{ font-size:18px; font-weight:800; margin-top: var(--s2); }

/* Footer */
.site-footer{ border-top:1px solid var(--line); color:var(--muted); padding: var(--s6) 0; background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.015)); }

/* RTL : le header reste LTR grâce à .site-header{direction:ltr} */
:root:lang(ar) body{ direction: rtl; }


/* Mobile / tablette */
@media (max-width: 1100px){
  .layout{ grid-template-columns: 1fr; }
  .content{ order: 1; }
  .sidebar{ order: 2; }
}

@media (max-width: 900px){
  .site-header .nav{
    display:grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 10px;
  }
  .nav-left,
  .nav-right{
    width: 100%;
  }
  .nav-left{
    display:grid;
    grid-template-columns: 1fr;
    gap: 10px;
    justify-items: center;
  }
  .brand{
    min-width: 0;
    justify-content: center;
    text-align: center;
  }
  .brand-text{
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-align: center;
  }
  .search{
    width: 100%;
    min-width: 0;
  }
  .nav-right{
    display:flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }
  .pill,
  .lang-switcher .ls-btn{
    min-height: 42px;
  }
  .lang-switcher .ls-menu{
    inset-inline-start: 0;
    inset-inline-end: auto;
    width: min(100%, 320px);
  }
  .page{ padding-block: var(--s4); }
  .hero{ padding: var(--s5); }
  .bar{
    flex-direction: column;
    align-items: stretch;
  }
  .bar .row.gap{ flex-wrap: wrap; }
}

@media (max-width: 640px){
  .container{ padding-inline: 10px; }
  .site-header .nav{ padding: 10px 0; gap: 10px; }
  .nav-left, .nav-right{ gap: 10px; }
  .brand{ gap: 10px; }
  .brand > img{ width:26px; height:26px; }
  .brand-short{ font-size: 14px; }
  .brand-wordmark{ width: min(100%, 220px); }
  .brand-long{ font-size: 11px; max-width: 220px; }
  .search{ padding: 6px 8px; gap: 6px; }
  .search input{ font-size: 13px; }
  .btn-search{ padding: 8px 14px; font-size: 13px; }
  .pill{ padding: 8px 12px; font-size: 12px; }
  .primary-nav{ display:none; }
  .lang-switcher .ls-btn{
    width: auto;
    padding: 8px 10px;
    gap: 4px;
    border-radius: 10px;
  }
  .lang-switcher .ls-btn .flag,
  .lang-switcher .ls-btn .name{ display:none; }
  .lang-switcher .ls-btn .code-short{ display:inline; }
  .lang-switcher .ls-menu{ min-width: 220px; }
  .panel-title{ padding: var(--s3) var(--s3) var(--s2); }
  .row-item{
    margin: 0 var(--s3) var(--s2);
    padding: 12px;
  }
  .hero{ padding: 16px; }
  .hero h1{ font-size: clamp(24px, 8vw, 32px); }
  .actions .btn{
    width: 100%;
    justify-content: center;
  }
  .select,
  select{
    width: 100%;
  }
  .grid-products{ grid-template-columns: 1fr; }
  .card{ min-height: 0; }
}


/* Catalogue */
.catalogue-hero{
  margin-bottom: var(--s4);
}
.catalogue-chips{
  display:flex;
  flex-wrap:wrap;
  gap: var(--s2);
  margin-top: var(--s3);
}
.chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  font-weight:600;
}
.chip:hover{
  background: rgba(255,255,255,.08);
  border-color: var(--line2);
}
.chip.active{
  background: rgba(25,209,161,.14);
  border-color: rgba(25,209,161,.45);
  color: var(--txt);
}
.catalogue-summary{
  margin-bottom: var(--s4);
}
.product-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: var(--s2);
  margin-top: var(--s3);
  flex-wrap:wrap;
}
.stock-label{
  color: var(--muted);
  font-size:12px;
  font-weight:700;
}
.product-desc{
  margin-top: var(--s2);
  color: var(--muted);
  min-height: 44px;
}
.empty-state{
  padding: var(--s6);
}
@media (max-width: 640px){
  .catalogue-chips{
    gap: 6px;
  }
  .chip{
    width: 100%;
    justify-content: center;
  }
  .product-meta{
    align-items:flex-start;
  }
}


/* =========================
   Back-office admin
   ========================= */
.admin-body, .admin-login-body{
  min-height:100vh;
  background:
    radial-gradient(900px 500px at 0% 0%, rgba(138,70,255,.14), transparent 55%),
    radial-gradient(900px 500px at 100% 0%, rgba(21,194,98,.10), transparent 55%),
    var(--bg);
}
.admin-shell{
  display:grid;
  grid-template-columns: 290px 1fr;
  gap: var(--s4);
  min-height:100vh;
  padding: clamp(12px, 2vw, 20px);
}
.admin-sidebar{
  padding: var(--s4);
  position: sticky;
  top: 12px;
  align-self: start;
}
.admin-brand{
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom: 18px;
}
.admin-brand-logo{
  width:52px;
  height:52px;
  object-fit:contain;
  flex:0 0 auto;
  padding:6px;
  border-radius:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.10);
  box-shadow: 0 12px 24px rgba(71,22,145,.25);
}
.admin-brand-text{
  min-width:0;
}
.admin-brand-title-row{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.admin-brand-mark{
  width:48px;height:48px;border-radius:14px;
  display:grid;place-items:center;
  background: linear-gradient(135deg, var(--brand), var(--accent));
  color:#06221b;font-weight:800;
}
.admin-brand-title{font-weight:800;font-size:30px;line-height:1;}
.admin-brand-long{color:var(--muted);font-size:13px;line-height:1.2;word-break:break-word;}
.admin-brand-subtitle{color:var(--muted);font-size:13px;}

/* Super admin (signal visuel discret, non agressif) */
.admin-brand-subtitle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.admin-sa-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:999px;
  border:1px solid rgba(255, 170, 60, .35);
  background: rgba(255, 170, 60, .10);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-sa-badge strong{color: rgba(214, 86, 86, .95);font-weight:900;}
.admin-sa-dot{width:8px;height:8px;border-radius:99px;background: rgba(255, 170, 60, .9);box-shadow:0 0 0 3px rgba(255, 170, 60, .18);}

/* Lien rapide vers le front office (ne doit pas ressembler au style super admin) */
.admin-fo-quick{margin: 8px 0 14px;}
.admin-fo-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  color: var(--txt);
  font-weight:700;
}
.admin-fo-link:hover{background: rgba(255,255,255,.06);border-color: var(--line2);}

.admin-superadmin .panel{border-color: rgba(255, 170, 60, .22);}
.admin-superadmin .admin-nav-link.active{background: rgba(255, 170, 60, .12);border-color: rgba(255, 170, 60, .35);}
.admin-superadmin .admin-content{position:relative;}
.admin-superadmin .admin-content::before{
  content:"";
  position:absolute;
  inset:-10px;
  pointer-events:none;
  border-radius: 20px;
  border: 1px solid rgba(255, 170, 60, .10);
  background: transparent;
}
.admin-nav{display:flex;flex-direction:column;gap:8px;}
.admin-nav-link{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:12px;
  border:1px solid transparent;
  background: rgba(255,255,255,.02);
}
.admin-nav-link:hover{background: rgba(255,255,255,.06);border-color: var(--line2);}
.admin-nav-link.active{background: linear-gradient(135deg, rgba(138,70,255,.14), rgba(21,194,98,.10));border-color: rgba(151,112,255,.42);}
.admin-nav-link .icon{width:22px;text-align:center;}
.admin-main{display:flex;flex-direction:column;gap: var(--s4);}
.admin-content-stack{display:flex;flex-direction:column;gap: var(--s4);}
.admin-topbar{padding: var(--s5);display:flex;justify-content:space-between;gap: var(--s4);align-items:flex-start;}
.admin-topbar h1{margin:0;font-size:clamp(26px, 3vw, 38px);}
.admin-topbar-right{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;}
.admin-user-card{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background: rgba(255,255,255,.04);min-width:260px;}
.admin-user-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.admin-user-email{font-weight:700;word-break:break-word;}
.admin-eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin-bottom:6px;}
.admin-subtitle{margin:8px 0 0;max-width:70ch;}
.admin-grid{display:grid;gap: var(--s4);}
.admin-grid-cards{grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));}
.admin-grid-2{grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));}
.admin-grid-3{grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
.admin-card, .admin-stat-card{padding: var(--s5);}
.admin-stat-label{color:var(--muted);font-size:13px;margin-bottom:8px;}
.admin-stat-value{font-size:32px;font-weight:800;}
.admin-module-card{padding: var(--s5);display:flex;flex-direction:column;gap:8px;min-height:180px;}
.admin-module-icon{font-size:28px;}
.admin-module-title{font-size:18px;font-weight:800;}
.admin-kv{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);}
.admin-kv:last-child{border-bottom:0;}
.admin-kv span{color:var(--muted);}
.admin-bullets{margin:0;padding-left:20px;color:var(--txt);}
.admin-bullets li + li{margin-top:8px;}
.admin-alert{padding:14px 16px;}
.admin-alert-error{border-color: rgba(255,95,95,.3);background: rgba(255,95,95,.08);}
.admin-alert-success{border-color: rgba(21,194,98,.34);background: rgba(21,194,98,.10);}
.admin-alert-warn{border-color: rgba(255,193,7,.3);background: rgba(255,193,7,.08);}
.admin-table-wrap{overflow:auto;}
.admin-table{width:100%;border-collapse:collapse;min-width:720px;}
.admin-table th, .admin-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.admin-code-block{white-space:pre-wrap;word-break:break-word;background:#081019;border:1px solid var(--line);border-radius:14px;padding:14px;max-height:360px;overflow:auto;}
.admin-login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;}
.admin-login-card{width:min(100%, 560px);padding: var(--s6);}
.admin-form-stack{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
.admin-label{font-size:13px;color:var(--muted);}
.admin-input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background: var(--bg3);color:var(--txt);font:inherit;}
.admin-submit{margin-top:8px;justify-content:center;}
.admin-login-note{margin-top:16px;padding:14px;border-radius:14px;border:1px solid var(--line);background: rgba(255,255,255,.03);color:var(--muted);}
.admin-page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
@media (max-width: 980px){
  .admin-shell{grid-template-columns: 1fr;}
  .admin-sidebar{position: static;}
  .admin-topbar{flex-direction:column;}
  .admin-topbar-right{width:100%;justify-content:flex-start;}
  .admin-user-card{width:100%;min-width:0;}
}


.admin-command-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03);margin-top:14px;}
.admin-command-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px;}
.admin-command-title{font-weight:800;font-size:18px;}
.admin-command-subtitle{color:var(--muted);margin-top:4px;}
.admin-command-block{margin:0;max-height:none;}
.admin-copy-feedback{margin-top:14px;}
.admin-report-stats{margin-top:18px;}
.admin-stat-value-sm{font-size:20px;line-height:1.2;word-break:break-word;}
.admin-subsection-title{margin:20px 0 10px;font-size:18px;}
.admin-bullets-tight{margin-top:10px;}
@media (max-width: 760px){
  .admin-command-head .btn{width:100%;justify-content:center;}
}


.admin-alert-info{border-color: rgba(108,138,255,.28);background: rgba(108,138,255,.08);}
.admin-health-banner{padding:22px;border-width:2px;}
.admin-health-banner-success{border-color: rgba(25,209,161,.42);background: linear-gradient(180deg, rgba(25,209,161,.12), rgba(25,209,161,.04));}
.admin-health-banner-warn{border-color: rgba(255,193,7,.45);background: linear-gradient(180deg, rgba(255,193,7,.12), rgba(255,193,7,.04));}
.admin-health-banner-error{border-color: rgba(255,95,95,.42);background: linear-gradient(180deg, rgba(255,95,95,.12), rgba(255,95,95,.04));}
.admin-health-header h2{margin:0 0 8px;font-size:clamp(24px,2.6vw,34px);}
.admin-health-grid{margin-top:18px;}
.admin-health-item{padding:18px;display:flex;flex-direction:column;gap:10px;}
.admin-health-item-success{border-color: rgba(25,209,161,.34);background: rgba(25,209,161,.08);}
.admin-health-item-warn{border-color: rgba(255,193,7,.34);background: rgba(255,193,7,.08);}
.admin-health-item-error{border-color: rgba(255,95,95,.34);background: rgba(255,95,95,.08);}
.admin-health-item-title{font-size:20px;font-weight:800;}
.admin-health-item p{margin:0;color:var(--txt);}
.admin-health-meta{display:flex;justify-content:space-between;gap:14px;padding-top:8px;border-top:1px solid var(--line);}
.admin-health-meta span{color:var(--muted);}
.admin-tech-details{margin-top:16px;}
.admin-details-block{margin-top:12px;}
.admin-details-block summary{cursor:pointer;color:var(--txt);font-weight:700;}

.admin-section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;}
.admin-section-head h2{margin:0 0 6px;}
.admin-subcard{padding:18px;}
.admin-subcard h3{margin-top:0;}
.admin-grid-tight{gap:12px;}
.admin-checkline{display:flex;align-items:center;gap:10px;margin-top:4px;color:var(--txt);}
.admin-checkline-compact{margin-top:0;}
.admin-inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.admin-inline-form-site{align-items:flex-start;}
.admin-inline-form-map{min-width: 520px;}
.admin-input-sm{padding:10px 12px;min-width:120px;}
.admin-input-xs{padding:10px 12px;max-width:92px;}
.admin-filter-bar{display:grid;grid-template-columns: 180px 180px minmax(220px,1fr) auto;gap:12px;align-items:end;margin:16px 0 18px;}
.admin-filter-search{min-width:220px;}
.admin-filter-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}
.admin-bulk-bar{padding:14px 16px;margin:0 0 16px;display:flex;justify-content:space-between;gap:16px;align-items:center;}
.admin-bulk-title{font-weight:800;}
.admin-bulk-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.admin-category-title{font-weight:800;margin-bottom:4px;}
.admin-meta-stack{display:flex;flex-direction:column;gap:4px;margin-top:8px;color:var(--muted);font-size:12px;}
.admin-inline-note{margin-top:6px;}
.admin-table-categories td{min-width:0;}
@media (max-width: 980px){
  .admin-filter-bar{grid-template-columns: 1fr;}
  .admin-bulk-bar{flex-direction:column;align-items:flex-start;}
  .admin-bulk-controls{justify-content:flex-start;}
  .admin-inline-form-map{min-width:0;}
}
.admin-help{display:block;margin-top:6px;font-size:12px;color:var(--muted,#91a0b8);}
.admin-steps{margin:0;padding-left:18px;display:grid;gap:8px;}
.admin-hint-strip{margin:0 0 16px;padding:12px 16px;display:flex;gap:8px;align-items:flex-start;}
.admin-inline-form-map select:disabled{opacity:.6;cursor:not-allowed;}


.admin-table-products td { vertical-align: top; }
.admin-product-name { font-weight: 700; margin-bottom: 6px; }
.admin-product-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; color: var(--muted); font-size: 13px; margin-bottom: 6px; }
.admin-product-inline-form { min-width: 210px; }
.admin-inline-note { color: var(--muted); font-size: 13px; margin-top: 6px; }
.admin-inline-warning { margin-top: 8px; font-size: 13px; color: #9a3412; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 8px 10px; }
.small { font-size: 12px; }
@media (max-width: 960px) {
  .admin-table-products { min-width: 1150px; }
}

.admin-list-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--txt);font-size:14px;}
.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap;}
.admin-pagination-pages{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.admin-pagination-ellipsis{color:var(--muted);padding:0 4px;}
.btn.is-disabled{pointer-events:none;opacity:.5;}
@media (max-width: 760px){
  .admin-list-summary{width:100%;}
  .admin-pagination{justify-content:flex-start;}
}


.btn-danger{background:rgba(220,80,80,.18);border:1px solid rgba(220,80,80,.45);color:#ffd9d9}.btn-danger:hover{background:rgba(220,80,80,.28)}
.admin-actions-stack{display:flex;flex-direction:column;gap:8px;align-items:flex-start}

.admin-conflict-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:700;}
.admin-conflict-pill-warn{background:rgba(255,193,7,.10);border-color:rgba(255,193,7,.30);color:#f6d46b;}
.admin-conflict-pill-info{background:rgba(108,138,255,.10);border-color:rgba(108,138,255,.30);color:#b8c8ff;}
.admin-conflict-pill-success{background:rgba(25,209,161,.10);border-color:rgba(25,209,161,.30);color:#8ef0d2;}


.admin-validation-list{display:flex;flex-direction:column;gap:14px;}
.admin-validation-item{padding:18px;display:flex;flex-direction:column;gap:16px;}
.admin-validation-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
.admin-validation-form{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr) auto;gap:12px;align-items:end;}
.admin-validation-proposal{display:flex;flex-direction:column;gap:8px;}
@media (max-width: 1100px){
  .admin-validation-main{grid-template-columns:1fr;}
  .admin-validation-form{grid-template-columns:1fr;}
}

.admin-brand-login .admin-brand-title{font-size:26px; color: var(--txt);}
.admin-brand-login .admin-brand-long{max-width:360px;text-align:left;}

@media (max-width: 900px){
  .admin-brand-title{font-size:22px;}
  .admin-brand-long{font-size:12px;}
}

/* =========================
   Admin — Clients requests UX
   ========================= */
.admin-requests-layout{
  display:grid;
  grid-template-columns: minmax(320px, 420px) 1fr;
  gap: var(--s4);
  align-items:start;
}
@media (max-width: 980px){
  .admin-requests-layout{grid-template-columns:1fr;}
}

.admin-requests-filter{margin: 12px 0 14px;}
.admin-requests-filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.admin-requests-filter-input{flex:1;min-width:240px;}

.admin-queue-list{display:flex;flex-direction:column;gap:12px;}
.admin-queue-card{
  display:block;
  padding:16px;
  border-radius:16px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.02);
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}
.admin-queue-card:hover{
  background: rgba(255,255,255,.04);
  border-color: var(--line2);
  transform: translateY(-1px);
}
.admin-queue-card.active{
  border-color: rgba(25,209,161,.55);
  box-shadow: 0 0 0 1px rgba(25,209,161,.35) inset;
}
.admin-queue-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.admin-queue-title{font-weight:900;font-size:16px;line-height:1.2;}
.admin-queue-sub{margin-top:4px;}
.admin-queue-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.admin-queue-field span{
  display:block;
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.admin-queue-field strong{display:block;margin-top:4px;font-size:13px;word-break:break-word;}
.admin-queue-meta{
  display:flex;justify-content:space-between;gap:10px;
  margin-top:12px;padding-top:10px;
  border-top:1px solid var(--line);
  color:var(--muted);font-size:12px;
}

/* =========================
   Admin — Catalogue brut (Recherche V1)
   ========================= */
.admin-catalog-search-layout{
  display:grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  gap: var(--s4);
  align-items:start;
}
@media (max-width: 1100px){
  .admin-catalog-search-layout{grid-template-columns: 1fr;}
}

.admin-catalog-mini-filters{margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);}
.admin-catalog-main .admin-table{min-width: 980px;}
@media (max-width: 960px){
  .admin-catalog-main .admin-table{min-width: 1150px;}
}

.price-value{
  display:inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.02);
  font-weight: 800;
}

/* Mode discrétion : prix floutés, affichage au survol */
.price-mask .price-value{
  filter: blur(6px);
  opacity: .55;
  user-select: none;
}
.price-mask .price-value:hover{
  filter: none;
  opacity: 1;
}

.admin-request-hero{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background: rgba(255,255,255,.02);
}
.admin-request-company{font-size:20px;font-weight:900;line-height:1.1;}
.admin-request-hero-meta{color:var(--muted);font-size:12px;white-space:nowrap;}

.admin-info-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap:12px;
  margin-top:14px;
}
@media (max-width: 720px){
  .admin-info-grid{grid-template-columns:1fr;}
  .admin-request-hero{flex-direction:column;}
  .admin-request-hero-meta{white-space:normal;}
}
.admin-info-tile{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background: rgba(255,255,255,.02);
}
.admin-info-tile .label{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.admin-info-tile .value{
  margin-top:6px;
  font-weight:800;
  word-break:break-word;
}

.admin-history{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.admin-history-item{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 14px;border:1px solid var(--line);border-radius:16px;
  background: rgba(255,255,255,.02);
}
.admin-history-date{min-width:140px;color:var(--muted);font-size:12px;}
.admin-history-title{font-weight:800;}
.admin-history-meta{color:var(--muted);font-size:12px;margin-top:4px;}
@media (max-width: 720px){
  .admin-history-item{flex-direction:column;}
  .admin-history-date{min-width:0;}
}

/* --- Admin: petits contrôles (clients actifs) --- */
.admin-segment{display:flex;gap:10px;margin-top:10px;padding:6px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:14px;}
.admin-segment-btn{flex:1;text-align:center;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);font-weight:800;}
.admin-segment-btn:hover{background:rgba(255,255,255,.06);}
.admin-segment-btn.active{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);}
.admin-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;margin-top:10px;color:var(--text);}


/* --- Admin fullscreen mode (for dense pages like Recherche brute V1) --- */
.admin-body.admin-fullscreen .admin-shell{
  grid-template-columns: 1fr;
  padding: 12px;
}
.admin-body.admin-fullscreen .admin-topbar{padding: var(--s4);}
.admin-body.admin-fullscreen .admin-content{max-width:none;}

/* Recherche brute (V1) layout tuning */
.admin-catalog-search-layout.admin-catalog-search-layout-v1{
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
}


.admin-dbexport-stack{gap:22px;}
.admin-dbexport-cards{margin-top:4px;}
.admin-dbexport-form{padding:24px;}
.admin-dbexport-lead{max-width:90ch;margin-bottom:18px;}
.admin-dbexport-radios{display:grid;gap:12px;margin-top:10px;}
.admin-dbexport-block{margin-top:22px;}
.admin-dbexport-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px;}
.admin-dbexport-table-card{padding:14px;display:flex;flex-direction:column;gap:8px;min-height:118px;}
.admin-dbexport-actions{margin-top:22px;padding-top:6px;}
.admin-dbexport-diagnostic{padding:22px;}
