@charset "UTF-8";

/*
  HEXNET CMS (Enterprise Structured, Dark Rail, Disciplined Blue)
  Full CSS replacement
  Fixes included:
  - Remove underlines in header nav and sidebar nav
  - Hide submenu bullets/markers that bleed behind open parent item
  - Improve open parent stacking so nothing displays behind it
  - Keep Veuxy structure intact
*/

/* =========================
   1) Design Tokens
========================= */
:root {
  /* Brand */
  --hx-blue: #007FFD;

  /* Ticker */
  --hx-ticker-blue: #005BB5;

  /* Canvas and surfaces */
  --hx-bg: #f6f7f8;
  --hx-surface: #ffffff;
  --hx-surface-2: #fbfbfc;

  /* Borders */
  --hx-border: rgba(17, 17, 17, 0.12);
  --hx-border-strong: rgba(17, 17, 17, 0.18);

  /* Typography */
  --hx-text: #111111;
  --hx-text-2: rgba(17, 17, 17, 0.74);
  --hx-text-3: rgba(17, 17, 17, 0.56);

  /* Dark rail */
  --hx-rail: #121212;
  --hx-rail-2: #161616;
  --hx-rail-text: rgba(255, 255, 255, 0.72);
  --hx-rail-text-strong: rgba(255, 255, 255, 0.92);

  /* Shape */
  --hx-radius-sm: 8px;
  --hx-radius-md: 10px;

  /* Depth */
  --hx-shadow-none: none;
  --hx-shadow-float: 0 18px 50px rgba(17, 17, 17, 0.14);

  /* Interaction */
  --hx-focus-ring: 0 0 0 3px rgba(0, 127, 253, 0.18);
  --hx-hover: rgba(17, 17, 17, 0.04);
  --hx-selected: rgba(0, 127, 253, 0.10);
}

/* =========================
   2) Global Baseline
========================= */

html {
  overflow-y: scroll;
  scrollbar-gutter: stable both-edges;
}

body {
  background: var(--hx-bg) !important;
  color: var(--hx-text) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--hx-blue);
  text-decoration: none;
}

/* Keep underline behavior in main content, but we will explicitly disable it
   in header and sidebar below */
a:hover,
a:focus {
  color: var(--hx-blue);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

/* Buttons should never display link underline behavior */
.btn,
.btn:hover,
.btn:focus,
.btn:active,
a.btn,
a.btn:hover,
a.btn:focus,
a.btn:active {
  text-decoration: none !important;
}

/* Brand logo sizing */
.AdminLogo {
  max-height: 40px;
  max-width: 182px;
  margin-top: 15px;
}

/* Utility classes retained */
.MT22 { margin-top: 22px; }
.ML10 { margin-left: 10px; }
.S14 { font-size: 14px; }
.mb10 { margin-bottom: 10px; }
.PT0,
.container-p-y.PT0:not([class^="pt-"]):not([class*=" pt-"]) {
  padding-top: 0px !important;
}

/* Typography authority */
h1, h2, h3, h4, h5, h6 {
  color: var(--hx-text) !important;
  letter-spacing: -0.01em;
}

/* Page title discipline: titles should be near-black, not blue */
h1,
.content-header h4,
.content-header h5,
.page-title {
  color: var(--hx-text) !important;
}

.text-muted,
.text-secondary {
  color: var(--hx-text-3) !important;
}
.text-primary {
  color: var(--hx-blue) !important;
}

/* Remove theme-y shadows */
.shadow,
.shadow-sm,
.shadow-lg {
  box-shadow: var(--hx-shadow-none) !important;
}
.btn:not([class*="btn-label-"]):not([class*="btn-outline-"]) {
  box-shadow: var(--hx-shadow-none) !important;
}

/* Focus system */
.btn:focus,
.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.page-link:focus,
.nav-link:focus {
  outline: none !important;
  box-shadow: var(--hx-focus-ring) !important;
}

/* =========================
   3) Layout / Navbar
========================= */

@media (min-width: 1200px) {
  #layout-navbar { left: 0rem !important; }

  .layout-navbar-fixed .layout-navbar.navbar-detached {
    width: 100% !important;
  }

  .layout-navbar.navbar-detached.container-xxl {
    max-width: 100% !important;
  }

  .layout-navbar.navbar-detached {
    margin-top: 0px !important;
  }

  /* Keep desktop navbar groups natural; final alignment handled by explicit flex rules below */
  #layout-navbar > .container-xxl > .navbar-nav.align-items-center.me-3 {
    margin-left: 0 !important;
  }
}

