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

#cb-consent-root {
  --cb-green: #23613f;
  --cb-dark: #1f2933;
  --cb-muted: #59636d;
  --cb-border: #d7ddd9;
  --cb-bg: #ffffff;
  --cb-soft: #f1f5f1;
  position: fixed;
  z-index: 2147483000;
  inset: auto 16px 16px 16px;
  font: 15px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--cb-dark);
}

.cb-panel {
  max-width: 920px;
  margin: 0 auto;
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0,0,0,.18);
  padding: 20px;
}

.cb-panel h2 { margin: 0 0 8px; font-size: 1.2rem; color: var(--cb-green); }
.cb-panel p { margin: 7px 0; }
.cb-panel a { color: var(--cb-green); }
.cb-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.cb-button {
  appearance:none; border:1px solid var(--cb-green); border-radius:7px; padding:10px 15px;
  cursor:pointer; font:inherit; font-weight:600; background:#fff; color:var(--cb-green);
}
.cb-button:hover, .cb-button:focus-visible { filter:brightness(.95); outline:3px solid rgba(35,97,63,.2); }
.cb-button-primary { background:var(--cb-green); color:#fff; }
.cb-button-muted { border-color:#8a949d; color:var(--cb-dark); }
.cb-hidden { display:none !important; }

.cb-modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.45); display:grid; place-items:center; padding:16px; }
.cb-modal { width:min(680px,100%); max-height:calc(100vh - 32px); overflow:auto; background:#fff; border-radius:12px; padding:22px; box-shadow:0 12px 40px rgba(0,0,0,.25); }
.cb-modal h2 { margin-top:0; color:var(--cb-green); }
.cb-category { border-top:1px solid var(--cb-border); padding:12px 0; }
.cb-category label { display:flex; gap:10px; align-items:flex-start; }
.cb-category input { width:18px; height:18px; margin-top:3px; accent-color:var(--cb-green); }
.cb-category small { display:block; color:var(--cb-muted); margin:4px 0 0 28px; }
.cb-required { color:var(--cb-muted); font-size:.9rem; }

@media (max-width:600px) {
  #cb-consent-root { inset: auto 8px 8px 8px; }
  .cb-panel { padding:16px; }
  .cb-button { flex:1 1 100%; }
}
