@c15t/browser 3.0.0-alpha.1 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +10 -0
  3. package/dist/861.js +1 -1
  4. package/dist/925.js +20 -13
  5. package/dist/c15t.css +6 -3
  6. package/dist/c15t.devtools.js +1 -1
  7. package/dist/c15t.headless.js +1 -1
  8. package/dist/c15t.iab.js +4 -4
  9. package/dist/c15t.js +3 -3
  10. package/dist-types/auto-init.d.ts +1 -1
  11. package/dist-types/client.d.ts +1 -1
  12. package/dist-types/devtools.d.ts +1 -1
  13. package/dist-types/gated-scripts.d.ts +3 -2
  14. package/dist-types/global.d.ts +4 -4
  15. package/dist-types/headless.d.ts +11 -11
  16. package/dist-types/iab/mount.d.ts +1 -1
  17. package/dist-types/iab/preferences.d.ts +1 -1
  18. package/dist-types/iab/surface.d.ts +2 -2
  19. package/dist-types/iab/vendor-disclosures.d.ts +1 -1
  20. package/dist-types/iab.d.ts +7 -7
  21. package/dist-types/index.d.ts +12 -12
  22. package/dist-types/ui/banner.d.ts +2 -2
  23. package/dist-types/ui/dialog.d.ts +2 -2
  24. package/dist-types/ui/mount.d.ts +2 -2
  25. package/dist-types/ui/surface.d.ts +1 -1
  26. package/dist-types/ui/trigger.d.ts +2 -2
  27. package/dist-types/ui/widget.d.ts +1 -1
  28. package/dist-types/version.d.ts +1 -1
  29. package/docs/README.md +2 -0
  30. package/docs/frameworks/javascript/script-loader.md +40 -0
  31. package/docs/integrations/building-integrations.md +5 -0
  32. package/docs/integrations/cloudflare-zaraz.md +399 -0
  33. package/docs/integrations/google-maps.md +20 -20
  34. package/docs/integrations/granular-consent.md +208 -0
  35. package/docs/integrations/overview.md +5 -4
  36. package/docs/integrations/youtube.md +26 -21
  37. package/package.json +7 -7
  38. package/readme.json +0 -44
package/dist/925.js CHANGED
@@ -72,7 +72,7 @@ const trackPendingScript = (script)=>{
72
72
  script.addEventListener('error', settled);
73
73
  return pending;
74
74
  };
