/* Ensure hidden actually hides, even with global resets */
[hidden] { display: none !important; }

/* Banner */
.cc-banner{
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 1rem;
  z-index: 99997;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  box-shadow: 0 8px 26px rgba(0,0,0,.12);
  max-width: 900px;
  width: 92%;
  padding: 12px;
  box-sizing: border-box;
}
.cc-banner-text p{ margin: 0 0 8px 0; font-size: 14px; line-height: 1.4; color:#222; }
.cc-banner-actions{ display:flex; gap:8px; flex-wrap:wrap }
.cc-btn{
  cursor:pointer; border:1px solid #ddd; background:#fff; border-radius:8px;
  padding:8px 12px; font-size:14px; line-height:1.2;
}
.cc-allow{ background:#2e7d32; border-color:#2e7d32; color:#fff }
.cc-reject{ background:#444; border-color:#444; color:#fff }
.cc-manage{ background:#fff }

/* Modal overlay */
.cc-modal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
/* Modal panel */
.cc-panel{
  background:#fff;
  border-radius:14px;
  max-width:720px;
  width:92%;
  padding:16px;
  box-sizing:border-box;
  position:relative;
  box-shadow: 0 10px 30px rgba(0,0,0,.2);
  outline: none;
}
.cc-x{
  position:absolute; right:10px; top:6px;
  border:0; background:transparent; font-size:28px; line-height:1; cursor:pointer;
}
#cc-title{ margin:0 0 6px 0; font-size:20px }
.cc-intro{ margin:6px 0 10px 0; color:#555 }

/* Category rows */
.cc-cats{ display:grid; gap:8px; margin:10px 0 }
.cc-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border:1px solid #eee; border-radius:10px; padding:10px;
}
.cc-col p{ margin:4px 0 0 0; color:#666; font-size:14px }

/* Switch */
.cc-switch{ position:relative; display:inline-block; width:48px; height:28px }
.cc-switch input{ display:none }
.cc-switch span{
  position:absolute; inset:0; background:#ddd; border-radius:999px; transition:.2s;
}
.cc-switch span:after{
  content:""; position:absolute; height:22px; width:22px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition:.2s;
}
.cc-switch input:checked + span{ background:#2e7d32 }
.cc-switch input:checked + span:after{ transform: translateX(20px) }

/* Modal actions */
.cc-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px }
.cc-link{ font-size:14px; color:#0b57d0; text-decoration:none }
.cc-link:hover{ text-decoration:underline }
.cc-spacer{ flex:1 }

/* Reopen button */
.cc-open{
  position:fixed; z-index:99998; border:1px solid #ddd; background:#fff;
  border-radius:999px; padding:8px 12px; font-size:14px; cursor:pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
.cc-pos-br{left: 1rem;bottom:1rem}
.cc-pos-bl{ left:1rem; bottom:1rem }

/* Small screens */
@media (max-width:480px){
  .cc-banner{ padding:10px }
  .cc-panel{ padding:14px }
  .cc-row{ flex-direction:row }
}