.cookie-banner { position: fixed; z-index: 60; left: 20px; bottom: 20px; width: min(440px, calc(100vw - 40px)); background: #2a2a2d; color: var(--fg); border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: 0 18px 50px rgba(0,0,0,.6); animation: pop .2s ease-out; }
.cookie-banner[hidden] { display: none; }
.cookie-banner h2 { font-size: 1.1rem; margin: 0 0 .4em; }
.cookie-banner p { font-size: .9rem; color: #d6d2cb; margin: 0 0 1em; }
.cookie-banner p a { text-decoration: underline; white-space: nowrap; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cookie-actions .btn { padding: 9px 18px; font-size: .9rem; flex: 1 1 auto; text-align: center; }
.cookie-prefs { display: grid; gap: 10px; margin-bottom: 14px; }
.cookie-prefs[hidden] { display: none; }
.cookie-opt { display: flex; gap: 12px; align-items: flex-start; background: #333337; border-radius: 12px; padding: 12px; cursor: pointer; }
.cookie-opt input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--accent); flex: none; }
.cookie-opt span { display: grid; gap: 2px; }
.cookie-opt small { color: var(--muted); font-size: .8rem; }
@media (max-width: 560px) { .cookie-banner { left: 10px; right: 10px; bottom: 10px; width: auto; padding: 18px; max-height: 85vh; overflow-y: auto; } }

[hidden] { display: none !important; }

/* Panel de preferencias ampliado */
.cookie-banner { max-height: min(86vh, 720px); overflow-y: auto; overscroll-behavior: contain; }
.cookie-banner.expanded { width: min(640px, calc(100vw - 40px)); }
.cookie-cat { background: #333337; border-radius: 12px; padding: 4px 12px 10px; }
.cookie-cat .cookie-opt { background: none; padding: 12px 0 8px; }
.cookie-cat details { margin-left: 30px; }
.cookie-cat summary { cursor: pointer; font-size: .85rem; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; width: max-content; }
.cookie-note { font-size: .8rem !important; color: var(--muted) !important; margin: 4px 0 0 !important; }
.ck-list { list-style: none; margin: 10px 0 2px; padding: 0; display: grid; gap: 10px; }
.ck-list li { display: grid; gap: 2px; padding-left: 10px; border-left: 2px solid var(--line); font-size: .85rem; }
.ck-list li span { color: #d6d2cb; }
.ck-list li small { color: var(--muted); font-size: .78rem; }
.ck-policy { margin-top: 2.2em; border-top: 1px solid var(--line); padding-top: 1em; }
.ck-policy .ck-list li { font-size: .95rem; }
@media (max-width: 560px) { .cookie-banner.expanded { width: auto; } .cookie-cat details { margin-left: 0; } }.cookie-banner.expanded .cookie-actions { position: sticky; bottom: -22px; background: #2a2a2d; padding: 12px 0 0; margin-top: 12px; }
@media (max-width: 560px) { .cookie-banner.expanded .cookie-actions { bottom: -18px; } }
