:root {
    --ccc-bg: #1a1a2e; --ccc-text: #e0e0e0;
    --ccc-btn-accept-bg: #4CAF50; --ccc-btn-accept-text: #ffffff;
    --ccc-btn-reject-bg: transparent; --ccc-btn-reject-text: #e0e0e0;
    --ccc-btn-cust-bg: transparent; --ccc-btn-cust-text: #e0e0e0;
    --ccc-radius: 16px; --ccc-radius-sm: 8px;
    --ccc-shadow: 0 -4px 30px rgba(0,0,0,0.25); --ccc-z: 999999;
}
.ccc-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:calc(var(--ccc-z) - 1); opacity:0; transition:opacity 0.3s ease; pointer-events:none; }
.ccc-overlay.ccc-visible { opacity:1; pointer-events:auto; }
.ccc-banner { position:fixed; z-index:var(--ccc-z); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; font-size:14px; line-height:1.5; color:var(--ccc-text); box-sizing:border-box; }
.ccc-banner *, .ccc-banner *::before, .ccc-banner *::after { box-sizing:border-box; }
.ccc-banner-inner { background:var(--ccc-bg); border-radius:var(--ccc-radius); padding:24px 28px; box-shadow:var(--ccc-shadow); max-height:90vh; overflow-y:auto; }

.ccc-position-bottom { bottom:0; left:0; right:0; transform:translateY(100%); transition:transform 0.4s cubic-bezier(0.4,0,0.2,1); }
.ccc-position-bottom .ccc-banner-inner { border-radius:0; max-width:100%; }
.ccc-position-bottom.ccc-show { transform:translateY(0); }

.ccc-position-center { top:50%; left:50%; transform:translate(-50%,-50%) scale(0.9); opacity:0; transition:transform 0.35s cubic-bezier(0.4,0,0.2,1),opacity 0.35s ease; width:90%; max-width:560px; }
.ccc-position-center.ccc-show { transform:translate(-50%,-50%) scale(1); opacity:1; }

.ccc-position-corner { bottom:20px; left:20px; width:380px; max-width:calc(100vw - 40px); transform:translateY(30px); opacity:0; transition:transform 0.4s cubic-bezier(0.4,0,0.2,1),opacity 0.35s ease; }
.ccc-position-corner.ccc-show { transform:translateY(0); opacity:1; }

.ccc-title { font-size:18px; font-weight:700; margin:0 0 8px 0; color:#fff; }
.ccc-description { margin:0 0 16px 0; font-size:13px; opacity:0.85; line-height:1.6; }
.ccc-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.ccc-btn { padding:10px 22px; border-radius:50px; font-size:13px; font-weight:700; cursor:pointer; border:none; transition:transform 0.15s ease,box-shadow 0.15s ease; white-space:nowrap; line-height:1.2; }
.ccc-btn:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.2); }
.ccc-btn:active { transform:translateY(0); }
.ccc-btn-accept { background:var(--ccc-btn-accept-bg); color:var(--ccc-btn-accept-text); }
.ccc-btn-reject { background:var(--ccc-btn-reject-bg); color:var(--ccc-btn-reject-text); border:1.5px solid rgba(255,255,255,0.3); }
.ccc-btn-reject:hover { border-color:rgba(255,255,255,0.6); }
.ccc-btn-customize { background:var(--ccc-btn-cust-bg); color:var(--ccc-btn-cust-text); border:1.5px solid rgba(255,255,255,0.3); }
.ccc-btn-customize:hover { border-color:rgba(255,255,255,0.6); }

.ccc-categories { margin-bottom:18px; }
.ccc-category { padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.1); }
.ccc-category:last-child { border-bottom:none; }
.ccc-category-label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.ccc-category-checkbox { position:absolute; opacity:0; width:0; height:0; }
.ccc-toggle { position:relative; display:inline-block; width:44px; min-width:44px; height:24px; background:rgba(255,255,255,0.15); border-radius:12px; transition:background 0.25s ease; flex-shrink:0; margin-top:2px; }
.ccc-toggle::after { content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; background:#fff; border-radius:50%; transition:transform 0.25s cubic-bezier(0.4,0,0.2,1); }
.ccc-category-checkbox:checked + .ccc-toggle { background:var(--ccc-btn-accept-bg); }
.ccc-category-checkbox:checked + .ccc-toggle::after { transform:translateX(20px); }
.ccc-category-checkbox:disabled + .ccc-toggle { opacity:0.6; cursor:not-allowed; }
.ccc-category-info { display:flex; flex-direction:column; gap:2px; }
.ccc-category-info strong { font-size:14px; color:#fff; }
.ccc-always-on { font-size:11px; color:var(--ccc-btn-accept-bg); font-style:normal; font-weight:600; }
.ccc-category-desc { font-size:12px; opacity:0.7; line-height:1.4; }

.ccc-reconsent-btn { position:fixed; bottom:20px; left:20px; z-index:calc(var(--ccc-z) - 2); width:44px; height:44px; border-radius:50%; background:var(--ccc-bg); color:var(--ccc-text); border:1.5px solid rgba(255,255,255,0.2); cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(0,0,0,0.3); transition:transform 0.2s ease,box-shadow 0.2s ease,opacity 0.3s ease; opacity:0; }
.ccc-reconsent-btn.ccc-visible { opacity:1; }
.ccc-reconsent-btn:hover { transform:scale(1.1); box-shadow:0 4px 16px rgba(0,0,0,0.4); }

.ccc-view { animation:ccc-fadeIn 0.25s ease; }
@keyframes ccc-fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

.ccc-position-bottom .ccc-view { display:flex; align-items:center; gap:20px; max-width:1200px; margin:0 auto; }
.ccc-position-bottom .ccc-text { flex:1; min-width:0; }
.ccc-position-bottom .ccc-description { margin-bottom:0; }
.ccc-position-bottom .ccc-actions { flex-shrink:0; }
.ccc-position-bottom #ccc-customize-view { flex-direction:column; align-items:stretch; }
.ccc-position-bottom #ccc-customize-view .ccc-categories { columns:2; column-gap:24px; }
.ccc-position-bottom #ccc-customize-view .ccc-category { break-inside:avoid; }

@media (max-width:600px) {
    .ccc-banner-inner { padding:18px 16px; }
    .ccc-position-bottom .ccc-view { flex-direction:column; align-items:stretch; }
    .ccc-position-bottom .ccc-actions { flex-wrap:wrap; }
    .ccc-position-bottom #ccc-customize-view .ccc-categories { columns:1; }
    .ccc-position-corner { left:10px; right:10px; bottom:10px; width:auto; }
    .ccc-btn { padding:10px 16px; font-size:12px; flex:1; text-align:center; }
    .ccc-title { font-size:16px; }
    .ccc-reconsent-btn { bottom:12px; left:12px; width:40px; height:40px; }
}
