/* Independent controls, scoped away from login, payments and application layout. */
.cookie-banner, .cookie-dialog, .cookie-toast { box-sizing: border-box; color: #334155; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; font-size: .9rem; line-height: 1.6; text-align: left; }
.cookie-banner *, .cookie-dialog *, .cookie-toast * { box-sizing: border-box; }
.cookie-banner[hidden], .cookie-toast[hidden] { display: none !important; }
.cookie-banner { position: fixed; z-index: 11000; left: 24px; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 2rem; max-width: 1160px; margin: 0 auto; padding: 1.35rem 1.5rem; border: 1px solid #cbd5e1; border-radius: 18px; background: #fff; box-shadow: 0 10px 45px #0f172a20; max-height: min(440px, 80dvh); overflow-y: auto; }
.cookie-banner__copy { flex: 1; min-width: 0; }
.cookie-banner h2, .cookie-dialog h2 { margin: 0 0 .4rem; color: #0f172a; font-size: 1.05rem; font-weight: 750; line-height: 1.4; }
.cookie-banner p, .cookie-toast p { margin: 0; }
.cookie-banner a, .cookie-dialog a { color: #4338ca; text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; gap: .6rem; flex-shrink: 0; }
.cookie-actions button, .cookie-toast button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem 1rem; border: 1px solid #94a3b8; border-radius: 9px; background: #fff; color: #0f172a; font: inherit; font-size: .875rem; font-weight: 650; line-height: 1.4; cursor: pointer; }
.cookie-actions button:hover, .cookie-toast button:hover { background: #f1f5f9; }
.cookie-actions .cookie-configure { border-color: #c7d2fe; color: #4338ca; background: #eef2ff; }
.cookie-actions .cookie-save { border-color: #4f46e5; background: #4f46e5; color: #fff; }
.cookie-banner :focus-visible, .cookie-dialog :focus-visible, .cookie-toast :focus-visible { outline: 3px solid #6366f1; outline-offset: 3px; }
.cookie-dialog { position: fixed; inset: 0; width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 1.5rem; overflow-y: auto; border: 1px solid #cbd5e1; border-radius: 20px; background: #fff; box-shadow: 0 20px 80px #0f172a30; z-index: 11002; }
.cookie-dialog:not([open]) { display: none; }
.cookie-dialog::backdrop { background: #0f172a66; }
.cookie-dialog__heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.cookie-dialog__heading h2 { margin: 0; font-size: 1.25rem; }
.cookie-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border: 1px solid #e2e8f0; border-radius: 50%; color: #475569; background: #fff; font-size: 1.5rem; cursor: pointer; }
.cookie-dialog > p { margin: 0 0 1.25rem; }
.cookie-category { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid #e2e8f0; }
.cookie-category strong { display: block; margin-bottom: .35rem; color: #0f172a; font-size: .95rem; }
.cookie-category p, .cookie-category span { display: block; margin: 0; }
.cookie-category .cookie-always { margin-top: .2rem; padding: .25rem .5rem; border-radius: 6px; color: #047857; background: #ecfdf5; font-size: .75rem; white-space: nowrap; }
.cookie-category label { cursor: pointer; }
.cookie-category input { flex-shrink: 0; width: 24px; height: 24px; margin: .35rem .6rem 0 0; accent-color: #4f46e5; cursor: pointer; }
.cookie-dialog__policy { font-size: .825rem; }
.cookie-actions--dialog { flex-wrap: wrap; padding-top: .5rem; }
.cookie-actions--dialog button { flex: 1; }
.cookie-toast { position: fixed; z-index: 11001; bottom: 24px; left: 24px; right: 24px; max-width: 660px; margin: 0 auto; padding: 1rem 1.25rem; border: 1px solid #cbd5e1; border-radius: 12px; background: #fff; box-shadow: 0 8px 30px #0f172a20; }
.cookie-toast button { margin-top: .7rem; }
@media (max-width: 900px) {
    .cookie-banner { flex-direction: column; align-items: stretch; gap: 1rem; }
    .cookie-actions button { flex: 1; }
}
@media (max-width: 480px) {
    .cookie-banner { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); padding: 1.15rem; border-radius: 14px; }
    .cookie-actions { flex-wrap: wrap; gap: .5rem; }
    .cookie-actions button { padding: .65rem .6rem; }
    .cookie-actions .cookie-configure, .cookie-actions--dialog .cookie-save { flex-basis: 100%; }
    .cookie-dialog { padding: 1.1rem; }
    .cookie-category { gap: .6rem; }
    .cookie-category .cookie-always { white-space: normal; min-width: 66px; text-align: center; }
    .cookie-toast { left: 12px; right: 12px; bottom: 12px; }
}