/* White header with crisp divider */
.bg-navbar-theme {
  background: var(--hx-surface) !important;
  border-bottom: 1px solid var(--hx-border) !important;
}

.layout-navbar.navbar-detached {
  border-radius: 0 !important;
}

/* Navbar links */
.bg-navbar-theme .navbar-nav > .nav-link,
.bg-navbar-theme .navbar-nav > .nav-item > .nav-link,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link,
.bg-navbar-theme .navbar-nav > .nav > .nav-item > .nav-link:focus {
  color: var(--hx-text-2) !important;
  text-decoration: none !important; /* disable global underline */
}

.bg-navbar-theme .navbar-nav > .nav-item > .nav-link:hover,
.bg-navbar-theme .navbar-nav > .nav-link:hover {
  color: var(--hx-text) !important;
  background: transparent;
  text-decoration: none !important; /* disable global underline */
}

/* Also disable underline for any anchors inside header area */
.bg-navbar-theme a,
.bg-navbar-theme a:hover,
.bg-navbar-theme a:focus {
  text-decoration: none !important;
}

/* Navbar icon buttons */
.navbar-nav .nav-item .btn-text-secondary {
  margin-left: 3px;
  color: var(--hx-text-2) !important;
  border-color: rgba(0, 0, 0, 0) !important;
}

.navbar-nav .nav-item .btn-text-secondary:hover,
.navbar-nav .nav-item .btn.active,
.navbar-nav .nav-item .btn.show {
  border-color: rgba(0, 0, 0, 0) !important;
  background: var(--hx-hover) !important;
  color: var(--hx-text) !important;
}

/* Notifications badge placement retained */
.navbar-nav .nav-item .badge-notifications {
  padding: 0px !important;
  top: 3px;
  inset-inline-end: -2px;
}

.navbar-nav .nav-item .ti-md {
  font-size: 1.375rem !important;
}

.navbar-nav .nav-item .dropdown-header .py-3 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

/* =========================
   4) Sidebar / Menu (Premium Dark Rail)
========================= */

.bg-menu-theme {
  background-color: var(--hx-rail) !important;
  color: var(--hx-rail-text) !important;
  border-right: 1px solid rgba(0, 0, 0, 0) !important;
}

/* Ensure rail brand area stays dark */
.bg-menu-theme .app-brand,
.bg-menu-theme .app-brand-link {
  background: transparent !important;
}

/* Menu spacing retained */
.menu-inner.py-1.ps {
  margin-top: 22px;
}

/* Icons */
.menu-vertical .menu-icon svg {
  margin-top: -2px;
}

/* Base menu links */
.bg-menu-theme .menu-link,
.bg-menu-theme .menu-horizontal-prev,
.bg-menu-theme .menu-horizontal-next {
  color: var(--hx-rail-text) !important;
  background: transparent !important;
  text-decoration: none !important;
}

/* Hard disable underline inside sidebar regardless of global a:hover */
.bg-menu-theme a,
.bg-menu-theme a:hover,
.bg-menu-theme a:focus,
.bg-menu-theme .menu-link:hover,
.bg-menu-theme .menu-link:focus {
  text-decoration: none !important;
}

/* Group labels */
.bg-menu-theme .menu-header-text,
.bg-menu-theme .menu-header {
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Hover on rail */
.bg-menu-theme .menu-item .menu-link:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--hx-rail-text-strong) !important;
}

/* Parent open state: keep it dark and above everything */
.bg-menu-theme .menu-item.open > .menu-link {
  position: relative;
  z-index: 3;
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--hx-rail-text-strong) !important;
}

/* Active child: thin blue rail, subtle dark highlight */
.bg-menu-theme.menu-vertical .menu-item.active > .menu-link:not(.menu-toggle) {
  position: relative;
  z-index: 3;
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--hx-rail-text-strong) !important;
  box-shadow: var(--hx-shadow-none) !important;
  border-left: 3px solid var(--hx-blue) !important;
  padding-left: calc(1rem - 3px);
}

/* Active label slightly stronger */
.bg-menu-theme.menu-vertical .menu-item.active > .menu-link:not(.menu-toggle) .menu-title,
.bg-menu-theme.menu-vertical .menu-item.active > .menu-link:not(.menu-toggle) span {
  font-weight: 600;
}

