:root{--cmp-bg:#101316;--cmp-fg:#fff;--cmp-muted:#cfd6dd;--cmp-accent:#2F6BFF;--cmp-accent-2:#2f6bff;--cmp-surface:#171b21;--cmp-border:#2a2f37;--cmp-radius:14px;--cmp-shadow:0 10px 30px rgba(0,0,0,.25)}
.ctt-cmp-link{color:var(--cmp-accent-2);text-decoration:underline}
.ctt-cmp-btn{appearance:none;border:1px solid var(--cmp-border);border-radius:10px;padding:.7rem 1rem;background:var(--cmp-surface);color:#fff;font-weight:600;cursor:pointer}
.ctt-cmp-btn--primary{background:var(--cmp-accent);border-color:var(--cmp-accent)}
.ctt-cmp-btn--secondary{background:transparent}
.ctt-cmp-btn--ghost{background:#222}
.ctt-cmp-btn:focus{outline:2px solid #fff;outline-offset:2px}
.ctt-cmp-banner{position:fixed;inset:auto 0 0 0;background:transparent;z-index:2147483000}
.ctt-cmp-banner[hidden]{display:none}
.ctt-cmp-banner__inner{margin:12px auto;max-width:980px;background:var(--cmp-bg);color:var(--cmp-fg);border:1px solid var(--cmp-border);border-radius:var(--cmp-radius);box-shadow:var(--cmp-shadow);padding:1rem;display:flex;gap:1rem;align-items:center}
.ctt-cmp-banner__content{flex:1;min-width:0}
.ctt-cmp-banner__title{font-size:1.05rem;margin:0 0 .25rem 0}
.ctt-cmp-banner__desc{margin:0;color:var(--cmp-muted)}
.ctt-cmp-banner__links{margin-top:.35rem;display:flex;gap:.5rem;flex-wrap:wrap}
.ctt-cmp-banner__actions{display:flex;gap:.5rem}
.ctt-cmp-preferences-link{position:fixed;right:12px;bottom:64px;background:#20242a;border:1px solid var(--cmp-border);color:#fff;border-radius:999px;padding:.45rem .75rem;z-index:2147483000;cursor:pointer}
@media (max-width:640px){.ctt-cmp-banner__inner{flex-direction:column;align-items:stretch}.ctt-cmp-banner__actions{justify-content:flex-end}}
.ctt-cmp-modal[hidden]{display:none}
.ctt-cmp-modal{position:fixed;inset:0;z-index:2147483646}
.ctt-cmp-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.ctt-cmp-modal__dialog{position:relative;margin:6vh auto;max-width:720px;background:var(--cmp-bg);color:#fff;border:1px solid var(--cmp-border);border-radius:var(--cmp-radius);box-shadow:var(--cmp-shadow)}
.ctt-cmp-modal__header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--cmp-border)}
.ctt-cmp-modal__title{margin:0;font-size:1.2rem}
.ctt-cmp-modal__close{background:transparent;color:#fff;border:none;font-size:1.5rem;cursor:pointer}
.ctt-cmp-modal__body{padding:1rem;display:flex;flex-direction:column;gap:1rem}
.ctt-cmp-modal__intro{color:var(--cmp-muted);margin:0 0 .25rem}
.ctt-cmp-category{border:1px solid var(--cmp-border);border-radius:10px;padding:.75rem;background:var(--cmp-surface)}
.ctt-cmp-category__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.ctt-cmp-category__title{margin:0;font-size:1rem}
.ctt-cmp-category__desc{margin:.35rem 0 0;color:var(--cmp-muted)}
.ctt-cmp-modal__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--cmp-border)}
.ctt-cmp-switch{display:inline-flex;align-items:center;gap:.5rem;color:#ccc}
.ctt-cmp-switch input{display:none}
.ctt-cmp-switch__ui{display:inline-block;width:42px;height:24px;background:#3a3f47;border-radius:999px;position:relative}
.ctt-cmp-switch__ui::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s ease}
.ctt-cmp-switch input:checked + .ctt-cmp-switch__ui{background:var(--cmp-accent)}
.ctt-cmp-switch input:checked + .ctt-cmp-switch__ui::after{transform:translateX(18px)}
.ctt-cmp-switch--locked{opacity:.7}
.ctt-cmp-modal :focus-visible{outline:2px solid #fff;outline-offset:2px}
.ctt-cmp-embed-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;background:#0f1318;background-size:cover;background-position:center;border:1px solid var(--cmp-border);border-radius:10px;padding:1rem;color:#fff;gap:.5rem}
.ctt-cmp-embed-note{color:var(--cmp-muted);font-size:.9rem}
/* Light UI styles aligned with CTT design (cct-*) */
.cct-cookie-banner{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:16px;
  z-index:2147483000;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 12px 36px rgba(0,0,0,.12);
  padding:16px;
  border-radius:16px;
  width:min(92vw, 960px);
}
.cct-banner-title{font-weight:700;color:#111;margin-bottom:4px}
.cct-banner-text{color:#374151;font-size:.95rem}
.cct-banner-link{color:#2F6BFF;text-decoration:underline}
.cct-banner-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.cct-btn{appearance:none;border-radius:10px;border:1px solid #e5e7eb;padding:.55rem .9rem;font-weight:600;cursor:pointer}
.cct-btn-ghost{background:#fff;color:#111;border-color:#e5e7eb}
.cct-btn-secondary{background:#fff;color:#111;border-color:#cbd5e1}
.cct-btn-primary{background:#2F6BFF;color:#fff;border-color:#2F6BFF}
.cct-btn:hover{filter:brightness(.98)}
.cct-modal[hidden]{display:none}
.cct-modal{position:fixed;inset:0;z-index:2147483646}
.cct-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.cct-modal-card{position:relative;margin:8vh auto;max-width:720px;background:#fff;color:#111;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 12px 36px rgba(0,0,0,.12);padding:0}
.cct-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e5e7eb}
.cct-modal-title{font-weight:700}
.cct-modal-desc{color:#374151;padding:12px 16px}
.cct-category{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-top:1px solid #f3f4f6}
.cct-cat-title{font-weight:600}
.cct-cat-note{font-size:.9rem;color:#6b7280}
.cct-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 16px;border-top:1px solid #e5e7eb}
.cct-toggle{position:relative;display:inline-flex;align-items:center}
.cct-toggle input{position:absolute;opacity:0;pointer-events:none}
.cct-toggle .track{display:inline-block;width:44px;height:24px;background:#e5e7eb;border-radius:999px;transition:background .2s ease}
.cct-toggle .thumb{position:absolute;width:20px;height:20px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s ease}
.cct-toggle input:checked + .track{background:#2F6BFF}
.cct-toggle input:checked + .track + .thumb{transform:translateX(20px)}
