/* Kevora UI — Fira Code + Fira Sans (Dashboard Data pairing) */
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Fira+Sans:wght@300;400;500;600;700&display=swap');

:root {
    --feed-bg: #030711;
    --feed-bg-2: #07111f;
    --feed-panel: rgba(11, 18, 32, 0.78);
    --feed-panel-strong: rgba(13, 20, 38, 0.94);
    --feed-border: rgba(148, 163, 184, 0.16);
    --feed-border-strong: rgba(34, 211, 238, 0.32);
    --feed-text: #f8fafc;
    --feed-muted: #94a3b8;
    --feed-cyan: #22d3ee;
    --feed-blue: #38bdf8;
    --feed-violet: #8b5cf6;
    --feed-red: #fb4d5a;
    --feed-orange: #fb923c;
    --feed-amber: #facc15;
    --feed-green: #22c55e;
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'Fira Sans', system-ui, sans-serif;
}

.feed-body {
    position: relative;
    background:
        radial-gradient(circle at 18% 0%, rgba(34, 211, 238, 0.14), transparent 34rem),
        radial-gradient(circle at 84% 12%, rgba(139, 92, 246, 0.11), transparent 34rem),
        linear-gradient(180deg, #030711 0%, #07111f 44%, #030711 100%);
    overflow-x: hidden;
}

.font-mono, code, kbd, pre {
    font-family: 'Fira Code', 'Courier New', monospace;
    font-variant-ligatures: contextual;
}

/* Atmospheric layered background */
.feed-body::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        linear-gradient(115deg, transparent 0%, rgba(34, 211, 238, 0.06) 24%, transparent 48%),
        linear-gradient(68deg, transparent 22%, rgba(251, 113, 133, 0.045) 46%, transparent 66%),
        radial-gradient(ellipse 65% 36% at 50% -10%, rgba(6, 182, 212, 0.08), transparent 68%);
    background-size: 180% 180%;
    animation: feed-atmosphere 18s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: -1;
}

/* Subtle grid overlay for cybersecurity aesthetic */
.feed-body::after {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(148, 163, 184, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.055) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.88), transparent 84%);
    pointer-events: none;
    z-index: -1;
}

@keyframes feed-atmosphere {
    from { background-position: 0% 30%; }
    to { background-position: 100% 70%; }
}

/* Table row glassmorphism on hover */
tr:hover {
    backdrop-filter: blur(10px);
}

/* Kevora mark ring glow */
@keyframes logo-ring-glow {
    0%, 100% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.08); }
    50%       { box-shadow: 0 0 22px rgba(59, 130, 246, 0.22), 0 0 8px rgba(139, 92, 246, 0.1) inset; }
}

.nav-logo-ring {
    animation: logo-ring-glow 3s ease-in-out infinite;
}

/* Severity proportion strip below nav */
#severity-strip {
    display: flex;
    height: 5px;
    width: 100%;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(6, 182, 212, 0.08);
}

/* Sync status bar */
#sync-bar {
    background: #080d18;
    border-bottom: 1px solid #1e293b;
    padding: 4px 16px;
    text-align: center;
    font-size: 10px;
    font-family: 'Fira Code', monospace;
    letter-spacing: 0.08em;
    color: #475569;
    min-height: 24px;
}

/* Glitch animation on Kevora headings */
@keyframes glitch-auto {
    0%, 88%, 100% { transform: none; filter: none; }
    89% { transform: translate(-2px, 0); filter: hue-rotate(20deg) brightness(1.15); }
    90% { transform: translate(2px, 0); filter: hue-rotate(-20deg); }
    91% { transform: translate(-1px, 1px); filter: brightness(1.2); }
    92% { transform: none; filter: none; }
    94% { transform: translate(2px, -1px); filter: hue-rotate(10deg); }
    95% { transform: none; filter: none; }
}

.glitch-auto {
    animation: glitch-auto 9s steps(1) infinite;
}

/* Threat Heatmap calendar cells */
.heatmap-grid {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(7, 11px);
    gap: 3px;
    width: max-content;
}

.heatmap-cell {
    width: 11px;
    height: 11px;
    border-radius: 2px;
    cursor: default;
    transition: transform 0.1s ease, filter 0.1s ease;
    position: relative;
}

.heatmap-cell:hover {
    transform: scale(1.5);
    filter: brightness(1.35);
    z-index: 10;
    cursor: pointer;
}

.heatmap-cell.selected {
    outline: 2px solid #06b6d4;
    outline-offset: 1px;
    z-index: 11;
}

