/* ── Section wrapper ── */
.results-section {
    display: flex;
    flex-direction: column;
}

/* ── URL Breakdown hero ── */
.url-breakdown-card {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.url-breakdown-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.url-breakdown-label {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--text-3);
}

/* ── Risk badge ── */
.url-risk-badge {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 0.2rem 0.6rem;
    border-radius: 3px;
    border: 1px solid var(--border);
    flex-shrink: 0;
}

.risk-badge-clean    { color: var(--success); background: var(--success-dim); border-color: rgba(34,197,94,0.25); }
.risk-badge-low      { color: var(--success); background: var(--success-dim); border-color: rgba(34,197,94,0.25); }
.risk-badge-medium   { color: var(--warning); background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.25); }
.risk-badge-high     { color: var(--danger);  background: var(--danger-dim);  border-color: rgba(239,68,68,0.25); }
.risk-badge-critical { color: #dc2626; background: rgba(220,38,38,0.12); border-color: rgba(220,38,38,0.4); }

/* ── Two-row URL decomposition ── */
.url-decomp-row {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    row-gap: 1rem;
    font-family: var(--font-mono);
    padding: 0.25rem 0;
}

.url-part-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 0.5rem;
    min-width: 0;
}

.url-part-col:first-child { padding-left: 0; }

.url-sep-col {
    padding: 0 0.1rem;
    flex-shrink: 0;
}

