:root {
  --dgcc-primary: #2563eb;
  --dgcc-text: #17202a;
  --dgcc-bg: #fff;
}

.dgcc[hidden], .dgcc [hidden] { display: none !important; }
.dgcc { position: fixed; inset: 0; z-index: 999999; font-family: inherit; color: var(--dgcc-text); }
.dgcc::before { content: ""; position: absolute; inset: 0; background: rgba(23,32,42,.42); }
.dgcc__banner, .dgcc__panel { position: absolute; background: var(--dgcc-bg); box-shadow: 0 18px 60px rgba(0,0,0,.2); }
.dgcc__banner { left: 1rem; right: 1rem; bottom: 1rem; max-width: 1180px; margin-inline: auto; padding: 1.25rem; border-radius: .9rem; display: grid; grid-template-columns: 1fr auto; gap: 1.25rem; align-items: center; }
.dgcc h2 { margin: 0 0 .45rem; font-size: 1.25rem; color: inherit; }
.dgcc p { margin: 0; line-height: 1.55; }
.dgcc__links { margin-top: .6rem !important; font-size: .9rem; }
.dgcc a { color: var(--dgcc-primary); }
.dgcc__actions, .dgcc__panel-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.dgcc__button, .dgcc-open-settings { appearance: none; border: 2px solid var(--dgcc-primary); border-radius: .55rem; padding: .68rem 1rem; font: inherit; font-weight: 700; cursor: pointer; }
.dgcc__button--primary { background: var(--dgcc-primary); color: #fff; }
.dgcc__button--secondary { background: transparent; color: var(--dgcc-text); }
.dgcc__button:focus-visible, .dgcc__close:focus-visible, .dgcc input:focus-visible, .dgcc-open-settings:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.dgcc__panel { width: min(680px, calc(100% - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; left: 50%; top: 50%; transform: translate(-50%,-50%); padding: 1.35rem; border-radius: .9rem; }
.dgcc__panel-header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.dgcc__close { border: 0; background: transparent; font-size: 2rem; line-height: 1; cursor: pointer; color: inherit; }
.dgcc__category { position: relative; display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-top: 1px solid rgba(23,32,42,.14); padding: 1rem 0; }
.dgcc__category strong, .dgcc__category span span { display: block; }
.dgcc__category span span, .dgcc__category p { margin-top: .25rem; font-size: .92rem; }
.dgcc__category input { position: absolute; opacity: 0; pointer-events: none; }
.dgcc__switch { flex: 0 0 48px; height: 26px; border-radius: 99px; background: #757575; position: relative; cursor: pointer; }
.dgcc__switch::after { content: ""; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; border-radius: 50%; background: #fff; transition: transform .18s ease; }
.dgcc__category input:checked + .dgcc__switch { background: var(--dgcc-primary); }
.dgcc__category input:checked + .dgcc__switch::after { transform: translateX(22px); }
.dgcc__always { font-size: .85rem; font-weight: 700; white-space: nowrap; }
.dgcc__panel-actions { justify-content: flex-end; margin-top: 1rem; }
.dgcc-open-settings { background: transparent; color: inherit; padding: .45rem .7rem; }

@media (max-width: 760px) {
  .dgcc__banner { grid-template-columns: 1fr; }
  .dgcc__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dgcc__actions .dgcc__button--primary { grid-column: 1 / -1; }
  .dgcc__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .dgcc__switch::after { transition: none; }
}