/* Submenu clarity */
.bg-menu-theme .menu-sub .menu-link {
  color: rgba(255, 255, 255, 0.66) !important;
  text-decoration: none !important;
}
.bg-menu-theme .menu-sub .menu-link:hover {
  color: var(--hx-rail-text-strong) !important;
  text-decoration: none !important;
}

/* =========================
   4a) Hide Veuxy submenu bullets and markers
   The "dot" is usually a ::before pseudo element.
========================= */

/* Remove list markers if any */
.bg-menu-theme .menu-sub,
.bg-menu-theme .menu-sub ul {
  list-style: none !important;
  padding-left: 0 !important;
}

/* Kill pseudo-element bullets on submenu links */
.bg-menu-theme .menu-sub .menu-link::before,
.bg-menu-theme .menu-sub .menu-link::after,
.bg-menu-theme .menu-sub .menu-item::before,
.bg-menu-theme .menu-sub .menu-item::after {
  content: none !important;
  display: none !important;
}

/* If Veuxy uses ::marker anywhere */
.bg-menu-theme .menu-sub ::marker {
  content: "" !important;
}

/* =========================
   5) Primary Buttons (Brightest Blue)
========================= */

.btn-primary,
.btn-label-primary {
  color: #ffffff !important;
  background-color: var(--hx-blue) !important;
  border-color: var(--hx-blue) !important;
}

.btn-primary:hover,
.btn-label-primary:hover {
  color: #ffffff !important;
  background-color: #006fe0 !important;
  border-color: #006fe0 !important;
}

/* Keep non-primary buttons neutral */
.btn-text-secondary,
.btn-outline-secondary {
  color: var(--hx-text-2) !important;
}

/* =========================
   6) Cards, Dropdowns, Modals
========================= */

.card {
  background: var(--hx-surface) !important;
  border: 1px solid var(--hx-border) !important;
  border-radius: var(--hx-radius-md) !important;
  box-shadow: var(--hx-shadow-none) !important;
}

/* Dropdowns and modals can float slightly */
.dropdown-menu,
.modal-content {
  border: 1px solid var(--hx-border) !important;
  border-radius: var(--hx-radius-md) !important;
  box-shadow: var(--hx-shadow-float) !important;
}

/* Action menus should never show link underlines */
.dropdown-item,
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item:active,
.dropdown-menu a,
.dropdown-menu a:hover,
.dropdown-menu a:focus,
.dropdown-menu a:active {
  text-decoration: none !important;
}

/* =========================
   7) Forms
========================= */

.form-control,
.form-select {
  border-color: var(--hx-border-strong) !important;
  border-radius: var(--hx-radius-sm) !important;
  box-shadow: var(--hx-shadow-none) !important;
  color: var(--hx-text) !important;
  background-color: var(--hx-surface) !important;
}

.form-control::placeholder {
  color: rgba(17, 17, 17, 0.38) !important;
}

.form-check-input:checked {
  background-color: var(--hx-blue) !important;
  border-color: var(--hx-blue) !important;
}

/* =========================
   8) Tables (White Header, Structured Labels)
========================= */

.table {
  color: var(--hx-text) !important;
}

.table thead th {
  background: var(--hx-surface) !important;
  color: var(--hx-text-2) !important;
  border-bottom: 1px solid var(--hx-border-strong) !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 700;
}

.table > :not(caption) > * > * {
  border-bottom-color: var(--hx-border) !important;
}

.table-hover tbody tr:hover {
  background: rgba(17, 17, 17, 0.03) !important;
}

/* =========================
   9) Tabs / Pagination
========================= */

