/* ==========================================================================
   Privacy Consent Manager — Banner & Modal
   Scoped isolation without breaking display properties.
   ========================================================================== */

/* ── CSS Variables ─────────────────────────────────────────────────────────── */
:root {
  --pcm-primary  : #0f172a;
  --pcm-accent   : #4f46e5;
  --pcm-accent-h : #4338ca;
  --pcm-text     : #374151;
  --pcm-bg       : #ffffff;
  --pcm-radius   : 16px;
  --pcm-font     : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --pcm-shadow   : 0 24px 80px rgba(0,0,0,.20), 0 8px 24px rgba(0,0,0,.10);
  --pcm-shadow-sm: 0 4px 16px rgba(0,0,0,.10);
  --pcm-border   : #e2e8f0;
  --pcm-surface  : #f8fafc;
  --pcm-muted    : #64748b;
  --pcm-green    : #10b981;
  --pcm-speed    : .32s;
  --pcm-ease     : cubic-bezier(.4,0,.2,1);
  --pcm-z        : 2147483647;
}

/* ── Scoped reset — only typography & box model, never display ────────────── */
#pcm-banner, #pcm-banner *,
#pcm-modal,  #pcm-modal  *,
#pcm-widget  {
  font-family     : var(--pcm-font) !important;
  font-size       : inherit !important;
  box-sizing      : border-box !important;
  margin          : 0 !important;
  padding         : 0 !important;
  border          : none !important;
  outline         : none !important;
  background      : none !important;
  color           : inherit !important;
  text-decoration : none !important;
  list-style      : none !important;
  line-height     : normal !important;
  letter-spacing  : normal !important;
  word-spacing    : normal !important;
  text-transform  : none !important;
  font-weight     : normal !important;
  font-style      : normal !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* ── Overlay ──────────────────────────────────────────────────────────────── */
#pcm-overlay {
  position        : fixed !important;
  top             : 0 !important;
  left            : 0 !important;
  right           : 0 !important;
  bottom          : 0 !important;
  background      : rgba(2,6,23,.6) !important;
  backdrop-filter : blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  z-index         : calc(var(--pcm-z) - 1) !important;
  animation       : pcmFadeIn .25s var(--pcm-ease) both !important;
}

/* ── Banner shell ─────────────────────────────────────────────────────────── */
#pcm-banner {
  display       : block !important;
  position      : fixed !important;
  z-index       : var(--pcm-z) !important;
  background    : #ffffff !important;
  border-radius : var(--pcm-radius) !important;
  box-shadow    : var(--pcm-shadow) !important;
  border        : 1px solid var(--pcm-border) !important;
  max-width     : 980px !important;
  width         : calc(100% - 40px) !important;
  opacity       : 0 !important;
  transition    : opacity var(--pcm-speed) var(--pcm-ease), transform var(--pcm-speed) var(--pcm-ease) !important;
  overflow      : hidden !important;
}

/* Positions */
#pcm-banner.pcm-pos-bottom {
  bottom    : 24px !important;
  left      : 50% !important;
  transform : translateX(-50%) translateY(30px) !important;
}
#pcm-banner.pcm-pos-top {
  top       : 24px !important;
  left      : 50% !important;
  transform : translateX(-50%) translateY(-30px) !important;
}
#pcm-banner.pcm-pos-bottom-left {
  bottom    : 24px !important;
  left      : 24px !important;
  max-width : 460px !important;
  transform : translateY(30px) !important;
}
#pcm-banner.pcm-pos-bottom-right {
  bottom    : 24px !important;
  right     : 24px !important;
  max-width : 460px !important;
  transform : translateY(30px) !important;
}
#pcm-banner.pcm-visible {
  opacity : 1 !important;
}
#pcm-banner.pcm-pos-bottom.pcm-visible,
#pcm-banner.pcm-pos-top.pcm-visible {
  transform : translateX(-50%) translateY(0) !important;
}
#pcm-banner.pcm-pos-bottom-left.pcm-visible,
#pcm-banner.pcm-pos-bottom-right.pcm-visible {
  transform : translateY(0) !important;
}

/* ── Banner inner ─────────────────────────────────────────────────────────── */
#pcm-banner .pcm-inner {
  display     : flex !important;
  align-items : center !important;
  gap         : 28px !important;
  padding     : 22px 28px !important;
}

/* ── Banner content ───────────────────────────────────────────────────────── */
#pcm-banner .pcm-content {
  display        : flex !important;
  flex-direction : column !important;
  gap            : 6px !important;
  flex           : 1 !important;
  min-width      : 0 !important;
}

