:root{
  --cmp-color:#4f46e5;
  --cmp-radius:16px;
  --cmp-fg:#fff;
  --cmp-bg:#111;
  --cmp-shadow: 0 12px 34px rgba(0,0,0,.35);
  --cmp-width: 1100px;
  --cmp-height: 120px;
}
.cmppro-root{ font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.cmp-banner{ position: fixed; left: 0; right: 0; z-index: 999999; color: var(--cmp-fg); display:flex; justify-content:center; }
.cmp-banner.fullwidth .cmp-inner{ max-width:100% !important; width:100% !important; }
.cmp-inner{ max-width: var(--cmp-width, 1100px); min-height: var(--cmp-height, auto); margin: 0 auto; padding: 16px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; background: var(--cmp-bg); border-top-left-radius: var(--cmp-radius); border-top-right-radius: var(--cmp-radius); box-shadow: var(--cmp-shadow); }
.cmp-msg{ flex: 1 1 520px; line-height: 1.5; }
.cmp-left{ display:flex; align-items:flex-start; gap:12px }
.cmp-logo svg{ height: 28px; width: 28px; display:block; }
.cmp-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.cmp-btn{ border:none; color:#fff; background: var(--cmp-color); padding: 10px 14px; border-radius: var(--cmp-radius); cursor:pointer; box-shadow: var(--cmp-shadow); font-weight:700 }
.cmp-link{ color:#ffb476; text-decoration: underline; }
/* Positions */
.cmp-pos-bottom{ bottom: 0; }
.cmp-pos-top{ top: 0; }
.cmp-pos-center{ inset: 0; display: grid; place-items: center; background: rgba(0,0,0,.35); }
.cmp-pos-center .cmp-inner{ background: var(--cmp-bg); border-radius: calc(var(--cmp-radius) + 8px); padding: 18px; }
/* Modal */
.cmp-modal{ position: fixed; inset: 0; background: rgba(0,0,0,.45); display: grid; place-items: center; z-index: 1000000; }
.cmp-modal[hidden]{ display: none; }
.cmp-modal-box{ background: #fff; color: #111; width: min(680px, 92vw); border-radius: var(--cmp-radius); padding: 22px; box-shadow: var(--cmp-shadow); }
.cmp-cats{ display: grid; grid-template-columns: repeat(3, minmax(120px,1fr)); gap: 12px; margin: 12px 0 16px; }
.cmp-modal-actions{ display: flex; justify-content: flex-end; gap: 10px; }
.cmp-dns-wrap{ margin-top: 8px; }
.cmp-dns-wrap .cmp-dns{ color: #0a58ca; text-decoration: underline; }
/* Buttons alt */
.cmp-btn.cmp-reject{ background: #4b5563; }
.cmp-btn.cmp-accept{ background: var(--cmp-color); }
.cmp-btn.cmp-save{ background: var(--cmp-color); }
