#cc-root[hidden] { display:none !important; }

.cc-bar {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:9999;
  background:#0f172a;
  color:#fff;
  font-family:system-ui, Inter, Arial, sans-serif;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.75rem 1rem;
  box-shadow:0 -4px 12px rgba(0,0,0,.25);
  transform:translateY(100%);
}

.cc-bar.show { animation:cc-slide-up .28s ease-out both; }

@keyframes cc-slide-up {
  from { transform:translateY(100%); opacity:.001; }
  to { transform:translateY(0); opacity:1; }
}

@media (prefers-reduced-motion: reduce) {
  .cc-bar { transform:none; }
  .cc-bar.show { animation:none; }
}

.cc-text { flex:1 1 auto; font-size:.95rem; line-height:1.4; }
.cc-actions { flex:0 0 auto; display:flex; gap:.5rem; }
.cc-btn { border:0; border-radius:999px; padding:.45rem .95rem; font-weight:700; cursor:pointer; }
.cc-btn.ok { background:#0ea5e9; color:#fff; }
.cc-btn.ok:hover { background:#0284c7; }
.cc-btn.no { background:#94a3b8; color:#fff; }
.cc-btn.no:hover { background:#64748b; }
.cc-link { color:#0ea5e9; font-weight:600; text-decoration:none; }
.cc-link:hover { text-decoration:underline; }

.cc-ovl {
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.5);
  backdrop-filter:saturate(110%) blur(2px);
  z-index:10000;
  opacity:0;
  pointer-events:none;
}

.cc-modal {
  position:fixed;
  inset:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  z-index:10001;
  opacity:0;
  pointer-events:none;
}

.cc-dialog {
  width:min(820px,92vw);
  max-height:min(84vh,900px);
  border-radius:16px 16px 0 0;
  background:#fff;
  color:#0f172a;
  box-shadow:0 20px 60px rgba(2,6,23,.35);
  display:flex;
  flex-direction:column;
}

.cc-head {
  padding:16px 18px;
  border-bottom:1px solid #e5e7eb;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.cc-title { margin:0; font-size:1.15rem; font-weight:800; }
.cc-body { padding:14px 18px 6px; overflow:auto; }
.cc-body h2 { font-size:1rem; margin:1rem 0 .5rem; }
.cc-body p,
.cc-body li { color:#475569; }
.cc-foot { padding:12px 18px; border-top:1px solid #e5e7eb; display:flex; gap:.5rem; justify-content:flex-end; }
.cc-btn.outline { background:#fff; border:1px solid #e5e7eb; color:#0f172a; }
.cc-btn.primary { background:#0ea5e9; color:#fff; }
.cc-close { background:none; border:0; font-size:1.25rem; line-height:1; cursor:pointer; }
.cc-ovl.show,
.cc-modal.show { opacity:1; pointer-events:auto; }
.cc-modal.show .cc-dialog { animation:cc-pop .18s ease-out both; }

@keyframes cc-pop {
  from { transform:translateY(10px); opacity:.001; }
  to { transform:none; opacity:1; }
}

@media (min-width:700px) {
  .cc-dialog { border-radius:16px; }
}

@media (prefers-reduced-motion: reduce) {
  .cc-modal.show .cc-dialog { animation:none; }
}

.cc-footer-link {
  margin-left:10px;
  display:inline-block;
  font-size:.9rem;
  padding:.25rem .6rem;
  border-radius:999px;
  border:1px solid #0;
  text-decoration:none;
}
