/* Consent banner. Accept and Reject share one style on purpose: regulators expect refusing
   to be as easy and as visible as accepting. Override the custom properties to restyle. */

.dshc {
  --dshc-bg: #151820;
  --dshc-text: #d6dae3;
  --dshc-title: #ffffff;
  --dshc-border: rgba(255, 255, 255, 0.12);
  --dshc-btn-bg: #1f2430;
  --dshc-btn-border: rgba(255, 255, 255, 0.22);
  --dshc-accent: #10b981;
  --dshc-accent-text: #03140d;
  --dshc-link: #5df0a8;

  position: fixed;
  bottom: 16px;
  left: 16px;
  z-index: 99999;
  box-sizing: border-box;
  width: min(420px, calc(100% - 32px));
  padding: 20px;
  border: 1px solid var(--dshc-border);
  border-radius: 14px;
  background: var(--dshc-bg);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
  color: var(--dshc-text);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.55;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.dshc[hidden] {
  display: none;
}

.dshc.is-visible {
  opacity: 1;
  transform: none;
}

.dshc__title {
  margin: 0 0 6px;
  color: var(--dshc-title);
  font-size: 15px;
  font-weight: 700;
}

.dshc__text {
  margin: 0;
}

.dshc__link {
  color: var(--dshc-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dshc__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
}

.dshc__btn {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--dshc-btn-border);
  border-radius: 8px;
  background: var(--dshc-btn-bg);
  color: var(--dshc-title);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.dshc__btn:hover {
  border-color: var(--dshc-accent);
  background: var(--dshc-accent);
  color: var(--dshc-accent-text);
}

.dshc__btn:focus-visible,
.dshc__link:focus-visible {
  outline: 2px solid var(--dshc-link);
  outline-offset: 2px;
}

@media (max-width: 600px) {
  .dshc {
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    border-bottom: 0;
    border-radius: 14px 14px 0 0;
  }
}

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