.comy-consent {
  position: fixed;
  inset-inline: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 10000;
  pointer-events: none;
  color: #18243f;
  font-family: inherit;
}
.comy-consent > * { pointer-events: auto; }
.comy-consent-panel {
  width: min(100%, 480px);
  max-height: min(80vh, 560px);
  margin-inline-start: auto;
  padding: 20px;
  overflow: auto;
  border: 1px solid #ded5e8;
  border-radius: 20px;
  background: #fffaf8;
  box-shadow: 0 16px 45px #2c204e30;
}
.comy-consent-banner {
  width: min(100%, 840px);
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  column-gap: 14px;
  align-items: center;
  margin-inline: auto;
}
.comy-consent-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  grid-row: span 2;
  border-radius: 14px;
  background: #f3edff;
  color: #7041c8;
  font-size: 25px;
}
.comy-consent-panel h2 { margin: 0; font-size: 18px; line-height: 1.4; }
.comy-consent-panel p { margin: 8px 0 16px; color: #45516b; font-size: 14px; line-height: 1.6; }
.comy-consent-banner p { grid-column: 2; margin: 4px 0 0; }
.comy-consent-close {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #667085;
  font: inherit;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.comy-consent-close:hover { background: #f2edf5; color: #18243f; }
.comy-consent-option { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; cursor: pointer; }
.comy-consent-option input { width: 20px; height: 20px; accent-color: #7041c8; }
.comy-consent-option:has(input:disabled) { opacity: .65; }
.comy-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.comy-consent-banner .comy-consent-actions { grid-column: 3; grid-row: 2; flex-wrap: nowrap; margin: 0; }
.comy-consent-actions button {
  min-height: 44px;
  padding: 8px 13px;
  border: 1px solid #b5a9c5;
  border-radius: 12px;
  background: #fff;
  color: #18243f;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.comy-consent-actions button:hover { background: #f3edff; }
.comy-consent-actions button:nth-child(2) { border-color: #7041c8; background: #7041c8; color: #fff; }
.comy-consent-actions button:nth-child(2):hover { background: #5d32ad; }
.comy-consent-footer-launcher {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 0;
  padding: 8px 12px;
  border: 1px solid #ded5e8;
  border-radius: 12px;
  background: #fff;
  color: #513f74;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.comy-consent button:focus-visible,
.comy-consent input:focus-visible,
.comy-consent-footer-launcher:focus-visible { outline: 3px solid #7041c8; outline-offset: 3px; }
@media (max-width: 700px) {
  .comy-consent-banner { grid-template-columns: 40px minmax(0, 1fr) 44px; }
  .comy-consent-banner p { grid-column: 2 / -1; }
  .comy-consent-banner .comy-consent-actions { grid-column: 1 / -1; grid-row: 3; margin-top: 12px; }
  .comy-consent-banner .comy-consent-actions button { flex: 1; }
}
@media (max-width: 520px) {
  .comy-consent { inset-inline: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
  .comy-consent-panel { max-height: min(55vh, 460px); padding: 16px; }
  .comy-consent-banner { max-height: min(40vh, 240px); }
  .comy-consent-panel p { font-size: 13px; }
  .comy-consent-actions { position: sticky; bottom: -16px; z-index: 1; padding-top: 8px; background: #fffaf8; }
  .comy-consent-banner .comy-consent-actions { position: static; padding-top: 0; }
  .comy-consent-actions button { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .comy-consent * { scroll-behavior: auto !important; } }
