.dnsbl-page {
    --dnsbl-ok: #77dc70;
    --dnsbl-watch: #f5b756;
    --dnsbl-listed: #ff7979;
    overflow: hidden;
}

.dnsbl-page .section-index::after { content: ""; }

.dnsbl-hero {
    position: relative;
    padding: clamp(38px, 4vw, 58px) 0 0;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(135deg, rgba(2, 10, 18, .52), rgba(6, 26, 40, .44));
}

.dnsbl-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr);
    align-items: center;
    gap: clamp(44px, 7vw, 112px);
    padding-bottom: clamp(34px, 4vw, 48px);
}

.dnsbl-hero-copy { max-width: 760px; }
.dnsbl-hero-meta { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.dnsbl-hero-meta .section-index { margin: 0; }
.dnsbl-beta {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border: 1px solid rgba(142, 234, 53, .42);
    color: var(--green);
    background: rgba(142, 234, 53, .07);
    font-size: .65rem;
    font-weight: 760;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dnsbl-hero h1 {
    max-width: 720px;
    margin-bottom: 20px;
    font-size: clamp(2.15rem, 3.8vw, 3.6rem);
    line-height: 1;
    letter-spacing: -.055em;
    font-weight: 690;
}

.dnsbl-hero-copy > p:not(.dnsbl-beta-note) {
    max-width: 670px;
    margin-bottom: 22px;
    color: #c0ced6;
    font-size: clamp(1rem, 1.25vw, 1.16rem);
    line-height: 1.7;
}

.dnsbl-beta-note {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--muted);
    font-size: .8rem;
}

.dnsbl-beta-note span,
.dnsbl-lookup-note span,
.dnsbl-registry-method span {
    display: inline-grid;
    place-items: center;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border: 1px solid var(--line-strong);
    color: var(--cyan);
    font-size: .67rem;
    font-weight: 800;
}

.dnsbl-zone-card {
    position: relative;
    min-height: 190px;
    padding: 30px;
    overflow: hidden;
    border: 1px solid var(--line-strong);
    background: rgba(2, 11, 19, .76);
}

.dnsbl-zone-card > span:first-child {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 24px;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.dnsbl-zone-card strong {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 28px;
    color: var(--cyan-soft);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.3rem, 2vw, 1.85rem);
    letter-spacing: -.04em;
}

.dnsbl-zone-card button,
.dnsbl-code-head button {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid var(--line-strong);
    color: var(--cyan-soft);
    background: rgba(17, 191, 255, .06);
    font-size: .74rem;
    font-weight: 700;
    cursor: pointer;
}

.dnsbl-zone-card button:hover,
.dnsbl-code-head button:hover { border-color: var(--cyan); background: rgba(17, 191, 255, .13); }
.dnsbl-zone-card button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; }

.dnsbl-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 0;
    border-top: 1px solid var(--line);
}

.dnsbl-metrics div { display: flex; flex-direction: column-reverse; gap: 7px; min-height: 86px; padding: 17px 24px; border-right: 1px solid var(--line); }
.dnsbl-metrics div:first-child { padding-left: 0; }
.dnsbl-metrics div:last-child { border-right: 0; }
.dnsbl-metrics dt { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.dnsbl-metrics dd { margin: 0; color: var(--text); font-size: 1.55rem; font-weight: 720; line-height: 1; }

.dnsbl-section { padding: clamp(44px, 4.5vw, 64px) 0; border-bottom: 1px solid var(--line); }
.dnsbl-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 42px; margin-bottom: 30px; }
.dnsbl-section-heading h2 { margin: 0 0 10px; font-size: clamp(1.8rem, 2.8vw, 3rem); line-height: 1.04; letter-spacing: -.035em; }
.dnsbl-section-heading p { max-width: 690px; margin: 0; color: var(--ink-muted); line-height: 1.65; }

