/* night-vision.css — Dark + teal accent (OW Cloud style)
   -------------------------------------------------------
   Notes:
   • Everything is scoped under body.night-vision to avoid leaking into light theme.
   • Adjust the tokens below to tweak the palette globally.
*/

/* ---------- Theme tokens ---------- */
:root {
  --nv-bg:        #121212;   /* page background */
  --nv-surface:   #1d1f21;   /* panels / cards */
  --nv-surface-2: #232527;   /* alt surface (rows/hover) */
  --nv-border:    #2e3133;   /* borders */
  --nv-text:      #cfd6dc;   /* primary text */
  --nv-text-soft: #9aa6b2;   /* secondary text */
  --nv-accent:    #20d4c2;   /* teal accent */
  --nv-accent-2:  #17b6a4;   /* darker teal */
  --nv-badge:     #303437;   /* pill/badge bg */
  --nv-hover:     #2a2d30;   /* hover row/button bg */
  --nv-focus:     rgba(32,212,194,.55); /* focus ring */
}

/* ---------- Base ---------- */
body.night-vision {
  background: var(--nv-bg) !important;
  color: var(--nv-text) !important;
}

body.night-vision a {
  color: var(--nv-accent) !important;
}
body.night-vision a:hover,
body.night-vision a:focus {
  color: #7cf2e6 !important;
  text-decoration: none;
}

/* ---------- Navbar ---------- */
body.night-vision .navbar-inverse {
  background: #000;
  border-color: #000;
  color: var(--nv-text);
}
body.night-vision .navbar-inverse .navbar-brand,
body.night-vision .navbar-inverse .navbar-nav > li > a,
body.night-vision .navbar-inverse .navbar-nav > li > a > .glyphicon,
body.night-vision .navbar-inverse .navbar-nav > li > a > .fa {
  color: var(--nv-accent) !important;
}
body.night-vision .navbar-inverse .navbar-nav > li > a:hover,
body.night-vision .navbar-inverse .navbar-nav > li.active > a {
  background: #0c0c0c;
  color: var(--nv-accent) !important;
}
body.night-vision .navbar-inverse .navbar-toggle {
  border-color: var(--nv-accent-2);
}
body.night-vision .navbar-inverse .navbar-toggle .icon-bar {
  background: var(--nv-accent-2);
}

/* ---------- Dropdowns ---------- */
body.night-vision .dropdown-menu {
  background: #0f1112;
  border: 1px solid #0f1112;
  box-shadow: 0 8px 24px rgba(0,0,0,.6);
}
body.night-vision .dropdown-menu > li > a {
  color: var(--nv-text);
}
body.night-vision .dropdown-menu > li > a:hover,
body.night-vision .dropdown-menu > li > a:focus,
body.night-vision .dropdown-menu > .active > a {
  background: var(--nv-surface);
  color: var(--nv-accent);
}
body.night-vision .dropdown-menu .divider {
  border-color: var(--nv-border);
}

/* ---------- Panels / Cards / Modals / Tables ---------- */
body.night-vision .panel,
body.night-vision .modal-content,
body.night-vision .table,
body.night-vision .card,
body.night-vision .list-group-item {
  background: var(--nv-surface) !important;
  color: var(--nv-text) !important;
  border-color: var(--nv-border) !important;
}
body.night-vision .panel-heading,
body.night-vision .modal-header,
body.night-vision .table > thead > tr > th {
  background: #17191a !important;
  color: var(--nv-text) !important;
  border-color: var(--nv-border) !important;
}
body.night-vision .panel-footer {
  background: #17191a !important;
  color: var(--nv-text-soft) !important;
  border-color: var(--nv-border) !important;
}

/* ---------- Pills / Badges ---------- */
body.night-vision .label,
body.night-vision .badge,
body.night-vision .btn .badge {
  background: var(--nv-badge);
  color: #e8ecef;
  border: 1px solid var(--nv-border);
}

/* ---------- DataTables ---------- */
body.night-vision .dataTables_wrapper { color: var(--nv-text); }
body.night-vision .dataTables_wrapper th {
  background: #17191a;
  border-bottom: 2px solid var(--nv-border);
}
body.night-vision .dataTables_wrapper td {
  background: var(--nv-surface);
  border-bottom: 1px solid var(--nv-border);
}
body.night-vision .dataTables_wrapper tr:hover td,
body.night-vision .dataTables_wrapper th:hover {
  background: var(--nv-hover) !important;
}
body.night-vision .dataTables_wrapper tr.selected td,
body.night-vision .dataTables_wrapper th.selected,
body.night-vision .dataTables_wrapper td.selected {
  background: var(--nv-surface-2) !important;
}
body.night-vision .dataTables_wrapper th.sorting,
body.night-vision .dataTables_wrapper th.sorting_asc,
body.night-vision .dataTables_wrapper th.sorting_desc,
body.night-vision .dataTables_wrapper td.sorting_1,
body.night-vision .dataTables_wrapper td.sorting_2,
body.night-vision .dataTables_wrapper td.sorting_3 {
  background: var(--nv-surface-2) !important;
  border-color: var(--nv-border) !important;
}
body.night-vision .dataTables_wrapper th.sorting:after,
body.night-vision .dataTables_wrapper th.sorting_asc:after,
body.night-vision .dataTables_wrapper th.sorting_desc:after {
  color: var(--nv-accent) !important;
}
body.night-vision .dataTables_paginate .paginate_button {
  background: var(--nv-surface-2);
  color: var(--nv-text) !important;
  border: 1px solid var(--nv-border);
}
body.night-vision .dataTables_paginate .paginate_button.current {
  background: var(--nv-hover);
  border-color: var(--nv-accent-2);
}
body.night-vision .dataTables_paginate .paginate_button:hover {
  background: var(--nv-hover) !important;
  color: var(--nv-accent) !important;
}
body.night-vision .dataTables_filter input,
body.night-vision .dataTables_length select {
  background: #151718;
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
}

