:root{--cmp-bg:#101316;--cmp-fg:#fff;--cmp-muted:#cfd6dd;--cmp-accent:#2f6bff;--cmp-accent-2:#1e54d6;--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:#1e54d6;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)}
/* The cookie dialog owns its surfaces; shared dark adapters must not paint
   separate raised rectangles or shadows on its header and category rows. */
#cct-cookie-modal {
  --cookie-surface: #ffffff;
  --cookie-text: #17233a;
  --cookie-muted: #536178;
  --cookie-border: #e2e8f0;
  --cookie-switch-off: #cbd5e1;
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  max-height: 100dvh;
}
#cct-cookie-modal[hidden] { display: none; }
#cct-cookie-modal *, #cct-cookie-modal *::before, #cct-cookie-modal *::after { box-sizing: border-box; }
.cct-modal-backdrop { position: absolute; inset: 0; background: rgba(2, 6, 15, .64); }
#cct-cookie-modal .cct-modal-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(100%, 720px);
  max-height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  background: var(--cookie-surface) !important;
  color: var(--cookie-text) !important;
  border: 1px solid var(--cookie-border) !important;
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .28) !important;
  font-size: 1rem;
  line-height: 1.5;
}
#cct-cookie-modal :is(.cct-modal-header, .cct-modal-body, .cct-modal-desc, .cct-category, .cct-modal-footer, .cct-modal-actions) {
  background: transparent !important;
  box-shadow: none !important;
  border-color: var(--cookie-border) !important;
}
.cct-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 24px; flex-shrink: 0; }
#cct-cookie-modal .cct-modal-title { font-size: 1.15rem; font-weight: 800; color: var(--cookie-text) !important; }
.cct-modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 24px; scrollbar-width: thin; }
#cct-cookie-modal .cct-modal-desc { margin: 0; padding: 0 0 18px; color: var(--cookie-muted) !important; }
.cct-category { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid var(--cookie-border); }
.cct-cat-info { min-width: 0; overflow-wrap: anywhere; }
#cct-cookie-modal .cct-cat-title { color: var(--cookie-text) !important; font-weight: 700; }
#cct-cookie-modal .cct-cat-note { margin-top: 3px; font-size: .9rem; color: var(--cookie-muted) !important; }
.cct-modal-footer { flex-shrink: 0; padding: 18px 24px; border-top: 1px solid var(--cookie-border); display: flex; flex-direction: column; gap: 12px; }
.cct-modal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
#cct-cookie-modal .cct-btn {
  --site-control-rest-shadow: none;
  --site-control-hover-shadow: none;
  min-height: 44px;
  margin: 0;
  font: inherit;
  font-size: .875rem;
  font-weight: 800;
  line-height: 1.25;
  white-space: normal;
}
#cct-cookie-modal .cct-btn-primary { --pg-btn-depth: #1e54d6; }
#cct-cookie-modal .cct-banner-link { align-self: flex-start; color: #1e54d6; font-size: .875rem; text-underline-offset: 3px; }
/* Keep native inputs accessible to keyboard/screen readers, but fully clipped
   even when page-level disabled styles override opacity. Labels own touch. */
#cct-cookie-modal .cct-toggle { position: relative; display: inline-flex; align-items: center; flex: 0 0 48px; width: 48px; height: 44px; margin: 0; padding: 0; border: 0; background: transparent !important; cursor: pointer; touch-action: manipulation; }
#cct-cookie-modal .cct-toggle:has(input:disabled) { cursor: default; }
#cct-cookie-modal .cct-toggle input { position: absolute; width: 1px; height: 1px; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; opacity: 0 !important; pointer-events: none; }
#cct-cookie-modal .cct-toggle .track { display: block; width: 48px; height: 28px; border-radius: 999px; background: var(--cookie-switch-off); transition: background-color 160ms ease; }
#cct-cookie-modal .cct-toggle .thumb { position: absolute; width: 22px; height: 22px; left: 3px; top: 11px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); pointer-events: none; transition: transform 160ms ease; }
#cct-cookie-modal .cct-toggle input:checked + .track { background: #2f6bff; }
#cct-cookie-modal .cct-toggle input:checked + .track + .thumb { transform: translateX(20px); }
#cct-cookie-modal .cct-toggle input:focus-visible + .track { outline: 3px solid #729cff; outline-offset: 3px; }
@media (prefers-color-scheme: dark) {
  #cct-cookie-modal { --cookie-surface: #111b2c; --cookie-text: #f4f7fc; --cookie-muted: #c1cce0; --cookie-border: rgba(174, 194, 224, .18); --cookie-switch-off: #53647b; }
  #cct-cookie-modal .cct-banner-link { color: #8eafff; }
}
@media (max-width: 600px) {
  #cct-cookie-modal { padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
  #cct-cookie-modal .cct-modal-card { border-radius: 18px; }
  .cct-modal-header { padding: 16px; gap: 12px; }
  .cct-modal-body { padding: 0 16px; }
  .cct-category { gap: 16px; padding: 16px 0; }
  .cct-modal-footer { padding: 14px 16px; }
  .cct-modal-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  #cct-cookie-modal .cct-modal-actions .cct-btn { padding: 10px 8px; }
  .cct-banner-actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  #cct-cookie-modal .cct-toggle :is(.track, .thumb) { transition: none; }
}
