.shiny-consent-banner[hidden],
.shiny-consent-modal[hidden],
.shiny-consent-overlay[hidden] { display: none !important; }

.shiny-consent-banner {
  position: fixed;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 9998;
  max-width: 1180px;
  margin: 0 auto;
  background: #fff;
  color: #13233a;
  border: 1px solid rgba(7,31,63,.14);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(7,31,63,.22);
}
.shiny-consent-banner__inner {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 20px 22px;
}
.shiny-consent-banner h2 { margin: 0 0 6px; font-size: 1.08rem; }
.shiny-consent-banner p { margin: 0; line-height: 1.55; color: #435267; }
.shiny-consent-banner a { color: #0a57b8; }
.shiny-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.shiny-consent-btn {
  appearance: none;
  border: 1px solid #0b4e97;
  border-radius: 10px;
  padding: 11px 15px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  background: #fff;
  color: #0b4e97;
}
.shiny-consent-btn--primary { background: #0b4e97; color: #fff; }
.shiny-consent-btn--quiet { border-color: #c7d1dc; color: #24384f; }
.shiny-consent-overlay { position: fixed; inset: 0; z-index: 9998; background: rgba(3,18,37,.56); }
.shiny-consent-modal {
  position: fixed;
  z-index: 9999;
  left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: min(620px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  overflow: auto;
  background: #fff;
  color: #13233a;
  border-radius: 18px;
  box-shadow: 0 24px 80px rgba(0,0,0,.28);
  padding: 24px;
}
.shiny-consent-modal__top { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.shiny-consent-modal h2 { margin: 0 0 8px; }
.shiny-consent-modal p { color: #435267; line-height: 1.55; }
.shiny-consent-close { background: none; border: 0; font-size: 1.7rem; line-height: 1; cursor: pointer; color: #435267; }
.shiny-consent-category { border-top: 1px solid #e3e9ef; padding: 18px 0; }
.shiny-consent-category__head { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.shiny-consent-category strong { display: block; margin-bottom: 4px; }
.shiny-consent-category small { color: #607087; }
.shiny-consent-always { font-weight: 700; color: #247145; white-space: nowrap; }
.shiny-consent-switch { position: relative; width: 48px; height: 28px; display: inline-block; }
.shiny-consent-switch input { opacity: 0; width: 0; height: 0; }
.shiny-consent-slider { position: absolute; inset: 0; border-radius: 999px; background: #b9c4d0; cursor: pointer; transition: .18s ease; }
.shiny-consent-slider:before { content: ''; position: absolute; width: 22px; height: 22px; left: 3px; top: 3px; border-radius: 50%; background: #fff; transition: .18s ease; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.shiny-consent-switch input:checked + .shiny-consent-slider { background: #0b4e97; }
.shiny-consent-switch input:checked + .shiny-consent-slider:before { transform: translateX(20px); }
.shiny-consent-modal__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; padding-top: 6px; }
.footer-cookie-settings { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.footer-cookie-settings:hover { text-decoration: underline; }

@media (max-width: 760px) {
  .shiny-consent-banner { left: 10px; right: 10px; bottom: 10px; }
  .shiny-consent-banner__inner { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .shiny-consent-actions { justify-content: stretch; }
  .shiny-consent-btn { flex: 1 1 100%; }
  .shiny-consent-modal { padding: 20px; }
  .shiny-consent-modal__actions .shiny-consent-btn { flex: 1 1 100%; }
}
