.ecct-banner, .ecct-dialog, .ecct-reopen {
    box-sizing: border-box;
    font-family: inherit;
    color: #f8f5ef;
    background: #111225;
    border: 1px solid #d995b9;
}
.ecct-banner *, .ecct-dialog * { box-sizing: border-box; }
body.ecct-dialog-open { overflow: hidden !important; }
.ecct-banner[hidden], .ecct-dialog[hidden], .ecct-banner [hidden], .ecct-dialog [hidden] { display: none !important; }
.ecct-banner {
    position: fixed;
    z-index: 100000;
    inset: auto 12px 12px;
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    max-width: 760px;
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overflow: hidden;
    margin-inline: auto;
    padding: 0;
    border-radius: 8px;
    box-shadow: 0 12px 48px #0005;
}
.ecct-title { color: #fff !important; font-size: 22px !important; line-height: 1.3 !important; margin: 0 0 12px !important; }
.ecct-copy { color: #f8f5ef !important; font-size: 14px !important; line-height: 1.65 !important; margin: 0 0 12px !important; }
.ecct-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.ecct-button, .ecct-reopen {
    appearance: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px !important;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
    padding: 10px 12px;
    min-height: 44px;
    border-radius: 4px;
    border: 1px solid #efa8cb;
    background: #efa8cb;
    color: #111225;
    white-space: normal;
}
.ecct-button:hover, .ecct-button:focus-visible, .ecct-reopen:hover, .ecct-reopen:focus-visible { background: #f8f5ef; color: #111225; }
.ecct-button:disabled { cursor: wait; opacity: .6; }
.ecct-button:focus-visible, .ecct-reopen:focus-visible, .ecct-privacy:focus-visible, .ecct-purpose input:focus-visible, .ecct-summary:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.ecct-privacy { color: #ffc9e4 !important; text-decoration: underline !important; font-size: 14px; text-underline-offset: 3px; }
.ecct-status { color: #f8f5ef !important; font-size: 13px !important; line-height: 1.5; margin: 12px 0 0; }
.ecct-status:empty { display: none; }
.ecct-banner .ecct-title { padding-right: 40px; }
.ecct-banner-close { position: absolute; z-index: 1; top: 6px; right: 6px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 4px; background: #111225; color: #fff; font: 28px/1 sans-serif; cursor: pointer; }
.ecct-banner-close:hover { background: #292a40; }
.ecct-banner-close:focus-visible { outline: 2px solid #efa8cb; outline-offset: -4px; }
.ecct-dialog {
    padding: 0;
    width: min(720px, calc(100% - 24px));
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overflow: hidden;
    overscroll-behavior: contain;
    border-radius: 8px;
    box-shadow: 0 20px 80px #0008;
}
.ecct-dialog[open], .ecct-dialog[role="dialog"]:not([hidden]) { display: flex; flex-direction: column; }
.ecct-banner > .ecct-body, .ecct-dialog > .ecct-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px 22px 0;
}
.ecct-banner > .ecct-footer, .ecct-dialog > .ecct-footer {
    flex: 0 0 auto;
    padding: 12px 22px 20px;
    border-top: 1px solid #d995b944;
    background: #111225;
}
.ecct-details { margin: 0 0 8px; }
.ecct-summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: #ffc9e4; font-size: 14px; line-height: 20px; font-weight: 700; }
.ecct-body > .ecct-privacy, .ecct-details > .ecct-privacy { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 8px; }
.ecct-dialog::backdrop { background: #090a19b8; }
.ecct-dialog[role="dialog"] { position: fixed; inset: 12px 0; margin: auto; z-index: 100002; }
.ecct-dialog > .ecct-footer > .ecct-button { margin-top: 8px; background: transparent; color: #f8f5ef; width: 100%; }
.ecct-purpose { display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 8px 0; color: #fff; font-size: 15px; line-height: 1.4; font-weight: 700; }
.ecct-purpose input { flex: 0 0 auto; width: 22px; height: 22px; margin: 0; accent-color: #efa8cb; }
.ecct-retention { font-size: 12px !important; }
.footer-legal.ecct-cookie-footer { align-items: center; }
.ecct-reopen {
    position: static;
    display: inline-flex;
    align-items: center;
    min-width: 44px;
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 12px !important;
    font-weight: inherit;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
    box-shadow: none;
}
.footer-legal .ecct-reopen { color: #d4d7e3; font-size: inherit !important; line-height: inherit; }
.ecct-reopen:hover, .ecct-reopen:focus-visible { background: transparent; color: inherit; text-decoration-thickness: 2px; }
.footer-legal .ecct-reopen:hover, .footer-legal .ecct-reopen:focus-visible { color: #f8f5ef; }
.ecct-reopen:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ecct-footer-fallback { padding: 12px 20px; }
@media (max-width: 580px) {
    .ecct-banner > .ecct-body, .ecct-dialog > .ecct-body { padding: 16px 16px 0; }
    .ecct-banner > .ecct-footer, .ecct-dialog > .ecct-footer { padding: 12px 16px 16px; }
    .ecct-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .ecct-actions > .ecct-button:last-child { grid-column: 1 / -1; }
    .ecct-title { font-size: 20px !important; margin-bottom: 8px !important; }
    .ecct-copy { line-height: 1.5 !important; margin-bottom: 10px !important; }
    .ecct-purpose { font-size: 14px; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .ecct-banner *, .ecct-dialog *, .ecct-reopen { animation: none !important; transition: none !important; } }

