#portalCookieNotice[hidden] { display: none; }
#portalCookieNotice { position: fixed; bottom: 3.5em; left: 1em; right: 1em; z-index: 10000; background: white; color: #222; padding: 1em; border: 1px solid #777; box-shadow: 0 3px 14px #777; max-height: 50vh; overflow: auto; }
#portalCookieSettings { background: white; color: #222; width: min(38em, 90vw); max-height: 85vh; overflow: auto; padding: 1.5em; border: 1px solid #777; border-top: 7px solid #5eade2; }
#portalCookieSettings::backdrop { background: rgba(0,0,0,.4); }
#portalPrivacyPolicy { box-sizing: border-box; background: white; color: #222; width: min(60em, 94vw); max-height: 85vh; overflow: hidden; padding: 1.5em; border: 1px solid #777; border-top: 7px solid #5eade2; }
/* Only the policy text scrolls; keep the title and both close controls visible. */
#portalPrivacyPolicy[open] { display: flex; flex-direction: column; }
#portalPrivacyPolicy > .portalCookieHeading,
#portalPrivacyPolicy > .portalCookieSaveActions { flex-shrink: 0; }
#portalPrivacyPolicy::backdrop { background: rgba(0,0,0,.4); }
#portalPrivacyTitle { margin: 0; }
#portalPrivacyTitle { min-width: 0; overflow-wrap: anywhere; }
#portalPrivacyContent { margin: 1em 0; min-height: 0; overflow: auto; overflow-wrap: anywhere; }
.portalPrivacyTable { width: 100%; overflow-x: auto; container-type: inline-size; }
.privacyPolicyContent table, #portalPrivacyContent table { width: 100%; table-layout: auto; }
.privacyPolicyContent table, .privacyPolicyContent table *, #portalPrivacyContent table, #portalPrivacyContent table * { overflow-wrap: normal; word-break: normal; hyphens: none; }
.privacyPolicyContent .tablePrivacy thead th, #portalPrivacyContent .tablePrivacy thead th { text-align: center; }
.privacyPolicyContent .tablePrivacy td, .privacyPolicyContent .tablePrivacy th, #portalPrivacyContent .tablePrivacy td, #portalPrivacyContent .tablePrivacy th { padding: 8px; }
.privacyPolicyContent .tablePrivacy ul, #portalPrivacyContent .tablePrivacy ul { padding-left: 1.1em; margin-left: 0; }
@container (max-width: 42rem) {
    .portalPrivacyTable table { font-size: clamp(.75rem, 2.5cqi, 1em); }
    .portalPrivacyTable table th, .portalPrivacyTable table td,
    .privacyPolicyContent .tablePrivacy td, .privacyPolicyContent .tablePrivacy th,
    #portalPrivacyContent .tablePrivacy td, #portalPrivacyContent .tablePrivacy th { padding: 4px; }
}
#portalPrivacyError .portalPrivacyRetry { color: #0066cc; text-decoration: underline; }
#portalPrivacyPolicy .portalCookieSaveActions .ActionDivLoginClose { margin: 0; width: auto; height: auto; min-height: 2.5em; padding: .5em 1em; }
.portalCookieActions { display: flex; flex-wrap: wrap; gap: .6em; }
.portalCookieActions button:not(.ActionDivLoginClose) { background: #164c69; color: white; border: 1px solid #164c69; border-radius: 4px; padding: .65em 1em; cursor: pointer; font: inherit; }
#portalCookieNotice .portalCookieActions { justify-content: flex-end; align-items: stretch; flex-wrap: nowrap; }
#portalCookieNotice .portalCookieActions .ActionDivLoginClose { box-sizing: border-box; flex: 0 1 14em; width: 14em; min-width: 0; max-width: 100%; min-height: 2.5em; height: auto; margin: 0; padding: .5em .75em; text-align: center; }
@media (max-width: 600px) {
    #portalCookieNotice .portalCookieActions { flex-direction: column; }
    #portalCookieNotice .portalCookieActions .ActionDivLoginClose { flex: 0 0 auto; width: 100%; }
}
.portalCookieActions button:focus-visible { outline: 3px solid #d88900; outline-offset: 2px; }
.portalCookieActions button { min-width:44px; min-height:44px; }
#portalCookieSettings > p > a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
}
#portalCookiePolicy .portalCookieLink { color: #0066cc; font: inherit; text-decoration: underline; }
#portalCookiePolicy caption { caption-side: top; text-align: left; color: inherit; font-size: 1.15em; font-weight: 600; padding: .75em 0 .5em; }
#portalCookieSettings { box-sizing: border-box; }
.portalCookieHeading, .portalCookieCategoryHeading { display: flex; align-items: center; justify-content: space-between; gap: 1em; }
#portalCookieTitle { margin: 0; }
.portalCookieClose { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 44px; min-height: 44px; border: 0; background: transparent; color: #606060; font-size: 2em; line-height: 1; padding: .1em .2em; cursor: pointer; }
.portalCookieCategory { border-top: 1px solid #d8d9db; padding: 1em 0; }
.portalCookieCategory:last-of-type { border-bottom: 1px solid #d8d9db; }
.portalCookieCategoryHeading h3 { font-size: 1em; margin: 0; font-weight: 600; }
.portalCookieCategory p { margin: .7em 0 0; line-height: 1.4; }
#portalCookieSettings .portalCookieSwitch { position: relative; display: inline-block; flex: 0 0 5em; width: 5em; height: 2.3em; margin: 0; }
#portalCookieSettings .portalCookieSwitch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; z-index: 1; cursor: pointer; }
.portalCookieSwitchTrack { position: absolute; inset: 0; border-radius: 30px; border: 1px solid #8f9092; background: linear-gradient(to top, #d8d9db 0%, #fff 80%, #fdfdfd 100%); color: #606060; text-shadow: 0 1px #fff; box-shadow: inset 0 2px 4px #bbb; }
.portalCookieSwitchTrack::after { content: ''; position: absolute; left: .2em; top: .2em; bottom: .2em; width: 1.75em; border-radius: 50%; border: 1px solid #8f9092; background: linear-gradient(to top, #d8d9db 0%, #fff 80%, #fdfdfd 100%); box-shadow: 0 2px 3px #999; transition: left .15s ease; }
.portalCookieSwitchYes, .portalCookieSwitchNo { position: absolute; top: 50%; transform: translateY(-50%); font-weight: 600; font-size: .9em; }
.portalCookieSwitchYes { left: .6em; display: none; }
.portalCookieSwitchNo { right: .7em; }
.portalCookieSwitch input:checked + .portalCookieSwitchTrack::after { left: calc(100% - 2em); }
.portalCookieSwitch input:checked + .portalCookieSwitchTrack .portalCookieSwitchYes { display: inline; }
.portalCookieSwitch input:checked + .portalCookieSwitchTrack .portalCookieSwitchNo { display: none; }
#portalCookieSettings .portalCookieSwitch input:disabled { cursor: default; }
.portalCookieSwitch input:disabled + .portalCookieSwitchTrack { color: #858585; border-color: #b8b8b8; background: linear-gradient(to top, #dedede, #ededed); text-shadow: none; box-shadow: inset 0 1px 2px #d0d0d0; }
.portalCookieSwitch input:disabled + .portalCookieSwitchTrack::after { border-color: #b8b8b8; background: linear-gradient(to top, #d2d2d2, #e3e3e3); box-shadow: none; }
.portalCookieSwitch input:focus-visible + .portalCookieSwitchTrack, .portalCookieClose:focus-visible { outline: 3px solid #d88900; outline-offset: 3px; }
.portalCookieSaveActions { justify-content: flex-end; }
#portalCookieSettings .portalCookieSaveActions .ActionDivLoginClose { margin: 0; min-width: 6em; width: auto; min-height: 2.5em; height: auto; padding: .5em 1em; }
#portalCookieSettings .portalCookieSaveActions .ActionDivLoginClose,
#portalPrivacyPolicy .portalCookieSaveActions .ActionDivLoginClose { min-width: max(6em, 44px); min-height: max(2.5em, 44px); }
@media (prefers-reduced-motion: reduce) { .portalCookieSwitchTrack::after { transition: none; } }
