/* ============================================================
   PG PROTOCOL — Bandeau de consentement maison (charte labo)
   Sombre, accent vert #5fe084, Space Grotesk, pilules.
   ============================================================ */
.pgcc, .pgcc * { box-sizing: border-box; }
.pgcc {
  --pgcc-bg: #121b15; --pgcc-bg2: #0e1712; --pgcc-text: #f0ede6; --pgcc-dim: #9b938a;
  --pgcc-vert: #5fe084; --pgcc-vert-hi: #8af0a6; --pgcc-on: #07120b; --pgcc-border: rgba(240,237,230,0.14);
  position: fixed; z-index: 2147483000; right: 1.1rem; bottom: 1.1rem; width: min(400px, calc(100vw - 2.2rem));
  background: linear-gradient(180deg,#18241c,var(--pgcc-bg)); color: var(--pgcc-text);
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif; line-height: 1.55;
  border: 1px solid var(--pgcc-border); border-radius: 16px; padding: 1.2rem 1.2rem 1.05rem;
  box-shadow: 0 24px 60px -18px rgba(0,0,0,0.6);
  animation: pgcc-in .35s cubic-bezier(.16,1,.3,1);
}
.pgcc::before { content:""; position:absolute; top:0; left:16%; right:16%; height:1px; background:linear-gradient(90deg,transparent,var(--pgcc-vert),transparent); opacity:.6; }
@keyframes pgcc-in { from { opacity:0; transform: translateY(14px); } to { opacity:1; transform:none; } }
.pgcc-title { font-weight: 700; font-size: 1rem; margin: 0 0 .4rem; letter-spacing: -0.01em; }
.pgcc-desc { font-size: 0.82rem; color: var(--pgcc-dim); margin: 0 0 1rem; }
.pgcc-desc a { color: var(--pgcc-vert); }
.pgcc-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.pgcc-btn { font: inherit; font-weight: 600; font-size: 0.82rem; border-radius: 100px; padding: .55rem 1.05rem; cursor: pointer; border: 1px solid transparent; transition: background .15s, border-color .15s, color .15s, transform .12s; }
.pgcc-btn:focus-visible { outline: 2px solid var(--pgcc-vert); outline-offset: 2px; }
.pgcc-accept { background: var(--pgcc-vert); color: var(--pgcc-on); border-color: var(--pgcc-vert); }
.pgcc-accept:hover { background: var(--pgcc-vert-hi); transform: translateY(-1px); }
.pgcc-reject { background: transparent; color: var(--pgcc-text); border-color: var(--pgcc-border); }
.pgcc-reject:hover { border-color: var(--pgcc-dim); }
.pgcc-manage { background: transparent; color: var(--pgcc-dim); border: 0; text-decoration: underline; margin-left: auto; padding: .55rem .4rem; }
.pgcc-manage:hover { color: var(--pgcc-text); }

/* Overlay + modale de préférences */
.pgcc-ov { position: fixed; inset: 0; z-index: 2147483001; background: rgba(5,9,7,0.72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 1.2rem; animation: pgcc-fade .25s ease; }
@keyframes pgcc-fade { from { opacity:0; } to { opacity:1; } }
.pgcc-modal { width: 100%; max-width: 500px; max-height: 90vh; overflow-y: auto; background: var(--pgcc-bg,#121b15); color: #f0ede6;
  font-family: 'Space Grotesk', system-ui, sans-serif; border: 1px solid rgba(240,237,230,0.14); border-radius: 18px; padding: 1.5rem 1.4rem 1.25rem;
  box-shadow: 0 30px 70px -20px rgba(0,0,0,0.65); animation: pgcc-in .32s cubic-bezier(.16,1,.3,1); }
.pgcc-modal h3 { margin: 0 0 1rem; font-size: 1.15rem; letter-spacing: -0.02em; }
.pgcc-cat { border: 1px solid rgba(240,237,230,0.10); background: #0e1712; border-radius: 12px; padding: .85rem 1rem; margin-bottom: .7rem; }
.pgcc-cat-h { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pgcc-cat-h b { font-size: 0.92rem; }
.pgcc-cat p { margin: .35rem 0 0; font-size: 0.78rem; color: #9b938a; line-height: 1.5; }
.pgcc-readonly { font-size: 0.7rem; color: #5fe084; text-transform: uppercase; letter-spacing: 0.08em; }
/* interrupteur */
.pgcc-sw { position: relative; display: inline-block; width: 42px; height: 24px; flex: 0 0 auto; }
.pgcc-sw input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.pgcc-sw span { position: absolute; inset: 0; background: #3a463e; border-radius: 100px; transition: background .2s; }
.pgcc-sw span::before { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #f0ede6; transition: transform .2s; }
.pgcc-sw input:checked + span { background: #5fe084; }
.pgcc-sw input:checked + span::before { transform: translateX(18px); background: #07120b; }
.pgcc-modal-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.1rem; }
.pgcc-modal-actions .pgcc-save { margin-left: auto; }

@media (max-width: 480px) { .pgcc { right: .6rem; left: .6rem; bottom: .6rem; width: auto; } }
@media (prefers-reduced-motion: reduce) { .pgcc, .pgcc-ov, .pgcc-modal { animation: none; } }
