
:root{
  --glp-novian-navy:#1c3664;
  --glp-novian-navy-2:#24487f;
  --glp-novian-accent:#f7941d;
  --glp-novian-accent-2:#f7a943;
  --glp-novian-white:#ffffff;
  --glp-novian-muted:rgba(255,255,255,.72);
}
#glp-consent-banner,
#glp-consent-modal-wrap,
#glp-consent-fab,
#glp-consent-dns-wrap{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  box-sizing:border-box;
  color:var(--glp-novian-white);
}
#glp-consent-banner *,
#glp-consent-modal-wrap *{ box-sizing:border-box; }

/* Banner */
#glp-consent-banner{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  width:min(680px, calc(100vw - 32px));
  background:linear-gradient(180deg,var(--glp-novian-navy) 0%,var(--glp-novian-navy-2) 100%);
  border:1px solid rgba(247,148,29,.45);
  border-radius:12px;
  box-shadow:0 18px 50px rgba(0,0,0,.45);
  padding:20px 22px;
  z-index:2147483000;
  display:none;
}
#glp-consent-banner.is-open{ display:block; }
#glp-consent-banner h3{
  margin:0 0 8px 0;
  font-size:16px;
  font-weight:600;
  color:var(--glp-novian-accent-2);
  letter-spacing:.2px;
}
#glp-consent-banner p{
  margin:0 0 14px 0;
  font-size:13.5px;
  line-height:1.55;
  color:var(--glp-novian-muted);
}
#glp-consent-banner .glp-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.glp-novian-btn{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid transparent;
  border-radius:8px;
  padding:9px 16px;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  line-height:1;
  transition:transform .12s ease, background .15s ease, border-color .15s ease;
  font-family:inherit;
}
.glp-novian-btn:active{ transform:translateY(1px); }
.glp-novian-btn-primary{
  background:var(--glp-novian-accent);
  color:var(--glp-novian-navy);
  border-color:var(--glp-novian-accent);
}
.glp-novian-btn-primary:hover{ background:var(--glp-novian-accent-2); border-color:var(--glp-novian-accent-2); }
.glp-novian-btn-ghost{
  background:transparent;
  color:var(--glp-novian-white);
  border-color:rgba(255,255,255,.35);
}
.glp-novian-btn-ghost:hover{ border-color:var(--glp-novian-accent); color:var(--glp-novian-accent-2); }
.glp-novian-btn-link{
  background:transparent;
  color:var(--glp-novian-accent-2);
  border-color:transparent;
  text-decoration:underline;
}

/* Modal */
#glp-consent-modal-wrap{
  position:fixed;
  inset:0;
  background:rgba(4,10,20,.65);
  z-index:2147483100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
#glp-consent-modal-wrap.is-open{ display:flex; }
#glp-consent-modal{
  width:min(560px, 100%);
  max-height:min(86vh, 720px);
  overflow:auto;
  background:linear-gradient(180deg,var(--glp-novian-navy) 0%,var(--glp-novian-navy-2) 100%);
  border:1px solid rgba(247,148,29,.45);
  border-radius:12px;
  box-shadow:0 30px 70px rgba(0,0,0,.55);
  padding:22px 22px 18px 22px;
}
#glp-consent-modal header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
#glp-consent-modal h2{
  margin:0;
  font-size:18px;
  font-weight:600;
  color:var(--glp-novian-accent-2);
}
#glp-consent-modal .glp-close{
  background:transparent;
  border:none;
  color:var(--glp-novian-muted);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  padding:4px 6px;
}
#glp-consent-modal .glp-close:hover{ color:var(--glp-novian-accent-2); }
#glp-consent-modal > p.lede{
  margin:0 0 14px 0;
  font-size:13px;
  line-height:1.55;
  color:var(--glp-novian-muted);
}
.glp-cat{
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:10px;
  background:rgba(255,255,255,.025);
}
.glp-cat-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.glp-cat-title{
  font-size:14px;
  font-weight:600;
  color:var(--glp-novian-white);
}
.glp-cat-desc{
  margin:6px 0 0 0;
  font-size:12.5px;
  line-height:1.5;
  color:var(--glp-novian-muted);
}
/* Toggle */
.glp-toggle{
  position:relative;
  width:42px;
  height:24px;
  display:inline-block;
  flex:0 0 auto;
}
.glp-toggle input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  margin:0;
}
.glp-toggle .track{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.18);
  border-radius:999px;
  transition:background .15s ease;
}
.glp-toggle .thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  background:var(--glp-novian-white);
  border-radius:50%;
  transition:transform .15s ease, background .15s ease;
}
.glp-toggle input:checked ~ .track{ background:var(--glp-novian-accent); }
.glp-toggle input:checked ~ .thumb{ transform:translateX(18px); background:var(--glp-novian-navy); }
.glp-toggle input:disabled ~ .track{ background:rgba(247,148,29,.55); opacity:.85; }
.glp-toggle input:disabled{ cursor:not-allowed; }

#glp-consent-modal footer{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:6px;
}

/* FAB */
#glp-consent-fab{
  position:fixed;
  bottom:20px;
  left:20px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--glp-novian-navy);
  border:1px solid var(--glp-novian-accent);
  box-shadow:0 6px 14px rgba(0,0,0,.35);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:2147482900;
  padding:0;
  color:var(--glp-novian-accent);
  transition:transform .12s ease, background .15s ease;
}
#glp-consent-fab:hover{ background:var(--glp-novian-navy-2); transform:translateY(-1px); }
#glp-consent-fab svg{ width:18px; height:18px; pointer-events:none; }
@media (max-width:640px){
  #glp-consent-fab{ width:32px; height:32px; bottom:64px; left:12px; }
  #glp-consent-fab svg{ width:16px; height:16px; }
  #glp-consent-banner{ width:calc(100vw - 20px); bottom:64px; padding:16px; }
  #glp-consent-banner .glp-actions{ justify-content:stretch; }
  #glp-consent-banner .glp-actions .glp-novian-btn{ flex:1 1 auto; }
}

/* Do Not Sell footer link */
#glp-consent-dns-wrap{
  text-align:center;
  padding:10px 14px;
  font-size:12.5px;
  color:#6b7280;
}
#glp-consent-dns-wrap a,
#glp-consent-dns-wrap button{
  color:#1c3664;
  text-decoration:underline;
  font-weight:500;
  background:none;
  border:0;
  padding:0;
  margin:0;
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  cursor:pointer;
}
#glp-consent-dns-wrap a:hover,
#glp-consent-dns-wrap button:hover{ color:var(--glp-novian-accent); }
.glp-novian-dns-sep{ margin:0 8px; color:#9aa3af; }
