/* forensicprivacy.io — Executive Light Mode */
/* Design: "Consultancy Grade" — Big 4, Advisory, Court Document Aesthetic */

/* Fonts werden lokal via /static/css/fonts.css geladen (self-hosted, kein Google-Request). */

* { margin: 0; padding: 0; box-sizing: border-box; }
:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }

/* ============================================================
   DESIGN SYSTEM — Single Source of Truth
   Alle Werte hier definiert. Nie im Code direkt überschreiben.
   ============================================================ */
:root {
    /* --- Farben --- */
    --navy: #1a1a1a;
    --oxford: #1a1a1a;
    --slate: #64748B;
    --steel: #6B7B8F;
    --border: #E2E8F0;
    --border-dark: #CBD5E1;
    --bg: #FFFFFF;
    --bg-warm: #FAFAF8;
    --bg-alt: #F8FAFC;
    --surface: #FFFFFF;
    --gold: #B89550;
    --gold-light: rgba(184, 149, 80, 0.08);
    --crimson: #991B1B;
    --crimson-light: rgba(153, 27, 27, 0.06);
    --success: #166534;
    --success-light: rgba(22, 101, 52, 0.06);
    --accent: #991B1B;
    --accent-hover: #7F1616;
    --black: #1a1a1a;
    --mid: #475569;
    --light: #64748B;
    --alert: #991B1B;
    --text-muted: #64748B;
    --sage: #166534;
    --sage-light: rgba(22, 101, 52, 0.06);
    --paper: #FAFAF8;
    --navy-light: #e8edf3;

    /* --- Typografie: Headlines --- */
    --h1-hero: 2.4rem;            /* Startseite Hero */
    --h1-hero-mobile: 1.5rem;
    --h1-subpage: 2.0rem;         /* Subpages (hero-compact) */
    --h1-legal: 1.8rem;           /* Impressum, AGB etc. */
    --h1-scan: 1.6rem;            /* Scan-Ergebnis */
    --h2-section: 1.4rem;         /* Sektions-Headlines */
    --h2-page: 1.1rem;            /* Legal, Dashboard, Settings */
    --h3-card: 1.0rem;            /* ALLE Cards einheitlich */

    /* --- Typografie: Body --- */
    --text-base: 15px;
    --text-body: 0.85rem;         /* Standard-Fliesstext */
    --text-body-lg: 0.95rem;      /* Subtitles, section-sub */
    --text-small: 0.78rem;        /* Hints, nav-links, badges */
    --text-tiny: 0.72rem;         /* Labels, uppercase tags */
    --text-hero-sub: 1.05rem;     /* Hero-Untertitel */
    --text-min: 0.72rem;          /* Absolute Untergrenze (WCAG) */

    /* --- Typografie: UI-Elemente --- */
    --text-input: 1rem;           /* Domain-Eingabefeld */
    --text-input-placeholder: 0.92rem;
    --text-btn: 0.85rem;          /* Buttons */
    --text-select: 0.82rem;       /* Jurisdiction-Select */
    --text-price: 2rem;           /* Preisanzeige gross */
    --text-price-sm: 1.1rem;      /* Preisanzeige klein (Upsell) */

    /* --- Spacing --- */
    --hero-max-w: 740px;
    --form-max-w: 700px;
    --content-max-w: 960px;
    --legal-max-w: 680px;

    /* --- Fonts --- */
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-mono: 'Roboto Mono', 'SF Mono', Monaco, monospace;
}

