.cw-lm-banner,
.cw-lm-open {
  box-sizing: border-box;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #18312c;
}

.cw-lm-banner {
  position: fixed;
  z-index: 2147483000;
  inset: auto 16px max(16px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 24px;
  max-width: 1120px;
  margin-inline: auto;
  padding: 22px;
  border: 1px solid #6e8980;
  border-radius: 12px;
  background: #fffefa;
  box-shadow: 0 5px 28px #18312c26;
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.cw-lm-banner[hidden] { display: none !important; }
.cw-lm-close[hidden] { display: none !important; }
.cw-lm-content { flex: 1 1 440px; min-width: 0; }
.cw-lm-title { margin: 0 0 7px; font-size: 17px; font-weight: 650; line-height: 1.35; }
.cw-lm-description { margin: 0 0 8px; }
.cw-lm-privacy { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.cw-lm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; flex: 0 1 350px; }

.cw-lm-choice,
.cw-lm-open,
.cw-lm-close {
  appearance: none;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
}

.cw-lm-choice {
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid #254b40;
  border-radius: 7px;
  background: #254b40;
  color: #fff;
  text-align: center;
}

.cw-lm-choice:hover { background: #17382e; }
.cw-lm-close { grid-column: 1 / -1; padding: 8px; border: 0; background: transparent; color: #254b40; text-decoration: underline; }

.cw-lm-open {
  position: fixed;
  left: 12px;
  bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 2147482999;
  max-width: calc(100vw - 24px);
  padding: 9px 13px;
  min-height: 44px;
  border: 1px solid #6e8980;
  border-radius: 7px;
  background: #fffefa;
  box-shadow: 0 2px 10px #18312c1a;
  color: #18312c;
  font-size: 12px;
}

.cw-lm-choice:focus-visible,
.cw-lm-open:focus-visible,
.cw-lm-close:focus-visible,
.cw-lm-privacy:focus-visible,
.cw-lm-title:focus-visible {
  outline: 3px solid #075bc5;
  outline-offset: 4px;
}

@media (max-width: 700px) {
  .cw-lm-banner { inset-inline: 10px; bottom: max(10px, env(safe-area-inset-bottom)); flex-direction: column; align-items: stretch; gap: 15px; padding: 18px; }
  .cw-lm-content,
  .cw-lm-actions { flex-basis: auto; }
  .cw-lm-actions { grid-template-columns: 1fr 1fr; }
  .cw-lm-open { max-width: min(195px, calc(100vw - 110px)); }
}

@media (forced-colors: active) {
  .cw-lm-banner,
  .cw-lm-choice,
  .cw-lm-open { border: 1px solid CanvasText; }
}
