/* Non-modal Wafly origin preference. Presentation only; optional collection
   stays off until a real choice. Both actions remain equally accessible. */
#wafly-origin-preferences {
  --origin-bg: #ffffff;
  --origin-fg: #263b2e;
  --origin-muted: #4d6255;
  --origin-line: #cfddd3;
  --origin-accent: #23734d;
  --origin-on-accent: #ffffff;
  position: fixed;
  z-index: 45;
  right: 20px;
  bottom: calc(16px + env(safe-area-inset-bottom));
  width: min(440px, calc(100% - 32px));
  max-height: calc(100dvh - 220px);
  overflow-y: auto;
  overscroll-behavior: contain;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: 'title title' 'intro intro' 'deny allow' 'details details' 'privacy privacy';
  gap: 10px;
  padding: 20px;
  color: var(--origin-fg);
  background: var(--origin-bg);
  border: 1px solid var(--origin-line);
  border-radius: 18px;
  box-shadow: 0 12px 48px rgba(17, 50, 30, .18);
  color-scheme: light;
}
html.dark #wafly-origin-preferences {
  --origin-bg: #18271e;
  --origin-fg: #e0eee4;
  --origin-muted: #b2c8b9;
  --origin-line: #365441;
  --origin-accent: #63c68e;
  --origin-on-accent: #102419;
  box-shadow: 0 12px 48px rgba(0, 0, 0, .4);
  color-scheme: dark;
}
#wafly-origin-preferences[hidden] { display: none; }
#wafly-origin-preferences,
#wafly-origin-preferences * { box-sizing: border-box; }
#wafly-origin-preferences > strong {
  grid-area: title;
  font: 650 16px/1.4 system-ui, sans-serif;
  letter-spacing: -.01em;
  margin: 0;
  color: var(--origin-fg);
}
#wafly-origin-preferences p {
  font: inherit;
  color: var(--origin-muted);
  max-width: none;
  padding: 0;
  margin: 0;
}
#wafly-origin-preferences > [data-origin-part='intro'] { grid-area: intro; }
#wafly-origin-preferences > details {
  grid-area: details;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  min-width: 0;
}
#wafly-origin-preferences > details > summary {
  font: 500 12px/1.5 system-ui, sans-serif;
  color: var(--origin-accent);
  cursor: pointer;
  margin: 0;
  padding: 3px 0;
}
#wafly-origin-preferences > details > p { padding-top: 8px; }
#wafly-origin-preferences > a {
  grid-area: privacy;
  justify-self: start;
  color: var(--origin-accent);
  font: 500 12px/1.5 system-ui, sans-serif;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin: 0;
}
#wafly-origin-preferences > button {
  appearance: none;
  font: 600 13px/1.4 system-ui, sans-serif;
  color: var(--origin-on-accent);
  background: var(--origin-accent);
  border: 1px solid var(--origin-accent);
  border-radius: 10px;
  min-height: 44px;
  height: 100%;
  padding: 10px 12px;
  margin: 0;
  cursor: pointer;
  white-space: normal;
  text-align: center;
}
#wafly-origin-preferences > button:hover { filter: brightness(.94); }
#wafly-origin-preferences :is(button, a, summary):focus-visible {
  outline: 2px solid var(--origin-accent);
  outline-offset: 3px;
}
#wafly-origin-preferences > [data-origin-part='allow'] { grid-area: allow; }
#wafly-origin-preferences > [data-origin-part='deny'] { grid-area: deny; }
#wafly-origin-preferences > [data-origin-part='blocked'] { grid-area: blocked; }
#wafly-origin-preferences[data-origin-blocked='true'] {
  grid-template-areas: 'title title' 'intro intro' 'blocked blocked' 'deny deny' 'details details' 'privacy privacy';
}
#wafly-origin-preferences[data-origin-state='compact'] {
  grid-template-columns: auto;
  grid-template-areas: 'preferences';
  width: auto;
  max-width: calc(100% - 32px);
  padding: 0;
  border: 0;
  border-radius: 10px;
}
#wafly-origin-preferences[data-origin-state='compact'] > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
#wafly-origin-preferences > [data-origin-part='preferences'] { grid-area: preferences; }
html.wafly-origin-notice-visible body { padding-bottom: var(--wafly-origin-bottom-space, 0px); }
.mobile-cta { bottom: calc(10px + env(safe-area-inset-bottom) + var(--wafly-origin-bottom-space, 0px)); }
@media (max-width: 640px) {
  #wafly-origin-preferences {
    position: sticky;
    top: 0;
    right: auto;
    bottom: auto;
    margin: 12px;
    width: calc(100% - 24px);
    padding: 16px;
    gap: 9px;
  }
  #wafly-origin-preferences[data-origin-state='compact'] {
    position: fixed;
    top: auto;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    margin: 0;
    width: auto;
    padding: 0;
  }
  html.wafly-origin-notice-visible body { padding-bottom: calc(76px + env(safe-area-inset-bottom) + var(--wafly-origin-bottom-space, 0px)); }
}