#pcm-banner .pcm-head {
  display     : flex !important;
  align-items : center !important;
  gap         : 10px !important;
}

#pcm-banner .pcm-icon {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  width           : 38px !important;
  height          : 38px !important;
  min-width       : 38px !important;
  border-radius   : 10px !important;
  background      : linear-gradient(135deg, #0f172a 0%, #4f46e5 100%) !important;
  box-shadow      : 0 4px 12px rgba(79,70,229,.35) !important;
}
#pcm-banner .pcm-icon svg {
  display      : block !important;
  width        : 20px !important;
  height       : 20px !important;
  stroke       : #ffffff !important;
  fill         : none !important;
  stroke-width : 2 !important;
  stroke-linecap   : round !important;
  stroke-linejoin  : round !important;
}

#pcm-banner .pcm-title {
  display     : block !important;
  font-size   : 16px !important;
  font-weight : 700 !important;
  color       : #0f172a !important;
  letter-spacing: -.01em !important;
  line-height : 1.2 !important;
}

#pcm-banner .pcm-badge {
  display         : inline-flex !important;
  align-items     : center !important;
  font-size       : 10px !important;
  font-weight     : 800 !important;
  letter-spacing  : .08em !important;
  text-transform  : uppercase !important;
  padding         : 3px 9px !important;
  border-radius   : 99px !important;
  background      : #4f46e5 !important;
  color           : #ffffff !important;
  line-height     : 1.4 !important;
}

#pcm-banner .pcm-desc {
  display     : block !important;
  font-size   : 13.5px !important;
  color       : #64748b !important;
  line-height : 1.65 !important;
}

#pcm-banner .pcm-links {
  display : flex !important;
  gap     : 14px !important;
}
#pcm-banner .pcm-links a {
  display         : inline-block !important;
  font-size       : 12px !important;
  color           : #4f46e5 !important;
  text-decoration : underline !important;
  text-underline-offset: 2px !important;
  cursor          : pointer !important;
  line-height     : 1.4 !important;
}
#pcm-banner .pcm-links a:hover {
  color : #4338ca !important;
}

/* ── Banner actions ───────────────────────────────────────────────────────── */
#pcm-banner .pcm-actions {
  display        : flex !important;
  flex-direction : column !important;
  gap            : 8px !important;
  min-width      : 172px !important;
  flex-shrink    : 0 !important;
}

/* ── Buttons (shared) ─────────────────────────────────────────────────────── */
#pcm-banner .pcm-btn,
#pcm-modal  .pcm-btn {
  display         : inline-flex !important;
  align-items     : center !important;
  justify-content : center !important;
  cursor          : pointer !important;
  font-family     : var(--pcm-font) !important;
  font-size       : 13.5px !important;
  font-weight     : 600 !important;
  line-height     : 1 !important;
  padding         : 10px 20px !important;
  border-radius   : 10px !important;
  transition      : all .18s var(--pcm-ease) !important;
  white-space     : nowrap !important;
  letter-spacing  : -.01em !important;
  text-align      : center !important;
}

/* Primary */
#pcm-banner .pcm-btn-primary,
#pcm-modal  .pcm-btn-primary {
  background : #4f46e5 !important;
  color      : #ffffff !important;
  box-shadow : 0 1px 2px rgba(79,70,229,.2), 0 4px 12px rgba(79,70,229,.3) !important;
}
#pcm-banner .pcm-btn-primary:hover,
#pcm-modal  .pcm-btn-primary:hover {
  background : #4338ca !important;
  box-shadow : 0 1px 2px rgba(79,70,229,.2), 0 6px 18px rgba(79,70,229,.4) !important;
  transform  : translateY(-1px) !important;
}
#pcm-banner .pcm-btn-primary:active,
#pcm-modal  .pcm-btn-primary:active {
  transform : translateY(0) !important;
}

/* Outline */
#pcm-banner .pcm-btn-outline,
#pcm-modal  .pcm-btn-outline {
  background : transparent !important;
  color      : #4f46e5 !important;
  border     : 1.5px solid rgba(79,70,229,.4) !important;
}
#pcm-banner .pcm-btn-outline:hover,
#pcm-modal  .pcm-btn-outline:hover {
  background   : rgba(79,70,229,.06) !important;
  border-color : #4f46e5 !important;
}