#heatmap-tooltip {
    position: fixed;
    display: none;
    background: #0d1322;
    border: 1px solid #1e293b;
    border-radius: 8px;
    padding: 10px 13px;
    font-size: 11px;
    font-family: 'Fira Code', monospace;
    color: #94a3b8;
    pointer-events: none;
    z-index: 99999;
    white-space: nowrap;
    box-shadow: 0 8px 32px rgba(0,0,0,0.6), 0 0 0 1px rgba(6,182,212,0.08);
    line-height: 1.7;
}

/* Premium public feed shell */
.feed-nav {
    position: relative;
    z-index: 80;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    background: rgba(3, 7, 17, 0.78);
    backdrop-filter: blur(22px);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28);
}

.feed-nav-inner {
    max-width: 92rem;
    min-height: 4.8rem;
    margin: 0 auto;
    padding: 0.8rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.feed-nav-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.feed-nav-link {
    color: #94a3b8;
    transition: color 180ms ease;
}

.feed-nav-link:hover {
    color: #e2e8f0;
}

.feed-live-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(34, 197, 94, 0.2);
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.09), rgba(34, 211, 238, 0.045));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 0 30px rgba(34, 197, 94, 0.08);
}

#severity-strip {
    height: 4px;
    box-shadow: 0 0 30px rgba(34, 211, 238, 0.18);
}

#sync-bar {
    min-height: 2rem;
    padding: 0.45rem 1rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.1);
    background: rgba(3, 7, 17, 0.58);
    color: #64748b;
    backdrop-filter: blur(14px);
}

.feed-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
    gap: 2rem;
    min-height: 17rem;
    padding: clamp(1.35rem, 3vw, 2.2rem);
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 18px;
    background:
        linear-gradient(120deg, rgba(8, 13, 26, 0.96), rgba(12, 20, 38, 0.78)),
        radial-gradient(circle at 16% 20%, rgba(34, 211, 238, 0.16), transparent 26rem),
        radial-gradient(circle at 85% 20%, rgba(139, 92, 246, 0.18), transparent 22rem);
    box-shadow:
        0 28px 90px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.feed-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(148, 163, 184, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.055) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.75), transparent 82%);
    pointer-events: none;
}

.feed-hero-copy,
.feed-hero-visual {
    position: relative;
    z-index: 1;
}

.feed-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 1rem;
    color: var(--feed-cyan);
    font: 700 0.72rem/1 'Fira Code', monospace;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.feed-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--feed-green);
    box-shadow: 0 0 16px rgba(34, 197, 94, 0.75);
}

.feed-title {
    max-width: 54rem;
    margin: 0;
    color: #f8fafc;
    font-size: clamp(2.35rem, 5vw, 5rem);
    line-height: 0.94;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
    font-style: italic;
}

.feed-title::first-letter {
    color: var(--feed-cyan);
}

.feed-subtitle {
    max-width: 46rem;
    margin-top: 1rem;
    color: #94a3b8;
    font-size: clamp(1rem, 1.6vw, 1.16rem);
    line-height: 1.65;
}

.feed-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.35rem;
}

.feed-hero-tags span {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 999px;
    padding: 0.5rem 0.78rem;
    background: rgba(15, 23, 42, 0.62);
    color: #cbd5e1;
    font: 700 0.72rem/1 'Fira Code', monospace;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.feed-hero-tags span:hover {
    transform: translateY(-2px);
    border-color: rgba(34, 211, 238, 0.32);
    background: linear-gradient(135deg, rgba(34, 211, 238, 0.1), rgba(139, 92, 246, 0.07));
    color: #e0f2fe;
    box-shadow: 0 14px 36px rgba(34, 211, 238, 0.08);
}

.feed-hero-visual {
    min-height: 14rem;
    display: grid;
    place-items: center;
}

.feed-radar {
    position: relative;
    width: min(17rem, 72vw);
    aspect-ratio: 1;
    border: 1px solid rgba(34, 211, 238, 0.18);
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(34, 211, 238, 0.14) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(34, 211, 238, 0.08), transparent 58%),
        repeating-radial-gradient(circle, transparent 0 23%, rgba(34, 211, 238, 0.09) 23.5% 24%, transparent 24.5% 100%);
    box-shadow: inset 0 0 35px rgba(34, 211, 238, 0.08), 0 0 60px rgba(34, 211, 238, 0.1);
    overflow: hidden;
}