.dnsbl-lookup-section,
.dnsbl-registry { color: var(--ink); background: #f2f4f1; }

.dnsbl-lookup-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(380px, 1.12fr); border: 1px solid var(--light-line); background: #fbfcfa; }
.dnsbl-lookup-form { padding: clamp(28px, 4vw, 50px); border-right: 1px solid var(--light-line); }
.dnsbl-lookup-form > label { display: block; margin-bottom: 10px; color: #24404f; font-size: .73rem; font-weight: 740; letter-spacing: .06em; text-transform: uppercase; }
.dnsbl-ip-control { display: grid; grid-template-columns: auto minmax(0, 1fr); border: 1px solid #a9c1cc; background: white; }
.dnsbl-ip-control > span { display: grid; place-items: center; padding: 0 14px; border-right: 1px solid #cad8de; color: #49717f; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; }
.dnsbl-ip-control input { min-width: 0; height: 56px; padding: 0 16px; border: 0; outline: 0; color: var(--ink); background: transparent; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1rem; }
.dnsbl-ip-control input::placeholder { color: #8297a1; }
.dnsbl-ip-control .button { grid-column: 1 / -1; min-height: 52px; margin: 6px; }
.dnsbl-ip-control:focus-within { border-color: var(--cyan-deep); box-shadow: 0 0 0 3px rgba(17, 191, 255, .12); }
.dnsbl-ip-control.is-invalid { border-color: #c85151; }
.dnsbl-field-error { margin: 8px 0 0; color: #a02e2e; font-size: .78rem; }
.dnsbl-lookup-note { display: flex; gap: 10px; margin: 24px 0 0; color: var(--ink-muted); font-size: .76rem; line-height: 1.55; }
.dnsbl-lookup-note span { border-color: #a8c1cc; color: var(--cyan-deep); }

.dnsbl-result { min-height: 348px; padding: clamp(28px, 4vw, 48px); color: var(--text); background: #061722; }
.dnsbl-result-idle { display: flex; align-items: center; gap: 26px; min-height: 250px; }
.dnsbl-result-idle h3 { margin-bottom: 6px; font-size: 1.25rem; }
.dnsbl-result-idle p { margin: 0; color: var(--muted); font-size: .88rem; }
.dnsbl-result-icon { position: relative; display: grid; place-items: center; flex: 0 0 68px; width: 68px; height: 68px; border: 1px solid var(--line-strong); border-radius: 50%; }
.dnsbl-result-icon::before,
.dnsbl-result-icon::after { content: ""; position: absolute; background: var(--cyan); }
.dnsbl-result-icon::before { width: 22px; height: 1px; }
.dnsbl-result-icon::after { width: 1px; height: 22px; }
.dnsbl-result-icon i { width: 8px; height: 8px; border: 1px solid var(--cyan); border-radius: 50%; }

.dnsbl-result.is-loading .dnsbl-result-icon { animation: dnsbl-pulse 1.2s ease-in-out infinite; }
@keyframes dnsbl-pulse { 50% { opacity: .45; transform: scale(.94); } }
.dnsbl-result-summary { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.dnsbl-result-mark { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border: 1px solid currentColor; border-radius: 50%; font-size: 1.2rem; }
.dnsbl-result-summary h3 { margin: 0 0 3px; font-size: 1.2rem; }
.dnsbl-result-summary p { margin: 0; color: var(--muted); font-size: .82rem; }
.dnsbl-result.is-clean .dnsbl-result-summary { color: var(--dnsbl-ok); }
.dnsbl-result.is-watch .dnsbl-result-summary { color: var(--dnsbl-watch); }
.dnsbl-result.is-listed .dnsbl-result-summary,
.dnsbl-result.is-error .dnsbl-result-summary { color: var(--dnsbl-listed); }
.dnsbl-result-summary p { color: #a9bbc4; }
.dnsbl-result-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 22px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.dnsbl-result-facts div { min-width: 0; padding: 13px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dnsbl-result-facts dt { margin-bottom: 5px; color: var(--muted); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.dnsbl-result-facts dd { margin: 0; overflow-wrap: anywhere; color: #eaf0f3; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .76rem; }
.dnsbl-result-sources h4 { margin: 0 0 10px; color: var(--muted); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.dnsbl-result-sources ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.dnsbl-result-sources li { padding: 6px 9px; border: 1px solid var(--line); color: #d9e4e9; font-size: .7rem; }
.dnsbl-result-sources li span { color: var(--muted); }

.dnsbl-integration { color: var(--ink); background: #f2f4f1; }
.dnsbl-integration .dnsbl-section-heading p { color: var(--ink-muted); }
.dnsbl-config-shell { display: grid; grid-template-columns: 170px minmax(0, 1.25fr) minmax(260px, .75fr); border: 1px solid var(--light-line); background: #fbfcfa; }
.dnsbl-config-tabs { display: flex; flex-direction: column; padding: 10px; border-right: 1px solid var(--light-line); }
.dnsbl-config-tabs button { min-height: 50px; padding: 0 15px; border: 0; border-bottom: 1px solid var(--light-line); color: var(--ink-muted); background: transparent; text-align: left; font-size: .8rem; font-weight: 720; cursor: pointer; }
.dnsbl-config-tabs button:hover { color: var(--cyan-deep); }
.dnsbl-config-tabs button[aria-selected="true"] { color: var(--cyan-deep); background: rgba(17, 191, 255, .08); box-shadow: inset 2px 0 var(--cyan-deep); }
.dnsbl-config-panel { min-width: 0; border-right: 1px solid var(--light-line); }
.dnsbl-code-head { display: flex; justify-content: space-between; align-items: center; min-height: 54px; padding: 8px 16px; border-bottom: 1px solid var(--light-line); color: var(--ink-muted); font-size: .75rem; }
.dnsbl-code-head button { min-height: 32px; }
.dnsbl-config-panel pre { min-height: 260px; margin: 0; padding: 26px; overflow: auto; color: #cfe9f4; background: #020c14; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .77rem; line-height: 1.75; tab-size: 4; }
.dnsbl-config-guidance { display: grid; align-content: start; }
.dnsbl-config-guidance article { display: flex; gap: 14px; padding: 24px; border-bottom: 1px solid var(--light-line); }
.dnsbl-config-guidance h3 { margin-bottom: 5px; color: var(--ink); font-size: .88rem; }
.dnsbl-config-guidance p { margin: 0; color: var(--ink-muted); font-size: .75rem; line-height: 1.55; }
.dnsbl-config-guidance a { display: inline-flex; align-items: center; gap: 5px; margin-top: 9px; color: var(--cyan-deep); font-size: .7rem; font-weight: 700; }
.dnsbl-config-guidance a:hover { color: var(--green); }

.dnsbl-registry { background: #e9efed; }
.dnsbl-registry-heading > strong { display: flex; align-items: baseline; gap: 8px; color: var(--ink-muted); font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.dnsbl-registry-heading > strong span { color: var(--cyan-deep); font-size: 2.1rem; line-height: 1; }
.dnsbl-registry-counts { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 28px; border-top: 1px solid #bccbd0; border-left: 1px solid #bccbd0; }
.dnsbl-registry-counts div { display: flex; align-items: baseline; gap: 9px; min-height: 58px; padding: 14px; border-right: 1px solid #bccbd0; border-bottom: 1px solid #bccbd0; background: rgba(255, 255, 255, .42); }
.dnsbl-registry-counts strong { color: var(--cyan-deep); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.25rem; }
.dnsbl-registry-counts span { color: #496370; font-size: .75rem; }
.dnsbl-published-heading { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 14px; }
.dnsbl-published-heading h3 { margin: 0; color: var(--ink); font-size: 1rem; }
.dnsbl-published-heading p { max-width: 680px; margin: 0; color: var(--ink-muted); font-size: .75rem; }
.dnsbl-source-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #bccbd0; border-left: 1px solid #bccbd0; }
.dnsbl-source { min-width: 0; padding: 17px; border-right: 1px solid #bccbd0; border-bottom: 1px solid #bccbd0; background: rgba(255, 255, 255, .42); }
.dnsbl-source > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.dnsbl-source strong { overflow: hidden; color: #12384a; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.dnsbl-source-status { flex: 0 0 auto; padding: 3px 6px; border: 1px solid #9caeb6; color: #536a75; background: #f6f8f7; font-size: .59rem; font-weight: 740; line-height: 1.2; }
.dnsbl-source-status.is-candidate { border-color: #76ae92; color: #176c49; background: #edf8f1; }
.dnsbl-source-status.is-permission { border-color: #c8a066; color: #865813; background: #fff8e9; }
.dnsbl-source-status.is-legacy { border-color: #aeb8bd; color: #697982; background: #f0f2f2; }
.dnsbl-source-status.is-review { border-color: #78aec0; color: #176784; background: #eef8fb; }
.dnsbl-source dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 10px; }
.dnsbl-source dl div { min-width: 0; }
.dnsbl-source dt { color: #72858e; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; }
.dnsbl-source dd { margin: 2px 0 0; overflow: hidden; color: #2f4f5e; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.dnsbl-source p { margin: 0; color: #627680; font-size: .75rem; line-height: 1.45; }
.dnsbl-registry-method { display: flex; gap: 10px; max-width: 950px; margin: 20px 0 0; color: #596f7a; font-size: .75rem; }
.dnsbl-registry-method span { border-color: #a8c1cc; color: var(--cyan-deep); }
.dnsbl-registry-method > span:last-child { display: inline; width: auto; height: auto; border: 0; color: #596f7a; font-size: inherit; font-weight: 400; }
.dnsbl-registry-method a { color: var(--cyan-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.dnsbl-policy { color: var(--ink); background: #e9efed; }
.dnsbl-policy-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bccbd0; border-left: 1px solid #bccbd0; }
.dnsbl-policy-grid article { min-height: 180px; padding: 25px; border-right: 1px solid #bccbd0; border-bottom: 1px solid #bccbd0; }
.dnsbl-policy-grid h3 { margin-bottom: 10px; color: var(--ink); font-size: 1rem; }
.dnsbl-policy-grid p { margin: 0; color: var(--ink-muted); font-size: .78rem; line-height: 1.62; }
.dnsbl-uce-notice { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 18px; padding-bottom: 18px; border-bottom: 1px solid #bccbd0; }
.dnsbl-uce-notice p { margin: 0; color: var(--ink-muted); font-size: .72rem; }
.dnsbl-uce-notice a { flex: 0 0 auto; color: var(--cyan-deep); font-size: .72rem; font-weight: 690; }
.dnsbl-uce-notice a:hover { color: var(--green); }
.dnsbl-policy-actions { display: flex; align-items: center; gap: 28px; padding-top: 28px; }
.dnsbl-policy-actions .button { min-height: 48px; }

@media (max-width: 1080px) {
    .dnsbl-hero-grid { grid-template-columns: 1fr 360px; gap: 40px; }
    .dnsbl-lookup-grid { grid-template-columns: 1fr 1fr; }
    .dnsbl-config-shell { grid-template-columns: 140px minmax(0, 1fr); }
    .dnsbl-config-panel { border-right: 0; }
    .dnsbl-config-guidance { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--light-line); }
    .dnsbl-config-guidance article { border-right: 1px solid var(--light-line); }
    .dnsbl-config-guidance article:last-child { border-right: 0; }
    .dnsbl-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dnsbl-policy-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
    .dnsbl-hero-grid { grid-template-columns: 1fr; }
    .dnsbl-hero h1 { font-size: clamp(2.1rem, 10vw, 3.25rem); }
    .dnsbl-zone-card { min-height: 190px; }
    .dnsbl-metrics { grid-template-columns: repeat(2, 1fr); }
    .dnsbl-metrics div { min-height: 90px; padding: 18px; border-bottom: 1px solid var(--line); }
    .dnsbl-metrics div:nth-child(odd) { padding-left: 0; }
    .dnsbl-metrics div:nth-child(even) { border-right: 0; }
    .dnsbl-lookup-grid { grid-template-columns: 1fr; }
    .dnsbl-lookup-form { border-right: 0; border-bottom: 1px solid var(--light-line); }
    .dnsbl-result { min-height: 300px; }
    .dnsbl-result-facts { grid-template-columns: repeat(2, 1fr); }
    .dnsbl-config-shell { grid-template-columns: 1fr; }
    .dnsbl-config-tabs { flex-direction: row; padding: 7px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--light-line); }
    .dnsbl-config-tabs button { flex: 1 0 100px; text-align: center; }
    .dnsbl-config-tabs button[aria-selected="true"] { box-shadow: inset 0 -2px var(--cyan); }
    .dnsbl-config-panel { border-right: 0; }
    .dnsbl-config-guidance { grid-column: auto; grid-template-columns: 1fr; }
    .dnsbl-config-guidance article { border-right: 0; }
    .dnsbl-source-grid { grid-template-columns: 1fr; }
    .dnsbl-registry-counts { grid-template-columns: repeat(2, 1fr); }
    .dnsbl-published-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
    .dnsbl-policy-grid { grid-template-columns: 1fr; }
    .dnsbl-policy-grid article { min-height: auto; }
    .dnsbl-uce-notice { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 480px) {
    .dnsbl-hero-meta { align-items: flex-start; flex-direction: column; }
    .dnsbl-zone-card { padding: 26px 22px; }
    .dnsbl-zone-card strong { font-size: 1.25rem; }
    .dnsbl-metrics div { padding: 16px 12px; }
    .dnsbl-result-facts { grid-template-columns: 1fr; }
    .dnsbl-code-head { align-items: flex-start; flex-direction: column; padding: 12px; }
    .dnsbl-config-panel pre { padding: 20px 15px; font-size: .7rem; }
    .dnsbl-policy-actions { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .dnsbl-result.is-loading .dnsbl-result-icon { animation: none; }
}
