/* ============================================================================
   1system.cloud — Blue-neon dark theme
   Design language sampled from the qquant Quant Desktop (business24.ai brand).
   Mirrors a80sop.com. Always dark. Overrides Bootstrap 5.3 dark mode with a
   custom neon palette. Accent #1ec8f5 sampled from the business24.ai logo.
   ========================================================================== */

:root,
[data-bs-theme="dark"] {
  /* core palette */
  --bg:#03060b;
  --panel:#070d16;
  --panel2:#050a11;
  --grid:#0d1c2b;
  --ink:#d6ecff;
  --dim:#5d7e98;
  --line:#0f2740;
  --blue:#1ec8f5;
  --blue-d:#0a8fc4;
  --cyan:#5fe6ff;
  --green:#2dffa6;
  --red:#ff476b;
  --amber:#ffb020;
  --purple:#9b7cff;

  /* map our palette onto Bootstrap's theme variables */
  --bs-body-bg:#03060b;
  --bs-body-color:#d6ecff;
  --bs-body-font-family:'JetBrains Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
  --bs-emphasis-color:#ffffff;
  --bs-secondary-color:rgba(214,236,255,.65);
  --bs-tertiary-color:rgba(214,236,255,.45);
  --bs-border-color:#0f2740;
  --bs-border-color-translucent:rgba(30,200,245,.18);

  --bs-primary:#1ec8f5;
  --bs-primary-rgb:30,200,245;
  --bs-link-color:#5fe6ff;
  --bs-link-color-rgb:95,230,255;
  --bs-link-hover-color:#a9f2ff;
  --bs-link-hover-color-rgb:169,242,255;

  --bs-success:#2dffa6; --bs-success-rgb:45,255,166;
  --bs-danger:#ff476b;  --bs-danger-rgb:255,71,107;
  --bs-warning:#ffb020; --bs-warning-rgb:255,176,32;
  --bs-info:#5fe6ff;    --bs-info-rgb:95,230,255;

  --bs-dark-rgb:7,13,22;
  --bs-light-rgb:214,236,255;

  --bs-card-bg:#070d16;
  --bs-card-border-color:#0f2740;

  --bs-tertiary-bg:#070d16;
  --bs-secondary-bg:#0a1320;
  --bs-heading-color:#d6ecff;
}

/* ===================== base ===================== */
html, body {
  background:var(--bg);
  color:var(--ink);
}
body {
  font-family:'JetBrains Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
  font-variant-numeric:tabular-nums;
  letter-spacing:.015em;
  font-size:0.9rem;
  min-height:100vh;
  position:relative;
}

/* subtle scanline + radial blue vignette, mirroring the qquant dashboard */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.14) 2px 3px);
  mix-blend-mode:multiply;opacity:.45;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 80% at 50% -10%,rgba(30,200,245,.10),transparent 60%);
}
/* keep real content above the overlays */
body > *{position:relative;z-index:2}

h1,h2,h3,h4,h5,h6{color:var(--ink);letter-spacing:.02em}

a{color:var(--cyan);text-decoration:none}
a:hover{color:#a9f2ff}

::selection{background:rgba(30,200,245,.30);color:#fff}

/* scrollbars */
*{scrollbar-color:#13314a var(--bg)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg)}
*::-webkit-scrollbar-thumb{background:#13314a;border-radius:6px;border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:#1d4a6e}

/* ===================== top navbar ===================== */
.navbar.bg-dark,
.navbar{
  background:linear-gradient(180deg,#06121f,#040a12) !important;
  border-bottom:1px solid var(--line);
  position:relative;
}
.navbar::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.6;
}
.navbar-brand{
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--blue) !important;
  text-shadow:0 0 10px rgba(30,200,245,.45);
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.navbar-brand .brand-logo{
  width:26px;height:26px;border-radius:6px;
  filter:drop-shadow(0 0 6px rgba(30,200,245,.85));
}
.navbar-dark .navbar-nav .nav-link,
.navbar .navbar-nav .nav-link{
  color:var(--dim);
  text-transform:uppercase;
  font-size:.78rem;
  letter-spacing:.12em;
  transition:.15s;
  border-radius:4px;
  padding-left:.7rem;padding-right:.7rem;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:hover{
  color:var(--ink);
  background:rgba(30,200,245,.06);
}
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .show > .nav-link,
.navbar .navbar-nav .nav-link.active{
  color:var(--blue);
  text-shadow:0 0 8px rgba(30,200,245,.4);
}
.navbar-toggler{border-color:var(--line)}
.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(30,200,245,.25)}

/* dropdowns */
.dropdown-menu{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--line);
  box-shadow:0 8px 28px rgba(0,0,0,.6),0 0 0 1px rgba(30,200,245,.08);
  --bs-dropdown-link-color:var(--ink);
  --bs-dropdown-link-hover-color:var(--blue);
  --bs-dropdown-link-hover-bg:rgba(30,200,245,.10);
  --bs-dropdown-link-active-color:#03060b;
  --bs-dropdown-link-active-bg:var(--blue);
}
.dropdown-item{font-size:.82rem;letter-spacing:.04em}
.dropdown-divider{border-color:var(--line)}

/* ===================== panels / cards ===================== */
.card{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--line);
  border-radius:6px;
  position:relative;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(255,255,255,.02) inset, 0 6px 22px rgba(0,0,0,.35);
}
.card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(30,200,245,.5),transparent);opacity:.55;
}
.card-title{
  color:var(--blue);
  letter-spacing:.06em;
  text-shadow:0 0 6px rgba(30,200,245,.35);
}
.card-text{color:var(--ink)}
.text-muted,.text-body-secondary{color:var(--dim) !important}

