/* RISIQ portal foundations. Auth pages and Vuexy navigation geometry stay independent. */
:root {
  --rq-canvas: #f3f6fa;
  --rq-surface: #ffffff;
  --rq-surface-2: #edf2f7;
  --rq-border: #d8e1eb;
  --rq-text: #172b42;
  --rq-muted: #50647b;
  --rq-action: #096b83;
  --rq-action-hover: #07566a;
  --rq-action-text: #ffffff;
  --rq-action-soft: #e7f3f7;
  --rq-focus: #087f9c;
  --rq-ai: #6441a4;
  --rq-ai-soft: #f2edfc;
  --rq-radius: 14px;
  --rq-shadow: 0 2px 8px #172b4206;
}
.dark-style {
  color-scheme: dark;
  --rq-canvas: #0c1421;
  --rq-surface: #141f30;
  --rq-surface-2: #1b2a3e;
  --rq-border: #34465e;
  --rq-text: #e6edf6;
  --rq-muted: #acbcd0;
  --rq-action: #77d3e4;
  --rq-action-hover: #a3e5ef;
  --rq-action-text: #102532;
  --rq-action-soft: #173746;
  --rq-focus: #77d3e4;
  --rq-ai: #d1b7ff;
  --rq-ai-soft: #302644;
  --rq-shadow: 0 2px 8px #00000018;
}
.rq-shell .layout-page { background: var(--rq-canvas) !important; }
.rq-shell #layout-navbar.layout-navbar { background: var(--rq-surface) !important; }
.rq-shell .content-wrapper { color: var(--rq-text); }
.rq-shell :is(.card, .admin-widget, .metric-card, .modal-content, .offcanvas, .dropdown-menu) {
  background-color: var(--rq-surface); color: var(--rq-text); border-color: var(--rq-border);
}
.rq-shell :is(.card-header, .card-footer) { background: transparent; border-color: var(--rq-border); }
.rq-shell :is(h1,h2,h3,h4,h5,h6,.card-title) { color: var(--rq-text); }
.rq-shell :is(.text-muted,.form-text,.text-secondary) { color: var(--rq-muted) !important; }
.rq-shell .text-dark { color: var(--rq-text) !important; }
.rq-shell .bg-light { background: var(--rq-surface-2) !important; }
.rq-shell .content-wrapper :is(p,li) { line-height: 1.6; }
.rq-shell .content-wrapper :is(.small,small) { line-height: 1.55; }
.rq-shell .content-wrapper a:not(.btn):not(.badge):not(.nav-link):not(.rq-metric):not(.rq-stat-link) { color: var(--rq-action); }
.rq-shell .content-wrapper .text-primary { color: var(--rq-action) !important; }
.rq-shell :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--rq-focus) !important; outline-offset: 3px;
}
.rq-shell .content-wrapper .btn { border-radius: 8px; min-height: 40px; font-weight: 600; }
.rq-shell .content-wrapper .btn-sm { min-height: 36px; }
html body .rq-shell .content-wrapper .btn-primary {
  background: var(--rq-action) !important; border-color: var(--rq-action) !important;
  color: var(--rq-action-text) !important; box-shadow: none;
}
html body .rq-shell .content-wrapper .btn-primary:hover {
  background: var(--rq-action-hover) !important; border-color: var(--rq-action-hover) !important;
}
html body .rq-shell .content-wrapper :is(.btn-outline-primary,.btn-outline-secondary) {
  color: var(--rq-action) !important; border-color: var(--rq-border) !important; background: transparent;
}
html body .rq-shell .content-wrapper :is(.btn-outline-primary,.btn-outline-secondary):hover {
  background: var(--rq-action-soft); border-color: var(--rq-action) !important;
}
.rq-shell :is(.form-control,.form-select,.input-group-text) {
  color: var(--rq-text); background-color: var(--rq-surface); border-color: var(--rq-border);
}
.rq-shell :is(.form-control,.form-select) { min-height: 42px; }
.rq-shell .form-control::placeholder { color: var(--rq-muted); opacity: 1; }
.rq-shell :is(.form-label,.col-form-label) { color: var(--rq-text); }
.rq-shell .table { color: var(--rq-text); --bs-table-bg: transparent; --bs-table-color: var(--rq-text); --bs-table-hover-bg: var(--rq-surface-2); --bs-table-hover-color: var(--rq-text); --bs-table-border-color: var(--rq-border); }
.rq-shell .table thead th { color: var(--rq-muted); background: var(--rq-surface-2); letter-spacing: .035em; font-size: .73rem; }
.rq-shell .table :is(td,th) { border-color: var(--rq-border); }
.rq-shell :is(.card-hover,.admin-widget,.system-card):hover { transform: none; }
.rq-shell .badge { line-height: 1.4; white-space: normal; text-align: start; }
.rq-shell .bg-label-primary { background: var(--rq-action-soft) !important; color: var(--rq-action) !important; }
html:not(.dark-style) .rq-shell .bg-label-danger { background:#fcebed !important; color:#a92239 !important; }
html:not(.dark-style) .rq-shell .bg-label-warning { background:#fff2da !important; color:#845300 !important; }
html:not(.dark-style) .rq-shell .bg-label-success { background:#e8f5ee !important; color:#17623c !important; }
html:not(.dark-style) .rq-shell .bg-label-info { background:#e8f1fc !important; color:#285b93 !important; }
.dark-style .rq-shell .bg-label-danger { background:#412536 !important; color:#ffb0bd !important; }
.dark-style .rq-shell .bg-label-warning { background:#3b3020 !important; color:#ffd38a !important; }
.dark-style .rq-shell .bg-label-success { background:#19392d !important; color:#8ce0b3 !important; }
.dark-style .rq-shell .bg-label-info { background:#20354e !important; color:#a4cdff !important; }
.rq-shell .bg-label-secondary { background:var(--rq-surface-2) !important; color:var(--rq-muted) !important; }
.rq-shell .menu-vertical .menu-header-text { color:#93a7bf; letter-spacing:.09em; font-size:.66rem; }
.rq-shell .menu-vertical .menu-inner .menu-link { border-radius:8px; }
.rq-shell .menu-vertical .menu-inner .menu-item.active > .menu-link { box-shadow:inset 3px 0 0 #77d3e4; }
.rq-shell .rq-breadcrumb { margin-bottom:1rem !important; }

/* Consistent role headers and compact metrics. */
.rq-portal-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:1.5rem; }
.rq-portal-heading h1 { font-size:clamp(1.65rem,2.2vw,2rem); font-weight:700; letter-spacing:-.035em; margin:.25rem 0 .5rem; }
.rq-portal-heading p { margin:0; max-width:65ch; color:var(--rq-muted); }
.rq-portal-heading .rq-eyebrow { color:var(--rq-action); font-size:.7rem; letter-spacing:.11em; font-weight:700; text-transform:uppercase; }
.rq-portal-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.rq-role-label { display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--rq-border); background:var(--rq-surface); color:var(--rq-muted); padding:.45rem .7rem; border-radius:7px; font-size:.78rem; font-weight:600; }
.rq-admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; padding:1rem 1.2rem; border:1px solid var(--rq-border); background:var(--rq-surface); border-radius:var(--rq-radius); margin-bottom:1.5rem; }
.rq-admin-actions strong { margin-inline-end:auto; }
.rq-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.5rem; }
.rq-stat-link { display:block; border:1px solid var(--rq-border); border-radius:var(--rq-radius); padding:1.2rem; background:var(--rq-surface); color:var(--rq-text); text-decoration:none; }
.rq-stat-link:hover { color:var(--rq-text); border-color:var(--rq-action); background:var(--rq-action-soft); }
.rq-stat-top { display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; color:var(--rq-muted); }
.rq-stat-link strong { display:block; font-size:2rem; font-variant-numeric:tabular-nums; letter-spacing:-.04em; line-height:1.3; margin:.6rem 0 .35rem; }
.rq-stat-link small { color:var(--rq-muted); font-size:.78rem; }
.rq-stat-link i { font-size:1.25rem; color:var(--rq-action); }
.rq-stat-link.rq-stat-risk i { color:#c74556; }
.dark-style .rq-stat-link.rq-stat-risk i { color:#ffb0bd; }
.rq-shell .dashboard-container { max-width:1560px; margin-inline:auto; }
.rq-shell .dashboard-container :is(.card,.admin-widget) { border:1px solid var(--rq-border); box-shadow:var(--rq-shadow); border-radius:var(--rq-radius); }
.rq-shell .simple-activity-item { border-color:var(--rq-border); padding-block:1rem; }
.rq-shell .simple-activity-item:hover { background:var(--rq-surface-2); }
.rq-shell .activity-details h6 { color:var(--rq-text); }
.rq-shell .dashboard-account-section { padding:1.15rem; background:var(--rq-surface); border:1px solid var(--rq-border); border-radius:var(--rq-radius); }
.rq-shell .dashboard-account-section summary { color:var(--rq-text); }
.rq-shell .dashboard-account-section .stats-card { background:var(--rq-surface-2); border:1px solid var(--rq-border); min-height:132px; box-shadow:none; }
.rq-shell .dashboard-account-section .stats-card::before { display:none; }
.rq-shell .dashboard-account-section .stats-card .text-white { color:var(--rq-text) !important; opacity:1; }

/* Evidence surfaces retain source, severity, caveats and existing controls. */
.rq-shell .rq-overview { color:var(--rq-text); --rq-ink:var(--rq-text); --rq-accent:var(--rq-action); }
.rq-shell .rq-overview-head h2 { font-size:1.35rem; letter-spacing:-.025em; }
.rq-shell :is(.rq-overview-card,.rq-metric,.rq-drawer) { background:var(--rq-surface); border-color:var(--rq-border); color:var(--rq-text); }
.rq-shell :is(.rq-overview-context,.rq-next-action,.rq-coverage-grid div,#assessmentInfo) { background:var(--rq-surface-2); color:var(--rq-text); }
.rq-shell .rq-metric { min-height:148px; }
.rq-shell .rq-metric:hover { background:var(--rq-action-soft); color:var(--rq-text); transform:none; border-color:var(--rq-action); }
.rq-shell :is(.rq-eyebrow,.rq-metric small,.rq-overview .text-muted,.rq-overview #assessmentInfo,.rq-overview .card-title) { color:var(--rq-muted) !important; }
.rq-shell .rq-overview-card h3 { font-size:1.08rem; }
.rq-shell .rq-action-list { padding-inline-start:1.25rem; }
.rq-shell .rq-action-item { padding-bottom:1rem; }
.rq-shell .rq-stat-card :is(h4.text-primary,.fw-bold.text-primary) { color:var(--rq-action) !important; }
.rq-shell .rq-scope-filter { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.rq-shell .rq-scope-filter form { flex:1; min-width:min(100%,250px); }
.rq-shell .rq-scope-filter select { flex:1; }
.rq-shell .onboarding-tabs { padding:.4rem; border:1px solid var(--rq-border); border-radius:12px; background:var(--rq-surface); }
.rq-shell .onboarding-tabs .nav-link { color:var(--rq-muted); border-radius:7px; font-size:.85rem; }
.rq-shell .onboarding-tabs .nav-link.active { background:var(--rq-action-soft); color:var(--rq-action); box-shadow:none; font-weight:600; }
.rq-shell .vendor-metric strong { font-variant-numeric:tabular-nums; letter-spacing:-.04em; color:var(--rq-text); }
.rq-shell .vendor-client { background:var(--rq-surface); border-color:var(--rq-border); }
.rq-shell .vendor-client-stats { background:var(--rq-surface-2); border-radius:8px; padding:.85rem; }
.rq-shell .vendor-scan-counts { border-color:var(--rq-border); }
.rq-shell .vendor-client-guide { font-size:.8rem; color:var(--rq-muted); margin-bottom:1rem; }
.rq-shell .vendor-client-guide summary { cursor:pointer; font-weight:600; padding:.5rem 0; }
.rq-shell .vendor-client-guide p { margin:.5rem 0; max-width:100ch; }

/* AI has its own identity, never a green success signal. */
.rq-shell .rq-ai-label { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .6rem; border-radius:6px; color:var(--rq-ai); background:var(--rq-ai-soft); font-size:.75rem; font-weight:650; }
.rq-shell .rq-ai-explanation { border:1px solid var(--rq-border); background:var(--rq-surface-2); padding:.8rem 1rem; border-radius:8px; margin-bottom:1rem; color:var(--rq-muted); font-size:.85rem; }
.rq-shell .rq-ai-explanation summary { cursor:pointer; color:var(--rq-text); font-weight:600; }
.rq-shell .rq-ai-explanation p { margin:.6rem 0 0; max-width:90ch; }
.rq-shell :is(.threat-lens-section,.threat-lens-panel,.threat-lens-synth-card,.threat-lens-ai-synthesis) { background:var(--rq-surface); color:var(--rq-text); border-color:var(--rq-border); }
.rq-shell :is(.threat-lens-panel-head,.threat-lens-kpi,.threat-lens-pattern,.threat-lens-roadmap-step) { background:var(--rq-surface-2); border-color:var(--rq-border); }
.rq-shell :is(.threat-lens-section-title,.threat-lens-panel-title,.threat-lens-block-title,.threat-lens-kpi-value,.threat-lens-ai-toggle) { color:var(--rq-text); }
.rq-shell :is(.threat-lens-section-sub,.threat-lens-panel-module,.threat-lens-kpi-label,.threat-lens-muted,.threat-lens-footnote) { color:var(--rq-muted); }
.rq-shell .threat-lens-ai-synthesis { border-inline-start:3px solid var(--rq-ai); }
.rq-shell .threat-lens-ai-toggle { background:transparent; min-height:44px; }
.rq-shell .threat-lens-ai-toggle .text-success { color:var(--rq-ai) !important; }
.rq-shell .apexcharts-tooltip { color:var(--rq-text); background:var(--rq-surface); border-color:var(--rq-border); }
.rq-shell .apexcharts-tooltip-title { background:var(--rq-surface-2); border-color:var(--rq-border); }
@media(max-width:991px) {
  .rq-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rq-portal-heading .rq-portal-actions { width:100%; }
}
@media(max-width:575px) {
  .rq-portal-heading { margin-bottom:1.2rem; }
  .rq-stat-grid { gap:.7rem; }
  .rq-stat-link { padding:1rem; }
  .rq-stat-link strong { font-size:1.7rem; }
  .rq-admin-actions { align-items:stretch; }
  .rq-admin-actions strong { flex-basis:100%; }
  .rq-shell .content-wrapper .btn { min-height:44px; }
  .rq-shell .vendor-client-stats { padding:.65rem; gap:.6rem; }
  .rq-shell .vendor-client-stats strong { font-size:1.25rem; }
  .rq-shell .onboarding-tabs { gap:.25rem !important; }
}
@media(prefers-reduced-motion:reduce) {
  .rq-shell *, .rq-shell *::before, .rq-shell *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
/* SVG chart labels follow a live theme switch without changing risk data. */
.rq-shell :is(.apexcharts-xaxis-texts-g,.apexcharts-yaxis-texts-g,.apexcharts-yaxis-title,.apexcharts-xaxis-title) text { fill:var(--rq-muted) !important; }
.rq-shell .apexcharts-gridline { stroke:var(--rq-border); }
.rq-shell .apexcharts-menu { color:var(--rq-text); background:var(--rq-surface); border-color:var(--rq-border); }
.rq-shell .apexcharts-menu-item:hover { background:var(--rq-surface-2); }
/* Override legacy theme rules that otherwise reintroduce purple or low-contrast layers. */
html body .rq-shell :is(.layout-page,.content-wrapper) { background:var(--rq-canvas) !important; }
html body .rq-shell #layout-navbar { background:var(--rq-surface) !important; }
html body .rq-shell .table thead th { background:var(--rq-surface-2) !important; color:var(--rq-muted) !important; }
html body .rq-shell :is(.alert-primary,.alert-info) { background:var(--rq-action-soft); color:var(--rq-action); border-color:var(--rq-border); }
html body .rq-shell .rq-scope-filter label { color:var(--rq-text); }
html body .rq-shell :is(.threat-lens-section,.threat-lens-panel,.threat-lens-panel-body) { background:var(--rq-surface) !important; border-color:var(--rq-border) !important; }
html body .rq-shell :is(.threat-lens-panel-head,.threat-lens-kpi,.threat-lens-reason) { background:var(--rq-surface-2) !important; color:var(--rq-text) !important; }
html body .rq-shell :is(.threat-lens-reason,.threat-lens-driver-text,.threat-lens-prose) { color:var(--rq-text); }
@media(max-width:575px) {
  html body .rq-shell .onboarding-tabs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.6rem; }
  html body .rq-shell .onboarding-tabs .nav-item { flex:0 0 auto; }
  html body .rq-shell .onboarding-tabs .nav-link { white-space:nowrap; }
}
@media(max-width:575px) {
  .rq-shell .rq-scope-filter select { flex-basis:100%; width:100%; }
  .rq-shell .rq-scope-filter .btn { width:100%; }
}
.rq-shell .dashboard-container > .row > .col-12 > .rq-portal-heading { margin-bottom:0; }
html:not(.dark-style) .rq-shell .text-success { color:#17623c !important; }
html:not(.dark-style) .rq-shell .text-warning { color:#845300 !important; }
html:not(.dark-style) .rq-shell .text-danger { color:#a92239 !important; }
.dark-style .rq-shell .text-success { color:#8ce0b3 !important; }
.dark-style .rq-shell .text-warning { color:#ffd38a !important; }
.dark-style .rq-shell .text-danger { color:#ffb0bd !important; }
html:not(.dark-style) .rq-shell .risk-high .posture-gauge-label { color:#995000 !important; }
.dark-style .rq-shell .risk-high .posture-gauge-label { color:#ffc078 !important; }
html body .rq-shell .posture-gauge-tier { color:var(--rq-muted) !important; }
.rq-shell .badge:is(.bg-warning,.bg-info).text-dark { color:#172b42 !important; }

/* The navbar is opaque; the theme blur repaints it on every scroll frame next to the fixed menu. */
html body .rq-shell #layout-navbar { -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
/* Elastic overscroll exposes the light page behind the dark fixed menu. */
html { overscroll-behavior-y:none; }
