/* Consent manager — banner + preferences modal. Brand-tokened, light + dark. */
.tc-banner { position:fixed; left:16px; right:16px; bottom:16px; z-index:9998; max-width:1100px; margin:0 auto;
  background:var(--surface); border:1px solid var(--border-strong); border-radius:14px; box-shadow:0 16px 44px rgba(16,24,40,.22);
  padding:16px 18px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.tc-banner:before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; border-radius:14px 0 0 14px; background:linear-gradient(#A3238E,#EC008C); }
.tc-btext { flex:1; min-width:260px; font-size:13px; color:var(--text-dim); line-height:1.55; }
.tc-btext b { color:var(--text); }
.tc-btext a { color:var(--brand-600); }
.tc-bacts { display:flex; gap:8px; flex-wrap:wrap; }

.tc-back { position:fixed; inset:0; z-index:9999; background:rgba(16,24,40,.5); display:flex; align-items:center; justify-content:center; padding:16px; }
.tc-modal { background:var(--surface); border:1px solid var(--border); border-radius:16px; width:100%; max-width:520px; max-height:88vh; overflow:auto; padding:22px 24px; box-shadow:0 24px 60px rgba(0,0,0,.4); }
.tc-title { font-family:var(--display); font-weight:700; font-size:17px; color:var(--text); margin-bottom:4px; }
.tc-sub { color:var(--text-dim); font-size:13px; margin:0 0 16px; }
.tc-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--border); }
.tc-name { font-weight:600; font-size:13.5px; color:var(--text); }
.tc-desc { font-size:12px; color:var(--text-faint); margin-top:2px; }
.tc-switch { position:relative; width:42px; height:24px; flex-shrink:0; display:inline-block; }
.tc-switch input { opacity:0; width:0; height:0; }
.tc-slider { position:absolute; inset:0; background:var(--border-strong); border-radius:9999px; transition:background .15s; cursor:pointer; }
.tc-slider:before { content:''; position:absolute; height:18px; width:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .15s; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.tc-switch input:checked + .tc-slider { background:var(--brand); }
.tc-switch input:checked + .tc-slider:before { transform:translateX(18px); }
.tc-switch input:disabled + .tc-slider { opacity:.6; cursor:not-allowed; }
.tc-acts { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; margin-top:18px; padding-top:16px; border-top:1px solid var(--border); }
@media(max-width:520px){ .tc-acts { justify-content:stretch; } .tc-acts .btn { flex:1; } }