/* coloured cards (dashboard tiles) — keep neon, not flat bootstrap fills */
.text-bg-primary{
  background:linear-gradient(180deg,rgba(30,200,245,.14),rgba(30,200,245,.04)) !important;
  color:var(--ink) !important;border:1px solid var(--blue-d);
}
.text-bg-primary .card-title{color:var(--blue)}
.text-bg-warning{
  background:linear-gradient(180deg,rgba(255,176,32,.14),rgba(255,176,32,.04)) !important;
  color:var(--ink) !important;border:1px solid rgba(255,176,32,.4);
}
.text-bg-warning .card-title{color:var(--amber)}
.text-bg-success{
  background:linear-gradient(180deg,rgba(45,255,166,.13),rgba(45,255,166,.04)) !important;
  color:var(--ink) !important;border:1px solid rgba(45,255,166,.35);
}
.text-bg-success .card-title{color:var(--green)}
.text-bg-danger{
  background:linear-gradient(180deg,rgba(255,71,107,.14),rgba(255,71,107,.04)) !important;
  color:var(--ink) !important;border:1px solid rgba(255,71,107,.4);
}
.text-bg-danger .card-title{color:var(--red)}

/* ===================== buttons ===================== */
.btn{letter-spacing:.06em;font-weight:600}
.btn-primary{
  --bs-btn-color:#03060b;
  --bs-btn-bg:var(--blue);
  --bs-btn-border-color:var(--blue);
  --bs-btn-hover-color:#03060b;
  --bs-btn-hover-bg:var(--cyan);
  --bs-btn-hover-border-color:var(--cyan);
  --bs-btn-active-bg:var(--blue-d);
  --bs-btn-active-border-color:var(--blue-d);
  --bs-btn-disabled-color:#03060b;
  --bs-btn-disabled-bg:var(--blue);
  box-shadow:0 0 12px rgba(30,200,245,.35);
}
.btn-secondary{
  --bs-btn-color:var(--ink);
  --bs-btn-bg:#0e2034;
  --bs-btn-border-color:#163047;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#163047;
  --bs-btn-hover-border-color:#1d4a6e;
  --bs-btn-active-bg:#0a1626;
}
.btn-outline-primary{
  --bs-btn-color:var(--blue);
  --bs-btn-border-color:var(--blue-d);
  --bs-btn-hover-color:#03060b;
  --bs-btn-hover-bg:var(--blue);
  --bs-btn-hover-border-color:var(--blue);
  --bs-btn-active-bg:var(--blue);
}
.btn-success{--bs-btn-color:#03100a;--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:#5dffbd;--bs-btn-hover-border-color:#5dffbd;--bs-btn-hover-color:#03100a}
.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:var(--red);--bs-btn-border-color:var(--red);--bs-btn-hover-bg:#ff6b88;--bs-btn-hover-border-color:#ff6b88}
.btn-warning{--bs-btn-color:#1a1200;--bs-btn-bg:var(--amber);--bs-btn-border-color:var(--amber);--bs-btn-hover-bg:#ffc24d;--bs-btn-hover-border-color:#ffc24d}
.btn:focus,.btn:focus-visible{box-shadow:0 0 0 .2rem rgba(30,200,245,.30)}

/* ===================== forms ===================== */
.form-label{color:var(--dim);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.form-control,.form-select{
  background:#050c15;
  border:1px solid var(--line);
  color:var(--ink);
}
.form-control:focus,.form-select:focus{
  background:#06101c;
  border-color:var(--blue-d);
  color:var(--ink);
  box-shadow:0 0 0 .2rem rgba(30,200,245,.18);
}
.form-control::placeholder{color:#3f5b72}
.form-control:disabled,.form-select:disabled{background:#08111c;color:var(--dim)}
.input-group-text{background:#0a1320;border:1px solid var(--line);color:var(--dim)}
.form-check-input{background-color:#050c15;border-color:var(--line)}
.form-check-input:checked{background-color:var(--blue);border-color:var(--blue)}
.form-check-input:focus{box-shadow:0 0 0 .2rem rgba(30,200,245,.20)}

/* ===================== tables ===================== */
.table{
  --bs-table-bg:transparent;
  --bs-table-color:var(--ink);
  --bs-table-border-color:var(--line);
  --bs-table-striped-bg:rgba(30,200,245,.035);
  --bs-table-striped-color:var(--ink);
  --bs-table-hover-bg:rgba(30,200,245,.08);
  --bs-table-hover-color:#fff;
  color:var(--ink);
}
.table th{
  white-space:nowrap;
  color:var(--blue);
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.1em;
  font-weight:600;
  border-bottom:1px solid var(--line) !important;
}
.table td{vertical-align:middle;border-color:var(--line)}
.table > :not(caption) > * > *{background-color:transparent}
.table-dark{--bs-table-bg:#070d16}

/* ===================== badges / alerts ===================== */
.badge.text-bg-primary,.badge.bg-primary{background:var(--blue) !important;color:#03060b}
.badge.bg-success{background:var(--green) !important;color:#03100a}
.badge.bg-danger{background:var(--red) !important;color:#fff}
.badge.bg-warning{background:var(--amber) !important;color:#1a1200}
.badge.bg-secondary{background:#163047 !important;color:var(--ink)}

.alert{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.alert-success{border-color:rgba(45,255,166,.4);background:rgba(45,255,166,.08);color:#9affd4}
.alert-danger{border-color:rgba(255,71,107,.45);background:rgba(255,71,107,.09);color:#ff9bb0}
.alert-warning{border-color:rgba(255,176,32,.45);background:rgba(255,176,32,.09);color:#ffd486}
.alert-info{border-color:rgba(95,230,255,.4);background:rgba(95,230,255,.08);color:#bff4ff}

/* ===================== modal ===================== */
.modal-content{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--line);
  box-shadow:0 18px 60px rgba(0,0,0,.7),0 0 0 1px rgba(30,200,245,.08);
}
.modal-header,.modal-footer{border-color:var(--line)}
.modal-title{color:var(--blue);letter-spacing:.04em}
.btn-close{filter:invert(1) grayscale(1) brightness(1.6)}

/* ===================== DataTables (bootstrap5 skin) ===================== */
.dataTables_wrapper{color:var(--ink)}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate{color:var(--dim) !important}
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
  background:#050c15;border:1px solid var(--line);color:var(--ink)
}
.dataTables_wrapper .dataTables_paginate .paginate_button{color:var(--dim) !important}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{
  background:var(--blue) !important;border-color:var(--blue) !important;color:#03060b !important
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{
  background:rgba(30,200,245,.12) !important;border-color:var(--blue-d) !important;color:var(--ink) !important
}
table.dataTable tbody tr{background:transparent}
table.dataTable tbody tr:hover{background:rgba(30,200,245,.07)}
div.dataTables_wrapper div.dataTables_processing{top:50%;background:var(--panel);border:1px solid var(--line)}

/* DataTables Buttons */
.dt-button.btn,div.dt-buttons .btn{background:#0e2034;border:1px solid var(--line);color:var(--ink)}
.dt-button.btn:hover{background:rgba(30,200,245,.12);border-color:var(--blue-d)}

/* ===================== misc bootstrap surfaces ===================== */
hr{border-color:var(--line);opacity:.6}
.border{border-color:var(--line) !important}
.bg-light{background:#0a1320 !important;color:var(--ink) !important}
.bg-white{background:var(--panel) !important;color:var(--ink) !important}
.list-group-item{background:var(--panel);border-color:var(--line);color:var(--ink)}
.page-link{background:#0a1320;border-color:var(--line);color:var(--cyan)}
.page-item.active .page-link{background:var(--blue);border-color:var(--blue);color:#03060b}

/* login card flourish */
.card.shadow{box-shadow:0 18px 50px rgba(0,0,0,.6),0 0 30px rgba(30,200,245,.06) !important}
