/* portail-tiroir.css — le tiroir de droite, « une section à la fois », le cadre
   des onglets et les étiquettes repliées (lot 8, 2026-11-05 ; CONVENTIONS-ECRAN
   §§ 3, 4, 8). Les couleurs viennent des thèmes du site (--line, --panel,
   --ink, --bg, --muted, --accent), avec un repli. Cibles 44 px au doigt. */

/* ── le sommaire (pleine page sans ancre, et dans le tiroir) ────────────── */
.pt-choix-liste{list-style:none;margin:16px 0;padding:0;display:grid;gap:10px}
.pt-choix{display:flex;flex-direction:column;gap:2px;min-height:56px;padding:12px 16px;border:1px solid var(--line,#8b99a8);border-radius:12px;background:var(--panel,rgba(127,127,127,.08));color:inherit;text-decoration:none!important}
.pt-choix b{font-size:1.05rem}
.pt-choix span{font-size:.9rem;color:var(--muted,#667085)}
.pt-choix:hover{border-color:currentColor}
.pt-choix:focus-visible{outline:3px solid var(--accent,#548ac2);outline-offset:2px}

/* ── une section à la fois (seulement avec JS : la classe pt-actif) ─────── */
.campagnes-portail.pt-actif .campagnes-section,.campagnes-portail.pt-actif .pt-hors{display:none}
.campagnes-portail.pt-actif .campagnes-section.pt-vue{display:block}
.campagnes-portail.pt-actif .campagnes-section.pt-vue{border-top:0;padding-top:4px}
.campagnes-portail [hidden]{display:none!important}
/* le grip est posé sur le bord droit : on lui réserve sa largeur, pour qu'il ne cache
   jamais la fin d'une ligne (vu à 375 px au banc du 2026-11-05) */
.campagnes-portail.pt-actif{padding-right:48px}

/* ── le grip, toujours visible sur le bord droit ───────────────────────── */
/* ⚠️ préfixés par .campagnes-portail : la règle `.campagnes-portail button` de
   campagnes.css (min-height 48 px, padding, bordure) l'emporterait sinon. */
.campagnes-portail .pt-grip{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:55;width:44px;min-height:132px;padding:10px 0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line,#8b99a8);border-right:0;border-radius:12px 0 0 12px;background:var(--bg,#fff);color:var(--ink,#111);box-shadow:-2px 0 14px rgba(0,0,0,.18);cursor:pointer;font:inherit}
.campagnes-portail .pt-grip span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.88rem;letter-spacing:.06em;font-weight:600}
.campagnes-portail .pt-grip::before{content:"";position:absolute;left:7px;top:50%;width:4px;height:28px;margin-top:-14px;border-left:2px dotted currentColor;opacity:.55}
.campagnes-portail .pt-grip:focus-visible{outline:3px solid var(--accent,#548ac2);outline-offset:2px}

/* ── le tiroir : même largeur que le menu de gauche (site-core.css) ─────── */
.pt-tiroir{position:fixed;top:0;right:0;bottom:0;width:min(84vw,340px);z-index:62;overflow-y:auto;overscroll-behavior:contain;padding:18px 18px 24px;background:var(--bg,#fff);color:var(--ink,#111);border-left:1px solid var(--line,#8b99a8);box-shadow:-2px 0 28px rgba(0,0,0,.4);transform:translateX(105%);transition:transform .22s ease}
body.pt-ouvert .pt-tiroir{transform:translateX(0)}
body.pt-ouvert{overflow:hidden}
.pt-tiroir-tete{display:flex;align-items:center;justify-content:space-between;gap:12px}
.campagnes-portail .pt-x{width:44px;min-height:44px;padding:0;height:44px;border:1px solid var(--line,#8b99a8);border-radius:10px;background:transparent;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer}
.pt-fond{position:fixed;inset:0;z-index:61;background:rgba(0,0,0,.45);opacity:0;transition:opacity .22s ease}
body.pt-ouvert .pt-fond{opacity:1}

/* ── « Les campagnes » : un cadre, et des onglets qui se voient ─────────── */
.pt-cadre{margin:20px 0;padding:0 0 14px!important;border:1px solid var(--line,#8b99a8)!important;border-radius:14px;background:var(--panel,rgba(127,127,127,.06));overflow:hidden}
.pt-cadre>h2{margin:0;padding:14px 16px 4px;font-size:1.25rem}
.pt-cadre>.campagnes-hint,.pt-cadre>noscript{display:block;padding:0 16px}
/* la ligne de base est une ombre intérieure, pas une bordure : l'onglet actif la
   couvre de son fond (il est peint au-dessus), sans marge négative — donc sans
   débord vertical ni barre de défilement parasite (vu sur PC au banc du 2026-11-05) */
.pt-cadre .campagnes-tabs{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;margin:8px 0 0;padding:0 12px;border-bottom:0;box-shadow:inset 0 -1px var(--line,#8b99a8);scrollbar-width:thin}
.pt-cadre .campagnes-tabs [role=tab]{flex:0 0 auto;min-height:44px;margin-bottom:0;padding:8px 14px;border:1px solid var(--line,#8b99a8);border-bottom-color:var(--line,#8b99a8);border-radius:10px 10px 0 0;background:transparent;color:var(--muted,#667085);font-size:.92rem;box-shadow:none;white-space:nowrap}
.pt-cadre .campagnes-tabs [role=tab][aria-selected=true]{background:var(--bg,#fff);color:var(--ink,#111);border-bottom-color:var(--bg,#fff);font-weight:700;box-shadow:inset 0 3px var(--accent,var(--ink,#111))}
.pt-onglet-corps{padding:12px 16px 4px;background:var(--bg,#fff)}
.pt-onglet-corps label{margin-top:0}

/* ── chaque campagne : une étiquette repliée ───────────────────────────── */
.pt-etiquettes{gap:8px;margin:12px 0}
.pt-campagne{border:1px solid var(--line,#8b99a8);border-radius:12px;background:var(--panel,rgba(127,127,127,.06))}
.pt-campagne>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px!important;cursor:pointer}
.pt-campagne>summary::-webkit-details-marker{display:none}
.pt-campagne>summary::after{content:"";flex:0 0 auto;width:9px;height:9px;margin-left:auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s ease;opacity:.7}
.pt-campagne[open]>summary::after{transform:rotate(-135deg)}
.pt-logo{flex:0 0 40px;width:40px;height:40px;object-fit:contain;border-radius:6px}
.pt-etiquette{display:flex;flex-direction:column;min-width:0}
.pt-nom{font-size:1.02rem;overflow-wrap:anywhere}
.pt-meta{color:var(--muted,#667085);font-size:.85rem}
.pt-dedans{padding:0 14px 14px;border-top:1px solid var(--line,#8b99a8)}
.pt-dedans p{white-space:pre-wrap;margin:.7rem 0}

@media (max-width:650px){
  .campagnes-portail .pt-grip{min-height:112px}
  .pt-cadre .campagnes-tabs [role=tab]{padding:8px 11px;font-size:.88rem}
}