body {
    font-family: var(--font-sans);
    background: var(--bg);
    color: var(--oxford);
    line-height: 1.7;
    font-size: var(--text-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Serif utility — headlines, authority elements */
.serif, h1, h2 { font-family: var(--font-serif); }

/* Monospace utility — IPs, hashes, technical data */
.mono { font-family: var(--font-mono); font-size: var(--text-body); color: var(--navy); word-break: break-all; }

/* === TERM TOOLTIPS — CSS-only === */
.term-help {
    border-bottom: 1px dotted var(--steel);
    cursor: help;
    position: relative;
    white-space: nowrap;
}
.term-help:hover::after, .term-help:focus::after {
    content: attr(data-tip);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--navy);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 400;
    font-family: 'Inter', sans-serif;
    line-height: 1.5;
    padding: 0.5rem 0.75rem;
    white-space: normal;
    width: max-content;
    max-width: 280px;
    z-index: 100;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.term-help:hover::before, .term-help:focus::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: var(--navy);
    z-index: 101;
    pointer-events: none;
}

/* === NAVIGATION === */
.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 4rem;
    height: 56px;
    background: var(--bg);
    border-bottom: 3px solid var(--crimson);
    position: sticky;
    top: 0;
    z-index: 100;
}
.logo {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}
.logo-img {
    display: block;
    width: 52px;
    height: auto;
}
.logo-brand {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.logo-text {
    font-size: 1.05rem;
    font-weight: 900;
    color: #111827;
    letter-spacing: -0.02em;
    font-family: 'Inter', Helvetica, Arial, sans-serif;
    line-height: 1.15;
}
.logo-accent { color: var(--crimson); }
.logo-sub {
    font-size: 0.55rem;
    color: #9ca3af;
    font-family: 'Courier New', Consolas, monospace;
    letter-spacing: 0.01em;
    line-height: 1;
    margin-top: 2px;
}
@media (max-width: 900px) {
    .logo-sub { display: none; }
}
.nav-links { display: flex; align-items: center; gap: 0; }
.nav-links a {
    color: var(--oxford);
    text-decoration: none;
    padding: 0 0.9rem;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: color 0.15s;
    line-height: 56px;
    white-space: nowrap;
}
.nav-links a:hover { color: var(--crimson); }
.nav-links a.active { color: var(--crimson); font-weight: 700; }
.nav-highlight { color: var(--crimson) !important; font-weight: 600 !important; }
.btn-nav {
    background: var(--crimson) !important;
    color: #fff !important;
    font-weight: 600;
    padding: 0.4rem 1.2rem !important;
    font-size: 0.78rem !important;
    border: 1px solid var(--crimson) !important;
    line-height: 1.4 !important;
    margin-left: 0.3rem;
}
.btn-nav:hover { background: var(--accent-hover) !important; }

/* Nav Dropdown */
.nav-dropdown { position: relative; }
.nav-dropdown-toggle {
    background: none; border: none; cursor: pointer;
    color: var(--oxford); font-size: 0.78rem; font-weight: 500;
    padding: 0 0.9rem; line-height: 56px; font-family: inherit;
    letter-spacing: 0.01em; white-space: nowrap;
}
.nav-dropdown-toggle:hover { color: var(--navy); }
.nav-caret { font-size: 0.72rem; margin-left: 0.15rem; vertical-align: middle; }
.nav-dropdown-menu {
    display: none; position: absolute; top: 100%; left: 0;
    background: var(--bg); border: 1px solid var(--border);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    min-width: 320px; z-index: 200; padding: 0.5rem 0;
}
.nav-dropdown:hover .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a {
    display: flex; flex-direction: column; gap: 0.15rem;
    padding: 0.7rem 1.2rem !important; line-height: 1.4 !important;
    border-bottom: 1px solid var(--border);
}
.nav-dropdown-menu a:last-child { border-bottom: none; }
.nav-dropdown-menu a:hover { background: var(--bg-alt); }
.nav-dropdown-menu a strong {
    font-size: var(--text-body); color: var(--navy); font-weight: 600;
}
.nav-dropdown-menu a span {
    font-size: 0.72rem; color: var(--steel); font-weight: 400;
}

.nav-logout {
    background: none; border: none; color: var(--oxford); cursor: pointer;
    font-size: 0.78rem; padding: 0 0.9rem; line-height: 56px;
}
.nav-logout:hover { color: var(--crimson); }

/* Hamburger Button — hidden on desktop */
.nav-hamburger {
    display: none; background: none; border: none; cursor: pointer;
    flex-direction: column; gap: 5px; padding: 0.6rem; z-index: 201;
}
.nav-hamburger span {
    display: block; width: 22px; height: 2.5px; background: var(--navy); border-radius: 1px;
    transition: transform 0.2s, opacity 0.2s;
}
.navbar.nav-open .nav-hamburger span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.navbar.nav-open .nav-hamburger span:nth-child(2) { opacity: 0; }
.navbar.nav-open .nav-hamburger span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

.lang-switch {
    border: 1px solid var(--border) !important;
    padding: 0.15rem 0.5rem !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    color: var(--oxford) !important;
    letter-spacing: 0.08em;
    line-height: 1.4 !important;
}
.lang-switch:hover { color: var(--crimson) !important; border-color: var(--crimson) !important; }
.badge-free { background: var(--success); color: #fff; font-size: 0.72rem; padding: 0.08rem 0.35rem; font-weight: 700; letter-spacing: 0.04em; vertical-align: middle; margin-left: 0.2rem; text-transform: uppercase; }
.credit-badge {
    background: var(--bg-alt); color: var(--navy); padding: 0.15rem 0.5rem;
    font-size: 0.7rem; font-weight: 700; border: 1px solid var(--border);
    font-family: 'Roboto Mono', monospace;
}

/* === MAIN === */
main { max-width: var(--content-max-w); margin: 0 auto; padding: 0 2rem; }

/* === HERO === */
.hero { padding: 5rem 0 3rem; max-width: var(--hero-max-w); }
.hero-badge {
    display: inline-block;
    color: var(--crimson);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    padding: 0.3rem 0;
    border-bottom: 2px solid var(--crimson);
    background: none;
    border-top: none; border-left: none; border-right: none;
}
.hero h1 {
    font-family: var(--font-serif);
    font-size: var(--h1-hero);
    font-weight: 700;
    color: var(--navy);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin-bottom: 1.5rem;
}
.hero-sub, .subtitle {
    font-size: var(--text-hero-sub);
    color: var(--oxford);
    line-height: 1.8;
    margin-bottom: 2.5rem;
    font-weight: 400;
    max-width: 560px;
}
.hero-cta { display: flex; gap: 1rem; margin-bottom: 1rem; }
.hero-hint { color: var(--steel); font-size: 0.78rem; margin-top: 0.75rem; }
.hero-quick-actions { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; flex-wrap: wrap; }
.hero-quick-actions a { color: var(--navy); font-size: 0.78rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--border-dark); }
.hero-quick-actions a:hover { border-color: var(--crimson); }
.hero-qa-sep { color: var(--steel); font-size: 0.7rem; }

/* Hero compact (subpages) */
.hero-compact { padding: 3rem 0 2rem; max-width: 680px; }
.hero-compact h1 { font-size: var(--h1-subpage); }

/* === HERO TRUST BAR (inline stats) === */
.hero-trust-bar {
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem 0;
    margin-top: 1.2rem; padding: 0.75rem 0;
    border-top: 1px solid var(--border);
    font-size: var(--text-small); color: var(--steel);
}
.hero-trust-item { display: flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
.hero-trust-num { font-family: var(--font-mono); font-weight: 700; color: var(--oxford); font-size: var(--text-small); }
.hero-trust-sep { color: var(--border-dark); padding: 0 0.5rem; }
@media (max-width: 768px) {
    .hero-trust-sep { display: none; }
    .hero-trust-item { width: 50%; }
}

/* === DATA SOURCES (trust bar) === */
.data-sources {
    display: flex; align-items: center; gap: 1.5rem;
    margin-top: 2rem; margin-bottom: 2.5rem; padding: 1.2rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.data-sources-label {
    font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--steel); font-weight: 700; white-space: nowrap;
}
.data-sources-list {
    display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center;
}
.data-source-tag {
    font-size: 0.72rem; color: var(--oxford); font-weight: 500;
    padding: 0.2rem 0.6rem; border: 1px solid var(--border);
    font-family: 'Roboto Mono', monospace; letter-spacing: 0.02em;
    background: var(--bg-alt);
}

/* === BUTTONS === */
.btn {
    display: inline-block;
    padding: 0.7rem 1.8rem;
    font-weight: 600;
    font-size: var(--text-body);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid transparent;
    letter-spacing: 0.02em;
    font-family: 'Inter', sans-serif;
}
.btn-primary { background: var(--crimson); color: #fff; border-color: var(--crimson); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-accent { background: var(--crimson); color: #fff; border-color: var(--crimson); }
.btn-accent:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-lg { padding: 0.85rem 2.5rem !important; font-size: 0.92rem !important; }
.btn-outline {
    background: transparent; color: var(--navy);
    border: 1px solid var(--border-dark); padding: 0.7rem 1.8rem;
}
.btn-outline:hover { border-color: var(--navy); }
.btn-small { padding: 0.35rem 1rem; font-size: 0.78rem; }
.btn-ghost { background: transparent; color: var(--oxford); border: 1px solid var(--border); }
.btn-ghost:hover { color: var(--navy); border-color: var(--navy); }

/* === SCAN FORM === */
.scan-form { max-width: var(--form-max-w); }
.input-row { display: flex; gap: 0; margin-bottom: 0.5rem; }
.url-input {
    flex: 1; padding: 1rem 1.2rem; font-size: var(--text-input);
    border: 1px solid var(--border-dark); border-right: none;
    background: var(--bg); color: var(--navy); outline: none;
    font-family: var(--font-sans);
    min-width: 0;
}
.url-input:focus { border-color: var(--crimson); }
.url-input::placeholder { color: var(--steel); font-size: var(--text-input-placeholder); }
.scan-btn {
    padding: 1rem 2.2rem; font-size: var(--text-btn); font-weight: 700;
    background: var(--crimson); color: #fff; border: 1px solid var(--crimson);
    cursor: pointer; letter-spacing: 0.04em; text-transform: uppercase;
    font-family: var(--font-sans);
    white-space: nowrap; flex-shrink: 0;
}
.scan-btn:hover { background: var(--accent-hover); }
.jurisdiction-select {
    padding: 0.7rem 0.8rem; font-size: var(--text-select); font-family: var(--font-sans);
    background: var(--crimson); color: rgba(255,255,255,0.9);
    border: 1px solid var(--crimson); border-right: none;
    appearance: auto; cursor: pointer; min-width: 0; max-width: 280px;
    flex-shrink: 0;
}
.jurisdiction-select:focus { border-color: var(--accent-hover); outline: none; }
.input-row-secondary { margin-top: 0; }
.az-input {
    flex: 1; padding: 0.7rem 1.2rem; font-size: var(--text-body);
    border: 1px solid var(--border-dark); border-top: none;
    background: var(--bg); color: var(--navy); outline: none;
    font-family: 'Inter', sans-serif;
}
.az-input:focus { border-color: var(--crimson); }
.az-input::placeholder { color: var(--steel); font-size: var(--text-body); }

/* === SCAN OPTIONS === */
.scan-options { display: flex; gap: 0; margin-bottom: 0.5rem; }
.option { cursor: pointer; flex: 1; }
.option input { display: none; }
.option-card {
    display: block; padding: 1rem; text-align: center;
    border: 1px solid var(--border); border-right: none;
    transition: all 0.15s; background: var(--bg);
}
.option:last-child .option-card { border-right: 1px solid var(--border); }
.option input:checked + .option-card { border-color: var(--navy); background: var(--bg-alt); }
.option-card strong { display: block; color: var(--navy); font-size: var(--text-body); font-weight: 700; }
.option-card small { display: block; color: var(--steel); font-size: 0.72rem; margin: 0.2rem 0; }
.option-card.highlight { border-color: var(--navy); }
.price { color: var(--navy); font-weight: 800; font-size: 1rem; font-family: 'Roboto Mono', monospace; }

/* === PERSONA GATE === */
.persona-section { padding: 4rem 0; border-top: 1px solid var(--border); }
.persona-label {
    font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.15em;
    color: var(--steel); font-weight: 700; margin-bottom: 2rem;
}
.persona-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.persona-card {
    padding: 2rem; border: 1px solid var(--border);
    border-right: none; transition: border-color 0.2s;
    position: relative;
}
.persona-card:last-child { border-right: 1px solid var(--border); }
.persona-card:hover { border-color: var(--crimson); z-index: 1; }
.persona-role {
    font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--crimson); font-weight: 700; margin-bottom: 0.6rem;
}
.persona-card h3 {
    font-family: var(--font-sans);
    color: var(--navy); font-size: var(--h3-card); font-weight: 600;
    margin-bottom: 0.6rem; letter-spacing: -0.01em;
}
.persona-card p { color: var(--oxford); font-size: var(--text-body); line-height: 1.6; margin-bottom: 1.2rem; }
.persona-card .btn { font-size: 0.75rem; padding: 0.4rem 1rem; }

/* === DEMO RESULT === */
.hero-demo { max-width: 560px; margin: 3rem 0 0; }
.demo-result {
    border: 1px solid var(--border); overflow: hidden; text-align: left;
}
.demo-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.7rem 1.2rem; border-bottom: 1px solid var(--border);
}
.demo-domain { color: var(--oxford); font-family: 'Roboto Mono', monospace; font-size: var(--text-body); }
.demo-grade { font-size: 1.4rem; font-weight: 900; }
.demo-findings { padding: 0.4rem 1.2rem; }
.demo-finding { padding: 0.35rem 0; font-size: var(--text-body); border-bottom: 1px solid var(--border); }
.demo-finding.critical { color: var(--crimson); }
.demo-finding.warning { color: #92400E; }
.demo-finding.info { color: var(--navy); }
.demo-footer {
    display: flex; justify-content: space-between; padding: 0.5rem 1.2rem;
    font-size: 0.7rem; color: var(--steel); border-top: 1px solid var(--border);
}

/* === SOCIAL PROOF === */
.social-proof { padding: 3rem 0; border-top: 1px solid var(--border); }
.proof-stats { display: flex; gap: 4rem; margin-bottom: 3rem; }
.proof-number {
    display: block; font-size: 2.2rem; font-weight: 700; color: var(--navy);
    letter-spacing: -0.02em; font-family: 'Playfair Display', Georgia, serif;
}
.proof-label { display: block; font-size: 0.72rem; color: var(--steel); font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; }
.proof-quotes { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.proof-quote { border-top: 2px solid var(--crimson); padding-top: 1.2rem; }
.proof-quote p { color: var(--oxford); font-size: var(--text-body); font-style: normal; margin-bottom: 0.8rem; line-height: 1.7; }
.proof-author { color: var(--steel); font-size: 0.78rem; font-weight: 500; }

/* === SECTIONS === */
.section { padding: 4rem 0; border-top: 1px solid var(--border); }
.section h2,
.section-title {
    font-family: var(--font-serif);
    font-size: var(--h2-section); color: var(--navy); margin-bottom: 0.5rem;
    font-weight: 700; letter-spacing: -0.01em; text-align: left;
}
.section-subtitle { color: var(--oxford); margin-bottom: 2rem; text-align: left; font-size: 0.92rem; }
.section-sub { color: var(--oxford); font-size: 0.92rem; margin-bottom: 2rem; max-width: 560px; }
.section-alt { background: var(--bg-warm); padding: 4rem 2rem; margin: 0 -2rem; }
.section-label {
    font-size: 0.72rem; font-weight: 700; color: var(--crimson);
    text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 1rem;
}

/* === FEATURES === */
.features-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0;
    margin-top: 2rem; border-top: 1px solid var(--border);
}
.features-dual-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
    margin-top: 2rem;
}
.features-col-title {
    font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.15em;
    color: var(--crimson); font-weight: 700; margin: 0 0 1rem;
    padding-bottom: 0.5rem; border-bottom: 2px solid var(--crimson);
}
.feature-card {
    padding: 2rem; border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
}
.feature-card:nth-child(2n) { border-right: none; }
.feature-icon { display: none; }
.feature-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.5rem; font-family: var(--font-sans); }
.feature-card p { color: var(--oxford); font-size: var(--text-body); line-height: 1.7; }