.feed-radar::before,
.feed-radar::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.feed-radar::before {
    inset: -1px;
    background:
        conic-gradient(from -18deg, transparent 0deg 266deg, rgba(34, 211, 238, 0.03) 286deg, rgba(34, 211, 238, 0.34) 354deg, transparent 360deg);
    mask-image: radial-gradient(circle, transparent 0 10%, #000 11% 72%, transparent 73%);
    transform-origin: 50% 50%;
    animation: feed-radar-sweep 16s linear infinite;
}

.feed-radar::after {
    inset: 15%;
    border: 1px solid rgba(34, 211, 238, 0.14);
    box-shadow:
        0 0 0 2.75rem rgba(34, 211, 238, 0.045),
        0 0 0 5.55rem rgba(34, 211, 238, 0.028),
        inset 0 0 26px rgba(34, 211, 238, 0.045);
    animation: feed-radar-breathe 7s ease-in-out infinite;
}

.feed-radar span {
    position: absolute;
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: var(--feed-cyan);
    box-shadow: 0 0 18px rgba(34, 211, 238, 0.9);
    animation: feed-radar-dot 4.8s ease-in-out infinite;
    z-index: 1;
}

.feed-radar span:nth-child(1) { left: 22%; top: 36%; }
.feed-radar span:nth-child(2) { right: 28%; top: 22%; background: var(--feed-red); animation-delay: 1.35s; }
.feed-radar span:nth-child(3) { right: 36%; bottom: 24%; background: var(--feed-green); animation-delay: 2.7s; }

@keyframes feed-radar-sweep {
    to { transform: rotate(360deg); }
}

@keyframes feed-radar-breathe {
    0%, 100% {
        opacity: 0.62;
        transform: scale(0.985);
    }
    50% {
        opacity: 0.9;
        transform: scale(1.015);
    }
}

@keyframes feed-radar-dot {
    0%, 100% {
        opacity: 0.56;
        transform: scale(0.86);
        filter: saturate(0.9);
    }
    38%, 58% {
        opacity: 1;
        transform: scale(1.18);
        filter: saturate(1.25);
    }
}

.feed-signal-card {
    position: absolute;
    min-width: 12rem;
    padding: 0.8rem 0.95rem;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(3, 7, 17, 0.76);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.25);
}

.feed-signal-card strong,
.feed-signal-card span {
    display: block;
    font-family: 'Fira Code', monospace;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.feed-signal-card strong {
    font-size: 0.74rem;
    color: #f8fafc;
}

.feed-signal-card span {
    margin-top: 0.25rem;
    color: #64748b;
    font-size: 0.65rem;
}

.feed-signal-card-critical {
    top: 16%;
    right: 5%;
    border-color: rgba(251, 77, 90, 0.28);
}

.feed-signal-card-safe {
    left: 6%;
    bottom: 14%;
    border-color: rgba(34, 197, 94, 0.22);
}

.feed-stat-card,
.feed-panel,
.feed-table-panel {
    position: relative;
    overflow: hidden;
    border-color: rgba(148, 163, 184, 0.14) !important;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.82), rgba(8, 13, 26, 0.82)) !important;
    box-shadow: 0 18px 55px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.045) !important;
}

.feed-stat-card::after,
.feed-panel::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.055), transparent 42%);
    pointer-events: none;
}

.feed-stat-card {
    min-height: 7.25rem;
}

.feed-stat-card:hover,
.feed-panel:hover,
.feed-table-panel:hover {
    border-color: rgba(34, 211, 238, 0.25) !important;
}

.feed-stat-card [id^="stat-"]:not(#stat-kev-window) {
    font-family: 'Fira Code', monospace;
    font-size: clamp(1.35rem, 1.8vw, 1.875rem);
    line-height: 1.15;
    letter-spacing: 0;
    white-space: nowrap;
}

.feed-chart-panel .time-btn,
.filter-btn,
#pagination-controls button {
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.feed-chart-panel .time-btn:hover,
.filter-btn:hover,
#pagination-controls button:hover {
    transform: translateY(-1px);
    border-color: rgba(34, 211, 238, 0.3);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.34));
    color: #e0f2fe;
    box-shadow: 0 10px 26px rgba(34, 211, 238, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.055);
}

