.opl-gdpr{
    --opl-bg:#fff;
    --opl-text:#0f172a;
    --opl-muted:#64748b;
    --opl-primary:#ef1c23;
    --opl-primary-text:#fff;
    --opl-border:rgba(0,0,0,.08);
    --opl-overlay:rgba(2,6,23,.55);
    --opl-font-base:14px;
    --opl-font-banner:13px;
    --opl-font-title:18px;
    --opl-font-btn:14px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    font-size:var(--opl-font-base);
    line-height:1.45;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    -webkit-tap-highlight-color: transparent;
}

/* overlay + modal base */
.opl-gdpr .opl-overlay{
    position:fixed; inset:0;
    background:var(--opl-overlay);
    display:none;
    z-index:999998;
}
.opl-gdpr .opl-modal{
    position:fixed; inset:0;
    display:none;
    z-index:999999;
    align-items:center;
    justify-content:center;
    padding:24px;
}
.opl-gdpr .opl-card{
    width:min(920px, 100%);
    background:var(--opl-bg);
    color:var(--opl-text);
    border:1px solid var(--opl-border);
    border-radius:10px;
    box-shadow:0 30px 60px rgba(0,0,0,.18);
    overflow:hidden;
}
.opl-gdpr .opl-card-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    border-bottom:1px solid var(--opl-border);
    font-weight:800;
    font-size:var(--opl-font-title);
}
.opl-gdpr .opl-close{
    width:36px;height:36px;
    border:0;background:transparent;
    cursor:pointer;
    border-radius:8px;
    font-size:20px;
    line-height:1;
    color:var(--opl-muted);
}
.opl-gdpr .opl-card-body{
    padding:16px 18px;
    font-size:14px;
    line-height:1.55;
}
.opl-gdpr .opl-muted{ color:var(--opl-muted); }

/* accordion */
.opl-gdpr .opl-acc{
    border-top:1px solid var(--opl-border);
}
.opl-gdpr .opl-acc-item{
    border-bottom:1px solid var(--opl-border);
}
.opl-gdpr .opl-acc-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 18px;
    cursor:pointer;
    user-select:none;
    font-weight:700;
}
.opl-gdpr .opl-acc-body{
    display:none;
    padding:0 18px 14px 18px;
    color:var(--opl-muted);
    font-weight:500;
}
.opl-gdpr .opl-pill{
    font-size:12px;
    font-weight:800;
    color:#16a34a;
}
.opl-gdpr .opl-switch{
    display:flex;
    align-items:center;
    gap:10px;
}
.opl-gdpr .opl-switch input{
    width:18px;height:18px;
}

/* footer buttons */
.opl-gdpr .opl-actions{
    display:flex;
    gap:14px;
    padding:16px 18px;
    border-top:1px solid var(--opl-border);
    justify-content:right;
    align-items:center;
    flex-wrap:wrap;
}
.opl-gdpr .opl-btn{
    height:44px;
    padding:0 18px;
    border-radius:0;
    border:2px solid var(--opl-primary);
    background:#fff;
    color:var(--opl-primary);
    font-weight:800;
    cursor:pointer;
    font-size:var(--opl-font-btn);
}
.opl-gdpr .opl-btn.primary{
    background:var(--opl-primary);
    color:var(--opl-primary-text);
}
.opl-gdpr .opl-btn.wide{
    min-width:220px;
}

/* small banner */
.opl-gdpr .opl-banner{
    position:fixed;
    left:16px;
    bottom:16px;
    width:min(520px, calc(100% - 32px));
    background:var(--opl-bg);
    color:var(--opl-text);
    border:1px solid var(--opl-border);
    border-radius:10px;
    box-shadow:0 20px 50px rgba(0,0,0,.18);
    z-index:999997;
    overflow:hidden;
}
.opl-gdpr .opl-banner .opl-banner-body{
    padding:16px 18px 10px 18px;
}
.opl-gdpr .opl-banner h3{
    margin:0 0 8px 0;
    font-size:var(--opl-font-title);
}
.opl-gdpr .opl-banner p{
    margin:0;
    font-size:var(--opl-font-banner);
    color:var(--opl-muted);
}
.opl-gdpr .opl-banner a{
    color:var(--opl-primary);
    font-weight:800;
    text-decoration:none;
}
.opl-gdpr .opl-banner .opl-banner-actions{
    display:flex;
    gap:12px;
    padding:12px 18px 16px 18px;
    justify-content:flex-end;
    flex-wrap:wrap;
}

/* bigger primary action */
.opl-gdpr .opl-btn.accept{
    height:52px;
    padding:0 26px;
    font-weight:900;
}

/* make it stand out in modal footer */
.opl-gdpr .opl-actions .opl-btn.accept{
    min-width:320px;
}

@media (max-width: 520px){
    .opl-gdpr .opl-actions .opl-btn.accept{ min-width:0; }
}

@media (max-width: 520px){
    .opl-gdpr .opl-modal{ padding:14px; }
    .opl-gdpr .opl-card{ border-radius:10px; }
    .opl-gdpr .opl-actions{ gap:10px; }
    .opl-gdpr .opl-btn{ width:100%; }
    .opl-gdpr .opl-btn.wide{ min-width:0; }
    .opl-gdpr .opl-manage{ right:12px; bottom:12px; }
}
 .opl-gdpr .opl-powered{
    text-align:center;
    font-size:12px;
    color:var(--opl-muted);
    padding:10px 0 14px 0;
    font-weight: 300;
}

.opl-gdpr .opl-manage{
    position:fixed;
    left:16px;
    bottom:16px;
    z-index:999996;
    height:40px;
    padding:0 14px;
    border-radius:0;
    border:2px solid var(--opl-primary);
    background:var(--opl-bg);
    color:var(--opl-primary);
    font-weight:800;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}

/* Gdy banner jest widoczny, chowamy przycisk zarządzania (żeby nie dublować UI) */
.opl-gdpr .opl-banner:not([style*="display: none"]) ~ .opl-manage{
    display:none;
}