/* === SCAN TYPES === */
.scan-types-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 2rem; }
.scan-type-card {
    padding: 2rem; border: 1px solid var(--border); position: relative;
    background: var(--bg);
}
.scan-type-card.featured { border-top: 3px solid var(--crimson); }
.scan-type-badge {
    position: static; transform: none;
    color: var(--crimson); font-size: 0.72rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em;
    display: block; margin-bottom: 0.5rem; background: none; padding: 0;
}
.scan-type-icon { display: none; }
.scan-type-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.3rem; font-family: var(--font-sans); }
.scan-type-price { color: var(--navy); font-weight: 700; font-size: var(--text-body); margin-bottom: 1rem; font-family: 'Roboto Mono', monospace; }
.scan-type-card p { color: var(--oxford); font-size: var(--text-body); margin-bottom: 1.2rem; }
.scan-type-card ul { list-style: none; font-size: var(--text-body); color: var(--oxford); padding: 0; }
.scan-type-card li { padding: 0.25rem 0; padding-left: 1rem; position: relative; }
.scan-type-card li::before { content: "\2014"; position: absolute; left: 0; color: var(--steel); }
.scan-type-usecase { display: block; margin-top: 1.2rem; color: var(--steel); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }

/* === PRICING === */
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 2rem; }
.pricing-card {
    padding: 2rem; border: 1px solid var(--border);
    border-right: none; text-align: left; position: relative;
    background: var(--bg);
}
.pricing-card:last-child { border-right: 1px solid var(--border); }
.pricing-card.featured { border-top: 3px solid var(--crimson); background: var(--bg-warm); }
.pricing-badge {
    position: static; transform: none;
    color: var(--steel); font-size: 0.72rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0.5rem; display: block;
    background: none; padding: 0;
}
.pricing-badge.accent { color: var(--crimson); }
.pricing-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.3rem; font-family: var(--font-sans); }
.pricing-price {
    color: var(--navy); font-size: var(--text-price); font-weight: 700; letter-spacing: -0.02em;
    font-family: 'Roboto Mono', monospace;
}
.pricing-per { color: var(--steel); font-size: 0.78rem; margin-bottom: 1.5rem; }
.pricing-period { font-size: var(--text-body); font-weight: 400; color: var(--steel); }
.pricing-credit { color: var(--crimson); font-size: 0.78rem; font-weight: 700; margin-bottom: 1rem; font-family: 'Roboto Mono', monospace; }
.pricing-detail { color: var(--oxford); font-size: var(--text-body); margin-bottom: 1rem; }
.pricing-credits { display: none; }
.pricing-card ul { list-style: none; text-align: left; margin-bottom: 1.5rem; font-size: var(--text-body); color: var(--oxford); }
.pricing-card li { padding: 0.25rem 0; padding-left: 1rem; position: relative; }
.pricing-card li::before { content: "\2014"; position: absolute; left: 0; color: var(--steel); }
.pricing-card .btn { width: 100%; text-align: center; }
.pricing-note { color: var(--steel); font-size: 0.78rem; margin-top: 2rem; }
.pricing-saves { font-size: 0.72rem; color: var(--success); font-weight: 600; margin-bottom: 1rem; font-style: italic; }
.pricing-capacity { font-size: 0.7rem; color: var(--oxford); margin-bottom: 1rem; border-top: 1px solid var(--border); padding-top: 0.6rem; margin-top: 0.5rem; }
.ps-pricing { margin-bottom: 1.5rem; }
.ps-price { font-size: 2rem; font-weight: 800; color: var(--navy); font-family: 'Roboto Mono', monospace; }
.ps-per { display: block; font-size: 0.78rem; color: var(--oxford); margin-top: 0.2rem; }
.pricing-grid-4 { grid-template-columns: repeat(4, 1fr); }
.pricing-grid-3 { grid-template-columns: repeat(3, 1fr); }
.pricing-grid-2 { grid-template-columns: repeat(2, 1fr); }