/* Ghost */
#pcm-banner .pcm-btn-ghost,
#pcm-modal  .pcm-btn-ghost {
  background : #f8fafc !important;
  color      : #64748b !important;
  border     : 1.5px solid #e2e8f0 !important;
}
#pcm-banner .pcm-btn-ghost:hover,
#pcm-modal  .pcm-btn-ghost:hover {
  background : #f1f5f9 !important;
  color      : #374151 !important;
}

#pcm-banner .pcm-btn:focus-visible,
#pcm-modal  .pcm-btn:focus-visible {
  outline        : 2.5px solid #4f46e5 !important;
  outline-offset : 2px !important;
}

/* ── Floating widget ──────────────────────────────────────────────────────── */
#pcm-widget {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  position        : fixed !important;
  bottom          : 24px !important;
  left            : 24px !important;
  z-index         : calc(var(--pcm-z) - 2) !important;
  width           : 46px !important;
  height          : 46px !important;
  min-width       : 46px !important;
  border-radius   : 50% !important;
  background      : #0f172a !important;
  border          : none !important;
  cursor          : pointer !important;
  box-shadow      : 0 4px 20px rgba(0,0,0,.22), 0 1px 4px rgba(0,0,0,.12) !important;
  transition      : transform .2s var(--pcm-ease), box-shadow .2s var(--pcm-ease) !important;
}
#pcm-widget svg {
  display      : block !important;
  width        : 20px !important;
  height       : 20px !important;
  stroke       : #ffffff !important;
  fill         : none !important;
  stroke-width : 2 !important;
  stroke-linecap  : round !important;
  stroke-linejoin : round !important;
  pointer-events  : none !important;
}
#pcm-widget:hover {
  transform  : scale(1.1) !important;
  box-shadow : 0 8px 28px rgba(0,0,0,.25) !important;
}
#pcm-widget:focus-visible {
  outline        : 2.5px solid #4f46e5 !important;
  outline-offset : 3px !important;
}

/* ── Modal ────────────────────────────────────────────────────────────────── */
#pcm-modal {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  position        : fixed !important;
  top             : 0 !important;
  left            : 0 !important;
  right           : 0 !important;
  bottom          : 0 !important;
  z-index         : var(--pcm-z) !important;
  padding         : 20px !important;
  opacity         : 0 !important;
  pointer-events  : none !important;
  transition      : opacity var(--pcm-speed) var(--pcm-ease) !important;
}
#pcm-modal.pcm-visible {
  opacity        : 1 !important;
  pointer-events : all !important;
}

#pcm-modal .pcm-modal-inner {
  display        : flex !important;
  flex-direction : column !important;
  background     : #ffffff !important;
  border-radius  : var(--pcm-radius) !important;
  box-shadow     : var(--pcm-shadow) !important;
  border         : 1px solid var(--pcm-border) !important;
  width          : 100% !important;
  max-width      : 600px !important;
  max-height     : 88vh !important;
  overflow       : hidden !important;
  transform      : scale(.95) translateY(10px) !important;
  transition     : transform var(--pcm-speed) var(--pcm-ease) !important;
}
#pcm-modal.pcm-visible .pcm-modal-inner {
  transform : scale(1) translateY(0) !important;
}

/* Modal header */
#pcm-modal .pcm-modal-header {
  display         : flex !important;
  align-items     : center !important;
  justify-content : space-between !important;
  padding         : 22px 28px !important;
  border-bottom   : 1px solid var(--pcm-border) !important;
  background      : #ffffff !important;
  flex-shrink     : 0 !important;
}
#pcm-modal .pcm-modal-title {
  display     : flex !important;
  align-items : center !important;
  gap         : 10px !important;
  font-size   : 18px !important;
  font-weight : 800 !important;
  color       : #0f172a !important;
  letter-spacing: -.02em !important;
  line-height : 1.2 !important;
}
#pcm-modal .pcm-modal-title svg {
  display      : block !important;
  width        : 22px !important;
  height       : 22px !important;
  stroke       : #4f46e5 !important;
  fill         : none !important;
  stroke-width : 2 !important;
  stroke-linecap  : round !important;
  stroke-linejoin : round !important;
  flex-shrink  : 0 !important;
}