/* ---------- Inputs ---------- */
body.night-vision input,
body.night-vision select,
body.night-vision textarea,
body.night-vision .bootstrap-select .btn {
  background: #151718;
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
  border-radius: 4px;
}
body.night-vision input:focus,
body.night-vision select:focus,
body.night-vision textarea:focus {
  border-color: var(--nv-accent-2);
  box-shadow: 0 0 0 3px var(--nv-focus);
  outline: none;
}

/* ---------- Buttons ---------- */
body.night-vision .btn {
  background: var(--nv-surface-2);
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
}
body.night-vision .btn:hover,
body.night-vision .btn:focus {
  background: var(--nv-hover);
  border-color: var(--nv-accent-2);
  color: var(--nv-accent);
}

/* =======================================================================
   Terms page overrides (teal OW-Cloud palette)
   ======================================================================= */
body.night-vision .terms-card {
  background: var(--nv-surface);
  box-shadow: 0 8px 24px rgba(0,0,0,.6);
  border: 1px solid var(--nv-border);
  color: var(--nv-text);
}
body.night-vision .terms-header {
  background: linear-gradient(135deg, #111, var(--nv-surface));
  border-bottom: 1px solid var(--nv-border);
}
body.night-vision .terms-header h1 { color: var(--nv-accent); }
body.night-vision .terms-meta       { color: var(--nv-text-soft); }
body.night-vision .terms-body       { background: transparent; }

body.night-vision .prose { color: var(--nv-text); }
body.night-vision .prose h2,
body.night-vision .prose h3 { color: var(--nv-accent); }
body.night-vision .prose a  { color: var(--nv-accent); }
body.night-vision .prose a:hover { color: #7cf2e6; }

/* TOC panel */
body.night-vision .toc {
  background: var(--nv-surface-2);
  border-color: var(--nv-border);
  box-shadow: 0 6px 16px rgba(0,0,0,.7);
}
body.night-vision .toc h6 { color: var(--nv-text-soft); }
body.night-vision .toc a  { color: var(--nv-text); }
body.night-vision .toc a:hover,
body.night-vision .toc a.active {
  background: var(--nv-hover);
  color: var(--nv-accent);
}

/* Terms page buttons */
body.night-vision .btn.btn-default {
  background: var(--nv-surface-2);
  border-color: var(--nv-border);
  color: var(--nv-text);
}
body.night-vision .btn.btn-default:hover {
  background: var(--nv-hover);
  border-color: var(--nv-accent-2);
  color: var(--nv-accent);
}
body.night-vision .btn.btn-primary {
  background: var(--nv-surface-2);
  border-color: var(--nv-border);
  color: var(--nv-accent);
}
body.night-vision .btn.btn-primary:hover {
  background: var(--nv-hover);
  border-color: var(--nv-accent-2);
  color: #7cf2e6;
}

/* Back-to-top link */
body.night-vision #backToTop { color: var(--nv-accent); }
body.night-vision #backToTop:hover { color: #7cf2e6; }

/* =======================================================================
   Highcharts overrides (so charts obey night-vision palette)
   ======================================================================= */
body.night-vision .highcharts-background {
  fill: var(--nv-surface) !important;
}
body.night-vision .highcharts-title,
body.night-vision .highcharts-subtitle,
body.night-vision .highcharts-axis-labels text,
body.night-vision .highcharts-legend-item text {
  fill: var(--nv-text) !important;
}
body.night-vision .highcharts-grid-line {
  stroke: var(--nv-border) !important;
}
body.night-vision .highcharts-tooltip text {
  fill: var(--nv-text) !important;
}
body.night-vision .highcharts-tooltip-box {
  fill: var(--nv-surface-2) !important;
  stroke: var(--nv-border) !important;
}

/* =======================================================================
   Alerts (Bootstrap)
   ======================================================================= */
body.night-vision .alert {
  background-color: var(--nv-surface-2);
  border: 1px solid var(--nv-border);
  color: var(--nv-text);
}
body.night-vision .alert-warning {
  background-color: #332d00;  /* dark amber */
  border-color: #665c00;
  color: #ffd666;             /* soft yellow text */
}
body.night-vision .alert-info {
  background-color: #002b33;  /* dark teal */
  border-color: #004d59;
  color: var(--nv-accent);
}
body.night-vision .alert-success {
  background-color: #0d3326;
  border-color: #14563e;
  color: #5ff2b1;
}
body.night-vision .alert-danger {
  background-color: #331010;
  border-color: #661a1a;
  color: #ff6666;
}

/* Tabs (nav-tabs / nav-pills) */
body.night-vision .nav-tabs > li.active > a,
body.night-vision .nav-tabs > li.active > a:hover,
body.night-vision .nav-tabs > li.active > a:focus,
body.night-vision .nav-pills > li.active > a,
body.night-vision .nav-pills > li.active > a:hover,
body.night-vision .nav-pills > li.active > a:focus {
  background-color: var(--nv-hover);   /* active tab background */
  border-color: var(--nv-accent-2) var(--nv-accent-2) transparent;
  color: var(--nv-accent) !important; /* active tab text */
}

/* Inactive tab links */
body.night-vision .nav-tabs > li > a,
body.night-vision .nav-pills > li > a {
  background-color: var(--nv-surface-2);
  border: 1px solid var(--nv-border);
  color: var(--nv-text);
}

body.night-vision .nav-tabs > li > a:hover,
body.night-vision .nav-pills > li > a:hover {
  background-color: var(--nv-hover);
  color: var(--nv-accent);
}