:root {
    --bg:#f7f9fc;
    --surface:#ffffff;
    --surface-2:#f0f4f9;
    --text:#101828;
    --muted:#667085;
    --border:#dfe5ec;
    --primary:#1267e5;
    --primary-2:#0b4fb7;
    --success:#18864b;
    --warning:#b96b00;
    --danger:#c9372c;
    --radius:16px;
    --shadow:0 12px 40px rgba(16,24,40,.07);
}

html[data-theme="dark"] {
    --bg:#0b1018;
    --surface:#111824;
    --surface-2:#172131;
    --text:#f4f7fb;
    --muted:#9eabbc;
    --border:#283547;
    --primary:#5c9cff;
    --primary-2:#80b3ff;
    --shadow:none;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    font-family:
        Inter,
        ui-sans-serif,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.55;
}

a {
    color:inherit;
}

.site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:color-mix(
        in srgb,
        var(--surface) 92%,
        transparent
    );
    backdrop-filter:blur(15px);
    border-bottom:1px solid var(--border);
}

.header-inner {
    max-width:1180px;
    margin:auto;
    padding:15px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.brand {
    font-size:20px;
    font-weight:800;
    text-decoration:none;
    letter-spacing:-.03em;
}

.brand span {
    color:var(--primary);
}

.header-actions {
    display:flex;
    align-items:center;
    gap:10px;
}

.icon-btn,
.btn {
    appearance:none;
    border:1px solid var(--border);
    background:var(--surface);
    color:var(--text);
    border-radius:10px;
    padding:10px 14px;
    cursor:pointer;
    text-decoration:none;
    font-weight:700;
}

.btn-primary {
    border-color:var(--primary);
    background:var(--primary);
    color:#fff;
}

.hero {
    max-width:1180px;
    margin:0 auto;
    padding:70px 20px 35px;
    text-align:center;
}

.eyebrow {
    display:inline-block;
    padding:6px 10px;
    border:1px solid var(--border);
    border-radius:999px;
    color:var(--primary);
    background:var(--surface);
    font-size:13px;
    font-weight:800;
    margin-bottom:18px;
}

h1 {
    font-size:clamp(38px,7vw,68px);
    line-height:1.02;
    letter-spacing:-.055em;
    margin:0 auto 18px;
    max-width:950px;
}

.hero p {
    max-width:720px;
    margin:0 auto;
    color:var(--muted);
    font-size:18px;
}

.scan-shell {
    max-width:900px;
    margin:30px auto 0;
    padding:0 20px;
}

.scan-card {
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:22px;
    box-shadow:var(--shadow);
}

.scan-form {
    display:flex;
    gap:10px;
}

.scan-form input {
    flex:1;
    min-width:0;
    border:1px solid var(--border);
    background:var(--bg);
    color:var(--text);
    border-radius:11px;
    padding:15px 16px;
    font-size:16px;
    outline:none;
}

.scan-form input:focus {
    border-color:var(--primary);
    box-shadow:0 0 0 3px color-mix(
        in srgb,
        var(--primary) 15%,
        transparent
    );
}

.small-note {
    margin:12px 2px 0;
    color:var(--muted);
    font-size:13px;
}

.grid {
    max-width:1180px;
    margin:45px auto;
    padding:0 20px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}

.card {
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:var(--surface);
    padding:22px;
}

.card-icon {
    font-size:25px;
    margin-bottom:10px;
}

.card h2 {
    font-size:18px;
    margin:0 0 6px;
}

.card p {
    color:var(--muted);
    margin:0;
    font-size:14px;
}

.section {
    max-width:1180px;
    margin:60px auto;
    padding:0 20px;
}

.section-head {
    margin-bottom:22px;
}

.section-head h2 {
    font-size:32px;
    letter-spacing:-.035em;
    margin:0 0 7px;
}

.section-head p {
    margin:0;
    color:var(--muted);
}

.badges {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.badge {
    border:1px solid var(--border);
    background:var(--surface);
    padding:8px 11px;
    border-radius:999px;
    font-size:13px;
}

.footer {
    border-top:1px solid var(--border);
    margin-top:70px;
}

.footer-inner {
    max-width:1180px;
    margin:auto;
    padding:25px 20px 40px;
    color:var(--muted);
    font-size:14px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
}

.footer-links {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
}

@media(max-width:800px) {
    .grid {
        grid-template-columns:1fr;
    }

    .scan-form {
        flex-direction:column;
    }

    .hero {
        padding-top:48px;
    }
}

/* =====================================================
   PHASE 2 — SCANNER RESULTS
   ===================================================== */

.result-wrap {
    max-width:1180px;
    margin:0 auto;
    padding:42px 20px 80px;
}

.result-top {
    display:grid;
    grid-template-columns:220px 1fr;
    gap:20px;
    margin-bottom:22px;
}

.score-card,
.summary-card,
.result-panel {
    border:1px solid var(--border);
    background:var(--surface);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

.score-card {
    padding:25px;
    text-align:center;
}

.score-number {
    font-size:64px;
    font-weight:900;
    line-height:1;
    letter-spacing:-.06em;
}

.score-grade {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin-top:12px;
    border-radius:50%;
    background:var(--surface-2);
    font-size:22px;
    font-weight:900;
}

.summary-card {
    padding:24px;
}

.summary-card h1 {
    font-size:30px;
    text-align:left;
    margin:0 0 7px;
    max-width:none;
    overflow-wrap:anywhere;
}

.summary-url {
    color:var(--muted);
    overflow-wrap:anywhere;
}

.metric-grid {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:12px;
    margin:20px 0;
}

.metric {
    border:1px solid var(--border);
    background:var(--surface);
    border-radius:12px;
    padding:15px;
}

.metric strong {
    display:block;
    font-size:21px;
}

.metric span {
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-top:3px;
}

.result-panel {
    padding:22px;
    margin-top:18px;
}

.result-panel h2 {
    margin:0 0 17px;
    font-size:23px;
}

.finding {
    border:1px solid var(--border);
    border-left-width:5px;
    border-radius:12px;
    padding:16px;
    margin-top:12px;
}

.finding-critical {
    border-left-color:#a40000;
}

.finding-high {
    border-left-color:var(--danger);
}

.finding-medium {
    border-left-color:#da8500;
}

.finding-low {
    border-left-color:#2473d4;
}

.finding-info {
    border-left-color:#7d8796;
}

.finding-head {
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:flex-start;
}

.finding-title {
    font-weight:800;
}

.severity {
    text-transform:uppercase;
    font-size:11px;
    letter-spacing:.07em;
    font-weight:900;
    padding:4px 7px;
    border-radius:999px;
    background:var(--surface-2);
}

.finding p {
    margin:9px 0 0;
    color:var(--muted);
}

.remediation {
    margin-top:11px;
    padding:12px;
    border-radius:9px;
    background:var(--surface-2);
}

.detail-table {
    width:100%;
    border-collapse:collapse;
}

.detail-table th,
.detail-table td {
    border-bottom:1px solid var(--border);
    padding:11px 8px;
    text-align:left;
    vertical-align:top;
}

.detail-table th {
    color:var(--muted);
    width:220px;
}

.result-actions {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:18px;
}

.good-box {
    border:1px solid color-mix(
        in srgb,
        var(--success) 35%,
        var(--border)
    );
    padding:16px;
    border-radius:12px;
}

@media(max-width:850px) {

    .result-top {
        grid-template-columns:1fr;
    }

    .metric-grid {
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:520px) {

    .metric-grid {
        grid-template-columns:1fr;
    }

    .detail-table,
    .detail-table tbody,
    .detail-table tr,
    .detail-table th,
    .detail-table td {
        display:block;
        width:100%;
    }

    .detail-table th {
        border-bottom:0;
        padding-bottom:2px;
    }

}