#pcm-modal .pcm-modal-close {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  width           : 34px !important;
  height          : 34px !important;
  min-width       : 34px !important;
  border-radius   : 8px !important;
  border          : 1.5px solid var(--pcm-border) !important;
  background      : transparent !important;
  cursor          : pointer !important;
  color           : #64748b !important;
  transition      : all .15s !important;
}
#pcm-modal .pcm-modal-close svg {
  display      : block !important;
  width        : 16px !important;
  height       : 16px !important;
  stroke       : currentColor !important;
  fill         : none !important;
  stroke-width : 2.5 !important;
  stroke-linecap  : round !important;
  stroke-linejoin : round !important;
}
#pcm-modal .pcm-modal-close:hover {
  background   : #f1f5f9 !important;
  color        : #374151 !important;
  border-color : #cbd5e1 !important;
}

/* Modal body */
#pcm-modal .pcm-modal-body {
  display        : flex !important;
  flex-direction : column !important;
  gap            : 10px !important;
  padding        : 22px 28px !important;
  overflow-y     : auto !important;
  flex           : 1 !important;
  scrollbar-width: thin !important;
  scrollbar-color: #e2e8f0 transparent !important;
}
#pcm-modal .pcm-modal-body::-webkit-scrollbar {
  width : 5px !important;
}
#pcm-modal .pcm-modal-body::-webkit-scrollbar-thumb {
  background    : #e2e8f0 !important;
  border-radius : 99px !important;
}

#pcm-modal .pcm-intro {
  display       : block !important;
  font-size     : 13.5px !important;
  color         : #64748b !important;
  line-height   : 1.7 !important;
  padding       : 14px 16px !important;
  background    : #f8fafc !important;
  border-radius : 10px !important;
  border        : 1px solid var(--pcm-border) !important;
}
#pcm-modal .pcm-intro a {
  color           : #4f46e5 !important;
  text-decoration : underline !important;
  text-underline-offset: 2px !important;
  cursor          : pointer !important;
}

/* Modal footer */
#pcm-modal .pcm-modal-footer {
  display         : flex !important;
  align-items     : center !important;
  justify-content : flex-end !important;
  gap             : 8px !important;
  padding         : 18px 28px !important;
  border-top      : 1px solid var(--pcm-border) !important;
  background      : #ffffff !important;
  flex-shrink     : 0 !important;
  flex-wrap       : wrap !important;
}

/* ── Category cards ───────────────────────────────────────────────────────── */
#pcm-modal .pcm-cats {
  display        : flex !important;
  flex-direction : column !important;
  gap            : 8px !important;
}

#pcm-modal .pcm-cat {
  display       : block !important;
  border        : 1.5px solid var(--pcm-border) !important;
  border-radius : 12px !important;
  overflow      : hidden !important;
  background    : #ffffff !important;
  transition    : border-color .15s, box-shadow .15s !important;
}
#pcm-modal .pcm-cat:hover {
  border-color : #c7d2fe !important;
  box-shadow   : 0 2px 12px rgba(79,70,229,.08) !important;
}

#pcm-modal .pcm-cat-header {
  display         : flex !important;
  align-items     : center !important;
  justify-content : space-between !important;
  padding         : 14px 16px !important;
  gap             : 12px !important;
  background      : #f8fafc !important;
}

#pcm-modal .pcm-cat-info {
  display     : flex !important;
  align-items : center !important;
  gap         : 12px !important;
  flex        : 1 !important;
  min-width   : 0 !important;
}

#pcm-modal .pcm-cat-icon {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  width           : 36px !important;
  height          : 36px !important;
  min-width       : 36px !important;
  border-radius   : 9px !important;
  background      : #ffffff !important;
  border          : 1.5px solid var(--pcm-border) !important;
  font-size       : 18px !important;
  line-height     : 1 !important;
}

#pcm-modal .pcm-cat-name {
  display        : block !important;
  font-size      : 13.5px !important;
  font-weight    : 700 !important;
  color          : #0f172a !important;
  letter-spacing : -.01em !important;
  line-height    : 1.3 !important;
}
#pcm-modal .pcm-cat-count {
  display     : block !important;
  font-size   : 11.5px !important;
  color       : #64748b !important;
  line-height : 1.4 !important;
  margin-top  : 2px !important;
}

#pcm-modal .pcm-cat-controls {
  display     : flex !important;
  align-items : center !important;
  gap         : 10px !important;
  flex-shrink : 0 !important;
}

#pcm-modal .pcm-cat-desc {
  display     : block !important;
  padding     : 0 16px 14px !important;
  font-size   : 12.5px !important;
  color       : #64748b !important;
  line-height : 1.65 !important;
  background  : #f8fafc !important;
}

