/*
 * rss_v3.css — Stitch-Mobil-Resign der Kategorien-/Artikel-Flächen
 * (09.11.2026). Vorlagen: „tsecurity.de RSS Category View", „Tactical
 * Mobile Article Reader", „tsecurity.de RSS Article Detail View".
 *
 * Layout-Vorlage-Vertrag: Entwürfe laden Tailwind/Google-Fonts von CDNs
 * (CSP-blockiert) — umgesetzt mit den ECHTEN Tokens. desktop bleibt
 * UNVERÄNDERT (Befund-Diziplin wie cve_mobile_v3).
 *
 * Verträge:
 *  - Geladen NUR bei tsec_rss_v3_enabled() UND nur auf Kategorie-/Artikel-
 *    Content-Types (index.php rssV3-Assign kombiniert beides); Wurzelklasse
 *    .ts-rss-v3 am <body> (layout/default.tpl), Sheet-Load in assets.tpl.
 *  - Jede Regel steht ZUSÄTZLICH in @media (max-width: 767.98px)
 *    (Defense-in-Depth, Muster cve_mobile_v3.css) — Desktop ist auch bei
 *    aktivem Flag byte-identisch.
 *  - Modul-Markup (module/rss_content_view, inc_buildbox) wird NICHT
 *    angetastet — reines CSS auf den gelieferten Klassen.
 *  - Hell-Modus ausschließlich über html[data-bs-theme="light"].
 *  - Importants nur in @layer bootstrap.
 */