.feed-chart-panel .time-btn.active,
.filter-btn.active,
.feed-chart-panel .time-btn[aria-pressed="true"],
.filter-btn[aria-pressed="true"] {
    border-color: rgba(34, 211, 238, 0.36);
    background: linear-gradient(135deg, #22d3ee, #3b82f6 58%, #8b5cf6) !important;
    color: #03111f !important;
    box-shadow: 0 0 30px rgba(34, 211, 238, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

#pagination-controls .bg-indigo-600 {
    background: linear-gradient(135deg, #67e8f9, #38bdf8) !important;
    color: #04111d !important;
    font-weight: 800;
    box-shadow: 0 0 22px rgba(34, 211, 238, 0.25);
}

#search-input {
    min-height: 2.25rem;
    background: rgba(3, 7, 17, 0.72) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

#search-input:focus {
    border-color: rgba(34, 211, 238, 0.56) !important;
    box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.1);
}

.feed-table-toolbar h2 {
    letter-spacing: 0;
}

.feed-table-panel table {
    min-width: 760px;
}

.feed-table-panel thead tr {
    background: rgba(3, 7, 17, 0.72) !important;
}

.feed-table-panel th {
    color: #64748b !important;
    letter-spacing: 0.08em;
}

#cve-table-body tr {
    transition: background 160ms ease, border-color 160ms ease;
}

#cve-table-body tr:hover {
    background: rgba(15, 23, 42, 0.72) !important;
}

#cve-table-body td {
    border-color: rgba(148, 163, 184, 0.08);
}

#panel-critical > div,
#panel-kev > div {
    transition: background 160ms ease, transform 160ms ease;
}

#panel-critical > div:hover,
#panel-kev > div:hover {
    background: rgba(15, 23, 42, 0.44);
}

.feed-footer {
    color: #64748b;
}

/* === Kevora intelligence-sweep loader ====================================
   Centerpiece: Kevora mark.
   Layers (back to front): radial atmospheric backdrop, faint wireframe
   globe + polar grid + radar sweep + signal pings (canvas), two
   counter-rotating dashed rings (CSS), breathing Kevora mark, cycling
   telemetry copy + progress hairline. Reused via partials/_kevora_loader.html.
   ========================================================================= */

#loading-screen.kevora-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(1.5rem, 3vw, 2.6rem);
    padding: 2rem 1.25rem;
    background:
        radial-gradient(circle at 50% 42%, rgba(34, 211, 238, 0.10), transparent 28rem),
        radial-gradient(circle at 56% 56%, rgba(139, 92, 246, 0.08), transparent 32rem),
        radial-gradient(circle at 50% 100%, rgba(15, 23, 42, 0.6), transparent 60%),
        #03060f !important;
    transition: opacity 0.5s ease;
}

.kevora-loader__stage {
    position: relative;
    width: min(28rem, calc(100vw - 3rem));
    aspect-ratio: 1 / 1;
    max-height: min(56vh, 28rem);
    display: grid;
    place-items: center;
    isolation: isolate;
}

.kevora-loader__canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 0 32px rgba(34, 211, 238, 0.10));
}

.kevora-loader__rings {
    position: absolute;
    inset: 18%;
    display: grid;
    place-items: center;
    pointer-events: none;
    z-index: 1;
}

.kevora-loader__ring {
    position: absolute;
    border-radius: 999px;
    box-sizing: border-box;
}

.kevora-loader__ring--outer {
    width: 100%;
    height: 100%;
    border: 1px dashed rgba(34, 211, 238, 0.30);
    box-shadow:
        inset 0 0 22px rgba(34, 211, 238, 0.06),
        0 0 24px rgba(34, 211, 238, 0.06);
    animation: kevora-loader-spin-cw 18s linear infinite;
}

.kevora-loader__ring--inner {
    width: 70%;
    height: 70%;
    border: 1px dashed rgba(148, 163, 184, 0.18);
    animation: kevora-loader-spin-ccw 26s linear infinite;
}

.kevora-loader__core {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
}

.kevora-loader__mark {
    width: clamp(4.25rem, 14vw, 5.5rem);
    height: clamp(4.25rem, 14vw, 5.5rem);
    object-fit: contain;
    filter:
        drop-shadow(0 0 14px rgba(34, 211, 238, 0.28))
        drop-shadow(0 0 28px rgba(139, 92, 246, 0.16));
    animation: kevora-loader-breathe 4.4s ease-in-out infinite;
}

.kevora-loader__telemetry {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    width: min(26rem, calc(100vw - 3rem));
    text-align: center;
}