#pcm-modal .pcm-cat-details {
  display    : block !important;
  padding    : 14px 16px !important;
  border-top : 1px solid var(--pcm-border) !important;
  overflow-x : auto !important;
  background : #ffffff !important;
}
#pcm-modal .pcm-cat-details[hidden] {
  display : none !important;
}
#pcm-modal .pcm-no-cookies {
  display     : block !important;
  font-size   : 12.5px !important;
  color       : #64748b !important;
  text-align  : center !important;
  padding     : 10px 0 !important;
}

/* Details toggle btn */
#pcm-modal .pcm-toggle-details {
  display         : flex !important;
  align-items     : center !important;
  justify-content : center !important;
  width           : 30px !important;
  height          : 30px !important;
  min-width       : 30px !important;
  border-radius   : 7px !important;
  border          : 1.5px solid var(--pcm-border) !important;
  background      : #ffffff !important;
  cursor          : pointer !important;
  transition      : background .15s !important;
}
#pcm-modal .pcm-toggle-details svg {
  display      : block !important;
  width        : 14px !important;
  height       : 14px !important;
  stroke       : #64748b !important;
  fill         : none !important;
  stroke-width : 2.5 !important;
  stroke-linecap  : round !important;
  stroke-linejoin : round !important;
  transition   : transform .25s var(--pcm-ease) !important;
}
#pcm-modal .pcm-toggle-details:hover {
  background : #f1f5f9 !important;
}
#pcm-modal .pcm-toggle-details.open svg {
  transform : rotate(180deg) !important;
}

/* ── Always active ────────────────────────────────────────────────────────── */
#pcm-modal .pcm-always-active {
  display        : inline-flex !important;
  align-items    : center !important;
  font-size      : 11.5px !important;
  font-weight    : 700 !important;
  color          : #10b981 !important;
  background     : rgba(16,185,129,.1) !important;
  border         : 1.5px solid rgba(16,185,129,.25) !important;
  padding        : 4px 10px !important;
  border-radius  : 99px !important;
  letter-spacing : .01em !important;
  line-height    : 1.4 !important;
}

/* ── Toggle switch ────────────────────────────────────────────────────────── */
#pcm-modal .pcm-switch {
  display    : inline-block !important;
  position   : relative !important;
  width      : 44px !important;
  height     : 26px !important;
  min-width  : 44px !important;
  flex-shrink: 0 !important;
}
#pcm-modal .pcm-switch input {
  display  : block !important;
  opacity  : 0 !important;
  width    : 100% !important;
  height   : 100% !important;
  position : absolute !important;
  top      : 0 !important;
  left     : 0 !important;
  cursor   : pointer !important;
  z-index  : 1 !important;
  margin   : 0 !important;
}
#pcm-modal .pcm-switch-track {
  display       : block !important;
  position      : absolute !important;
  top           : 0 !important;
  left          : 0 !important;
  right         : 0 !important;
  bottom        : 0 !important;
  background    : #cbd5e1 !important;
  border-radius : 99px !important;
  transition    : background .2s !important;
  pointer-events: none !important;
}
#pcm-modal .pcm-switch-thumb {
  display       : block !important;
  position      : absolute !important;
  width         : 20px !important;
  height        : 20px !important;
  top           : 3px !important;
  left          : 3px !important;
  background    : #ffffff !important;
  border-radius : 50% !important;
  box-shadow    : 0 1px 4px rgba(0,0,0,.2) !important;
  transition    : transform .2s var(--pcm-ease) !important;
  pointer-events: none !important;
}
#pcm-modal .pcm-switch input:checked ~ .pcm-switch-track {
  background : #4f46e5 !important;
}
#pcm-modal .pcm-switch input:checked ~ .pcm-switch-thumb {
  transform : translateX(18px) !important;
}
#pcm-modal .pcm-switch input:focus-visible ~ .pcm-switch-track {
  outline        : 2.5px solid #4f46e5 !important;
  outline-offset : 2px !important;
}

