/* ==========================================================================
   Atlas Admin · Couche navigation augmentée
   Dock + rail compact · palette ⌘K · favoris + récents · fil d'Ariane
   Surcouche non destructive — n'édite pas le markup nav existant.
   ========================================================================== */

/* Sentinelle : permet à atlas-nav.js de détecter que SON css est chargé.
   (Le script sort proprement si absent → pas d'UI ⌘K non stylée ailleurs.) */
:root{ --atlas-nav-on:1; }

/* ---- 1. DOCK DESKTOP + RAIL COMPACT ------------------------------------- */
/* En dessous de 1100px : comportement tiroir d'origine inchangé.            */
@media (min-width:1100px){
  body.nav-docked .sidebar{ transform:none !important; box-shadow:none; border-right:1px solid var(--line2); }
  body.nav-docked .main{ margin-left:278px; transition:margin-left .32s var(--ease); }
  body.nav-docked .sb-scrim{ display:none !important; }
  body.nav-docked #burger{ display:none; }

  /* — rail replié — */
  body.nav-docked.nav-rail .sidebar{ width:74px; padding:18px 8px; overflow-x:hidden; }
  body.nav-docked.nav-rail .main{ margin-left:74px; }
  body.nav-docked.nav-rail .sb-badge,
  body.nav-docked.nav-rail .sb-logo>div,
  body.nav-docked.nav-rail .nav-gh-l,
  body.nav-docked.nav-rail .nav-gh-chev,
  body.nav-docked.nav-rail .nav-item span,
  body.nav-docked.nav-rail .nav-item .ni-badge,
  body.nav-docked.nav-rail .sbc-txt,
  body.nav-docked.nav-rail .nav-dyn,
  body.nav-docked.nav-rail .nav-group>summary,
  body.nav-docked.nav-rail .ni-pin{ display:none !important; }
  /* logo : contraint à la largeur du rail (jamais de débordement) */
  body.nav-docked.nav-rail .sb-logo{ justify-content:center; padding:8px 0 12px; overflow:hidden; }
  body.nav-docked.nav-rail .sb-logo img{ height:auto; width:48px; max-width:48px; }
  /* en rail : strip d'icônes propre — groupes dépliés, pas d'en-têtes */
  body.nav-docked.nav-rail .nav-group{ margin:0; }
  body.nav-docked.nav-rail .nav-group .nav-sub{ display:flex !important; flex-direction:column; gap:3px; animation:none; }
  /* font-size:0 masque les libellés en nœud-texte nu (non enveloppés dans un span) ;
     les icônes SVG restent dimensionnées en px, les pastilles/tooltips sont en rem. */
  body.nav-docked.nav-rail .nav-item{ justify-content:center; padding:11px 0; border-radius:12px; font-size:0 !important; }
  body.nav-docked.nav-rail .nav-item svg{ width:21px; height:21px; flex:0 0 auto; }
  body.nav-docked.nav-rail .nav-item.is-active::before{ left:-8px; }
  body.nav-docked.nav-rail .nav-gh-badge,
  body.nav-docked.nav-rail .nav-gh-dot{ display:none !important; }
  /* pastille de comptage repositionnée sur l'icône en mode rail */
  body.nav-docked.nav-rail .nav-item[data-count]::after{
    content:attr(data-count);position:absolute;top:5px;right:11px;min-width:15px;height:15px;
    padding:0 4px;border-radius:50px;background:var(--orange);color:#fff;font-size:.56rem;
    font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;
  }
  /* tooltip au survol en mode rail */
  body.nav-docked.nav-rail .nav-item{ position:relative; }
  body.nav-docked.nav-rail .nav-item[data-tip]:hover::before{
    content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);
    background:#0b1838;color:#eaf2ff;font-size:.78rem;font-weight:600;white-space:nowrap;
    padding:7px 11px;border-radius:9px;border:1px solid var(--line2);box-shadow:var(--sh-soft);
    z-index:80;pointer-events:none;
  }
}

/* bouton replier — visible seulement en mode docké */
.sb-collapse{ display:none; }
@media (min-width:1100px){
  body.nav-docked .sb-collapse{
    display:flex;align-items:center;gap:9px;margin-top:auto;padding:11px 12px;border-radius:11px;
    background:var(--glass);border:1px solid var(--line);color:var(--mid);font-size:.78rem;font-weight:600;
    transition:.2s;flex-shrink:0;
  }
  body.nav-docked .sb-collapse:hover{ border-color:var(--blue-l);color:var(--txt);background:rgba(96,165,250,.1); }
  body.nav-docked .sb-collapse svg{ width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .3s var(--ease); }
  body.nav-docked.nav-rail .sb-collapse{ justify-content:center;padding:11px 0; }
  body.nav-docked.nav-rail .sb-collapse svg{ transform:rotate(180deg); }
}

