/* ===== Cookie Consent Banner ===== */

.cb-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:99998;opacity:0;transition:opacity .3s ease;pointer-events:none}
.cb-overlay.active{opacity:1;pointer-events:auto}

.cb-banner{position:fixed;bottom:0;left:0;right:0;z-index:99999;background:var(--navy,#0f172a);border-top:1px solid rgba(37,99,235,.2);padding:1.25rem 1.5rem;transform:translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);font-family:'Inter',system-ui,-apple-system,sans-serif}
.cb-banner.active{transform:translateY(0)}

.cb-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}

.cb-text{flex:1;min-width:280px;color:var(--gray-300,#cbd5e1);font-size:.9rem;line-height:1.6}
.cb-text a{color:var(--blue,#2563eb);text-decoration:underline;text-underline-offset:2px}
.cb-text a:hover{color:var(--gold,#f59e0b)}

.cb-actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0;flex-wrap:wrap}

.cb-btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.4rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap;font-family:inherit}

.cb-btn--accept{background:var(--blue,#2563eb);color:#fff;box-shadow:0 0 16px rgba(37,99,235,.25)}
.cb-btn--accept:hover{background:var(--blue-dark,#1d4ed8);box-shadow:0 0 24px rgba(37,99,235,.4);transform:translateY(-1px)}

.cb-btn--reject{background:transparent;color:var(--gray-300,#cbd5e1);border:1px solid var(--gray-600,#475569)}
.cb-btn--reject:hover{border-color:var(--gray-400,#94a3b8);color:#fff}

.cb-btn--settings{background:none;border:none;color:var(--gray-400,#94a3b8);font-size:.8rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:.5rem;font-family:inherit}
.cb-btn--settings:hover{color:var(--blue,#2563eb)}

/* Detail Panel */
.cb-detail{position:fixed;bottom:0;left:0;right:0;z-index:99999;background:var(--navy,#0f172a);border-top:1px solid rgba(37,99,235,.2);padding:2rem 1.5rem;transform:translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);max-height:80vh;overflow-y:auto;font-family:'Inter',system-ui,-apple-system,sans-serif}
.cb-detail.active{transform:translateY(0)}

.cb-detail__inner{max-width:700px;margin:0 auto}
.cb-detail__title{color:#fff;font-size:1.1rem;font-weight:700;margin:0 0 1rem}

.cb-category{background:var(--gray-800,#1e293b);border-radius:10px;padding:1rem 1.25rem;margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.cb-category__info{flex:1}
.cb-category__name{color:#fff;font-size:.95rem;font-weight:600;margin:0 0 .25rem}
.cb-category__desc{color:var(--gray-400,#94a3b8);font-size:.8rem;line-height:1.5;margin:0}

/* Toggle Switch */
.cb-toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.cb-toggle input{opacity:0;width:0;height:0}
.cb-toggle__slider{position:absolute;inset:0;background:var(--gray-600,#475569);border-radius:24px;cursor:pointer;transition:background .2s ease}
.cb-toggle__slider::before{content:'';position:absolute;bottom:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s ease}
.cb-toggle input:checked+.cb-toggle__slider{background:var(--blue,#2563eb)}
.cb-toggle input:checked+.cb-toggle__slider::before{transform:translateX(20px)}
.cb-toggle input:disabled+.cb-toggle__slider{opacity:.6;cursor:not-allowed}

.cb-detail__actions{display:flex;gap:.75rem;margin-top:1.25rem;justify-content:flex-end}

/* Reopen button on datenschutz page */
.cb-reopen-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.4rem;background:var(--blue,#2563eb);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;font-family:'Inter',system-ui,-apple-system,sans-serif;transition:all .2s ease;margin-top:.5rem}
.cb-reopen-btn:hover{background:var(--blue-dark,#1d4ed8);transform:translateY(-1px)}

/* Mobile */
@media(max-width:640px){
  .cb-inner{flex-direction:column;align-items:stretch;gap:1rem}
  .cb-actions{justify-content:center}
  .cb-text{font-size:.84rem;text-align:center}
  .cb-detail__actions{flex-direction:column}
  .cb-detail__actions .cb-btn{width:100%}
}