@media (max-width: 767.98px) {

    .ts-rss-v3 {
        --rv3-border: rgba(148, 163, 184, 0.32);
        --rv3-accent: var(--color-accent, #0284c7);
        --rv3-text: var(--color-text, #f8fafc);
        --rv3-muted: #cbd5e1;
        --rv3-radius: 12px;
        --rv3-mono: var(--mono-stack, "JetBrains Mono", ui-monospace, monospace);
        /* SEVERITY-LEFTBAR (10.11.2026, Phase 1.1): eigene rv3-Aliase auf die
           chromatische Sprache von cve_standalone.css (--sev-*/--threat-* sind
           dort definiert und auf dieser Fläche NICHT geladen — Fallback-Literale
           wie im Kernel-Sheet selbst). Dark = helle Pastelle, Light = dunkle
           AAA-Werte. Nur wirksam bei data-severity am .rcv-cluster-item
           (belegter CVSS-Score, Wahrheits-Vertrag). */
        --rv3-sev-critical: var(--threat-critical, #f87171);
        --rv3-sev-high: var(--threat-high, #fb923c);
        --rv3-sev-medium: var(--threat-medium, #facc15);
        --rv3-sev-low: var(--threat-low, #7dd3fc);
    }
    html[data-bs-theme="light"] .ts-rss-v3 {
        --rv3-border: rgba(51, 65, 85, 0.28);
        --rv3-muted: #334155;
        --rv3-sev-critical: #dc2626;
        --rv3-sev-high: #ea580c;
        --rv3-sev-medium: #ca8a04;
        --rv3-sev-low: #0369a1;
    }

    /* ---------- Kategorie-Hero: kompaktere Kapsel + 44px Slider-Steuerung ---------- */
    .ts-rss-v3 .ts-category-hero {
        border-radius: var(--rv3-radius);
    }
    .ts-rss-v3 .chs-hero-ctrl {
        min-width: 44px;
        min-height: 44px;
    }
    .ts-rss-v3 .ts-hero-slide__title {
        font-size: 1.125rem;
        line-height: 1.35;
    }
    .ts-rss-v3 .ts-cockpit-hero {
        padding: 1rem;
    }

    /* ---------- Feed-Module: Glas-Karten, engere Vertikal-Rhythmik ---------- */
    .ts-rss-v3 .cms-module-box {
        background: var(--color-surface, rgba(15, 23, 42, 0.85));
        border: 1px solid var(--rv3-border);
        border-radius: var(--rv3-radius);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        padding: 0.9rem;
    }
    .ts-rss-v3 .cms-module-box .font-monospace {
        font-family: var(--rv3-mono);
        font-variant-numeric: tabular-nums;
        font-feature-settings: "tnum" on, "zero" on;
    }

    /* ---------- Artikel-Reader: Lesetypografie mobil ---------- */
    .ts-rss-v3 .article-body-content {
        font-size: 1rem;
        line-height: 1.7;
        overflow-wrap: break-word;
    }
    .ts-rss-v3 .article-body-content img {
        max-width: 100%;
        height: auto;
        border-radius: 0.5rem;
    }
    .ts-rss-v3 .rcv-cluster-source-main {
        min-width: 0;
    }
    .ts-rss-v3 .rcv-cluster-source-title {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* ---------- Meta-Chips: Wrap statt Überlauf ---------- */
    .ts-rss-v3 .extra-small.text-muted.font-monospace {
        overflow-wrap: anywhere;
    }

    /* ---------- Touch-Targets für Icon-Buttons im Artikel-Kontext ---------- */
    .ts-rss-v3 .btn-sm.rounded-pill {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    /* ---------- Tactical Feed Patterns (Screen 164598dea3…, 09.11.2026) ----------
       Stitch „Tactical Cybersecurity Feed": eigenes Zeilenmuster. Nur stile
       vorhandene Klassen des Modul-Markups (module/rss_content_view):
         .rcv-cluster-item  → Karten-Container (Leftbar-Träger)
         .rcv-cluster-badge → Quellen-Count-Pille (eigene Klasse → Chip-Look)
         .rcv-btn-lesen     → Karten-CTA (Footer-Strip per CSS-only)
       Auflösung 10.11.2026 (Phase 1.1, war vorher „NICHT umgesetzt"):
         - farbcodierte Severity-Leftbar → JETZT umgesetzt: das Modul hängt
           data-severity NUR bei belegtem CVSS-Score an das Item
           (tsec_engine_estimate_cvss, Wahrheits-Vertrag CW1 — KEIN Reskin
           der generischen bg-*-Badges, damit kein sitewide Flurschaden);
           ohne Beleg bleibt die neutrale Accent-Kante.
       Bewusst NICHT umgesetzt (kein Markup-Äquivalent / Wahrheits-Vertrag):
         - Filter-Pillen-Reihe, Telemetry-Stats-Grid, „ENDE DER LISTE"-Zeile
     --------------------------------------------------------------------------- */
    .ts-rss-v3 .rcv-cluster-item {
        border-radius: 0 10px 10px 0;
    }
    .ts-rss-v3 .rcv-cluster-badge {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        padding: 0.15rem 0.55rem;
        border: 1px solid var(--rv3-border);
        background: color-mix(in srgb, var(--rv3-accent) 10%, transparent);
        color: var(--rv3-accent);
        font-family: var(--rv3-mono);
        font-weight: 600;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        font-size: 0.625rem;
    }
    .ts-rss-v3 .rcv-cluster-badge::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
        opacity: 0.85;
    }
    .ts-rss-v3 .rcv-cluster-item .rcv-btn-lesen {
        margin-top: auto;
        justify-content: center;
        border-top: 1px solid var(--rv3-border);
        border-radius: 0 0 10px 10px;
        padding-top: 0.6rem;
    }
    /* Footer-Strip des Compact-Teasers (.rss-content-teaser p-3): CTA als
       Kartenfuß über die Polster hinaus (p-3 = 1rem). */
    .ts-rss-v3 .rss-content-teaser .rcv-btn-lesen {
        margin-top: auto;
        justify-content: center;
        border-top: 1px solid var(--rv3-border);
        border-radius: 0 0 10px 10px;
        padding-top: 0.6rem;
        margin-left: -1rem;
        margin-right: -1rem;
        width: calc(100% + 2rem);
    }

    /* ---------- Layer-Vertrag: geschichtete Importants ---------- */
    @layer bootstrap {
        .ts-rss-v3 .cms-module-box {
            background: var(--color-surface, rgba(15, 23, 42, 0.85)) !important;
        }
        html[data-bs-theme="light"] .ts-rss-v3 .cms-module-box {
            background: rgba(255, 255, 255, 0.92) !important;
        }
        .ts-rss-v3 .btn-sm.rounded-pill {
            min-height: 44px !important;
        }
        /* Tactical-Leftbar (09.11.): das rcv-cluster-item trägt Bootstraps
           .border-Utility (!important, geschichtet) — die Leftbar gewinnt nur
           ALS geschichtetes !important (W4/LH1: geschichtete schlagen
           ungeschichtete; Probe-Befund borderLeftWidth=1px). */
        .ts-rss-v3 .rcv-cluster-item {
            border-left: 3px solid color-mix(in srgb, var(--rv3-accent) 60%, transparent) !important;
        }
        /* SEVERITY-LEFTBAR (10.11.2026, Phase 1.1): höherer Spezifität
           (Attributselektor) schlägt die neutrale Kante innerhalb derselben
           Schicht — nur wenn das Modul einen belegten CVSS-Score geliefert
           hat (data-severity am Item, rcv-Wiring via tsec_engine_estimate_cvss).
           Ohne Beleg greift weiterhin die neutrale Accent-Kante. */
        .ts-rss-v3 .rcv-cluster-item[data-severity="critical"] {
            border-left-color: var(--rv3-sev-critical) !important;
        }
        .ts-rss-v3 .rcv-cluster-item[data-severity="high"] {
            border-left-color: var(--rv3-sev-high) !important;
        }
        .ts-rss-v3 .rcv-cluster-item[data-severity="medium"] {
            border-left-color: var(--rv3-sev-medium) !important;
        }
        .ts-rss-v3 .rcv-cluster-item[data-severity="low"] {
            border-left-color: var(--rv3-sev-low) !important;
        }
    }
}