/* ---- 2. FAVORIS + RÉCENTS (conteneurs déjà présents, activés ici) ------- */
.nav-dyn{ padding:2px 0 4px; }
.nav-dyn[hidden]{ display:none; }
.nav-dyn-h{
  display:flex;align-items:center;gap:7px;font-size:.6rem;font-weight:700;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--dim);padding:8px 12px 5px;
}
.nav-dyn-h svg{ width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2; }
.nav-dyn .nav-item{ font-size:.84rem; }
.nav-dyn .nav-item svg.ni-ic{ width:16px;height:16px; }
/* étoile d'épinglage sur les items du menu principal */
.ni-pin{
  margin-left:auto;width:24px;height:24px;border-radius:7px;display:none;align-items:center;justify-content:center;
  background:transparent;flex-shrink:0;transition:.18s;
}
.ni-pin svg{ width:14px;height:14px;stroke:var(--dim);fill:none;stroke-width:1.8;transition:.18s; }
.nav-item:hover .ni-pin{ display:flex; }
.ni-pin:hover{ background:rgba(245,158,11,.16); }
.ni-pin:hover svg{ stroke:var(--gold); }
.ni-pin.is-fav{ display:flex; }
.ni-pin.is-fav svg{ stroke:var(--gold);fill:var(--gold); }
/* l'étoile ne doit pas masquer une pastille de comptage : on garde les deux */
.nav-item .ni-badge + .ni-pin{ margin-left:8px; }

/* ---- 3. FIL D'ARIANE ----------------------------------------------------- */
.tb-crumb{
  display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:600;color:var(--dim);
  margin-bottom:2px;line-height:1;
}
.tb-crumb .cb-link{ color:var(--mid);transition:color .18s;cursor:default; }
.tb-crumb .cb-link.go{ cursor:pointer; }
.tb-crumb .cb-link.go:hover{ color:var(--blue-l); }
.tb-crumb svg{ width:11px;height:11px;stroke:var(--dim);fill:none;stroke-width:2.4;flex-shrink:0; }
.tb-crumb .cb-cur{ color:var(--violet); }
@media (max-width:1280px){ .tb-crumb{ display:none; } }

