/*
 * Console Direba — styles propres (MS-216).
 *
 * La CSP interdit l'attribut `style=""` : ce qui était écrit en ligne dans
 * les gabarits, et ignoré par le navigateur, vit ici.
 */

/* ── Menu groupé ─────────────────────────────────────────────── */
.console-nav { display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.nav-group { position: relative; }
.nav-group > summary {
  list-style: none; cursor: pointer; padding: .4rem .7rem; border-radius: 6px;
  color: var(--tblr-body-color, #1d273b); font-weight: 500; white-space: nowrap;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: " ▾"; color: #8a94a6; }
.nav-group.active > summary { background: #e8f0fe; color: #1e3a8a; }
.nav-group-panel {
  position: absolute; top: 100%; left: 0; z-index: 1030; min-width: 13rem;
  background: #fff; border: 1px solid #e6e7e9; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08); padding: .35rem;
}
.nav-group-panel a {
  display: flex; justify-content: space-between; align-items: center;
  padding: .45rem .6rem; border-radius: 6px; color: inherit; text-decoration: none;
}
.nav-group-panel a:hover { background: #f4f6fa; }
.nav-group-panel a.active { background: #e8f0fe; color: #1e3a8a; font-weight: 600; }
.nav-count:empty { display: none; }
.nav-count { margin-left: .5rem; }

/* ── Retour des gestes ───────────────────────────────────────── */
.htmx-request { opacity: .55; pointer-events: none; transition: opacity .15s; }
.toast-stack {
  position: fixed; right: 16px; bottom: 16px; z-index: 2100;
  display: flex; flex-direction: column; gap: .5rem; max-width: 22rem;
}
.console-toast { margin: 0; box-shadow: 0 6px 18px rgba(0, 0, 0, .12); }

/* ── Pièces ──────────────────────────────────────────────────── */
.doc-preview {
  display: block; width: 100%; max-height: 420px; object-fit: contain;
  background: #f8fafc; cursor: zoom-in; transition: transform .2s;
}
.rot-90 { transform: rotate(90deg); }
.rot-180 { transform: rotate(180deg); }
.rot-270 { transform: rotate(270deg); }
.lightbox {
  position: fixed; inset: 0; z-index: 2000; background: rgba(15, 23, 42, .9);
  display: flex; align-items: center; justify-content: center; cursor: zoom-out;
}
.lightbox img { max-width: 94vw; max-height: 94vh; object-fit: contain; }
.identity-sticky { position: sticky; top: 1rem; }
.kbd-hints kbd { font-size: .75rem; }

/* ── Logos et aperçu des campagnes ───────────────────────────── */
.logo-thumb { object-fit: contain; }
.logo-large { max-height: 96px; object-fit: contain; }
.promo-preview { border-radius: 12px; padding: 18px; color: #fff; background: #1e3a8a; }
.promo-badge {
  display: inline-block; padding: 2px 10px; border-radius: 999px;
  background: rgba(255, 255, 255, .22); font-size: 11px; font-weight: 800;
}
.promo-headline { font-size: 32px; font-weight: 900; margin-top: 10px; }
.promo-title { font-size: 17px; font-weight: 700; }
.promo-subtitle { opacity: .85; font-size: 13px; }
