/* ===== COOKIE CONSENT BANNER ===== */
.cb-overlay{
  position:fixed;inset:0;z-index:9998;
  background:rgba(0,0,0,0.3);
  backdrop-filter:blur(2px);
  opacity:0;
  transition:opacity 0.3s;
  pointer-events:none;
}
.cb-overlay.show{opacity:1;pointer-events:auto;}

.cb-banner{
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:9999;
  background:#fff;
  border-top:1px solid #dde3ea;
  box-shadow:0 -8px 40px rgba(0,0,0,0.1);
  transform:translateY(100%);
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1);
  font-family:'Space Grotesk',system-ui,sans-serif;
}
.cb-banner.show{transform:translateY(0);}
.cb-banner.hide{transform:translateY(100%);}

.cb-inner{
  max-width:960px;
  margin:0 auto;
  padding:24px 32px;
}

/* MAIN VIEW */
.cb-main{display:flex;align-items:flex-start;gap:24px;}
.cb-main.hidden{display:none;}

.cb-text{flex:1;min-width:0;}
.cb-title{
  font-size:15px;font-weight:700;
  color:#111827;margin-bottom:6px;
  display:flex;align-items:center;gap:8px;
}
.cb-title .ic{font-size:18px;color:#1a56db;}
.cb-desc{
  font-size:13px;color:#4b5563;line-height:1.6;
}
.cb-desc a{color:#1a56db;text-decoration:none;font-weight:600;}
.cb-desc a:hover{text-decoration:underline;}

.cb-actions{
  display:flex;gap:8px;flex-shrink:0;
  align-items:center;
}
.cb-btn{
  padding:10px 18px;border-radius:7px;
  font-size:13px;font-weight:700;
  cursor:pointer;border:none;
  font-family:'Space Grotesk',sans-serif;
  transition:all 0.15s;
  white-space:nowrap;
}
.cb-btn-accept{
  background:#1a56db;color:#fff;
  box-shadow:0 2px 12px rgba(26,86,219,0.25);
}
.cb-btn-accept:hover{box-shadow:0 4px 20px rgba(26,86,219,0.4);transform:translateY(-1px);}
.cb-btn-reject{
  background:#f1f4f8;color:#4b5563;
  border:1px solid #dde3ea;
}
.cb-btn-reject:hover{background:#e8ecf1;color:#111827;}
.cb-btn-settings{
  background:transparent;color:#9ca3af;
  font-size:12px;font-weight:600;
  padding:10px 12px;
}
.cb-btn-settings:hover{color:#4b5563;}

/* SETTINGS VIEW */
.cb-settings{display:none;}
.cb-settings.show{display:block;}

.cb-settings-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:20px;
}
.cb-settings-title{font-size:15px;font-weight:700;color:#111827;}
.cb-settings-back{
  font-size:12px;font-weight:600;color:#9ca3af;
  cursor:pointer;border:none;background:none;
  font-family:'Space Grotesk',sans-serif;
  display:flex;align-items:center;gap:4px;
  transition:color 0.2s;
}
.cb-settings-back:hover{color:#4b5563;}
.cb-settings-back .ic{font-size:14px;}

.cb-category{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
  border-bottom:1px solid #dde3ea;
}
.cb-category:last-of-type{border-bottom:none;}

.cb-cat-info{flex:1;min-width:0;}
.cb-cat-name{
  font-size:13px;font-weight:700;color:#111827;
  display:flex;align-items:center;gap:6px;
}
.cb-cat-required{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:1px;
  background:#d1fae5;color:#059669;
  padding:1px 6px;border-radius:3px;
}
.cb-cat-desc{font-size:12px;color:#9ca3af;margin-top:2px;line-height:1.5;}
.cb-cat-cookies{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;color:#c8d1db;margin-top:4px;
}

/* TOGGLE */
.cb-toggle{
  width:38px;height:20px;border-radius:10px;
  position:relative;cursor:pointer;
  transition:background 0.2s;
  flex-shrink:0;
  margin-left:16px;
}
.cb-toggle.on{background:#1a56db;}
.cb-toggle.off{background:#dde3ea;}
.cb-toggle.locked{background:#d1fae5;cursor:not-allowed;}
.cb-toggle::after{
  content:'';position:absolute;
  width:16px;height:16px;background:#fff;
  border-radius:50%;top:2px;
  transition:left 0.2s;
  box-shadow:0 1px 3px rgba(0,0,0,0.15);
}
.cb-toggle.on::after{left:20px;}
.cb-toggle.off::after{left:2px;}
.cb-toggle.locked::after{left:20px;}

.cb-settings-actions{
  display:flex;gap:8px;justify-content:flex-end;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid #dde3ea;
}

/* RESPONSIVE */
@media(max-width:900px){
  .cb-inner{padding:20px 20px;}
  .cb-main{flex-direction:column;gap:16px;}
  .cb-actions{width:100%;flex-direction:column;}
  .cb-btn{width:100%;text-align:center;}
  .cb-btn-settings{width:auto;align-self:center;}
}
