/* VulnWatch 1.1.0 UI R2 — deliberate B2B security product system */
:root {
  --bg: #0b1016;
  --bg-elevated: #0f151d;
  --surface: #121a23;
  --surface-2: #17212c;
  --surface-3: #1c2834;
  --text: #edf2f7;
  --text-strong: #ffffff;
  --muted: #93a2b4;
  --muted-2: #6f8092;
  --line: #24313e;
  --border: var(--line);
  --line-strong: #344556;
  --accent: #62a5ff;
  --accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);
  --accent-border: color-mix(in srgb, var(--accent) 36%, var(--line));
  --success: #59c49a;
  --warning: #d9ad58;
  --danger: #e06b7a;
  --critical: #ef6a7c;
  --high: #ed8e62;
  --medium: #d8b75f;
  --low: #6daee9;
  --unknown: #8998aa;
  --radius-xs: 8px;
  --radius-sm: 10px;
  --radius: 14px;
  --radius-lg: 20px;
  --shadow: 0 18px 50px rgba(0,0,0,.22);
  --container: 1240px;
  --sidebar: 278px;
  --drawer: min(88vw, 360px);
}

* { box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
  font-family: system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.drawer-open { overflow: hidden; }
body::selection { background: color-mix(in srgb, var(--accent) 28%, transparent); }

a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
code, .ltr, [dir="ltr"] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.muted { color: var(--muted); }
.tiny { font-size: 11px; }
.full-width, .full-btn { width: 100%; }
.row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.text-link { color: #9fc8ff; font-weight: 650; }
.text-link:hover { color: #c5dcff; }

/* Core typography */
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--text-strong); letter-spacing: -.018em; }
h1 { font-size: clamp(28px, 3.1vw, 44px); line-height: 1.18; }
h2 { font-size: clamp(20px, 2vw, 28px); line-height: 1.28; }
h3 { font-size: 16px; line-height: 1.4; }
p { color: #b8c3cf; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 5px;
  color: #a7caff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 16px; height: 1px; background: currentColor; opacity: .65; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  color: #e8eef5;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}
.btn:hover { background: var(--surface-3); border-color: #465c70; }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #06101b; }
.btn.primary:hover { background: color-mix(in srgb, var(--accent) 88%, white); }
.btn.ghost { background: transparent; }
.btn.danger { background: rgba(224,107,122,.09); border-color: rgba(224,107,122,.42); color: #f1a5af; }
.btn.small { min-height: 34px; padding: 6px 10px; font-size: 12px; }
.btn.disabled, .disabled { opacity: .5; pointer-events: none; }

/* Forms */
.field, .filter-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field label, .filter-field label { color: #b2bfcd; font-size: 11px; font-weight: 750; }
.field input, .field select, .field textarea,
.filter-field input, .filter-field select,
input, select, textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #0d141c;
  color: var(--text);
  padding: 9px 11px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
input:hover, select:hover, textarea:hover { border-color: #324253; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); background: #0f1720; }
textarea { min-height: 118px; resize: vertical; }
.check { display: inline-flex; align-items: center; gap: 8px; color: #c0cad6; font-size: 12px; }
.check input { width: 17px; height: 17px; min-height: 0; accent-color: var(--accent); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 16px; }
.flash, .errors, .inline-alert, .policy-notice, .warning-note {
  border: 1px solid;
  border-radius: var(--radius-sm);
  padding: 11px 13px;
  margin-bottom: 14px;
}
.flash { background: rgba(89,196,154,.08); border-color: rgba(89,196,154,.35); color: #b5ead5; }
.errors { background: rgba(224,107,122,.08); border-color: rgba(224,107,122,.38); color: #f4bcc3; }
.inline-alert.warning, .warning-note { background: rgba(217,173,88,.08); border-color: rgba(217,173,88,.34); color: #ead199; }

/* Public shell */
.public-body { min-height: 100vh; background: var(--bg); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 70;
  border-bottom: 1px solid rgba(36,49,62,.85);
  background: rgba(11,16,22,.94);
  backdrop-filter: blur(12px);
}
.site-header-inner { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.site-brand { display: flex; align-items: center; min-width: 0; gap: 11px; }
.brand-mark {
  display: grid; place-items: center; width: 36px; height: 36px;
  border: 1px solid var(--accent-border); border-radius: 10px;
  background: var(--accent-soft); color: #bcd8ff; font-weight: 850;
}
.brand-logo { max-width: 150px; max-height: 40px; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.brand-copy strong { font-size: 13px; letter-spacing: -.01em; }
.brand-copy small { color: var(--muted-2); font-size: 10px; max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.public-nav { display: flex; align-items: center; gap: 4px; }
.public-nav > a, .lang-links a { padding: 7px 10px; border-radius: 8px; color: #b4c0ce; font-size: 12px; font-weight: 650; }
.public-nav > a:hover, .lang-links a:hover { background: var(--surface); color: #fff; }
.lang-links { display: flex; gap: 2px; margin-inline-start: 6px; padding-inline-start: 7px; border-inline-start: 1px solid var(--line); }
.lang-links a { font-size: 10px; }
.mobile-menu-button {
  display: none; width: 40px; height: 40px; align-items: center; justify-content: center;
  flex-direction: column; gap: 4px; border: 1px solid var(--line); border-radius: 9px;
  background: var(--surface); cursor: pointer;
}
.mobile-menu-button span { width: 18px; height: 1.5px; border-radius: 3px; background: #dce6f0; }
.public-main { min-height: calc(100vh - 150px); padding: 34px 0 56px; }
.site-footer { border-top: 1px solid var(--line); padding: 24px 0; background: #0a0f15; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.footer-inner > div:first-child { display: flex; flex-direction: column; }
.footer-inner span, .footer-links { color: var(--muted-2); font-size: 11px; }
.footer-links { display: flex; gap: 15px; }

/* Explicit RIGHT-side mobile drawer in all locales */
.mobile-drawer {
  position: fixed; z-index: 110; top: 0; bottom: 0; right: 0; left: auto;
  width: var(--drawer); padding: 18px; overflow-y: auto;
  border-left: 1px solid var(--line); background: #0d141c; box-shadow: var(--shadow);
  transform: translate3d(104%,0,0); visibility: hidden;
  transition: transform .2s ease, visibility .2s ease;
}
.mobile-drawer.is-open { transform: translate3d(0,0,0); visibility: visible; }
.drawer-overlay { position: fixed; z-index: 100; inset: 0; background: rgba(0,0,0,.62); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.drawer-overlay.is-open { opacity: 1; pointer-events: auto; }
.drawer-head, .panel-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.drawer-close { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); font-size: 21px; cursor: pointer; }
.drawer-nav { display: grid; gap: 5px; padding: 14px 0; }
.drawer-nav > a, .drawer-langs > a { padding: 10px 11px; border-radius: 8px; color: #bdc7d2; }
.drawer-nav > a:hover, .drawer-langs > a:hover { background: var(--surface-2); color: #fff; }
.drawer-divider { height: 1px; background: var(--line); margin: 7px 0; }
.drawer-langs { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.drawer-langs a { text-align: center; font-size: 11px; }

/* Shared page heading */
.page-heading, .topbar {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
  margin-bottom: 22px;
}
.page-heading { padding: 4px 0 0; }
.page-heading h1, .topbar h1 { margin: 2px 0 5px; }
.page-heading p, .topbar .muted { margin-bottom: 0; max-width: 780px; }
.compact-heading { margin-bottom: 18px; }
.breadcrumbs { display: flex; gap: 7px; align-items: center; color: var(--muted-2); font-size: 11px; margin-bottom: 12px; white-space: nowrap; overflow-x: auto; }

/* Public home: editorial, not sci-fi */
.landing-shell { display: grid; gap: 16px; }
.landing-hero-card {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.landing-hero-main { padding: clamp(30px, 5vw, 58px); }
.landing-hero-main h1 { max-width: 820px; margin: 8px 0 16px; font-size: clamp(34px, 5vw, 58px); font-weight: 790; }
.landing-hero-main p { max-width: 760px; margin-bottom: 0; font-size: 15px; color: #b8c4d0; }
.landing-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 23px; }
.landing-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 24px; }
.landing-tags span, .chip, .category-pills a, .landing-category-pills a {
  display: inline-flex; align-items: center; min-height: 27px; padding: 4px 8px;
  border: 1px solid var(--line); border-radius: 999px; background: #0e151d; color: #9eacbb; font-size: 10px;
}
.landing-live-card {
  padding: 28px;
  border-inline-start: 1px solid var(--line);
  background: #0e151d;
  display: flex; flex-direction: column; justify-content: center;
}
.landing-live-head { display: flex; align-items: center; gap: 8px; color: #b6c1cd; font-size: 11px; }
.pulse-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 5px rgba(89,196,154,.08); }
.landing-source-count { display: block; margin-top: 12px; font-size: 48px; line-height: 1; letter-spacing: -.04em; }
.landing-live-card > small { color: var(--muted-2); margin-top: 6px; }
.landing-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; }
.landing-mini-grid > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.landing-mini-grid b { display: block; font-size: 19px; }
.landing-mini-grid span { color: var(--muted-2); font-size: 9px; }
.landing-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.landing-stat { padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.landing-stat span { color: var(--muted-2); font-size: 10px; }
.landing-stat strong { display: block; margin-top: 3px; font-size: 25px; letter-spacing: -.03em; }
.landing-stat-danger strong { color: #f08b98; }
.landing-stat-warning strong { color: #dfbd70; }
.landing-section { margin-top: 42px; }
.landing-section-head, .section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.landing-section-head h2, .section-title h2, .section-title h3 { margin: 2px 0 0; }
.landing-advisory-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.landing-vuln-card {
  display: flex; flex-direction: column; min-width: 0; padding: 18px;
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
  transition: border-color .15s ease, background .15s ease;
}
.landing-vuln-card:hover { border-color: #3a4d60; background: #141e28; }
.landing-vuln-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.landing-vuln-date { color: var(--muted-2); font-size: 10px; }
.landing-vuln-card h3 { margin: 14px 0 8px; font-size: 15px; line-height: 1.55; }
.landing-vuln-card p { margin-bottom: 15px; color: #9faebd; font-size: 12px; }
.landing-vuln-meta { display: flex; flex-wrap: wrap; gap: 5px 11px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(36,49,62,.75); color: var(--muted-2); font-size: 10px; }
.landing-card-link { margin-top: 12px; color: #a8ccff; font-size: 11px; font-weight: 700; }
.landing-coverage { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr); gap: 28px; margin-top: 42px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.landing-coverage h2 { margin-bottom: 7px; }
.landing-coverage p { margin-bottom: 0; font-size: 12px; }
.landing-category-pills { display: flex; align-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 7px; }

/* Cards / grid */
.grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 12px; }
.col-3 { grid-column: span 3; } .col-4 { grid-column: span 4; } .col-5 { grid-column: span 5; }
.col-6 { grid-column: span 6; } .col-7 { grid-column: span 7; } .col-8 { grid-column: span 8; } .col-12 { grid-column: 1 / -1; }
.card, .filter-card, .summary-card, .side-card, .health-card, .usage-card, .plan-card {
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
}
.card { padding: 18px; }
.stat { min-height: 104px; display: flex; flex-direction: column; justify-content: space-between; }
.stat span { color: var(--muted-2); font-size: 10px; }
.stat strong { display: block; margin-top: 8px; font-size: 29px; line-height: 1; letter-spacing: -.04em; }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.content-card { min-width: 0; }
.note-card, .section-card { margin-top: 14px; }
.empty-state { padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--radius); color: var(--muted); text-align: center; }

/* Badges */
.badge {
  display: inline-flex; align-items: center; justify-content: center; min-height: 23px; padding: 3px 7px;
  border: 1px solid transparent; border-radius: 999px; font-size: 9px; font-weight: 850; line-height: 1.1; white-space: nowrap;
}
.badge.critical { color: #f3a6b0; background: rgba(239,106,124,.08); border-color: rgba(239,106,124,.28); }
.badge.high { color: #f0b095; background: rgba(237,142,98,.08); border-color: rgba(237,142,98,.28); }
.badge.medium { color: #e8d28f; background: rgba(216,183,95,.08); border-color: rgba(216,183,95,.27); }
.badge.low { color: #a4cdf1; background: rgba(109,174,233,.08); border-color: rgba(109,174,233,.28); }
.badge.unknown, .badge.neutral { color: #a9b5c2; background: #18222d; border-color: #2c3948; }
.badge.ok { color: #a9e1cb; background: rgba(89,196,154,.08); border-color: rgba(89,196,154,.28); }

/* Tables */
.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; }
.table { width: 100%; border-collapse: collapse; min-width: 680px; background: #0f161e; }
.table th, .table td { padding: 11px 12px; border-bottom: 1px solid rgba(36,49,62,.75); text-align: start; vertical-align: middle; }
.table th { position: sticky; top: 0; z-index: 1; background: #111922; color: #8999aa; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.table td { color: #cbd4de; font-size: 11px; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: rgba(255,255,255,.018); }
.table small { color: var(--muted-2); }

/* Public advisory list/filter */
.filter-card { padding: 16px; margin-bottom: 14px; }
.filter-card-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 13px; }
.filter-card-head > div { display: flex; flex-direction: column; }
.filters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.filter-search { grid-column: span 2; }
.filter-actions { display: flex; gap: 8px; align-items: end; }
.filter-checks { display: flex; flex-wrap: wrap; gap: 10px; }
.filter-result-count { color: var(--muted-2); font-size: 11px; }
.filters-collapsed { display: none !important; }
.advisory-list { display: grid; gap: 9px; }
.list-vuln-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; padding: 16px 17px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.list-vuln-main h2, .list-vuln-main h3 { margin: 8px 0 5px; font-size: 15px; }
.list-vuln-main p { margin-bottom: 0; color: #9aaabb; font-size: 11px; }
.list-vuln-side { min-width: 130px; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 12px; color: var(--muted-2); font-size: 10px; }
.list-badges { display: flex; gap: 5px; flex-wrap: wrap; }
.vw-pagination, .pagination, .page-numbers { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 18px; }
.page-button, .page-number { display: inline-grid; place-items: center; min-width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: #b8c3cf; font-size: 11px; }

/* Advisory detail */
.vulnerability-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 14px; align-items: start; }
.vulnerability-content, .vulnerability-sidebar { min-width: 0; }
.vulnerability-header { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); margin-bottom: 12px; }
.vulnerability-head-main h1 { margin: 9px 0 10px; font-size: clamp(25px,3vw,38px); }
.vuln-head-meta, .chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.vuln-lead { font-size: 14px; color: #b8c4d0; }
.rich-text { color: #c0cad5; }
.rich-text p:last-child { margin-bottom: 0; }
.spec-list { display: grid; gap: 0; }
.spec-list > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(36,49,62,.75); }
.spec-list > div:last-child { border-bottom: 0; }
.spec-list span { color: var(--muted-2); font-size: 10px; }
.spec-list strong { font-size: 11px; text-align: end; }
.sticky-card { position: sticky; top: 84px; }
.product-box, .remediation-card { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); margin-bottom: 11px; }
.primary-product-label { color: var(--muted-2); font-size: 10px; }
.product-heading { margin: 4px 0 8px; }
.fixed-version { color: #a9e1cb; }
.remediation-steps, .public-remediation-steps { display: grid; gap: 8px; }
.remediation-step { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #0f161e; }
.remediation-step-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.command-block, .vector-box { overflow-x: auto; padding: 11px; border: 1px solid var(--line); border-radius: 9px; background: #0a1016; color: #c6d5e4; font-size: 11px; }
.official-command-note, .remediation-source-link { color: var(--muted-2); font-size: 10px; }

/* Admin/User application shell */
.panel-body { background: #0a0f15; }
.panel-shell { min-height: 100vh; }
.panel-sidebar {
  position: fixed; z-index: 60; top: 0; bottom: 0; inset-inline-start: 0;
  width: var(--sidebar); display: flex; flex-direction: column; padding: 16px 14px;
  border-inline-end: 1px solid var(--line); background: #0c1219; overflow-y: auto;
}
.panel-drawer-head { border-bottom: 0; padding: 2px 4px 14px; }
.panel-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.panel-brand > span:last-child { display: flex; flex-direction: column; line-height: 1.25; }
.panel-brand strong { font-size: 12px; }
.panel-brand small { color: var(--muted-2); font-size: 9px; }
.panel-logo { max-width: 130px; max-height: 36px; object-fit: contain; }
.panel-drawer-close { display: none; }
.panel-nav { display: grid; gap: 3px; padding: 7px 0 14px; }
.panel-nav-group { margin-top: 12px; }
.panel-nav-label { display: block; padding: 0 9px 5px; color: #627386; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.panel-nav a { position: relative; display: flex; align-items: center; min-height: 38px; padding: 8px 10px; border-radius: 8px; color: #9eadbd; font-size: 11px; font-weight: 650; }
.panel-nav a:hover { background: #111a23; color: #eef4fa; }
.panel-nav a.is-active { background: #152230; color: #fff; }
.panel-nav a.is-active::before { content: ""; position: absolute; inset-inline-start: 0; width: 2px; height: 18px; border-radius: 2px; background: var(--accent); }
.panel-sidebar-foot { margin-top: auto; padding: 12px 4px 2px; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.panel-sidebar-foot span { color: #8898a9; font-size: 10px; }
.panel-main { min-height: 100vh; margin-inline-start: var(--sidebar); padding: 28px clamp(18px,3vw,38px) 48px; }
.panel-mobile-head { display: none; }
.panel-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.panel-toolbar-meta { display: flex; align-items: center; gap: 10px; color: var(--muted-2); font-size: 10px; }
.panel-toolbar-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); }
.product-topbar { align-items: flex-end; }

/* Dashboard */
.dashboard-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.kpi-card { min-height: 112px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); display: flex; flex-direction: column; justify-content: space-between; }
.kpi-label { color: var(--muted-2); font-size: 10px; }
.kpi-value { font-size: 29px; line-height: 1; letter-spacing: -.04em; }
.kpi-foot { color: #728397; font-size: 9px; }
.activity-list { display: grid; }
.activity-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(36,49,62,.75); }
.activity-row:last-child { border-bottom: 0; }
.activity-row small { color: var(--muted-2); }

/* Sources / health / diagnostic */
.source-list, .health-list, .stack-list { display: grid; gap: 8px; }
.source-item, .relationship-row, .matrix-row { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #0f161e; }
.source-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.source-edit-form { min-width: min(680px, 76vw); }
.health-grid, .compact-health { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.health-card { padding: 14px; }
.health-card strong { display: block; margin-top: 5px; }
.diagnostic-box { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.diagnostic-box > div { padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: #0c131a; }
.diagnostic-bad { color: #f0a1ac; }
.preflight-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.preflight-grid > div { padding: 11px; border: 1px solid var(--line); border-radius: 9px; background: #0f161e; display: flex; flex-direction: column; }

/* Subscription / billing */
.plan-grid, .compact-plans { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.plan-card { display: flex; flex-direction: column; min-width: 0; padding: 18px; }
.plan-card.featured { border-color: var(--accent-border); }
.plan-card.current { box-shadow: inset 0 2px 0 var(--success); }
.plan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.plan-head h2, .plan-head h3 { margin: 0; }
.plan-code { display: block; margin-bottom: 3px; color: var(--muted-2); font-size: 9px; letter-spacing: .1em; }
.plan-card p { min-height: 44px; margin-bottom: 0; color: #9facba; font-size: 11px; }
.plan-price { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); min-width: 0; }
.plan-price-main { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; min-width: 0; }
.plan-price-main strong { font-size: 20px; }
.plan-price-main span { color: var(--muted-2); font-size: 9px; }
.plan-period { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; min-width: 0; padding-inline-start: 10px; border-inline-start: 1px solid var(--line); }
.plan-period span { color: var(--muted-2); font-size: 9px; white-space: nowrap; }
.plan-period strong { font-size: 11px; white-space: nowrap; color: #dce8f5; }
.subscription-period-note { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.subscription-period-note strong { color: #d8e5f2; }
.feature-list { list-style: none; padding: 0; margin: 11px 0 0; display: grid; gap: 0; }
.feature-list li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(36,49,62,.65); color: #aab6c3; font-size: 10px; }
.usage-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.usage-card { padding: 15px; }
.usage-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.usage-head strong { font-size: 20px; }
.meter { height: 5px; margin-top: 9px; border-radius: 99px; background: #0b1117; overflow: hidden; }
.meter span { display: block; height: 100%; border-radius: 99px; background: var(--accent); }
.quota-mini { display: flex; flex-wrap: wrap; gap: 5px; }
.quota-mini span { padding: 4px 7px; border: 1px solid var(--line); border-radius: 7px; background: #0e151d; color: #9fabb8; font-size: 9px; }
.subscription-summary { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.subscription-summary > div:first-child { display: flex; flex-direction: column; }
.subscription-summary > div:first-child strong { font-size: 22px; }
.subscription-summary small { color: var(--muted-2); }
.gateway-card { min-height: 100%; display: flex; flex-direction: column; }
.gateway-kicker, .secret-state { color: var(--muted-2); font-size: 9px; }
.secret-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 4px 0 12px; }
.secret-state { padding: 4px 7px; border: 1px solid var(--line); border-radius: 999px; background: #0e151d; }
.secret-state.ready { color: #a7ddc8; border-color: rgba(89,196,154,.28); background: rgba(89,196,154,.06); }
.sticky-actions { display: flex; justify-content: flex-end; margin-top: auto; padding-top: 12px; }
.plan-admin-row { border: 1px solid var(--line); border-radius: 10px; background: #0f161e; }
.plan-admin-row > summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px; cursor: pointer; list-style: none; }
.plan-admin-row > summary::-webkit-details-marker { display: none; }
.plan-admin-row > form { padding: 0 12px 13px; }
.summary-badges { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; }
.quota-policy-grid { display: grid; gap: 8px; margin: 12px 0; }
.quota-policy { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 7px; align-items: center; }
.check-grid { display: flex; gap: 12px; flex-wrap: wrap; margin: 10px 0 14px; }
.switch { display: inline-flex; align-items: center; }
.switch input { position: absolute; opacity: 0; pointer-events: none; }
.switch span { display: block; width: 38px; height: 22px; border-radius: 999px; background: #273442; position: relative; cursor: pointer; }
.switch span::after { content: ""; position: absolute; width: 16px; height: 16px; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: .15s; }
.switch input:checked + span { background: #3f78bb; }
.switch input:checked + span::after { left: 19px; }
.manual-reference-form, .compact-form { display: flex; align-items: center; gap: 6px; }
.manual-reference-form input, .compact-form input, .compact-form select { min-width: 130px; }
.payment-redirect { max-width: 560px; margin: 10vh auto; text-align: center; }

/* Auth */
.auth-body { min-height: 100vh; background: #090e14; }
.auth-shell { width: min(420px, calc(100% - 30px)); margin: 0 auto; min-height: 100vh; display: grid; place-items: center; padding: 30px 0; }
.auth-card { width: 100%; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.auth-foot { margin-top: 14px; color: var(--muted-2); font-size: 10px; text-align: center; }
.auth-submit { margin-top: 8px; }

/* Misc existing modules */
.relationship-list, .notification-matrix, .notification-policy-layout, .rule-target-grid, .auto-update-grid, .pricing-grid { display: grid; gap: 10px; }
.relationship-flow { color: var(--muted-2); font-size: 10px; }
.notification-policy-layout { grid-template-columns: repeat(2,minmax(0,1fr)); }
.rule-target-grid, .auto-update-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pricing-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.sms-provider-card, .setting-head { margin-bottom: 12px; }
.setting-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.status-strip { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted-2); font-size: 9px; }
.risk-meter { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.risk-score { font-weight: 800; }
.risk-urgent { color: #f38a98; } .risk-high { color: #eca079; } .risk-medium { color: #e2ca82; } .risk-normal { color: #9bd8c0; }
.epss-note { color: var(--muted-2); font-size: 10px; }

/* Responsive */
@media (max-width: 1180px) {
  .landing-advisory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .landing-stats, .dashboard-kpis, .plan-grid, .compact-plans, .pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .health-grid, .compact-health, .preflight-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 960px) {
  .desktop-nav { display: none; }
  .mobile-menu-button { display: flex; }
  .landing-hero-card { grid-template-columns: 1fr; }
  .landing-live-card { border-inline-start: 0; border-top: 1px solid var(--line); }
  .landing-coverage { grid-template-columns: 1fr; }
  .vulnerability-layout { grid-template-columns: 1fr; }
  .sticky-card { position: static; }

  .panel-sidebar {
    z-index: 110; top: 0; bottom: 0; right: 0 !important; left: auto !important;
    width: var(--drawer); border-right: 0; border-left: 1px solid var(--line);
    transform: translate3d(104%,0,0); visibility: hidden; box-shadow: var(--shadow);
    transition: transform .2s ease, visibility .2s ease;
  }
  .panel-sidebar.mobile-open { transform: translate3d(0,0,0); visibility: visible; }
  .panel-drawer-close { display: grid; }
  .panel-main { margin-inline-start: 0; padding: 20px 18px 42px; }
  .panel-mobile-head {
    position: sticky; top: 0; z-index: 55; display: flex; align-items: center; justify-content: space-between;
    min-height: 62px; padding: 10px 18px; border-bottom: 1px solid var(--line); background: rgba(10,15,21,.94); backdrop-filter: blur(10px);
  }
  .panel-toolbar { display: none; }
  .col-3, .col-4, .col-5, .col-6, .col-7, .col-8 { grid-column: span 6; }
  .filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .container { width: min(100% - 28px, var(--container)); }
  .public-main { padding-top: 24px; }
  .page-heading, .topbar, .section-title, .landing-section-head { align-items: flex-start; flex-direction: column; }
  .page-heading h1, .topbar h1 { font-size: 28px; }
  .landing-hero-main { padding: 28px 20px; }
  .landing-hero-main h1 { font-size: 34px; }
  .landing-live-card { padding: 20px; }
  .landing-stats, .landing-advisory-grid, .dashboard-kpis, .plan-grid, .compact-plans, .usage-grid, .pricing-grid { grid-template-columns: 1fr; }
  .landing-stat { display: flex; align-items: center; justify-content: space-between; }
  .landing-stat strong { font-size: 22px; }
  .footer-inner { align-items: flex-start; flex-direction: column; }
  .form-grid, .filters, .notification-policy-layout, .rule-target-grid, .auto-update-grid, .diagnostic-box, .preflight-grid, .health-grid, .compact-health { grid-template-columns: 1fr; }
  .filter-search { grid-column: auto; }
  .list-vuln-card { grid-template-columns: 1fr; }
  .list-vuln-side { min-width: 0; align-items: flex-start; flex-direction: row; }
  .col-3, .col-4, .col-5, .col-6, .col-7, .col-8 { grid-column: 1 / -1; }
  .table { min-width: 620px; }
  .card { padding: 15px; }
  .subscription-summary { align-items: flex-start; flex-direction: column; }
  .plan-price { align-items: stretch; flex-direction: column; gap: 8px; }
  .plan-period { align-items: flex-start; padding-inline-start: 0; padding-top: 8px; border-inline-start: 0; border-top: 1px dashed var(--line); }
  .quota-policy { grid-template-columns: 1fr; }
  .manual-reference-form, .compact-form { align-items: stretch; flex-direction: column; }
  .manual-reference-form .btn, .compact-form .btn { width: 100%; }
  .panel-main { padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
.auth-foot { display:flex; justify-content:space-between; gap:12px; }
.auth-foot a:hover { color:#c8ddf7; }
/* Compatibility styles for existing feature views */
.install-card { width:min(900px,calc(100% - 28px)); margin:30px auto; padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.pattern-example { display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.pattern-example code { display:inline-flex; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:#0b1117; color:#bcd0e4; font-size:10px; }
.primary-chip { border-color:var(--accent-border)!important; background:var(--accent-soft)!important; color:#c6ddff!important; }
.section-icon { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:9px; background:#111a23; color:#9fc7fb; font-size:10px; font-weight:800; }
.title-divider { color:#526376; margin-inline:4px; }
.translation-provider-help { margin-top:10px; padding:10px 11px; border:1px solid rgba(98,165,255,.25); border-radius:9px; background:rgba(98,165,255,.05); color:#adc7e5; font-size:10px; }
.notification-rules-table td { vertical-align:top; }
.checkout-box { margin-top:auto; padding-top:10px; }
.manual-help { border-inline-start:2px solid var(--accent); }
.preflight-card { border-color:var(--accent-border); }
.auto-update-card { background:#101821; }
.pricing-heading { max-width:850px; }
.plan-section-head { margin-top:26px; }
.plan-editor-grid { margin-top:10px; }
.plan-flags { padding:7px 0; }
.stats-row { display:flex; gap:10px; flex-wrap:wrap; }
.compact-usage { margin-bottom:10px; }
.admin-usage { margin-top:8px; }
.subscription-topbar { align-items:flex-end; }
.sources-card, .invoices-card, .plan-create-card { align-self:start; }
.billing-grid > .col-4 { align-self:stretch; }
@media (max-width:1100px){.billing-grid>.col-4{grid-column:span 6}.subscription-admin-grid>.col-4,.subscription-admin-grid>.col-8{grid-column:span 12}}
@media (max-width:700px){.billing-grid>.col-4{grid-column:1/-1}}

/* VulnWatch 1.1.2 — Dark Operations UI
   Low-noise B2B security interface. No animation loops, no remote UI assets. */
:root {
  --bg:#080d14;
  --bg-elevated:#0c131d;
  --surface:#0f1823;
  --surface-2:#121e2b;
  --surface-3:#172536;
  --text:#dce7f2;
  --text-strong:#f8fbff;
  --muted:#8da0b4;
  --muted-2:#65798f;
  --line:#1c2c3d;
  --line-strong:#2b4056;
  --accent:#4f8cff;
  --accent-soft:rgba(79,140,255,.12);
  --accent-border:rgba(79,140,255,.34);
  --success:#45c394;
  --warning:#e0ad55;
  --danger:#e66d7d;
  --shadow:0 18px 44px rgba(0,0,0,.24);
  --sidebar:264px;
}
html { background:var(--bg); }
body { background:var(--bg); color:var(--text); }
body::before { display:none !important; }
.site-header,.panel-mobile-head { backdrop-filter:none !important; }

/* Shared surfaces */
.card,.filter-card,.summary-card,.side-card,.health-card,.usage-card,.plan-card {
  background:linear-gradient(180deg,#101a26 0%,#0e1721 100%);
  border:1px solid var(--line);
  box-shadow:none;
}
.card:hover,.plan-card:hover { border-color:#2a4056; }
.table-wrap { background:#0d1620; border-color:var(--line); }
.table { background:#0d1620; }
.table th { background:#101b27; color:#7f93a8; border-color:#1c2c3d; }
.table td { color:#cbd7e3; border-color:#172737; }
.table tbody tr:hover td { background:#101c29; }
.table a { color:#d8e6f6; }
.table a:hover { color:#8bb7ff; }
.empty-state { background:#0b131c; border-color:#1c2c3d; color:#71869c; }
.vector-box { background:#09111a; border-color:#1e3042; color:#a9bfd5; }

/* Buttons and inputs */
.btn { background:#101b27; border-color:#2a3d51; color:#dce7f2; box-shadow:none; }
.btn:hover { background:#152334; border-color:#3b566f; }
.btn.primary { background:#2f6fe4; border-color:#3779ee; color:#fff; }
.btn.primary:hover { background:#397cf0; }
.btn.ghost { background:transparent; }
.btn.danger { color:#ffabb5; background:#28151b; border-color:#5c2a35; }
input,select,textarea,.field input,.field select,.field textarea,.filter-field input,.filter-field select {
  background:#09121b; border-color:#223448; color:#dce7f2;
}
input:hover,select:hover,textarea:hover { border-color:#35506a; }
input:focus,select:focus,textarea:focus { background:#0b151f; border-color:#4f8cff; box-shadow:0 0 0 3px rgba(79,140,255,.10); }
.field label,.filter-field label,.check { color:#9cadbf; }
.flash { background:#0e241d; border-color:#245f49; color:#a6e2ca; }
.errors { background:#28151c; border-color:#63303b; color:#ffc0c7; }
.inline-alert.warning,.warning-note { background:#261f12; border-color:#645127; color:#efd59d; }

/* Public */
.public-body { background:#080d14; color:var(--text); }
.site-header { background:#090f17; border-color:#172536; box-shadow:0 1px 0 rgba(255,255,255,.015); }
.site-header-inner { min-height:72px; }
.site-brand strong { color:#f7fbff; }
.brand-copy small { color:#6f8397; }
.public-nav > a,.lang-links a { color:#9cafc1; }
.public-nav > a:hover,.public-nav > a.is-active,.lang-links a:hover { background:#111b27; color:#fff; }
.public-login-link { border:1px solid #2b4056; margin-inline-start:4px; }
.mobile-menu-button { background:#0f1823; border-color:#24384c; }
.mobile-drawer { background:#0b131d; border-color:#26384b; }
.site-footer { background:#070c12; border-color:#162434; }
.footer-inner strong { color:#f5f9fd; }

.landing-hero-card.premium-hero {
  border:1px solid #1e3044;
  background:linear-gradient(135deg,#0b1728 0%,#0c1d35 60%,#10284a 100%);
  box-shadow:0 28px 65px rgba(0,0,0,.22);
}
.landing-hero-main { padding:48px 48px 42px; }
.landing-hero-main h1 { max-width:860px; color:#fff; font-size:clamp(38px,5vw,66px); line-height:1.12; }
.landing-hero-main p { max-width:780px; color:#b7c8db; font-size:15px; }
.landing-live-card { background:rgba(5,12,23,.42); border-color:#27415f; }
.landing-live-head,.landing-live-card>small { color:#8da4bd; }
.landing-source-count { color:#fff; }
.landing-mini-grid>div { background:rgba(255,255,255,.035); border-color:#29445f; }
.landing-mini-grid b { color:#f6f9fd; }
.landing-mini-grid span { color:#8fa6be; }
.landing-tags span { background:rgba(255,255,255,.035); border-color:#29425c; color:#aec1d5; }
.landing-stat { background:#0e1721; border-color:#1d2d3f; box-shadow:none; }
.landing-stat span { color:#71859a; }
.landing-stat strong { color:#f5f8fc; }
.landing-stat-danger strong { color:#ff8390; }
.landing-stat-warning strong { color:#f2b86c; }
.landing-vuln-card { background:#0e1721; border-color:#1d2d3f; box-shadow:none; }
.landing-vuln-card:hover { transform:none; background:#101b27; border-color:#2c4359; box-shadow:none; }
.landing-vuln-card h3 { color:#eef4fa; }
.landing-vuln-card p { color:#9eafc0; }
.landing-vuln-date,.landing-vuln-meta { color:#71859a; }
.landing-vuln-meta { border-color:#1b2b3c; }
.landing-coverage { background:#0e1721; border-color:#1d2d3f; box-shadow:none; }
.landing-category-pills a,.chip,.category-pills a { background:#0a131d; border-color:#24364a; color:#9fb2c6; }
.landing-category-pills a:hover,.chip:hover,.category-pills a:hover { color:#fff; border-color:#3a5875; background:#101d2b; }
.page-heading h1 { color:#f7fbff; }
.page-heading p { color:#98aabd; }
.plan-card.featured { border-color:#3b6db2; box-shadow:inset 0 2px 0 #4f8cff; }
.feature-list li { color:#9cafc1; border-color:#1b2a3a; }

/* Operations/User shell: desktop rail stays visually left; mobile drawer always right. */
.panel-body { background:#080d14; color:var(--text); }
.panel-shell { min-height:100vh; }
.panel-sidebar {
  inset-inline-start:0;
  background:#0a111a;
  border-inline-end:1px solid #1b2a3b;
  box-shadow:none;
}
[dir="rtl"] .panel-sidebar { left:0; right:auto; }
[dir="rtl"] .panel-main { margin-left:var(--sidebar); margin-right:0; }
[dir="ltr"] .panel-sidebar { left:0; right:auto; }
[dir="ltr"] .panel-main { margin-left:var(--sidebar); margin-right:0; }
.panel-brand { min-height:48px; }
.panel-brand strong { color:#f7fbff; letter-spacing:-.01em; }
.panel-brand small { color:#677d93; }
.panel-logo { max-width:138px; max-height:34px; }
.panel-nav-label { color:#53697f; font-size:9px; letter-spacing:.08em; }
.panel-nav a {
  min-height:42px; gap:11px; padding:9px 11px; border:1px solid transparent;
  color:#91a5b8; border-radius:9px;
}
.panel-nav a::before {
  content:"" !important; position:static !important; width:16px !important; height:16px !important;
  flex:0 0 16px; background:#72879c !important; border-radius:0 !important; opacity:.95;
  -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center;
}
.panel-nav a:hover { background:#101c29; color:#eaf2fa; border-color:#1d3042; }
.panel-nav a.is-active { background:#12233a; color:#fff; border-color:#284b73; box-shadow:inset 3px 0 0 #4f8cff; }
[dir="rtl"] .panel-nav a.is-active { box-shadow:inset -3px 0 0 #4f8cff; }
.panel-nav a.is-active::before { background:#7fb0ff !important; }
.panel-nav a::after { display:none !important; }

/* CSS-only navigation icons */

.panel-sidebar-foot { border-color:#1c2b3c; gap:12px; }
.account-mini { display:grid; grid-template-columns:36px 1fr; gap:9px; align-items:center; min-width:0; }
.account-avatar { display:grid !important; place-items:center; width:36px; height:36px; border-radius:10px; background:#14233a; color:#8ab8ff !important; border:1px solid #2a496c; font-size:13px !important; font-weight:800; }
.account-mini>span:last-child { display:flex; flex-direction:column; min-width:0; }
.account-mini strong { color:#e8f0f8; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-mini small { color:#687e94; font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.panel-main { background:#080d14; padding-top:24px; }
.panel-toolbar { margin-bottom:24px; border-color:#172738; }
.panel-toolbar-meta { color:#6f8398; }
.panel-toolbar-dot { box-shadow:0 0 0 4px rgba(69,195,148,.08); }
.toolbar-separator { color:#3e5368; }
.topbar h1 { font-size:32px; }
.topbar .muted { font-size:12px; }

.dashboard-kpis-six { grid-template-columns:repeat(6,minmax(0,1fr)); }
.kpi-card { min-height:126px; position:relative; overflow:hidden; background:#0f1823; border-color:#1d2d3e; }
.kpi-card::after { content:""; position:absolute; width:78px; height:78px; inset-inline-end:-28px; top:-28px; border-radius:50%; background:var(--kpi-soft,rgba(79,140,255,.08)); }
.kpi-icon { position:absolute; z-index:1; inset-inline-end:14px; top:14px; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--kpi-soft,rgba(79,140,255,.08)); color:var(--kpi-color,#78a9ff); border:1px solid color-mix(in srgb,var(--kpi-color,#78a9ff) 24%, transparent); font-size:11px; font-weight:850; }
.kpi-label { color:#73889d; font-size:10px; padding-inline-end:36px; }
.kpi-value { color:#f6f9fc; font-size:29px; margin-top:8px; }
.kpi-foot { color:#5f7489; font-size:9px; }
.kpi-blue{--kpi-color:#69a2ff;--kpi-soft:rgba(79,140,255,.10)}.kpi-green{--kpi-color:#55d2a2;--kpi-soft:rgba(69,195,148,.10)}.kpi-amber{--kpi-color:#efb866;--kpi-soft:rgba(224,173,85,.10)}.kpi-red{--kpi-color:#ff8390;--kpi-soft:rgba(230,109,125,.10)}.kpi-purple{--kpi-color:#b78cff;--kpi-soft:rgba(156,105,255,.10)}.kpi-indigo{--kpi-color:#8d9cff;--kpi-soft:rgba(99,102,241,.10)}
.kpi-plan-name { font-size:20px !important; line-height:1.2 !important; }
.status-list { display:grid; }
.status-row { display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid #182838; }
.status-row:last-child { border-bottom:0; }
.status-row span { color:#7e92a6; font-size:11px; }
.status-row strong { color:#edf4fb; font-size:12px; }
.dashboard-detail-link { display:block; margin-top:12px; padding-top:12px; border-top:1px solid #182838; color:#78a9ff; font-size:11px; font-weight:700; }
.activity-status { display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.cron-metrics { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px; }
.cron-metrics>div { padding:11px; border:1px solid #1c2d3f; border-radius:10px; background:#0a131c; display:flex; flex-direction:column; gap:4px; }
.cron-metrics span { color:#6d8297; font-size:9px; }
.cron-metrics strong { color:#e5eef7; font-size:12px; }
.cron-url-box { overflow:auto; white-space:nowrap; }
.text-danger { color:#ff8a98 !important; }

/* Auth */
.auth-body { min-height:100vh; background:#070c12; color:var(--text); }
.auth-shell { width:min(430px,calc(100% - 28px)); }
.auth-card { background:#0e1721; border-color:#203145; box-shadow:0 28px 70px rgba(0,0,0,.28); }
.auth-card h1 { color:#f8fbff; font-size:30px; }
.auth-card .muted { color:#8599ad; }
.auth-foot { justify-content:center; }
.private-console-login .auth-card { border-color:#294766; }

/* Reduce visual/GPU work */
* { animation-duration:0s; }
.landing-vuln-card,.btn,.panel-nav a,input,select,textarea,.mobile-drawer,.panel-sidebar,.drawer-overlay { transition-duration:.12s; }

/* Mobile and tablet */
@media (max-width:1180px) {
  .dashboard-kpis-six { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:960px) {
  [dir="rtl"] .panel-main,[dir="ltr"] .panel-main { margin-left:0; margin-right:0; }
  .panel-sidebar,[dir="rtl"] .panel-sidebar,[dir="ltr"] .panel-sidebar {
    right:0 !important; left:auto !important; border-right:0; border-left:1px solid #263a53;
    width:var(--drawer); transform:translate3d(104%,0,0); visibility:hidden;
  }
  .panel-sidebar.mobile-open { transform:translate3d(0,0,0); visibility:visible; }
  .panel-mobile-head { background:#0a111a; border-color:#1b2b3c; box-shadow:none; }
  .panel-mobile-head .panel-brand strong { color:#f7fbff; }
  .panel-mobile-head .panel-brand small { color:#687e94; }
  .dashboard-primary-grid .col-7,.dashboard-primary-grid .col-5 { grid-column:span 6; }
}
@media (max-width:700px) {
  .landing-hero-main { padding:32px 22px 28px; }
  .landing-hero-main h1 { font-size:36px; }
  .dashboard-kpis-six { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .panel-main { padding:18px 14px 36px; }
  .topbar .row { width:100%; }
  .topbar .row .btn { flex:1; }
  .dashboard-primary-grid .col-8,.dashboard-primary-grid .col-4,.dashboard-primary-grid .col-7,.dashboard-primary-grid .col-5 { grid-column:1/-1; }
  .cron-metrics { grid-template-columns:1fr; }
}
@media (max-width:440px) {
  .dashboard-kpis-six,.dashboard-kpis,.user-kpis { grid-template-columns:1fr 1fr; gap:8px; }
  .kpi-card { min-height:112px; }
  .kpi-value { font-size:24px; }
  .kpi-icon { width:30px; height:30px; }
  .landing-hero-main h1 { font-size:31px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* =========================================================
   VulnWatch 1.1.4 — Dark Operations UI
   Direction contract: Persian/RTL desktop sidebar is RIGHT.
   Mobile/tablet drawers open from RIGHT in every locale.
   ========================================================= */
:root{
  --vw-bg:#060b12;
  --vw-bg-2:#08111b;
  --vw-surface:#0c1621;
  --vw-surface-2:#101c29;
  --vw-surface-3:#142233;
  --vw-line:#1d2c3d;
  --vw-line-strong:#2b4057;
  --vw-text:#edf4fb;
  --vw-muted:#8296ab;
  --vw-muted-2:#5f7388;
  --vw-blue:#3b82f6;
  --vw-blue-2:#60a5fa;
  --vw-green:#45c394;
  --vw-amber:#e8a94c;
  --vw-red:#ef6678;
  --vw-purple:#9b7cf6;
  --vw-radius:13px;
  --vw-shadow:0 18px 48px rgba(0,0,0,.22);
}
html{background:var(--vw-bg)}
body{background:var(--vw-bg);color:var(--vw-text)}
body,button,input,select,textarea{font-feature-settings:"ss01" 1,"cv02" 1}
::selection{background:rgba(59,130,246,.32);color:#fff}

/* Shared dark surfaces */
.card,.filter-card,.usage-card,.pricing-card,.plan-card,.gateway-card,.auth-card,.landing-vuln-card,.landing-stat,.landing-coverage{
  background:var(--vw-surface)!important;
  border-color:var(--vw-line)!important;
  box-shadow:none!important;
}
.card:hover,.landing-vuln-card:hover{border-color:#2a4057!important}
.table-wrap{border-color:var(--vw-line)!important;background:#09121b}
.table th{background:#0b151f!important;color:#7e93a9!important;border-color:#1a2a3a!important}
.table td{border-color:#182738!important;color:#c9d5e1}
.table tbody tr:hover td{background:#0f1a26!important}
.table a{color:#dce8f5}.table a:hover{color:#7eb0ff}
.badge{border-radius:7px!important;font-weight:800;letter-spacing:0!important}
.badge.critical{background:rgba(239,102,120,.12)!important;color:#ff8d9b!important;border-color:rgba(239,102,120,.28)!important}
.badge.high{background:rgba(232,169,76,.12)!important;color:#f2b65d!important;border-color:rgba(232,169,76,.28)!important}
.badge.ok{background:rgba(69,195,148,.11)!important;color:#6fdbb3!important;border-color:rgba(69,195,148,.25)!important}
.badge.neutral{background:#101b27!important;color:#8298ad!important;border-color:#22374c!important}

/* Public website — dark, restrained, product-like */
.public-body{background:radial-gradient(circle at 50% -20%,#10233b 0,#08111b 32%,#060b12 65%) fixed!important}
.site-header{background:rgba(6,11,18,.94)!important;border-color:#172637!important;box-shadow:0 8px 30px rgba(0,0,0,.14)}
.site-header-inner{min-height:68px!important}
.site-brand .brand-mark{background:#10203a;border-color:#2d5280;color:#86b9ff}
.public-nav>a{color:#93a6ba!important}
.public-nav>a:hover,.public-nav>a.is-active{background:#101b27!important;color:#f7fbff!important}
.public-login-link{border:1px solid #2c435b!important;background:#0c1621!important;color:#dbe8f5!important}
.public-login-link:hover{background:#122237!important;border-color:#3d6288!important}
.public-main{padding-top:30px!important}
.landing-hero-card.premium-hero{background:linear-gradient(145deg,#081525 0%,#0a1b31 58%,#0a2241 100%)!important;border-color:#203b5b!important;box-shadow:0 30px 90px rgba(0,0,0,.26)!important}
.landing-hero-main h1{letter-spacing:-.035em}
.landing-live-card{background:rgba(4,10,19,.48)!important;border-color:#23405d!important}
.landing-stats{gap:12px!important}
.landing-stat{min-height:100px;display:flex;flex-direction:column;justify-content:center}
.landing-vuln-card{border-radius:var(--vw-radius)!important}
.landing-vuln-card:hover{transform:translateY(-1px)!important;background:#0e1a27!important}
.site-footer{background:#050a10!important;border-color:#142233!important}

/* Panel shell — concept parity */
.panel-body{background:var(--vw-bg)!important}
.panel-shell{background:var(--vw-bg)!important}
.panel-sidebar{
  position:fixed!important;top:0!important;bottom:0!important;z-index:90!important;
  width:var(--sidebar)!important;overflow-y:auto!important;overscroll-behavior:contain;
  background:linear-gradient(180deg,#08111b 0%,#09131e 48%,#07101a 100%)!important;
  border-color:#1a2a3b!important;box-shadow:0 0 0 1px rgba(255,255,255,.008),-16px 0 52px rgba(0,0,0,.08)!important;
}
/* Critical RTL desktop fix: Persian sidebar lives on the RIGHT. */
[dir="rtl"] .panel-sidebar{right:0!important;left:auto!important;border-right:0!important;border-left:1px solid #1a2a3b!important}
[dir="rtl"] .panel-main{margin-right:var(--sidebar)!important;margin-left:0!important}
[dir="ltr"] .panel-sidebar{left:0!important;right:auto!important;border-left:0!important;border-right:1px solid #1a2a3b!important}
[dir="ltr"] .panel-main{margin-left:var(--sidebar)!important;margin-right:0!important}
.panel-drawer-head{padding:5px 5px 16px!important;border-bottom:1px solid #172738!important}
.panel-brand{gap:10px!important}.panel-brand strong{font-size:13px!important}.panel-brand small{font-size:9px!important;color:#63778d!important}
.panel-nav{padding-top:5px!important}
.panel-nav-group{margin-top:11px!important}
.panel-nav-label{padding:0 10px 7px!important;color:#4f6479!important;font-size:8px!important}
.panel-nav a{min-height:41px!important;border-radius:8px!important;color:#8fa3b7!important;border:1px solid transparent!important}
.panel-nav a:hover{background:#101c29!important;border-color:#1d3043!important;color:#e7eff8!important}
.panel-nav a.is-active{background:linear-gradient(90deg,#12315e 0%,#143c76 100%)!important;border-color:#2a5ca0!important;color:#fff!important;box-shadow:none!important}
[dir="rtl"] .panel-nav a.is-active{background:linear-gradient(270deg,#12315e 0%,#143c76 100%)!important}
.panel-nav a.is-active::before{background:#9cc5ff!important}
.panel-sidebar-foot{background:#07101a;border-top:1px solid #19293a!important;padding-top:14px!important}
.account-avatar{border-radius:50%!important;background:#12243b!important;color:#8ebaff!important}
.full-btn{width:100%}

.panel-main{background:radial-gradient(circle at 50% -12%,#0c1c2c 0%,#08111b 34%,#060b12 72%) fixed!important;padding:22px clamp(18px,2.4vw,34px) 48px!important}
.panel-toolbar{min-height:44px;margin:0 -4px 24px!important;padding:0 4px 14px!important;border-bottom:1px solid #162637!important}
.panel-toolbar-meta{font-size:9px!important}.panel-toolbar-dot{background:#4ac797!important}
.topbar{align-items:center!important;margin-bottom:20px!important}.topbar h1{font-size:29px!important;letter-spacing:-.03em}.topbar .muted{color:#7890a6!important}
.eyebrow{color:#70a7f8!important;font-size:9px!important}
.btn{border-radius:8px!important;min-height:38px!important}.btn.primary{background:#2468d7!important;border-color:#2d78ec!important}.btn.primary:hover{background:#2f76e5!important}

/* KPI cards */
.dashboard-kpis{gap:11px!important;margin-bottom:14px!important}
.dashboard-kpis-six{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.kpi-card{min-height:126px!important;border-radius:12px!important;background:linear-gradient(155deg,#0d1824 0%,#101c29 100%)!important;border-color:#1d3042!important;padding:16px!important}
.kpi-card::after{width:84px!important;height:84px!important;opacity:.7}
.kpi-label{color:#8195a9!important;font-size:10px!important}.kpi-value{font-size:30px!important;color:#f4f8fc!important}.kpi-foot{color:#63788e!important}
.kpi-icon{border-radius:9px!important}

/* Dashboard content */
.dark-dashboard-grid{gap:13px!important}
.dashboard-card{border-radius:12px!important;background:linear-gradient(155deg,#0c1621,#0d1824)!important;border-color:#1c2f41!important;padding:18px!important}
.section-title{margin-bottom:14px!important}.section-title h2{font-size:15px!important;color:#edf4fb!important}.text-link,.dashboard-detail-link{color:#65a0ff!important}
.status-row{padding:13px 0!important;border-color:#17283a!important}.status-row span{color:#8498ac!important}.status-row strong{color:#eef5fb!important}
.activity-row{border-color:#17283a!important;padding:11px 0!important}.activity-row small{color:#6f8499!important}

/* Real seven-day chart */
.chart-legend{display:flex;align-items:center;gap:12px;color:#7890a7;font-size:9px;white-space:nowrap}
.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend span::before{content:"";width:7px;height:7px;border-radius:50%}
.legend-total::before{background:#4f8cff}.legend-critical::before{background:#ef6678}.legend-high::before{background:#e8a94c}
.alert-trend{height:280px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;padding:24px 10px 4px;border-top:1px solid #17283a;background:repeating-linear-gradient(to top,transparent 0,transparent 54px,rgba(91,119,146,.10) 55px)}
.trend-column{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;min-width:0}
.trend-bars{height:225px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}
.trend-bar{display:block;width:min(12px,25%);min-height:0;border-radius:4px 4px 1px 1px;opacity:.9}
.trend-total{background:#4f8cff}.trend-critical{background:#ef6678}.trend-high{background:#e8a94c}
.trend-label{color:#5f7489;font-size:8px;white-space:nowrap}
.cron-inline-grid{display:grid;grid-template-columns:140px 140px minmax(160px,.7fr) minmax(260px,1.3fr);gap:9px}
.cron-inline-grid>div{min-width:0;padding:12px;border:1px solid #1b2f42;border-radius:9px;background:#09131d;display:flex;flex-direction:column;gap:4px}
.cron-inline-grid span{color:#6f8498;font-size:9px}.cron-inline-grid strong,.cron-inline-grid code{color:#dce7f2;font-size:11px}.cron-command code{overflow:auto;white-space:nowrap;background:transparent;border:0;padding:0}

/* User panel */
.user-sidebar{background:linear-gradient(180deg,#07111d,#091521)!important}
.user-kpis .kpi-card{min-height:122px!important}.usage-grid{gap:12px!important}.usage-card{border-radius:12px!important;background:#0c1722!important}.meter{background:#142333!important}.meter span{background:linear-gradient(90deg,#3b82f6,#6aa7ff)!important}

/* Auth */
.auth-body{background:radial-gradient(circle at 50% 15%,#102541 0%,#08111b 30%,#050a10 72%)!important}
.auth-card{background:rgba(11,21,32,.97)!important;border-color:#223b55!important;border-radius:15px!important;box-shadow:var(--vw-shadow)!important}
.auth-card h1{font-size:28px!important}.auth-card input{background:#07111a!important}.private-console-login .auth-card{border-color:#2d5278!important}

/* Responsive: panel drawer ALWAYS comes from RIGHT. */
@media(max-width:1180px){
  .dashboard-kpis-six{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .cron-inline-grid{grid-template-columns:1fr 1fr!important}.cron-command{grid-column:span 1}
}
@media(max-width:960px){
  [dir="rtl"] .panel-main,[dir="ltr"] .panel-main{margin-left:0!important;margin-right:0!important}
  .panel-sidebar,[dir="rtl"] .panel-sidebar,[dir="ltr"] .panel-sidebar{
    right:0!important;left:auto!important;width:var(--drawer)!important;border-right:0!important;border-left:1px solid #263a53!important;
    transform:translate3d(104%,0,0)!important;visibility:hidden!important;box-shadow:-26px 0 70px rgba(0,0,0,.35)!important;
  }
  .panel-sidebar.mobile-open{transform:translate3d(0,0,0)!important;visibility:visible!important}
  .panel-mobile-head{background:rgba(7,16,26,.96)!important;border-color:#192a3c!important;backdrop-filter:none!important}
  .dark-dashboard-grid .col-7,.dark-dashboard-grid .col-5{grid-column:1/-1!important}
}
@media(max-width:700px){
  .dashboard-kpis-six{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .panel-main{padding:16px 13px 34px!important}
  .topbar{align-items:flex-start!important}.topbar h1{font-size:25px!important}.topbar .row{width:100%}.topbar .row .btn{flex:1}
  .alert-trend{height:235px;gap:5px;padding-inline:4px}.trend-bars{height:180px}.trend-bar{width:min(9px,27%)}
  .cron-inline-grid{grid-template-columns:1fr!important}.cron-command{grid-column:auto}
  .landing-hero-main{padding:30px 20px 26px!important}.landing-hero-main h1{font-size:31px!important}
}
@media(max-width:440px){
  .dashboard-kpis-six,.dashboard-kpis,.user-kpis{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .kpi-card{min-height:112px!important;padding:13px!important}.kpi-value{font-size:24px!important}.kpi-label{padding-inline-end:30px!important}.kpi-icon{width:29px!important;height:29px!important;top:12px!important;inset-inline-end:12px!important}
  .dashboard-card{padding:14px!important}.alert-trend{height:210px}.trend-bars{height:158px}
}
@media(max-width:360px){
  .dashboard-kpis-six,.dashboard-kpis,.user-kpis{grid-template-columns:1fr!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* VulnWatch 1.2.0 — production hardening UI */
:focus-visible{outline:2px solid #72a9ff!important;outline-offset:3px!important}
.command-trigger{border:1px solid #24384d;background:#0a1520;color:#9db1c5;border-radius:8px;padding:8px 11px;font:inherit;display:inline-flex;gap:8px;align-items:center;cursor:pointer}.command-trigger:hover{border-color:#41688f;color:#eaf3fc}.command-trigger span{font-size:10px}
.command-palette[hidden]{display:none!important}.command-palette{position:fixed;inset:0;z-index:9999;display:grid;place-items:start center;padding-top:min(16vh,130px)}.command-backdrop{position:absolute;inset:0;border:0;background:rgba(2,6,11,.72);backdrop-filter:blur(3px);cursor:default}.command-dialog{position:relative;width:min(680px,calc(100vw - 28px));max-height:68vh;overflow:hidden;background:#09131d;border:1px solid #294057;border-radius:14px;box-shadow:0 30px 100px rgba(0,0,0,.55)}.command-search{display:flex;align-items:center;gap:10px;padding:13px;border-bottom:1px solid #1b2d3e}.command-search input{flex:1;margin:0!important;background:#07111a!important;border-color:#20364b!important;font-size:14px}.command-search kbd{font-size:9px;border:1px solid #30465b;border-radius:5px;padding:4px 6px;color:#7f94a8}.command-results{padding:8px;overflow:auto;max-height:54vh}.command-results a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:11px 12px;border-radius:8px;color:#dbe7f2}.command-results a:hover,.command-results a.is-selected{background:#102238;color:#fff}.command-results small{color:#60778f}.command-empty{padding:22px;text-align:center;color:#70869b}
.attention-center{margin-bottom:14px!important}.attention-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.attention-item{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #1d3042;border-radius:9px;background:#09141f;color:#dce8f3}.attention-item:hover{background:#0e1d2b;border-color:#2b4d6d}.attention-item small{display:block;color:#71879c;margin-top:3px}.attention-dot{width:7px;height:7px;border-radius:50%;background:#6a9ff2}.level-critical .attention-dot{background:#ef6678}.level-high .attention-dot{background:#e8a94c}.level-medium .attention-dot{background:#5f98ef}
.release-readiness{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #294057;border-radius:10px;padding:12px 14px;margin-bottom:14px;background:#09151f}.release-readiness strong,.release-readiness span{display:block}.release-readiness span{color:#71889e;font-size:10px;margin-top:2px}.release-readiness.ready{border-color:#24594a}.release-readiness.blocked{border-color:#6b3038;background:#1a0d11}
.audit-json{white-space:pre-wrap;max-width:720px;max-height:320px;overflow:auto;background:#060d14;border:1px solid #1a2b3b;padding:10px;border-radius:7px;font-size:10px;color:#9fb4c7}.compact-action-stack{display:grid;gap:6px;min-width:180px}.compact-action-stack input{min-width:0}.text-ok{color:#54ce92!important}.inline-alert.success{border-color:#245a49;background:#0c241d;color:#9ee6c5}
.health-card small{display:block;margin-top:4px}.health-list>div span small{display:block}.table td details summary{cursor:pointer;color:#6fa6f7}
@media(max-width:700px){.command-trigger span{display:none}.attention-list{grid-template-columns:1fr}.command-palette{padding-top:70px}.command-results a{align-items:flex-start;flex-direction:column;gap:2px}}

/* 1.2.0 accessibility/visibility invariant: semantic hidden must always win. */
[hidden]{display:none!important;}

/* 1.2.0 mobile layering invariant: drawer must stay above its overlay. */
@media(max-width:960px){.panel-sidebar,[dir="rtl"] .panel-sidebar,[dir="ltr"] .panel-sidebar{z-index:110!important;}}

/* === VulnWatch 1.2.2: isolated Settings + Translation control layouts === */
.settings-page-head{margin-bottom:12px}
.settings-tabs{display:flex;gap:6px;align-items:center;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:5px;margin-bottom:14px;border:1px solid #1c3043;border-radius:12px;background:#08121c;position:sticky;top:8px;z-index:8}
.settings-tabs button{flex:0 0 auto;border:1px solid transparent;border-radius:8px;background:transparent;color:#7f95aa;padding:9px 12px;font:inherit;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap}
.settings-tabs button:hover{color:#dce8f3;background:#0d1a27}
.settings-tabs button[aria-selected="true"]{color:#eef6ff;background:#10243a;border-color:#28517a;box-shadow:inset 0 -2px 0 #4f91ee}
.settings-form{display:block;min-width:0}
.settings-pane{min-width:0}
.settings-pane[hidden]{display:none!important}
.settings-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin:0 0 10px;padding:0 2px}
.settings-section-title h2{font-size:16px;margin:0 0 3px;color:#eef5fc}
.settings-section-title p{margin:0;color:#71869a;font-size:10px;line-height:1.75}
.settings-card{min-width:0;padding:18px;border:1px solid #1c3043;border-radius:12px;background:#0b151f;box-shadow:none}
.settings-card h3{margin:0 0 9px;font-size:13px;color:#eaf3fc}
.settings-card p{overflow-wrap:anywhere}
.settings-card-wide{width:100%}
.settings-cards-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.settings-card-wide-inner{grid-column:1/-1}
.settings-form-grid{align-items:start}
.settings-form-grid>.field{min-width:0}
.settings-form-grid input,.settings-form-grid select,.settings-form-grid textarea{width:100%;min-width:0}
.settings-form-grid .full{grid-column:1/-1}
.compact-grid{margin-top:12px}
.settings-upload input[type="file"]{max-width:100%}
.asset-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px;padding:10px;border:1px solid #1a2c3d;border-radius:9px;background:#08131d}
.asset-preview img{max-height:48px;max-width:160px;object-fit:contain}
.favicon-preview img{width:32px;height:32px}
.settings-card-action{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.settings-card-action .btn{margin-top:auto}
.settings-check-row{margin-top:14px;padding:11px;border:1px solid #1b3349;border-radius:9px;background:#0a1722}
.settings-help{margin:8px 0 0}
.translation-provider-help{min-height:44px;margin:10px 0 0!important;padding:11px 12px!important;font-size:10px!important;line-height:1.75}
.translation-status-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}
.translation-status-inline span{display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid #1a2c3d;border-radius:8px;background:#08131d;color:#73899d;font-size:9px}
.translation-status-inline strong{color:#e6f0fa;font-size:16px}
.settings-savebar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:13px 15px;border:1px solid #29455f;border-radius:11px;background:#0b1a27;position:sticky;bottom:10px;z-index:7;box-shadow:0 14px 40px rgba(0,0,0,.28)}
.settings-savebar>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.settings-savebar strong{font-size:11px;color:#eef6ff}.settings-savebar span{font-size:9px;color:#73889d}
.settings-diagnostics{margin-top:26px;padding-top:18px;border-top:1px solid #182a3a}
.settings-diagnostic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.settings-diagnostic-grid .settings-card{height:100%}

.translation-control-head .row{justify-content:flex-end}
.translation-overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.35fr);gap:12px;align-items:start;margin-bottom:14px}
.translation-provider-summary,.translation-queue-summary{min-width:0}
.provider-matrix-table td,.provider-matrix-table th{vertical-align:middle}
.provider-matrix-table .badge{margin-inline-end:5px}
.provider-selected-row{background:rgba(74,144,238,.055)}
.provider-detail{display:block;margin-top:5px;color:#657b91;font-size:8px;direction:ltr;text-align:start;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.provider-state{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border:1px solid #24394d;border-radius:999px;background:#0a1620;color:#8097ac;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
.provider-state-ready,.provider-state-configured{border-color:#24543f;color:#78d7ab;background:#0b2018}
.provider-state-paused{border-color:#6a4e26;color:#e7b96c;background:#241a0c}
.provider-state-unreachable{border-color:#6b3140;color:#ef9aaa;background:#261018}
.translation-policy-note{margin-top:12px;padding:10px 11px;border:1px solid #1f3c55;border-radius:9px;background:#091725;color:#89a5bf;font-size:9px;line-height:1.8}
.translation-policy-note strong{color:#d9e9f8}
.translation-queue-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.translation-queue-cards>div{display:flex;flex-direction:column;min-width:0;padding:11px;border:1px solid #1a2d3e;border-radius:9px;background:#08131d}
.translation-queue-cards span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#72889d;font-size:8px}.translation-queue-cards strong{color:#e9f2fb;font-size:20px}.translation-queue-cards small{color:#5f758a;font-size:8px}
.translation-queue-cards .queue-bad{border-color:#552d39;background:#1a0d12}.translation-queue-cards .queue-ok{border-color:#214b39}
.translation-tables-grid{margin-top:0}
.translation-diagnostic{margin-bottom:12px}

@media(max-width:1050px){
  .translation-overview-grid{grid-template-columns:1fr}
  .translation-queue-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:820px){
  .settings-cards-two{grid-template-columns:1fr}
  .settings-card-wide-inner{grid-column:auto}
  .settings-diagnostic-grid{grid-template-columns:1fr}
  .settings-savebar{position:static;align-items:flex-start}
  .translation-queue-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .settings-tabs{top:6px;margin-inline:-2px;border-radius:10px}
  .settings-tabs button{padding:8px 10px}
  .settings-section-title{flex-direction:column;align-items:stretch}
  .settings-section-title>.btn{align-self:flex-start}
  .settings-card{padding:14px}
  .settings-form-grid{grid-template-columns:1fr!important}
  .settings-form-grid .full{grid-column:auto}
  .settings-savebar{flex-direction:column}.settings-savebar .btn{width:100%}
  .translation-status-inline{grid-template-columns:1fr 1fr 1fr}
  .provider-matrix-table{min-width:670px}
}
@media(max-width:440px){
  .translation-status-inline{grid-template-columns:1fr}
  .translation-queue-cards{grid-template-columns:1fr 1fr}
  .settings-page-head{align-items:flex-start}
}
@media(max-width:360px){
  .translation-queue-cards{grid-template-columns:1fr}
}

/* VulnWatch 1.2.4 — panel-first updates + translation provider clarity */
.update-path-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;margin:16px 0}
.update-primary-card,.update-signing-card,.update-signing-stage,.update-ready-card{min-width:0}
.update-primary-card{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.update-signing-card{background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0))}
.update-signing-stage{margin:16px 0;border-style:dashed}
.offline-sign-flow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.offline-sign-step{display:flex;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.018);min-width:0}
.offline-sign-step>b{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:999px;background:var(--accent);color:#07111f}
.offline-sign-step>div{min-width:0;display:grid;gap:8px;align-content:start}
.offline-sign-step small{color:var(--muted);line-height:1.8}
.hash-value{display:block;max-width:100%;overflow-wrap:anywhere;font-size:.78rem}
.update-auto-actions{margin-top:12px;align-items:center;flex-wrap:wrap}
.translation-credential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.provider-config-card{min-width:0}
.provider-config-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.provider-config-head h3{margin:0}
.translation-fallback-lines{display:grid;gap:8px;margin:12px 0}
.translation-fallback-lines>span{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid var(--border)}
.translation-fallback-lines b{min-width:28px;color:var(--accent)}
.translation-fallback-lines small{overflow-wrap:anywhere;color:var(--muted)}
.provider-detail-note{white-space:normal;max-width:240px;line-height:1.5;margin-top:4px}
.badge.neutral{background:rgba(148,163,184,.12);color:#cbd5e1;border-color:rgba(148,163,184,.24)}
@media (max-width:900px){
  .update-path-grid,.offline-sign-flow,.translation-credential-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .update-center-head{align-items:flex-start}
  .offline-sign-step{padding:12px}
  .preflight-grid{grid-template-columns:1fr 1fr}
  .provider-detail-note{max-width:none}
}

/* 1.2.4 — real inline SVG navigation icons. No icon fonts, CDN or CSS data-URI masks. */
.panel-nav a::before,.panel-nav a::after{content:none!important;display:none!important}
.panel-nav-icon{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px;color:#7890a7;line-height:0}
.panel-nav-icon svg{display:block;width:18px;height:18px;overflow:visible}
.panel-nav a:hover .panel-nav-icon{color:#b7c9db}
.panel-nav a.is-active .panel-nav-icon{color:#9cc5ff}
[dir="rtl"] .panel-nav a,[dir="ltr"] .panel-nav a{gap:11px}


/* VulnWatch 1.2.5 — action spacing, cron diagnostics, translation recheck */
.row,.topbar,.section-title,.card-head,.settings-section-title{min-width:0}
.row>form,.service-test-actions>form,.translation-pause-actions>form,.translation-pause-settings>form{display:inline-flex;min-width:0;margin:0}
.row>.btn,.row>form>.btn,.service-test-actions .btn,.translation-pause-actions .btn,.translation-pause-settings .btn{max-width:100%;position:relative}
.topbar,.section-title,.card-head,.settings-section-title{flex-wrap:wrap}
.topbar>.row,.translation-control-head>.row{max-width:100%;gap:8px;row-gap:8px}
.btn{line-height:1.35}
.service-test-actions,.translation-pause-actions,.translation-pause-settings,.cron-action-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.translation-pause-settings{margin-top:10px;justify-content:space-between}
.translation-pause-settings>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.translation-pause-actions{justify-content:flex-end}
.cron-action-row{margin-top:12px;padding-top:12px;border-top:1px solid #1b2d3f}
.cron-action-row>.muted{flex:1 1 420px;min-width:0;line-height:1.8}
.cron-command code{display:block;max-width:100%;overflow:auto;white-space:nowrap}
.cron-error{margin-top:10px;overflow-wrap:anywhere}
@media(max-width:700px){
  .topbar>.row,.translation-control-head>.row{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .topbar>.row>form,.translation-control-head>.row>form,.topbar>.row>.btn,.topbar>.row>a{width:100%;min-width:0}
  .topbar>.row .btn,.translation-control-head>.row .btn{width:100%;white-space:normal;min-height:40px}
  .service-test-actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .service-test-actions>form,.service-test-actions .btn{width:100%}
  .translation-pause-actions,.translation-pause-settings{align-items:stretch;flex-direction:column}
  .translation-pause-actions>form,.translation-pause-actions .btn,.translation-pause-settings>form,.translation-pause-settings .btn{width:100%}
}
@media(max-width:440px){
  .topbar>.row,.translation-control-head>.row{grid-template-columns:1fr}
  .btn{white-space:normal}
}


/* =========================================================
   VulnWatch 1.2.9 — UI consistency, bidi/readability, responsive hardening
   ========================================================= */
body.modal-open{overflow:hidden}
[dir="ltr"]{font-family:inherit}
code,.ltr,.command-block,.vector-box,.hash-value,.title-cve,.chip[dir="ltr"]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.bidi-auto{unicode-bidi:plaintext;text-align:start;overflow-wrap:anywhere;word-break:normal}
.vulnerability-header{overflow:hidden;padding:clamp(16px,2.2vw,24px)!important}
.vulnerability-head-main{min-width:0}
.vulnerability-title{display:flex;align-items:baseline;gap:.28em;flex-wrap:wrap;max-width:100%;margin:8px 0 12px!important;font-size:clamp(24px,2.45vw,34px)!important;line-height:1.3!important;overflow-wrap:anywhere}
.vulnerability-title .title-cve{flex:0 0 auto;font-size:.72em;color:#b8c9db}
.vulnerability-title-text{min-width:0;max-width:100%}
.vuln-lead{max-width:100%;margin-bottom:14px!important;font-size:13px!important;line-height:1.95!important;white-space:pre-line;overflow-wrap:anywhere}
.vuln-head-meta{row-gap:8px;color:#7f93a8;font-size:10px}
.vulnerability-layout{grid-template-columns:minmax(0,1fr) minmax(270px,310px)!important;gap:16px!important}
.vulnerability-content{display:grid;gap:12px}
.content-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.content-card.remediation-card,.product-box{margin-bottom:0}
.content-card-body{min-width:0}.content-card-body>h2{margin:0 0 10px;font-size:clamp(18px,1.7vw,23px);line-height:1.45}
.section-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #29425b;border-radius:10px;background:#0b1723;color:#91bfff;font-size:11px;font-weight:800;direction:ltr}
.rich-text{max-width:100%;font-size:13px;line-height:2;white-space:pre-line;overflow-wrap:anywhere}
.mixed-heading{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mixed-heading .heading-en{font-size:.78em;color:#91a5ba;font-weight:650}
.vulnerability-sidebar{display:grid;gap:12px}.side-card{min-width:0;padding:17px!important}.side-card h3{margin:0 0 10px;font-size:15px}.side-card h4{margin:16px 0 8px}
.spec-list{margin:0}.spec-list>div{align-items:center;min-width:0}.spec-list dt{min-width:0;direction:ltr;text-align:start;unicode-bidi:isolate;color:#9eafc0;font-size:11px;overflow-wrap:anywhere}.spec-list dd{margin:0;text-align:end;min-width:0;color:#e5edf5;font-size:11px;overflow-wrap:anywhere}
.vector-box{margin-top:12px;white-space:nowrap;max-width:100%}
.products-side-card{display:grid;gap:10px}.product-box{display:grid;gap:5px;padding:13px!important;min-width:0}.product-box>strong{font-size:12px;line-height:1.65;overflow-wrap:anywhere}.product-box>span{font-size:10px;color:#a3b3c3;overflow-wrap:anywhere}
.source-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.source-item>span:first-child{display:grid;min-width:0}.source-item strong,.source-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.remediation-step,.official-command-note,.warning-note{overflow-wrap:anywhere}.public-remediation-steps,.remediation-step,.remediation-step-head,.command-block,.command-block code{min-width:0;max-width:100%}.remediation-step-head{align-items:flex-start;flex-wrap:wrap}.command-block{display:block;width:100%;margin:10px 0 0;padding:12px 13px;white-space:pre;direction:ltr;text-align:left;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-gutter:stable;word-break:normal;overflow-wrap:normal}.command-block code{display:block;width:max-content;min-width:100%;font:inherit;line-height:1.8}.remediation-source-link{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.list-vuln-main h2 a,.landing-vuln-card h3 a{display:inline;overflow-wrap:anywhere}.list-vuln-main p,.landing-vuln-card p{line-height:1.85;overflow-wrap:anywhere}.chip{max-width:100%;overflow-wrap:anywhere}
.table td .row,.table td form.row{gap:7px;row-gap:7px}.table td .btn{max-width:100%}
.settings-savebar,.topbar,.panel-toolbar,.section-head{min-width:0}

@media(max-width:960px){
  .vulnerability-layout{grid-template-columns:1fr!important}.sticky-card{position:static!important}.vulnerability-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.side-card{height:100%}
}
@media(max-width:700px){
  .container{width:min(var(--container),calc(100% - 24px))}.public-main{padding-top:22px!important}
  .vulnerability-header{border-radius:12px}.vulnerability-title{font-size:clamp(21px,6vw,29px)!important}.vuln-head-meta{display:grid;grid-template-columns:1fr}
  .content-card{grid-template-columns:36px minmax(0,1fr);gap:11px;padding:14px}.section-icon{width:34px;height:34px}.rich-text{font-size:12.5px;line-height:1.95}
  .vulnerability-sidebar{grid-template-columns:1fr}.side-card{padding:14px!important}.list-vuln-card{grid-template-columns:1fr}.list-vuln-side{min-width:0;align-items:flex-start}.list-vuln-side .btn{width:100%}
  .filter-actions,.form-actions{flex-wrap:wrap}.filter-actions>.btn,.filter-actions>a.btn{flex:1 1 140px;white-space:normal}
  .command-block{white-space:pre-wrap;overflow-x:hidden;overflow-wrap:anywhere;word-break:break-word}.command-block code{width:100%;min-width:0;white-space:inherit;overflow-wrap:inherit;word-break:inherit}
}
@media(max-width:440px){
  .container{width:calc(100% - 18px)}.vulnerability-header{padding:13px!important}.vulnerability-title{font-size:21px!important;line-height:1.42!important}.vulnerability-title .title-divider{display:none}.vulnerability-title .title-cve{width:100%}
  .content-card{grid-template-columns:1fr;padding:13px}.section-icon{width:32px;height:32px}.content-card-body>h2{font-size:18px}.mixed-heading{gap:5px}.rich-text{font-size:12px}
  .spec-list>div{gap:8px}.spec-list dt{font-size:10px}.spec-list dd{font-size:10px}.remediation-step{padding:10px}.remediation-step-head>.btn{width:auto!important}.command-block{padding:10px 11px;font-size:11px;line-height:1.7}
  .table td .row{min-width:180px}.btn{min-height:38px}
}


/* =========================================================
   VulnWatch 1.2.13 — information notice, guide and global responsive hardening
   ========================================================= */
.information-notice{min-width:0;margin-bottom:14px}
.information-notice-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 12px;border:1px solid rgba(130,168,208,.26);border-radius:11px;background:rgba(20,36,52,.72);font-size:11.5px;line-height:1.8;color:#b8c6d5}
.information-notice-bar>span{min-width:0;overflow-wrap:anywhere}
.information-notice-link{flex:0 0 auto;border:0;background:transparent;color:#9cc5ff;font:inherit;font-weight:700;cursor:pointer;padding:4px 0}
.information-notice-link:hover{text-decoration:underline}
.information-notice-modal[hidden]{display:none!important}.information-notice-modal{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:20px}
.information-notice-backdrop{position:absolute;inset:0;border:0;background:rgba(1,7,13,.78);backdrop-filter:blur(7px);cursor:pointer}
.information-notice-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:auto;padding:22px;border:1px solid #29425a;border-radius:16px;background:#0b1723;box-shadow:0 28px 70px rgba(0,0,0,.45)}
.information-notice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.information-notice-head h2{margin:4px 0 0;font-size:clamp(19px,3vw,25px);line-height:1.5}.information-notice-copy{display:grid;gap:10px;margin-top:16px;color:#bfccda;line-height:2;font-size:12.5px}.information-notice-copy p{margin:0}.information-notice-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:18px}
.guide-heading{margin-bottom:12px}.guide-jump{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.guide-jump a{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.025);font-size:11px;color:#afc1d4}.guide-jump a:hover{border-color:#355778;color:#d9e9f9}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.guide-card{min-width:0;scroll-margin-top:90px;padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.guide-card h2{margin:0 0 8px;font-size:17px}.guide-card p{margin:0 0 8px;line-height:1.95;color:#b7c5d4;font-size:12px}.guide-card p:last-child{margin-bottom:0}.guide-example{padding:9px 10px;border-radius:9px;background:#0a1622}.guide-definitions{display:grid;gap:8px;margin:0}.guide-definitions>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.025)}.guide-definitions dt{font-weight:800;color:#dbe9f5}.guide-definitions dd{margin:0;color:#aebdcb;line-height:1.8}.guide-disclaimer{margin-top:14px}.concept-help-link{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:#9cc5ff;white-space:nowrap}.concept-help-link::before{content:'؟';display:grid;place-items:center;width:17px;height:17px;border:1px solid #315171;border-radius:50%;font-size:10px}
/* Never allow a grid/flex child, long URL, vector, source error or technical token to widen the viewport. */
.grid>*,.form-grid>*,.filters>*,.responsive-filters>*,.panel-main>*,.card>*,.table-wrap,.source-bulk-panel,.source-actions,.source-edit-form,.source-technical-details{min-width:0;max-width:100%}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
input,select,textarea{max-width:100%}.ltr,a.ltr,.source-url,.source-technical-details code,.vector-box{overflow-wrap:anywhere;word-break:break-word}.source-technical-details{margin-top:5px}.source-technical-details summary{cursor:pointer;color:#94abc2;font-size:10.5px}.source-technical-details code{display:block;margin-top:5px;padding:7px 8px;border-radius:7px;background:#09131d;color:#aebed0;white-space:pre-wrap;direction:ltr;text-align:left;font-size:10px;line-height:1.65}
.source-tier-help{display:grid;gap:7px;margin:10px 0 14px;padding:11px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}.source-tier-help p{margin:0;color:#9fb0c1;font-size:11px;line-height:1.8}.source-tier-help-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.source-tier-help-list span{padding:8px;border-radius:8px;background:#0a1621;font-size:10.5px;line-height:1.7}
@media(max-width:960px){.guide-grid{grid-template-columns:1fr}.source-tier-help-list{grid-template-columns:1fr}.panel-toolbar{flex-wrap:wrap}}
@media(max-width:700px){.information-notice-bar{align-items:flex-start;flex-direction:column}.information-notice-link{align-self:flex-start}.information-notice-modal{padding:10px}.information-notice-dialog{max-height:calc(100dvh - 20px);padding:16px;border-radius:13px}.information-notice-actions{display:grid;grid-template-columns:1fr;width:100%}.information-notice-actions .btn{width:100%}.guide-jump{gap:6px}.guide-jump a{flex:1 1 auto;justify-content:center}.guide-definitions>div{grid-template-columns:1fr;gap:3px}.table{min-width:720px}.source-actions{min-width:170px!important}}
@media(max-width:440px){.information-notice-dialog{padding:13px}.information-notice-head h2{font-size:18px}.information-notice-copy{font-size:12px}.guide-card{padding:13px}.guide-card h2{font-size:16px}.table{min-width:680px}}
@media(max-width:360px){.container{width:calc(100% - 12px)!important}.information-notice-modal{padding:6px}.information-notice-dialog{max-height:calc(100dvh - 12px);padding:11px}.btn{max-width:100%}.guide-jump a{width:100%}}
.auth-foot-stack{display:grid;gap:6px;justify-items:center;text-align:center}.auth-foot-stack small{max-width:520px;color:#8396aa;line-height:1.8;overflow-wrap:anywhere}


/* =========================================================
   VulnWatch 1.3 — operational intelligence UI
   Source health, diagnostics, quarantine, watchlists, status,
   evidence/conflicts, remediation guidance and update preflight.
   ========================================================= */
.smart-alert-box,.watchlist-card,.infrastructure-alerts,.evidence-card,.remediation-guidance,.translation-quality-note{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.smart-alert-box,.watchlist-card,.infrastructure-alerts,.evidence-card,.remediation-guidance{padding:15px}
.smart-alert-box h3,.watchlist-card h3,.infrastructure-alerts h3,.evidence-card h3,.remediation-guidance h3{margin:0 0 9px;line-height:1.55}
.smart-alert-box p,.watchlist-card p,.infrastructure-alerts p,.evidence-card p,.remediation-guidance p{overflow-wrap:anywhere}
.watchlist-create-form,.watchlist-edit-form{min-width:0}.watchlist-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.watchlist-form-grid>*{min-width:0}
.watchlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.watch-item{display:grid;gap:9px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.02)}.watch-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.watch-item-head>*{min-width:0}.watch-item-title{font-weight:800;overflow-wrap:anywhere}.watch-item-meta{display:flex;gap:6px;flex-wrap:wrap;color:#93a7ba;font-size:10.5px}.watch-item-actions{display:flex;gap:7px;flex-wrap:wrap}
.infrastructure-alerts{margin-top:14px}.watch-alert-list{display:grid;gap:9px}.watch-alert-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0;padding:11px;border-radius:10px;background:#0a1621}.watch-alert-main{min-width:0}.watch-alert-main a,.watch-alert-main strong{overflow-wrap:anywhere}.watch-match-list{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.inventory-assessment{display:inline-flex;max-width:100%;padding:4px 7px;border-radius:99px;background:rgba(105,153,210,.1);color:#adc9e7;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.evidence-pill{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 8px;border:1px solid #2a455f;border-radius:99px;background:rgba(30,61,89,.28);color:#b9d3eb;font-size:10.5px;line-height:1.45;overflow-wrap:anywhere}.evidence-score{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.evidence-score strong{font-size:22px}.evidence-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.evidence-summary-grid>div{min-width:0;padding:10px;border-radius:9px;background:#091621;text-align:center}.evidence-summary-grid strong{display:block;font-size:17px}.evidence-summary-grid span{display:block;margin-top:3px;color:#899caf;font-size:10px}.source-conflicts{display:grid;gap:8px;margin-top:12px}.conflict-row{min-width:0;padding:10px;border:1px solid rgba(232,161,67,.27);border-radius:9px;background:rgba(95,55,17,.12)}.conflict-row strong{display:block;margin-bottom:5px}.conflict-row code,.conflict-row span{overflow-wrap:anywhere}.evidence-observations{display:grid;gap:8px;margin-top:12px}.evidence-observation{min-width:0;padding:10px;border-radius:9px;background:#0a1621}.evidence-observation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}.evidence-observation-head>*{min-width:0}.evidence-observation dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:5px 9px;margin:8px 0 0}.evidence-observation dt{color:#879caf}.evidence-observation dd{margin:0;overflow-wrap:anywhere}
.remediation-ux-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);gap:12px;min-width:0}.remediation-ux-grid>*{min-width:0}.before-execution{margin:0;padding-inline-start:20px;color:#b7c6d4;line-height:1.9}.before-execution li{overflow-wrap:anywhere}.remediation-guidance{background:rgba(18,38,57,.55)}
.source-health-badge{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 8px;border-radius:99px;font-size:10px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.source-health-healthy{background:rgba(38,147,105,.13);color:#9fe3c2}.source-health-unstable{background:rgba(215,154,49,.12);color:#efd08b}.source-health-failing,.source-health-blocked,.source-health-endpoint{background:rgba(211,78,91,.12);color:#f0a4ae}.source-health-disabled,.source-health-catalog,.source-health-never{background:rgba(126,146,165,.12);color:#b6c3cf}.source-health-metrics{display:grid;gap:3px;margin-top:5px;color:#8fa4b8;font-size:10px;line-height:1.55}
.source-diagnostic-kpis,.status-grid,.dashboard-kpis-eight{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.diagnostic-kpi,.status-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.diagnostic-kpi strong,.status-card strong{display:block;margin-top:5px;font-size:18px;overflow-wrap:anywhere}.diagnostic-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.diagnostic-stage{min-width:0;padding:13px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.02)}.diagnostic-stage h3{margin:0 0 8px}.diagnostic-list{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 9px;margin:0}.diagnostic-list dt{color:#8da2b6}.diagnostic-list dd{min-width:0;margin:0;overflow-wrap:anywhere;word-break:break-word}.diagnostic-samples{max-width:100%;overflow:auto;margin-top:8px;padding:9px;border-radius:8px;background:#08121c;direction:ltr;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}.status-small-value{font-size:12px!important;line-height:1.7}.status-attention-list{display:grid;gap:8px}.status-attention-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0;padding:10px;border-radius:9px;background:#0a1621}.status-attention-item>*{min-width:0}
.quarantine-reasons{display:flex;gap:5px;flex-wrap:wrap}.quarantine-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:170px}.quarantine-actions form{margin:0}.quarantine-payload{max-width:380px;overflow-wrap:anywhere}
.update-preflight-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.preflight-check{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#0a1621}.preflight-check>*{min-width:0}.preflight-check strong{display:block;overflow-wrap:anywhere}.preflight-check small{display:block;margin-top:2px;color:#899daf;overflow-wrap:anywhere}.preflight-check-ok{border-color:rgba(63,174,126,.28)}.preflight-check-warn{border-color:rgba(218,159,58,.32)}.preflight-secondary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:9px}.preflight-secondary>div{min-width:0;padding:9px;border-radius:8px;background:rgba(255,255,255,.025)}.preflight-secondary strong{display:block;margin-top:3px;overflow-wrap:anywhere}
.translation-quality-note{margin:10px 0;padding:10px 12px;background:rgba(41,82,117,.16);color:#b8cee2;line-height:1.8;font-size:11px}.translation-quality-note code{overflow-wrap:anywhere}
.quality-gate-note{display:flex;align-items:flex-start;gap:8px;min-width:0}.quality-gate-note>*{min-width:0}
/* Prevent any operational-intelligence child from widening the viewport. */
.watchlist-card *,.infrastructure-alerts *,.evidence-card *,.diagnostic-stage *,.status-card *,.update-preflight-checks *,.quarantine-payload{max-width:100%;box-sizing:border-box}

@media(max-width:1024px){
  .dashboard-kpis-eight,.source-diagnostic-kpis,.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .evidence-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .update-preflight-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.preflight-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px){
  .watchlist-grid{grid-template-columns:1fr}.remediation-ux-grid{grid-template-columns:1fr}.diagnostic-stage-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .watchlist-form-grid{grid-template-columns:1fr}.watch-alert-item{grid-template-columns:1fr}.watch-alert-item>.btn{width:100%}
  .dashboard-kpis-eight,.source-diagnostic-kpis,.status-grid{grid-template-columns:1fr 1fr}
  .update-preflight-checks,.preflight-secondary{grid-template-columns:1fr}
  .evidence-observation dl,.diagnostic-list{grid-template-columns:1fr;gap:2px}.evidence-observation dd,.diagnostic-list dd{margin-bottom:7px}
  .quarantine-actions{min-width:140px}
}
@media(max-width:440px){
  .dashboard-kpis-eight,.source-diagnostic-kpis,.status-grid,.evidence-summary-grid{grid-template-columns:1fr}
  .smart-alert-box,.watchlist-card,.infrastructure-alerts,.evidence-card,.remediation-guidance,.diagnostic-kpi,.status-card,.diagnostic-stage{padding:11px}
  .watch-item-head,.evidence-observation-head,.status-attention-item{flex-direction:column}.watch-item-actions{width:100%}.watch-item-actions .btn{flex:1 1 auto}
  .evidence-score{align-items:flex-start;flex-direction:column}.quarantine-actions{min-width:120px;display:grid}.quarantine-actions .btn{width:100%}
}
@media(max-width:360px){
  .watchlist-form-grid input,.watchlist-form-grid select,.watchlist-form-grid textarea{width:100%}.evidence-pill{width:100%;justify-content:center}
}

/* VulnWatch 1.4 — asset risk, provenance, workflow and resilient sources */
.asset-risk-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0;min-width:0}.asset-risk-summary>div{display:grid;gap:4px;min-width:0}.asset-risk-summary strong{font-size:18px}.asset-risk-summary small{overflow-wrap:anywhere}
.asset-create-card{margin-bottom:14px}.asset-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.asset-card{min-width:0}.asset-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0}.asset-head>*{min-width:0}.asset-head strong,.asset-meta b{overflow-wrap:anywhere}.asset-meta{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0;color:#9db0c1}.asset-risk-section{margin-top:14px}.asset-risk-table td{vertical-align:top}.workflow-details{min-width:190px}.workflow-details form{display:grid;gap:7px;margin-top:8px}.workflow-details summary{cursor:pointer;color:#a9c8e4}.source-resilience-note{display:grid;gap:4px;margin-top:6px}.source-health-circuit,.source-health-drift{background:rgba(215,154,49,.14);color:#efd08b}
.provenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.provenance-field{min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#0a1621}.provenance-field summary{cursor:pointer;font-weight:800}.provenance-item{display:grid;gap:5px;min-width:0;padding:9px 0;border-top:1px solid rgba(255,255,255,.05)}.provenance-value{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;max-height:130px;overflow:auto}.asset-card *,.asset-risk-section *,.provenance-card *{box-sizing:border-box;max-width:100%}
@media(max-width:1024px){.asset-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.provenance-grid{grid-template-columns:1fr}}
@media(max-width:800px){.asset-grid{grid-template-columns:1fr}.asset-risk-summary{align-items:flex-start;flex-direction:column}.asset-risk-summary .btn{width:100%}}
@media(max-width:700px){.asset-form-grid{grid-template-columns:1fr}.workflow-details{min-width:150px}}
@media(max-width:440px){.asset-head{flex-direction:column}.asset-head .chip-row{width:100%}.asset-meta{display:grid;gap:5px}.workflow-details{min-width:125px}}
@media(max-width:360px){.asset-create-card,.asset-card,.asset-risk-section,.provenance-field{padding:10px}}

/* =========================================================
   VulnWatch 1.7 — editable content pages + guide layout repair
   ========================================================= */
/* 1.6 guide fallback repair: a content-card with a single full-width body must span both grid tracks. */
.content-card-body.full-width{grid-column:1/-1!important;width:100%;max-width:100%;min-width:0}

.content-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 12px;border:1px solid #6b5225;border-radius:10px;background:#211a0c;color:#f1d7a3}.content-preview-banner span{font-size:11px}
.content-page-heading>div{width:100%;min-width:0}.content-page-sections{display:grid;grid-template-columns:1fr;gap:12px;min-width:0}.guide-content-page{grid-template-columns:repeat(2,minmax(0,1fr))}
.content-managed-section{min-width:0;scroll-margin-top:90px}.content-managed-section.style-card{padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.content-managed-section.style-plain{padding:8px 0}.content-managed-section.style-callout,.content-managed-section.style-warning{grid-column:1/-1;padding:17px;border-radius:var(--radius);border:1px solid #2b4763;background:#0c1824}.content-managed-section.style-warning{border-color:#6b5225;background:#211a0c}
.content-managed-section>h2{margin:0 0 9px;font-size:17px;line-height:1.55}.content-rich{min-width:0;color:#b7c5d4;font-size:12px;line-height:1.95;overflow-wrap:break-word}.content-rich>*:first-child{margin-top:0}.content-rich>*:last-child{margin-bottom:0}.content-rich p{margin:0 0 9px}.content-rich ul,.content-rich ol{margin:8px 0;padding-inline-start:22px}.content-rich blockquote{margin:10px 0;padding:9px 12px;border-inline-start:3px solid #355778;background:#0a1622;border-radius:8px}.content-rich pre{max-width:100%;overflow:auto;padding:10px 12px;border-radius:8px;background:#07121d;direction:ltr;text-align:left}.content-rich code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.content-rich a{color:#9cc5ff;text-decoration:underline;text-underline-offset:2px}.content-rich .guide-example,.content-rich .content-note{padding:9px 10px;border-radius:9px;background:#0a1622}.content-rich dl{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px 10px;margin:0}.content-rich dt{font-weight:800;color:#dbe9f5;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.025)}.content-rich dd{min-width:0;margin:0;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.025);color:#aebdcb;overflow-wrap:break-word}

.content-admin-heading{align-items:flex-start}.content-page-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.content-page-admin-card{display:grid;gap:12px;min-width:0}.content-page-admin-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.content-page-admin-card-head>div{min-width:0}.content-page-admin-card h2{margin:7px 0 4px;font-size:17px}.content-page-admin-card code{display:inline-block;max-width:100%;overflow-wrap:anywhere;color:#91a8bf}.content-section-count{flex:0 0 auto;font-size:12px;color:#aac6df}.chip-row{display:flex;gap:6px;flex-wrap:wrap}.content-page-admin-meta{display:flex;gap:8px 14px;flex-wrap:wrap;color:#91a4b8;font-size:10.5px}.content-page-settings-card,.content-new-section-card{margin-bottom:14px}.content-page-form-grid,.content-section-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.content-page-wide{grid-column:1/-1}.check-field{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.02);cursor:pointer}.check-field input{width:auto;max-width:none;margin:0}.content-sections-admin{display:grid;gap:12px}.content-section-editor-list{display:grid;gap:10px}.content-section-editor{padding:0;overflow:hidden}.content-section-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.content-section-editor>summary::-webkit-details-marker{display:none}.content-section-editor>summary>span:first-child{display:grid;gap:3px;min-width:0}.content-section-editor>summary strong{overflow-wrap:anywhere}.content-section-editor>summary small{color:#8ca0b4;font-size:10.5px;overflow-wrap:anywhere}.content-section-editor[open]>summary{border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}.content-section-form{padding:14px 16px 8px}.content-section-editor>form:last-child{padding:0 16px 16px}.content-editor-toolbar{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}.content-editor-toolbar button{min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#0a1621;color:#aec2d5;font:inherit;font-size:10px;cursor:pointer}.content-editor-toolbar button:hover{border-color:#355778;color:#fff}.content-html-editor{direction:rtl;text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,Tahoma,sans-serif;line-height:1.8;resize:vertical}.field small{display:block;margin-top:5px;color:#7f93a7;font-size:10px;line-height:1.7}.row-actions form{margin:0}

@media(max-width:960px){.guide-content-page,.content-page-admin-grid{grid-template-columns:1fr}.content-page-form-grid,.content-section-form-grid{grid-template-columns:1fr}.content-page-wide{grid-column:auto}}
@media(max-width:700px){.content-preview-banner{align-items:flex-start;flex-direction:column}.content-page-admin-card-head{flex-direction:column}.content-section-editor>summary{align-items:flex-start}.content-rich dl{grid-template-columns:1fr;gap:3px}.content-managed-section.style-card,.content-managed-section.style-callout,.content-managed-section.style-warning{padding:14px}}
@media(max-width:440px){.content-managed-section>h2{font-size:16px}.content-rich{font-size:11.5px}.content-section-editor>summary,.content-section-form{padding-inline:12px}.content-section-editor>form:last-child{padding-inline:12px}.content-editor-toolbar button{flex:1 1 auto}}

/* =========================================================
   VulnWatch 1.8 — operations, quality, observability, CMS revisions
   ========================================================= */
.operations-status-board{margin-bottom:14px}.operations-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.operations-health-item{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0a1621;color:inherit}.operations-health-item:hover{border-color:#355778;background:#0d1b28}.operations-health-item>span{font-size:10px;color:#8ea4b9}.operations-health-item>strong{font-size:17px;overflow-wrap:anywhere}.operations-health-item>small{font-size:10px;color:#7f93a7;overflow-wrap:anywhere}.text-success{color:#7dd3ad!important}.text-danger{color:#f09aa5!important}
.source-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.source-health-card{display:grid;gap:11px;min-width:0}.source-health-card .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.source-health-card h3{margin:0}.health-kv{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(0,1.35fr);gap:6px 10px}.health-kv>span{color:#8ea2b6;font-size:10.5px}.health-kv>strong{min-width:0;font-size:11px;overflow-wrap:anywhere}.source-health-card details>summary{cursor:pointer;color:#a9c8e4;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.metric-card{padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);display:grid;gap:4px}.metric-card span{color:#899fb4;font-size:10px}.metric-card strong{font-size:22px}
.event-message{max-width:720px;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostic-pre{max-width:min(820px,80vw);max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;direction:ltr;text-align:left;padding:10px;border:1px solid var(--line);border-radius:8px;background:#07121d;color:#c5d4e2}.topbar-actions{display:flex;gap:7px;flex-wrap:wrap}.nowrap{white-space:nowrap}.filters-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:10px;align-items:end}.filter-check{min-height:42px}.security-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.security-check{display:flex;align-items:center;gap:10px}.status-dot{width:10px;height:10px;border-radius:999px;background:#6f7d8a}.status-dot.ok{background:#59c49a;box-shadow:0 0 0 4px rgba(89,196,154,.08)}.status-dot.bad{background:#e06b7a;box-shadow:0 0 0 4px rgba(224,107,122,.08)}
.quarantine-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.quarantine-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.quarantine-filter-actions{grid-column:1/-1;justify-content:flex-end}.quarantine-actions{align-items:center;flex-wrap:wrap}.quarantine-actions form{margin:0}
.rule-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.rule-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rule-actions form{margin:0}.rule-preview-card{border-color:#355778}.tiny{font-size:10px}
.content-section-secondary-actions{padding:0 16px 16px;justify-content:flex-start}.content-revision-card{margin-top:14px}.content-revision-list{display:grid;gap:7px}.content-revision-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#0a1621}.content-revision-item>div{display:grid;gap:3px;min-width:0}.content-revision-item small{color:#8499ad;overflow-wrap:anywhere}
.update-checks-v18{counter-reset:update-check}.update-checks-v18 .preflight-check{counter-increment:update-check}.update-diff-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.update-diff-summary>div{padding:10px;border:1px solid var(--line);border-radius:9px;background:#0a1621}.update-diff-summary span{display:block;color:#8ea2b6;font-size:10px}.update-diff-summary strong{font-size:18px}
@media(max-width:1100px){.operations-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filters-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-check{align-self:center}.security-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.source-health-grid{grid-template-columns:1fr}.metric-grid,.quarantine-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.operations-health-grid,.metric-grid,.quarantine-kpis,.quarantine-filter-grid,.filters-grid,.security-check-grid,.rule-advanced-grid,.update-diff-summary{grid-template-columns:1fr}.content-revision-item{align-items:flex-start;flex-direction:column}.content-revision-item form,.content-revision-item .btn{width:100%}.health-kv{grid-template-columns:1fr}.health-kv>span{margin-top:5px}.diagnostic-pre{max-width:78vw}.quarantine-filter-actions{justify-content:stretch}.quarantine-filter-actions .btn{flex:1 1 auto}}
@media(max-width:440px){.operations-status-board,.source-health-card,.content-revision-card{padding:11px}.source-health-card .card-head{flex-direction:column}.quarantine-actions{display:grid}.quarantine-actions form,.quarantine-actions .btn{width:100%}.content-section-secondary-actions{padding-inline:12px}}
.audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;margin-bottom:12px}.audit-diff-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:8px;margin-top:8px;max-width:900px;overflow:auto}.audit-diff-grid>div{min-width:0}.audit-diff-grid .diagnostic-pre{max-width:100%;max-height:260px}
@media(max-width:900px){.audit-filter-grid{grid-template-columns:1fr 1fr}.audit-diff-grid{grid-template-columns:1fr}}
@media(max-width:600px){.audit-filter-grid{grid-template-columns:1fr}}

/* =========================================================
   VulnWatch 1.9 — operational visibility & reliability
   ========================================================= */
.tab-row{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.send-log-filter,.alert-rule-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.alert-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.alert-rule-meta{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0;color:var(--muted);font-size:11px}.source-health-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:10px 0}.source-health-stats>span{display:grid;gap:3px;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.018)}.source-health-stats small{color:var(--muted);font-size:9.5px;overflow-wrap:anywhere}.source-health-stats strong{font-size:12px}.health-card small{overflow-wrap:anywhere}.table td code,.table th{max-width:320px;overflow-wrap:anywhere}.danger.btn,.btn.danger{border-color:rgba(239,68,68,.45);color:#ffb4b4;background:rgba(239,68,68,.08)}
@media(max-width:960px){.alert-rule-grid{grid-template-columns:1fr}.source-health-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.send-log-filter,.alert-rule-form{grid-template-columns:1fr}.source-health-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tab-row .btn{flex:1 1 auto}}
@media(max-width:390px){.source-health-stats{grid-template-columns:1fr}.alert-rule-meta{display:grid;gap:5px}}

/* =========================================================
   VulnWatch 2.2 — UI/UX Modernization
   Version-scoped design layer. Business logic is unchanged.
   ========================================================= */
:root{
  --ui-bg:#071019;
  --ui-bg-soft:#0a141f;
  --ui-surface:#0d1823;
  --ui-surface-2:#11202d;
  --ui-surface-3:#162735;
  --ui-border:#203447;
  --ui-border-strong:#31506b;
  --ui-text:#edf5fb;
  --ui-muted:#91a5b7;
  --ui-muted-2:#70869a;
  --ui-ring:color-mix(in srgb,var(--accent) 32%,transparent);
  --ui-shadow-sm:0 10px 30px rgba(0,0,0,.18);
  --ui-shadow-lg:0 24px 70px rgba(0,0,0,.28);
  --ui-radius-sm:10px;
  --ui-radius:15px;
  --ui-radius-lg:22px;
  --ui-content:1280px;
}

html{background:var(--ui-bg)}
body{
  color:var(--ui-text);
  background:
    radial-gradient(900px 520px at 90% -10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 62%),
    radial-gradient(720px 440px at 5% 8%,rgba(58,130,190,.06),transparent 60%),
    var(--ui-bg);
}
.container{width:min(var(--ui-content),calc(100% - 48px))}
.muted{color:var(--ui-muted)}
.text-link{color:color-mix(in srgb,var(--accent) 80%,white 20%);text-underline-offset:4px}
.text-link:hover{text-decoration:underline}

/* Typography + shared rhythm */
h1,h2,h3{letter-spacing:-.025em}
h1{font-weight:800}
h2{font-weight:760}
.eyebrow{font-size:10px;letter-spacing:.09em;color:color-mix(in srgb,var(--accent) 74%,white 26%)}
.page-heading,.topbar{margin-bottom:24px}
.page-heading p,.topbar .muted{font-size:13px;line-height:1.9}
.section-title{align-items:flex-start}
.section-title .muted{font-size:11px;line-height:1.8}

/* Buttons + controls */
.btn{
  min-height:42px;padding:9px 15px;border-radius:11px;border-color:var(--ui-border-strong);
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0)),var(--ui-surface-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.btn:hover{transform:translateY(-1px);background:var(--ui-surface-3);border-color:color-mix(in srgb,var(--accent) 42%,var(--ui-border-strong));box-shadow:var(--ui-shadow-sm)}
.btn.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white 8%),var(--accent));color:#06111c;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 18%,transparent)}
.btn.ghost{background:rgba(255,255,255,.015)}
.btn.small{min-height:35px}
input,select,textarea,.field input,.field select,.field textarea,.filter-field input,.filter-field select{
  min-height:44px;border-radius:11px;border-color:var(--ui-border);background:#09141e;padding:10px 12px;
}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--ui-ring);background:#0b1823}

/* Global surfaces */
.card,.filter-card,.summary-card,.side-card,.health-card,.usage-card,.plan-card,.content-card{
  border-color:var(--ui-border);background:linear-gradient(180deg,rgba(255,255,255,.014),rgba(255,255,255,0)),var(--ui-surface);
  box-shadow:0 1px 0 rgba(255,255,255,.02);
}
.card{border-radius:var(--ui-radius);padding:19px}
.empty-state{border-color:var(--ui-border-strong);background:rgba(255,255,255,.012);padding:32px}
.badge{min-height:25px;padding:4px 8px;font-size:9.5px;letter-spacing:.01em}
.chip,.landing-tags span,.category-pills a,.landing-category-pills a{min-height:29px;padding:5px 9px;background:#0a1620;border-color:var(--ui-border)}

/* Public header */
.site-header{border-bottom-color:rgba(32,52,71,.82);background:rgba(7,16,25,.88);backdrop-filter:blur(18px) saturate(130%)}
.site-header-inner{min-height:74px}
.brand-mark{width:40px;height:40px;border-radius:12px}
.brand-copy strong{font-size:14px}.brand-copy small{font-size:10px}
.public-nav{gap:3px}
.public-nav>a,.lang-links a{min-height:38px;display:inline-flex;align-items:center;padding:8px 11px;border:1px solid transparent}
.public-nav>a:hover,.lang-links a:hover{background:var(--ui-surface);border-color:var(--ui-border)}
.public-nav>a.is-active{background:var(--accent-soft);border-color:var(--accent-border);color:#fff}
.public-login-link{margin-inline-start:5px;background:rgba(255,255,255,.02);border-color:var(--ui-border)!important}
.public-main{padding:38px 0 64px}
.site-footer{background:#060e16;border-top-color:var(--ui-border);padding:28px 0}
.footer-links a:hover{color:var(--ui-text)}
.mobile-menu-button{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:11px;background:var(--ui-surface);border-color:var(--ui-border)}
.mobile-menu-button span{width:20px;height:2px}
.mobile-drawer{background:#09141e;border-left-color:var(--ui-border);box-shadow:var(--ui-shadow-lg)}
.drawer-nav>a{min-height:44px;display:flex;align-items:center}

/* Public home */
.landing-shell{gap:14px}
.landing-hero-card{
  grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr);
  border-color:var(--ui-border-strong);border-radius:26px;
  background:
    radial-gradient(700px 360px at 14% 12%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 62%),
    linear-gradient(145deg,#0c1924 0%,#0a151f 56%,#0d1b26 100%);
  box-shadow:var(--ui-shadow-lg);
}
.landing-hero-main{padding:clamp(34px,5vw,66px)}
.landing-hero-main h1{max-width:900px;font-size:clamp(36px,4.8vw,62px);line-height:1.12;margin:10px 0 18px}
.landing-hero-main p{max-width:800px;font-size:15px;line-height:2;color:#b9c9d6}
.landing-actions{margin-top:26px;gap:10px}
.landing-tags{margin-top:27px;gap:7px}
.landing-tags span{color:#94aabd;background:rgba(4,13,21,.42)}
.landing-live-card{padding:32px;border-inline-start-color:var(--ui-border);background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0)),#09151f}
.landing-live-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.landing-source-count{font-size:56px;margin-top:15px}
.landing-mini-grid{gap:10px;margin-top:28px}
.landing-mini-grid>div{padding:14px;border-radius:12px;background:#0c1a25;border-color:var(--ui-border)}
.landing-mini-grid b{font-size:22px}
.landing-stats{gap:11px}
.landing-stat{min-height:94px;padding:17px 18px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,0)),var(--ui-surface);border-color:var(--ui-border)}
.landing-stat span{font-size:10px;color:var(--ui-muted)}
.landing-stat strong{font-size:28px;margin-top:7px}
.landing-section{margin-top:48px}
.landing-section-head{margin-bottom:18px}
.landing-advisory-grid{gap:14px}
.landing-vuln-card{
  position:relative;overflow:hidden;min-height:275px;padding:18px;border-radius:16px;border-color:var(--ui-border);
  background:linear-gradient(180deg,rgba(255,255,255,.016),transparent),var(--ui-surface);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.landing-vuln-card::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--unknown);opacity:.75}
.landing-vuln-card.severity-critical::before{background:var(--critical)}
.landing-vuln-card.severity-high::before{background:var(--high)}
.landing-vuln-card.severity-medium::before{background:var(--medium)}
.landing-vuln-card.severity-low::before{background:var(--low)}
.landing-vuln-card:hover{transform:translateY(-2px);border-color:var(--ui-border-strong);box-shadow:var(--ui-shadow-sm)}
.landing-vuln-card h3{font-size:16px;line-height:1.65;margin:12px 0 8px}
.landing-vuln-card p{font-size:11.5px;line-height:1.9}
.landing-vuln-meta{gap:7px;margin-top:10px}
.landing-card-link{margin-top:auto;padding-top:14px;color:color-mix(in srgb,var(--accent) 80%,white 20%);font-weight:750}
.landing-coverage{border-radius:20px;border-color:var(--ui-border);background:var(--ui-surface)}

/* Vulnerability bank */
.smart-filter-card{padding:18px;border-radius:17px;background:linear-gradient(180deg,rgba(255,255,255,.016),transparent),#0b1721}
.filter-card-head{margin-bottom:16px}
.filter-card-head>div{gap:3px}.filter-card-head>div>strong{font-size:15px}.filter-card-head .muted{font-size:10.5px}
.responsive-filters{gap:11px}
.filter-field label{font-size:10.5px;color:#a9bac8}
.filter-actions{margin-top:14px;padding-top:14px;border-top:1px solid rgba(32,52,71,.72);align-items:center}
.filter-result-count{margin-inline-start:auto;padding:6px 10px;border-radius:999px;background:#0a1620;border:1px solid var(--ui-border);color:#a8bbca}
.active-filter-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-2px 0 16px;padding:10px 12px;border:1px solid var(--ui-border);border-radius:13px;background:rgba(13,28,40,.74)}
.active-filter-title{font-size:10px;font-weight:800;color:#9bb0c1;margin-inline-end:2px}
.active-filter-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;border:1px solid var(--accent-border);background:var(--accent-soft);color:#cbe2ff;font-size:10px;max-width:100%;overflow-wrap:anywhere}
.active-filter-clear{margin-inline-start:auto;font-size:10px;color:#9fc8ff}
.advisory-list{gap:11px}
.list-vuln-card{position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr) 156px;gap:20px;padding:18px 19px;border-radius:15px;border-color:var(--ui-border);background:linear-gradient(180deg,rgba(255,255,255,.014),transparent),var(--ui-surface);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.list-vuln-card::before{content:"";position:absolute;top:0;bottom:0;inset-inline-start:0;width:3px;background:var(--unknown);opacity:.72}
.list-vuln-card.severity-critical::before{background:var(--critical)}.list-vuln-card.severity-high::before{background:var(--high)}.list-vuln-card.severity-medium::before{background:var(--medium)}.list-vuln-card.severity-low::before{background:var(--low)}
.list-vuln-card:hover{transform:translateY(-1px);border-color:var(--ui-border-strong);box-shadow:var(--ui-shadow-sm)}
.list-vuln-main h2,.list-vuln-main h3{font-size:16px;line-height:1.65;margin:10px 0 7px}
.list-vuln-main p{font-size:11.5px;line-height:1.9;color:#9fb1c1}
.list-badges{gap:6px}
.list-vuln-side{padding-inline-start:16px;border-inline-start:1px solid rgba(32,52,71,.75);min-width:0}
.page-button,.page-number{min-width:38px;height:38px;border-radius:10px;background:var(--ui-surface);border-color:var(--ui-border)}

/* Advisory detail — decision hierarchy first */
.breadcrumbs{margin-bottom:14px;color:#7f95a8}
.vulnerability-header{position:relative;overflow:hidden;padding:26px;border-color:var(--ui-border-strong);border-radius:20px;background:radial-gradient(700px 280px at 88% -20%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),linear-gradient(180deg,#0d1b27,#0b1721);box-shadow:var(--ui-shadow-sm)}
.vulnerability-header::after{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--unknown)}
.vulnerability-header.severity-critical::after{background:var(--critical)}.vulnerability-header.severity-high::after{background:var(--high)}.vulnerability-header.severity-medium::after{background:var(--medium)}.vulnerability-header.severity-low::after{background:var(--low)}
.vulnerability-head-main h1{font-size:clamp(28px,3.2vw,42px);line-height:1.35;margin:12px 0 11px}
.vuln-lead{max-width:980px;font-size:14px;line-height:2;color:#bdcbd6}
.vuln-head-meta{gap:8px 14px;color:#89a0b3;font-size:10.5px;margin-top:14px}
.vulnerability-quick-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:18px}
.vulnerability-quick-metric{min-width:0;padding:12px 13px;border:1px solid var(--ui-border);border-radius:12px;background:rgba(5,15,23,.48)}
.vulnerability-quick-metric>span{display:block;color:#7f95a8;font-size:9.5px;margin-bottom:5px}
.vulnerability-quick-metric>strong{display:block;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
.vulnerability-quick-metric>small{display:block;color:#8298aa;font-size:9px;margin-top:3px}
.vulnerability-layout{grid-template-columns:minmax(0,1fr) 326px;gap:16px;margin-top:14px}
.content-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:18px;border:1px solid var(--ui-border);border-radius:15px;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent),var(--ui-surface);margin-bottom:12px}
.section-icon{border-color:var(--ui-border-strong);background:#0b1a26;color:#98bfe7}
.content-card-body h2{font-size:19px;margin-bottom:10px}
.rich-text{color:#bac8d4;font-size:13px;line-height:2}
.side-card{padding:17px!important;border-radius:15px!important;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent),var(--ui-surface)!important}
.sticky-card{top:92px}
.spec-list>div{padding:10px 0;border-bottom-color:rgba(32,52,71,.72)}
.product-box,.remediation-card{border-color:var(--ui-border);background:#0b1721}
.evidence-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.evidence-summary-grid>span{min-width:0;padding:11px;border:1px solid rgba(32,52,71,.74);border-radius:11px;background:#091721;color:#8fa4b6;font-size:9.5px}
.evidence-summary-grid>span>b{display:block;color:#e7f1f8;font-size:13px;margin-bottom:3px}
.evidence-score{min-width:72px;min-height:42px;justify-content:center;padding:8px 10px;border:1px solid var(--accent-border);border-radius:11px;background:var(--accent-soft);color:#cde4ff;font-weight:850}

/* Application shell */
.panel-body{background:var(--ui-bg)}
.panel-sidebar{width:286px;padding:18px 14px;background:linear-gradient(180deg,#09141e,#08121b);border-inline-end-color:var(--ui-border)}
.panel-main{margin-inline-start:286px;padding:30px clamp(20px,3vw,44px) 54px}
[dir="rtl"] .panel-main{margin-inline-start:0;margin-inline-end:286px}
[dir="rtl"] .panel-sidebar{inset-inline-start:auto;inset-inline-end:0;border-inline-end:0;border-inline-start:1px solid var(--ui-border)}
.panel-brand strong{font-size:13px}.panel-brand small{font-size:9.5px}
.panel-nav{gap:4px}.panel-nav-group{margin-top:14px}
.panel-nav-label{padding:0 10px 6px;font-size:9px;color:#637b90}
.panel-nav a{min-height:42px;padding:9px 10px;border-radius:10px;font-size:11.5px;color:#9fb0bf}
.panel-nav a:hover{background:#0e1c28;color:#eef6fb}
.panel-nav a.is-active{background:linear-gradient(90deg,var(--accent-soft),rgba(255,255,255,.012));border:1px solid var(--accent-border);color:#fff}
.panel-nav a.is-active::before{width:3px;height:20px}
.panel-sidebar-foot{padding-top:14px;border-top-color:var(--ui-border)}
.account-mini{padding:10px;border-radius:12px;background:#0b1721;border:1px solid var(--ui-border)}
.account-avatar{box-shadow:0 0 0 3px var(--accent-soft)}
.panel-toolbar{min-height:48px;margin-bottom:24px;padding:0 0 15px;border-bottom-color:var(--ui-border)}
.command-trigger{min-height:36px;border-radius:10px;background:#0b1721;border-color:var(--ui-border)}
.product-topbar{padding:3px 0 2px}

/* Dashboard visual system */
.dashboard-kpis{gap:11px;margin-bottom:14px}
.dashboard-kpis-six{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-kpis-eight{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi-card{position:relative;overflow:hidden;min-height:126px;padding:17px;border-radius:14px;border-color:var(--ui-border);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent),var(--ui-surface)}
.kpi-card::after{content:"";position:absolute;inset-inline-start:0;top:0;width:3px;height:100%;background:var(--ui-border-strong);opacity:.7}
.kpi-red::after{background:var(--critical)}.kpi-amber::after{background:var(--warning)}.kpi-green::after{background:var(--success)}.kpi-blue::after,.kpi-indigo::after,.kpi-purple::after{background:var(--accent)}
.kpi-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#0a1924;border:1px solid var(--ui-border);font-size:10px;color:#a9c8e4}
.kpi-label{font-size:10px;color:#8298ab}.kpi-value{font-size:31px}.kpi-foot{font-size:9.5px;color:#71889b}
.dashboard-card,.operations-status-board,.attention-center{border-radius:15px}
.operations-health-grid{gap:10px}
.operations-health-item{min-height:98px;padding:13px;border-radius:12px;border-color:var(--ui-border);background:#0a1721}
.operations-health-item:hover{transform:translateY(-1px);border-color:var(--ui-border-strong);background:#0c1b27}
.operations-health-item>span{font-size:9.5px}.operations-health-item>strong{font-size:18px}.operations-health-item>small{font-size:9.5px;line-height:1.6}
.table-wrap{border-radius:12px;border-color:var(--ui-border);background:#09141e}
.table{background:#09141e}.table th{background:#0d1a25;color:#7890a3;font-size:9px}.table td{font-size:11.5px;padding:12px 13px;border-bottom-color:rgba(32,52,71,.68)}
.table tbody tr:hover td{background:rgba(98,165,255,.025)}
.usage-grid{gap:11px}.usage-card{border-radius:14px}.meter{height:6px;background:#06111a}
.asset-risk-summary{border-radius:15px!important}

/* Accessibility + density */
.flash,.errors,.inline-alert,.policy-notice,.warning-note{border-radius:12px}
:focus-visible{scroll-margin:90px}
@media(prefers-reduced-motion:reduce){.btn,.landing-vuln-card,.list-vuln-card,.operations-health-item{transform:none!important;transition:none!important}}

/* 1180 / 1024 / 960 / 768 / 700 / 430 / 390 / 360 */
@media(max-width:1180px){
  .landing-hero-card{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}
  .landing-advisory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .evidence-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-kpis-eight{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1024px){
  .container{width:calc(100% - 36px)}
  .landing-hero-main{padding:38px}
  .landing-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vulnerability-layout{grid-template-columns:minmax(0,1fr) 290px}
  .vulnerability-quick-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px){
  .desktop-nav{display:none}.mobile-menu-button{display:flex}
  .landing-hero-card{grid-template-columns:1fr}.landing-live-card{border-inline-start:0;border-top:1px solid var(--ui-border)}
  .landing-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vulnerability-layout{grid-template-columns:1fr}.vulnerability-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sticky-card{position:static}
  .panel-sidebar,[dir="rtl"] .panel-sidebar,[dir="ltr"] .panel-sidebar{width:min(88vw,360px)!important;inset-inline:auto!important;right:0!important;left:auto!important;margin:0!important;border-left:1px solid var(--ui-border)!important;border-right:0!important;transform:translate3d(104%,0,0)}
  .panel-sidebar.is-open{transform:translate3d(0,0,0)}
  .panel-main,[dir="rtl"] .panel-main,[dir="ltr"] .panel-main{margin:0!important;padding:78px 22px 46px!important}
  .panel-mobile-head{display:flex;position:fixed;z-index:80;top:0;left:0;right:0;min-height:62px;padding:9px 18px;align-items:center;justify-content:space-between;background:rgba(7,16,25,.94);border-bottom:1px solid var(--ui-border);backdrop-filter:blur(16px)}
  .panel-drawer-close{display:grid}
}
@media(max-width:768px){
  .container{width:calc(100% - 28px)}
  .public-main{padding:28px 0 48px}
  .landing-hero-main{padding:30px}.landing-hero-main h1{font-size:clamp(31px,8vw,46px)}
  .landing-advisory-grid{grid-template-columns:1fr}.landing-vuln-card{min-height:0}
  .responsive-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-search{grid-column:1/-1}
  .list-vuln-card{grid-template-columns:1fr}.list-vuln-side{padding-inline-start:0;padding-top:12px;border-inline-start:0;border-top:1px solid var(--ui-border);align-items:flex-start}
  .evidence-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-kpis-six,.dashboard-kpis-eight{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar,.page-heading{align-items:flex-start;flex-direction:column}.topbar>.row{width:100%}.topbar>.row .btn{flex:1 1 auto}
}
@media(max-width:700px){
  .container{width:calc(100% - 22px)}
  .site-header-inner{min-height:66px}.brand-copy small{max-width:180px}
  .landing-stats{grid-template-columns:1fr 1fr}.landing-stat{min-height:86px}
  .filter-card{padding:14px}.filter-card-head{align-items:flex-start;flex-direction:column}.filter-toggle{width:100%}
  .responsive-filters{grid-template-columns:1fr}.filter-search{grid-column:auto}.filter-actions{align-items:stretch;flex-direction:column}.filter-actions>.btn,.filter-actions>a.btn{width:100%}.filter-result-count{margin-inline-start:0;text-align:center}
  .active-filter-strip{align-items:flex-start}.active-filter-clear{margin-inline-start:0;width:100%;padding-top:4px}
  .vulnerability-header{padding:20px}.vulnerability-quick-metrics{grid-template-columns:1fr 1fr}.content-card{grid-template-columns:38px minmax(0,1fr);padding:15px}.vulnerability-sidebar{grid-template-columns:1fr}
  .dashboard-kpis-six,.dashboard-kpis-eight{grid-template-columns:1fr 1fr}.kpi-card{min-height:116px}
  .panel-main,[dir="rtl"] .panel-main,[dir="ltr"] .panel-main{padding-inline:14px!important}
}
@media(max-width:430px){
  .container{width:calc(100% - 18px)}
  .site-brand{gap:8px}.brand-mark{width:38px;height:38px}.brand-copy small{display:none}
  .landing-hero-card{border-radius:18px}.landing-hero-main{padding:23px}.landing-hero-main h1{font-size:29px;line-height:1.26}.landing-hero-main p{font-size:13px}.landing-actions{display:grid}.landing-actions .btn{width:100%}
  .landing-live-card{padding:23px}.landing-source-count{font-size:45px}
  .landing-stats{grid-template-columns:1fr 1fr;gap:8px}.landing-stat{padding:13px}.landing-stat strong{font-size:23px}
  .landing-section{margin-top:36px}.landing-section-head{align-items:flex-start;flex-direction:column}
  .list-vuln-card{padding:15px}.list-vuln-main h2{font-size:14.5px}.list-badges{gap:4px}.badge{font-size:8.8px}
  .vulnerability-header{padding:16px;border-radius:15px}.vulnerability-head-main h1{font-size:23px!important}.vulnerability-quick-metrics{grid-template-columns:1fr 1fr;gap:7px}.vulnerability-quick-metric{padding:10px}.vulnerability-quick-metric>strong{font-size:16px}
  .content-card{grid-template-columns:1fr;padding:14px}.section-icon{width:34px;height:34px}.evidence-summary-grid{grid-template-columns:1fr}
  .dashboard-kpis-six,.dashboard-kpis-eight{grid-template-columns:1fr}.kpi-card{min-height:108px}.operations-health-grid{grid-template-columns:1fr!important}
  .panel-mobile-head{padding-inline:11px}.panel-main,[dir="rtl"] .panel-main,[dir="ltr"] .panel-main{padding-inline:10px!important}
}
@media(max-width:390px){
  .mobile-menu-button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .landing-stats{grid-template-columns:1fr}.landing-mini-grid{grid-template-columns:1fr 1fr}
  .vulnerability-quick-metrics{grid-template-columns:1fr}
}
@media(max-width:360px){
  .container{width:calc(100% - 14px)!important}
  .landing-hero-main{padding:20px}.landing-live-card{padding:20px}
  .btn{max-width:100%;white-space:normal}
  .card,.filter-card,.content-card,.side-card{border-radius:12px}
  .active-filter-chip{width:100%;justify-content:center}
  .panel-main,[dir="rtl"] .panel-main,[dir="ltr"] .panel-main{padding-inline:7px!important}
}

/* VulnWatch 2.3 — UX Quality, Accessibility & Frontend Reliability */
:root{
  --focus-ring:#9fc8ff;
  --focus-shadow:0 0 0 4px rgba(98,165,255,.18);
  --state-info:#76b5ff;
  --state-success:#73d6ae;
  --state-warning:#e6bd6b;
  --state-danger:#f08a98;
}
html{scroll-padding-top:88px}
body.ui-v23{background:radial-gradient(circle at 50% -20%,rgba(98,165,255,.045),transparent 34%),var(--ui-bg,var(--bg))}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:10000;inset-inline-start:18px;top:12px;transform:translateY(-160%);padding:10px 14px;border-radius:10px;background:#f4f8ff;color:#08111a;font-weight:850;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:3px!important;box-shadow:var(--focus-shadow)}
:where(button,.btn,a.page-button,a.page-number,.saved-view-presets a,.saved-view-chip a){touch-action:manipulation}
.btn[aria-disabled="true"],.btn.is-loading{opacity:.72;cursor:progress;pointer-events:none}
.btn.is-loading::after{content:"";width:12px;height:12px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:vw23spin .8s linear infinite}
@keyframes vw23spin{to{transform:rotate(360deg)}}
[aria-current="page"]{text-decoration-thickness:2px;text-underline-offset:5px}

/* State system: loading / empty / warning / error / success */
.ui-state{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid var(--ui-border,var(--line));border-radius:14px;background:#0a1721;color:var(--text);min-width:0}
.ui-state-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;border:1px solid var(--ui-border-strong,var(--line-strong));background:#0d1d29;font-weight:900}
.ui-state-copy{min-width:0;flex:1}.ui-state-copy strong{display:block;color:#f2f7fb}.ui-state-copy p{margin:3px 0 0;font-size:12px;color:#9fb0bf}
.ui-state-success{border-color:rgba(89,196,154,.32)}.ui-state-success .ui-state-icon{color:var(--state-success);border-color:rgba(89,196,154,.4)}
.ui-state-warning{border-color:rgba(217,173,88,.38)}.ui-state-warning .ui-state-icon{color:var(--state-warning)}
.ui-state-error{border-color:rgba(224,107,122,.42)}.ui-state-error .ui-state-icon{color:var(--state-danger)}
.ui-state-empty .ui-state-icon{color:#9fc8ff}
.flash{border-color:rgba(89,196,154,.35)!important}.errors{border-color:rgba(224,107,122,.45)!important}

/* Saved views + search workbench */
.saved-view-panel{position:sticky;z-index:24;top:76px;margin:12px 0 16px;padding:13px 15px;border:1px solid rgba(49,73,95,.88);border-radius:14px;background:rgba(8,19,29,.94);box-shadow:0 12px 30px rgba(0,0,0,.16);backdrop-filter:blur(14px)}
.saved-view-main{display:flex;align-items:center;justify-content:space-between;gap:14px}.saved-view-main h2{font-size:14px;margin:0}.saved-view-main .eyebrow{margin-bottom:2px}
.saved-view-actions,.saved-view-presets,.saved-view-list{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.saved-view-presets{margin-top:10px}.saved-view-presets a,.saved-view-chip{display:inline-flex;align-items:center;min-height:34px;border:1px solid #284158;border-radius:999px;background:#0b1a26;color:#b9cce0;font-size:10.5px;font-weight:750}
.saved-view-presets a{padding:6px 11px}.saved-view-presets a:hover{border-color:var(--accent-border);background:var(--accent-soft);color:#eaf4ff}
.saved-view-list{margin-top:8px;padding-top:8px;border-top:1px solid rgba(42,64,83,.72)}
.saved-view-chip a{padding:6px 9px;border:0;background:transparent}.saved-view-chip button{width:30px;height:30px;border:0;border-inline-start:1px solid #284158;background:transparent;color:#8fa5b9;cursor:pointer;border-radius:999px}.saved-view-chip button:hover{color:#fff;background:rgba(224,107,122,.1)}
.saved-view-empty{font-size:10.5px;color:#72889c}.exact-match{background:rgba(89,196,154,.12)!important;border-color:rgba(89,196,154,.35)!important;color:#9be2c3!important}

/* CVE actionability: explanatory only; does not alter RiskScorer. */
.actionability-card{margin:16px 0 18px;padding:18px;border:1px solid var(--ui-border);border-radius:16px;background:linear-gradient(135deg,rgba(98,165,255,.045),transparent 45%),#0a1721}
.actionability-urgent{border-color:rgba(239,106,124,.38);background:linear-gradient(135deg,rgba(239,106,124,.075),transparent 45%),#0a1721}.actionability-review{border-color:rgba(217,173,88,.34)}
.actionability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.actionability-head h2{margin:0;font-size:18px}.actionability-level{padding:6px 10px;border:1px solid var(--ui-border-strong);border-radius:999px;background:#0b1b27;color:#c9d8e5;font-size:10px;font-weight:850}
.actionability-urgent .actionability-level{border-color:rgba(239,106,124,.4);color:#ffb4bf}.actionability-review .actionability-level{border-color:rgba(217,173,88,.4);color:#efd39a}
.actionability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}.actionability-item{min-width:0;padding:12px;border:1px solid rgba(41,64,83,.85);border-radius:12px;background:#08141e}.actionability-item strong{display:block;color:#eaf2f8;font-size:11px}.actionability-item span{display:block;margin-top:4px;color:#8fa3b5;font-size:10px;line-height:1.65}.actionability-item.critical{border-color:rgba(239,106,124,.32)}
.actionability-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid rgba(41,64,83,.72)}.actionability-actions .muted{font-size:10px;flex:1 1 320px}

/* Admin action queue */
.ops-priority-queue{margin-bottom:14px}.ops-priority-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ops-priority-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:72px;padding:12px 13px;border:1px solid var(--ui-border);border-radius:12px;background:#091721}.ops-priority-item:hover{border-color:var(--ui-border-strong);background:#0b1a26}.ops-priority-item span{min-width:0}.ops-priority-item strong,.ops-priority-item small{display:block}.ops-priority-item strong{font-size:11px}.ops-priority-item small{margin-top:3px;color:#73899d;font-size:9.5px}.ops-priority-item b{font-size:21px;color:#dbe9f4}.ops-priority-item.level-critical{border-inline-start:3px solid var(--critical)}.ops-priority-item.level-high{border-inline-start:3px solid var(--high)}.ops-priority-item.level-review{border-inline-start:3px solid var(--warning)}

/* Frontend performance + stability: isolate below-fold repeaters and reserve geometry. */
@supports(content-visibility:auto){
  .advisory-list>.list-vuln-card,.landing-advisory-grid>.landing-vuln-card,.dashboard-primary-grid>.dashboard-card{content-visibility:auto;contain-intrinsic-size:auto 220px}
}
.list-vuln-card,.landing-vuln-card,.kpi-card,.operations-health-item{contain:layout paint}
.brand-logo,.panel-logo{object-fit:contain}.brand-logo{aspect-ratio:1/1}.panel-logo{aspect-ratio:1/1}
.table-wrap{scrollbar-gutter:stable both-edges}.table :where(a,button){scroll-margin-block:90px}

/* Dark-mode readability and interactive-state polish */
.muted,.kpi-foot,.operations-health-item>small{color:#8399ab}
.btn.ghost:hover,.command-trigger:hover{border-color:#49677f;color:#f4f8fb}
input:disabled,select:disabled,textarea:disabled,.disabled,[aria-disabled="true"]{filter:saturate(.72);opacity:.62}
::placeholder{color:#71869a;opacity:1}
.table th{color:#8ea3b5}.table td{color:#d5e0e9}.table tbody tr:focus-within td{background:rgba(98,165,255,.055)}

/* Keyboard and motion preferences */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
@media(prefers-contrast:more){
  :root{--muted:#aab8c5;--line:#405468;--line-strong:#5a7187}
  .badge,.chip,.saved-view-presets a,.saved-view-chip,.ui-state,.card,.filter-card{border-width:2px}
  :where(a,button,input,select,textarea):focus-visible{outline-width:4px!important}
}

@media(max-width:1024px){
  .saved-view-panel{top:68px}.actionability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-priority-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:768px){
  .saved-view-panel{position:static}.saved-view-main{align-items:flex-start;flex-direction:column}.saved-view-actions{width:100%}.saved-view-actions .btn{flex:1 1 auto}
  .ops-priority-list{grid-template-columns:1fr}
}
@media(max-width:430px){
  .actionability-card{padding:14px}.actionability-head{flex-direction:column}.actionability-grid{grid-template-columns:1fr}.actionability-actions>.btn{width:100%}
  .saved-view-actions{display:grid;grid-template-columns:1fr}.saved-view-presets a{flex:1 1 calc(50% - 7px);justify-content:center}.saved-view-chip{width:100%;justify-content:space-between}.saved-view-chip a{flex:1}
  .ui-state{align-items:stretch;flex-wrap:wrap}.ui-state .btn{width:100%}
}
@media(max-width:360px){
  :where(.mobile-menu-button,.drawer-close,.panel-drawer-close){min-width:44px!important;min-height:44px!important}
  .saved-view-presets a{flex-basis:100%}
}
/* WCAG AA correction found by Chromium viewport QA. */
.ui-v23 .btn.primary{color:#fff!important}

/* VulnWatch 2.3.1 — UI Cascade Compatibility Hotfix
   Root cause: legacy 2.2 !important geometry survived into the 2.3 version-scoped sheet.
   Keep the 2.3 interaction/design system, but normalize KPI pseudo-element geometry and KPI grid density. */
.ui-v23 .kpi-card::after{
  width:3px!important;
  height:100%!important;
  inset-inline-start:0!important;
  inset-inline-end:auto!important;
  top:0!important;
  border-radius:0!important;
  opacity:.72!important;
  background:var(--ui-border-strong)!important;
  pointer-events:none!important;
}
.ui-v23 .kpi-red::after{background:var(--critical)!important}
.ui-v23 .kpi-amber::after{background:var(--warning)!important}
.ui-v23 .kpi-green::after{background:var(--success)!important}
.ui-v23 .kpi-blue::after,.ui-v23 .kpi-indigo::after,.ui-v23 .kpi-purple::after{background:var(--accent)!important}
.ui-v23 .dashboard-kpis-six{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ui-v23 .dashboard-kpis-eight{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:768px){
  .ui-v23 .dashboard-kpis-six,.ui-v23 .dashboard-kpis-eight{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .ui-v23 .dashboard-kpis-six,.ui-v23 .dashboard-kpis-eight{grid-template-columns:1fr!important}
}

/* VulnWatch 2.3.2 — Remediation Layout Balance Hotfix
   Fixes the 2.3.1 CVE remediation section where legacy grid stretching/full-width geometry
   made the empty recommendation surface abnormally tall and detached the section heading
   from its icon. Presentation only: no advisory/remediation logic is changed. */
.ui-v23 .remediation-card .content-card-body{
  align-self:start;
}
.ui-v23 .remediation-ux-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)!important;
  gap:14px!important;
  align-items:start!important;
}
.ui-v23 .remediation-ux-grid>*{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
}
.ui-v23 .remediation-guidance{
  padding:16px!important;
  border-radius:14px!important;
}
.ui-v23 .remediation-guidance .eyebrow{
  display:block;
  margin-bottom:8px;
}
.ui-v23 .before-execution{
  margin:0!important;
  padding:15px 16px!important;
  border:1px solid var(--ui-border,var(--line))!important;
  border-radius:14px!important;
  background:#0a1721!important;
  color:#b7c6d4!important;
  line-height:1.8!important;
}
.ui-v23 .before-execution>strong{
  display:block;
  margin:0 0 8px;
  color:#eaf2f8;
  font-size:12px;
  line-height:1.5;
}
.ui-v23 .before-execution ul{
  display:grid;
  gap:5px;
  margin:0;
  padding-inline-start:18px!important;
}
.ui-v23 .before-execution li{
  margin:0!important;
  line-height:1.75;
}
.ui-v23 .remediation-card .official-command-note{
  display:block;
  margin-top:12px!important;
  padding:10px 12px;
  border-radius:11px;
  line-height:1.75;
}
@media(max-width:900px){
  .ui-v23 .remediation-ux-grid{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:430px){
  .ui-v23 .remediation-guidance,
  .ui-v23 .before-execution{
    padding:12px!important;
    border-radius:12px!important;
  }
  .ui-v23 .before-execution ul{
    padding-inline-start:16px!important;
  }
}


/* ==========================================================================\n   VulnWatch 2.4 — Canonical UI Stability Contract\n   This is the only active release-scoped terminal layer for VERSION=2.4.\n   Legacy release files remain on disk for rollback but .ui-v23 rules are inert.\n   ========================================================================== */
:root{
  --vw24-bg:#07111a;--vw24-surface:#0c1824;--vw24-surface-2:#102131;--vw24-line:#22384b;
  --vw24-line-strong:#31516b;--vw24-text:#e9f1f8;--vw24-muted:#9eb0c0;--vw24-accent:#69a8ff;
  --vw24-critical:#f06f82;--vw24-warning:#d3a64f;--vw24-success:#46b58d;
  --vw24-radius-sm:9px;--vw24-radius:13px;--vw24-radius-lg:17px;
  --vw24-space-1:4px;--vw24-space-2:8px;--vw24-space-3:12px;--vw24-space-4:16px;--vw24-space-5:20px;--vw24-space-6:24px;
  --vw24-focus:0 0 0 3px rgba(105,168,255,.28);
}
body.ui-v24{background:radial-gradient(circle at 50% -18%,rgba(105,168,255,.045),transparent 34%),var(--vw24-bg);color:var(--vw24-text);overflow-x:hidden}
.ui-v24 :where(.container,.panel-main,.panel-shell,.grid,.dashboard-kpis,.table-wrap,.filter-card,.content-card){min-width:0}
.ui-v24 :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--vw24-accent);outline-offset:2px;box-shadow:var(--vw24-focus)}
.ui-v24 :where(.card,.content-card,.dashboard-card,.filter-card,.saved-view-panel,.operations-health-item,.usage-card,.before-execution,.remediation-guidance){border-color:var(--vw24-line);border-radius:var(--vw24-radius);background:linear-gradient(180deg,rgba(255,255,255,.012),transparent),var(--vw24-surface)}
.ui-v24 :where(.section-title,.filter-card-head,.saved-view-main){gap:var(--vw24-space-4);align-items:center}
.ui-v24 :where(.muted,small,.kpi-foot,.panel-nav-label){color:var(--vw24-muted)}

/* Canonical KPI contract. Limited !important is deliberate containment for old unscoped important rules. */
.ui-v24 .dashboard-kpis{display:grid;gap:12px;align-items:stretch}
.ui-v24 .dashboard-kpis-six{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ui-v24 .dashboard-kpis-eight{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.ui-v24 .kpi-card{min-height:116px!important;padding:16px!important;border-radius:var(--vw24-radius)!important;background:var(--vw24-surface)!important;border-color:var(--vw24-line)!important;overflow:hidden;isolation:isolate}
.ui-v24 .kpi-card::after{content:""!important;position:absolute!important;inset-inline-start:0!important;inset-inline-end:auto!important;top:0!important;width:3px!important;height:100%!important;border-radius:0!important;opacity:.88!important;background:var(--vw24-line-strong)!important;pointer-events:none}
.ui-v24 .kpi-red::after{background:var(--vw24-critical)!important}.ui-v24 .kpi-amber::after{background:var(--vw24-warning)!important}.ui-v24 .kpi-green::after{background:var(--vw24-success)!important}.ui-v24 :is(.kpi-blue,.kpi-indigo,.kpi-purple)::after{background:var(--vw24-accent)!important}
.ui-v24 .kpi-icon{z-index:1}.ui-v24 .kpi-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ui-v24 .kpi-label{padding-inline-end:36px}

/* Admin/User shell consistency. */
.ui-v24 .panel-shell{background:var(--vw24-bg)}
.ui-v24 .panel-sidebar{background:#091520;border-color:var(--vw24-line)}
.ui-v24 .panel-nav a{min-height:44px;border-radius:10px}
.ui-v24 .panel-nav a.is-active{background:rgba(105,168,255,.105);border-color:rgba(105,168,255,.28)}
.ui-v24 .panel-main{padding-inline:clamp(14px,2.2vw,30px)}
.ui-v24 .panel-toolbar{min-height:52px;gap:12px;flex-wrap:wrap}
.ui-v24 .table-wrap{overflow:auto;overscroll-behavior-inline:contain;border-radius:var(--vw24-radius)}
.ui-v24 .table{min-width:680px}.ui-v24 .table th{position:sticky;top:0;background:#0b1722;z-index:1}
.ui-v24 .table td,.ui-v24 .table th{vertical-align:top;overflow-wrap:anywhere}
.ui-v24 :where(.flash,.errors,.inline-alert,.empty-state){border-radius:var(--vw24-radius);padding:12px 14px;overflow-wrap:anywhere}
.ui-v24 .empty-state{min-height:88px;display:grid;place-items:center;text-align:center;border:1px dashed var(--vw24-line);color:var(--vw24-muted)}
.ui-v24 form[aria-busy="true"]{opacity:.84}.ui-v24 .is-loading{position:relative;cursor:progress}

/* Filter/search contract. */
.ui-v24 .smart-filter-card{position:relative}
.ui-v24 .responsive-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.ui-v24 .filter-search{grid-column:span 2}
.ui-v24 .filter-field input,.ui-v24 .filter-field select{width:100%;min-height:44px}
.ui-v24 .filter-actions{position:sticky;bottom:8px;z-index:4;background:rgba(7,17,26,.92);backdrop-filter:blur(10px);border:1px solid var(--vw24-line);border-radius:12px;padding:10px;gap:8px;flex-wrap:wrap}
.ui-v24 .active-filter-strip,.ui-v24 .saved-view-presets,.ui-v24 .saved-view-actions{gap:8px;flex-wrap:wrap}
.ui-v24 :where(.active-filter-chip,.saved-view-presets a,.saved-view-chip){max-width:100%;overflow-wrap:anywhere}
.ui-v24 .exact-cve-hit{border-color:rgba(105,168,255,.45);box-shadow:inset 3px 0 0 rgba(105,168,255,.65)}

/* CVE detail hierarchy and explicit data-state surfaces. */
.ui-v24 .advisory-decision-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ui-v24 .remediation-card{overflow:hidden}
.ui-v24 .remediation-card .content-card-body{grid-column:auto!important}
.ui-v24 .remediation-ux-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:14px;align-items:start!important}
.ui-v24 .remediation-ux-grid>*{min-width:0;align-self:start!important}
.ui-v24 .remediation-guidance,.ui-v24 .before-execution{padding:16px;border:1px solid var(--vw24-line);border-radius:var(--vw24-radius);background:var(--vw24-surface-2)}
.ui-v24 .remediation-state-empty .remediation-guidance{min-height:84px;border-style:dashed;background:rgba(16,33,49,.72)}
.ui-v24 .remediation-state-available .remediation-guidance{border-color:rgba(70,181,141,.35)}
.ui-v24 .official-command-note{margin-top:12px!important}
.ui-v24 .content-card :where(p,li,code,.rich-text){overflow-wrap:anywhere;word-break:normal}

/* Interaction states / dark-mode polish. */
.ui-v24 .btn{min-height:44px!important;padding-block:10px!important;border-radius:10px}.ui-v24 .btn.primary{background:#2f73ca!important;color:#fff!important;border-color:#4c8edc!important}
.ui-v24 .btn.primary:hover{background:#397fd7!important}.ui-v24 .btn:disabled,.ui-v24 .btn[aria-disabled="true"]{opacity:.58}
.ui-v24 input,.ui-v24 select,.ui-v24 textarea{background:#091725;color:var(--vw24-text);border-color:var(--vw24-line)}
.ui-v24 input::placeholder,.ui-v24 textarea::placeholder{color:#758a9c}
.ui-v24 .badge{white-space:nowrap}.ui-v24 code{max-width:100%;overflow-wrap:anywhere}

/* RTL/LTR hardening. */
.ui-v24 [dir="ltr"]{unicode-bidi:plaintext}.ui-v24 .bidi-auto{unicode-bidi:plaintext}.ui-v24 .panel-toolbar-meta,.ui-v24 .status-row,.ui-v24 .activity-row{min-width:0}

/* Frontend performance containment only on leaf cards; never contain modal/drawer roots. */
.ui-v24 :where(.list-vuln-card,.landing-vuln-card,.kpi-card,.operations-health-item,.usage-card){contain:layout paint}

@media(max-width:1180px){
  .ui-v24 .responsive-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-v24 .advisory-decision-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1024px){
  .ui-v24 .dashboard-kpis-six,.ui-v24 .dashboard-kpis-eight{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ui-v24 .responsive-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-v24 .filter-search{grid-column:1/-1}
  .ui-v24 .remediation-ux-grid{grid-template-columns:1fr}.ui-v24 .advisory-decision-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:768px){
  .ui-v24 .panel-main{padding-inline:12px}.ui-v24 .page-heading,.ui-v24 .section-title,.ui-v24 .filter-card-head,.ui-v24 .saved-view-main{align-items:flex-start;flex-direction:column}
  .ui-v24 .responsive-filters{grid-template-columns:1fr 1fr}.ui-v24 .filter-search{grid-column:1/-1}.ui-v24 .filter-actions{position:static;bottom:auto}
  .ui-v24 .table{min-width:620px}.ui-v24 .advisory-decision-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .ui-v24 .dashboard-kpis-six,.ui-v24 .dashboard-kpis-eight{grid-template-columns:1fr!important}
  .ui-v24 .responsive-filters,.ui-v24 .advisory-decision-summary{grid-template-columns:1fr}.ui-v24 .filter-search{grid-column:auto}
  .ui-v24 .kpi-card{min-height:104px!important;padding:13px!important}.ui-v24 .kpi-value{font-size:23px!important}
  .ui-v24 .saved-view-actions,.ui-v24 .filter-actions{display:grid;grid-template-columns:1fr;width:100%}.ui-v24 .saved-view-actions .btn,.ui-v24 .filter-actions .btn{width:100%}
  .ui-v24 .remediation-guidance,.ui-v24 .before-execution{padding:13px}.ui-v24 .panel-toolbar{align-items:flex-start}
}
@media(max-width:360px){.ui-v24 .panel-main{padding-inline:9px}.ui-v24 .card,.ui-v24 .content-card,.ui-v24 .filter-card{border-radius:11px}.ui-v24 .kpi-card{padding:12px!important}}
@media(prefers-reduced-motion:reduce){.ui-v24 *, .ui-v24 *::before,.ui-v24 *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

.ui-v24 :where(.mobile-menu-button,.drawer-close,.command-trigger){min-width:44px!important;min-height:44px!important}

/* VulnWatch 2.4.1 — Unified RTL Pagination Hotfix
   Root cause: legacy selector assigned margin-top to nested .page-numbers,
   vertically offsetting numeric pages from previous/next controls. */
.ui-v24 .pagination{
  display:block!important;
  width:100%;
  margin-top:18px!important;
}
.ui-v24 .pagination > .vw-pagination{margin-top:0!important}
.ui-v24 .vw-pagination > .page-numbers{margin-top:0!important;margin-bottom:0!important}
.ui-v24 .vw-pagination{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:nowrap;
  gap:7px!important;
  width:100%;
  margin:18px 0 0!important;
  padding:2px 0;
  direction:rtl;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.ui-v24 .vw-pagination-pages{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0!important;
  padding:0!important;
  direction:rtl;
}
.ui-v24 :where(.vw-page-control,.vw-page-number,.vw-page-ellipsis){
  box-sizing:border-box;
  min-height:44px;
  height:44px;
  border:1px solid var(--vw24-line);
  border-radius:10px;
  background:var(--vw24-surface);
  color:var(--vw24-text);
  font-size:12px;
  line-height:1;
  text-decoration:none;
}
.ui-v24 :where(.vw-page-control,.vw-page-number){
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ui-v24 .vw-page-control{min-width:58px;padding:0 12px;font-weight:750}
.ui-v24 .vw-page-number{min-width:44px;padding:0 9px;font-variant-numeric:tabular-nums}
.ui-v24 .vw-page-number[aria-current="page"]{
  border-color:rgba(105,168,255,.58);
  background:rgba(105,168,255,.16);
  color:#f5f9ff;
  box-shadow:inset 0 0 0 1px rgba(105,168,255,.12);
  text-decoration:none;
}
.ui-v24 :where(a.vw-page-control,a.vw-page-number):hover{
  border-color:var(--vw24-line-strong);
  background:#102336;
  color:#fff;
}
.ui-v24 .vw-page-control[aria-disabled="true"]{
  opacity:.45;
  filter:none!important;
  cursor:not-allowed;
}
.ui-v24 .vw-page-ellipsis{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  border-color:transparent;
  background:transparent;
  color:var(--vw24-muted);
}
@media(max-width:430px){
  .ui-v24 .vw-pagination,.ui-v24 .vw-pagination-pages{gap:5px!important}
  .ui-v24 .vw-pagination{justify-content:safe center!important}
  .ui-v24 .vw-page-control{min-width:54px;padding-inline:9px}
  .ui-v24 .vw-page-number{min-width:44px;padding-inline:7px}
}
@media(max-width:360px){.ui-v24 .vw-pagination{justify-content:flex-start!important}}

/* VulnWatch 2.5 — Alert Intelligence & Vulnerability Prioritization
   Extends the canonical ui-v24 component contract without changing legacy business surfaces. */
.ui-v24 .vw25-operational-summary{margin:16px 0;display:grid;gap:14px;border-color:rgba(105,168,255,.28);background:linear-gradient(145deg,rgba(14,34,52,.96),rgba(9,23,35,.96))}
.ui-v24 .vw25-priority-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.ui-v24 .vw25-priority-head h2{margin:.2rem 0 .35rem}.ui-v24 .vw25-priority-head p{margin:0}
.ui-v24 .vw25-priority-score{flex:0 0 auto;min-width:92px;min-height:82px;padding:12px;border:1px solid rgba(105,168,255,.3);border-radius:14px;background:rgba(105,168,255,.08);display:grid;place-items:center;text-align:center}
.ui-v24 .vw25-priority-score small{color:var(--vw24-muted)}.ui-v24 .vw25-priority-score strong{font-size:30px;line-height:1;color:#e8f2ff;font-variant-numeric:tabular-nums}
.ui-v24 .vw25-change-timeline .content-card-body{min-width:0}.ui-v24 .vw25-timeline{display:grid;gap:10px}
.ui-v24 .vw25-timeline-item{display:grid;grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);gap:14px;padding:13px 14px;border:1px solid var(--vw24-line);border-inline-start:3px solid var(--vw24-line-strong);border-radius:12px;background:var(--vw24-surface-2)}
.ui-v24 .vw25-timeline-item.importance-critical{border-inline-start-color:var(--vw24-critical)}.ui-v24 .vw25-timeline-item.importance-high{border-inline-start-color:var(--vw24-warning)}.ui-v24 .vw25-timeline-item.importance-medium{border-inline-start-color:var(--vw24-accent)}
.ui-v24 .vw25-timeline-item time{font-size:12px;color:var(--vw24-muted)}.ui-v24 .vw25-timeline-item p{margin:3px 0 2px}
.ui-v24 .vw25-priority-list{display:grid;gap:12px;margin-top:14px}.ui-v24 .vw25-priority-card{display:grid;gap:12px;position:relative;overflow:hidden}
.ui-v24 .vw25-priority-card::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--vw24-line-strong)}
.ui-v24 .vw25-priority-card.priority-urgent::before{background:var(--vw24-critical)}.ui-v24 .vw25-priority-card.priority-high::before{background:var(--vw24-warning)}.ui-v24 .vw25-priority-card.priority-medium::before{background:var(--vw24-accent)}
.ui-v24 .vw25-priority-card h2{margin:.35rem 0 0;font-size:17px;overflow-wrap:anywhere}.ui-v24 .vw25-priority-reasons{margin-top:-2px}
.ui-v24 .vw25-work-form{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(190px,.8fr) minmax(240px,1.4fr) auto auto;gap:9px;align-items:center}
.ui-v24 .vw25-work-form :is(select,input){min-height:44px;width:100%;min-width:0}.ui-v24 .vw25-work-form .inline-check{display:flex;gap:7px;align-items:center;white-space:nowrap}.ui-v24 .vw25-work-form .inline-check input{width:18px;min-height:18px}
.ui-v24 .vw25-queue-filter{margin-top:14px}.ui-v24 .vw25-queue-filter .row{align-items:end}.ui-v24 .vw25-decision-kpis{margin-block:14px}.ui-v24 .vw25-watch-reasons{margin-top:7px}
.ui-v24 .vw25-watch-reasons .chip{font-size:11px}.ui-v24 .vw25-queue-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:1024px){.ui-v24 .vw25-work-form{grid-template-columns:1fr 1fr}.ui-v24 .vw25-work-form input[name="notes"]{grid-column:1/-1}.ui-v24 .vw25-queue-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:768px){.ui-v24 .vw25-priority-head{flex-direction:column}.ui-v24 .vw25-priority-score{width:100%;grid-template-columns:auto auto;justify-content:center;gap:10px;min-height:64px}.ui-v24 .vw25-timeline-item{grid-template-columns:1fr;gap:5px}.ui-v24 .vw25-work-form{grid-template-columns:1fr}.ui-v24 .vw25-work-form input[name="notes"]{grid-column:auto}.ui-v24 .vw25-queue-kpis{grid-template-columns:1fr 1fr!important}}
@media(max-width:430px){.ui-v24 .vw25-queue-kpis{grid-template-columns:1fr!important}.ui-v24 .vw25-priority-card{padding:13px}.ui-v24 .vw25-priority-score strong{font-size:26px}}