75
- const gated_scripts_createGatedScriptActivator = function(getSnapshot, root) {
75
+ const gated_scripts_createGatedScriptActivator = function(getSnapshot, root, registerCategories) {
76
76
  let disposed = false;
77
77
  let scanning = false;
78
78
  let waiting = null;
@@ -97,6 +97,12 @@ const gated_scripts_createGatedScriptActivator = function(getSnapshot, root) {
97
97
  try {
98
98
  const selector = `script[type="text/plain"][${CATEGORY_ATTRIBUTE}]:not([${ACTIVATED_ATTRIBUTE}])`;
99
99
  const elements = (root ?? document).querySelectorAll(selector);
100
+ registerCategories?.(Array.from(elements).flatMap((element)=>{
101
+ const category = element.getAttribute(CATEGORY_ATTRIBUTE);
102
+ return allConsentNames.includes(category) ? [
103
+ category
104
+ ] : [];
105
+ }));
100
106
  for (const element of elements){
101
107
  if (disposed) break;
102
108
  if (!element.isConnected || !gated_scripts_isAllowed(element, getSnapshot())) continue;
@@ -308,16 +314,18 @@ const client_resolveMode = function(options) {
308
314
  };
309
315
  };
310
316
  const client_resolveConsentCategories = function(snapshot, configured) {
311
- const available = [
317
+ const scope = snapshot.evaluationPolicy.choiceScope ?? snapshot.policyRule.scope;
318
+ const available = new Set([
312
319
  'necessary',
313
- ...snapshot.policyRule.scope
320
+ ...scope
321
+ ]);
322
+ return [
323
+ ...new Set([
324
+ 'necessary',
325
+ ...configured.filter((category)=>available.has(category)),
326
+ ...scope
327
+ ])
314
328
  ];
315
- if (0 === configured.length) return Array.from(available);
316
- const allowed = new Set(available);
317
- return Array.from(new Set([
318
- 'necessary',
319
- ...configured.filter((category)=>allowed.has(category))
320
- ]));
321
329
  };
322
330
  const client_dispatchDocumentEvent = function(name, detail) {
323
331
  if ("u" < typeof document) return;
@@ -337,7 +345,6 @@ const client_resolvePageAction = function(target) {
337
345
  const client_createConsentClient = function(options = {}, context = {}) {
338
346
  if (options.iab && false !== options.iab.enabled && !context.createIAB) throw new Error('@c15t/browser: IAB requires the @c15t/browser/iab entry.');
339
347
  const mode = client_resolveMode(options);
340
- const configuredCategories = options.consentCategories ?? [];
341
348
  const runtime = createConsentRuntime({
342
349
  callbacks: options.callbacks,
343
350
  clearOnRevocation: options.clearOnRevocation,
@@ -362,7 +369,7 @@ const client_createConsentClient = function(options = {}, context = {}) {
362
369
  windowDebug: false
363
370
  });
364
371
  const { kernel } = runtime;
365
- const gatedScripts = gated_scripts_createGatedScriptActivator(()=>kernel.getSnapshot());
372
+ const gatedScripts = gated_scripts_createGatedScriptActivator(()=>kernel.getSnapshot(), void 0, kernel.set.registerConsentCategories);
366
373
  let startingRuntime = false;
367
374
  let drainingRuntimeEvents = false;
368
375
  const pendingRuntimeEvents = [];
@@ -422,7 +429,7 @@ const client_createConsentClient = function(options = {}, context = {}) {
422
429
  })
423
430
  ];
424
431
  const categories = function() {
425
- return client_resolveConsentCategories(kernel.getSnapshot(), configuredCategories);
432
+ return client_resolveConsentCategories(kernel.getSnapshot(), options.consentCategories ?? []);
426
433
  };
427
434
  let navigation = 0;
428
435
  const closeSurfaces = ()=>{
@@ -646,5 +653,5 @@ const client_createConsentClient = function(options = {}, context = {}) {
646
653
  };
647
654
  return client;
648
655
  };
649
- const version = '3.0.0-alpha.1';
656
+ const version = '3.0.0-alpha.2';
650
657
  export { ACTION_ATTRIBUTE, ACTIVATED_ATTRIBUTE, CATEGORY_ATTRIBUTE, PREFERENCES_HASH, client_createConsentClient, client_resolveRules as resolveRules, core_hosted as hosted, custom, gated_scripts_activateGatedScripts as activateGatedScripts, manifest_manifest as manifest, manifest_manifestNeedsLocation as manifestNeedsLocation, offline_offline as offline, version };
package/dist/c15t.css CHANGED
@@ -34,7 +34,7 @@
34
34
  :root, :host{--consent-manager-background-color:var(--c15t-surface);--consent-manager-background-color-dark:var(--c15t-surface);--consent-manager-border-color:var(--c15t-border);--consent-manager-border-color-dark:var(--c15t-border);--consent-manager-text-color:var(--c15t-text);--consent-manager-text-color-dark:var(--c15t-text);--consent-manager-text-muted-color:var(--c15t-text-muted);--consent-manager-text-muted-color-dark:var(--c15t-text-muted);--consent-manager-footer-background-color:transparent;--consent-manager-footer-background-color-dark:transparent;--consent-manager-link-text-color:var(--c15t-text);--consent-manager-link-text-color-dark:var(--c15t-text);--consent-manager-branding-link-color:var(--c15t-primary);--consent-manager-padding:0;--consent-manager-radius:0;--consent-manager-gap:var(--c15t-space-xs);--consent-manager-border-width:0;--consent-manager-max-width:32rem;--consent-manager-z-index:50;--consent-manager-footer-padding:var(--c15t-space-lg) 0 0 0;--consent-manager-title-size:var(--c15t-font-size-sm);--consent-manager-title-line-height:var(--c15t-line-height-tight);--consent-manager-title-tracking:-.006em;--consent-manager-title-weight:var(--c15t-font-weight-semibold);--consent-manager-entry-animation:var(--c15t-enter-animation);--consent-manager-exit-animation:var(--c15t-exit-animation);--consent-manager-font-family:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--consent-manager-line-height:1.15}
35
35
 
36
36
  /* components/panel vars */
37
- :root, :host{--consent-dialog-font-family:var(--c15t-font-family);--consent-dialog-line-height:var(--c15t-line-height-tight);--consent-dialog-title-font-size:var(--c15t-font-size-sm);--consent-dialog-title-font-weight:var(--c15t-font-weight-semibold);--consent-dialog-title-letter-spacing:-.025em;--consent-dialog-description-font-size:var(--c15t-font-size-base);--consent-dialog-description-font-weight:var(--c15t-font-weight-normal);--consent-dialog-description-line-height:var(--c15t-line-height-normal);--consent-dialog-footer-gap:var(--c15t-space-sm);--consent-dialog-footer-font-size:14px;--consent-dialog-stroke-color:var(--c15t-border);--consent-dialog-stroke-color-dark:var(--c15t-border);--consent-dialog-link-text-color:var(--c15t-text);--consent-dialog-link-text-color-dark:var(--c15t-text);--consent-dialog-border-color:var(--c15t-border);--consent-dialog-border-color-dark:var(--c15t-border);--consent-dialog-background-color:var(--c15t-surface);--consent-dialog-background-color-dark:var(--c15t-surface);--consent-dialog-foreground-color:var(--c15t-text);--consent-dialog-foreground-color-dark:var(--c15t-text);--consent-dialog-muted-color:var(--c15t-text-muted);--consent-dialog-muted-color-dark:var(--c15t-text-muted);--consent-dialog-overlay-background-color:var(--c15t-overlay);--consent-dialog-overlay-background-color-dark:var(--c15t-overlay);--consent-dialog-card-padding:var(--c15t-space-lg);--consent-dialog-card-padding-mobile:var(--c15t-space-md);--consent-dialog-card-gap:var(--c15t-space-xs);--consent-dialog-header-gap:var(--c15t-space-xs);--consent-dialog-content-gap:var(--c15t-space-md);--consent-dialog-footer-padding-y:var(--c15t-space-md);--consent-dialog-card-radius:var(--c15t-radius-lg);--consent-dialog-max-width:28rem;--consent-dialog-height:100%;--consent-dialog-z-index:999999;--consent-dialog-overlay-z-index:999998;--consent-dialog-card-shadow:0 1px 2px 0 #0000000d;--consent-dialog-border-width:1px;--consent-dialog-border-width-hairline:1px;--consent-dialog-border-style:solid;--consent-dialog-animation-duration:var(--c15t-duration-normal);--consent-dialog-animation-timing:ease-out}
37
+ :root, :host{--consent-dialog-font-family:var(--c15t-font-family);--consent-dialog-line-height:var(--c15t-line-height-tight);--consent-dialog-title-font-size:var(--c15t-font-size-sm);--consent-dialog-title-font-weight:var(--c15t-font-weight-semibold);--consent-dialog-title-letter-spacing:-.025em;--consent-dialog-description-font-size:var(--c15t-font-size-base);--consent-dialog-description-font-weight:var(--c15t-font-weight-normal);--consent-dialog-description-line-height:var(--c15t-line-height-normal);--consent-dialog-footer-gap:var(--c15t-space-sm);--consent-dialog-footer-font-size:14px;--consent-dialog-stroke-color:var(--c15t-border);--consent-dialog-stroke-color-dark:var(--c15t-border);--consent-dialog-link-text-color:var(--c15t-text);--consent-dialog-link-text-color-dark:var(--c15t-text);--consent-dialog-border-color:var(--c15t-border);--consent-dialog-border-color-dark:var(--c15t-border);--consent-dialog-background-color:var(--c15t-surface);--consent-dialog-background-color-dark:var(--c15t-surface);--consent-dialog-foreground-color:var(--c15t-text);--consent-dialog-foreground-color-dark:var(--c15t-text);--consent-dialog-muted-color:var(--c15t-text-muted);--consent-dialog-muted-color-dark:var(--c15t-text-muted);--consent-dialog-overlay-background-color:var(--c15t-overlay);--consent-dialog-overlay-background-color-dark:var(--c15t-overlay);--consent-dialog-card-padding:var(--c15t-space-lg);--consent-dialog-card-padding-mobile:var(--c15t-space-md);--consent-dialog-card-gap:var(--c15t-space-xs);--consent-dialog-header-gap:var(--c15t-space-xs);--consent-dialog-content-gap:var(--c15t-space-md);--consent-dialog-footer-padding-y:var(--c15t-space-md);--consent-dialog-card-radius:var(--c15t-radius-lg);--consent-dialog-max-width:28rem;--consent-dialog-height:100%;--consent-dialog-max-height:calc(100dvh - 2 * var(--consent-dialog-card-padding-mobile));--consent-dialog-z-index:999999;--consent-dialog-overlay-z-index:999998;--consent-dialog-card-shadow:0 1px 2px 0 #0000000d;--consent-dialog-border-width:1px;--consent-dialog-border-width-hairline:1px;--consent-dialog-border-style:solid;--consent-dialog-animation-duration:var(--c15t-duration-normal);--consent-dialog-animation-timing:ease-out}
38
38
  @media only screen and (resolution>=192dpi){:root, :host{--consent-dialog-border-width-hairline:.5px}}
39
39
 
40
40
  /* components/prompt vars */
@@ -64,7 +64,7 @@
64
64
  .c15t-ui-root-S5pMJ{gap:1rem;width:100%;display:grid}.c15t-ui-list-BZaPj{background:var(--tabs-list-background);border:1px solid var(--tabs-list-border);border-radius:var(--c15t-radius-md);grid-auto-flow:column;align-items:center;gap:.25rem;width:fit-content;padding:.25rem;display:inline-grid}.c15t-ui-list-vertical-cP2o0{grid-auto-flow:row}.c15t-ui-trigger-U8k4E{border-radius:calc(var(--c15t-radius-md) - .25rem);color:var(--tabs-trigger-color);cursor:pointer;font:inherit;transition:background-color var(--c15t-duration-fast) ease, color var(--c15t-duration-fast) ease;background:0 0;border:0;padding:.625rem .875rem;font-weight:500}.c15t-ui-trigger-U8k4E[data-state=active]{background:var(--tabs-trigger-active-background);color:var(--tabs-trigger-active-color)}.c15t-ui-trigger-U8k4E:focus-visible{outline:2px solid var(--tabs-focus-ring);outline-offset:2px}.c15t-ui-content-Iyncb{color:var(--c15t-text)}
65
65
 
66
66
  /* components/accordion */
67
- .c15t-ui-list-T3EU0:not(.headless){gap:var(--accordion-stack-gap,.75rem);display:grid}.c15t-ui-item-Jgm_X:not(.headless){border:1px solid var(--accordion-border-color,var(--c15t-border));border-radius:var(--accordion-radius,var(--c15t-radius-md));box-shadow:none;background-color:var(--accordion-background-color,var(--c15t-surface));padding:0;display:grid;overflow:visible}.c15t-dark .c15t-ui-item-Jgm_X:not(.headless){border-color:var(--accordion-border-color-dark,var(--c15t-border));background-color:var(--accordion-background-color-dark,var(--c15t-surface))}.c15t-ui-triggerRow-xXdTH:not(.headless){align-items:center;gap:var(--accordion-gap,var(--c15t-space-xs));box-sizing:border-box;width:100%;padding:var(--accordion-padding,var(--c15t-space-sm));border-radius:var(--accordion-radius,var(--c15t-radius-md));color:var(--accordion-text-color,var(--c15t-text));transition:background-color var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));background-color:#0000;border:0;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.c15t-ui-triggerRow-xXdTH:not(.headless):hover{background-color:var(--accordion-background-hover,var(--c15t-surface-hover))}.c15t-dark .c15t-ui-triggerRow-xXdTH:not(.headless){color:var(--accordion-text-color-dark,var(--c15t-text))}.c15t-dark .c15t-ui-triggerRow-xXdTH:not(.headless):hover{background-color:var(--accordion-background-hover-dark,var(--c15t-surface-hover))}.c15t-ui-item-Jgm_X:not(.headless):has(.c15t-ui-trigger-KT5J_:focus-visible){outline:2px solid var(--accordion-focus-ring,#476cff);outline-offset:-2px}.c15t-dark .c15t-ui-item-Jgm_X:not(.headless):has(.c15t-ui-trigger-KT5J_:focus-visible){outline-color:var(--accordion-focus-ring-dark,#2547d0)}.c15t-ui-trigger-KT5J_:not(.headless):focus-visible{outline:none}.c15t-ui-item-Jgm_X:not(.headless)>.c15t-ui-content-qdPhy{grid-column:1/-1}.c15t-ui-trigger-KT5J_:not(.headless){appearance:none;align-items:center;gap:var(--accordion-gap,var(--c15t-space-xs));min-width:0;min-height:calc(var(--accordion-icon-size,1.25rem) + .25rem);font-family:inherit;font-size:var(--accordion-title-size,var(--c15t-font-size-sm));line-height:var(--c15t-line-height-tight);letter-spacing:inherit;font-weight:var(--c15t-font-weight-regular);border-radius:var(--accordion-radius,var(--c15t-radius-md));width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-self:stretch;padding:0;display:flex;position:relative}.c15t-ui-arrow-JFKgd:not(.headless){color:var(--accordion-arrow-color,#a3a3a3);width:var(--accordion-icon-size,1.25rem);height:var(--accordion-icon-size,1.25rem);transition:transform var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-arrow-JFKgd:not(.headless) svg{width:100%;height:100%;display:block}.c15t-dark .c15t-ui-arrow-JFKgd:not(.headless){color:var(--accordion-arrow-color-dark,#ccc)}.c15t-ui-header-ogZie:not(.headless){flex-direction:column;flex:1;min-width:0;display:flex}.c15t-ui-title-vmC1f:not(.headless){font:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0}.c15t-ui-control-dy7nh:not(.headless){flex-shrink:0;align-self:center;position:relative;top:-1px}.c15t-ui-restriction-bXiI7:not(.headless){padding:0 var(--accordion-row-padding-x,1rem) .75rem;color:var(--accordion-restriction-color,var(--c15t-text-muted));font-size:var(--c15t-font-size-sm);line-height:var(--c15t-line-height-normal);grid-column:1/-1;margin:0;display:block}.c15t-ui-content-qdPhy:not(.headless){color:var(--accordion-content-color,#5c5c5c);letter-spacing:inherit;transition:grid-template-rows var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));grid-template-rows:0fr;padding:0;font-size:.875rem;line-height:1.5;display:grid;overflow:hidden}.c15t-ui-content-qdPhy:not(.headless)[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-qdPhy:not(.headless)[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-O2Kny:not(.headless){min-height:0;padding-top:0;padding-inline-start:calc(var(--accordion-icon-size,1.25rem) + var(--accordion-gap,var(--c15t-space-xs)));padding-inline-end:var(--accordion-padding,var(--c15t-space-sm));overflow:hidden}.c15t-ui-contentInner-b3ykf:not(.headless){opacity:1;transition:opacity calc(var(--accordion-duration,var(--c15t-duration-normal)) * .35) ease-out;padding-top:0}.c15t-ui-content-qdPhy[data-state=open] .c15t-ui-contentViewport-O2Kny:not(.headless){padding-bottom:var(--accordion-padding,var(--c15t-space-sm))}.c15t-ui-content-qdPhy[data-state=closed] .c15t-ui-contentViewport-O2Kny:not(.headless){padding-bottom:0}.c15t-ui-content-qdPhy[data-state=closed] .c15t-ui-contentInner-b3ykf:not(.headless){opacity:0}.c15t-dark .c15t-ui-content-qdPhy:not(.headless){color:var(--accordion-content-color-dark,#999)}:is([data-disable-animation] .c15t-ui-content-qdPhy:not(.headless),.disable-animation .c15t-ui-content-qdPhy:not(.headless)),:is([data-disable-animation] .c15t-ui-contentInner-b3ykf:not(.headless),.disable-animation .c15t-ui-contentInner-b3ykf:not(.headless)),:is([data-disable-animation] .c15t-ui-arrow-JFKgd:not(.headless),.disable-animation .c15t-ui-arrow-JFKgd:not(.headless)){transition:none}@media (prefers-reduced-motion:reduce){.c15t-ui-arrow-JFKgd:not(.headless),.c15t-ui-content-qdPhy:not(.headless),.c15t-ui-contentInner-b3ykf:not(.headless){transition:none}}
67
+ .c15t-ui-list-T3EU0:not(.headless){gap:var(--accordion-stack-gap,.75rem);display:grid}.c15t-ui-item-Jgm_X:not(.headless){border:1px solid var(--accordion-border-color,var(--c15t-border));border-radius:var(--accordion-radius,var(--c15t-radius-md));box-shadow:none;background-color:var(--accordion-background-color,var(--c15t-surface));padding:0;display:grid;overflow:visible}.c15t-dark .c15t-ui-item-Jgm_X:not(.headless){border-color:var(--accordion-border-color-dark,var(--c15t-border));background-color:var(--accordion-background-color-dark,var(--c15t-surface))}.c15t-ui-triggerRow-xXdTH:not(.headless){align-items:center;gap:var(--accordion-gap,var(--c15t-space-xs));box-sizing:border-box;width:100%;padding:var(--accordion-padding,var(--c15t-space-sm));border-radius:var(--accordion-radius,var(--c15t-radius-md));color:var(--accordion-text-color,var(--c15t-text));transition:background-color var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));background-color:#0000;border:0;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.c15t-ui-triggerRow-xXdTH:not(.headless):hover{background-color:var(--accordion-background-hover,var(--c15t-surface-hover))}.c15t-dark .c15t-ui-triggerRow-xXdTH:not(.headless){color:var(--accordion-text-color-dark,var(--c15t-text))}.c15t-dark .c15t-ui-triggerRow-xXdTH:not(.headless):hover{background-color:var(--accordion-background-hover-dark,var(--c15t-surface-hover))}.c15t-ui-item-Jgm_X:not(.headless):has(.c15t-ui-trigger-KT5J_:focus-visible){outline:2px solid var(--accordion-focus-ring,#476cff);outline-offset:-2px}.c15t-dark .c15t-ui-item-Jgm_X:not(.headless):has(.c15t-ui-trigger-KT5J_:focus-visible){outline-color:var(--accordion-focus-ring-dark,#2547d0)}.c15t-ui-trigger-KT5J_:not(.headless):focus-visible{outline:none}.c15t-ui-item-Jgm_X:not(.headless)>.c15t-ui-content-qdPhy{grid-column:1/-1}.c15t-ui-trigger-KT5J_:not(.headless){appearance:none;align-items:center;gap:var(--accordion-gap,var(--c15t-space-xs));min-width:0;min-height:calc(var(--accordion-icon-size,1.25rem) + .25rem);font-family:inherit;font-size:var(--accordion-title-size,var(--c15t-font-size-sm));line-height:var(--c15t-line-height-tight);letter-spacing:inherit;font-weight:var(--c15t-font-weight-regular);border-radius:var(--accordion-radius,var(--c15t-radius-md));width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-self:stretch;padding:0;display:flex;position:relative}.c15t-ui-arrow-JFKgd:not(.headless){color:var(--accordion-arrow-color,#a3a3a3);width:var(--accordion-icon-size,1.25rem);height:var(--accordion-icon-size,1.25rem);transition:transform var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-arrow-JFKgd:not(.headless) svg{width:100%;height:100%;display:block}.c15t-dark .c15t-ui-arrow-JFKgd:not(.headless){color:var(--accordion-arrow-color-dark,#ccc)}.c15t-ui-header-ogZie:not(.headless){flex-direction:column;flex:1;min-width:0;display:flex}.c15t-ui-title-vmC1f:not(.headless){font:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0}.c15t-ui-control-dy7nh:not(.headless){flex-shrink:0;align-self:center;position:relative;top:-1px}.c15t-ui-restriction-bXiI7:not(.headless){padding:0 var(--accordion-row-padding-x,1rem) .75rem;color:var(--accordion-restriction-color,var(--c15t-text-muted));font-size:var(--c15t-font-size-sm);line-height:var(--c15t-line-height-normal);grid-column:1/-1;margin:0;display:block}.c15t-ui-content-qdPhy:not(.headless){color:var(--accordion-content-color,#5c5c5c);letter-spacing:inherit;transition:grid-template-rows var(--accordion-duration,var(--c15t-duration-normal)) var(--accordion-ease,var(--c15t-easing));grid-template-rows:0fr;padding:0;font-size:.875rem;line-height:1.5;display:grid;overflow:hidden}.c15t-ui-content-qdPhy:not(.headless)[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-qdPhy:not(.headless)[data-state=closed]{pointer-events:none}.c15t-ui-contentViewport-O2Kny:not(.headless){min-height:0;padding-top:0;padding-inline:calc(var(--accordion-icon-size,1.25rem) + var(--accordion-gap,var(--c15t-space-xs)));overflow:hidden}.c15t-ui-contentInner-b3ykf:not(.headless){opacity:1;transition:opacity calc(var(--accordion-duration,var(--c15t-duration-normal)) * .35) ease-out;padding-top:0}.c15t-ui-content-qdPhy[data-state=open] .c15t-ui-contentViewport-O2Kny:not(.headless){padding-bottom:var(--accordion-padding,var(--c15t-space-sm))}.c15t-ui-content-qdPhy[data-state=closed] .c15t-ui-contentViewport-O2Kny:not(.headless){padding-bottom:0}.c15t-ui-content-qdPhy[data-state=closed] .c15t-ui-contentInner-b3ykf:not(.headless){opacity:0}.c15t-dark .c15t-ui-content-qdPhy:not(.headless){color:var(--accordion-content-color-dark,#999)}:is([data-disable-animation] .c15t-ui-content-qdPhy:not(.headless),.disable-animation .c15t-ui-content-qdPhy:not(.headless)),:is([data-disable-animation] .c15t-ui-contentInner-b3ykf:not(.headless),.disable-animation .c15t-ui-contentInner-b3ykf:not(.headless)),:is([data-disable-animation] .c15t-ui-arrow-JFKgd:not(.headless),.disable-animation .c15t-ui-arrow-JFKgd:not(.headless)){transition:none}@media (prefers-reduced-motion:reduce){.c15t-ui-arrow-JFKgd:not(.headless),.c15t-ui-content-qdPhy:not(.headless),.c15t-ui-contentInner-b3ykf:not(.headless){transition:none}}
68
68
 
69
69
  /* components/branding */
70
70
  .c15t-ui-branding-yf52E:not(.headless){justify-content:center;align-items:center;gap:var(--consent-dialog-branding-gap);font-size:var(--consent-dialog-branding-font-size);font-weight:var(--consent-dialog-branding-font-weight);line-height:var(--consent-dialog-branding-line-height);letter-spacing:var(--consent-dialog-branding-letter-spacing);color:var(--consent-dialog-foreground-color);border-radius:.25rem;margin:auto 0;padding:0 .5rem;text-decoration:none;display:flex}.c15t-ui-brandingCopy-ktA4u:not(.headless){white-space:nowrap;align-items:baseline;gap:.25rem;min-width:0;display:inline-flex}.c15t-ui-brandingText-ls0cn:not(.headless){font-weight:var(--c15t-font-weight-medium)}.c15t-ui-brandingBy-CWN3T:not(.headless){font-weight:var(--c15t-font-weight-normal)}.c15t-ui-brandingWordmarkLabel-FxCKX:not(.headless){white-space:nowrap;letter-spacing:-.03em}.c15t-ui-branding-yf52E:not(.headless):focus-visible{box-shadow:0 0 0 2px var(--consent-dialog-branding-focus-color);outline:none}.c15t-dark .c15t-ui-branding-yf52E:not(.headless):focus-visible{box-shadow:0 0 0 2px var(--consent-dialog-branding-focus-color-dark)}.c15t-dark .c15t-ui-branding-yf52E:not(.headless){color:var(--consent-dialog-foreground-color-dark)}.c15t-ui-brandingC15T-GVCPl:not(.headless){flex:none;align-items:center;width:auto;max-width:100%;height:auto;display:inline-flex}.c15t-ui-brandingWordmark-yqSW2:not(.headless){white-space:nowrap;flex:none;align-items:center;gap:.25rem;min-width:0;max-width:100%;display:inline-flex}.c15t-ui-brandingC15TMark-VvBd_:not(.headless){width:auto;max-width:100%;height:var(--consent-dialog-branding-icon-height);flex:none;align-items:center;display:inline-flex}.c15t-ui-brandingC15TMark-VvBd_:not(.headless)>svg{aspect-ratio:446/445;flex:none;width:auto;max-width:100%;height:100%;display:block}.c15t-ui-brandingInth-bviD3:not(.headless){max-width:100%;width:var(--consent-dialog-branding-icon-width);height:var(--consent-dialog-branding-icon-height);flex:none;align-items:center;display:inline-flex}.c15t-ui-brandingInth-bviD3:not(.headless)>svg{aspect-ratio:88/90;flex:none;width:auto;max-width:100%;height:100%;display:block}.c15t-ui-brandingTag-V3N0M:not(.headless){border:1px solid color-mix(in srgb, var(--c15t-primary), black 14%);max-width:calc(100% - 1.5rem);min-height:1.75rem;color:var(--c15t-text-on-primary,#fff);background-color:var(--c15t-primary);z-index:2;border-radius:.75rem .75rem .1875rem .1875rem;align-items:center;gap:.375rem;padding:.28125rem .625rem;text-decoration:none;display:inline-flex;position:absolute;box-shadow:inset 0 1px #ffffff29,0 1px 2px #0f172a1f}.c15t-ui-brandingContent-Z9PVI:not(.headless){align-items:center;gap:.375rem;min-width:0;display:inline-flex}.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingCopy-ktA4u{font-size:var(--consent-dialog-branding-label-size);letter-spacing:.01em;color:var(--c15t-text-on-primary,#fff);text-decoration:none}.c15t-ui-brandingTag-V3N0M .c15t-ui-brandingText-ls0cn,.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingBy-CWN3T{line-height:1}.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingWordmarkLabel-FxCKX{font-size:var(--consent-dialog-branding-label-size);line-height:1}.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingWordmark-yqSW2{color:var(--c15t-text-on-primary,#fff);gap:.3125rem;text-decoration:none}.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingC15TMark-VvBd_,.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingInth-bviD3{height:.9375rem;color:var(--c15t-text-on-primary,#fff)}:is(.c15t-ui-brandingTag-V3N0M[data-context=banner]:not(.headless),.c15t-ui-brandingTag-V3N0M[data-context=iab-banner]:not(.headless)){border-bottom-width:0;border-radius:.75rem .75rem 0 0;align-self:flex-end;margin-block-end:-1px;margin-inline-end:.75rem;position:relative;top:auto;right:auto;transform:none}:is(.c15t-ui-brandingTag-V3N0M[data-context=dialog]:not(.headless),.c15t-ui-brandingTag-V3N0M[data-context=iab-dialog]:not(.headless)){right:var(--consent-dialog-card-padding-mobile);border-top-width:0;border-radius:0 0 .75rem .75rem;bottom:0;transform:translateY(calc(100% + 1px))}.c15t-ui-brandingTag-V3N0M[data-context=manager]:not(.headless){max-width:none;min-height:auto;color:var(--consent-manager-link-text-color);box-shadow:none;z-index:auto;text-align:center;background-color:#0000;border:none;border-radius:0;flex-direction:row;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:0;text-decoration:none;display:flex;position:static}.c15t-dark .c15t-ui-brandingTag-V3N0M[data-context=manager]:not(.headless){color:var(--consent-manager-link-text-color-dark)}.c15t-ui-brandingTag-V3N0M[data-context=manager]:not(.headless) svg{height:1.2rem}@media (width>=640px){:is(.c15t-ui-brandingTag-V3N0M[data-context=dialog]:not(.headless),.c15t-ui-brandingTag-V3N0M[data-context=iab-dialog]:not(.headless)){right:var(--consent-dialog-card-padding)}}.c15t-ui-brandingTagBanner-zFtcX:not(.headless){border-bottom-width:0;border-radius:.75rem .75rem 0 0;align-self:flex-end;margin-block-end:-1px;margin-inline-end:.75rem;position:relative;top:auto;right:auto;transform:none}.c15t-ui-brandingTagDialog-Iv_a_:not(.headless){right:var(--consent-dialog-card-padding-mobile);border-top-width:0;border-radius:0 0 .75rem .75rem;bottom:0;transform:translateY(calc(100% + 1px))}@media (width>=640px){.c15t-ui-brandingTagDialog-Iv_a_:not(.headless){right:var(--consent-dialog-card-padding)}}@media (width<=480px){.c15t-ui-brandingTag-V3N0M:not(.headless){gap:.375rem;max-width:calc(100% - 1rem);padding:.3125rem .625rem}.c15t-ui-brandingTag-V3N0M .c15t-ui-brandingCopy-ktA4u,.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingWordmarkLabel-FxCKX{font-size:.625rem}.c15t-ui-brandingTag-V3N0M .c15t-ui-brandingC15TMark-VvBd_,.c15t-ui-brandingTag-V3N0M:not(.headless) .c15t-ui-brandingInth-bviD3{height:.8125rem}}.c15t-ui-brandingFooter-QIudR.c15t-ui-brandingFooter-QIudR:not(.headless){border-top:0;height:0;min-height:0;padding:0;position:relative;overflow:visible}.c15t-ui-brandingFooter-QIudR.c15t-ui-brandingFooter-QIudR:not(.headless):empty{display:none}
@@ -88,7 +88,7 @@
88
88
  .c15t-ui-manager-VznZW:not(.headless){width:100%;font-family:var(--consent-manager-font-family);line-height:var(--consent-manager-line-height);-webkit-font-smoothing:antialiased;position:relative}.c15t-ui-manager-VznZW:not(.headless)>:not([hidden])~:not([hidden]){--space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem * var(--space-y-reverse))}.c15t-ui-footer-fl3dz:not(.headless){padding:var(--consent-manager-footer-padding);background-color:var(--consent-manager-footer-background-color);justify-content:space-between;gap:1rem;display:flex}.c15t-dark .c15t-ui-footer-fl3dz:not(.headless){background-color:var(--consent-manager-footer-background-color-dark)}@media (width<=640px){.c15t-ui-footer-fl3dz:not(.headless){flex-direction:column}}@media (width>=640px){.c15t-ui-footer-fl3dz:not(.headless){flex-direction:row}}
89
89
 
90
90
  /* components/panel */
91
- .c15t-ui-root-I07nx:not(.headless){pointer-events:none;box-sizing:border-box;isolation:isolate;font-family:var(--consent-dialog-font-family);color:var(--c15t-text);line-height:var(--consent-dialog-line-height);-webkit-text-size-adjust:100%;tab-size:4;padding:var(--consent-dialog-card-padding-mobile);z-index:var(--consent-dialog-z-index);border-radius:var(--consent-dialog-card-radius);width:100%;height:var(--consent-dialog-height);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex;position:fixed;inset:0}.c15t-ui-root-I07nx:not(.headless)[data-blocking=true]{pointer-events:auto}.c15t-ui-root-I07nx:not(.headless)[dir=rtl]{direction:rtl}.c15t-ui-root-I07nx:not(.headless):focus{outline:none}@keyframes c15t-ui-consent-dialog-fade-in-I04Yp{0%{opacity:0}to{opacity:1}}@keyframes c15t-ui-consent-dialog-fade-out-t5_x2{0%{opacity:1}to{opacity:0}}.c15t-ui-overlay-c1WEk:not(.headless)[data-state=open]{animation:c15t-ui-consent-dialog-fade-in-I04Yp var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed]{animation:c15t-ui-consent-dialog-fade-out-t5_x2 var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx:not(.headless)[data-state=open]{animation:c15t-ui-consent-dialog-fade-in-I04Yp var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx:not(.headless)[data-state=closed]{animation:c15t-ui-consent-dialog-fade-out-t5_x2 var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-enter-vWVet var(--consent-dialog-animation-duration) cubic-bezier(.34, 1.56, .64, 1)}.c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-exit-ioDiW var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx:not(.headless)[data-mode=dialog]{justify-content:center;align-items:center}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left],.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right]){justify-content:flex-start;align-items:stretch;padding:0}.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right]{justify-content:flex-end}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right] .c15t-ui-container-KTZOT:not(.headless)){z-index:var(--consent-dialog-z-index);width:min(100%, var(--consent-dialog-max-width));height:100%;max-height:100%;position:relative}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left] .c15t-ui-card-ve6qQ:not(.headless),.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right] .c15t-ui-card-ve6qQ:not(.headless)){border-radius:0;width:100%;height:100%;max-height:100%;margin:0}@keyframes c15t-ui-consent-dialog-slide-in-left-N9bgJ{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes c15t-ui-consent-dialog-slide-out-left-hkcUP{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes c15t-ui-consent-dialog-slide-in-right-L40wh{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes c15t-ui-consent-dialog-slide-out-right-GjtEq{0%{transform:translate(0)}to{transform:translate(100%)}}.c15t-ui-root-I07nx[data-mode=sidebar-left][data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-in-left-N9bgJ var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx[data-mode=sidebar-left][data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-out-left-hkcUP var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx[data-mode=sidebar-right][data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-in-right-L40wh var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx[data-mode=sidebar-right][data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-out-right-GjtEq var(--consent-dialog-animation-duration) ease-in}.c15t-ui-dialogVisible-dkX4M:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-dialogHidden-uBU9W:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-contentVisible-KxAWb:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:scale(1)}.c15t-ui-contentHidden-LflgF:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing);transform:scale(.95)}@media (width>=640px){.c15t-ui-root-I07nx:not(.headless){padding:var(--consent-dialog-card-padding);width:auto}}.c15t-ui-container-KTZOT:not(.headless){pointer-events:auto;flex-direction:column;width:100%;max-height:100%;display:flex}.c15t-ui-container-KTZOT:not(.headless):focus-visible{outline:none}.c15t-ui-container-KTZOT:not(.headless):focus-visible>.c15t-ui-card-ve6qQ:not(.headless){outline:2px solid var(--c15t-primary);outline-offset:2px}.c15t-ui-headerWrapper-DQg3z:not(.headless){position:relative}.c15t-ui-closeButton-uPYIe:not(.headless){position:absolute;top:22px;right:22px}.c15t-ui-footer-PeM4f:not(.headless){border-top:solid 1px var(--consent-dialog-stroke-color);justify-content:center;padding-top:1rem;padding-bottom:1rem;font-size:14px}.c15t-ui-overlay-c1WEk:not(.headless){color:var(--consent-dialog-link-text-color);background-color:var(--consent-dialog-overlay-background-color);z-index:var(--consent-dialog-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayVisible-gG3jJ:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-overlayHidden-eY362:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-dark .c15t-ui-overlay-c1WEk:not(.headless){background-color:var(--consent-dialog-overlay-background-color-dark);color:var(--consent-dialog-link-text-color-dark)}.c15t-ui-card-ve6qQ:not(.headless){box-sizing:border-box;width:min(100%, var(--consent-dialog-max-width));border-radius:var(--consent-dialog-card-radius);border:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-border-color);background-color:var(--consent-dialog-background-color);max-height:100%;color:var(--consent-dialog-foreground-color);box-shadow:var(--consent-dialog-card-shadow);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:visible}.c15t-dark .c15t-ui-card-ve6qQ:not(.headless){background-color:var(--consent-dialog-background-color-dark);color:var(--consent-dialog-foreground-color-dark);border-color:var(--consent-dialog-border-color-dark)}.c15t-ui-header-VbAnL:not(.headless){padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-header-gap);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-header-VbAnL:not(.headless)>*+*{margin-top:var(--consent-dialog-card-gap)}.c15t-ui-title-ErzRZ:not(.headless){font-weight:var(--consent-dialog-title-font-weight);font-size:var(--consent-dialog-title-font-size);letter-spacing:var(--consent-dialog-title-letter-spacing);margin:0;line-height:1}.c15t-ui-description-OQyBx:not(.headless){color:var(--consent-dialog-muted-color);font-size:var(--consent-dialog-description-font-size);font-weight:var(--consent-dialog-description-font-weight);line-height:var(--consent-dialog-description-line-height)}.c15t-dark .c15t-ui-description-OQyBx:not(.headless){color:var(--consent-dialog-muted-color-dark)}.c15t-ui-description-OQyBx[data-context=dialog]:not(.headless){color:var(--consent-dialog-muted-color);font-size:var(--consent-dialog-description-font-size);font-weight:var(--consent-dialog-description-font-weight);line-height:var(--consent-dialog-description-line-height)}.c15t-dark .c15t-ui-description-OQyBx[data-context=dialog]:not(.headless){color:var(--consent-dialog-muted-color-dark)}.c15t-ui-content-Y_5Ie:not(.headless){padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-content-gap);flex:auto;min-height:0;padding-top:0;overflow-y:auto}.c15t-ui-footer-PeM4f:not(.headless){justify-content:center;align-items:center;gap:var(--consent-dialog-footer-gap);font-size:var(--consent-dialog-footer-font-size);padding-top:var(--consent-dialog-footer-padding-y);padding-bottom:var(--consent-dialog-footer-padding-y);border-top:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-stroke-color);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-footer-PeM4f:not(.headless):empty{border-top:none;display:none}.c15t-dark .c15t-ui-footer-PeM4f:not(.headless){border-color:var(--consent-dialog-stroke-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-dialogVisible-dkX4M,.c15t-ui-dialogHidden-uBU9W,.c15t-ui-contentVisible-KxAWb,.c15t-ui-contentHidden-LflgF,.c15t-ui-overlayVisible-gG3jJ,.c15t-ui-overlayHidden-eY362:not(.headless),.c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],.c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],.c15t-ui-root-I07nx:not(.headless)[data-state=open],.c15t-ui-root-I07nx:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){transition:none;animation:none}}.c15t-ui-overlay-c1WEk[data-disable-animation]:not(.headless)[data-state=open],.c15t-ui-overlay-c1WEk[data-disable-animation]:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-disable-animation]:not(.headless)[data-state=open],.c15t-ui-root-I07nx[data-disable-animation]:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-disable-animation][data-state=open] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx[data-disable-animation][data-state=closed] .c15t-ui-container-KTZOT:not(.headless),.disable-animation .c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],.disable-animation .c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],.disable-animation .c15t-ui-root-I07nx:not(.headless)[data-state=open],.disable-animation .c15t-ui-root-I07nx:not(.headless)[data-state=closed],.disable-animation .c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),.disable-animation .c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless),[data-disable-animation] .c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],[data-disable-animation] .c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],[data-disable-animation] .c15t-ui-root-I07nx:not(.headless)[data-state=open],[data-disable-animation] .c15t-ui-root-I07nx:not(.headless)[data-state=closed],[data-disable-animation] .c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),[data-disable-animation] .c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:none}
91
+ .c15t-ui-root-I07nx:not(.headless){pointer-events:none;box-sizing:border-box;isolation:isolate;font-family:var(--consent-dialog-font-family);color:var(--c15t-text);line-height:var(--consent-dialog-line-height);-webkit-text-size-adjust:100%;tab-size:4;padding:var(--consent-dialog-card-padding-mobile);z-index:var(--consent-dialog-z-index);border-radius:var(--consent-dialog-card-radius);width:100%;height:var(--consent-dialog-height);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex;position:fixed;inset:0}.c15t-ui-root-I07nx:not(.headless)[data-blocking=true]{pointer-events:auto}.c15t-ui-root-I07nx:not(.headless)[dir=rtl]{direction:rtl}.c15t-ui-root-I07nx:not(.headless):focus{outline:none}@keyframes c15t-ui-consent-dialog-fade-in-I04Yp{0%{opacity:0}to{opacity:1}}@keyframes c15t-ui-consent-dialog-fade-out-t5_x2{0%{opacity:1}to{opacity:0}}.c15t-ui-overlay-c1WEk:not(.headless)[data-state=open]{animation:c15t-ui-consent-dialog-fade-in-I04Yp var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed]{animation:c15t-ui-consent-dialog-fade-out-t5_x2 var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx:not(.headless)[data-state=open]{animation:c15t-ui-consent-dialog-fade-in-I04Yp var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx:not(.headless)[data-state=closed]{animation:c15t-ui-consent-dialog-fade-out-t5_x2 var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-enter-vWVet var(--consent-dialog-animation-duration) cubic-bezier(.34, 1.56, .64, 1)}.c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-exit-ioDiW var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx:not(.headless)[data-mode=dialog]{justify-content:center;align-items:center}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left],.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right]){justify-content:flex-start;align-items:stretch;padding:0}.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right]{justify-content:flex-end}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right] .c15t-ui-container-KTZOT:not(.headless)){z-index:var(--consent-dialog-z-index);width:min(100%, var(--consent-dialog-max-width));height:100%;max-height:100%;position:relative}:is(.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-left] .c15t-ui-card-ve6qQ:not(.headless),.c15t-ui-root-I07nx:not(.headless)[data-mode=sidebar-right] .c15t-ui-card-ve6qQ:not(.headless)){border-radius:0;width:100%;height:100%;max-height:100%;margin:0}@keyframes c15t-ui-consent-dialog-slide-in-left-N9bgJ{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes c15t-ui-consent-dialog-slide-out-left-hkcUP{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes c15t-ui-consent-dialog-slide-in-right-L40wh{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes c15t-ui-consent-dialog-slide-out-right-GjtEq{0%{transform:translate(0)}to{transform:translate(100%)}}.c15t-ui-root-I07nx[data-mode=sidebar-left][data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-in-left-N9bgJ var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx[data-mode=sidebar-left][data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-out-left-hkcUP var(--consent-dialog-animation-duration) ease-in}.c15t-ui-root-I07nx[data-mode=sidebar-right][data-state=open] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-in-right-L40wh var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-root-I07nx[data-mode=sidebar-right][data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:c15t-ui-consent-dialog-slide-out-right-GjtEq var(--consent-dialog-animation-duration) ease-in}.c15t-ui-dialogVisible-dkX4M:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-dialogHidden-uBU9W:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-contentVisible-KxAWb:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) cubic-bezier(.34, 1.56, .64, 1);transform:scale(1)}.c15t-ui-contentHidden-LflgF:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing), transform var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing);transform:scale(.95)}@media (width>=640px){.c15t-ui-root-I07nx:not(.headless){padding:var(--consent-dialog-card-padding);width:auto}}.c15t-ui-container-KTZOT:not(.headless){pointer-events:auto;flex-direction:column;width:100%;max-height:100%;display:flex}.c15t-ui-container-KTZOT:not(.headless):focus-visible{outline:none}.c15t-ui-container-KTZOT:not(.headless):focus-visible>.c15t-ui-card-ve6qQ:not(.headless){outline:2px solid var(--c15t-primary);outline-offset:2px}.c15t-ui-headerWrapper-DQg3z:not(.headless){position:relative}.c15t-ui-closeButton-uPYIe:not(.headless){position:absolute;top:22px;right:22px}.c15t-ui-footer-PeM4f:not(.headless){border-top:solid 1px var(--consent-dialog-stroke-color);justify-content:center;padding-top:1rem;padding-bottom:1rem;font-size:14px}.c15t-ui-overlay-c1WEk:not(.headless){color:var(--consent-dialog-link-text-color);background-color:var(--consent-dialog-overlay-background-color);z-index:var(--consent-dialog-overlay-z-index);position:fixed;inset:0}.c15t-ui-overlayVisible-gG3jJ:not(.headless){opacity:1;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-ui-overlayHidden-eY362:not(.headless){opacity:0;transition:opacity var(--consent-dialog-animation-duration) var(--consent-dialog-animation-timing)}.c15t-dark .c15t-ui-overlay-c1WEk:not(.headless){background-color:var(--consent-dialog-overlay-background-color-dark);color:var(--consent-dialog-link-text-color-dark)}.c15t-ui-card-ve6qQ:not(.headless){box-sizing:border-box;width:min(100%, var(--consent-dialog-max-width));max-height:var(--consent-dialog-max-height);border-radius:var(--consent-dialog-card-radius);border:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-border-color);background-color:var(--consent-dialog-background-color);color:var(--consent-dialog-foreground-color);box-shadow:var(--consent-dialog-card-shadow);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:visible}.c15t-dark .c15t-ui-card-ve6qQ:not(.headless){background-color:var(--consent-dialog-background-color-dark);color:var(--consent-dialog-foreground-color-dark);border-color:var(--consent-dialog-border-color-dark)}.c15t-ui-header-VbAnL:not(.headless){padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-header-gap);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-header-VbAnL:not(.headless)>*+*{margin-top:var(--consent-dialog-card-gap)}.c15t-ui-title-ErzRZ:not(.headless){font-weight:var(--consent-dialog-title-font-weight);font-size:var(--consent-dialog-title-font-size);letter-spacing:var(--consent-dialog-title-letter-spacing);margin:0;line-height:1}.c15t-ui-description-OQyBx:not(.headless){color:var(--consent-dialog-muted-color);font-size:var(--consent-dialog-description-font-size);font-weight:var(--consent-dialog-description-font-weight);line-height:var(--consent-dialog-description-line-height)}.c15t-dark .c15t-ui-description-OQyBx:not(.headless){color:var(--consent-dialog-muted-color-dark)}.c15t-ui-description-OQyBx[data-context=dialog]:not(.headless){color:var(--consent-dialog-muted-color);font-size:var(--consent-dialog-description-font-size);font-weight:var(--consent-dialog-description-font-weight);line-height:var(--consent-dialog-description-line-height)}.c15t-dark .c15t-ui-description-OQyBx[data-context=dialog]:not(.headless){color:var(--consent-dialog-muted-color-dark)}.c15t-ui-content-Y_5Ie:not(.headless){padding:var(--consent-dialog-card-padding);gap:var(--consent-dialog-content-gap);flex-direction:column;flex:auto;min-height:0;padding-top:0;display:flex;overflow-y:auto}.c15t-ui-content-Y_5Ie:not(.headless):has(>[data-testid=consent-widget-root]>[data-testid=consent-widget-accordion]){overflow-y:visible}.c15t-ui-content-Y_5Ie:not(.headless)>*{flex-shrink:0}.c15t-ui-content-Y_5Ie:not(.headless)>[data-testid=consent-widget-root]:not(.headless){flex-direction:column;flex:auto;min-height:0;display:flex}.c15t-ui-content-Y_5Ie:not(.headless)>[data-testid=consent-widget-root]:not(.headless)>[data-testid=consent-widget-accordion]{flex:auto;min-height:0;margin:-2px;padding:2px;overflow-y:auto}.c15t-ui-content-Y_5Ie:not(.headless)>[data-testid=consent-widget-root]:not(.headless)>[data-testid=consent-widget-footer]{flex-shrink:0}.c15t-ui-footer-PeM4f:not(.headless){justify-content:center;align-items:center;gap:var(--consent-dialog-footer-gap);font-size:var(--consent-dialog-footer-font-size);padding-top:var(--consent-dialog-footer-padding-y);padding-bottom:var(--consent-dialog-footer-padding-y);border-top:var(--consent-dialog-border-width) var(--consent-dialog-border-style) var(--consent-dialog-stroke-color);flex-direction:column;flex-shrink:0;display:flex}.c15t-ui-footer-PeM4f:not(.headless):empty{border-top:none;display:none}.c15t-dark .c15t-ui-footer-PeM4f:not(.headless){border-color:var(--consent-dialog-stroke-color-dark)}@media (prefers-reduced-motion:reduce){.c15t-ui-dialogVisible-dkX4M,.c15t-ui-dialogHidden-uBU9W,.c15t-ui-contentVisible-KxAWb,.c15t-ui-contentHidden-LflgF,.c15t-ui-overlayVisible-gG3jJ,.c15t-ui-overlayHidden-eY362:not(.headless),.c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],.c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],.c15t-ui-root-I07nx:not(.headless)[data-state=open],.c15t-ui-root-I07nx:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){transition:none;animation:none}}.c15t-ui-overlay-c1WEk[data-disable-animation]:not(.headless)[data-state=open],.c15t-ui-overlay-c1WEk[data-disable-animation]:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-disable-animation]:not(.headless)[data-state=open],.c15t-ui-root-I07nx[data-disable-animation]:not(.headless)[data-state=closed],.c15t-ui-root-I07nx[data-disable-animation][data-state=open] .c15t-ui-container-KTZOT:not(.headless),.c15t-ui-root-I07nx[data-disable-animation][data-state=closed] .c15t-ui-container-KTZOT:not(.headless),.disable-animation .c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],.disable-animation .c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],.disable-animation .c15t-ui-root-I07nx:not(.headless)[data-state=open],.disable-animation .c15t-ui-root-I07nx:not(.headless)[data-state=closed],.disable-animation .c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),.disable-animation .c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless),[data-disable-animation] .c15t-ui-overlay-c1WEk:not(.headless)[data-state=open],[data-disable-animation] .c15t-ui-overlay-c1WEk:not(.headless)[data-state=closed],[data-disable-animation] .c15t-ui-root-I07nx:not(.headless)[data-state=open],[data-disable-animation] .c15t-ui-root-I07nx:not(.headless)[data-state=closed],[data-disable-animation] .c15t-ui-root-I07nx[data-state=open] .c15t-ui-container-KTZOT:not(.headless),[data-disable-animation] .c15t-ui-root-I07nx[data-state=closed] .c15t-ui-container-KTZOT:not(.headless){animation:none}
92
92
 
