.ul-consent[hidden], .ul-consent-trigger[hidden], .ul-consent__details[hidden], .ul-consent__summary[hidden] { display: none !important; }
.ul-consent { position: fixed; inset: 0; z-index: 2147483000; background: rgba(8,20,36,.48); display: flex; align-items: flex-end; padding: 24px; }
.ul-consent__panel { position: relative; width: min(760px, 100%); max-height: min(86vh, 820px); overflow: auto; background: #fff; color: #0d1a2b; border-radius: 18px; box-shadow: 0 20px 70px rgba(0,0,0,.28); padding: 28px; }
.ul-consent__panel h2 { margin: 0 42px 10px 0; font-size: clamp(26px, 3vw, 36px); line-height: 1.12; }
.ul-consent__panel h3 { margin: 0 0 5px; font-size: 18px; }
.ul-consent__panel p { margin: 0 0 12px; line-height: 1.55; }
.ul-consent__eyebrow { color: #a66b08; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ul-consent__links a, .ul-consent__category summary { color: #143957; text-decoration: underline; text-underline-offset: 3px; }
.ul-consent__close { position: absolute; top: 18px; right: 18px; border: 0; background: transparent; color: #0d1a2b; font-size: 34px; line-height: 1; cursor: pointer; }
.ul-consent__actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 20px; }
.ul-consent__button { min-height: 50px; border: 2px solid #147544; border-radius: 10px; padding: 10px 14px; background: #fff; color: #0d1a2b; font-weight: 750; cursor: pointer; }
.ul-consent__button:hover, .ul-consent__button:focus-visible { outline: 3px solid rgba(20,117,68,.24); outline-offset: 2px; }
.ul-consent__button[data-ul-save] { background: #147544; color: #fff; }
.ul-consent__category { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 16px 0; border-top: 1px solid #dbe1e7; margin: 0; }
.ul-consent__category p { color: #4d5a68; font-size: 15px; margin: 0; }
.ul-consent__category details { margin-top: 8px; }
.ul-consent__category details p { padding-top: 7px; font-size: 14px; }
.ul-consent__always { color: #147544; font-size: 14px; font-weight: 800; white-space: nowrap; }
.ul-consent__category input { position: absolute; opacity: 0; pointer-events: none; }
.ul-consent__switch { width: 50px; height: 28px; border-radius: 18px; background: #737e89; position: relative; cursor: pointer; }
.ul-consent__switch:before { content: ''; position: absolute; width: 22px; height: 22px; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: transform .18s ease; }
.ul-consent__category input:checked + .ul-consent__switch { background: #147544; }
.ul-consent__category input:checked + .ul-consent__switch:before { transform: translateX(22px); }
.ul-consent__category input:focus-visible + .ul-consent__switch { outline: 3px solid rgba(20,117,68,.35); outline-offset: 3px; }
.ul-consent-trigger { position: fixed; z-index: 2147482000; left: 16px; bottom: 16px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #cbd3da; border-radius: 50%; background: #fff; color: #0d1a2b; padding: 0; box-shadow: 0 4px 18px rgba(0,0,0,.15); font-size: 22px; cursor: pointer; }
.ul-consent-trigger span:last-child { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ul-consent-trigger:hover, .ul-consent-trigger:focus-visible { outline: 3px solid rgba(20,117,68,.24); outline-offset: 2px; }
@media (max-width: 640px) {
  .ul-consent { padding: 0; }
  .ul-consent__panel { width: 100%; max-height: 92vh; border-radius: 16px 16px 0 0; padding: 22px 18px calc(18px + env(safe-area-inset-bottom)); }
  .ul-consent__actions { grid-template-columns: 1fr; }
  .ul-consent__button { width: 100%; }
  .ul-consent__category { gap: 12px; }
  .ul-consent-trigger { left: 10px; bottom: 10px; }
  .ul-consent-trigger span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ul-consent__switch:before { transition: none; } }
