.tspr-consent[hidden], .tspr-consent-open[hidden] { display: none !important; }
.tspr-consent, .tspr-consent * { box-sizing: border-box; }
.tspr-consent {
    position: fixed; z-index: 10000; left: 16px; bottom: 16px;
    width: calc(100% - 32px); max-width: 900px; max-height: calc(100dvh - 32px);
    overflow-y: auto; display: flex; gap: 24px; align-items: center;
    padding: 22px 24px; border: 1px solid #3e5b50; border-radius: 18px;
    background: #191d1b; color: #fff; font: 14px/1.6 system-ui, sans-serif;
    box-shadow: 0 12px 44px #0008;
}
.tspr-consent h2 { margin: 0 0 6px; font-size: 18px; color: #fff; line-height: 1.3; }
.tspr-consent p { margin: 0 0 8px; color: #d2d8d5; font-size: 14px; line-height: 1.6; }
.tspr-consent summary { color: #3ee6ad; cursor: pointer; }
.tspr-consent details p { margin-top: 10px; }
.tspr-consent a { color: #7fefc9 !important; text-decoration: underline; }
.tspr-consent-actions { display: flex; gap: 10px; flex-shrink: 0; }
.tspr-consent .tspr-consent-actions button, button.tspr-consent-open {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 18px; margin: 0; border-radius: 999px;
    border: 1px solid #3ee6ad; background: #20372d;
    color: #e4fff4 !important; -webkit-text-fill-color: #e4fff4 !important;
    font: 600 14px/1.3 system-ui, sans-serif; text-transform: none;
    text-decoration: none; cursor: pointer; transition: box-shadow .2s, background .2s;
}
.tspr-consent .tspr-consent-actions button:hover, button.tspr-consent-open:hover {
    background: #2d5141; box-shadow: 0 0 18px #3ee6ad30;
}
.tspr-consent button:focus-visible, .tspr-consent a:focus-visible,
.tspr-consent summary:focus-visible, button.tspr-consent-open:focus-visible {
    outline: 2px solid #7fefc9; outline-offset: 4px;
}
button.tspr-consent-open {
    position: fixed; z-index: 9990; bottom: 14px; left: 14px;
    min-height: 36px; padding: 8px 14px; font-size: 12px;
    background: #191d1b; border-color: #40574b; box-shadow: 0 4px 16px #0004;
}
.tspr-consent .tspr-consent-status:empty { display: none; }
@media (max-width: 700px) {
    .tspr-consent { padding: 18px; gap: 14px; flex-direction: column; align-items: stretch; }
    .tspr-consent-actions button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .tspr-consent button, button.tspr-consent-open { transition: none !important; }
}
