  :root{
    --cc-bg:#111827; --cc-txt:#f9fafb; --cc-sub:#9ca3af; --cc-accent:#60a5fa;
    --cc-btn:#1f2937; --cc-btn-txt:#f9fafb; --cc-ok:#22c55e; --cc-no:#ef4444;
    --shadow:0 20px 40px rgba(0,0,0,.35);
  }
  /* Backdrop */
  .cc-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:saturate(120%) blur(2px);
    display:none;z-index:9998;}
  .cc-backdrop.active{display:block;}
  /* Dialog */
  .cc-dialog{position:fixed;left:50%;bottom:2rem;transform:translateX(-50%);
    width:min(680px,92vw);background:var(--cc-bg);color:var(--cc-txt);
    border-radius:16px;box-shadow:var(--shadow);padding:1.25rem;z-index:9999;
    display:none;}
  .cc-dialog.active{display:block;}
  .cc-header{display:flex;gap:.75rem;align-items:start;margin-bottom:.5rem}
  .cc-title{font-size:1.1rem;font-weight:700;margin:0}
  .cc-body{font-size:.95rem;color:var(--cc-sub);line-height:1.5}
  .cc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
  .cc-btn{appearance:none;border:1px solid transparent;border-radius:999px;
    padding:.6rem 1rem;font-weight:600;cursor:pointer;background:var(--cc-btn);
    color:var(--cc-btn-txt);}
  .cc-btn:hover{opacity:.95}
  .cc-accept{background:var(--cc-ok);border-color:transparent;color:#06280f}
  .cc-reject{background:var(--cc-no);color:#fff}
  .cc-customize{border-color:#374151;background:#0b1220}
  details.cc-cats{background:#0b1220;border:1px solid #1f2937;border-radius:12px;padding:.75rem;margin-top:.75rem}
  .cc-switch{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-top:1px solid #1f2937}
  .cc-switch:first-of-type{border-top:none}
  .cc-switch input[type="checkbox"]{width:42px;height:24px;-webkit-appearance:none;appearance:none;background:#374151;border-radius:999px;position:relative;outline:none;cursor:pointer;transition:all .2s}
  .cc-switch input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s}
  .cc-switch input[type="checkbox"]:checked{background:var(--cc-accent)}
  .cc-switch input[type="checkbox"]:checked::after{left:21px}
  .cc-small{font-size:.85rem;color:var(--cc-sub)}
  .cc-link{color:#93c5fd;text-decoration:underline;text-underline-offset:2px}
  /* Reopen (manage) button – optional */
  .cc-manage{position:fixed;right:1rem;bottom:1rem;background:#0b1220;border:1px solid #1f2937}
  @media (prefers-reduced-motion:no-preference){
    .cc-dialog{animation:cc-rise .2s ease-out}
    @keyframes cc-rise{from{transform:translate(-50%,20px)}to{transform:translate(-50%,0)}}
  }