/* Resolv brand tokens, Bootstrap 5 overrides. Include after bootstrap.min.css.
   Colours sampled from the Resolv brochure (cyan #00FFFF, teal ramp). Priority colours
   are an assumption derived from the framework heat map; confirm with the brand owner. */

/* Theming: the html element carries data-bs-theme="dark" (default) or "light". Layouts set it from the
   rv-theme cookie, js/site.js flips it. Components use the --rv-* tokens only, so a theme is just a token set.
   Dark = brochure look. Light = framework PDF look (white canvas, navy ink, teal accent, navy table headers).
   Fonts are identical in both themes. NB: --rv-cyan is the theme's accent (cyan on dark, teal on light). */
/* Aadhunik: heading face. Only a Regular (400) file exists, so bold headings are browser-simulated
   (font-synthesis), deliberately not relabelled as 700. Blinker stays on body text, nav, forms and tables. */
@font-face {
  font-family: 'Aadhunik';
  src: url('../fonts/aadhunik-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root,
[data-bs-theme="dark"] {
  color-scheme: dark;

  /* Brand */
  --rv-cyan: #00ffff;
  --rv-cyan-glow: rgba(0, 255, 255, .35);
  --rv-cyan-dim: rgba(0, 255, 255, .55);   /* secondary borders */
  --rv-teal-900: #054e57;                  /* table headers, filled chips */
  --rv-teal-700: #068b99;
  --rv-teal-500: #4caab6;
  --rv-teal-300: #8fccd3;
  --rv-teal-text: #8fccd3;                 /* teal used as text/icon colour */
  --rv-btn-hover: #8fccd3;

  /* Surfaces */
  --rv-bg: #000000;
  --rv-panel: #021719;
  --rv-panel-2: #072b2d;
  --rv-panel-grad: linear-gradient(180deg, #072b2d 0%, #02171a 55%, #010b0c 100%);
  --rv-border: rgba(0, 255, 255, .28);
  --rv-divider: rgba(255, 255, 255, .10);
  --rv-input-bg: rgba(0, 0, 0, .55);
  --rv-input-bg-focus: rgba(0, 0, 0, .75);
  --rv-input-disabled: rgba(255, 255, 255, .05);
  --rv-row-hover: rgba(0, 255, 255, .06);
  --rv-row-selected: rgba(0, 255, 255, .14);
  --rv-hover: rgba(0, 255, 255, .12);
  --rv-active: rgba(0, 255, 255, .2);
  --rv-callout-bg: rgba(0, 20, 22, .8);
  --rv-overlay: rgba(0, 0, 0, .75);

  /* Text */
  --rv-text: #ffffff;
  --rv-text-muted: rgba(255, 255, 255, .68);
  --rv-on-accent: #000000;                 /* text on a solid accent fill */
  --rv-link: #00ffff;
  --rv-link-hover: #ffffff;

  /* Risk priority (status only; always pair with text). *-text variants are for text/icons on the canvas. */
  --rv-p1: #ff3b4e;
  --rv-p2: #ff8a1f;
  --rv-p3: #ffd23f;
  --rv-p4: #7ed957;
  --rv-p5: #4caab6;
  --rv-p1-text: #ff3b4e;
  --rv-p2-text: #ff8a1f;
  --rv-p3-text: #ffd23f;
  --rv-p4-text: #7ed957;
  --rv-on-status: #000000;

  /* Charts (read by js/resolv-chart-defaults.js) */
  --rv-chart-text: rgba(255, 255, 255, .7);
  --rv-chart-grid: rgba(255, 255, 255, .10);
  --rv-chart-raw: #00ffff;
  --rv-chart-raw-fill: rgba(0, 255, 255, .18);
  --rv-chart-residual: #4caab6;
  --rv-chart-class: #068b99;

  /* Bootstrap 5 mapping */
  --bs-body-bg: var(--rv-bg);
  --bs-body-color: var(--rv-text);
  --rv-font-heading: 'Aadhunik', 'Blinker', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-font-family: 'Blinker', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-secondary-color: var(--rv-text-muted);
  --bs-border-color: var(--rv-border);
  --bs-link-color: var(--rv-link);
  --bs-link-hover-color: var(--rv-link-hover);
  --bs-primary: var(--rv-cyan);
  --bs-primary-rgb: 0, 255, 255;
  --bs-border-radius: .25rem;
  --bs-card-bg: var(--rv-panel);
}

[data-bs-theme="light"] {
  color-scheme: light;

  --rv-cyan: #057a87;                      /* AA on white; #068b99 is the fill teal */
  --rv-cyan-glow: rgba(6, 139, 153, .18);
  --rv-cyan-dim: rgba(5, 122, 135, .55);
  --rv-teal-900: #0c1e30;                  /* navy, as table headers in the framework */
  --rv-teal-700: #068b99;
  --rv-teal-500: #4caab6;
  --rv-teal-300: #a7d6db;
  --rv-teal-text: #057a87;
  --rv-btn-hover: #046571;

  --rv-bg: #ffffff;
  --rv-panel: #f2f6f8;
  --rv-panel-2: #e8eef2;
  --rv-panel-grad: linear-gradient(180deg, #f8fafb 0%, #f2f6f8 100%);
  --rv-border: #cfd8df;
  --rv-divider: #e2e9ee;
  --rv-input-bg: #ffffff;
  --rv-input-bg-focus: #ffffff;
  --rv-input-disabled: #eef2f5;
  --rv-row-hover: rgba(6, 139, 153, .07);
  --rv-row-selected: rgba(6, 139, 153, .15);
  --rv-hover: rgba(6, 139, 153, .10);
  --rv-active: rgba(6, 139, 153, .18);
  --rv-callout-bg: #0b1a2b;                /* framework keeps callouts dark on light pages */
  --rv-overlay: rgba(11, 26, 43, .78);

  --rv-text: #0b1a2b;
  --rv-text-muted: #5b6672;
  --rv-on-accent: #ffffff;
  --rv-link: #057a87;
  --rv-link-hover: #0b1a2b;

  --rv-p1: #e24b3b;
  --rv-p2: #ed7e3a;
  --rv-p3: #f2b740;
  --rv-p4: #a7c24a;
  --rv-p5: #5ba04c;
  --rv-p1-text: #c0392b;
  --rv-p2-text: #b4540f;
  --rv-p3-text: #8a6100;
  --rv-p4-text: #3f7a2e;
  --rv-on-status: #0b1a2b;

  --rv-chart-text: #5b6672;
  --rv-chart-grid: rgba(11, 26, 43, .10);
  --rv-chart-raw: #0b1a2b;
  --rv-chart-raw-fill: rgba(11, 26, 43, .12);
  --rv-chart-residual: #068b99;
  --rv-chart-class: #4caab6;

  --bs-primary-rgb: 5, 122, 135;
}

html { font-size: 16px; }   /* replaces the 14px/16px responsive sizing */
body { background: var(--rv-bg); font-family: var(--bs-body-font-family); letter-spacing: .01em; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.card-header, .modal-title, .offcanvas-title, .card-title, .ws-greeting, .ws-card-title, .cmp-subhead {
  font-family: var(--rv-font-heading); font-weight: 700; font-synthesis-weight: auto;
}
.rv-label, .form-label, th {
  text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 600;
}
:focus-visible { outline: 2px solid var(--rv-cyan); outline-offset: 2px; }

/* Buttons: one cyan primary per view */
.btn-primary {
  --bs-btn-color: var(--rv-on-accent); --bs-btn-bg: var(--rv-cyan); --bs-btn-border-color: var(--rv-cyan);
  --bs-btn-hover-color: var(--rv-on-accent); --bs-btn-hover-bg: var(--rv-btn-hover); --bs-btn-hover-border-color: var(--rv-btn-hover);
  --bs-btn-active-bg: var(--rv-teal-500); --bs-btn-active-border-color: var(--rv-teal-500);
  text-transform: uppercase; letter-spacing: .12em; font-weight: 700;
  box-shadow: 0 0 14px var(--rv-cyan-glow);
}
.btn-outline-primary {
  --bs-btn-color: var(--rv-cyan); --bs-btn-border-color: var(--rv-cyan-dim);
  --bs-btn-hover-bg: var(--rv-hover); --bs-btn-hover-color: var(--rv-text); --bs-btn-hover-border-color: var(--rv-cyan);
  text-transform: uppercase; letter-spacing: .12em; font-weight: 600;
}

/* Forms */
.form-control, .form-select {
  background: var(--rv-input-bg); color: var(--rv-text); border: 1px solid var(--rv-border);
}
.form-control:focus, .form-select:focus {
  background: var(--rv-input-bg-focus); color: var(--rv-text); border-color: var(--rv-cyan);
  box-shadow: 0 0 0 .2rem var(--rv-cyan-glow);
}
.form-control::placeholder { color: var(--rv-text-muted); opacity: .6; }

/* Shell, panels, callout */
.resolv-shell { background: var(--rv-bg); min-height: 100vh; }
.resolv-section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  border-bottom: 1px solid var(--rv-cyan); padding-bottom: .5rem; margin-bottom: 1.5rem;
}
.resolv-section-head .rv-label { color: var(--rv-cyan); font-size: .85rem; letter-spacing: .2em; }
.resolv-section-head img { height: 28px; }
.resolv-panel {
  background: var(--rv-panel-grad); border: 1px solid var(--rv-divider);
  border-top: 2px solid var(--rv-cyan-dim); border-radius: .25rem; padding: 1.25rem;
}
.resolv-callout {
  background: var(--rv-callout-bg); color: #fff; border: 1px solid var(--rv-cyan); border-radius: .25rem;
  padding: 1rem 1.25rem; box-shadow: 0 0 18px var(--rv-cyan-glow), inset 0 0 18px var(--rv-row-hover);
}

/* Table */
.resolv-table { --bs-table-bg: transparent; --bs-table-color: var(--rv-text); --bs-table-border-color: var(--rv-divider); }
.resolv-table thead th { background: var(--rv-teal-900); color: #fff; border-bottom: 1px solid var(--rv-cyan-dim); }
.resolv-table tbody tr:hover { background: var(--rv-row-hover); }

/* Priority badge */
.rv-priority { display: inline-block; min-width: 2.2rem; text-align: center; padding: .1rem .5rem;
  border-radius: .2rem; font-weight: 800; letter-spacing: .06em; color: var(--rv-on-status); }
.rv-priority.p1 { background: var(--rv-p1); } .rv-priority.p2 { background: var(--rv-p2); }
.rv-priority.p3 { background: var(--rv-p3); } .rv-priority.p4 { background: var(--rv-p4); }
.rv-priority.p5 { background: var(--rv-p5); }

/* ---- Bootstrap component overrides (theme-aware) ---- */
:root, [data-bs-theme] {
  --bs-body-bg-rgb: 0, 0, 0;
  --bs-secondary-bg: var(--rv-panel);
  --bs-tertiary-bg: var(--rv-panel-2);
  --bs-emphasis-color: var(--rv-text);
  --bs-heading-color: var(--rv-text);
  --bs-border-radius-lg: .25rem;
  --bs-border-radius-pill: .25rem;
  --rv-card-head-bg: rgba(5, 78, 87, .45);
  --rv-card-head-fg: #fff;
}
body { margin-bottom: 0; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { text-transform: uppercase; letter-spacing: .12em; }
h1 { font-size: 1.6rem; } h2 { font-size: 1.3rem; } h3 { font-size: 1.1rem; }
h4, h5, h6 { letter-spacing: .04em; }
.text-muted { color: var(--rv-text-muted) !important; }
.text-dark { color: var(--rv-text) !important; }
.text-primary { color: var(--rv-cyan) !important; }
.text-secondary { color: var(--rv-text-muted) !important; }
.text-body { color: var(--rv-text) !important; }
.bg-white, .bg-light { background: var(--rv-panel) !important; color: var(--rv-text) !important; }
.bg-dark { background: var(--rv-teal-900) !important; }
.bg-primary { background: var(--rv-teal-700) !important; color: #fff !important; }
.bg-secondary { background: var(--rv-teal-900) !important; color: #fff !important; }
.shadow, .shadow-sm, .box-shadow { box-shadow: none !important; }

.card, .modal-content, .dropdown-menu, .list-group-item, .accordion-item, .offcanvas {
  background: var(--rv-panel-grad); color: var(--rv-text); border: 1px solid var(--rv-divider);
  border-radius: .25rem;
}
.card { border-top: 2px solid var(--rv-cyan-dim); }
.card-header, .card-footer, .modal-header, .modal-footer {
  background: var(--rv-card-head-bg); border-color: var(--rv-divider); color: var(--rv-card-head-fg);
}
.card-header { text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 700; }
.dropdown-menu { background: var(--rv-panel); color: var(--rv-text); border-color: var(--rv-border); }
.dropdown-item { letter-spacing: .06em; color: var(--rv-text); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--rv-hover); color: var(--rv-text); }
.dropdown-item:active, .dropdown-item.active { background: var(--rv-active); color: var(--rv-text); }
.dropdown-item.disabled, .dropdown-item:disabled { color: var(--rv-text-muted); }
.dropdown-header { color: var(--rv-text-muted); }
.dropdown-divider { border-top-color: var(--rv-divider); }

/* Buttons: secondary and status buttons become outline-style on dark */
.btn { border-radius: .25rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; font-size: .85rem; }
.btn-secondary, .btn-light, .btn-dark {
  --bs-btn-color: var(--rv-text); --bs-btn-bg: transparent; --bs-btn-border-color: var(--rv-cyan-dim);
  --bs-btn-hover-color: var(--rv-text); --bs-btn-hover-bg: var(--rv-hover); --bs-btn-hover-border-color: var(--rv-cyan);
  --bs-btn-active-color: var(--rv-text); --bs-btn-active-bg: var(--rv-active); --bs-btn-active-border-color: var(--rv-cyan);
  --bs-btn-disabled-color: var(--rv-text-muted); --bs-btn-disabled-bg: transparent; --bs-btn-disabled-border-color: var(--rv-divider);
}
.btn-outline-primary, .btn-outline-secondary {
  background: transparent; color: var(--rv-text); border-color: var(--rv-cyan-dim);
}
.btn-outline-primary { color: var(--rv-cyan); }
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active, .btn-outline-primary.active,
.btn-check:checked + .btn-outline-primary,
.btn-outline-secondary:hover, .btn-outline-secondary:focus, .btn-outline-secondary:active, .btn-outline-secondary.active,
.btn-check:checked + .btn-outline-secondary { background: var(--rv-hover); color: var(--rv-text); border-color: var(--rv-cyan); }
.btn-outline-primary:disabled, .btn-outline-secondary:disabled { color: var(--rv-text-muted); border-color: var(--rv-divider); background: transparent; }
.btn-outline-secondary {
  --bs-btn-color: var(--rv-text); --bs-btn-border-color: var(--rv-cyan-dim);
  --bs-btn-hover-color: var(--rv-text); --bs-btn-hover-bg: var(--rv-hover); --bs-btn-hover-border-color: var(--rv-cyan);
  --bs-btn-active-bg: var(--rv-active); --bs-btn-active-border-color: var(--rv-cyan);
}
.btn-primary { background-color: var(--rv-cyan) !important; border-color: var(--rv-cyan) !important; color: var(--rv-on-accent) !important; }
.btn-primary:hover { background-color: var(--rv-btn-hover) !important; border-color: var(--rv-btn-hover) !important; }
.btn-link { color: var(--rv-cyan); text-transform: uppercase; letter-spacing: .1em; }
.btn-close { filter: invert(1); }
[data-bs-theme="light"] .btn-close { filter: none; }
/* Status buttons keep a meaning colour but render as outline on dark, with text labels */
.btn-success, .btn-warning, .btn-danger, .btn-info {
  --bs-btn-color: var(--rv-text); --bs-btn-bg: transparent;
  --bs-btn-hover-color: var(--rv-on-status); --bs-btn-active-color: var(--rv-on-status);
}
.btn-success { --bs-btn-border-color: var(--rv-p4); --bs-btn-hover-bg: var(--rv-p4); --bs-btn-hover-border-color: var(--rv-p4); --bs-btn-active-bg: var(--rv-p4); --bs-btn-active-border-color: var(--rv-p4); }
.btn-warning { --bs-btn-border-color: var(--rv-p2); --bs-btn-hover-bg: var(--rv-p2); --bs-btn-hover-border-color: var(--rv-p2); --bs-btn-active-bg: var(--rv-p2); --bs-btn-active-border-color: var(--rv-p2); }
.btn-danger { --bs-btn-border-color: var(--rv-p1); --bs-btn-hover-bg: var(--rv-p1); --bs-btn-hover-border-color: var(--rv-p1); --bs-btn-active-bg: var(--rv-p1); --bs-btn-active-border-color: var(--rv-p1); }
.btn-info { --bs-btn-border-color: var(--rv-cyan-dim); --bs-btn-hover-bg: var(--rv-teal-300); --bs-btn-hover-border-color: var(--rv-teal-300); }
.btn-outline-danger { --bs-btn-color: var(--rv-p1-text); --bs-btn-border-color: var(--rv-p1); --bs-btn-hover-bg: var(--rv-p1); --bs-btn-hover-border-color: var(--rv-p1); --bs-btn-hover-color: var(--rv-on-status); --bs-btn-active-bg: var(--rv-p1); --bs-btn-active-border-color: var(--rv-p1); --bs-btn-active-color: var(--rv-on-status); }
.btn-outline-warning { --bs-btn-color: var(--rv-p2-text); --bs-btn-border-color: var(--rv-p2); --bs-btn-hover-bg: var(--rv-p2); --bs-btn-hover-border-color: var(--rv-p2); --bs-btn-hover-color: var(--rv-on-status); --bs-btn-active-bg: var(--rv-p2); --bs-btn-active-border-color: var(--rv-p2); --bs-btn-active-color: var(--rv-on-status); }
.btn-outline-success { --bs-btn-color: var(--rv-p4-text); --bs-btn-border-color: var(--rv-p4); --bs-btn-hover-bg: var(--rv-p4); --bs-btn-hover-border-color: var(--rv-p4); --bs-btn-hover-color: var(--rv-on-status); --bs-btn-active-bg: var(--rv-p4); --bs-btn-active-border-color: var(--rv-p4); --bs-btn-active-color: var(--rv-on-status); }
.btn-risk-pastel-success, .btn-risk-pastel-warning, .btn-risk-pastel-danger { background: transparent; }
.btn-risk-pastel-success { color: var(--rv-p4-text); border-color: var(--rv-p4); }
.btn-risk-pastel-warning { color: var(--rv-p3-text); border-color: var(--rv-p3); }
.btn-risk-pastel-danger { color: var(--rv-p1-text); border-color: var(--rv-p1); }

/* Forms */
.form-label, .col-form-label, label { color: var(--rv-text); }
.form-control:disabled, .form-select:disabled, .form-control[readonly] { background: var(--rv-input-disabled); color: var(--rv-text-muted); }
.form-control-plaintext { color: var(--rv-text); }
.form-check-input { background-color: var(--rv-input-bg); border-color: var(--rv-cyan-dim); }
.form-check-input:checked { background-color: var(--rv-cyan); border-color: var(--rv-cyan); }
.form-text, .helper-text, .custom-label { color: var(--rv-text-muted) !important; }
.form-floating > label { color: var(--rv-text-muted); }
.input-group-text { background: var(--rv-teal-900); color: #fff; border-color: var(--rv-border); }
.form-control::file-selector-button { background: var(--rv-panel-2); color: var(--rv-text); border-color: var(--rv-border); }
.form-control:hover:not(:disabled):not([readonly])::file-selector-button { background: var(--rv-hover); }
.form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300ffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
option { background: var(--rv-bg); color: var(--rv-text); }
.text-danger, .invalid-feedback, .field-validation-error, .validation-summary-errors { color: var(--rv-p1-text) !important; }
.is-invalid, .input-validation-error { border-color: var(--rv-p1) !important; }

/* Tables */
.table {
  --bs-table-bg: transparent; --bs-table-color: var(--rv-text); --bs-table-border-color: var(--rv-divider);
  --bs-table-striped-bg: transparent; --bs-table-striped-color: var(--rv-text);
  --bs-table-hover-bg: var(--rv-row-hover); --bs-table-hover-color: var(--rv-text);
  --bs-table-active-bg: var(--rv-hover);
  /* Bootstrap 5.1 hard-codes .table { color: #212529 } and ignores --bs-table-color */
  color: var(--rv-text);
}
.table > thead > tr > th, .table-light, .table-dark, .table > :not(caption) > * > th.table-light {
  background: var(--rv-teal-900) !important; color: #fff !important; border-bottom: 1px solid var(--rv-cyan-dim);
}
.table-bordered > :not(caption) > * { border-color: var(--rv-divider); }
.table-dark { --bs-table-bg: var(--rv-teal-900); --bs-table-color: #fff; --bs-table-border-color: var(--rv-divider); color: #fff; }
.table-warning, .table-danger, .table-success, .table-info, .table-secondary, .table-active {
  --bs-table-bg: var(--rv-row-hover); --bs-table-color: var(--rv-text);
}

/* Alerts, badges */
.alert { border-radius: .25rem; background: var(--rv-panel); color: var(--rv-text); border: 1px solid var(--rv-cyan-dim); }
.alert-info { border-color: var(--rv-cyan); box-shadow: 0 0 14px var(--rv-cyan-glow); }
.alert .alert-link { color: var(--rv-link); text-decoration: underline; }
.alert-danger { border-color: var(--rv-p1); }
.alert-warning { border-color: var(--rv-p2); }
.alert-success { border-color: var(--rv-p4); }
.badge { border-radius: .2rem; letter-spacing: .06em; font-weight: 700; }
.badge.bg-success { background: var(--rv-p4) !important; color: var(--rv-on-status) !important; }
.badge.bg-danger { background: var(--rv-p1) !important; color: var(--rv-on-status) !important; }
.badge.bg-warning { background: var(--rv-p3) !important; color: var(--rv-on-status) !important; }
.bg-success { background: var(--rv-p4) !important; color: var(--rv-on-status) !important; }
.bg-danger { background: var(--rv-p1) !important; color: var(--rv-on-status) !important; }
.bg-warning { background: var(--rv-p3) !important; color: var(--rv-on-status) !important; }
.bg-info { background: var(--rv-teal-500) !important; color: var(--rv-on-status) !important; }

/* Navigation */
.nav-tabs { --bs-nav-tabs-border-color: var(--rv-divider); --bs-nav-tabs-link-active-bg: transparent;
  --bs-nav-tabs-link-active-color: var(--rv-cyan); --bs-nav-tabs-link-active-border-color: var(--rv-divider) var(--rv-divider) var(--rv-cyan);
  --bs-nav-tabs-link-hover-border-color: var(--rv-divider); border-bottom-color: var(--rv-divider); }
/* Bootstrap 5.1 has no --bs-nav-tabs-* variables: set the states directly */
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { border-color: var(--rv-divider); }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background: transparent; color: var(--rv-cyan); border-color: var(--rv-divider) var(--rv-divider) var(--rv-cyan); }
.nav-link.disabled { color: var(--rv-text-muted); }
.nav-tabs .nav-link, .nav-pills .nav-link { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; color: var(--rv-text); }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background: var(--rv-hover); color: var(--rv-cyan); border: 1px solid var(--rv-cyan-dim); }
.breadcrumb { --bs-breadcrumb-divider-color: var(--rv-text-muted); }
.breadcrumb-item, .breadcrumb a { color: var(--rv-text-muted) !important; text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; }
.breadcrumb-item.active { color: var(--rv-cyan) !important; font-weight: 700; }
.page-link { background: var(--rv-panel); border-color: var(--rv-border); color: var(--rv-cyan); }
.page-item.active .page-link { background: var(--rv-cyan); border-color: var(--rv-cyan); color: var(--rv-on-accent); }
.page-link:hover { background: var(--rv-hover); color: var(--rv-text); border-color: var(--rv-border); }
.page-item.disabled .page-link { background: var(--rv-panel); color: var(--rv-text-muted); border-color: var(--rv-divider); }
.progress { background: var(--rv-divider); border-radius: .2rem; }
.progress-bar { background: var(--rv-cyan); color: var(--rv-on-accent); }
hr { border-color: var(--rv-cyan-dim); opacity: .5; }
/* Bootstrap 5.1 hard-codes #dee2e6 on border utilities */
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--rv-divider) !important; }

/* Navbar (classic layout) */
/* The classic top bar stays dark (navy on light) in both themes, like the menu-ux sidebar */
header .navbar { background: var(--rv-chrome-bg); border-bottom: 1px solid var(--rv-chrome-accent); }
.nav-element { color: #fff !important; text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; }
.nav-element:hover { color: var(--rv-chrome-accent) !important; text-decoration: none; }
.navbar-toggler { border-color: var(--rv-cyan-dim); }
.navbar-toggler-icon { filter: invert(62%) sepia(99%) saturate(747%) hue-rotate(142deg) brightness(102%) contrast(101%); }
.navbar-text { color: rgba(255, 255, 255, .68) !important; }

/* Risk file image container */
.risk-file-image-container { background: var(--rv-panel); border: 1px solid var(--rv-divider); }

/* Brand wordmark in headers */
.rv-wordmark { height: 28px; width: auto; }

/* ---- Dark chrome (classic top bar, menu-ux sidebar) ---- */
:root, [data-bs-theme] { --rv-chrome-bg: #000000; --rv-chrome-accent: #00ffff; }
[data-bs-theme="light"] { --rv-chrome-bg: #0b1a2b; --rv-bg-rgb: 255, 255, 255; --bs-body-bg-rgb: 255, 255, 255; }
[data-bs-theme="light"] { --rv-card-head-bg: #0c1e30; --rv-card-head-fg: #fff; }
[data-bs-theme="light"] .modal-header, [data-bs-theme="light"] .modal-footer, [data-bs-theme="light"] .card-footer { background: var(--rv-panel-2); color: var(--rv-text); }
header .navbar .dropdown-menu { background: var(--rv-chrome-bg); border-color: var(--rv-chrome-accent); color: #fff; }
header .navbar .dropdown-item { color: #fff; }
header .navbar .dropdown-item:hover, header .navbar .dropdown-item:focus { background: rgba(0, 255, 255, .12); color: #fff; }

/* ---- Bootstrap 5.1 gaps: it hard-codes link, list-group, accordion and modal colours ---- */
a { color: var(--rv-link); }
.nav-link { color: var(--rv-link); }
.nav-link:hover, .nav-link:focus { color: var(--rv-link-hover); }
a:hover { color: var(--rv-link-hover); }
.list-group-item { color: var(--rv-text); }
.list-group-item-action { color: var(--rv-text); }
.list-group-item-action:hover, .list-group-item-action:focus { background: var(--rv-hover); color: var(--rv-text); }
.list-group-item.active { background: var(--rv-active); border-color: var(--rv-cyan); color: var(--rv-text); }
.list-group-item.disabled, .list-group-item:disabled { background: var(--rv-panel); color: var(--rv-text-muted); }
.accordion-button { background: var(--rv-panel); color: var(--rv-text); }
.accordion-button:not(.collapsed) { background: var(--rv-hover); color: var(--rv-text); box-shadow: inset 0 -1px 0 var(--rv-divider); }
.accordion-body { color: var(--rv-text); }
.modal-content { color: var(--rv-text); }
.popover, .tooltip-inner { color: var(--rv-text); }
.toast { background: var(--rv-panel); color: var(--rv-text); }
.toast-header { background: var(--rv-panel-2); color: var(--rv-text); }
.card-title, .card-text { color: inherit; }

/* ---- Theme toggle (menu-ux topbar and classic navbar) ---- */
.rv-theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem;
  border-radius: 50%; border: 1px solid var(--rv-border); background: transparent; color: var(--rv-cyan); cursor: pointer; padding: 0; }
.rv-theme-toggle:hover { background: var(--rv-hover); }
.rv-theme-toggle .rv-icon-light, [data-bs-theme="light"] .rv-theme-toggle .rv-icon-dark { display: none; }
[data-bs-theme="light"] .rv-theme-toggle .rv-icon-light { display: inline; }
header .navbar .rv-theme-toggle { color: #fff; border-color: rgba(0, 255, 255, .55); margin-right: .75rem; }
