:root{
  --consent-bg:#06111f;
  --consent-panel:#0d1b2d;
  --consent-panel-2:#11243b;
  --consent-text:#edf4fc;
  --consent-muted:#aebed1;
  --consent-line:#29435f;
  --consent-accent:#63adff;
  --consent-accent-2:#b5dcff;
}

#cto-consent-root,
#cto-consent-root *{
  box-sizing:border-box;
}

#cto-consent-root{
  position:relative;
  z-index:99999;
}

.cto-consent-backdrop{
  position:fixed;
  inset:0;
  z-index:99998;
  background:rgba(0,0,0,.64);
  backdrop-filter:blur(5px);
}

.cto-consent-banner,
.cto-consent-modal{
  position:fixed;
  z-index:99999;
  color:var(--consent-text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}

.cto-consent-banner{
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  width:min(1120px,calc(100% - 32px));
  padding:24px;
  border:1px solid var(--consent-line);
  border-radius:18px;
  background:linear-gradient(180deg,var(--consent-panel),rgba(13,27,45,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.44);
}

.cto-consent-banner h2,
.cto-consent-modal h2{
  margin:0 0 10px;
  color:var(--consent-accent-2);
  font-size:1.45rem;
  line-height:1.2;
}

.cto-consent-banner p,
.cto-consent-modal p{
  margin:.65em 0;
  color:var(--consent-muted);
  line-height:1.55;
}

.cto-consent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.cto-consent-btn{
  min-height:44px;
  padding:10px 16px;
  border:1px solid var(--consent-line);
  border-radius:10px;
  background:var(--consent-panel-2);
  color:var(--consent-text);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}

.cto-consent-btn:hover{
  transform:translateY(-1px);
  border-color:var(--consent-accent);
}

.cto-consent-btn--primary{
  border-color:var(--consent-accent);
  background:var(--consent-accent);
  color:#04101d;
}

.cto-consent-btn--ghost{
  background:transparent;
}

.cto-consent-links{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:16px;
  font-size:.88rem;
}

.cto-consent-links a{
  color:var(--consent-accent-2);
  text-decoration:none;
}

.cto-consent-links a:hover{
  color:#fff;
}

.cto-consent-modal{
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:min(720px,calc(100% - 32px));
  max-height:min(82vh,820px);
  overflow:auto;
  border:1px solid var(--consent-line);
  border-radius:18px;
  background:var(--consent-bg);
  box-shadow:0 24px 80px rgba(0,0,0,.55);
}

.cto-consent-modal__head,
.cto-consent-modal__foot{
  position:sticky;
  z-index:2;
  padding:20px 22px;
  background:rgba(6,17,31,.98);
}

.cto-consent-modal__head{
  top:0;
  border-bottom:1px solid var(--consent-line);
}

.cto-consent-modal__foot{
  bottom:0;
  border-top:1px solid var(--consent-line);
}

.cto-consent-modal__body{
  padding:18px 22px;
}

.cto-consent-category{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--consent-line);
}

.cto-consent-category:last-child{
  border-bottom:0;
}

.cto-consent-category h3{
  margin:0 0 5px;
  color:var(--consent-text);
  font-size:1.05rem;
}

.cto-consent-category small{
  color:var(--consent-muted);
  line-height:1.45;
}

.cto-switch{
  position:relative;
  display:inline-block;
  width:52px;
  height:30px;
}

.cto-switch input{
  width:0;
  height:0;
  opacity:0;
}

.cto-slider{
  position:absolute;
  inset:0;
  border:1px solid var(--consent-line);
  border-radius:999px;
  background:#26384b;
  cursor:pointer;
}

.cto-slider::before{
  content:"";
  position:absolute;
  width:22px;
  height:22px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  transition:.2s;
}

.cto-switch input:checked + .cto-slider{
  background:var(--consent-accent);
}

.cto-switch input:checked + .cto-slider::before{
  transform:translateX(22px);
}

.cto-switch input:disabled + .cto-slider{
  opacity:.65;
  cursor:not-allowed;
}

.cto-consent-reopen{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:99990;
  min-height:42px;
  padding:9px 13px;
  border:1px solid var(--consent-line);
  border-radius:999px;
  background:var(--consent-panel);
  color:var(--consent-text);
  font:inherit;
  cursor:pointer;
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}

@media(max-width:680px){
  .cto-consent-banner{
    bottom:10px;
    width:calc(100% - 20px);
    padding:19px;
  }

  .cto-consent-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .cto-consent-btn{
    width:100%;
  }

  .cto-consent-modal{
    width:calc(100% - 20px);
    max-height:90vh;
  }

  .cto-consent-category{
    grid-template-columns:1fr auto;
  }
}

@media print{
  #cto-consent-root,
  .cto-consent-reopen{
    display:none!important;
  }
}