/* Shared public cookie notice. Consent settings and persistence stay server-owned. */
.cookie-notice {
    --cookie-accent: #164f91;
    --cookie-accent-ink: #fff;
    position: fixed;
    inset: auto auto max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    z-index: 1040;
    width: 420px;
    max-width: calc(100vw - 48px);
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    padding: 24px;
    border: 1px solid #dbe2e7;
    border-top: 3px solid var(--cookie-accent);
    border-radius: 2px;
    background: #fff;
    box-shadow: 0 12px 50px rgba(22, 34, 48, .14);
    color: #172230;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.6;
    animation: cookie-notice-enter .24s ease-out both;
}
.cookie-notice *, .cookie-notice *::before, .cookie-notice *::after { box-sizing: border-box; }
.cookie-notice [hidden] { display: none !important; }
.cookie-notice__heading { display: flex; align-items: center; gap: 13px; margin: 0 0 15px; }
.cookie-notice__icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid #dbe2e7; border-radius: 2px; background: #f5f8fa; color: #253b47; }
.cookie-notice__icon svg { display: block; width: 30px; height: 30px; }
.cookie-notice .cookie-notice__heading h2 { margin: 0; color: #172230; font-family: inherit; font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -.35px; }
.cookie-notice .cookie-notice__description { max-height: 30vh; margin: 0 0 21px; overflow-y: auto; color: #596675; font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.cookie-notice__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.cookie-notice .cookie-notice__accept { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 150px; min-height: 44px; margin: 0; padding: 11px 17px; border: 1px solid transparent; border-radius: 2px; background: var(--cookie-accent); color: var(--cookie-accent-ink); font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.5; text-align: center; cursor: pointer; transition: filter .15s ease; }
.cookie-notice .cookie-notice__accept:hover { filter: brightness(.92); }
.cookie-notice .cookie-notice__accept:disabled { cursor: wait; opacity: .7; }
.cookie-notice .cookie-notice__policy { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 1 1 120px; min-height: 44px; color: #253b47; font-size: 12px; font-weight: 500; line-height: 1.5; text-decoration: none; }
.cookie-notice__policy svg { flex: 0 0 16px; width: 16px; height: 16px; }
.cookie-notice .cookie-notice__policy:hover { color: #172230; text-decoration: none; }
.cookie-notice .cookie-notice__policy:focus, .cookie-notice .cookie-notice__policy:active { text-decoration: none; }
.cookie-notice__accept:focus-visible, .cookie-notice__policy:focus-visible { outline: 2px solid #172230; outline-offset: 4px; }
.cookie-notice .cookie-notice__error { margin: 14px 0 0; color: #a32233; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
@keyframes cookie-notice-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
    .cookie-notice { inset: auto 12px max(12px, env(safe-area-inset-bottom)) 12px; width: auto; max-width: none; max-height: calc(100dvh - 24px); padding: 20px; }
    .cookie-notice .cookie-notice__heading h2 { font-size: 17px; }
    .cookie-notice__actions { gap: 4px 16px; }
    .cookie-notice .cookie-notice__accept { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) { .cookie-notice { animation: none; } .cookie-notice .cookie-notice__accept { transition: none; } }