.page-item.active .page-link,
.pagination li.active > a:not(.page-link) {
  border-color: var(--hx-blue) !important;
  background-color: var(--hx-blue) !important;
  color: #ffffff !important;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-link.active:hover,
.nav-tabs .nav-link.active:focus {
  box-shadow: 0 -2px 0 var(--hx-blue) inset !important;
}

.nav-tabs {
  --bs-nav-tabs-link-active-color: var(--hx-text) !important;
}

.nav-tabs .nav-link:not(.active):hover,
.nav-tabs .nav-link:not(.active):focus,
.nav-pills .nav-link:not(.active):hover,
.nav-pills .nav-link:not(.active):focus {
  color: var(--hx-text) !important;
  background: rgba(17, 17, 17, 0.03) !important;
}

/* =========================
   10) Labels / Badges
========================= */

.bg-label-primary {
  background-color: var(--hx-selected) !important;
  color: var(--hx-blue) !important;
}

/* =========================
   11) Footer
========================= */

.content-footer .footer-container {
  font-size: 12px;
  color: var(--hx-text-3);
}

/* =========================
   12) Ticker (Utility Strip, Restrained)
========================= */

.tickercontainer {
  background: var(--hx-ticker-blue) !important;
  color: rgba(255, 255, 255, 0.85) !important;

  position: relative;
  width: 100%;

  height: 30px !important;
  line-height: 30px !important;

  padding: 0 !important;
  margin: 0 0 0 0 !important;

  border: none !important;
  border-radius: 0 !important;

  overflow: hidden;
}

#webTicker {
  height: 30px !important;
  line-height: 30px !important;

  font-size: 12px !important;
  font-weight: 600 !important;
  color: rgba(255, 255, 255, 0.85) !important;

  margin: 0 !important;
  padding: 0 14px !important;
}

/* Prevent default list spacing from pushing the strip */
#webTicker,
#webTicker ul,
#webTicker li {
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#webTicker a {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

#webTicker a:hover {
  opacity: 0.92;
  text-decoration: underline !important;
}

/* Retain spacing helpers */
#webTicker li#TickerIntro { margin-right: 25px !important; }
#webTicker i.UpDwnSpc { margin-left: 5px !important; margin-right: 25px !important; }
@keyframes hxTickerScroll {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}


/* Top navbar alignment reset (override legacy rail offset) */
#layout-navbar .navbar-nav {
  margin-left: 0 !important;
}

/* Navbar final alignment: left company block + far-right actions */
#layout-navbar > .container-xxl {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#layout-navbar > .container-xxl > .navbar-nav.align-items-center {
  flex: 0 0 auto;
}

#layout-navbar > .container-xxl > .navbar-nav.flex-row.align-items-center.ms-auto {
  flex: 0 0 auto;
  margin-left: auto !important;
  justify-content: flex-end;
  padding-right: 0.35rem;
}




/* Navbar hard alignment fix (right action group pinned right) */
#layout-navbar > .container-xxl {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

#layout-navbar > .container-xxl > .navbar-nav.align-items-center.me-3 {
  flex: 0 0 auto !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

#layout-navbar > .container-xxl > ul.navbar-nav.flex-row.align-items-center.ms-auto {
  display: flex !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
  justify-content: flex-end !important;
}

/* Navbar full-width container fix */
#layout-navbar > .container-xxl {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

/* Navbar balance fix: keep full-width right alignment, but clear left sidebar */
@media (min-width: 1200px) {
  body:not(.layout-menu-collapsed) #layout-navbar > .container-xxl {
    padding-left: calc(1rem + 260px) !important;
  }

  body.layout-menu-collapsed #layout-navbar > .container-xxl {
    padding-left: calc(1rem + 78px) !important;
  }
}

/* Primary palette hard override (replace theme purple with HEXNET blue) */
:root {
  --bs-primary: var(--hx-blue) !important;
  --bs-primary-rgb: 0, 127, 253 !important;
}

.btn-outline-primary {
  color: var(--hx-blue) !important;
  border-color: var(--hx-blue) !important;
  background-color: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #ffffff !important;
  background-color: var(--hx-blue) !important;
  border-color: var(--hx-blue) !important;
}

.btn-text-primary,
.text-primary {
  color: var(--hx-blue) !important;
}

a.text-primary:hover,
a.text-primary:focus,
.btn-text-primary:hover,
.btn-text-primary:focus {
  color: #006fe0 !important;
}

.border-primary {
  border-color: var(--hx-blue) !important;
}

/* Sidebar scroll shadow: force dark blend to match rail */
.bg-menu-theme .menu-inner-shadow {
  background: linear-gradient(
    180deg,
    var(--hx-rail) 35%,
    rgba(18, 18, 18, 0.88) 72%,
    rgba(18, 18, 18, 0) 100%
  ) !important;
}




/* Ticker/Layout stability patch */
.tickercontainer .mask {
  height: 30px !important;
  line-height: 30px !important;
  overflow: hidden !important;
}
#webTicker li {
  line-height: 30px !important;
}
.layout-page,
.content-wrapper,
.layout-navbar,
.layout-content-navbar .layout-page,
.layout-content-navbar .content-wrapper {
  transition: none !important;
  transition-duration: 0s !important;
}