.kevora-loader__label-stack {
    position: relative;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.kevora-loader__label {
    font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: #7dd3fc;
    text-shadow: 0 0 18px rgba(34, 211, 238, 0.30);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.45s ease, transform 0.45s ease;
}

.kevora-loader__label.is-active {
    opacity: 1;
    transform: translateY(0);
}

.kevora-loader__progress {
    position: relative;
    height: 1px;
    width: min(15rem, 100%);
    background: linear-gradient(
        90deg,
        rgba(34, 211, 238, 0) 0%,
        rgba(34, 211, 238, 0.14) 50%,
        rgba(34, 211, 238, 0) 100%
    );
    overflow: hidden;
    border-radius: 999px;
}

.kevora-loader__progress-bar {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -35%;
    width: 35%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(125, 211, 252, 0.95) 50%,
        transparent 100%
    );
    box-shadow: 0 0 12px rgba(34, 211, 238, 0.55);
    animation: kevora-loader-progress 2.8s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.kevora-loader__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(148, 163, 184, 0.7);
}

.kevora-loader__sep {
    color: rgba(71, 85, 105, 0.7);
}

@keyframes kevora-loader-spin-cw {
    to { transform: rotate(360deg); }
}

@keyframes kevora-loader-spin-ccw {
    to { transform: rotate(-360deg); }
}

@keyframes kevora-loader-breathe {
    0%, 100% {
        transform: scale(0.97);
        filter:
            drop-shadow(0 0 12px rgba(34, 211, 238, 0.22))
            drop-shadow(0 0 24px rgba(139, 92, 246, 0.12));
    }
    50% {
        transform: scale(1.03);
        filter:
            drop-shadow(0 0 18px rgba(34, 211, 238, 0.36))
            drop-shadow(0 0 32px rgba(139, 92, 246, 0.20));
    }
}

@keyframes kevora-loader-progress {
    0% { transform: translateX(0); }
    100% { transform: translateX(385%); }
}

@media (prefers-reduced-motion: reduce) {
    .kevora-loader__ring,
    .kevora-loader__mark,
    .kevora-loader__progress-bar {
        animation: none !important;
    }
    .kevora-loader__progress-bar {
        left: 0;
        width: 100%;
        background: rgba(34, 211, 238, 0.22);
        box-shadow: none;
    }
    .kevora-loader__label {
        opacity: 1;
        transform: none;
    }
}

#critical-toast {
    background: rgba(13, 20, 38, 0.92) !important;
    border-color: rgba(251, 77, 90, 0.32) !important;
    backdrop-filter: blur(16px);
}

@media (max-width: 900px) {
    .feed-nav-inner {
        padding: 0.8rem 1rem;
    }

    .feed-hero {
        grid-template-columns: 1fr;
    }

    .feed-hero-visual {
        min-height: 12rem;
    }
}

@media (max-width: 640px) {
    .feed-nav-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .feed-nav-actions {
        width: 100%;
        justify-content: space-between;
    }

    .feed-shell {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .feed-hero {
        border-radius: 14px;
    }

    .feed-title {
        font-size: clamp(2.15rem, 14vw, 3.8rem);
    }

    .feed-radar {
        width: 13rem;
    }

    .feed-signal-card {
        min-width: 10rem;
    }

    .feed-stat-card {
        min-height: 6.7rem;
    }

    .feed-table-panel table {
        min-width: 0;
        table-layout: fixed;
    }

    .feed-table-panel th:nth-child(1),
    .feed-table-panel td:nth-child(1) {
        width: 31%;
    }

    .feed-table-panel th:nth-child(2),
    .feed-table-panel td:nth-child(2) {
        width: 27%;
    }

    .feed-table-panel th:nth-child(3),
    .feed-table-panel td:nth-child(3) {
        width: 42%;
    }

    .feed-table-panel th:nth-child(4),
    .feed-table-panel td:nth-child(4) {
        display: none;
    }

    .feed-table-panel td[colspan="4"] {
        display: table-cell;
        width: auto;
    }

    #cve-table-body td {
        vertical-align: top;
    }
}

@media (prefers-reduced-motion: reduce) {
    .feed-body::before,
    .feed-stat-card,
    .feed-panel,
    .feed-radar::before,
    .feed-radar::after,
    .feed-radar span,
    .feed-chart-panel .time-btn,
    .filter-btn,
    .feed-hero-tags span,
    #pagination-controls button {
        animation: none !important;
        transition: none !important;
    }
}

/* ── Kevora logo ─────────────────────────────────────── */
.kevora-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    line-height: 0;
}

.kevora-logo__image {
    display: block;
    width: auto;
    object-fit: contain;
}
