/* Coffee Buddy consent manager — v0.11.171 */
.cb-consent-banner[hidden],
.cb-consent-dialog:not([open]) { display: none !important; }

.cb-consent-banner,
.cb-consent-dialog,
.cb-consent-dialog * { box-sizing: border-box; }

.cb-consent-banner {
  position: fixed;
  z-index: 2147483000;
  right: max(14px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  left: max(14px, env(safe-area-inset-left));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  width: min(1040px, calc(100% - 28px));
  margin: 0 auto;
  padding: 18px 20px;
  border: 1px solid #dac8b7;
  border-radius: 22px;
  background: rgba(255, 252, 246, .98);
  color: #2f2018;
  box-shadow: 0 24px 70px rgba(53, 29, 17, .24);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
  backdrop-filter: blur(12px);
}

.cb-consent-copy { min-width: 0; }
.cb-consent-kicker {
  margin: 0 0 5px;
  color: #8b5528;
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cb-consent-copy > strong {
  display: block;
  color: #155a36;
  font-size: 1.05rem;
  line-height: 1.25;
}
.cb-consent-copy > p:last-child {
  max-width: 76ch;
  margin: 7px 0 0;
  color: #61554d;
  font-size: .82rem;
}
.cb-consent-copy a,
.cb-consent-dialog a { color: #155a36; font-weight: 800; }

.cb-consent-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 8px;
  width: min(390px, 42vw);
}

.cb-consent-choice,
.cb-consent-save {
  min-height: 48px;
  padding: 11px 15px;
  border: 1px solid #155a36;
  border-radius: 999px;
  font: 850 .82rem/1.25 Inter, ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
}
.cb-consent-choice.is-primary,
.cb-consent-save { background: #155a36; color: #fff; box-shadow: 0 8px 20px rgba(21,90,54,.16); }
.cb-consent-choice.is-secondary { border-color: #8e6b50; background: #fffaf2; color: #5d402c; }
.cb-consent-choice:hover,
.cb-consent-save:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(21, 90, 54, .14); }
.cb-consent-choice.is-secondary:hover { box-shadow: 0 8px 18px rgba(93,64,44,.12); }
.cb-consent-details {
  grid-column: 1 / -1;
  border: 0;
  background: transparent;
  color: #5c4638;
  font: 750 .76rem/1.2 Inter, ui-sans-serif, system-ui, sans-serif;
  text-decoration: underline;
  cursor: pointer;
}

.cb-consent-dialog {
  width: min(680px, calc(100% - 24px));
  max-height: min(760px, calc(100vh - 24px));
  padding: 0;
  border: 0;
  border-radius: 24px;
  background: transparent;
  color: #2f2018;
}
.cb-consent-dialog::backdrop { background: rgba(34, 24, 18, .55); backdrop-filter: blur(4px); }
.cb-consent-dialog-card {
  position: relative;
  overflow: auto;
  max-height: min(760px, calc(100vh - 24px));
  padding: clamp(22px, 5vw, 38px);
  border: 1px solid #dac8b7;
  border-radius: 24px;
  background: #fffaf2;
  box-shadow: 0 28px 90px rgba(38, 22, 14, .30);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cb-consent-dialog-card > h2 { margin: 0; color: #155a36; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.08; }
.cb-consent-dialog-card > p { color: #66584e; line-height: 1.55; }
.cb-consent-dialog-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #d9c9ba;
  border-radius: 50%;
  background: #fff;
  color: #4f3424;
  font-size: 1.45rem;
  cursor: pointer;
}
.cb-consent-category {
  margin: 14px 0 0;
  padding: 16px;
  border: 1px solid #d8c8b9;
  border-radius: 17px;
  background: #fff;
}
.cb-consent-category.is-required { background: #f2f8ef; border-color: #bfd4bb; }
.cb-consent-category > div { display: flex; justify-content: space-between; gap: 15px; align-items: center; }
.cb-consent-category strong,
.cb-consent-category legend { color: #2e221a; font-weight: 900; }
.cb-consent-category span { color: #155a36; font-size: .78rem; font-weight: 900; }
.cb-consent-category p { margin: 8px 0 0; color: #65584f; font-size: .84rem; line-height: 1.5; }
.cb-consent-category label { display: flex; gap: 9px; align-items: center; margin-top: 12px; color: #3f3026; font-weight: 750; }
.cb-consent-category input { width: 18px; height: 18px; accent-color: #155a36; }
.cb-consent-dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 18px; }
.cb-consent-status { min-height: 1.4em; margin: 12px 0 0; color: #155a36 !important; font-size: .82rem; font-weight: 750; }

.cb-consent-settings-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.cb-consent-theme-launcher {
  position: fixed;
  z-index: 2147482900;
  left: max(14px, env(safe-area-inset-left));
  bottom: max(14px, env(safe-area-inset-bottom));
}
.cb-consent-theme-launcher .cb-consent-theme-button {
  padding: 8px 12px;
  border: 1px solid #d4c2b1;
  border-radius: 999px;
  background: rgba(255, 250, 242, .94);
  color: #5c4638;
  font: 750 .74rem/1.2 Inter, ui-sans-serif, system-ui, sans-serif;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(53, 29, 17, .14);
  backdrop-filter: blur(8px);
}

@media (max-width: 760px) {
  .cb-consent-banner { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
  .cb-consent-actions { width: 100%; }
}

@media (max-width: 430px) {
  .cb-consent-actions { grid-template-columns: 1fr; }
  .cb-consent-details { grid-column: auto; }
  .cb-consent-dialog-actions { align-items: stretch; flex-direction: column; }
  .cb-consent-dialog-actions > * { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .cb-consent-choice,
  .cb-consent-save { transition: none; }
}
