.qshield-consent,
.qshield-consent * {
  box-sizing: border-box;
}

.qshield-consent {
  position: fixed;
  z-index: 2147483000;
  inset: auto 0 0;
  pointer-events: none;
  color: hsl(var(--foreground, 220 25% 10%));
  font-family: var(
    --font-sans,
    "IBM Plex Sans",
    "Inter",
    "Helvetica Neue",
    Arial,
    sans-serif
  );
  font-size: 1rem;
  line-height: 1.5;
}

.qshield-consent button,
.qshield-consent a,
.qshield-consent__panel {
  pointer-events: auto;
}

.qshield-consent__panel {
  width: min(calc(100% - 2rem), 40rem);
  max-height: calc(100vh - 2rem);
  margin: 0 auto 1rem;
  padding: clamp(1rem, 4vw, 1.5rem);
  overflow: auto;
  border: 1px solid hsl(var(--border, 216 12% 82%));
  border-radius: var(--radius, 0.75rem);
  background: hsl(var(--card, 0 0% 100%));
  color: hsl(var(--card-foreground, 220 25% 10%));
  box-shadow: 0 1.25rem 3.5rem hsl(220 25% 10% / 0.2);
}

.qshield-consent__panel[hidden],
.qshield-consent__settings[hidden] {
  display: none;
}

.qshield-consent__title {
  margin: 0;
  color: hsl(var(--foreground, 220 25% 10%));
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  font-weight: 720;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.qshield-consent__body,
.qshield-consent__details,
.qshield-consent__status {
  margin: 0.7rem 0 0;
}

.qshield-consent__details,
.qshield-consent__status {
  color: hsl(var(--muted-foreground, 216 10% 38%));
  font-size: 0.91rem;
}

.qshield-consent__status {
  padding: 0.7rem 0.8rem;
  border: 1px solid hsl(var(--border, 216 12% 82%));
  border-radius: calc(var(--radius, 0.75rem) - 0.2rem);
  background: hsl(var(--muted, 216 12% 94%));
}

.qshield-consent__policy {
  min-height: 2.75rem;
  margin-top: 0.35rem;
  display: inline-flex;
  align-items: center;
  color: hsl(var(--primary, 172 66% 37%));
  font-size: 0.91rem;
  font-weight: 650;
  text-underline-offset: 0.18em;
}

.qshield-consent__actions {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}

.qshield-consent button {
  min-width: 8rem;
  min-height: 2.75rem;
  padding: 0.65rem 1rem;
  border: 1px solid hsl(var(--border, 216 12% 82%));
  border-radius: calc(var(--radius, 0.75rem) - 0.2rem);
  background: hsl(var(--background, 216 20% 97%));
  color: hsl(var(--foreground, 220 25% 10%));
  font: inherit;
  font-weight: 680;
  cursor: pointer;
}

.qshield-consent button:hover {
  border-color: hsl(var(--primary, 172 66% 37%));
}

.qshield-consent button:focus-visible,
.qshield-consent a:focus-visible,
.qshield-consent__title:focus-visible {
  outline: 3px solid hsl(var(--ring, 172 66% 37%));
  outline-offset: 3px;
}

.qshield-consent__allow {
  border-color: hsl(var(--primary, 172 66% 37%)) !important;
  background: hsl(var(--primary, 172 66% 37%)) !important;
  color: hsl(var(--primary-foreground, 0 0% 99%)) !important;
}

.qshield-consent__allow:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.qshield-consent__settings {
  min-width: 0 !important;
  margin: 0 0 1rem 1rem;
  border-color: hsl(var(--border, 216 12% 82%)) !important;
  background: hsl(var(--card, 0 0% 100%)) !important;
  box-shadow: 0 0.45rem 1.5rem hsl(220 25% 10% / 0.16);
  color: hsl(var(--card-foreground, 220 25% 10%)) !important;
  font-size: 0.88rem !important;
}

@media (max-width: 29rem) {
  .qshield-consent__panel {
    width: calc(100% - 1rem);
    margin-bottom: 0.5rem;
    padding: 1rem;
  }

  .qshield-consent__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .qshield-consent button {
    width: 100%;
  }

  .qshield-consent__settings {
    width: auto;
    max-width: calc(100% - 1rem);
    margin: 0 0 0.5rem 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .qshield-consent *,
  .qshield-consent *::before,
  .qshield-consent *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
