#tcc-root {
  --consent-primary:#6d28d9; --consent-secondary:#2dd4bf; --consent-background:#0c0c0c;
  --consent-surface:rgba(20,18,27,.96); --consent-text:#d7e2ea; --consent-muted:rgba(215,226,234,.66);
  --consent-border:rgba(167,139,250,.28); --consent-radius:24px; --consent-shadow:0 24px 70px rgba(0,0,0,.48);
  position:relative; z-index:2147483000; color:var(--consent-text); font-family:inherit;
}
#tcc-root [hidden] { display:none!important; }
.tcc-banner { position:fixed; right:24px; bottom:24px; width:min(360px,calc(100vw - 48px)); max-height:calc(100svh - 48px); overflow:auto; padding:21px; border:1px solid var(--consent-border); border-radius:21px; background:var(--consent-surface); box-shadow:0 18px 50px rgba(0,0,0,.4),0 0 18px rgba(109,40,217,.08); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); animation:tcc-enter .32s ease-out both; }
.tcc-banner h2 { margin:0; color:var(--consent-text); font-size:1.125rem; font-weight:700; letter-spacing:-.015em; line-height:1.25; }
.tcc-dialog h2 { margin:0; color:var(--consent-text); font-size:1.28rem; font-weight:700; letter-spacing:-.02em; line-height:1.15; }
.tcc-banner p { margin:8px 0 15px; color:var(--consent-muted); font-size:.84rem; font-weight:300; line-height:1.55; }
.tcc-dialog>p { margin:12px 0 18px; color:var(--consent-muted); font-size:.94rem; font-weight:300; line-height:1.55; }
.tcc-shield { display:flex; width:32px; height:32px; align-items:center; justify-content:center; margin-bottom:12px; border:1px solid var(--consent-border); border-radius:50%; background:linear-gradient(135deg,rgba(109,40,217,.23),rgba(45,212,191,.09)); font-size:1rem; }
.tcc-actions { display:grid; grid-template-columns:.82fr 1.18fr; gap:9px; }
.tcc-dialog-actions { display:flex; flex-wrap:wrap; gap:9px; }
.tcc-button { min-height:44px; padding:.72rem 1rem; border:1px solid transparent; border-radius:999px; cursor:pointer; color:var(--consent-text); font-family:inherit; font-size:.72rem; font-weight:600; line-height:1; letter-spacing:.09em; text-transform:uppercase; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.tcc-button:hover { transform:translateY(-1px); }
.tcc-button--primary { border-color:rgba(196,181,253,.5); background:linear-gradient(115deg,var(--consent-primary),#7657df 58%,var(--consent-secondary)); box-shadow:0 8px 24px rgba(109,40,217,.25); }
.tcc-button--secondary { border-color:rgba(215,226,234,.24); background:rgba(255,255,255,.07); }
.tcc-button--ghost { border-color:var(--consent-border); background:transparent; }
.tcc-banner .tcc-button { width:100%; min-height:42px; padding:.65rem .75rem; font-size:.8125rem; letter-spacing:.035em; }
.tcc-banner-links { display:flex; flex-wrap:wrap; align-items:center; gap:3px 7px; margin-top:12px; color:var(--consent-muted); font-size:.7rem; line-height:1.4; }
.tcc-policy-link,.tcc-text-action { display:inline; margin:0; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; font:inherit; text-align:left; text-decoration:none; opacity:.78; transition:color .2s ease,opacity .2s ease; }
.tcc-policy-link:hover,.tcc-text-action:hover { color:var(--consent-text); text-decoration:underline; text-underline-offset:3px; opacity:1; }
.tcc-link-separator { opacity:.45; }
.tcc-overlay { position:fixed; inset:0; display:grid; place-items:center; overflow:auto; padding:20px; background:rgba(0,0,0,.72); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.tcc-dialog { position:relative; width:min(680px,100%); max-height:calc(100svh - 40px); overflow:auto; padding:clamp(24px,5vw,40px); border:1px solid var(--consent-border); border-radius:calc(var(--consent-radius) + 6px); background:var(--consent-surface); box-shadow:var(--consent-shadow); }
.tcc-close { position:absolute; top:14px; right:16px; display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--consent-border); border-radius:50%; background:rgba(255,255,255,.04); color:var(--consent-text); cursor:pointer; font-family:inherit; font-size:1.6rem; font-weight:300; line-height:1; }
.tcc-dialog h2 { padding-right:48px; font-size:clamp(1.45rem,4vw,2rem); }
.tcc-categories { display:grid; gap:10px; margin:24px 0; }
.tcc-category { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px; padding:18px; border:1px solid rgba(215,226,234,.12); border-radius:18px; background:rgba(255,255,255,.025); }
.tcc-category h3 { margin:0 0 6px; color:var(--consent-text); font-size:.96rem; font-weight:600; }
.tcc-category p { margin:0; color:var(--consent-muted); font-size:.84rem; font-weight:300; line-height:1.45; }
.tcc-switch { display:grid; grid-template-columns:46px; justify-items:center; gap:5px; cursor:pointer; }
.tcc-switch input { position:absolute; width:1px; height:1px; opacity:0; }
.tcc-switch-visual { position:relative; width:46px; height:25px; border:1px solid rgba(215,226,234,.3); border-radius:999px; background:rgba(255,255,255,.08); transition:background .2s,border-color .2s; }
.tcc-switch-visual::after { content:''; position:absolute; top:3px; left:3px; width:17px; height:17px; border-radius:50%; background:var(--consent-text); transition:transform .2s; }
.tcc-switch input:checked+.tcc-switch-visual { border-color:var(--consent-secondary); background:linear-gradient(90deg,var(--consent-primary),var(--consent-secondary)); }
.tcc-switch input:checked+.tcc-switch-visual::after { transform:translateX(21px); }
.tcc-switch input:disabled+.tcc-switch-visual { opacity:.72; }
.tcc-toggle-status { color:var(--consent-muted); font-size:.62rem; white-space:nowrap; }
.tcc-floating { position:fixed; left:18px; bottom:18px; display:grid; width:44px; height:44px; place-items:center; border:1px solid var(--consent-border); border-radius:50%; background:var(--consent-surface); box-shadow:0 10px 30px rgba(0,0,0,.34); color:var(--consent-text); cursor:pointer; font-family:inherit; font-size:1.2rem; font-weight:500; line-height:1; backdrop-filter:blur(16px); }
.tcc-button:focus-visible,.tcc-close:focus-visible,.tcc-floating:focus-visible,.tcc-policy-link:focus-visible,.tcc-text-action:focus-visible,.tcc-switch input:focus-visible+.tcc-switch-visual,[data-tcc-open]:focus-visible { outline:3px solid var(--consent-secondary); outline-offset:3px; }
.tcc-modal-open { overflow:hidden; }
.tcc-footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap:.65rem 1.25rem; margin:1.25rem 0; color:rgba(215,226,234,.5); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.tcc-footer-links a,.tcc-footer-links button { padding:0; border:0; background:transparent; color:inherit; cursor:pointer; font:inherit; letter-spacing:inherit; text-transform:inherit; text-decoration:none; }
.tcc-footer-links a:hover,.tcc-footer-links button:hover { color:#d7e2ea; }
@keyframes tcc-enter { from { opacity:0; translate:0 10px; } to { opacity:1; translate:0 0; } }
@media (max-width:600px) {
  .tcc-banner { right:auto; left:50%; bottom:12px; width:calc(100% - 24px); max-width:360px; max-height:calc(100svh - 24px); padding:18px; transform:translateX(-50%); }
  .tcc-banner h2 { font-size:1.0625rem; }
  .tcc-banner .tcc-button { min-height:40px; padding:.6rem .65rem; font-size:.75rem; }
  .tcc-dialog-actions { display:grid; grid-template-columns:1fr; }
  .tcc-button { width:100%; min-height:48px; }
  .tcc-overlay { align-items:end; padding:10px; }
  .tcc-dialog { width:100%; max-height:calc(100svh - 20px); border-radius:24px; }
  .tcc-category { grid-template-columns:1fr auto; padding:15px; }
  .tcc-floating { left:12px; bottom:12px; }
}
@media (max-width:349px) {
  .tcc-actions { grid-template-columns:1fr; gap:7px; }
  .tcc-banner-links { justify-content:center; text-align:center; }
}
@media (prefers-reduced-motion:reduce) { .tcc-banner,.tcc-button,.tcc-switch-visual,.tcc-switch-visual::after { animation:none!important; transition:none!important; } }