/* ---- 4. PALETTE DE COMMANDES ⌘K ----------------------------------------- */
.cmdk-scrim{
  position:fixed;inset:0;z-index:300;background:rgba(2,6,22,.62);backdrop-filter:blur(6px);
  display:none;align-items:flex-start;justify-content:center;padding:14vh 16px 16px;
}
.cmdk-scrim.show{ display:flex;animation:cmdkFade .18s ease; }
@keyframes cmdkFade{ from{opacity:0} to{opacity:1} }
.cmdk{
  width:min(640px,100%);max-height:64vh;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(160deg,rgba(16,30,72,.99),rgba(9,18,46,.99));
  border:1px solid rgba(96,165,250,.32);border-radius:18px;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8),0 0 60px -28px rgba(37,99,235,.6);
  animation:cmdkIn .26s var(--ease);
}
@keyframes cmdkIn{ from{opacity:0;transform:translateY(-14px) scale(.985)} to{opacity:1;transform:none} }
.cmdk-top{ display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--line); }
.cmdk-top svg.cmdk-sic{ width:18px;height:18px;stroke:var(--dim);fill:none;stroke-width:2;flex-shrink:0; }
.cmdk-top input{
  flex:1;background:none;border:0;outline:0;font-size:1rem;color:var(--txt);font-family:inherit;
}
.cmdk-top input::placeholder{ color:var(--dim); }
.cmdk-esc{ font-size:.62rem;font-weight:700;color:var(--dim);border:1px solid var(--line2);border-radius:6px;padding:3px 7px;letter-spacing:.5px; }
.cmdk-list{ overflow-y:auto;padding:8px;overscroll-behavior:contain; }
.cmdk-grp{ font-size:.6rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--dim);padding:10px 12px 5px; }
.cmdk-row{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;cursor:pointer;transition:background .12s;
}
.cmdk-row svg.cmdk-ic{ width:17px;height:17px;stroke:var(--mid);fill:none;stroke-width:1.9;flex-shrink:0; }
.cmdk-row .cmdk-l{ flex:1;min-width:0; }
.cmdk-row .cmdk-l b{ font-size:.9rem;font-weight:600;color:var(--txt);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.cmdk-row .cmdk-l span{ font-size:.72rem;color:var(--dim); }
.cmdk-row .cmdk-tag{ font-size:.6rem;font-weight:700;color:var(--dim);border:1px solid var(--line2);border-radius:6px;padding:2px 7px; }
.cmdk-row.sel,.cmdk-row:hover{ background:rgba(96,165,250,.12); }
.cmdk-row.sel svg.cmdk-ic,.cmdk-row:hover svg.cmdk-ic{ stroke:var(--blue-l); }
.cmdk-empty{ text-align:center;color:var(--dim);font-size:.85rem;padding:30px 16px; }
/* indice ⌘K dans la recherche topbar */
.tb-kbd{ margin-left:8px;flex-shrink:0;font-size:.6rem;font-weight:700;color:var(--dim);border:1px solid var(--line2);border-radius:6px;padding:2px 6px;letter-spacing:.5px;white-space:nowrap; }
/* l'input doit pouvoir rétrécir pour que le badge reste DANS la pilule */
.tb-search input{ min-width:0; }
@media (max-width:1240px){ .tb-kbd{ display:none; } }

/* ---- CRÉATION RAPIDE GLOBALE -------------------------------------------- */
.qc-wrap{ position:relative; flex-shrink:0; }
.qc-btn{ display:flex;align-items:center;gap:7px;height:42px;padding:0 15px 0 12px;border-radius:12px;
  background:linear-gradient(120deg,var(--blue,#2563eb),#1e4cc4);border:1px solid rgba(96,165,250,.5);
  color:#fff;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.84rem;cursor:pointer;
  box-shadow:0 6px 18px -8px rgba(37,99,235,.8);transition:transform .18s,box-shadow .18s,filter .18s; }
.qc-btn:hover{ transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 10px 24px -10px rgba(37,99,235,.9); }
.qc-btn:active{ transform:translateY(0) scale(.98); }
.qc-btn svg{ width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round; }
@media (max-width:1080px){ .qc-btn span{ display:none; } .qc-btn{ padding:0;width:42px;justify-content:center; } }

.qc-menu{ position:absolute;top:calc(100% + 9px);right:0;width:286px;z-index:120;
  background:linear-gradient(160deg,rgba(16,30,72,.99),rgba(9,18,46,.99));
  border:1px solid rgba(96,165,250,.3);border-radius:16px;padding:7px;
  box-shadow:0 30px 70px -26px rgba(2,6,28,.9),0 0 50px -26px rgba(37,99,235,.5);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;
  transition:opacity .18s,transform .18s,visibility .18s; }
.qc-menu.open{ opacity:1;visibility:visible;transform:none; }
.qc-item{ display:flex;align-items:center;gap:12px;width:100%;padding:9px 11px;border-radius:11px;
  background:none;border:0;cursor:pointer;text-align:left;transition:background .12s; }
.qc-item:hover{ background:rgba(96,165,250,.12); }
.qc-ic{ width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:rgba(96,165,250,.16);border:1px solid rgba(96,165,250,.26); }
.qc-ic svg{ width:17px;height:17px;stroke:var(--blue-l,#60a5fa);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.qc-l{ display:flex;flex-direction:column;min-width:0; }
.qc-l b{ font-size:.86rem;font-weight:600;color:var(--txt);line-height:1.15; }
.qc-l span{ font-size:.72rem;color:var(--dim); }
body.theme-light .qc-menu{ background:linear-gradient(160deg,#fff,#f5f9ff);border-color:rgba(13,31,92,.12);box-shadow:0 18px 48px rgba(13,31,92,.16); }
body.theme-light .qc-item:hover{ background:rgba(37,99,235,.08); }

/* ---- Mode clair ---------------------------------------------------------- */
body.theme-light .cmdk{ background:linear-gradient(160deg,#fff,#f5f9ff); border-color:rgba(13,31,92,.12); box-shadow:0 30px 70px -30px rgba(13,31,92,.28),0 0 50px -30px rgba(37,99,235,.18); }
body.theme-light .cmdk-row.sel,body.theme-light .cmdk-row:hover{ background:rgba(37,99,235,.08); }
body.nav-docked.nav-rail.theme-light .nav-item[data-tip]:hover::before{ background:#fff;color:#0d1f5c; }