/* ── Cookie table ─────────────────────────────────────────────────────────── */
#pcm-modal .pcm-cookie-table {
  display         : table !important;
  width           : 100% !important;
  border-collapse : collapse !important;
  font-size       : 12px !important;
  min-width       : 440px !important;
}
#pcm-modal .pcm-cookie-table thead { display: table-header-group !important; }
#pcm-modal .pcm-cookie-table tbody { display: table-row-group !important; }
#pcm-modal .pcm-cookie-table tr    { display: table-row !important; }
#pcm-modal .pcm-cookie-table th {
  display        : table-cell !important;
  text-align     : left !important;
  padding        : 7px 10px !important;
  background     : #f8fafc !important;
  color          : #64748b !important;
  font-weight    : 700 !important;
  font-size      : 10.5px !important;
  text-transform : uppercase !important;
  letter-spacing : .06em !important;
  border-bottom  : 1px solid var(--pcm-border) !important;
  line-height    : 1.4 !important;
}
#pcm-modal .pcm-cookie-table td {
  display       : table-cell !important;
  padding       : 8px 10px !important;
  border-bottom : 1px solid #f1f5f9 !important;
  vertical-align: top !important;
  color         : #374151 !important;
  font-size     : 12px !important;
  line-height   : 1.5 !important;
}
#pcm-modal .pcm-cookie-table tr:last-child td {
  border-bottom : none !important;
}
#pcm-modal .pcm-cookie-table code {
  display       : inline !important;
  background    : #f1f5f9 !important;
  padding       : 2px 6px !important;
  border-radius : 5px !important;
  font-size     : 11px !important;
  font-family   : 'Menlo','Consolas','Monaco',monospace !important;
  color         : #0f172a !important;
  word-break    : break-all !important;
  line-height   : 1.4 !important;
}

/* ── Animations ───────────────────────────────────────────────────────────── */
@keyframes pcmFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Dark mode ────────────────────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  :root {
    --pcm-border  : rgba(255,255,255,.1);
    --pcm-surface : #1e293b;
    --pcm-muted   : #94a3b8;
  }
  #pcm-banner,
  #pcm-modal .pcm-modal-inner,
  #pcm-modal .pcm-modal-header,
  #pcm-modal .pcm-modal-footer  { background: #1e293b !important; }
  #pcm-banner .pcm-title,
  #pcm-modal  .pcm-modal-title  { color: #f1f5f9 !important; }
  #pcm-banner .pcm-desc,
  #pcm-modal  .pcm-cat-desc,
  #pcm-modal  .pcm-intro        { color: #94a3b8 !important; }
  #pcm-modal .pcm-cat,
  #pcm-modal .pcm-cat-header,
  #pcm-modal .pcm-cat-desc      { background: #1e293b !important; }
  #pcm-modal .pcm-cat-details   { background: #0f172a !important; }
  #pcm-modal .pcm-cat-icon      { background: #0f172a !important; }
  #pcm-modal .pcm-intro         { background: #0f172a !important; }
  #pcm-modal .pcm-switch-thumb  { background: #f1f5f9 !important; }
  #pcm-modal .pcm-cookie-table th { background: #0f172a !important; }
  #pcm-modal .pcm-cookie-table td { color: #e2e8f0 !important; }
  #pcm-modal .pcm-cookie-table code { background: #0f172a !important; color: #e2e8f0 !important; }
}

/* ── Mobile ───────────────────────────────────────────────────────────────── */
@media (max-width: 680px) {
  #pcm-banner {
    width         : calc(100% - 16px) !important;
    max-width     : none !important;
    border-radius : 14px !important;
    left          : 8px !important;
    right         : 8px !important;
    bottom        : 8px !important;
    top           : auto !important;
    transform     : translateY(30px) !important;
  }
  #pcm-banner.pcm-visible {
    transform : translateY(0) !important;
  }
  #pcm-banner.pcm-pos-top {
    top    : 8px !important;
    bottom : auto !important;
    transform: translateY(-30px) !important;
  }
  #pcm-banner.pcm-pos-top.pcm-visible {
    transform: translateY(0) !important;
  }
  #pcm-banner .pcm-inner {
    flex-direction : column !important;
    align-items    : stretch !important;
    padding        : 20px !important;
    gap            : 16px !important;
  }
  #pcm-banner .pcm-actions {
    min-width : 0 !important;
    width     : 100% !important;
  }
  #pcm-banner .pcm-btn {
    width   : 100% !important;
    padding : 13px 20px !important;
  }

  #pcm-modal { padding: 10px !important; }
  #pcm-modal .pcm-modal-inner  { border-radius: 14px !important; max-height: 95vh !important; }
  #pcm-modal .pcm-modal-header { padding: 18px 20px !important; }
  #pcm-modal .pcm-modal-body   { padding: 16px 20px !important; }
  #pcm-modal .pcm-modal-footer {
    padding        : 14px 20px !important;
    flex-direction : column !important;
  }
  #pcm-modal .pcm-modal-footer .pcm-btn {
    width   : 100% !important;
    padding : 13px 20px !important;
  }
}
