
/* Root & overlay */
#dhc25-root{position:fixed;inset:0;z-index:99999;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;line-height:1.5}
#dhc25-root.dhc25-hidden{display:none}
#dhc25-root .dhc25-overlay{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:saturate(120%) blur(2px)}

/* Modal box */
#dhc25-root .dhc25-box{
  position:absolute;max-width:var(--dhc25-maxw);width:min(92vw,var(--dhc25-maxw));left:50%;top:50%;
  transform:translate(-50%,-50%);background:var(--dhc25-bg);color:var(--dhc25-text);
  border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.35);
  padding:22px 20px; border:1px solid rgba(255,255,255,.08);
  animation: dhc25-in .25s ease-out both;
}
@keyframes dhc25-in{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}

#dhc25-root .dhc25-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
#dhc25-root .dhc25-header h2{margin:0;font-size:1.3rem;letter-spacing:.2px}
#dhc25-root .dhc25-desc{opacity:.96;margin:6px 0 0 0}

/* Categories (aligned rows with toggle on the right) */
#dhc25-root .dhc25-cats{display:grid;gap:8px;margin-top:14px}
#dhc25-root .dhc25-cat{
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.06);padding:10px 12px;border-radius:12px;
  border:1px solid rgba(255,255,255,.06);
}
#dhc25-root .dhc25-cat span{order:1;font-weight:600;font-size:.95rem}
#dhc25-root .dhc25-cat input[type="checkbox"]{
  order:2; appearance:none; -webkit-appearance:none; width:44px; height:26px; border-radius:999px;
  background:#6b7280; position:relative; outline:none; cursor:pointer; transition:background .18s ease;
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.08);
}
#dhc25-root .dhc25-cat input[type="checkbox"]::after{
  content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; transition:transform .18s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
#dhc25-root .dhc25-cat input[type="checkbox"]:checked{ background:var(--dhc25-primary); }
#dhc25-root .dhc25-cat input[type="checkbox"]:checked::after{ transform:translateX(18px); }
#dhc25-root .dhc25-cat input[type="checkbox"]:disabled{ opacity:.6; cursor:not-allowed }

/* Link-like button */
.dhc25-linklike{background:none;border:none;padding:10px 0 6px 0;text-decoration:underline;cursor:pointer;color:var(--dhc25-btn-text);font-weight:600}

/* Info (cookie list) */
.dhc25-info{margin-top:8px}
.dhc25-subtitle{font-size:1rem;margin:0 0 8px 0}
.dhc25-table-wrap{max-height:260px;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:12px}
.dhc25-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem;color:var(--dhc25-table-text,#fff)}
.dhc25-table thead th{
  position:sticky;top:0;background:rgba(255,255,255,.08);backdrop-filter:blur(2px);
  text-align:left;padding:10px;border-bottom:1px solid rgba(255,255,255,.12)
}
.dhc25-table td{padding:9px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
.dhc25-table tbody tr:nth-child(odd){background:rgba(255,255,255,.03)}

/* Actions */
#dhc25-root .dhc25-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px}
#dhc25-root .dhc25-btn{
  border-radius:12px;border:0;padding:12px 14px;cursor:pointer;font-weight:700;letter-spacing:.2px;
  transition:transform .06s ease, box-shadow .06s ease; outline-offset:2px
}
#dhc25-root .dhc25-btn:active{ transform:translateY(1px) }
#dhc25-root .dhc25-accept-all{background:var(--dhc25-primary);color:var(--dhc25-btn-text)}
#dhc25-root .dhc25-reject-all{background:#374151;color:#fff}
#dhc25-root .dhc25-customize{background:var(--dhc25-secondary);color:var(--dhc25-btn-text)}
#dhc25-root .dhc25-save{background:var(--dhc25-primary);color:var(--dhc25-btn-text);width:100%;margin-top:8px}

/* Footer links (inside modal) */
.dhc25-links{margin-top:12px;font-size:.9rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap;opacity:.95}
.dhc25-links ul{display:flex;gap:12px;margin:0;padding:0;list-style:none}
.dhc25-links a{color:#fff;text-decoration:underline}
.dhc25-links-title{font-weight:700;opacity:.9}

/* Floating manage button */
#dhc25-root .dhc25-manage-floating{
  position:absolute;right:12px;bottom:12px;border-radius:999px;border:0;padding:10px 12px;background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.2);cursor:pointer
}

/* Persistent footer link — discreet */
.dhc25-footer-link{
  position:fixed;right:12px;bottom:12px;z-index:99998;
  border:1px solid rgba(0,0,0,.12);
  border-radius:999px;padding:6px 10px;cursor:pointer;
  background:rgba(17,24,39,.65);color:#fff;
  box-shadow:0 6px 14px rgba(0,0,0,.16);
  font-weight:600;letter-spacing:.2px;font-size:.85rem;line-height:1;
  backdrop-filter:saturate(120%) blur(4px);
  opacity:.88; text-decoration:none;
  transition:opacity .15s ease, transform .12s ease, background .15s ease, box-shadow .15s ease;
}
.dhc25-footer-link:hover, .dhc25-footer-link:focus{
  opacity:1; transform:translateY(-1px);
  background:rgba(17,24,39,.82); box-shadow:0 8px 18px rgba(0,0,0,.22);
  outline:2px solid rgba(255,255,255,.2); outline-offset:2px;
}

@media (max-width: 560px){
  #dhc25-root .dhc25-actions{grid-template-columns:1fr;gap:8px}
  #dhc25-root .dhc25-box{padding:18px 16px}
  .dhc25-table th,.dhc25-table td{padding:8px}
  .dhc25-footer-link{ font-size:.8rem; padding:6px 9px }
}

/* Hidden util */
.dhc25-hidden{display:none}

/* Frontend table styling */
.dhc25-frontend .dhc25-table{color:var(--dhc25-table-text,#333)}
.dhc25-frontend .dhc25-table thead th{color:var(--dhc25-table-text,#333)}
.dhc25-frontend .dhc25-table td{color:var(--dhc25-table-text,#333)}