93
93
  /* components/panel-trigger */
94
94
  .c15t-ui-trigger-Hjg5y{--cdt-size-sm:32px;--cdt-size-md:40px;--cdt-size-lg:48px;--cdt-bg:var(--c15t-surface,#fff);--cdt-bg-hover:var(--c15t-surface-hover,var(--cdt-bg));--cdt-border:var(--c15t-border,#e5e5e5);--cdt-shadow:var(--c15t-shadow-lg,0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a);--cdt-shadow-hover:var(--c15t-shadow-xl,0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a);--cdt-radius:var(--c15t-radius-full,9999px);--cdt-offset:var(--c15t-space-md,20px);--cdt-transition-duration:var(--c15t-motion-duration,.2s);--cdt-transition-easing:var(--c15t-motion-easing,ease-out);--cdt-snap-duration:var(--c15t-motion-duration-slow,.2s);--cdt-snap-easing:var(--c15t-motion-easing-smooth,cubic-bezier(.77, 0, .175, 1));--cdt-icon-color:var(--c15t-text,#171717);--cdt-focus-ring:var(--c15t-primary,#3b82f6);z-index:9999;width:var(--cdt-size-md);height:var(--cdt-size-md);border:1px solid var(--cdt-border);border-radius:var(--cdt-radius);background:var(--cdt-bg);box-shadow:var(--cdt-shadow);cursor:grab;transition:transform var(--cdt-transition-duration) var(--cdt-transition-easing), box-shadow var(--cdt-transition-duration) var(--cdt-transition-easing), background var(--cdt-transition-duration) var(--cdt-transition-easing);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;will-change:transform;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:fixed}@media (hover:hover) and (pointer:fine){.c15t-ui-trigger-Hjg5y:hover{background:var(--cdt-bg-hover);box-shadow:var(--cdt-shadow-hover)}}.c15t-ui-trigger-Hjg5y:active,.c15t-ui-trigger-Hjg5y.c15t-ui-dragging-R4Cm2,.c15t-ui-trigger-Hjg5y[data-dragging]{cursor:grabbing;transform:scale(1.02)}.c15t-ui-trigger-Hjg5y:focus{outline:none}.c15t-ui-trigger-Hjg5y:focus-visible{outline:2px solid var(--cdt-focus-ring);outline-offset:2px}.c15t-ui-trigger-Hjg5y[data-size=sm],.c15t-ui-sm-sud0y{width:var(--cdt-size-sm);height:var(--cdt-size-sm)}.c15t-ui-trigger-Hjg5y[data-size=md],.c15t-ui-md-CZrWA{width:var(--cdt-size-md);height:var(--cdt-size-md)}.c15t-ui-trigger-Hjg5y[data-size=lg],.c15t-ui-lg-fGzix{width:var(--cdt-size-lg);height:var(--cdt-size-lg)}.c15t-ui-icon-dD5R6{width:50%;height:50%;color:var(--cdt-icon-color);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.c15t-ui-icon-dD5R6 svg{width:100%;height:100%}.c15t-ui-text-Garil{margin-left:var(--c15t-space-xs,6px);font-family:var(--c15t-font-family,system-ui, sans-serif);font-size:var(--c15t-font-size-sm,14px);font-weight:var(--c15t-font-weight-medium,500);color:var(--cdt-icon-color);white-space:nowrap;pointer-events:none;line-height:1}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil){width:auto;height:auto;padding:var(--c15t-space-sm,8px) var(--c15t-space-md,16px);border-radius:var(--c15t-radius-lg,12px);gap:var(--c15t-space-xs,6px)}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil) .c15t-ui-icon-dD5R6{width:16px;height:16px}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=sm],.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-sm-sud0y{padding:var(--c15t-space-xs,6px) var(--c15t-space-sm,10px)}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=sm] .c15t-ui-icon-dD5R6,.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-sm-sud0y .c15t-ui-icon-dD5R6{width:14px;height:14px}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=sm] .c15t-ui-text-Garil,.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-sm-sud0y .c15t-ui-text-Garil{font-size:var(--c15t-font-size-xs,12px)}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=lg],.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-lg-fGzix{padding:var(--c15t-space-md,12px) var(--c15t-space-lg,20px)}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=lg] .c15t-ui-icon-dD5R6,.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-lg-fGzix .c15t-ui-icon-dD5R6{width:20px;height:20px}.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil)[data-size=lg] .c15t-ui-text-Garil,.c15t-ui-trigger-Hjg5y:has(.c15t-ui-text-Garil).c15t-ui-lg-fGzix .c15t-ui-text-Garil{font-size:var(--c15t-font-size-md,16px)}.c15t-ui-bottomRight-RqjMF{right:var(--cdt-offset);bottom:var(--cdt-offset)}.c15t-ui-bottomLeft-J3DsX{bottom:var(--cdt-offset);left:var(--cdt-offset)}.c15t-ui-topRight-Ln04J{top:var(--cdt-offset);right:var(--cdt-offset)}.c15t-ui-topLeft-tpeaf{top:var(--cdt-offset);left:var(--cdt-offset)}.c15t-ui-snapping-YupfG{transition:top var(--cdt-snap-duration) var(--cdt-snap-easing), right var(--cdt-snap-duration) var(--cdt-snap-easing), bottom var(--cdt-snap-duration) var(--cdt-snap-easing), left var(--cdt-snap-duration) var(--cdt-snap-easing), transform var(--cdt-snap-duration) var(--cdt-snap-easing)}.c15t-ui-hidden-tV2GK{display:none}.c15t-dark .c15t-ui-trigger-Hjg5y{--cdt-bg:var(--c15t-surface,#262626);--cdt-bg-hover:var(--c15t-surface-hover,#404040);--cdt-border:var(--c15t-border,#404040);--cdt-icon-color:var(--c15t-text,#fafafa);--cdt-shadow:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0000004d;--cdt-shadow-hover:0 20px 25px -5px #0006, 0 8px 10px -6px #0006}.c15t-ui-toolbar-gCKkL{--cdtt-size-sm:32px;--cdtt-size-md:40px;--cdtt-size-lg:48px;--cdtt-bg:var(--c15t-surface,#fff);--cdtt-bg-hover:var(--c15t-surface-hover,#f5f5f5);--cdtt-border:var(--c15t-border,#d4d4d4);--cdtt-primary:var(--c15t-primary,#16a779);--cdtt-primary-hover:var(--c15t-primary-hover,#128866);--cdtt-primary-text:var(--c15t-text-on-primary,#fff);--cdtt-icon-color:var(--c15t-text,#262626);--cdtt-focus-ring:var(--c15t-primary,#16a779);--cdtt-offset:var(--c15t-space-md,20px);--cdtt-transition-duration:var(--c15t-duration-fast,.16s);--cdtt-transition-easing:var(--c15t-easing-out,ease-out);--cdtt-shadow:var(--c15t-shadow-md,0 4px 10px #00000014, 0 1px 2px #0000000f);z-index:9999;width:max-content;color:var(--cdtt-icon-color);background:var(--cdtt-bg);border:1px solid var(--cdtt-border);border-radius:var(--c15t-radius-md,6px);box-shadow:var(--cdtt-shadow);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;will-change:transform;transition:transform var(--cdtt-transition-duration) var(--cdtt-transition-easing), box-shadow var(--cdtt-transition-duration) var(--cdtt-transition-easing), background var(--cdtt-transition-duration) var(--cdtt-transition-easing);align-items:stretch;margin:0;padding:0;display:inline-flex;position:fixed;overflow:hidden}.c15t-ui-toolbar-gCKkL.c15t-ui-bottomRight-RqjMF{right:max(var(--cdtt-offset), env(safe-area-inset-right,0px));bottom:max(var(--cdtt-offset), env(safe-area-inset-bottom,0px))}.c15t-ui-toolbar-gCKkL.c15t-ui-bottomLeft-J3DsX{bottom:max(var(--cdtt-offset), env(safe-area-inset-bottom,0px));left:max(var(--cdtt-offset), env(safe-area-inset-left,0px))}.c15t-ui-toolbar-gCKkL.c15t-ui-topRight-Ln04J{top:max(var(--cdtt-offset), env(safe-area-inset-top,0px));right:max(var(--cdtt-offset), env(safe-area-inset-right,0px))}.c15t-ui-toolbar-gCKkL.c15t-ui-topLeft-tpeaf{top:max(var(--cdtt-offset), env(safe-area-inset-top,0px));left:max(var(--cdtt-offset), env(safe-area-inset-left,0px))}.c15t-ui-toolbar-gCKkL.c15t-ui-dragging-R4Cm2{cursor:grabbing;box-shadow:var(--c15t-shadow-lg,0 10px 20px #00000024, 0 3px 6px #00000014)}.c15t-ui-toolbarVertical-MQ8bT{flex-direction:column}.c15t-ui-toolbarItem-OO8Dy{width:var(--cdtt-size-md);height:var(--cdtt-size-md);color:var(--cdtt-icon-color);border:0;border-inline-start:1px solid var(--cdtt-border);cursor:inherit;transition:color var(--cdtt-transition-duration) var(--cdtt-transition-easing), background var(--cdtt-transition-duration) var(--cdtt-transition-easing);background:0 0;border-radius:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.c15t-ui-toolbarItem-OO8Dy:first-child{border-inline-start:0}.c15t-ui-toolbarVertical-MQ8bT .c15t-ui-toolbarItem-OO8Dy{border-top:1px solid var(--cdtt-border);border-inline-start:0}.c15t-ui-toolbarVertical-MQ8bT .c15t-ui-toolbarItem-OO8Dy:first-child{border-top:0}.c15t-ui-toolbar-gCKkL .c15t-ui-toolbarItem-OO8Dy.c15t-ui-sm-sud0y{width:var(--cdtt-size-sm);height:var(--cdtt-size-sm)}.c15t-ui-toolbar-gCKkL .c15t-ui-toolbarItem-OO8Dy.c15t-ui-md-CZrWA{width:var(--cdtt-size-md);height:var(--cdtt-size-md)}.c15t-ui-toolbar-gCKkL .c15t-ui-toolbarItem-OO8Dy.c15t-ui-lg-fGzix{width:var(--cdtt-size-lg);height:var(--cdtt-size-lg)}.c15t-ui-toolbarItem-OO8Dy[data-c15t-trigger-action=preferences]{color:var(--cdtt-primary-text);background:var(--cdtt-primary)}.c15t-ui-toolbarItem-OO8Dy:focus{outline:none}.c15t-ui-toolbarItem-OO8Dy:focus-visible{z-index:1;outline:2px solid var(--cdtt-focus-ring);outline-offset:-3px}.c15t-ui-toolbarItem-OO8Dy:disabled{cursor:not-allowed;opacity:.45}.c15t-ui-toolbarIcon-FpHKR{pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;width:50%;height:50%;display:flex}.c15t-ui-toolbarIcon-FpHKR>span,.c15t-ui-toolbarIcon-FpHKR svg{width:100%;height:100%;display:flex}@media (hover:hover) and (pointer:fine){.c15t-ui-toolbarItem-OO8Dy:hover:not(:disabled){background:var(--cdtt-bg-hover)}.c15t-ui-toolbarItem-OO8Dy[data-c15t-trigger-action=preferences]:hover:not(:disabled){background:var(--cdtt-primary-hover)}}.c15t-ui-toolbarItem-OO8Dy:active:not(:disabled){box-shadow:inset 0 1px 3px #00000029}:is(.c15t-dark .c15t-ui-toolbar-gCKkL,.dark .c15t-ui-toolbar-gCKkL){--cdtt-bg:var(--c15t-surface,#262626);--cdtt-bg-hover:var(--c15t-surface-hover,#343434);--cdtt-border:var(--c15t-border,#525252);--cdtt-icon-color:var(--c15t-text,#fafafa);--cdtt-shadow:0 8px 18px #00000052, 0 2px 5px #00000038}@media (prefers-reduced-motion:reduce){.c15t-ui-trigger-Hjg5y,.c15t-ui-toolbar-gCKkL,.c15t-ui-toolbarItem-OO8Dy,.c15t-ui-snapping-YupfG{transition:none}}
@@ -104,4 +104,7 @@
104
104
 
105
105
  /* components/tabs */
106
106
  .c15t-ui-root-MkAzH{gap:1rem;width:100%;display:grid}.c15t-ui-list-InhoD{background:var(--tabs-list-background);border:1px solid var(--tabs-list-border);border-radius:var(--c15t-radius-md);grid-auto-flow:column;align-items:center;gap:.25rem;width:fit-content;padding:.25rem;display:inline-grid}.c15t-ui-list-InhoD[data-orientation=vertical]{grid-auto-flow:row}.c15t-ui-trigger-n8yxg{border-radius:calc(var(--c15t-radius-md) - .25rem);color:var(--tabs-trigger-color);cursor:pointer;font:inherit;transition:background-color var(--c15t-duration-fast) ease, color var(--c15t-duration-fast) ease;background:0 0;border:0;padding:.625rem .875rem;font-weight:500}.c15t-ui-trigger-n8yxg[data-state=active]{background:var(--tabs-trigger-active-background);color:var(--tabs-trigger-active-color)}.c15t-ui-trigger-n8yxg:focus-visible{outline:2px solid var(--tabs-focus-ring);outline-offset:2px}.c15t-ui-content-XEh1P{color:var(--c15t-text)}
107
+
108
+ /* components/vendor-list */
109
+ .c15t-ui-root-tC2KG:not(.headless){gap:var(--vendor-list-gap,var(--c15t-space-xs));min-inline-size:0;margin:var(--vendor-list-margin-top,var(--c15t-space-sm)) 0 0;color:var(--vendor-list-text-color,var(--c15t-text));padding:0;display:grid}.c15t-dark .c15t-ui-root-tC2KG:not(.headless){color:var(--vendor-list-text-color-dark,var(--c15t-text))}.c15t-ui-hint-mJePA:not(.headless){font-size:var(--c15t-font-size-sm);line-height:var(--c15t-line-height-normal);color:var(--vendor-list-hint-color,var(--c15t-text-muted));margin:0}.c15t-ui-item-Jb5Ct:not(.headless){box-sizing:border-box;border:1px solid var(--vendor-list-border-color,var(--c15t-border));border-radius:var(--vendor-list-radius,var(--c15t-radius-md));background-color:var(--vendor-list-background-color,var(--c15t-surface));grid-template-columns:minmax(0,1fr);padding:0;display:grid;overflow:visible}.c15t-dark .c15t-ui-item-Jb5Ct:not(.headless){border-color:var(--vendor-list-border-color-dark,var(--c15t-border));background-color:var(--vendor-list-background-color-dark,var(--c15t-surface))}.c15t-ui-item-Jb5Ct:not(.headless):has(.c15t-ui-trigger-HN0JL:focus-visible){outline:2px solid var(--vendor-list-focus-ring,#476cff);outline-offset:-2px}.c15t-dark .c15t-ui-item-Jb5Ct:not(.headless):has(.c15t-ui-trigger-HN0JL:focus-visible){outline-color:var(--vendor-list-focus-ring-dark,#2547d0)}.c15t-ui-header-Vio14:not(.headless){align-items:center;gap:var(--vendor-list-header-gap,var(--c15t-space-xs));box-sizing:border-box;width:100%;padding:var(--vendor-list-padding,var(--c15t-space-sm));border-radius:var(--vendor-list-radius,var(--c15t-radius-md));color:var(--vendor-list-text-color,var(--c15t-text));transition:background-color var(--vendor-list-duration,var(--c15t-duration-normal)) var(--vendor-list-ease,var(--c15t-easing));grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.c15t-ui-header-Vio14:not(.headless):hover{background-color:var(--vendor-list-background-hover,var(--c15t-surface-hover))}.c15t-dark .c15t-ui-header-Vio14:not(.headless){color:var(--vendor-list-text-color-dark,var(--c15t-text))}.c15t-dark .c15t-ui-header-Vio14:not(.headless):hover{background-color:var(--vendor-list-background-hover-dark,var(--c15t-surface-hover))}.c15t-ui-trigger-HN0JL:not(.headless){appearance:none;align-items:center;gap:var(--vendor-list-header-gap,var(--c15t-space-xs));min-width:0;min-height:calc(var(--vendor-list-icon-size,1.25rem) + .25rem);color:inherit;font:inherit;font-size:var(--vendor-list-name-size,var(--c15t-font-size-sm));line-height:var(--c15t-line-height-tight);text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;margin:0;padding:0;display:flex}.c15t-ui-trigger-HN0JL:not(.headless):focus-visible{outline:none}.c15t-ui-trigger-HN0JL:not(.headless)[data-disabled]{cursor:default}.c15t-ui-trigger-HN0JL:not(.headless)[data-disabled] .c15t-ui-arrow-HpqoR{visibility:hidden}.c15t-ui-arrow-HpqoR:not(.headless){width:var(--vendor-list-icon-size,1.25rem);height:var(--vendor-list-icon-size,1.25rem);color:var(--vendor-list-arrow-color,#a3a3a3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.c15t-ui-arrow-HpqoR:not(.headless) svg{width:100%;height:100%;display:block}.c15t-dark .c15t-ui-arrow-HpqoR:not(.headless){color:var(--vendor-list-arrow-color-dark,#ccc)}.c15t-ui-name-Kbv0c:not(.headless){min-width:0;font:inherit;font-weight:var(--c15t-font-weight-regular);color:inherit;margin:0}.c15t-ui-control-P3ju9:not(.headless){flex-shrink:0;align-self:center;position:relative;top:-1px}.c15t-ui-content-H0win:not(.headless){transition:grid-template-rows var(--vendor-list-duration,var(--c15t-duration-normal)) var(--vendor-list-ease,var(--c15t-easing));grid-template-rows:0fr;display:grid;overflow:hidden}.c15t-ui-content-H0win:not(.headless)[data-state=open]{grid-template-rows:1fr}.c15t-ui-content-H0win:not(.headless)[data-state=closed]{pointer-events:none}.c15t-ui-contentInner-yL4RA:not(.headless){padding:0 var(--vendor-list-padding,var(--c15t-space-sm)) var(--vendor-list-padding,var(--c15t-space-sm));gap:.25rem;padding-inline-start:calc(var(--vendor-list-padding,var(--c15t-space-sm)) + var(--vendor-list-icon-size,1.25rem) + var(--vendor-list-header-gap,var(--c15t-space-xs)));display:grid}.c15t-ui-description-TnQZJ:not(.headless){font-size:var(--c15t-font-size-sm);line-height:var(--c15t-line-height-normal);color:var(--vendor-list-description-color,var(--c15t-text-muted));margin:0}.c15t-ui-link-OXzlg:not(.headless){font-size:var(--c15t-font-size-sm);line-height:var(--c15t-line-height-normal);color:var(--vendor-list-link-color,var(--c15t-primary));text-underline-offset:.15em;justify-self:start;text-decoration:underline}.c15t-ui-link-OXzlg:not(.headless):focus-visible{outline:2px solid var(--vendor-list-focus-ring,#476cff);outline-offset:2px;border-radius:var(--c15t-radius-sm)}@media (prefers-reduced-motion:reduce){:is(.c15t-ui-content-H0win:not(.headless),.c15t-ui-header-Vio14:not(.headless)){transition:none}}
107
110
  }
@@ -1 +1 @@
1
- (()=>{let e=new WeakMap,t=["necessary","functionality","experience","measurement","marketing"],n={bar:["top","bottom"],floating:["bottom-left","bottom-right","top-left","top-right","bottom-center","top-center"],wall:["center"],widget:["bottom-left","bottom-right","top-left","top-right"]},o={bar:"bottom",floating:"bottom-left",wall:"center",widget:"bottom-right"},s=function(e){let t=["reject","accept"].filter(t=>e.includes(t)),n=e.filter(e=>!t.includes(e));return t.length>0?[t,...n]:n},a=function(e,t,n,o){let a=new Set,r=[];for(let t of n??s(e)){let n=[];for(let s of"string"==typeof t?[t]:t)e.includes(s)?a.has(s)||(a.add(s),n.push(s)):o.push({actions:[s],code:"forbidden-action",message:`The policy does not allow ${s} on this surface.`});n.length&&r.push(n)}let i=t.filter(e=>!a.has(e));return i.length&&(r.length||r.push([]),r[0]?.push(...i),o.push({actions:i,code:"required-action-restored",message:"Required actions omitted by the layout were restored at the same interaction depth."})),r},r=function(e,t,s,a){var r,i,d;let l,c,p=s?"wall":"floating",v=s?p:e.variant??p;t&&"wall"===v&&(v="floating",a.push({actions:[],code:"invalid-variant",message:"A notice cannot use a blocking wall; using floating."})),s&&(void 0!==e.variant||void 0!==e.position)&&a.push({actions:[],code:"invalid-variant",message:"Preferences use a centered dialog; variant and position are prompt options."});let u=o[v],m=u,g="default";return s||void 0===e.position||((r=v,i=e.position,n[r].includes(i))?({position:m}=e,g="host"):a.push({actions:[],code:"invalid-position",message:`Position "${e.position}" is not valid for the ${v} variant; using "${u}".`})),{blocking:(d=v,l=!1!==e.scrollLock&&!1!==e.trapFocus&&(e.scrollLock??e.trapFocus),c=e.blocking??l??(s||"wall"===d),t&&c?(c=!1,a.push({actions:[],code:"blocking-forbidden",message:"A notice prompt is never blocking; blocking was disabled."})):s||"wall"!==d||c||(c=!0,a.push({actions:[],code:"blocking-required",message:"The wall variant is always blocking; blocking was enabled."})),c),position:m,positionSource:g,variant:v}},i=function(e){var t,n;let o="preferences"===e.surface,s={...e.presentation?.[e.surface],...Object.fromEntries(Object.entries(e.override??{}).filter(([,e])=>void 0!==e))},i=o?{allowed:["reject","accept","save"],equivalent:[["accept","reject"]],required:["reject","accept","save"]}:e.policy.actions,d=[...new Set(i.allowed)],l=[...new Set(i.required)],c=i.equivalent.map(e=>[...e]),p=[],v=a(d,l,s.layout,p),u=v.flat(),m=o?["save"]:["customize"],g=(s.primaryActions??m).filter(e=>u.includes(e));for(let t of c){let n=t.filter(e=>g.includes(e)).length,o=new Set(t.map(t=>{let n=e.actionAppearance?.[t];return`${n?.variant??(g.includes(t)?"primary":"neutral")}:${n?.mode??"stroke"}`}));(n>0&&n<t.length||o.size>1)&&p.push({actions:[...t],code:"equivalent-prominence-overridden",message:"Host presentation gives equivalent actions different prominence."})}let f=!o&&"notice"===e.policy.prompt,b=s.direction??"row",h=s.uiProfile??"compact",_=r(s,f,o,p),y=_.blocking,w=_.blocking;return{..._,actionGroups:v,allowedActions:d,diagnostics:p,direction:b,equivalentActions:c,orderedActions:u,preferenceControls:(t=e.policy.rights,n=e.policy.i18n?.messageProfile,o?[]:t.includes("opt-out")&&!u.includes("reject")?["preferences"===n?"preferences":"opt-out"]:t.includes("preferences")&&!u.includes("customize")?["preferences"]:[]),primaryActions:g,requiredActions:l,rights:e.policy.rights,scrollLock:y,shouldFillActions:"strict"===h||"balanced"===h,trapFocus:w,uiProfile:h}},d=new WeakMap,l=e=>[...d.get(e)?.loaders.values()??[]].flatMap(e=>e()),c=e=>{let t=new WeakSet;try{return JSON.stringify(e,(e,n)=>{if("bigint"==typeof n)return String(n);if(null!==n&&"object"==typeof n){if(t.has(n))return"[Circular]";t.add(n)}return n},2)??"null"}catch{return'"[Unserializable value]"'}},p=["records:cleared","choice:recorded","permissions:changed","notice:dismissed","privacy:opt-out","overrides:set","user:identified","subject:resolved","iab:set","init:applied","init:failed","save:replayed","command:init:started","command:init:completed","command:save:started","command:save:completed","command:error"];function v(e){return{activeUI:e.activeUI,effectivePermissions:e.effectivePermissions,explicitChoice:e.explicitChoice,model:e.model,noticeDismissal:e.noticeDismissal,optOutDirectives:e.optOutDirectives,privacySignals:e.privacySignals,promptRequirement:e.promptRequirement,resolution:e.resolution.status,revision:e.revision,subject:e.subject}}function u(e){return{result:JSON.parse(c(e))}}function m(e,t){let n=c(t);try{if(t instanceof Error){let e=t.message;n="string"==typeof e?e:c(e)}else"string"==typeof t&&(n=t)}catch{}return{command:e,error:n}}let g=(e,t,n)=>e?t:n,f=(e,t,n,o)=>"necessary"===n||(t[n]??e.explicitChoice?.categories[n]?.value??o?.[n]??("opt-out"===e.policyRule.model||e.policyRule.preselectedCategories.includes(n)));function b(e,t,n,o){let s=e.createElement(t);return n&&(s.className=n),void 0!==o&&(s.textContent=o),s}function h(e,t,n,o="secondary"){let s=b(e,"button",`c15t-dev-tools__button c15t-dev-tools__button--${o}`,t);return s.type="button",s.dataset.focusKey=`button:${t}`,s.addEventListener("click",n),s}function _(e,t,n){let o=b(e,"section","c15t-dev-tools__section");return o.append(b(e,"h3",void 0,t)),n&&o.append(b(e,"p","c15t-dev-tools__muted",n)),o}function y(e,t){let n=b(e,"pre","c15t-dev-tools__code");return n.textContent=c(t),n}function w(e,t,n){let o=b(e,"div","c15t-dev-tools__stat");return o.append(b(e,"dt",void 0,t),b(e,"dd",void 0,n)),o}function x(e,t,n){let o=b(e,"label","c15t-dev-tools__field");o.append(b(e,"span",void 0,t));let s=b(e,"input");return s.type="text",s.value=n,s.autocomplete="off",s.spellcheck=!1,s.dataset.focusKey=`field:${t}`,o.append(s),{field:o,input:s}}let k=(e,t,n,o,s,a)=>{let r=b(e,"label","c15t-dev-tools__check"),i=b(e,"input");return i.type="checkbox",i.setAttribute("role","switch"),i.setAttribute("aria-label",t),i.dataset.focusKey=n,i.checked=o,i.disabled=s,i.addEventListener("change",()=>a(i.checked)),r.append(b(e,"span",void 0,t.split(":")[0]),i),r},A=e=>{let t=e.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 446 445"),t.setAttribute("width","24"),t.setAttribute("height","24"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false"),t.classList.add("c15t-dev-tools__logo");let n=e.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("fill","currentColor"),n.setAttribute("d","M223.178.313c39.064 0 70.732 31.668 70.732 70.732-.001 39.064-31.668 70.731-70.732 70.731-12.181 0-23.642-3.079-33.649-8.502l-55.689 55.689a70.267 70.267 0 0 1 5.574 13.441h167.531c8.695-29.217 35.762-50.523 67.804-50.523 39.064 0 70.731 31.668 70.731 70.732s-31.668 70.732-70.731 70.732c-32.042 0-59.108-21.306-67.803-50.523H139.413a70.417 70.417 0 0 1-7.888 17.396l54.046 54.046c10.893-6.851 23.786-10.815 37.605-10.815 39.064 0 70.732 31.669 70.732 70.733 0 39.064-31.668 70.731-70.732 70.731s-70.732-31.667-70.732-70.731c0-10.518 2.296-20.499 6.414-29.471l-57.78-57.78c-8.972 4.117-18.952 6.414-29.47 6.414-39.063 0-70.731-31.668-70.732-70.732 0-39.064 31.669-70.732 70.733-70.732 12.18 0 23.642 3.079 33.649 8.502l55.688-55.688c-5.423-10.007-8.502-21.469-8.502-33.65 0-39.064 31.668-70.733 70.732-70.733Zm0 343.555c-16.742 0-30.314 13.572-30.314 30.314 0 16.741 13.572 30.313 30.314 30.313s30.314-13.572 30.314-30.313c0-16.742-13.572-30.314-30.314-30.314ZM71.611 192.299c-16.742 0-30.315 13.572-30.315 30.314s13.573 30.314 30.315 30.314c16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314Zm303.138 0c-16.729 0-30.294 13.551-30.315 30.275l.001.039-.001.038c.021 16.725 13.586 30.276 30.315 30.276 16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314ZM223.178 40.73c-16.742 0-30.314 13.573-30.314 30.315s13.573 30.313 30.314 30.313c16.742 0 30.313-13.572 30.314-30.313 0-16.742-13.572-30.314-30.314-30.315Z"),t.append(n),t},S=".c15t-dev-tools {\n color-scheme: light dark;\n --c15t-dev-tools-bg: var(--c15t-surface, light-dark(white, #121212));\n --c15t-dev-tools-bg-raised: var(\n --c15t-surface-hover,\n light-dark(#fafafa, #1c1c1c)\n );\n --c15t-dev-tools-bg-muted: var(\n --c15t-surface-hover,\n light-dark(#fafafa, #1c1c1c)\n );\n --c15t-dev-tools-border: var(--c15t-border, light-dark(#e8e8e8, #303030));\n --c15t-dev-tools-text: var(--c15t-text, light-dark(#171717, #ededed));\n --c15t-dev-tools-muted: var(--c15t-text-muted, light-dark(#737373, #a3a3a3));\n --c15t-dev-tools-accent: var(--c15t-primary, light-dark(#335cff, #6685ff));\n --c15t-dev-tools-danger: light-dark(#b42318, #fda29b);\n --c15t-dev-tools-focus: var(--c15t-dev-tools-accent);\n /* Inspection controls sit above c15t's banner and dialog layers. */\n --c15t-dev-tools-z: calc(\n max(\n var(--consent-dialog-z-index, 999999999),\n var(--iab-cd-z-index, 999999999)\n ) +\n 1\n );\n\n position: fixed;\n z-index: var(--c15t-dev-tools-z);\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n color: var(--c15t-dev-tools-text);\n font-family: var(\n --c15t-font-family,\n ui-sans-serif,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif\n );\n font-size: 0.875rem;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n isolation: isolate;\n}\n\n.c15t-dev-tools *,\n.c15t-dev-tools *::before,\n.c15t-dev-tools *::after {\n box-sizing: border-box;\n}\n\n.c15t-dev-tools [hidden] {\n display: none;\n}\n\n.c15t-dev-tools--bottom-right {\n right: max(0.75rem, env(safe-area-inset-right));\n bottom: max(0.75rem, env(safe-area-inset-bottom));\n}\n\n.c15t-dev-tools--bottom-left {\n bottom: max(0.75rem, env(safe-area-inset-bottom));\n left: max(0.75rem, env(safe-area-inset-left));\n align-items: flex-start;\n}\n\n.c15t-dev-tools--top-right {\n top: max(0.75rem, env(safe-area-inset-top));\n right: max(0.75rem, env(safe-area-inset-right));\n flex-direction: column-reverse;\n}\n\n.c15t-dev-tools--top-left {\n top: max(0.75rem, env(safe-area-inset-top));\n left: max(0.75rem, env(safe-area-inset-left));\n flex-direction: column-reverse;\n align-items: flex-start;\n}\n\n.c15t-dev-tools--embedded {\n position: relative;\n inset: auto;\n width: 100%;\n height: 100%;\n align-items: stretch;\n gap: 0;\n}\n\n.c15t-dev-tools__panel {\n display: flex;\n flex-direction: column;\n width: min(28rem, calc(100vw - 1.5rem));\n max-height: min(40rem, calc(100dvh - 1.5rem));\n overflow: hidden;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-lg, 0.75rem);\n background: var(--c15t-dev-tools-bg);\n box-shadow: var(--c15t-shadow-lg, 0 8px 32px rgb(0 0 0 / 12%));\n}\n\n.c15t-dev-tools__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.375rem 0.5rem 0.375rem 1rem;\n flex-shrink: 0;\n}\n\n.c15t-dev-tools__title {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--c15t-dev-tools-muted);\n line-height: 1.25;\n text-wrap: balance;\n}\n\n.c15t-dev-tools__tabs {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n padding: 0 0.75rem;\n flex-shrink: 0;\n border-bottom: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__button {\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n touch-action: manipulation;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: transparent;\n color: var(--c15t-dev-tools-text);\n font: inherit;\n font-weight: 500;\n line-height: 1.25;\n cursor: pointer;\n transition:\n background-color 150ms ease-out,\n border-color 150ms ease-out;\n}\n\n.c15t-dev-tools__button:active {\n background: var(--c15t-dev-tools-bg-muted);\n}\n\n.c15t-dev-tools__button:focus-visible,\n.c15t-dev-tools input:focus-visible,\n.c15t-dev-tools select:focus-visible,\n.c15t-dev-tools__content:focus-visible {\n outline: 2px solid var(--c15t-dev-tools-focus);\n outline-offset: 2px;\n}\n\n.c15t-dev-tools__button:disabled {\n cursor: not-allowed;\n color: var(--c15t-dev-tools-muted);\n background: var(--c15t-dev-tools-bg-muted);\n}\n\n.c15t-dev-tools__button--primary {\n border-color: var(--c15t-dev-tools-accent);\n background: var(--c15t-dev-tools-bg);\n color: var(--c15t-dev-tools-accent);\n box-shadow: var(--c15t-shadow-sm, 0 1px 2px rgb(0 0 0 / 5%));\n}\n\n.c15t-dev-tools__button--danger {\n border-color: var(--c15t-dev-tools-danger);\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n padding: 0;\n border-radius: 50%;\n border-color: var(--c15t-dev-tools-border);\n background: var(--c15t-dev-tools-bg);\n color: var(--c15t-dev-tools-text);\n box-shadow: var(--c15t-shadow-md, 0 4px 12px rgb(0 0 0 / 10%));\n}\n\n.c15t-dev-tools__tabs .c15t-dev-tools__button {\n min-height: 2.75rem;\n min-width: 0;\n max-width: 100%;\n flex: 1 0 auto;\n padding: 0.5rem 0.375rem;\n border: 0;\n border-bottom: 2px solid transparent;\n border-radius: 0;\n color: var(--c15t-dev-tools-muted);\n font-size: 0.8125rem;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__tabs .c15t-dev-tools__button[aria-selected='true'] {\n border-bottom-color: var(--c15t-dev-tools-accent);\n color: var(--c15t-dev-tools-text);\n}\n\n.c15t-dev-tools__content {\n min-height: 0;\n min-width: 0;\n overflow-x: hidden;\n overflow-y: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n padding: 1rem;\n}\n\n/* Keep inspection scrollers independent of the host page's scrollbar theme. */\n.c15t-dev-tools__content,\n.c15t-dev-tools__code {\n scrollbar-width: thin;\n scrollbar-color: var(--c15t-dev-tools-muted) transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar,\n.c15t-dev-tools__code::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n background: transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-track,\n.c15t-dev-tools__code::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-thumb,\n.c15t-dev-tools__code::-webkit-scrollbar-thumb {\n border: 2px solid transparent;\n border-radius: 4px;\n background: var(--c15t-dev-tools-muted);\n background-clip: padding-box;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-corner,\n.c15t-dev-tools__code::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.c15t-dev-tools__section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__section + .c15t-dev-tools__section {\n margin-top: 1rem;\n padding-top: 1rem;\n border-top: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__section h3,\n.c15t-dev-tools__section p,\n.c15t-dev-tools__section dl,\n.c15t-dev-tools__section ol {\n margin: 0;\n}\n\n.c15t-dev-tools__section h3 {\n font-size: 0.875rem;\n font-weight: 600;\n line-height: 1.25;\n text-wrap: balance;\n}\n\n.c15t-dev-tools__muted,\n.c15t-dev-tools__empty {\n max-width: 65ch;\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__control-list,\n.c15t-dev-tools__form,\n.c15t-dev-tools__action-grid {\n display: grid;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__action-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.c15t-dev-tools__check {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-height: 2.75rem;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n}\n\n.c15t-dev-tools__check:has(input:disabled) {\n cursor: not-allowed;\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__check input {\n appearance: none;\n position: relative;\n flex: 0 0 2rem;\n width: 2rem;\n height: 1.25rem;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 999px;\n background: var(--c15t-switch-track, var(--c15t-dev-tools-border));\n cursor: inherit;\n}\n\n.c15t-dev-tools__field {\n display: grid;\n min-width: 0;\n gap: 0.375rem;\n font-weight: 550;\n}\n\n.c15t-dev-tools__script-list {\n display: grid;\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__script {\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-md, 0.5rem);\n}\n\n.c15t-dev-tools__script-summary {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n cursor: pointer;\n}\n\n.c15t-dev-tools__script-summary::before {\n content: '+';\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__script[open] > summary::before {\n content: '−';\n}\n\n.c15t-dev-tools__script-summary:focus-visible {\n outline: 2px solid var(--c15t-dev-tools-focus);\n outline-offset: 2px;\n}\n\n.c15t-dev-tools__script-name {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__status {\n flex-shrink: 0;\n padding: 0.125rem 0.375rem;\n border-radius: 0.25rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__status[data-status='error'] {\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__status[data-status='loaded'] {\n color: var(--c15t-dev-tools-accent);\n}\n\n.c15t-dev-tools__script-body {\n display: grid;\n gap: 0.5rem;\n padding: 0.75rem;\n border-top: 1px solid var(--c15t-dev-tools-border);\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__logo {\n color: var(--c15t-dev-tools-text);\n flex: 0 0 auto;\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.c15t-dev-tools__button.c15t-dev-tools__close {\n width: 2.75rem;\n padding: 0;\n border: 0;\n color: var(--c15t-dev-tools-muted);\n font-size: 1.5rem;\n}\n\n.c15t-dev-tools__control-list {\n gap: 0;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-md, 0.5rem);\n overflow: hidden;\n}\n\n.c15t-dev-tools__check + .c15t-dev-tools__check {\n border-top: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__check > span:first-child {\n flex: 1;\n}\n\n.c15t-dev-tools__badge {\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__check input::before {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 0.875rem;\n height: 0.875rem;\n border-radius: 50%;\n background: var(--c15t-switch-thumb, white);\n box-shadow: 0 1px 2px rgb(0 0 0 / 15%);\n}\n\n.c15t-dev-tools__check input:checked {\n background: var(--c15t-switch-track-active, var(--c15t-dev-tools-accent));\n border-color: transparent;\n}\n\n.c15t-dev-tools__check input:checked::before {\n transform: translateX(0.75rem);\n}\n\n.c15t-dev-tools__check input:disabled {\n opacity: 0.5;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__close {\n display: none;\n}\n\n.c15t-dev-tools__field input,\n.c15t-dev-tools__field select {\n width: 100%;\n min-width: 0;\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n touch-action: manipulation;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-text);\n font: inherit;\n font-size: 1rem;\n}\n\n.c15t-dev-tools__actions {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__stats {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__stat {\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-raised);\n}\n\n.c15t-dev-tools__stat dt {\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__stat dd {\n margin: 0.25rem 0 0;\n font-variant-numeric: tabular-nums;\n font-weight: 600;\n}\n\n.c15t-dev-tools__code {\n min-width: 0;\n max-width: 100%;\n max-height: 16rem;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n padding: 0.75rem;\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-text);\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.75rem;\n line-height: 1.5;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__event-list {\n display: grid;\n gap: 0.75rem;\n padding: 0;\n list-style: none;\n}\n\n.c15t-dev-tools__iab-list {\n display: grid;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__iab-choice {\n min-width: 0;\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__iab-choice > strong {\n display: block;\n margin-bottom: 0.5rem;\n}\n\n.c15t-dev-tools__feedback {\n margin: 0;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid var(--c15t-dev-tools-border);\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__feedback[data-status='error'] {\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__event {\n display: grid;\n gap: 0.5rem;\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-raised);\n}\n\n.c15t-dev-tools__event-header {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n gap: 0.75rem;\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n font-variant-numeric: tabular-nums;\n}\n\n@media (hover: hover) and (pointer: fine) {\n .c15t-dev-tools__button:hover:not(:disabled) {\n border-color: var(--c15t-dev-tools-accent);\n background: var(--c15t-dev-tools-bg-raised);\n }\n\n .c15t-dev-tools__button--primary:hover:not(:disabled) {\n background: color-mix(\n in srgb,\n var(--c15t-dev-tools-accent) 6%,\n var(--c15t-dev-tools-bg)\n );\n }\n}\n\n@media (max-width: 28rem) {\n .c15t-dev-tools__action-grid,\n .c15t-dev-tools__stats {\n grid-template-columns: 1fr;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .c15t-dev-tools__button {\n transition: none;\n }\n\n .c15t-dev-tools__button:active {\n transform: none;\n }\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__toggle {\n display: none;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__panel {\n width: 100%;\n height: 100%;\n max-height: none;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__content {\n max-height: none;\n}\n",C=[{id:"consents",label:"Consents"},{id:"scripts",label:"Scripts"},{id:"location",label:"Location"},{id:"policy",label:"Policy"},{id:"iab",label:"IAB"},{id:"events",label:"Events"},{id:"actions",label:"Actions"}],I=0,O="c15t-dev-tools-styles",R=new Set(["consents","scripts","location","policy","iab","events","actions"]),$=new Set(["bottom-right","bottom-left","top-right","top-left"]),E=function(e){let t={};if(!e)return t;e.hasAttribute("data-open")&&(t.defaultOpen="false"!==e.getAttribute("data-open"));let n=e.getAttribute("data-tab");n&&R.has(n)&&(t.defaultTab=n);let o=e.getAttribute("data-position");return o&&$.has(o)&&(t.position=o),t}(document.currentScript),T=function(n){let o=function(n,o={}){return function(n){var o;let s,a,{kernel:r,container:c,shadow:R=!0,position:$="bottom-right",defaultOpen:E=!1,defaultTab:T="consents",maxEvents:L=100}=n,D=Number.isFinite(L)?Math.max(1,Math.trunc(L)):100,P=()=>{let{scope:e}=r.getSnapshot().policyRule,o=n.getConsentCategories?.()??["necessary",...e];return t.filter(t=>o.includes(t)&&("necessary"===t||e.includes(t)))},j=function(e){let t={activeTab:e.activeTab,draft:Object.freeze({}),draftFingerprint:null,events:[],isOpen:e.isOpen,position:e.position,scripts:[],snapshot:e.snapshot},n=!1,o=new Set;function s(e){if(n)return;let s=t;for(let n of(t={...t,...e},o))n(t,s)}return{addEvent:n=>{s({events:[n,...t.events].slice(0,e.maxEvents)})},clearEvents:()=>{t.events.length>0&&s({events:[]})},destroy:()=>{n=!0,o.clear()},getState:()=>t,setActiveTab:e=>{t.activeTab!==e&&s({activeTab:e})},setDraft:e=>s({draft:Object.freeze({...e}),draftFingerprint:Object.keys(e).length>0?t.draftFingerprint??t.snapshot.evaluationPolicy.choice.fingerprint:null}),setOpen:e=>{t.isOpen!==e&&s({isOpen:e})},setScripts:e=>s({scripts:e}),setSnapshot:e=>{if(t.snapshot!==e){let n=e.user!==t.snapshot.user;s({draft:n?Object.freeze({}):t.draft,draftFingerprint:n?null:t.draftFingerprint,snapshot:e})}},subscribe:e=>n?()=>{}:(o.add(e),()=>{o.delete(e)})}}({activeTab:T,isOpen:E,maxEvents:D,position:$,snapshot:r.getSnapshot()}),q=!1,z=0,M=!1;j.setScripts(l(r));let B=(o=e=>{e&&(z+=1,j.addEvent({data:{...e},id:String(z),message:`${e.scriptId}: ${e.message}`,timestamp:e.timestamp,type:`script:${e.action}`})),M||(M=!0,queueMicrotask(()=>{M=!1,q||j.setScripts(l(r))}))},(s=d.get(r))||(s={listeners:new Set,loaders:new Map},d.set(r,s)),(a=s).listeners.add(o),()=>{a.listeners.delete(o)}),N=r.subscribe(e=>{j.setSnapshot(e)}),F=p.map(e=>r.events.on(e,e=>{"records:cleared"===e.type&&j.setDraft({}),z+=1,j.addEvent(function(e,t,n){switch(e.type){case"records:cleared":return{id:t,message:"Stored records cleared",timestamp:n,type:e.type};case"choice:recorded":return{data:{...v(e.snapshot),actionAt:e.actionAt,confirmed:e.confirmed},id:t,message:"Explicit choice recorded",timestamp:n,type:e.type};case"permissions:changed":return{data:{...v(e.snapshot),previous:e.previous},id:t,message:"Effective permissions changed",timestamp:n,type:e.type};case"notice:dismissed":return{data:{...v(e.snapshot),dismissal:e.dismissal},id:t,message:"Local notice dismissed",timestamp:n,type:e.type};case"privacy:opt-out":return{data:{...v(e.snapshot),directive:e.directive},id:t,message:"Privacy opt-out recorded",timestamp:n,type:e.type};case"subject:resolved":return{data:v(e.snapshot),id:t,message:"Canonical subject resolved",timestamp:n,type:e.type};case"overrides:set":return{data:v(e.snapshot),id:t,message:"Location overrides changed",timestamp:n,type:e.type};case"user:identified":return{data:v(e.snapshot),id:t,message:"User identified",timestamp:n,type:e.type};case"iab:set":return{data:v(e.snapshot),id:t,message:"IAB state changed",timestamp:n,type:e.type};case"init:applied":return{data:v(e.snapshot),id:t,message:"Initialization result applied",timestamp:n,type:e.type};case"command:init:started":return{id:t,message:"Initialization started",timestamp:n,type:e.type};case"init:failed":return{data:{...m("init",e.error),attempt:e.attempt,nextRetryMs:e.nextRetryMs},id:t,message:"Initialization failed",timestamp:n,type:e.type};case"save:replayed":return{data:{ok:e.ok,subjectId:e.subjectId},id:t,message:g(e.ok,"Queued consent saved","Queued consent save failed"),timestamp:n,type:e.type};case"command:init:completed":return{data:u(e.result),id:t,message:g(e.result.ok,"Initialization completed","Initialization failed"),timestamp:n,type:e.type};case"command:save:started":return{id:t,message:"Consent save started",timestamp:n,type:e.type};case"command:save:completed":return{data:u(e.result),id:t,message:g(e.result.ok,"Consent save completed","Consent save failed"),timestamp:n,type:e.type};case"command:error":return{data:m(e.command,e.error),id:t,message:`${e.command} command failed`,timestamp:n,type:e.type}}}(e,String(z),Date.now()))})),U={clearRecords:n.clearRecords?()=>{n.clearRecords?.(),j.setDraft({})}:void 0,dismissNotice:()=>r.commands.dismissNotice(),init:()=>r.commands.init(),resetDraft:()=>j.setDraft({}),save:async e=>{let t=j.getState(),o=r.getSnapshot();if("all"!==e&&"none"!==e&&null!==t.draftFingerprint&&t.draftFingerprint!==o.evaluationPolicy.choice.fingerprint)throw Error("Policy changed. Discard the draft and review the current choices before saving.");let s=async e=>{let n=await r.commands.save(e);return n.ok&&j.getState().draft===t.draft&&j.setDraft({}),n},a=P().filter(e=>"necessary"!==e);if(("all"===e||"none"===e)&&a.length===o.policyRule.scope.length)return await s(e);let i={},d=n.getPresentation?.()?.preferences?.defaults;for(let n of a)"all"===e||"none"===e?i[n]="all"===e:void 0===e?i[n]=f(o,t.draft,n,d):Object.hasOwn(e,n)&&"boolean"==typeof e[n]&&(i[n]=e[n]);return await s(i)},setActiveUI:e=>r.set.activeUI(e),setDraft(e){let t={...j.getState().draft};for(let n of P())"necessary"!==n&&Object.hasOwn(e,n)&&"boolean"==typeof e[n]&&(t[n]=e[n]);j.setDraft(t)},setOverrides:e=>r.set.overrides(e)},K=function(n){var o,s;let a,r,d,l,c=n.container?.ownerDocument??globalThis.document;if(!c)return{destroy(){},element:null};I+=1;let p=`c15t-dev-tools-${I}`,v=`${p}-panel`,u=b(c,"div",`c15t-dev-tools ${(o=n.stateManager.getState().position,`c15t-dev-tools--${o}`)}`);u.dataset.c15tDevTools=p,u.addEventListener("keydown",e=>{"Escape"!==e.key||u.classList.contains("c15t-dev-tools--embedded")||(e.stopPropagation(),n.stateManager.setOpen(!1))});let m=n.stateManager.getState().isOpen,g={expandedScripts:new Set,iab:{group:"vendors",page:0,rawOpen:!1,search:""},scriptSearch:""},R=!1,$=(e,t,n)=>{R||r?.status==="pending"||(r={message:e,status:"pending"},L(),(async()=>{try{let e=await t();if("object"==typeof e&&null!==e&&"ok"in e&&!e.ok)throw Error("The request failed. Check the connection and retry.");r={message:n,status:"success"}}catch(e){r={message:e instanceof Error?e.message:"The request failed. Retry the action.",status:"error"}}R||L()})())};function E(e){let t=()=>{let t=u.querySelector(e);t?.focus()},n=c.defaultView;n?n.requestAnimationFrame(t):t()}function T(e,t=!1){n.stateManager.setActiveTab(e),t&&E(`[data-tab="${e}"]`)}function L(){let o=n.stateManager.getState();if(!o.isOpen&&a&&!a.isOpen){a=o;return}!function(o){let s=a?.activeTab===o.activeTab,d=s?u.querySelector(".c15t-dev-tools__content")?.scrollTop??0:0,l=new Map;if(s&&a?.snapshot.overrides===o.snapshot.overrides)for(let e of u.querySelectorAll(".c15t-dev-tools__field input, .c15t-dev-tools__field select"))e.dataset.focusKey&&l.set(e.dataset.focusKey,e.value);let{activeElement:S}=u.getRootNode(),I=S&&u.contains(S)?S.getAttribute("data-focus-key"):null;u.replaceChildren();let O=h(c,o.isOpen?"Close c15t DevTools":"Open c15t DevTools",()=>n.stateManager.setOpen(!o.isOpen),"primary");O.classList.add("c15t-dev-tools__toggle"),O.replaceChildren(A(c)),O.setAttribute("aria-label","Open c15t DevTools"),O.hidden=o.isOpen,O.setAttribute("aria-expanded",String(o.isOpen)),O.setAttribute("aria-controls",v),u.append(O);let R=b(c,"section","c15t-dev-tools__panel");R.id=v,R.hidden=!o.isOpen,R.setAttribute("aria-label","c15t consent developer tools");let L=b(c,"header","c15t-dev-tools__header"),D=b(c,"h2","c15t-dev-tools__title");D.setAttribute("aria-label","c15t DevTools"),D.append(A(c),b(c,"span",void 0,"DevTools"));let P=h(c,"Close c15t DevTools",()=>{n.stateManager.setOpen(!1)});P.textContent="×",P.setAttribute("aria-label","Close c15t DevTools"),P.classList.add("c15t-dev-tools__close"),L.append(D,P),R.append(L);let j=b(c,"div","c15t-dev-tools__tabs");j.setAttribute("role","tablist"),j.setAttribute("aria-label","DevTools views"),C.forEach((e,t)=>{let n=h(c,e.label,()=>{T(e.id)});n.dataset.tab=e.id,n.id=`${p}-tab-${e.id}`,n.setAttribute("role","tab"),n.setAttribute("aria-selected",String(e.id===o.activeTab)),n.setAttribute("aria-controls",`${p}-tabpanel`),n.tabIndex=e.id===o.activeTab?0:-1,n.addEventListener("keydown",e=>{let n=null;if("ArrowRight"===e.key?n=(t+1)%C.length:"ArrowLeft"===e.key?n=(t-1+C.length)%C.length:"Home"===e.key?n=0:"End"===e.key&&(n=C.length-1),null===n)return;e.preventDefault();let o=C[n];o&&T(o.id,!0)}),j.append(n)}),R.append(j);let q=b(c,"div","c15t-dev-tools__content");if(q.id=`${p}-tabpanel`,q.setAttribute("role","tabpanel"),q.setAttribute("aria-labelledby",`${p}-tab-${o.activeTab}`),q.tabIndex=0,o.isOpen){!function(n,o,s,a,r,d,l,c,p,v){switch(s.activeTab){case"scripts":let u,m,g,A,S,C;u=_(n,"Scripts","Inspect configured scripts and their loading status."),(m=x(n,"Filter scripts",d.scriptSearch)).input.placeholder="Search by name, category, or URL",g=b(n,"div","c15t-dev-tools__script-list"),A=()=>{g.replaceChildren();let e=d.scriptSearch.toLowerCase(),t=s.scripts.filter(t=>`${t.id} ${t.src??""} ${JSON.stringify(t.category)} ${t.status}`.toLowerCase().includes(e));for(let e of(t.length||g.append(b(n,"p","c15t-dev-tools__empty",s.scripts.length?"No scripts match your search.":"No script loader is configured for this consent provider.")),t)){let t=`${e.loaderId}:${e.id}`,o=b(n,"details","c15t-dev-tools__script");o.open=d.expandedScripts.has(t),o.addEventListener("toggle",()=>{o.isConnected&&(o.open?d.expandedScripts.add(t):d.expandedScripts.delete(t))});let s=b(n,"summary","c15t-dev-tools__script-summary"),a=b(n,"span","c15t-dev-tools__script-name",e.id),r=b(n,"span","c15t-dev-tools__status",e.status[0]?.toUpperCase()+e.status.slice(1));r.dataset.status=e.status,s.append(a,r),s.dataset.focusKey=`script:${t}`;let i=b(n,"div","c15t-dev-tools__script-body");i.append(b(n,"p","c15t-dev-tools__muted",e.src??(e.callbackOnly?"Callback-only integration":"Inline script"))),i.append(y(n,{allowedToLoad:e.eligible,alwaysLoad:e.alwaysLoad,category:e.category,consentGranted:e.hasConsent,elementId:e.elementId,persistAfterConsentRevoked:e.persistAfterConsentRevoked,vendorId:e.vendorId})),e.lastEvent&&i.append(b(n,"p","c15t-dev-tools__muted",e.lastEvent.message)),"present"===e.status&&i.append(b(n,"p","c15t-dev-tools__muted","An existing element was reused. Its network load result is unknown.")),"retained"===e.status&&i.append(b(n,"p","c15t-dev-tools__muted","Consent was revoked, but this script is configured to stay on the page.")),o.append(s,i),g.append(o)}},m.input.addEventListener("input",()=>{d.scriptSearch=m.input.value,A()}),A(),u.append(m.field,g),o.append(u),S=_(n,"External resources","Scripts and iframes currently in the page. Presence does not confirm successful loading."),C=b(n,"div","c15t-dev-tools__script-list"),S.append(h(n,"Scan page",()=>{for(let e of(C.replaceChildren(),n.querySelectorAll("script[src], iframe[src]"))){let t;try{t=new URL(e.src,n.baseURI)}catch{continue}if(!["http:","https:"].includes(t.protocol)||t.origin===n.location.origin)continue;let o="SCRIPT"===e.tagName?s.scripts.find(t=>t.elementId===e.id):void 0,a=b(n,"div","c15t-dev-tools__script-body");a.append(b(n,"strong",void 0,`${e.tagName.toLowerCase()} \xb7 ${o?o.id:"Not managed by this provider"}`),b(n,"p","c15t-dev-tools__muted",t.href)),C.append(a)}C.childElementCount||C.append(b(n,"p","c15t-dev-tools__empty","No external scripts or iframes found."))}),C),o.append(S);break;case"consents":!function(e,n,o,s,a,r,i){let d=_(e,"Consent categories","Draft selections do not change permissions. Save to record the displayed choices."),{snapshot:l,draft:c}=o;if(null!==o.draftFingerprint&&o.draftFingerprint!==l.evaluationPolicy.choice.fingerprint){let t=b(e,"p","c15t-dev-tools__muted","Policy changed. Discard the draft and review the current choices before saving.");t.setAttribute("role","alert"),d.append(t)}let p=b(e,"div","c15t-dev-tools__control-list"),v=new Set(a()),u=r?.()?.preferences?.defaults;for(let n of t.filter(e=>v.has(e))){let t=f(l,c,n,u),o=b(e,"label","c15t-dev-tools__check"),a=b(e,"input");a.type="checkbox",a.setAttribute("role","switch"),a.checked=t,a.disabled="necessary"===n,a.disabled||="iab"===l.model,a.dataset.focusKey=`consent:${n}`,a.addEventListener("change",()=>{let e={};e[n]=a.checked,s.setDraft(e)}),o.append(b(e,"span",void 0,n[0]?.toUpperCase()+n.slice(1))),"necessary"===n&&o.append(b(e,"span","c15t-dev-tools__badge","Always on")),o.append(a),o.append(b(e,"span","c15t-dev-tools__muted",`Effective: ${l.effectivePermissions[n]?"allowed":"blocked"}`)),p.append(o)}if("iab"===l.model){d.append(p,b(e,"p","c15t-dev-tools__muted","Categories are derived from IAB choices. Use the IAB tab to edit and save vendors and purposes.")),n.append(d);return}let m=b(e,"div","c15t-dev-tools__actions");m.append(h(e,"Save changes",()=>{i("Saving consent…",()=>s.save(),"Consent saved.")},"primary"),h(e,"Accept all",()=>{i("Accepting displayed consents…",()=>s.save("all"),"Displayed consents accepted.")}),h(e,"Reject optional",()=>{i("Rejecting optional consents…",()=>s.save("none"),"Optional displayed consents rejected.")}));let g=h(e,"Discard draft",s.resetDraft);g.disabled=0===Object.keys(c).length,m.append(g),d.append(p,m),n.append(d)}(n,o,s,c,l,p,v);break;case"location":!function(e,t,n,o,s){let a=_(e,"Resolved location");a.append(o.location?y(e,o.location):b(e,"p","c15t-dev-tools__empty","No location has been resolved yet."));let r=_(e,"Overrides","Test how consent changes by location, language, or privacy signal."),i=b(e,"form","c15t-dev-tools__form"),d=x(e,"Country",o.overrides.country??""),l=x(e,"Region",o.overrides.region??""),c=x(e,"Language",o.overrides.language??""),p=b(e,"label","c15t-dev-tools__field");p.append(b(e,"span",void 0,"GPC"));let v=b(e,"select");for(let[t,n]of(v.dataset.focusKey="field:GPC",[["default","Use browser signal"],["true","Enabled"],["false","Disabled"]])){let o=b(e,"option",void 0,n);o.value=t,v.append(o)}v.value=void 0===o.overrides.gpc?"default":String(o.overrides.gpc),p.append(v);let u=b(e,"div","c15t-dev-tools__actions"),m=h(e,"Apply and refresh",()=>{},"primary");m.type="submit",u.append(m,h(e,"Clear overrides",()=>{n.set.overrides({country:void 0,gpc:void 0,language:void 0,region:void 0}),s("Clearing overrides…",()=>n.commands.init(),"Overrides cleared and consent data refreshed.")})),i.addEventListener("submit",e=>{e.preventDefault();let t={country:d.input.value.trim()||void 0,gpc:"default"===v.value?void 0:"true"===v.value,language:c.input.value.trim()||void 0,region:l.input.value.trim()||void 0};n.set.overrides(t),s("Applying overrides…",()=>n.commands.init(),"Overrides applied and consent data refreshed.")}),i.append(d.field,l.field,c.field,p,u),r.append(i),t.append(a,r)}(n,o,a,s.snapshot,v);break;case"policy":!function(e,t,n,o){let s=_(e,"Policy and interaction"),a=b(e,"dl","c15t-dev-tools__stats");for(let[o,r]of(a.append(w(e,"Resolution",n.resolution.status),w(e,"Model",n.model??"Unresolved"),w(e,"Configured prompt",n.policyRule.prompt),w(e,"Required prompt",n.promptRequirement.kind),w(e,"Prompt reason","reason"in n.promptRequirement?n.promptRequirement.reason:"Not required"),w(e,"Active UI",n.activeUI??"None"),w(e,"Revision",String(n.revision)),w(e,"Explicit choice",n.explicitChoice?"Recorded":"Absent")),s.append(a),t.append(s),[["Explicit choice receipts",n.explicitChoice],["Effective permissions",n.effectivePermissions],["Restrictions",n.restrictions],["Local notice dismissal",n.noticeDismissal],["Privacy signals",n.privacySignals],["Standing privacy directives",n.optOutDirectives],["Policy resolution",n.resolution],["Active policy rule",n.policyRule],["Action constraints and persistent rights",{actions:n.policyRule.actions,rights:n.policyRule.rights}],["Fingerprints and validity",n.evaluationPolicy],["Evaluation clock",{evaluatedAt:n.evaluatedAt,nextDeadline:n.nextDeadline}],["Subject",n.subject]])){let n=_(e,o);n.append(y(e,r)),t.append(n)}let r=o?.(),d=_(e,"Presentation resolution",r?"Resolved from supplied host options. This does not verify the rendered controls.":"Resolved defaults only. Host presentation was not supplied; rendered controls are not verified.");d.append(y(e,{preferences:i({policy:n.policyRule,presentation:r,surface:"preferences"}),prompt:i({policy:n.policyRule,presentation:r,surface:"prompt"}),source:r?"host-options":"defaults"})),t.append(d)}(n,o,s.snapshot,p);break;case"iab":((t,n,o,s,a)=>{let r=o.getSnapshot(),{iab:i}=r;if(!i?.enabled||!i.gvl||"iab"!==r.model)return n.append(_(t,"IAB consent",i?.enabled?"IAB controls are available when the current policy uses IAB and its vendor list has loaded.":"IAB is not enabled for this provider. Configure IAB and refresh consent data to inspect it."));let d=e.get(o)?.controls,l=_(t,"IAB consent","Edits are unsaved selections. Save IAB consent to generate a fresh TC string and apply these choices to script access.");d||l.append(b(t,"p","c15t-dev-tools__muted","Read-only: waiting for this provider’s IAB module."));let c=b(t,"div","c15t-dev-tools__actions"),p=h(t,"Save IAB consent",()=>{d&&a("Saving IAB consent…",()=>d.save(),"IAB consent saved.")},"primary"),v=h(t,"Accept all IAB",()=>d?.acceptAll()),u=h(t,"Reject all IAB",()=>d?.rejectAll());for(let e of[p,v,u])e.disabled=!d;c.append(p,v,u),l.append(c),n.append(l);let m=x(t,"Search IAB names or IDs",s.search);m.input.type="search";let g=b(t,"label","c15t-dev-tools__field"),f=b(t,"select");for(let[e,n]of(f.dataset.focusKey="iab:group",[["vendors","Vendors"],["purposes","Purposes"],["features","Special features"]])){let o=b(t,"option",void 0,n);o.value=e,f.append(o)}f.value=s.group,g.append(b(t,"span",void 0,"IAB view"),f);let w=b(t,"div","c15t-dev-tools__iab-list"),A=_(t,"Choices");A.append(g,m.field,w),n.append(A);let S=[...Object.values(i.gvl.vendors).map(e=>({...e,custom:!1})),...i.customVendors.map(e=>({...e,custom:!0}))],C=()=>{w.replaceChildren();let e=s.search.trim().toLowerCase(),n=("vendors"===s.group?S.map(e=>({consent:e.purposes.length?i.vendorConsents[String(e.id)]??!1:void 0,custom:e.custom,id:e.id,legitimateInterest:e.legIntPurposes?.length?i.vendorLegitimateInterests[String(e.id)]??!1:void 0,name:e.name,setConsent:(t,n)=>t.setVendorConsent(e.id,n),setLegitimateInterest:(t,n)=>t.setVendorLegitimateInterest(e.id,n)})):"features"===s.group?Object.values(i.gvl?.specialFeatures??{}).map(e=>({consent:i.specialFeatureOptIns[e.id]??!1,id:e.id,name:e.name,setConsent:(t,n)=>t.setSpecialFeatureOptIn(e.id,n)})):Object.values(i.gvl?.purposes??{}).map(e=>({consent:i.purposeConsents[e.id]??!1,id:e.id,legitimateInterest:S.some(t=>t.legIntPurposes?.includes(e.id))?i.purposeLegitimateInterests[e.id]??!1:void 0,name:e.name,setConsent:(t,n)=>t.setPurposeConsent(e.id,n),setLegitimateInterest:(t,n)=>t.setPurposeLegitimateInterest(e.id,n)}))).filter(t=>`${t.id} ${t.name} ${t.custom?"custom":""}`.toLowerCase().includes(e));s.page=Math.max(0,Math.min(s.page,Math.ceil(n.length/20)-1));let o=20*s.page;if(!n.length)return void w.append(b(t,"p","c15t-dev-tools__empty",e?"No IAB choices match your search.":"No choices are configured in this group."));for(let e of(w.append(b(t,"p","c15t-dev-tools__muted",`${n.filter(e=>e.consent).length} of ${n.length} matching choices enabled`)),n.slice(o,o+20))){let n=b(t,"div","c15t-dev-tools__iab-choice");n.append(b(t,"strong",void 0,`${e.name} \xb7 ${e.id}`)),e.custom&&n.append(b(t,"span","c15t-dev-tools__badge","Custom vendor"));let o="features"===s.group?"Opt in":"Consent";void 0!==e.consent&&n.append(k(t,`${o}: ${e.name}`,`iab:${s.group}:${e.id}:consent`,e.consent,!d,t=>{d&&e.setConsent(d,t)})),void 0!==e.legitimateInterest&&n.append(k(t,`Legitimate interest: ${e.name}`,`iab:${s.group}:${e.id}:li`,e.legitimateInterest,!d,t=>{d&&e.setLegitimateInterest?.(d,t)})),w.append(n)}if(n.length>20){let e=b(t,"div","c15t-dev-tools__actions"),a=h(t,"Previous IAB page",()=>{s.page-=1,C()}),r=h(t,"Next IAB page",()=>{s.page+=1,C()});a.disabled=0===s.page,r.disabled=o+20>=n.length,e.append(a,b(t,"span",void 0,`Page ${s.page+1} of ${Math.ceil(n.length/20)}`),r),w.append(e)}};m.input.addEventListener("input",()=>{s.search=m.input.value,s.page=0,C()}),f.addEventListener("change",()=>{("vendors"===f.value||"purposes"===f.value||"features"===f.value)&&(s.group=f.value),s.page=0,C()}),C();let I=_(t,"TC string");if(I.append(b(t,"p","c15t-dev-tools__muted","Last generated string. Unsaved edits are not reflected here.")),i.tcString){let{tcString:e}=i;I.append(y(t,e),h(t,"Copy TC string",()=>{a("Copying TC string…",async()=>{let n=t.defaultView?.navigator.clipboard;if(!n)throw Error("Clipboard is unavailable in this browser. Select and copy the TC string.");await n.writeText(e)},"TC string copied.")}))}else I.append(b(t,"p","c15t-dev-tools__empty","No TC string generated yet. Save IAB consent to generate one."));let O=b(t,"details","c15t-dev-tools__script"),R=b(t,"div"),$=()=>{R.replaceChildren(...O.open?[y(t,i)]:[])};O.open=s.rawOpen,O.addEventListener("toggle",()=>{O.isConnected&&(s.rawOpen=O.open,$())}),O.append(b(t,"summary","c15t-dev-tools__script-summary","Raw IAB state"),R),$(),n.append(I,O)})(n,o,a,d.iab,v);break;case"events":!function(e,t,n,o){let s=_(e,"Consent events");if(s.append(h(e,"Clear events",o,"danger")),0===n.events.length){s.append(b(e,"p","c15t-dev-tools__empty","Consent changes and requests will appear here as they happen.")),t.append(s);return}let a=b(e,"ol","c15t-dev-tools__event-list");for(let t of n.events){let n=b(e,"li","c15t-dev-tools__event"),o=b(e,"div","c15t-dev-tools__event-header");o.append(b(e,"code",void 0,t.type),b(e,"time",void 0,new Date(t.timestamp).toLocaleTimeString())),n.append(o,b(e,"p",void 0,t.message)),t.data&&n.append(y(e,t.data)),a.append(n)}s.append(a),t.append(s)}(n,o,s,r);break;case"actions":let I,O;I=_(n,"Test consent flows","Preview the banner and preferences, or refresh consent data."),(O=b(n,"div","c15t-dev-tools__action-grid")).append(h(n,"Refresh consent data",()=>{v("Refreshing consent data…",()=>a.commands.init(),"Consent data refreshed.")},"primary"),h(n,"Show banner",()=>{a.set.activeUI("banner")}),h(n,"Open preferences",()=>{a.set.activeUI("dialog")}),h(n,"Hide consent UI",()=>{a.set.activeUI("none")})),"notice"===a.getSnapshot().promptRequirement.kind&&O.append(h(n,"Dismiss local notice",()=>{v("Dismissing notice…",c.dismissNotice,"Local notice dismissed.")})),c.clearRecords&&O.append(h(n,"Clear stored records",()=>{v("Clearing records…",()=>Promise.resolve(c.clearRecords?.()),"Stored records cleared.")},"danger")),I.append(O),o.append(I)}}(c,q,o,n.kernel,n.stateManager.clearEvents,g,n.getConsentCategories,n.actions,n.getPresentation,$);var z=r;if(z?.status==="pending")for(let e of(q.setAttribute("aria-busy","true"),q.querySelectorAll("button, input, select")))e.disabled=!0;if(z){let e=b(c,"p","c15t-dev-tools__feedback",z.message);e.setAttribute("role","error"===z.status?"alert":"status"),e.dataset.status=z.status,R.append(e)}}for(let e of(R.append(q),u.append(R),u.querySelectorAll(".c15t-dev-tools__field input, .c15t-dev-tools__field select"))){let t=e.dataset.focusKey?l.get(e.dataset.focusKey):void 0;void 0!==t&&(e.value=t)}if(q.scrollTop=d,a=o,o.isOpen!==m)E(o.isOpen?`[data-tab="${o.activeTab}"]`:".c15t-dev-tools__toggle"),m=o.isOpen;else{let e,t;I&&(e=()=>{for(let e of u.querySelectorAll("[data-focus-key]"))if(e.dataset.focusKey===I)return void e.focus({preventScroll:!0})},(t=c.defaultView)?t.requestAnimationFrame(e):e())}}(o)}let D=n.stateManager.subscribe(L),P=(s=n.kernel,(d=e.get(s))||(d={listeners:new Set},e.set(s,d)),(l=d).listeners.add(L),()=>l.listeners.delete(L)),j=n.container??c.body,q=!1===n.shadow||"function"!=typeof j.attachShadow?null:b(c,"div","c15t-dev-tools-host");if(q){q.dataset.c15tDevToolsHost=p;let e=q.attachShadow({mode:"open"});e.append(b(c,"style",void 0,S)),e.append(u),j.append(q)}else{if(!c.getElementById(O)){let e=b(c,"style",void 0,S);e.id=O,c.head.append(e)}j.append(u)}return L(),{destroy(){R=!0,P(),D(),u.remove(),q?.remove()},element:u}}({actions:U,container:c,getConsentCategories:P,getPresentation:n.getPresentation,kernel:r,shadow:R,stateManager:j});return{actions:U,clearEvents:j.clearEvents,close:()=>j.setOpen(!1),destroy(){if(!q){for(let e of(q=!0,N(),B(),F))e();K.destroy(),j.destroy()}},element:K.element,getState:j.getState,open:()=>j.setOpen(!0),setActiveTab:e=>j.setActiveTab(e),subscribe:j.subscribe,toggle:()=>{j.setOpen(!j.getState().isOpen)}}}({...o,clearRecords:o.clearRecords??n.runtime.clearRecords,getConsentCategories:()=>n.consentCategories,getPresentation:o.getPresentation??(()=>n.options.presentation),kernel:n.kernel})}(n,E),s=window.c15t;s&&!Array.isArray(s)&&(s.devtools=o)},L=window.c15t;L&&!Array.isArray(L)?L.onInit(T):window.c15t=[...L??[],["onInit",T]]})();
1
+ (()=>{let e=new WeakMap,t=["necessary","functionality","experience","measurement","marketing"],n=["functionality","experience","measurement","marketing"],o=function(e,t){let{basis:n}=e;return"choice-v1"===n.kind?n.fingerprint===t.choice.fingerprint:void 0===n.materialFingerprint||null===t.legacyMaterialFingerprint||n.materialFingerprint===t.legacyMaterialFingerprint},r=function(e,t,n){if(!e)return{authority:"absent",expiresAt:null};if(!o(e,t))return{authority:"policy-changed",expiresAt:null};let r=null===t.choice.maxAgeMs?null:e.confirmedAt+t.choice.maxAgeMs;return null!==r&&n>=r?{authority:"expired",expiresAt:r}:{authority:"valid",expiresAt:r}},s=function(e,t){return t?"opt-out"===e.model||"none"===e.model:"permissive"===e.scopeMode},a=function(e,t,n,o){let r=[];return t?.value===!1&&r.push("explicit-denial"),n||"strict"!==o.policy.scopeMode||r.push("strict-scope"),!0===o.gpc&&o.policy.gpcDenyCategories.includes(e)&&r.push("gpc"),o.optOuts?.some(t=>t.categories.includes(e))&&r.push("opt-out-directive"),r},i=function(e,t){let{policy:n}=t,o=t.choice?.categories[e],i=n.scope.includes(e),{authority:d,expiresAt:c}=r(o,n,t.now),l=a(e,o,i,t),p=s(n,i),u="default";return i&&o?.value===!0&&"valid"===d&&(p=!0,u="grant"),l.length>0&&(p=!1,u="restricted"),{authority:d,expiresAt:c,inScope:i,permitted:p,restrictions:l,source:u}},d=function(e,t){return{kind:e,reason:t}},c=function(e,t){return(e.choiceScope??e.scope).some(e=>t[e].restrictions.length>0)},l=function(e,t){let{policy:n}=e,o=n.choiceScope??n.scope;if(0===o.length||c(n,t))return{kind:"none"};let r=e.choice?.categories;if(!r||0===Object.keys(r).length)return d("choice","missing");let s=!1,a=!1;for(let e of o){let n=r[e],{authority:o}=t[e];if("policy-changed"===o)return d("choice","policy-changed");n?n.value&&"expired"===o&&(a=!0):s=!0}return s?d("choice","missing"):a?d("choice","expired"):{kind:"none"}},p=function(e,t){return null===t.notice.maxAgeMs?null:e.dismissedAt+t.notice.maxAgeMs},u=function(e){let t=e.noticeDismissal;if(!t)return d("notice","missing");if(t.fingerprint!==e.policy.notice.fingerprint)return d("notice","policy-changed");let n=p(t,e.policy);return null!==n&&e.now>=n?d("notice","expired"):{kind:"none"}},v=function(e,t){switch(e.policy.prompt){case"choice":return l(e,t);case"notice":return u(e);default:return{kind:"none"}}},g=function(e,t,n){let{policy:o}=e,r=[],a=o.choiceScope??o.scope,i="choice"===o.prompt&&"none"===n.kind&&!c(o,t);for(let n of o.scope){let d=t[n],c=e.choice?.categories[n],l=!s(o,!0)&&0===d.restrictions.length;c?.value===!0&&"valid"===d.authority&&null!==d.expiresAt&&(l||i&&a.includes(n))&&r.push(d.expiresAt)}let d=e.noticeDismissal;if("notice"===o.prompt&&d&&d.fingerprint===o.notice.fingerprint){let t=p(d,o);null!==t&&t>e.now&&r.push(t)}let l=r.filter(t=>t>e.now);return 0===l.length?null:Math.min(...l)},m=function(e){let t={},o={necessary:!0},r={};for(let s of n){let n=i(s,e);t[s]=n,o[s]=n.permitted,n.restrictions.length>0&&(r[s]=n.restrictions)}let s=v(e,t);return{categories:t,nextDeadline:g(e,t,s),permissions:o,promptRequirement:s,restrictions:r}},f=function(e,t){if(0===e.length)throw TypeError(`${t} condition cannot be empty`)},h=function(e,t){if(!(e in t))throw Error(`Consent category "${e}" not found in consent state`);return t[e]||!1},b=function e(t,n){if("string"==typeof t)return h(t,n);if("object"==typeof t&&null!==t){if("and"in t){let o=Array.isArray(t.and)?t.and:[t.and];return f(o,"AND"),o.every(t=>e(t,n))}if("or"in t){let o=Array.isArray(t.or)?t.or:[t.or];return f(o,"OR"),o.some(t=>e(t,n))}if("not"in t)return!e(t.not,n)}throw TypeError(`Invalid condition structure: ${JSON.stringify(t)}`)},y=function(e){let t=new Set;return!function e(n){"string"==typeof n?t.add(n):"object"==typeof n&&null!==n&&("and"in n?(Array.isArray(n.and)?n.and:[n.and]).forEach(e):"or"in n?(Array.isArray(n.or)?n.or:[n.or]).forEach(e):"not"in n&&e(n.not))}(e),Array.from(t)},_=function(e,t){if(void 0!==e.vendorId){let n=String(e.vendorId),o=(e.iabLegIntPurposes?.length??0)>0,r=!o||(e.iabPurposes?.length??0)>0;if(o&&(!Object.hasOwn(t.vendorLegitimateInterests,n)||!0!==t.vendorLegitimateInterests[n])||r&&(!Object.hasOwn(t.vendorConsents,n)||!0!==t.vendorConsents[n]))return!1}return(e.iabPurposes??[]).every(e=>Object.hasOwn(t.purposeConsents,e)&&!0===t.purposeConsents[e])&&(e.iabLegIntPurposes??[]).every(e=>Object.hasOwn(t.purposeLegitimateInterests,e)&&!0===t.purposeLegitimateInterests[e])&&(e.iabSpecialFeatures??[]).every(e=>Object.hasOwn(t.specialFeatureOptIns,e)&&!0===t.specialFeatureOptIns[e])},w=function(e){let t=e.vendorChoice?.denied;if(!t||0===t.length)return null;let n=new Set;for(let t of e.vendors?.declared??[])!0!==t.disabled&&n.add(t.id);let o=new Set;for(let e of t)n.has(e)&&o.add(e);return o.size>0?o:null},x=function(e,t=Date.now()){if(null===e.nextDeadline||t<e.nextDeadline)return e;let n=m({choice:e.explicitChoice,gpc:e.privacySignals.gpc.active,noticeDismissal:e.noticeDismissal,now:t,optOuts:e.optOutDirectives,policy:e.evaluationPolicy});return{effectivePermissions:n.permissions,restrictions:n.restrictions}},k=function(e,t){let{iab:n}=e,o=n?.authority;return!!n?.enabled&&!!o&&"matched"===e.resolution.status&&o.choiceFingerprint===e.evaluationPolicy.choice.fingerprint&&!!o.tcString&&!!Number.isSafeInteger(o.confirmedAt)&&!!Number.isSafeInteger(o.expiresAt)&&!(o.confirmedAt<0)&&!(o.confirmedAt>t)&&!(o.expiresAt<=t)&&!(o.expiresAt<=o.confirmedAt)&&!0},A=function(e,t,n=Date.now()){var o;let r=x(t,n);if(void 0!==e.vendorId||e.iabPurposes?.length||e.iabLegIntPurposes?.length||e.iabSpecialFeatures?.length){if("iab"!==t.model)return!1;let{iab:o}=t,s=o?.authority;if(!s||!k(t,n))return!1;for(let t of y(e.category))if("necessary"!==t&&r.restrictions[t]?.length)return!1;return _(e,s)}let s=b(e.category,r.effectivePermissions);return s&&void 0!==e.vendor&&"iab"!==t.model?(o=e.vendor,!w(t)?.has(o)):s},S={bar:["top","bottom"],floating:["bottom-left","bottom-right","top-left","top-right","bottom-center","top-center"],wall:["center"],widget:["bottom-left","bottom-right","top-left","top-right"]},C={bar:"bottom",floating:"bottom-left",wall:"center",widget:"bottom-right"},I=function(e){let t=["reject","accept"].filter(t=>e.includes(t)),n=e.filter(e=>!t.includes(e));return t.length>0?[t,...n]:n},O=function(e,t,n,o){let r=new Set,s=[];for(let t of n??I(e)){let n=[];for(let s of"string"==typeof t?[t]:t)e.includes(s)?r.has(s)||(r.add(s),n.push(s)):o.push({actions:[s],code:"forbidden-action",message:`The policy does not allow ${s} on this surface.`});n.length&&s.push(n)}let a=t.filter(e=>!r.has(e));return a.length&&(s.length||s.push([]),s[0]?.push(...a),o.push({actions:a,code:"required-action-restored",message:"Required actions omitted by the layout were restored at the same interaction depth."})),s},D=function(e,t,n,o){var r,s,a;let i,d,c=n?"wall":"floating",l=n?c:e.variant??c;t&&"wall"===l&&(l="floating",o.push({actions:[],code:"invalid-variant",message:"A notice cannot use a blocking wall; using floating."})),n&&(void 0!==e.variant||void 0!==e.position)&&o.push({actions:[],code:"invalid-variant",message:"Preferences use a centered dialog; variant and position are prompt options."});let p=C[l],u=p,v="default";return n||void 0===e.position||((r=l,s=e.position,S[r].includes(s))?({position:u}=e,v="host"):o.push({actions:[],code:"invalid-position",message:`Position "${e.position}" is not valid for the ${l} variant; using "${p}".`})),{blocking:(a=l,i=!1!==e.scrollLock&&!1!==e.trapFocus&&(e.scrollLock??e.trapFocus),d=e.blocking??i??(n||"wall"===a),t&&d?(d=!1,o.push({actions:[],code:"blocking-forbidden",message:"A notice prompt is never blocking; blocking was disabled."})):n||"wall"!==a||d||(d=!0,o.push({actions:[],code:"blocking-required",message:"The wall variant is always blocking; blocking was enabled."})),d),position:u,positionSource:v,variant:l}},$=function(e){var t,n;let o="preferences"===e.surface,r={...e.presentation?.[e.surface],...Object.fromEntries(Object.entries(e.override??{}).filter(([,e])=>void 0!==e))},s=o?{allowed:["reject","accept","save"],equivalent:[["accept","reject"]],required:["reject","accept","save"]}:e.policy.actions,a=[...new Set(s.allowed)],i=[...new Set(s.required)],d=s.equivalent.map(e=>[...e]),c=[],l=O(a,i,r.layout,c),p=l.flat(),u=o?["save"]:["customize"],v=(r.primaryActions??u).filter(e=>p.includes(e));for(let t of d){let n=t.filter(e=>v.includes(e)).length,o=new Set(t.map(t=>{let n=e.actionAppearance?.[t];return`${n?.variant??(v.includes(t)?"primary":"neutral")}:${n?.mode??"stroke"}`}));(n>0&&n<t.length||o.size>1)&&c.push({actions:[...t],code:"equivalent-prominence-overridden",message:"Host presentation gives equivalent actions different prominence."})}let g=!o&&"notice"===e.policy.prompt,m=r.direction??"row",f=r.uiProfile??"compact",h=D(r,g,o,c),b=h.blocking,y=h.blocking;return{...h,actionGroups:l,allowedActions:a,diagnostics:c,direction:m,equivalentActions:d,orderedActions:p,preferenceControls:(t=e.policy.rights,n=e.policy.i18n?.messageProfile,o?[]:t.includes("opt-out")&&!p.includes("reject")?["preferences"===n?"preferences":"opt-out"]:t.includes("preferences")&&!p.includes("customize")?["preferences"]:[]),primaryActions:v,requiredActions:i,rights:e.policy.rights,scrollLock:b,shouldFillActions:"strict"===f||"balanced"===f,trapFocus:y,uiProfile:f}},R=new WeakMap,E=e=>[...R.get(e)?.loaders.values()??[]].flatMap(e=>e()),L=e=>{let t=new WeakSet;try{return JSON.stringify(e,(e,n)=>{if("bigint"==typeof n)return String(n);if(null!==n&&"object"==typeof n){if(t.has(n))return"[Circular]";t.add(n)}return n},2)??"null"}catch{return'"[Unserializable value]"'}},P=["records:cleared","choice:recorded","permissions:changed","notice:dismissed","privacy:opt-out","overrides:set","user:identified","subject:resolved","iab:set","vendors:set","vendors:recorded","init:applied","init:failed","save:replayed","command:init:started","command:init:completed","command:save:started","command:save:completed","command:error"];function T(e){return{activeUI:e.activeUI,effectivePermissions:e.effectivePermissions,explicitChoice:e.explicitChoice,model:e.model,noticeDismissal:e.noticeDismissal,optOutDirectives:e.optOutDirectives,privacySignals:e.privacySignals,promptRequirement:e.promptRequirement,resolution:e.resolution.status,revision:e.revision,subject:e.subject}}function j(e){return{result:JSON.parse(L(e))}}function M(e,t){let n=L(t);try{if(t instanceof Error){let e=t.message;n="string"==typeof e?e:L(e)}else"string"==typeof t&&(n=t)}catch{}return{command:e,error:n}}let z=(e,t,n)=>e?t:n,F=(e,t,n,o)=>"necessary"===n||(t[n]??e.explicitChoice?.categories[n]?.value??o?.[n]??("opt-out"===e.policyRule.model||e.policyRule.preselectedCategories.includes(n)));function q(e,t,n,o){let r=e.createElement(t);return n&&(r.className=n),void 0!==o&&(r.textContent=o),r}function B(e,t,n,o="secondary"){let r=q(e,"button",`c15t-dev-tools__button c15t-dev-tools__button--${o}`,t);return r.type="button",r.dataset.focusKey=`button:${t}`,r.addEventListener("click",n),r}function N(e,t,n){let o=q(e,"section","c15t-dev-tools__section");return o.append(q(e,"h3",void 0,t)),n&&o.append(q(e,"p","c15t-dev-tools__muted",n)),o}function U(e,t){let n=q(e,"pre","c15t-dev-tools__code");return n.textContent=L(t),n}function K(e,t,n){let o=q(e,"div","c15t-dev-tools__stat");return o.append(q(e,"dt",void 0,t),q(e,"dd",void 0,n)),o}function V(e,t,n){let o=q(e,"label","c15t-dev-tools__field");o.append(q(e,"span",void 0,t));let r=q(e,"input");return r.type="text",r.value=n,r.autocomplete="off",r.spellcheck=!1,r.dataset.focusKey=`field:${t}`,o.append(r),{field:o,input:r}}let H=(e,t,n,o,r,s)=>{let a=q(e,"label","c15t-dev-tools__check"),i=q(e,"input");return i.type="checkbox",i.setAttribute("role","switch"),i.setAttribute("aria-label",t),i.dataset.focusKey=n,i.checked=o,i.disabled=r,i.addEventListener("change",()=>s(i.checked)),a.append(q(e,"span",void 0,t.split(":")[0]),i),a},Z=e=>{let t=e.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 446 445"),t.setAttribute("width","24"),t.setAttribute("height","24"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false"),t.classList.add("c15t-dev-tools__logo");let n=e.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("fill","currentColor"),n.setAttribute("d","M223.178.313c39.064 0 70.732 31.668 70.732 70.732-.001 39.064-31.668 70.731-70.732 70.731-12.181 0-23.642-3.079-33.649-8.502l-55.689 55.689a70.267 70.267 0 0 1 5.574 13.441h167.531c8.695-29.217 35.762-50.523 67.804-50.523 39.064 0 70.731 31.668 70.731 70.732s-31.668 70.732-70.731 70.732c-32.042 0-59.108-21.306-67.803-50.523H139.413a70.417 70.417 0 0 1-7.888 17.396l54.046 54.046c10.893-6.851 23.786-10.815 37.605-10.815 39.064 0 70.732 31.669 70.732 70.733 0 39.064-31.668 70.731-70.732 70.731s-70.732-31.667-70.732-70.731c0-10.518 2.296-20.499 6.414-29.471l-57.78-57.78c-8.972 4.117-18.952 6.414-29.47 6.414-39.063 0-70.731-31.668-70.732-70.732 0-39.064 31.669-70.732 70.733-70.732 12.18 0 23.642 3.079 33.649 8.502l55.688-55.688c-5.423-10.007-8.502-21.469-8.502-33.65 0-39.064 31.668-70.733 70.732-70.733Zm0 343.555c-16.742 0-30.314 13.572-30.314 30.314 0 16.741 13.572 30.313 30.314 30.313s30.314-13.572 30.314-30.313c0-16.742-13.572-30.314-30.314-30.314ZM71.611 192.299c-16.742 0-30.315 13.572-30.315 30.314s13.573 30.314 30.315 30.314c16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314Zm303.138 0c-16.729 0-30.294 13.551-30.315 30.275l.001.039-.001.038c.021 16.725 13.586 30.276 30.315 30.276 16.741 0 30.313-13.572 30.313-30.314 0-16.741-13.572-30.314-30.313-30.314ZM223.178 40.73c-16.742 0-30.314 13.573-30.314 30.315s13.573 30.313 30.314 30.313c16.742 0 30.313-13.572 30.314-30.313 0-16.742-13.572-30.314-30.314-30.315Z"),t.append(n),t},J=".c15t-dev-tools {\n color-scheme: light dark;\n --c15t-dev-tools-bg: var(--c15t-surface, light-dark(white, #121212));\n --c15t-dev-tools-bg-raised: var(\n --c15t-surface-hover,\n light-dark(#fafafa, #1c1c1c)\n );\n --c15t-dev-tools-bg-muted: var(\n --c15t-surface-hover,\n light-dark(#fafafa, #1c1c1c)\n );\n --c15t-dev-tools-border: var(--c15t-border, light-dark(#e8e8e8, #303030));\n --c15t-dev-tools-text: var(--c15t-text, light-dark(#171717, #ededed));\n --c15t-dev-tools-muted: var(--c15t-text-muted, light-dark(#737373, #a3a3a3));\n --c15t-dev-tools-accent: var(--c15t-primary, light-dark(#335cff, #6685ff));\n --c15t-dev-tools-danger: light-dark(#b42318, #fda29b);\n --c15t-dev-tools-focus: var(--c15t-dev-tools-accent);\n /* Inspection controls sit above c15t's banner and dialog layers. */\n --c15t-dev-tools-z: calc(\n max(\n var(--consent-dialog-z-index, 999999999),\n var(--iab-cd-z-index, 999999999)\n ) +\n 1\n );\n\n position: fixed;\n z-index: var(--c15t-dev-tools-z);\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n color: var(--c15t-dev-tools-text);\n font-family: var(\n --c15t-font-family,\n ui-sans-serif,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif\n );\n font-size: 0.875rem;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n isolation: isolate;\n}\n\n.c15t-dev-tools *,\n.c15t-dev-tools *::before,\n.c15t-dev-tools *::after {\n box-sizing: border-box;\n}\n\n.c15t-dev-tools [hidden] {\n display: none;\n}\n\n.c15t-dev-tools--bottom-right {\n right: max(0.75rem, env(safe-area-inset-right));\n bottom: max(0.75rem, env(safe-area-inset-bottom));\n}\n\n.c15t-dev-tools--bottom-left {\n bottom: max(0.75rem, env(safe-area-inset-bottom));\n left: max(0.75rem, env(safe-area-inset-left));\n align-items: flex-start;\n}\n\n.c15t-dev-tools--top-right {\n top: max(0.75rem, env(safe-area-inset-top));\n right: max(0.75rem, env(safe-area-inset-right));\n flex-direction: column-reverse;\n}\n\n.c15t-dev-tools--top-left {\n top: max(0.75rem, env(safe-area-inset-top));\n left: max(0.75rem, env(safe-area-inset-left));\n flex-direction: column-reverse;\n align-items: flex-start;\n}\n\n.c15t-dev-tools--embedded {\n position: relative;\n inset: auto;\n width: 100%;\n height: 100%;\n align-items: stretch;\n gap: 0;\n}\n\n.c15t-dev-tools__panel {\n display: flex;\n flex-direction: column;\n width: min(28rem, calc(100vw - 1.5rem));\n max-height: min(40rem, calc(100dvh - 1.5rem));\n overflow: hidden;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-lg, 0.75rem);\n background: var(--c15t-dev-tools-bg);\n box-shadow: var(--c15t-shadow-lg, 0 8px 32px rgb(0 0 0 / 12%));\n}\n\n.c15t-dev-tools__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.375rem 0.5rem 0.375rem 1rem;\n flex-shrink: 0;\n}\n\n.c15t-dev-tools__title {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--c15t-dev-tools-muted);\n line-height: 1.25;\n text-wrap: balance;\n}\n\n.c15t-dev-tools__tabs {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n padding: 0 0.75rem;\n flex-shrink: 0;\n border-bottom: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__button {\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n touch-action: manipulation;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: transparent;\n color: var(--c15t-dev-tools-text);\n font: inherit;\n font-weight: 500;\n line-height: 1.25;\n cursor: pointer;\n transition:\n background-color 150ms ease-out,\n border-color 150ms ease-out;\n}\n\n.c15t-dev-tools__button:active {\n background: var(--c15t-dev-tools-bg-muted);\n}\n\n.c15t-dev-tools__button:focus-visible,\n.c15t-dev-tools input:focus-visible,\n.c15t-dev-tools select:focus-visible,\n.c15t-dev-tools__content:focus-visible {\n outline: 2px solid var(--c15t-dev-tools-focus);\n outline-offset: 2px;\n}\n\n.c15t-dev-tools__button:disabled {\n cursor: not-allowed;\n color: var(--c15t-dev-tools-muted);\n background: var(--c15t-dev-tools-bg-muted);\n}\n\n.c15t-dev-tools__button--primary {\n border-color: var(--c15t-dev-tools-accent);\n background: var(--c15t-dev-tools-bg);\n color: var(--c15t-dev-tools-accent);\n box-shadow: var(--c15t-shadow-sm, 0 1px 2px rgb(0 0 0 / 5%));\n}\n\n.c15t-dev-tools__button--danger {\n border-color: var(--c15t-dev-tools-danger);\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n padding: 0;\n border-radius: 50%;\n border-color: var(--c15t-dev-tools-border);\n background: var(--c15t-dev-tools-bg);\n color: var(--c15t-dev-tools-text);\n box-shadow: var(--c15t-shadow-md, 0 4px 12px rgb(0 0 0 / 10%));\n}\n\n.c15t-dev-tools__tabs .c15t-dev-tools__button {\n min-height: 2.75rem;\n min-width: 0;\n max-width: 100%;\n flex: 1 0 auto;\n padding: 0.5rem 0.375rem;\n border: 0;\n border-bottom: 2px solid transparent;\n border-radius: 0;\n color: var(--c15t-dev-tools-muted);\n font-size: 0.8125rem;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__tabs .c15t-dev-tools__button[aria-selected='true'] {\n border-bottom-color: var(--c15t-dev-tools-accent);\n color: var(--c15t-dev-tools-text);\n}\n\n.c15t-dev-tools__content {\n min-height: 0;\n min-width: 0;\n overflow-x: hidden;\n overflow-y: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n padding: 1rem;\n}\n\n/* Keep inspection scrollers independent of the host page's scrollbar theme. */\n.c15t-dev-tools__content,\n.c15t-dev-tools__code {\n scrollbar-width: thin;\n scrollbar-color: var(--c15t-dev-tools-muted) transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar,\n.c15t-dev-tools__code::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n background: transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-track,\n.c15t-dev-tools__code::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-thumb,\n.c15t-dev-tools__code::-webkit-scrollbar-thumb {\n border: 2px solid transparent;\n border-radius: 4px;\n background: var(--c15t-dev-tools-muted);\n background-clip: padding-box;\n}\n\n.c15t-dev-tools__content::-webkit-scrollbar-corner,\n.c15t-dev-tools__code::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.c15t-dev-tools__section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__section + .c15t-dev-tools__section {\n margin-top: 1rem;\n padding-top: 1rem;\n border-top: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__section h3,\n.c15t-dev-tools__section p,\n.c15t-dev-tools__section dl,\n.c15t-dev-tools__section ol {\n margin: 0;\n}\n\n.c15t-dev-tools__section h3 {\n font-size: 0.875rem;\n font-weight: 600;\n line-height: 1.25;\n text-wrap: balance;\n}\n\n.c15t-dev-tools__muted,\n.c15t-dev-tools__empty {\n max-width: 65ch;\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__control-list,\n.c15t-dev-tools__form,\n.c15t-dev-tools__action-grid {\n display: grid;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__action-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.c15t-dev-tools__check {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-height: 2.75rem;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n}\n\n.c15t-dev-tools__check:has(input:disabled) {\n cursor: not-allowed;\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__check input {\n appearance: none;\n position: relative;\n flex: 0 0 2rem;\n width: 2rem;\n height: 1.25rem;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 999px;\n background: var(--c15t-switch-track, var(--c15t-dev-tools-border));\n cursor: inherit;\n}\n\n.c15t-dev-tools__field {\n display: grid;\n min-width: 0;\n gap: 0.375rem;\n font-weight: 550;\n}\n\n.c15t-dev-tools__script-list {\n display: grid;\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__script {\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-md, 0.5rem);\n}\n\n.c15t-dev-tools__script-summary {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n cursor: pointer;\n}\n\n.c15t-dev-tools__script-summary::before {\n content: '+';\n color: var(--c15t-dev-tools-muted);\n}\n\n.c15t-dev-tools__script[open] > summary::before {\n content: '−';\n}\n\n.c15t-dev-tools__script-summary:focus-visible {\n outline: 2px solid var(--c15t-dev-tools-focus);\n outline-offset: 2px;\n}\n\n.c15t-dev-tools__script-name {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__status {\n flex-shrink: 0;\n padding: 0.125rem 0.375rem;\n border-radius: 0.25rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__status[data-status='error'] {\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__status[data-status='loaded'] {\n color: var(--c15t-dev-tools-accent);\n}\n\n.c15t-dev-tools__script-body {\n display: grid;\n gap: 0.5rem;\n padding: 0.75rem;\n border-top: 1px solid var(--c15t-dev-tools-border);\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__logo {\n color: var(--c15t-dev-tools-text);\n flex: 0 0 auto;\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.c15t-dev-tools__button.c15t-dev-tools__close {\n width: 2.75rem;\n padding: 0;\n border: 0;\n color: var(--c15t-dev-tools-muted);\n font-size: 1.5rem;\n}\n\n.c15t-dev-tools__control-list {\n gap: 0;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: var(--c15t-radius-md, 0.5rem);\n overflow: hidden;\n}\n\n.c15t-dev-tools__check + .c15t-dev-tools__check {\n border-top: 1px solid var(--c15t-dev-tools-border);\n}\n\n.c15t-dev-tools__check > span:first-child {\n flex: 1;\n}\n\n.c15t-dev-tools__badge {\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__check input::before {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 0.875rem;\n height: 0.875rem;\n border-radius: 50%;\n background: var(--c15t-switch-thumb, white);\n box-shadow: 0 1px 2px rgb(0 0 0 / 15%);\n}\n\n.c15t-dev-tools__check input:checked {\n background: var(--c15t-switch-track-active, var(--c15t-dev-tools-accent));\n border-color: transparent;\n}\n\n.c15t-dev-tools__check input:checked::before {\n transform: translateX(0.75rem);\n}\n\n.c15t-dev-tools__check input:disabled {\n opacity: 0.5;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__close {\n display: none;\n}\n\n.c15t-dev-tools__field input,\n.c15t-dev-tools__field select {\n width: 100%;\n min-width: 0;\n min-height: 2.75rem;\n padding: 0.625rem 0.75rem;\n touch-action: manipulation;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-text);\n font: inherit;\n font-size: 1rem;\n}\n\n.c15t-dev-tools__actions {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__stats {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.5rem;\n}\n\n.c15t-dev-tools__stat {\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-raised);\n}\n\n.c15t-dev-tools__stat dt {\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n}\n\n.c15t-dev-tools__stat dd {\n margin: 0.25rem 0 0;\n font-variant-numeric: tabular-nums;\n font-weight: 600;\n}\n\n.c15t-dev-tools__code {\n min-width: 0;\n max-width: 100%;\n max-height: 16rem;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n padding: 0.75rem;\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-muted);\n color: var(--c15t-dev-tools-text);\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.75rem;\n line-height: 1.5;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__event-list {\n display: grid;\n gap: 0.75rem;\n padding: 0;\n list-style: none;\n}\n\n.c15t-dev-tools__iab-list {\n display: grid;\n gap: 0.75rem;\n}\n\n.c15t-dev-tools__iab-choice {\n min-width: 0;\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__iab-choice > strong {\n display: block;\n margin-bottom: 0.5rem;\n}\n\n.c15t-dev-tools__feedback {\n margin: 0;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid var(--c15t-dev-tools-border);\n overflow-wrap: anywhere;\n}\n\n.c15t-dev-tools__feedback[data-status='error'] {\n color: var(--c15t-dev-tools-danger);\n}\n\n.c15t-dev-tools__event {\n display: grid;\n gap: 0.5rem;\n padding: 0.75rem;\n border: 1px solid var(--c15t-dev-tools-border);\n border-radius: 0.5rem;\n background: var(--c15t-dev-tools-bg-raised);\n}\n\n.c15t-dev-tools__event-header {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n gap: 0.75rem;\n color: var(--c15t-dev-tools-muted);\n font-size: 0.75rem;\n font-variant-numeric: tabular-nums;\n}\n\n@media (hover: hover) and (pointer: fine) {\n .c15t-dev-tools__button:hover:not(:disabled) {\n border-color: var(--c15t-dev-tools-accent);\n background: var(--c15t-dev-tools-bg-raised);\n }\n\n .c15t-dev-tools__button--primary:hover:not(:disabled) {\n background: color-mix(\n in srgb,\n var(--c15t-dev-tools-accent) 6%,\n var(--c15t-dev-tools-bg)\n );\n }\n}\n\n@media (max-width: 28rem) {\n .c15t-dev-tools__action-grid,\n .c15t-dev-tools__stats {\n grid-template-columns: 1fr;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .c15t-dev-tools__button {\n transition: none;\n }\n\n .c15t-dev-tools__button:active {\n transform: none;\n }\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__toggle {\n display: none;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__panel {\n width: 100%;\n height: 100%;\n max-height: none;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n}\n\n.c15t-dev-tools--embedded .c15t-dev-tools__content {\n max-height: none;\n}\n",G=[{id:"consents",label:"Consents"},{id:"scripts",label:"Scripts"},{id:"location",label:"Location"},{id:"policy",label:"Policy"},{id:"iab",label:"IAB"},{id:"events",label:"Events"},{id:"actions",label:"Actions"}],W=0,Q="c15t-dev-tools-styles",X=function(e,t,n){let o=n.vendors?.declared??[];if(0===o.length)return;let r=N(e,"Vendors",n.vendors?.listVersion?`Vendor list ${n.vendors.listVersion}. A denied vendor stays blocked inside a granted category.`:"A denied vendor stays blocked inside a granted category."),s=w(n)??new Set,a=e=>{if(s.has(e.id))return"Denied";let t=!1;try{t=A({category:e.category},n)}catch{t=!1}return t?"Allowed":"Blocked by category"},i=q(e,"div","c15t-dev-tools__control-list");for(let t of o){let n=q(e,"div","c15t-dev-tools__check");n.append(q(e,"span",void 0,t.name??t.id),q(e,"span","c15t-dev-tools__badge",t.source),q(e,"span","c15t-dev-tools__muted",a(t))),t.presentable||n.append(q(e,"span","c15t-dev-tools__muted","Slug only. Declare a name and privacy policy URL to show it.")),i.append(n)}r.append(i),t.append(r)},Y=new Set(["consents","scripts","location","policy","iab","events","actions"]),ee=new Set(["bottom-right","bottom-left","top-right","top-left"]),et=function(e){let t={};if(!e)return t;e.hasAttribute("data-open")&&(t.defaultOpen="false"!==e.getAttribute("data-open"));let n=e.getAttribute("data-tab");n&&Y.has(n)&&(t.defaultTab=n);let o=e.getAttribute("data-position");return o&&ee.has(o)&&(t.position=o),t}(document.currentScript),en=function(n){let o=function(n,o={}){return function(n){var o;let r,s,{kernel:a,container:i,shadow:d=!0,position:c="bottom-right",defaultOpen:l=!1,defaultTab:p="consents",maxEvents:u=100}=n,v=Number.isFinite(u)?Math.max(1,Math.trunc(u)):100,g=()=>{let{scope:e}=a.getSnapshot().policyRule,o=n.getConsentCategories?.()??["necessary",...e];return t.filter(t=>o.includes(t)&&("necessary"===t||e.includes(t)))},m=function(e){let t={activeTab:e.activeTab,draft:Object.freeze({}),draftFingerprint:null,events:[],isOpen:e.isOpen,position:e.position,scripts:[],snapshot:e.snapshot},n=!1,o=new Set;function r(e){if(n)return;let r=t;for(let n of(t={...t,...e},o))n(t,r)}return{addEvent:n=>{r({events:[n,...t.events].slice(0,e.maxEvents)})},clearEvents:()=>{t.events.length>0&&r({events:[]})},destroy:()=>{n=!0,o.clear()},getState:()=>t,setActiveTab:e=>{t.activeTab!==e&&r({activeTab:e})},setDraft:e=>r({draft:Object.freeze({...e}),draftFingerprint:Object.keys(e).length>0?t.draftFingerprint??t.snapshot.evaluationPolicy.choice.fingerprint:null}),setOpen:e=>{t.isOpen!==e&&r({isOpen:e})},setScripts:e=>r({scripts:e}),setSnapshot:e=>{if(t.snapshot!==e){let n=e.user!==t.snapshot.user;r({draft:n?Object.freeze({}):t.draft,draftFingerprint:n?null:t.draftFingerprint,snapshot:e})}},subscribe:e=>n?()=>{}:(o.add(e),()=>{o.delete(e)})}}({activeTab:p,isOpen:l,maxEvents:v,position:c,snapshot:a.getSnapshot()}),f=!1,h=0,b=!1;m.setScripts(E(a));let y=(o=e=>{e&&(h+=1,m.addEvent({data:{...e},id:String(h),message:`${e.scriptId}: ${e.message}`,timestamp:e.timestamp,type:`script:${e.action}`})),b||(b=!0,queueMicrotask(()=>{b=!1,f||m.setScripts(E(a))}))},(r=R.get(a))||(r={listeners:new Set,loaders:new Map},R.set(a,r)),(s=r).listeners.add(o),()=>{s.listeners.delete(o)}),_=a.subscribe(e=>{m.setSnapshot(e)}),w=P.map(e=>a.events.on(e,e=>{"records:cleared"===e.type&&m.setDraft({}),h+=1,m.addEvent(function(e,t,n){switch(e.type){case"records:cleared":return{id:t,message:"Stored records cleared",timestamp:n,type:e.type};case"choice:recorded":return{data:{...T(e.snapshot),actionAt:e.actionAt,confirmed:e.confirmed},id:t,message:"Explicit choice recorded",timestamp:n,type:e.type};case"permissions:changed":return{data:{...T(e.snapshot),previous:e.previous},id:t,message:"Effective permissions changed",timestamp:n,type:e.type};case"notice:dismissed":return{data:{...T(e.snapshot),dismissal:e.dismissal},id:t,message:"Local notice dismissed",timestamp:n,type:e.type};case"privacy:opt-out":return{data:{...T(e.snapshot),directive:e.directive},id:t,message:"Privacy opt-out recorded",timestamp:n,type:e.type};case"subject:resolved":return{data:T(e.snapshot),id:t,message:"Canonical subject resolved",timestamp:n,type:e.type};case"overrides:set":return{data:T(e.snapshot),id:t,message:"Location overrides changed",timestamp:n,type:e.type};case"user:identified":return{data:T(e.snapshot),id:t,message:"User identified",timestamp:n,type:e.type};case"iab:set":return{data:T(e.snapshot),id:t,message:"IAB state changed",timestamp:n,type:e.type};case"vendors:set":return{data:{...T(e.snapshot),vendors:e.snapshot.vendors},id:t,message:"Declared vendors changed",timestamp:n,type:e.type};case"vendors:recorded":return{data:{...T(e.snapshot),actionAt:e.actionAt,vendorChoice:e.snapshot.vendorChoice},id:t,message:"Vendor choice recorded",timestamp:n,type:e.type};case"init:applied":return{data:T(e.snapshot),id:t,message:"Initialization result applied",timestamp:n,type:e.type};case"command:init:started":return{id:t,message:"Initialization started",timestamp:n,type:e.type};case"init:failed":return{data:{...M("init",e.error),attempt:e.attempt,nextRetryMs:e.nextRetryMs},id:t,message:"Initialization failed",timestamp:n,type:e.type};case"save:replayed":return{data:{ok:e.ok,subjectId:e.subjectId},id:t,message:z(e.ok,"Queued consent saved","Queued consent save failed"),timestamp:n,type:e.type};case"command:init:completed":return{data:j(e.result),id:t,message:z(e.result.ok,"Initialization completed","Initialization failed"),timestamp:n,type:e.type};case"command:save:started":return{id:t,message:"Consent save started",timestamp:n,type:e.type};case"command:save:completed":return{data:j(e.result),id:t,message:z(e.result.ok,"Consent save completed","Consent save failed"),timestamp:n,type:e.type};case"command:error":return{data:M(e.command,e.error),id:t,message:`${e.command} command failed`,timestamp:n,type:e.type}}}(e,String(h),Date.now()))})),x={clearRecords:n.clearRecords?()=>{n.clearRecords?.(),m.setDraft({})}:void 0,dismissNotice:()=>a.commands.dismissNotice(),init:()=>a.commands.init(),resetDraft:()=>m.setDraft({}),save:async e=>{let t=m.getState(),o=a.getSnapshot();if("all"!==e&&"none"!==e&&null!==t.draftFingerprint&&t.draftFingerprint!==o.evaluationPolicy.choice.fingerprint)throw Error("Policy changed. Discard the draft and review the current choices before saving.");let r=async e=>{let n=await a.commands.save(e);return n.ok&&m.getState().draft===t.draft&&m.setDraft({}),n},s=g().filter(e=>"necessary"!==e);if(("all"===e||"none"===e)&&s.length===o.policyRule.scope.length)return await r(e);let i={},d=n.getPresentation?.()?.preferences?.defaults;for(let n of s)"all"===e||"none"===e?i[n]="all"===e:void 0===e?i[n]=F(o,t.draft,n,d):Object.hasOwn(e,n)&&"boolean"==typeof e[n]&&(i[n]=e[n]);return await r(i)},setActiveUI:e=>a.set.activeUI(e),setDraft(e){let t={...m.getState().draft};for(let n of g())"necessary"!==n&&Object.hasOwn(e,n)&&"boolean"==typeof e[n]&&(t[n]=e[n]);m.setDraft(t)},setOverrides:e=>a.set.overrides(e)},k=function(n){var o,r;let s,a,i,d,c=n.container?.ownerDocument??globalThis.document;if(!c)return{destroy(){},element:null};W+=1;let l=`c15t-dev-tools-${W}`,p=`${l}-panel`,u=q(c,"div",`c15t-dev-tools ${(o=n.stateManager.getState().position,`c15t-dev-tools--${o}`)}`);u.dataset.c15tDevTools=l,u.addEventListener("keydown",e=>{"Escape"!==e.key||u.classList.contains("c15t-dev-tools--embedded")||(e.stopPropagation(),n.stateManager.setOpen(!1))});let v=n.stateManager.getState().isOpen,g={expandedScripts:new Set,iab:{group:"vendors",page:0,rawOpen:!1,search:""},scriptSearch:""},m=!1,f=(e,t,n)=>{m||a?.status==="pending"||(a={message:e,status:"pending"},y(),(async()=>{try{let e=await t();if("object"==typeof e&&null!==e&&"ok"in e&&!e.ok)throw Error("The request failed. Check the connection and retry.");a={message:n,status:"success"}}catch(e){a={message:e instanceof Error?e.message:"The request failed. Retry the action.",status:"error"}}m||y()})())};function h(e){let t=()=>{let t=u.querySelector(e);t?.focus()},n=c.defaultView;n?n.requestAnimationFrame(t):t()}function b(e,t=!1){n.stateManager.setActiveTab(e),t&&h(`[data-tab="${e}"]`)}function y(){let o=n.stateManager.getState();if(!o.isOpen&&s&&!s.isOpen){s=o;return}!function(o){let r=s?.activeTab===o.activeTab,i=r?u.querySelector(".c15t-dev-tools__content")?.scrollTop??0:0,d=new Map;if(r&&s?.snapshot.overrides===o.snapshot.overrides)for(let e of u.querySelectorAll(".c15t-dev-tools__field input, .c15t-dev-tools__field select"))e.dataset.focusKey&&d.set(e.dataset.focusKey,e.value);let{activeElement:m}=u.getRootNode(),y=m&&u.contains(m)?m.getAttribute("data-focus-key"):null;u.replaceChildren();let _=B(c,o.isOpen?"Close c15t DevTools":"Open c15t DevTools",()=>n.stateManager.setOpen(!o.isOpen),"primary");_.classList.add("c15t-dev-tools__toggle"),_.replaceChildren(Z(c)),_.setAttribute("aria-label","Open c15t DevTools"),_.hidden=o.isOpen,_.setAttribute("aria-expanded",String(o.isOpen)),_.setAttribute("aria-controls",p),u.append(_);let w=q(c,"section","c15t-dev-tools__panel");w.id=p,w.hidden=!o.isOpen,w.setAttribute("aria-label","c15t consent developer tools");let x=q(c,"header","c15t-dev-tools__header"),k=q(c,"h2","c15t-dev-tools__title");k.setAttribute("aria-label","c15t DevTools"),k.append(Z(c),q(c,"span",void 0,"DevTools"));let A=B(c,"Close c15t DevTools",()=>{n.stateManager.setOpen(!1)});A.textContent="×",A.setAttribute("aria-label","Close c15t DevTools"),A.classList.add("c15t-dev-tools__close"),x.append(k,A),w.append(x);let S=q(c,"div","c15t-dev-tools__tabs");S.setAttribute("role","tablist"),S.setAttribute("aria-label","DevTools views"),G.forEach((e,t)=>{let n=B(c,e.label,()=>{b(e.id)});n.dataset.tab=e.id,n.id=`${l}-tab-${e.id}`,n.setAttribute("role","tab"),n.setAttribute("aria-selected",String(e.id===o.activeTab)),n.setAttribute("aria-controls",`${l}-tabpanel`),n.tabIndex=e.id===o.activeTab?0:-1,n.addEventListener("keydown",e=>{let n=null;if("ArrowRight"===e.key?n=(t+1)%G.length:"ArrowLeft"===e.key?n=(t-1+G.length)%G.length:"Home"===e.key?n=0:"End"===e.key&&(n=G.length-1),null===n)return;e.preventDefault();let o=G[n];o&&b(o.id,!0)}),S.append(n)}),w.append(S);let C=q(c,"div","c15t-dev-tools__content");if(C.id=`${l}-tabpanel`,C.setAttribute("role","tabpanel"),C.setAttribute("aria-labelledby",`${l}-tab-${o.activeTab}`),C.tabIndex=0,o.isOpen){!function(n,o,r,s,a,i,d,c,l,p){switch(r.activeTab){case"scripts":let u,v,g,m,f,h;u=N(n,"Scripts","Inspect configured scripts and their loading status."),(v=V(n,"Filter scripts",i.scriptSearch)).input.placeholder="Search by name, category, or URL",g=q(n,"div","c15t-dev-tools__script-list"),m=()=>{g.replaceChildren();let e=i.scriptSearch.toLowerCase(),t=r.scripts.filter(t=>`${t.id} ${t.src??""} ${JSON.stringify(t.category)} ${t.status}`.toLowerCase().includes(e));for(let e of(t.length||g.append(q(n,"p","c15t-dev-tools__empty",r.scripts.length?"No scripts match your search.":"No script loader is configured for this consent provider.")),t)){let t=`${e.loaderId}:${e.id}`,o=q(n,"details","c15t-dev-tools__script");o.open=i.expandedScripts.has(t),o.addEventListener("toggle",()=>{o.isConnected&&(o.open?i.expandedScripts.add(t):i.expandedScripts.delete(t))});let r=q(n,"summary","c15t-dev-tools__script-summary"),s=q(n,"span","c15t-dev-tools__script-name",e.id),a=q(n,"span","c15t-dev-tools__status",e.status[0]?.toUpperCase()+e.status.slice(1));a.dataset.status=e.status,r.append(s,a),r.dataset.focusKey=`script:${t}`;let d=q(n,"div","c15t-dev-tools__script-body");d.append(q(n,"p","c15t-dev-tools__muted",e.src??(e.callbackOnly?"Callback-only integration":"Inline script"))),d.append(U(n,{allowedToLoad:e.eligible,alwaysLoad:e.alwaysLoad,category:e.category,consentGranted:e.hasConsent,elementId:e.elementId,persistAfterConsentRevoked:e.persistAfterConsentRevoked,vendorId:e.vendorId})),e.lastEvent&&d.append(q(n,"p","c15t-dev-tools__muted",e.lastEvent.message)),"present"===e.status&&d.append(q(n,"p","c15t-dev-tools__muted","An existing element was reused. Its network load result is unknown.")),"retained"===e.status&&d.append(q(n,"p","c15t-dev-tools__muted","Consent was revoked, but this script is configured to stay on the page.")),o.append(r,d),g.append(o)}},v.input.addEventListener("input",()=>{i.scriptSearch=v.input.value,m()}),m(),u.append(v.field,g),o.append(u),f=N(n,"External resources","Scripts and iframes currently in the page. Presence does not confirm successful loading."),h=q(n,"div","c15t-dev-tools__script-list"),f.append(B(n,"Scan page",()=>{for(let e of(h.replaceChildren(),n.querySelectorAll("script[src], iframe[src]"))){let t;try{t=new URL(e.src,n.baseURI)}catch{continue}if(!["http:","https:"].includes(t.protocol)||t.origin===n.location.origin)continue;let o="SCRIPT"===e.tagName?r.scripts.find(t=>t.elementId===e.id):void 0,s=q(n,"div","c15t-dev-tools__script-body");s.append(q(n,"strong",void 0,`${e.tagName.toLowerCase()} \xb7 ${o?o.id:"Not managed by this provider"}`),q(n,"p","c15t-dev-tools__muted",t.href)),h.append(s)}h.childElementCount||h.append(q(n,"p","c15t-dev-tools__empty","No external scripts or iframes found."))}),h),o.append(f);break;case"consents":!function(e,n,o,r,s,a,i){let d=N(e,"Consent categories","Draft selections do not change permissions. Save to record the displayed choices."),{snapshot:c,draft:l}=o;if(null!==o.draftFingerprint&&o.draftFingerprint!==c.evaluationPolicy.choice.fingerprint){let t=q(e,"p","c15t-dev-tools__muted","Policy changed. Discard the draft and review the current choices before saving.");t.setAttribute("role","alert"),d.append(t)}let p=q(e,"div","c15t-dev-tools__control-list"),u=new Set(s()),v=a?.()?.preferences?.defaults;for(let n of t.filter(e=>u.has(e))){let t=F(c,l,n,v),o=q(e,"label","c15t-dev-tools__check"),s=q(e,"input");s.type="checkbox",s.setAttribute("role","switch"),s.checked=t,s.disabled="necessary"===n,s.disabled||="iab"===c.model,s.dataset.focusKey=`consent:${n}`,s.addEventListener("change",()=>{let e={};e[n]=s.checked,r.setDraft(e)}),o.append(q(e,"span",void 0,n[0]?.toUpperCase()+n.slice(1))),"necessary"===n&&o.append(q(e,"span","c15t-dev-tools__badge","Always on")),o.append(s),o.append(q(e,"span","c15t-dev-tools__muted",`Effective: ${c.effectivePermissions[n]?"allowed":"blocked"}`)),p.append(o)}if("iab"===c.model){d.append(p,q(e,"p","c15t-dev-tools__muted","Categories are derived from IAB choices. Use the IAB tab to edit and save vendors and purposes.")),n.append(d);return}let g=q(e,"div","c15t-dev-tools__actions");g.append(B(e,"Save changes",()=>{i("Saving consent…",()=>r.save(),"Consent saved.")},"primary"),B(e,"Accept all",()=>{i("Accepting displayed consents…",()=>r.save("all"),"Displayed consents accepted.")}),B(e,"Reject optional",()=>{i("Rejecting optional consents…",()=>r.save("none"),"Optional displayed consents rejected.")}));let m=B(e,"Discard draft",r.resetDraft);m.disabled=0===Object.keys(l).length,g.append(m),d.append(p,g),n.append(d),X(e,n,c)}(n,o,r,c,d,l,p);break;case"location":!function(e,t,n,o,r){let s=N(e,"Resolved location");s.append(o.location?U(e,o.location):q(e,"p","c15t-dev-tools__empty","No location has been resolved yet."));let a=N(e,"Overrides","Test how consent changes by location, language, or privacy signal."),i=q(e,"form","c15t-dev-tools__form"),d=V(e,"Country",o.overrides.country??""),c=V(e,"Region",o.overrides.region??""),l=V(e,"Language",o.overrides.language??""),p=q(e,"label","c15t-dev-tools__field");p.append(q(e,"span",void 0,"GPC"));let u=q(e,"select");for(let[t,n]of(u.dataset.focusKey="field:GPC",[["default","Use browser signal"],["true","Enabled"],["false","Disabled"]])){let o=q(e,"option",void 0,n);o.value=t,u.append(o)}u.value=void 0===o.overrides.gpc?"default":String(o.overrides.gpc),p.append(u);let v=q(e,"div","c15t-dev-tools__actions"),g=B(e,"Apply and refresh",()=>{},"primary");g.type="submit",v.append(g,B(e,"Clear overrides",()=>{n.set.overrides({country:void 0,gpc:void 0,language:void 0,region:void 0}),r("Clearing overrides…",()=>n.commands.init(),"Overrides cleared and consent data refreshed.")})),i.addEventListener("submit",e=>{e.preventDefault();let t={country:d.input.value.trim()||void 0,gpc:"default"===u.value?void 0:"true"===u.value,language:l.input.value.trim()||void 0,region:c.input.value.trim()||void 0};n.set.overrides(t),r("Applying overrides…",()=>n.commands.init(),"Overrides applied and consent data refreshed.")}),i.append(d.field,c.field,l.field,p,v),a.append(i),t.append(s,a)}(n,o,s,r.snapshot,p);break;case"policy":!function(e,t,n,o){let r=N(e,"Policy and interaction"),s=q(e,"dl","c15t-dev-tools__stats");for(let[o,a]of(s.append(K(e,"Resolution",n.resolution.status),K(e,"Model",n.model??"Unresolved"),K(e,"Configured prompt",n.policyRule.prompt),K(e,"Required prompt",n.promptRequirement.kind),K(e,"Prompt reason","reason"in n.promptRequirement?n.promptRequirement.reason:"Not required"),K(e,"Active UI",n.activeUI??"None"),K(e,"Revision",String(n.revision)),K(e,"Explicit choice",n.explicitChoice?"Recorded":"Absent")),r.append(s),t.append(r),[["Explicit choice receipts",n.explicitChoice],["Effective permissions",n.effectivePermissions],["Restrictions",n.restrictions],["Local notice dismissal",n.noticeDismissal],["Privacy signals",n.privacySignals],["Standing privacy directives",n.optOutDirectives],["Policy resolution",n.resolution],["Active policy rule",n.policyRule],["Action constraints and persistent rights",{actions:n.policyRule.actions,rights:n.policyRule.rights}],["Fingerprints and validity",n.evaluationPolicy],["Evaluation clock",{evaluatedAt:n.evaluatedAt,nextDeadline:n.nextDeadline}],["Subject",n.subject]])){let n=N(e,o);n.append(U(e,a)),t.append(n)}let a=o?.(),i=N(e,"Presentation resolution",a?"Resolved from supplied host options. This does not verify the rendered controls.":"Resolved defaults only. Host presentation was not supplied; rendered controls are not verified.");i.append(U(e,{preferences:$({policy:n.policyRule,presentation:a,surface:"preferences"}),prompt:$({policy:n.policyRule,presentation:a,surface:"prompt"}),source:a?"host-options":"defaults"})),t.append(i)}(n,o,r.snapshot,l);break;case"iab":((t,n,o,r,s)=>{let a=o.getSnapshot(),{iab:i}=a;if(!i?.enabled||!i.gvl||"iab"!==a.model)return n.append(N(t,"IAB consent",i?.enabled?"IAB controls are available when the current policy uses IAB and its vendor list has loaded.":"IAB is not enabled for this provider. Configure IAB and refresh consent data to inspect it."));let d=e.get(o)?.controls,c=N(t,"IAB consent","Edits are unsaved selections. Save IAB consent to generate a fresh TC string and apply these choices to script access.");d||c.append(q(t,"p","c15t-dev-tools__muted","Read-only: waiting for this provider’s IAB module."));let l=q(t,"div","c15t-dev-tools__actions"),p=B(t,"Save IAB consent",()=>{d&&s("Saving IAB consent…",()=>d.save(),"IAB consent saved.")},"primary"),u=B(t,"Accept all IAB",()=>d?.acceptAll()),v=B(t,"Reject all IAB",()=>d?.rejectAll());for(let e of[p,u,v])e.disabled=!d;l.append(p,u,v),c.append(l),n.append(c);let g=V(t,"Search IAB names or IDs",r.search);g.input.type="search";let m=q(t,"label","c15t-dev-tools__field"),f=q(t,"select");for(let[e,n]of(f.dataset.focusKey="iab:group",[["vendors","Vendors"],["purposes","Purposes"],["features","Special features"]])){let o=q(t,"option",void 0,n);o.value=e,f.append(o)}f.value=r.group,m.append(q(t,"span",void 0,"IAB view"),f);let h=q(t,"div","c15t-dev-tools__iab-list"),b=N(t,"Choices");b.append(m,g.field,h),n.append(b);let y=[...Object.values(i.gvl.vendors).map(e=>({...e,custom:!1})),...i.customVendors.map(e=>({...e,custom:!0}))],_=()=>{h.replaceChildren();let e=r.search.trim().toLowerCase(),n=("vendors"===r.group?y.map(e=>({consent:e.purposes.length?i.vendorConsents[String(e.id)]??!1:void 0,custom:e.custom,id:e.id,legitimateInterest:e.legIntPurposes?.length?i.vendorLegitimateInterests[String(e.id)]??!1:void 0,name:e.name,setConsent:(t,n)=>t.setVendorConsent(e.id,n),setLegitimateInterest:(t,n)=>t.setVendorLegitimateInterest(e.id,n)})):"features"===r.group?Object.values(i.gvl?.specialFeatures??{}).map(e=>({consent:i.specialFeatureOptIns[e.id]??!1,id:e.id,name:e.name,setConsent:(t,n)=>t.setSpecialFeatureOptIn(e.id,n)})):Object.values(i.gvl?.purposes??{}).map(e=>({consent:i.purposeConsents[e.id]??!1,id:e.id,legitimateInterest:y.some(t=>t.legIntPurposes?.includes(e.id))?i.purposeLegitimateInterests[e.id]??!1:void 0,name:e.name,setConsent:(t,n)=>t.setPurposeConsent(e.id,n),setLegitimateInterest:(t,n)=>t.setPurposeLegitimateInterest(e.id,n)}))).filter(t=>`${t.id} ${t.name} ${t.custom?"custom":""}`.toLowerCase().includes(e));r.page=Math.max(0,Math.min(r.page,Math.ceil(n.length/20)-1));let o=20*r.page;if(!n.length)return void h.append(q(t,"p","c15t-dev-tools__empty",e?"No IAB choices match your search.":"No choices are configured in this group."));for(let e of(h.append(q(t,"p","c15t-dev-tools__muted",`${n.filter(e=>e.consent).length} of ${n.length} matching choices enabled`)),n.slice(o,o+20))){let n=q(t,"div","c15t-dev-tools__iab-choice");n.append(q(t,"strong",void 0,`${e.name} \xb7 ${e.id}`)),e.custom&&n.append(q(t,"span","c15t-dev-tools__badge","Custom vendor"));let o="features"===r.group?"Opt in":"Consent";void 0!==e.consent&&n.append(H(t,`${o}: ${e.name}`,`iab:${r.group}:${e.id}:consent`,e.consent,!d,t=>{d&&e.setConsent(d,t)})),void 0!==e.legitimateInterest&&n.append(H(t,`Legitimate interest: ${e.name}`,`iab:${r.group}:${e.id}:li`,e.legitimateInterest,!d,t=>{d&&e.setLegitimateInterest?.(d,t)})),h.append(n)}if(n.length>20){let e=q(t,"div","c15t-dev-tools__actions"),s=B(t,"Previous IAB page",()=>{r.page-=1,_()}),a=B(t,"Next IAB page",()=>{r.page+=1,_()});s.disabled=0===r.page,a.disabled=o+20>=n.length,e.append(s,q(t,"span",void 0,`Page ${r.page+1} of ${Math.ceil(n.length/20)}`),a),h.append(e)}};g.input.addEventListener("input",()=>{r.search=g.input.value,r.page=0,_()}),f.addEventListener("change",()=>{("vendors"===f.value||"purposes"===f.value||"features"===f.value)&&(r.group=f.value),r.page=0,_()}),_();let w=N(t,"TC string");if(w.append(q(t,"p","c15t-dev-tools__muted","Last generated string. Unsaved edits are not reflected here.")),i.tcString){let{tcString:e}=i;w.append(U(t,e),B(t,"Copy TC string",()=>{s("Copying TC string…",async()=>{let n=t.defaultView?.navigator.clipboard;if(!n)throw Error("Clipboard is unavailable in this browser. Select and copy the TC string.");await n.writeText(e)},"TC string copied.")}))}else w.append(q(t,"p","c15t-dev-tools__empty","No TC string generated yet. Save IAB consent to generate one."));let x=q(t,"details","c15t-dev-tools__script"),k=q(t,"div"),A=()=>{k.replaceChildren(...x.open?[U(t,i)]:[])};x.open=r.rawOpen,x.addEventListener("toggle",()=>{x.isConnected&&(r.rawOpen=x.open,A())}),x.append(q(t,"summary","c15t-dev-tools__script-summary","Raw IAB state"),k),A(),n.append(w,x)})(n,o,s,i.iab,p);break;case"events":!function(e,t,n,o){let r=N(e,"Consent events");if(r.append(B(e,"Clear events",o,"danger")),0===n.events.length){r.append(q(e,"p","c15t-dev-tools__empty","Consent changes and requests will appear here as they happen.")),t.append(r);return}let s=q(e,"ol","c15t-dev-tools__event-list");for(let t of n.events){let n=q(e,"li","c15t-dev-tools__event"),o=q(e,"div","c15t-dev-tools__event-header");o.append(q(e,"code",void 0,t.type),q(e,"time",void 0,new Date(t.timestamp).toLocaleTimeString())),n.append(o,q(e,"p",void 0,t.message)),t.data&&n.append(U(e,t.data)),s.append(n)}r.append(s),t.append(r)}(n,o,r,a);break;case"actions":let b,y;b=N(n,"Test consent flows","Preview the banner and preferences, or refresh consent data."),(y=q(n,"div","c15t-dev-tools__action-grid")).append(B(n,"Refresh consent data",()=>{p("Refreshing consent data…",()=>s.commands.init(),"Consent data refreshed.")},"primary"),B(n,"Show banner",()=>{s.set.activeUI("banner")}),B(n,"Open preferences",()=>{s.set.activeUI("dialog")}),B(n,"Hide consent UI",()=>{s.set.activeUI("none")})),"notice"===s.getSnapshot().promptRequirement.kind&&y.append(B(n,"Dismiss local notice",()=>{p("Dismissing notice…",c.dismissNotice,"Local notice dismissed.")})),c.clearRecords&&y.append(B(n,"Clear stored records",()=>{p("Clearing records…",()=>Promise.resolve(c.clearRecords?.()),"Stored records cleared.")},"danger")),b.append(y),o.append(b)}}(c,C,o,n.kernel,n.stateManager.clearEvents,g,n.getConsentCategories,n.actions,n.getPresentation,f);var I=a;if(I?.status==="pending")for(let e of(C.setAttribute("aria-busy","true"),C.querySelectorAll("button, input, select")))e.disabled=!0;if(I){let e=q(c,"p","c15t-dev-tools__feedback",I.message);e.setAttribute("role","error"===I.status?"alert":"status"),e.dataset.status=I.status,w.append(e)}}for(let e of(w.append(C),u.append(w),u.querySelectorAll(".c15t-dev-tools__field input, .c15t-dev-tools__field select"))){let t=e.dataset.focusKey?d.get(e.dataset.focusKey):void 0;void 0!==t&&(e.value=t)}if(C.scrollTop=i,s=o,o.isOpen!==v)h(o.isOpen?`[data-tab="${o.activeTab}"]`:".c15t-dev-tools__toggle"),v=o.isOpen;else{let e,t;y&&(e=()=>{for(let e of u.querySelectorAll("[data-focus-key]"))if(e.dataset.focusKey===y)return void e.focus({preventScroll:!0})},(t=c.defaultView)?t.requestAnimationFrame(e):e())}}(o)}let _=n.stateManager.subscribe(y),w=(r=n.kernel,(i=e.get(r))||(i={listeners:new Set},e.set(r,i)),(d=i).listeners.add(y),()=>d.listeners.delete(y)),x=n.container??c.body,k=!1===n.shadow||"function"!=typeof x.attachShadow?null:q(c,"div","c15t-dev-tools-host");if(k){k.dataset.c15tDevToolsHost=l;let e=k.attachShadow({mode:"open"});e.append(q(c,"style",void 0,J)),e.append(u),x.append(k)}else{if(!c.getElementById(Q)){let e=q(c,"style",void 0,J);e.id=Q,c.head.append(e)}x.append(u)}return y(),{destroy(){m=!0,w(),_(),u.remove(),k?.remove()},element:u}}({actions:x,container:i,getConsentCategories:g,getPresentation:n.getPresentation,kernel:a,shadow:d,stateManager:m});return{actions:x,clearEvents:m.clearEvents,close:()=>m.setOpen(!1),destroy(){if(!f){for(let e of(f=!0,_(),y(),w))e();k.destroy(),m.destroy()}},element:k.element,getState:m.getState,open:()=>m.setOpen(!0),setActiveTab:e=>m.setActiveTab(e),subscribe:m.subscribe,toggle:()=>{m.setOpen(!m.getState().isOpen)}}}({...o,clearRecords:o.clearRecords??n.runtime.clearRecords,getConsentCategories:()=>n.consentCategories,getPresentation:o.getPresentation??(()=>n.options.presentation),kernel:n.kernel})}(n,et),r=window.c15t;r&&!Array.isArray(r)&&(r.devtools=o)},eo=window.c15t;eo&&!Array.isArray(eo)?eo.onInit(en):window.c15t=[...eo??[],["onInit",en]]})();