.url-part-text {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.url-part-label {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin-top: 0.3rem;
    white-space: nowrap;
    color: var(--text-3);
}

/* Text color variants */
.url-part-text.scheme            { color: var(--text-3); font-weight: 400; }
.url-part-text.subdomain         { color: var(--text-2); }
.url-part-text.subdomain-suspicious { color: var(--warning); }
.url-part-text.subdomain-www     { color: var(--text-3); font-weight: 400; }
.url-part-text.sep               { color: var(--text-3); font-weight: 400; }
.url-part-text.registered-domain { color: var(--accent); font-size: 1.2rem; }
.url-part-text.ip-address        { color: var(--warning); }
.url-part-text.path              { color: var(--text-2); font-weight: 400; }

/* Label color variants */
.url-part-label.label-accent { color: var(--accent); }
.url-part-label.label-warn   { color: var(--warning); }

/* ── Deception explanation line ── */
.url-deception-line {
    font-size: 0.84rem;
    color: var(--text-2);
    line-height: 1.6;
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.url-deception-line.warn {
    background: rgba(245, 158, 11, 0.07);
    border: 1px solid rgba(245, 158, 11, 0.2);
    border-left: 3px solid var(--warning);
}

.url-deception-line.medium {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-left: 3px solid var(--border-hover);
}

.deception-icon {
    flex-shrink: 0;
    font-size: 0.9rem;
    color: var(--warning);
    margin-top: 0.05rem;
}

/* ── Generic section card ── */
.url-section-card {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

.url-section-header {
    padding: 0.65rem 1.25rem;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--text-3);
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}

.url-section-body {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* ── Status rows ── */
.status-row {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    font-family: var(--font-mono);
    font-size: 0.78rem;
}

.status-row-label {
    color: var(--text-3);
    font-size: 0.72rem;
    min-width: 9rem;
    flex-shrink: 0;
}

.status-row-value {
    color: var(--text-2);
    word-break: break-all;
}

.status-row-value.good  { color: var(--success); }
.status-row-value.warn  { color: var(--warning); }
.status-row-value.bad   { color: var(--danger); }
.status-row-value.muted { color: var(--text-3); }

.tech-divider {
    height: 1px;
    background: var(--border);
    margin: 0.25rem 0;
}

/* ── Redirect narrative ── */
.redirect-narrative {
    font-size: 0.82rem;
    color: var(--text-2);
    line-height: 1.5;
    padding-bottom: 0.75rem;
    margin-bottom: 0.25rem;
    border-bottom: 1px solid var(--border);
}

/* ── Redirect path ── */
.redirect-hop {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--border);
}

.redirect-hop:last-child { border-bottom: none; }

.redirect-hop-url {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    color: var(--text-2);
    word-break: break-all;
    flex: 1;
    min-width: 0;
}

.redirect-hop-url.final { color: var(--accent); }

.redirect-hop-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
}

.redirect-hop-status {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    white-space: nowrap;
}

.redirect-hop-status.s-3xx  { color: #f59e0b; background: rgba(245,158,11,0.1); border: 1px solid rgba(245,158,11,0.2); }
.redirect-hop-status.s-2xx  { color: var(--success); background: var(--success-dim); border: 1px solid rgba(34,197,94,0.2); }
.redirect-hop-status.s-err  { color: var(--danger); background: var(--danger-dim); border: 1px solid rgba(239,68,68,0.2); }
.redirect-hop-status.s-loop { color: #f59e0b; background: rgba(245,158,11,0.1); border: 1px solid rgba(245,158,11,0.2); }

.redirect-arrow { color: var(--text-3); font-size: 0.7rem; }

/* ── Findings list ── */
.url-findings-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.url-finding {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-left-width: 3px;
    border-radius: var(--radius);
    padding: 0.875rem 1rem;
}

.url-finding[data-sev="critical"] { border-left-color: #ef4444; }
.url-finding[data-sev="high"]     { border-left-color: #f97316; }
.url-finding[data-sev="medium"]   { border-left-color: #f59e0b; }
.url-finding[data-sev="low"]      { border-left-color: #475569; }
.url-finding[data-sev="info"]     { border-left-color: var(--border); }

.url-finding-header { margin-bottom: 0.3rem; }

.url-finding-badge {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.url-finding[data-sev="critical"] .url-finding-badge { color: #ef4444; background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.25); }
.url-finding[data-sev="high"]     .url-finding-badge { color: #f97316; background: rgba(249,115,22,0.1); border: 1px solid rgba(249,115,22,0.25); }
.url-finding[data-sev="medium"]   .url-finding-badge { color: #f59e0b; background: rgba(245,158,11,0.1); border: 1px solid rgba(245,158,11,0.25); }
.url-finding[data-sev="low"]      .url-finding-badge { color: #64748b; background: rgba(100,116,139,0.1); border: 1px solid rgba(100,116,139,0.25); }
.url-finding[data-sev="info"]     .url-finding-badge { color: var(--accent); background: var(--accent-dim); border: 1px solid rgba(56,189,248,0.2); }

.url-finding-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-1);
    margin-bottom: 0.25rem;
}

.url-finding-desc {
    font-size: 0.8rem;
    color: var(--text-2);
    line-height: 1.6;
}

/* ── TLS findings within TLS section ── */
.tls-findings {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border);
}

/* ── Info toggle ── */
.info-toggle-row { margin-top: 0.25rem; }

.info-findings-toggle {
    background: none;
    border: none;
    color: var(--text-3);
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
    padding: 0.35rem 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.15s;
}

.info-findings-toggle:hover { color: var(--text-2); }

.info-findings-body {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.info-findings-body.hidden { display: none; }

/* ── Page snapshot ── */
.snapshot-limited {
    font-size: 0.8rem;
    color: var(--text-2);
    line-height: 1.6;
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.snapshot-limited-label {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    color: var(--text-3);
    background: var(--bg-3);
    border: 1px solid var(--border);
    flex-shrink: 0;
    margin-top: 0.15rem;
}

/* ── Tracker badges ── */
.tracker-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tracker-row-label {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--text-3);
    min-width: 9rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
}

.tracker-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.tracker-badge {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 0.2rem 0.55rem;
    border-radius: 3px;
    color: var(--warning);
    background: rgba(245,158,11,0.1);
    border: 1px solid rgba(245,158,11,0.2);
}

/* ── Param rows ── */
.param-group { display: flex; flex-direction: column; gap: 0.4rem; }

.param-group-label {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--text-3);
    padding-bottom: 0.2rem;
    border-bottom: 1px solid var(--border);
}

.param-row {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    font-family: var(--font-mono);
    font-size: 0.75rem;
}

.param-key {
    font-weight: 700;
    flex-shrink: 0;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.param-key.tracking {
    color: #f59e0b;
    background: rgba(245,158,11,0.1);
    border: 1px solid rgba(245,158,11,0.2);
}

.param-key.sensitive {
    color: var(--danger);
    background: var(--danger-dim);
    border: 1px solid rgba(239,68,68,0.2);
}

.param-desc { color: var(--text-2); font-size: 0.72rem; }

/* ── All clear message ── */
.url-all-clear {
    font-size: 0.82rem;
    color: var(--success);
    font-family: var(--font-mono);
    padding: 0.5rem 0;
}

/* ── Responsive ── */
@media (max-width: 600px) {
    .url-part-text { font-size: 0.88rem; max-width: 160px; }
    .url-decomp-row { row-gap: 0.75rem; }
    .status-row-label { min-width: 7rem; }
}