/* Credit cost table */
.credit-cost-table { max-width: 500px; margin: 2rem auto 0; }
.credit-cost-table table { width: 100%; border-collapse: collapse; font-size: var(--text-body); }
.credit-cost-table th { text-align: left; font-weight: 700; color: var(--navy); padding: 0.5rem 0; border-bottom: 2px solid var(--border-dark); }
.credit-cost-table td { padding: 0.4rem 0; border-bottom: 1px solid var(--border); color: var(--oxford); }

/* === TWO-COL LAYOUT === */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }

/* === CODE BLOCKS === */
.code-block { border: 1px solid var(--border); max-width: 700px; margin: 1.5rem auto; }
.code-header { padding: 0.5rem 1rem; color: var(--steel); font-size: 0.72rem; border-bottom: 1px solid var(--border); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; background: var(--bg-alt); }
.code-block pre { padding: 1.5rem; margin: 0; overflow-x: auto; font-size: 0.78rem; line-height: 1.6; background: #1E293B; }
.code-block code { color: #E2E8F0; font-family: 'Roboto Mono', monospace; }

/* === MODULES === */
.modules-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 2rem; border-top: 1px solid var(--border); }
.module-card { padding: 2rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); position: relative; }
.module-card:last-child { border-right: none; }
.module-card.featured { border-top: 3px solid var(--crimson); }
.module-badge { display: none; }
.module-icon { display: none; }
.module-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.2rem; font-family: var(--font-sans); }
.module-subtitle { color: var(--crimson); font-size: 0.72rem; margin-bottom: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.module-card ul { list-style: none; font-size: var(--text-body); color: var(--oxford); padding: 0; }
.module-card li { padding: 0.2rem 0; padding-left: 1rem; position: relative; }
.module-card li::before { content: "\2014"; position: absolute; left: 0; color: var(--steel); }

/* === PUBLIC SECTOR CARD === */
.ps-card { max-width: 640px; margin: 0 auto; text-align: center; }
.ps-card h2 { margin-bottom: 1rem; }
.ps-card p { color: var(--oxford); font-size: var(--text-body); margin-bottom: 1.5rem; }
.ps-card ul { list-style: none; text-align: left; max-width: 400px; margin: 0 auto 1.5rem; font-size: var(--text-body); color: var(--oxford); }
.ps-card li { padding: 0.3rem 0; padding-left: 1.2rem; position: relative; }
.ps-card li::before { content: "\2014"; position: absolute; left: 0; color: var(--steel); }

/* === CLIFFHANGER / BLUR PAYWALL === */
.blur-paywall {
    position: relative; overflow: hidden;
    margin-top: 1rem; padding: 2rem;
    border: 1px solid var(--border);
    min-height: 520px;
}
.blur-content {
    filter: blur(6px); pointer-events: none; user-select: none;
    opacity: 0.4;
}
.blur-overlay {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.92) 40%, rgba(255,255,255,0.98) 70%);
    z-index: 2; padding: 1.5rem 2rem 2rem;
    overflow-y: auto;
}
.blur-overlay .upsell-tiers { width: 100%; max-width: 640px; }
.blur-overlay h3 {
    font-family: var(--font-serif);
    color: var(--navy); font-size: var(--h3-card); font-weight: 700;
    margin-bottom: 0.5rem; text-align: center;
}
.blur-overlay p {
    color: var(--oxford); font-size: var(--text-body); margin-bottom: 1.2rem; text-align: center;
}

/* === TRUST === */
.trust-section { border-top: 1px solid var(--border); padding-top: 4rem; }
.trust-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 2rem; border-top: 1px solid var(--border); }
.trust-card { padding: 2rem; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border); }
.trust-card:nth-child(2n) { border-right: none; }
.trust-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.5rem; font-family: var(--font-sans); }
.trust-card p { color: var(--oxford); font-size: var(--text-body); }

/* === CMS === */
.cms-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }
.cms-tag { color: var(--oxford); padding: 0.3rem 0.8rem; font-size: 0.78rem; border: 1px solid var(--border); font-weight: 500; font-family: 'Roboto Mono', monospace; }

/* === GRADES === */
.grade { font-weight: 800; font-family: 'Roboto Mono', monospace; }
.grade-a, .grade-a\+ { color: var(--success); }
.grade-b { color: #92400E; }
.grade-c { color: #C2410C; }
.grade-d { color: #B91C1C; }
.grade-f { color: var(--crimson); }
.grade-na { color: var(--steel); font-style: italic; }
.grade-explain { display: block; font-size: 0.7rem; font-weight: 500; margin-top: 0.3rem; font-family: 'Inter', sans-serif; letter-spacing: 0; }
.grade-explain-pass { color: var(--success); }
.grade-explain-ok { color: #92400E; }
.grade-explain-warn { color: #C2410C; }
.grade-explain-bad { color: #B91C1C; }
.grade-explain-crit { color: var(--crimson); }

/* === TABLES === */
.scan-table { width: 100%; border-collapse: collapse; font-size: var(--text-body); }
.scan-table th, .scan-table td { padding: 0.6rem 1rem; text-align: left; border-bottom: 1px solid var(--border); }
.scan-table th { font-weight: 700; color: var(--navy); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; }

/* === PROGRESS === */
.progress-container { margin: 4rem 0; text-align: center; }
.progress-bar { width: 100%; height: 2px; background: var(--border); margin-bottom: 1rem; }
.progress-fill { height: 100%; background: var(--crimson); transition: width 0.5s ease; }
.progress-text { color: var(--steel); font-size: var(--text-body); }

/* === FORMS & INPUTS === */
.type-select { padding: 0.8rem; background: var(--bg); color: var(--navy); border: 1px solid var(--border); font-size: var(--text-body); font-family: 'Inter', sans-serif; }
.url-textarea { width: 100%; padding: 0.8rem; font-size: var(--text-body); font-family: 'Roboto Mono', monospace; background: var(--bg); color: var(--navy); border: 1px solid var(--border); resize: vertical; }
.contact-form { display: flex; flex-direction: column; gap: 0.3rem; margin-top: 1.5rem; }
.contact-form label { font-size: var(--text-body); font-weight: 600; color: var(--navy); margin-top: 0.8rem; }
.contact-form label:first-child { margin-top: 0; }
.contact-form .url-input,
.contact-form .type-select,
.contact-form .url-textarea { width: 100%; box-sizing: border-box; }
.contact-form .url-textarea { min-height: 140px; font-family: 'Inter', sans-serif; }
.whitelabel-fields { margin-top: 1rem; }
.whitelabel-fields summary { color: var(--steel); cursor: pointer; font-size: var(--text-body); font-weight: 500; }

/* === FINDINGS === */
.finding-card { padding: 1rem 1.5rem; margin: 0.5rem 0; border-left: 3px solid; }
.finding-card.critical { border-color: var(--crimson); background: var(--crimson-light); }
.finding-card.warning { border-color: #92400E; background: rgba(146,64,14,0.05); }
.finding-card.info { border-color: var(--navy); background: var(--bg-alt); }
.finding-card.ok { border-color: var(--success); background: var(--success-light); }
.finding-card h3 { color: var(--navy); font-size: var(--h3-card); margin-bottom: 0.2rem; }
.finding-card p { color: var(--oxford); font-size: var(--text-body); margin: 0; }
.finding-card small { color: var(--steel); font-size: 0.78rem; }
.meta-tag { display: inline-block; background: var(--bg-alt); color: var(--oxford); padding: 0.1rem 0.4rem; font-size: 0.72rem; margin-left: 0.5rem; border: 1px solid var(--border); font-family: 'Roboto Mono', monospace; }
.sig-badge { color: var(--success); font-weight: 600; font-size: 0.78rem; }

/* === FEEDBACK === */
.feedback-section { margin-top: 3rem; padding: 1.5rem 0; border-top: 1px solid var(--border); }
.feedback-desc { font-size: 0.78rem; color: var(--oxford); margin-bottom: 1rem; line-height: 1.6; }
.feedback-buttons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
@media (max-width: 640px) { .feedback-buttons { grid-template-columns: 1fr; } }
.feedback-btn { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 1rem; border: 1px solid var(--border); background: var(--bg); color: var(--oxford); cursor: pointer; font-family: 'Inter', sans-serif; transition: border-color 0.15s; }
.feedback-btn:hover { border-color: var(--navy); color: var(--navy); }
.feedback-icon { font-size: 1.25rem; }
.feedback-label { font-size: var(--text-body); font-weight: 700; color: var(--navy); }
.feedback-hint { font-size: 0.72rem; color: var(--steel); text-align: center; }
.feedback-thanks { color: var(--success); padding: 1rem 0; font-size: var(--text-body); }

/* === LEGAL/SETTINGS === */
.legal-page { max-width: var(--legal-max-w); margin: 2rem auto; }
.legal-page h1 { font-family: var(--font-serif); color: var(--navy); font-size: var(--h1-legal); font-weight: 700; margin-bottom: 0.3rem; }
.legal-page h2 { color: var(--navy); font-size: var(--h2-page); font-weight: 700; margin: 2rem 0 0.5rem; padding-bottom: 0.3rem; border-bottom: 1px solid var(--border); font-family: var(--font-sans); }
.legal-page h3 { color: var(--navy); font-size: var(--h3-card); margin: 1.2rem 0 0.3rem; }
.legal-page p, .legal-page li { color: var(--oxford); font-size: var(--text-body); }
.legal-page ul { padding-left: 1.5rem; }
.legal-page a { color: var(--navy); text-decoration: underline; }
.legal-stand { color: var(--steel); font-size: var(--text-body); margin-bottom: 2rem; }
.legal-notice { background: var(--bg-warm); border-left: 3px solid var(--crimson); padding: 1rem 1.5rem; margin: 1.5rem 0; color: var(--oxford); font-size: var(--text-body); }
.settings-page { max-width: 640px; }
.settings-section { padding: 2rem 0; border-bottom: 1px solid var(--border); }
.settings-section h2 { font-size: var(--h2-page); color: var(--navy); border: none; margin-bottom: 1rem; }
.settings-form label { display: block; color: var(--steel); font-size: 0.72rem; margin: 0.8rem 0 0.3rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.hint { color: var(--steel); font-size: var(--text-body); }
.success-box { border-left: 3px solid var(--success); background: var(--success-light); padding: 1rem 1.5rem; margin: 1rem 0; color: var(--success); font-size: var(--text-body); }
.info-box { border-left: 3px solid var(--navy); background: var(--bg-alt); padding: 1rem 1.5rem; margin: 1rem 0; color: var(--navy); font-size: var(--text-body); }

/* === VERIFY === */
.verify-card { padding: 2rem; margin: 1.5rem 0; }
.verify-card.valid { border-left: 4px solid var(--success); background: var(--success-light); }
.verify-card.pending { border-left: 4px solid #92400E; background: rgba(146,64,14,0.05); }
.verify-card.invalid { border-left: 4px solid var(--crimson); background: var(--crimson-light); }
.verify-status { font-size: 1.3rem; font-weight: 800; margin-bottom: 1rem; }
.verify-table { width: 100%; }
.verify-table td { border: none; padding: 0.3rem 0; color: var(--oxford); font-size: var(--text-body); }

/* === DASHBOARD === */
.dash-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.user-info { display: flex; align-items: center; gap: 1rem; color: var(--oxford); font-size: var(--text-body); }
.credits { color: var(--navy); font-weight: 700; font-family: 'Roboto Mono', monospace; }
.empty { color: var(--steel); text-align: center; padding: 2rem; font-size: var(--text-body); }
.hint { color: var(--steel); font-size: 0.78rem; margin-top: 0.5rem; }
.dash-card { background: #fff; border: 1px solid var(--border); padding: 1.5rem; margin-bottom: 1.5rem; }
.dash-card h2 { font-size: var(--h2-page); font-weight: 700; color: var(--navy); margin-bottom: 1rem; letter-spacing: -0.01em; }
.dash-card h3 { font-size: var(--h3-card); font-weight: 600; color: var(--oxford); margin: 1.5rem 0 0.5rem; }
.tier-badge { display: inline-block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; font-family: 'Roboto Mono', monospace; }
.tier-starter { background: var(--sage-light); color: var(--sage); }
.tier-pro { background: var(--navy); color: #fff; }
.tier-agency { background: var(--crimson-light); color: var(--crimson); }
.tier-credit_pack { background: var(--border); color: var(--steel); }
.badge-ok { color: var(--sage); font-weight: 600; font-size: var(--text-body); }
.badge-warn { color: var(--crimson); font-weight: 600; font-size: var(--text-body); }
.badge { display: inline-block; font-size: 0.72rem; font-weight: 700; padding: 0.15rem 0.45rem; border-radius: 3px; letter-spacing: 0.04em; text-transform: uppercase; vertical-align: middle; }
.badge-crit { background: rgba(220,38,38,0.12); color: var(--accent, #dc2626); }
.badge-neutral { background: var(--bg-card, #1e2a3a); color: var(--text-muted, #8da0b5); }
.badge-hint { display: inline-block; font-size: 0.72rem; padding: 0.1rem 0.4rem; border-radius: 3px; background: rgba(59,130,246,0.1); color: #60a5fa; margin-left: 0.25rem; }
.activate-form { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.activate-success { background: var(--sage-light); border: 1px solid var(--sage); padding: 1rem; font-size: var(--text-body); }
.activate-success code { display: block; margin: 0.5rem 0; padding: 0.5rem; background: var(--navy); color: #fff; font-size: 0.75rem; word-break: break-all; user-select: all; }
.activate-error { color: var(--crimson); font-weight: 600; font-size: var(--text-body); }
.loading { color: var(--steel); font-size: var(--text-body); }
.credit-packs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.credit-pack { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; padding: 1.2rem; border: 1px solid var(--border); text-decoration: none; color: var(--oxford); transition: border-color 0.15s; text-align: center; }
.credit-pack:hover { border-color: var(--navy); }
.credit-pack strong { font-size: 0.95rem; color: var(--navy); }
.credit-pack span { font-size: 1.1rem; font-weight: 700; font-family: 'Roboto Mono', monospace; }
.credit-pack small { font-size: 0.72rem; color: var(--steel); }
.credit-pack-featured { border-color: var(--navy); background: var(--paper); }
.email-prefs-form { display: flex; flex-direction: column; gap: 0.75rem; }
.pref-toggle { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.75rem; border: 1px solid var(--border); cursor: pointer; transition: border-color 0.15s; }
.pref-toggle:hover { border-color: var(--navy); }
.pref-toggle input[type="checkbox"] { margin-top: 0.2rem; accent-color: var(--navy); width: 1rem; height: 1rem; flex-shrink: 0; }
.pref-label { display: flex; flex-direction: column; gap: 0.15rem; }
.pref-label strong { font-size: var(--text-body); color: var(--oxford); }
.pref-label small { font-size: 0.75rem; color: var(--steel); }
.api-key-display { cursor: pointer; }
.download-actions { margin: 2rem 0; display: flex; gap: 0.5rem; }
.error-box { border-left: 3px solid var(--crimson); background: var(--crimson-light); padding: 2rem; }
.error-box h2 { color: var(--crimson); margin-bottom: 0.5rem; }
.error-box p { color: var(--oxford); margin-bottom: 1rem; }

/* === INSTITUTIONAL AUDIT DASHBOARD === */
.audit-layout { display: grid; grid-template-columns: 220px 1fr; min-height: calc(100vh - 60px); }
.audit-sidebar {
    background: var(--navy); color: #fff; padding: 1.5rem;
    position: sticky; top: 52px; height: calc(100vh - 52px); overflow-y: auto;
    border-right: none;
}
.sidebar-header { margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,0.12); }
.sidebar-domain { display: block; font-size: var(--text-body); font-weight: 600; color: rgba(255,255,255,0.6); word-break: break-all; font-family: 'Roboto Mono', monospace; }
.sidebar-grade { display: block; font-size: 3rem; font-weight: 900; margin-top: 0.3rem; }
.sidebar-nav { margin-bottom: 1.5rem; }
.sidebar-link {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.5rem 0.8rem; margin: 0.15rem 0;
    color: rgba(255,255,255,0.5); font-size: 0.78rem; font-weight: 500;
    text-decoration: none; transition: all 0.1s;
}
.sidebar-link:hover { color: #fff; background: rgba(255,255,255,0.05); }
.sidebar-link.active { color: #fff; border-left: 2px solid var(--crimson); padding-left: 0.6rem; }
.sidebar-meta { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.72rem; color: rgba(255,255,255,0.4); margin-bottom: 1rem; }
.sidebar-actions { display: flex; flex-direction: column; gap: 0.5rem; }
.sidebar-actions .btn { text-align: center; font-size: 0.78rem; padding: 0.5rem; }
.sidebar-actions .btn-primary { background: var(--crimson); color: #fff; border: none; }
.sidebar-actions .btn-outline { border-color: rgba(255,255,255,0.2); color: rgba(255,255,255,0.6); }
.audit-main { padding: 0 2.5rem 3rem; max-width: 780px; }
.audit-section { padding: 2rem 0; border-bottom: 1px solid var(--border); }
.section-desc { color: var(--oxford); font-size: var(--text-body); margin-bottom: 1.5rem; }

/* Overview Stats */
.overview-grid { display: flex; gap: 3rem; margin-bottom: 2rem; }
.stat-value { display: block; font-size: 2.2rem; font-weight: 700; letter-spacing: -0.02em; font-family: 'Roboto Mono', monospace; color: var(--navy); }
.stat-label { display: block; font-size: 0.72rem; color: var(--steel); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; }

/* Audit Tables */
.audit-table { width: 100%; border-collapse: collapse; }
.audit-table th { font-size: 0.72rem; font-weight: 700; color: var(--steel); text-transform: uppercase; letter-spacing: 0.1em; padding: 0.5rem 0; border-bottom: 2px solid var(--border-dark); text-align: left; }
.audit-table td { padding: 0.6rem 0; border-bottom: 1px solid var(--border); font-size: var(--text-body); color: var(--oxford); }
.audit-meta-table { width: 100%; }
.audit-meta-table td { padding: 0.4rem 0; border-bottom: 1px solid var(--border); font-size: var(--text-body); }
.meta-key { color: var(--steel); font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; width: 120px; vertical-align: top; }

/* === FORENSIC TIMELINE === */
.forensic-timeline { margin: 1.5rem 0; }
.timeline-phase { display: flex; gap: 1rem; }
.phase-indicator { display: flex; flex-direction: column; align-items: center; width: 20px; flex-shrink: 0; }
.phase-dot { width: 10px; height: 10px; border: 2px solid; flex-shrink: 0; }
.phase-dot.pass { border-color: var(--success); background: var(--success); }
.phase-dot.fail { border-color: var(--crimson); background: var(--crimson); }
.phase-line { width: 1px; flex: 1; background: var(--border); min-height: 30px; }
.phase-content { padding-bottom: 1.5rem; flex: 1; }
.phase-header { display: flex; align-items: baseline; gap: 1rem; }
.phase-name { font-size: var(--text-body); font-weight: 700; color: var(--navy); letter-spacing: 0.03em; }
.phase-duration { font-family: 'Roboto Mono', monospace; font-size: 0.72rem; color: var(--steel); }
.phase-status { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; }
.status-pass { color: var(--success); }
.status-fail { color: var(--crimson); }
.phase-desc { font-size: 0.78rem; color: var(--steel); margin-top: 0.2rem; }
.phase-leaks { margin-top: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.leak-tag { font-size: 0.72rem; color: var(--crimson); border: 1px solid var(--crimson); padding: 0.15rem 0.5rem; font-weight: 600; font-family: 'Roboto Mono', monospace; }

/* Verdict */
.forensic-verdict { margin-top: 1.5rem; padding: 1.2rem 1.5rem; }
.verdict-ko { border-left: 3px solid var(--crimson); padding-left: 1.5rem; }
.verdict-pass { border-left: 3px solid var(--success); padding-left: 1.5rem; }
.verdict-label { display: block; font-size: 0.6rem; font-weight: 700; color: var(--steel); text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 0.3rem; }
.verdict-result { display: block; font-size: 1rem; font-weight: 800; }
.verdict-ko .verdict-result { color: var(--crimson); }
.verdict-pass .verdict-result { color: var(--success); }
.verdict-legal { display: block; font-size: 0.78rem; color: var(--oxford); margin-top: 0.3rem; }

/* Legacy scan-page fallback */
.scan-page { padding: 2rem 0; }
.scan-page h1 { font-size: var(--h1-scan); font-weight: 800; letter-spacing: -0.02em; font-family: var(--font-serif); color: var(--navy); }
.scan-url { color: var(--steel); font-size: var(--text-body); margin-bottom: 2rem; font-family: 'Roboto Mono', monospace; }
.result-header { display: flex; align-items: center; gap: 2rem; margin-bottom: 2rem; }
.result-meta { display: flex; flex-direction: column; gap: 0.2rem; color: var(--steel); font-size: var(--text-body); }
.grades-table { margin: 1.5rem 0; }
.grades-table table { width: 100%; border-collapse: collapse; }
.grades-table th, .grades-table td { padding: 0.6rem 0; text-align: left; border-bottom: 1px solid var(--border); }
.grades-table th { color: var(--steel); font-weight: 600; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; }

/* === ABO === */
.abo-section { margin-top: 4rem; padding-top: 4rem; border-top: 1px solid var(--border); }

/* === LOGIN === */
.login-page { max-width: 360px; margin: 5rem auto; }
.login-form { margin: 2rem 0; }
.login-form .url-input { width: 100%; margin-bottom: 0.5rem; border-right: 1px solid var(--border); }
.login-form .scan-btn { width: 100%; }

/* === INSTITUTIONAL FOOTER === */
footer {
    padding: 3rem 4rem 2rem;
    color: var(--steel);
    font-size: 0.78rem;
    border-top: 1px solid var(--border);
    margin-top: 4rem;
    background: var(--bg-warm);
}
.footer-inner {
    max-width: var(--content-max-w); margin: 0 auto;
}
.footer-grid {
    display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 2rem; margin-bottom: 2rem;
}
.footer-col h4 {
    color: var(--navy); font-size: 0.72rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em;
    margin-bottom: 0.8rem; font-family: 'Inter', sans-serif;
}
.footer-col a, .footer-col p {
    display: block; color: var(--steel); text-decoration: none;
    font-size: 0.78rem; padding: 0.15rem 0; line-height: 1.6;
}
.footer-col a:hover { color: var(--crimson); }
.footer-brand {
    display: flex; align-items: center; gap: 0.5rem;
    font-family: 'Inter', sans-serif; font-size: var(--text-body); font-weight: 900;
    color: #111827; margin-bottom: 0.5rem;
}
.footer-logo { display: block; width: 40px; height: auto; }
.footer-legal { color: var(--steel); font-size: 0.72rem; line-height: 1.7; }
.footer-bottom {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 1.5rem; border-top: 1px solid var(--border);
    font-size: 0.72rem; color: var(--steel);
}
.footer-bottom a { color: var(--steel); text-decoration: none; margin-left: 1.5rem; }
.footer-bottom a:hover { color: var(--navy); }

/* === PUBLIC SECTOR PAGE === */
.ps-hero { padding: 5rem 0 3rem; max-width: 700px; }
.ps-hero-badge {
    display: inline-block; font-size: 0.72rem; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--crimson); border-bottom: 2px solid var(--crimson);
    padding: 0.3rem 0; margin-bottom: 1.5rem;
    background: none;
}
.evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 2rem; }
.evidence-card {
    padding: 2rem; border: 1px solid var(--border);
    border-right: none;
}
.evidence-card:nth-child(2n) { border-right: 1px solid var(--border); }
.evidence-card:nth-child(n+3) { border-top: none; }
.evidence-number {
    font-size: 0.72rem; font-weight: 700; color: var(--crimson);
    letter-spacing: 0.1em; margin-bottom: 0.5rem;
    font-family: 'Roboto Mono', monospace;
}
.evidence-card h3 { color: var(--navy); font-size: var(--h3-card); font-weight: 700; margin-bottom: 0.4rem; font-family: var(--font-sans); }
.evidence-card p { color: var(--oxford); font-size: var(--text-body); }

/* Authority badges */
.authority-grid {
    display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem;
}
.authority-tag {
    font-size: 0.72rem; color: var(--oxford); font-weight: 500;
    padding: 0.3rem 0.8rem; border: 1px solid var(--border);
    font-family: 'Roboto Mono', monospace; background: var(--bg-alt);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    /* --- HAMBURGER NAV --- */
    .nav-hamburger { display: flex; }
    .navbar { padding: 0 1rem; height: 48px; }
    .logo-img { width: 36px; }
    .logo-text { font-size: 0.9rem; }
    .nav-links {
        display: none; position: fixed; top: 48px; left: 0; right: 0; bottom: 0;
        background: var(--bg); flex-direction: column; align-items: stretch;
        padding: 1rem 0; overflow-y: auto; z-index: 200;
        border-top: 1px solid var(--border);
    }
    .navbar.nav-open .nav-links { display: flex; }
    .nav-links a {
        padding: 0.8rem 1.5rem; line-height: 1.4; font-size: var(--text-body);
        border-bottom: 1px solid var(--border); white-space: normal;
    }
    .nav-links .btn-nav {
        margin: 1rem 1.5rem 0; text-align: center;
        padding: 0.7rem 1.2rem !important;
    }
    .nav-dropdown { width: 100%; }
    .nav-dropdown-toggle {
        width: 100%; text-align: left; padding: 0.8rem 1.5rem;
        line-height: 1.4; font-size: var(--text-body);
        border-bottom: 1px solid var(--border);
    }
    .nav-dropdown-menu {
        position: static; box-shadow: none; min-width: auto;
        border: none; border-bottom: 1px solid var(--border);
        background: var(--bg-alt);
    }
    .nav-dropdown:hover .nav-dropdown-menu { display: none; }
    .nav-dropdown.open .nav-dropdown-menu { display: block; }
    .lang-switcher { padding: 0.8rem 1.5rem; display: flex; gap: 0.5rem; }
    .lang-switch { line-height: 1.4 !important; }

    /* --- LAYOUT --- */
    main { padding: 0 1rem; overflow-x: hidden; }
    .hero { padding: 2rem 0 1.5rem; }
    .hero h1 { font-size: var(--h1-hero-mobile); line-height: 1.25; }
    .hero-sub, .subtitle { font-size: var(--text-body); word-wrap: break-word; overflow-wrap: break-word; }
    .hero-badge { font-size: 0.6rem; margin-bottom: 1rem; }
    .hero-cta { flex-direction: column; gap: 0.5rem; }
    .hero-cta .btn { width: 100%; text-align: center; }

    /* --- GRIDS → 1 COL --- */
    .scan-options, .scan-types-grid, .proof-quotes, .modules-grid,
    .pricing-grid, .pricing-grid-2, .pricing-grid-3, .pricing-grid-4,
    .features-grid, .features-dual-grid, .trust-grid, .two-col, .persona-grid, .evidence-grid { grid-template-columns: 1fr; }

    /* --- FORM --- */
    .scan-form { max-width: 100%; }
    .input-row { flex-direction: column; }
    .url-input { border-right: 1px solid var(--border-dark); font-size: 0.95rem; padding: 0.9rem 1rem; }
    .url-input::placeholder { font-size: var(--text-body); }
    .jurisdiction-select { border-right: 1px solid var(--navy); max-width: none; border-top: none; }
    .scan-btn { width: 100%; padding: 0.9rem; }
    .az-input { border-top: 1px solid var(--border-dark); }

    /* --- DATA SOURCES --- */
    .data-sources { flex-direction: column; align-items: flex-start; gap: 0.8rem; padding: 1rem 0; margin-bottom: 1.5rem; overflow: hidden; }
    .data-sources-list { gap: 0.4rem; max-width: 100%; }
    .data-source-tag { font-size: 0.6rem; padding: 0.15rem 0.4rem; }

    /* --- STATS --- */
    .proof-stats { flex-direction: column; gap: 1.5rem; }

    /* --- SECTIONS --- */
    .section-alt { margin: 0 -1rem; padding: 2.5rem 1rem; }
    .option-card { border-right: 1px solid var(--border) !important; }
    .persona-card { border-right: 1px solid var(--border); }
    .evidence-card { border-right: 1px solid var(--border); }
    .evidence-card:nth-child(n+3) { border-top: 1px solid var(--border); }

    /* --- FOOTER --- */
    .footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .footer-inner { flex-direction: column; gap: 0.5rem; }
    .footer-bottom { flex-direction: column; gap: 0.5rem; align-items: flex-start; }
    footer { padding: 2rem 1rem; }

    /* --- AUDIT/REPORT --- */
    .audit-layout { grid-template-columns: 1fr; }
    .audit-sidebar { position: static; height: auto; }
    .overview-grid { flex-direction: column; gap: 1.5rem; }
}

@media print {
    .navbar, footer, .scan-form, .hero-cta, .feedback-section, .sidebar-actions, .blur-paywall { display: none; }
    .audit-section { page-break-inside: avoid; }
    .audit-layout { display: block; }
    .audit-sidebar { position: static; height: auto; page-break-after: always; }
    .audit-main { page-break-before: avoid; }
    table { page-break-inside: avoid; }
    h2, h3 { page-break-after: avoid; }
}

/* === UPSELL TIERS (Cliffhanger) === */
.upsell-tiers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; width: 100%; margin: 1rem 0; }
.upsell-tier { padding: 1.2rem; border: 1px solid var(--border); border-right: none; text-align: center; }
.upsell-tier:last-child { border-right: 1px solid var(--border); }
.upsell-tier-featured { border-color: var(--navy); background: var(--bg-warm); position: relative; }
.upsell-tier-badge { position: absolute; top: -0.5rem; left: 50%; transform: translateX(-50%); background: var(--navy); color: #fff; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.15rem 0.6rem; white-space: nowrap; }
.upsell-tier-name { font-size: var(--text-body); font-weight: 700; color: var(--navy); margin-bottom: 0.15rem; font-family: 'Playfair Display', Georgia, serif; }
.upsell-tier-subtitle { font-size: 0.72rem; color: var(--steel); margin-bottom: 0.3rem; line-height: 1.4; }
.upsell-tier-price { font-size: var(--text-price-sm); font-weight: 700; color: var(--navy); margin-bottom: 0.2rem; font-family: 'Roboto Mono', monospace; }
.upsell-credits { font-size: 0.72rem; font-weight: 600; color: var(--crimson); }
.upsell-tier-desc { font-size: 0.72rem; color: var(--oxford); margin-bottom: 0.8rem; line-height: 1.5; }
.upsell-urgency { text-align: center; font-size: 0.72rem; color: var(--steel); margin-top: 1rem; font-style: italic; }

/* Anomaly tags */
.blur-anomaly { font-size: var(--text-body); color: var(--crimson); font-weight: 600; margin-bottom: 0.5rem; text-align: center; }
.blur-anomaly-list { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; margin-bottom: 1rem; }
.blur-anomaly-tag { font-size: 0.7rem; color: var(--crimson); border: 1px solid var(--crimson); padding: 0.2rem 0.6rem; font-weight: 600; font-family: 'Roboto Mono', monospace; }

/* Timestamp in result */
.lr-timestamp { font-size: 0.72rem; color: var(--steel); text-align: right; padding: 0.5rem 0; border-top: 1px solid var(--border); margin-top: 0.5rem; }

/* === VERIFIED BADGE === */
.verified-badge { display: inline-flex; align-items: center; gap: 0.3rem; color: var(--crimson); font-size: 0.72rem; font-weight: 600; }
.verified-dot { width: 6px; height: 6px; background: var(--crimson); display: inline-block; }

/* === CRIMSON DIVIDER (decorative) === */
.gold-rule { border: none; border-top: 1px solid var(--crimson); opacity: 0.3; margin: 2rem 0; }


@media (max-width: 640px) { .upsell-tiers { grid-template-columns: 1fr; } .upsell-tier { border-right: 1px solid var(--border); } }

/* =========================================================
   Break-Even-Rechner
   ========================================================= */
.calc-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--border);
}
.calc-tab {
  padding: 0.65rem 1.75rem;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  font-size: 0.92rem;
  color: var(--steel);
  margin-bottom: -2px;
  font-family: inherit;
  transition: color 0.15s;
}
.calc-tab:hover { color: var(--oxford); }
.calc-tab.active {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
  font-weight: 700;
}
.calc-module {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 700px) { .calc-module { grid-template-columns: 1fr; } }
.calc-inputs { display: flex; flex-direction: column; gap: 1.25rem; }
.calc-field label {
  display: block;
  font-size: 0.8rem;
  color: var(--steel);
  margin-bottom: 0.4rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.calc-field input[type=range] {
  width: 100%;
  accent-color: var(--crimson);
  margin-top: 0.3rem;
}
.calc-field select,
.calc-field input[type=number] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--bg);
  font-size: 0.9rem;
  color: var(--oxford);
  font-family: inherit;
}
.calc-result {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem;
  position: sticky;
  top: 1rem;
}
.calc-result-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.88rem;
  gap: 1rem;
}
.calc-result-row:last-of-type { border-bottom: none; }
.calc-result-row.highlight strong { color: var(--crimson); font-size: 1.05rem; }
.calc-result-row.big {
  padding: 0.9rem 0 0.4rem;
  font-size: 1rem;
  font-weight: 700;
}
.calc-result-row.big strong {
  color: var(--crimson);
  font-size: 1.5rem;
  font-weight: 900;
}
.calc-disclaimer {
  font-size: 0.72rem;
  color: var(--steel);
  margin-top: 1rem;
  font-style: italic;
  line-height: 1.5;
}
.calc-ref-table { margin-top: 2.5rem; }
.calc-ref-table table { font-size: 0.85rem; }
.calc-ref-table td:last-child { font-weight: 600; color: var(--crimson); }
.calc-quote {
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  border-left: 3px solid var(--crimson);
  background: var(--surface);
  font-style: italic;
  font-size: 0.88rem;
  color: var(--mid);
  border-radius: 0 4px 4px 0;
}
.calc-quote cite { display: block; margin-top: 0.4rem; font-style: normal; font-size: 0.78rem; color: var(--steel); }
