/* Commander: shared GLPI components. Loaded by Branding, never copied into core.
 * Presentation only: preserve native visibility, positioning, events and status colors.
 * theme.css owns the configured primary RGB and logos. */
:root {
  --nc-brand: rgb(var(--tblr-primary-rgb, 87, 21, 255));
  --nc-accent: #e5f034;
  --nc-ink: #292337;
  --nc-muted: #716a80;
  --nc-surface: #ffffff;
  --nc-ground: #f5f3f9;
  --nc-soft: #f0ebfb;
  --nc-line: #e6e0ee;
  --nc-shadow: 0 4px 20px rgb(36 20 62 / 5%);
  --tblr-primary: var(--nc-brand);
  --tblr-primary-fg: #fff;
  --tblr-link-color: var(--nc-brand);
  --tblr-link-color-rgb: var(--tblr-primary-rgb, 87, 21, 255);
  --tblr-link-hover-color: #4921ab;
  --tblr-link-hover-color-rgb: 73, 33, 171;
  --glpi-form-header-fg: var(--nc-brand);
  --glpi-mainmenu-bg: #17131e;
  --glpi-mainmenu-fg: #f5f1fc;
  --glpi-mainmenu-fg-muted: #b4a9c8;
  --glpi-mainmenu-active-bg: #302440;
  --tblr-border-color: var(--nc-line);
}
:root[data-glpi-theme-dark="1"], :root[data-bs-theme="dark"], body.theme-dark {
  --nc-brand: #b79cff;
  --nc-ink: #f2edf9;
  --nc-muted: #b5abc6;
  --nc-surface: #211b2a;
  --nc-ground: #151219;
  --nc-soft: #30253f;
  --nc-line: #403449;
  --nc-shadow: 0 4px 20px rgb(0 0 0 / 14%);
  --tblr-link-color-rgb: 183, 156, 255;
  --tblr-link-hover-color: #d3c2ff;
  --tblr-link-hover-color-rgb: 211, 194, 255;
}
body:is(.central, .helpdesk) {
  background: var(--nc-ground);
  color: var(--nc-ink);
  --tblr-body-bg: var(--nc-ground);
  --tblr-body-color: var(--nc-ink);
  --tblr-secondary: var(--nc-muted);
  --tblr-secondary-rgb: 113, 106, 128;
  --tblr-bg-surface: var(--nc-surface);
  --tblr-bg-surface-secondary: var(--nc-ground);
}
::selection { background: #e5f034; color: #211b2a; }
:focus-visible { outline: 2px solid var(--nc-brand); outline-offset: 3px; }
/* Shell and navigation retain their existing collapse and responsive behavior. */
body .page > .sidebar {
  background: linear-gradient(175deg, #21172e 0%, #151219 75%);
  border-right: 1px solid #362841;
}
.sidebar #navbar-menu > .navbar-nav > .nav-item > .nav-link {
  border-radius: 9px;
  color: #c5bad5;
  font-weight: 550;
  transition: background-color .12s, color .12s;
}
.sidebar #navbar-menu > .navbar-nav > .nav-item > .nav-link:is(:hover, :focus-visible, .show, .active) {
  background: #302440;
  color: #fff;
}
.sidebar #navbar-menu > .navbar-nav > .nav-item > .nav-link.active {
  box-shadow: inset 3px 0 var(--nc-accent);
}
.sidebar #navbar-menu > .navbar-nav > .nav-item > .nav-link.active > i { color: var(--nc-accent); }
.sidebar #navbar-menu .dropdown-menu {
  background: #211a2c;
  border-color: #40324e;
  color: #eee7f8;
}
.sidebar #navbar-menu .dropdown-item { color: #cfc4de; border-radius: 7px; }
.sidebar #navbar-menu .dropdown-item:is(:hover, :focus-visible) { background: #38294b; color: #fff; }
.sidebar #navbar-menu .dropdown-item.active { background: #38294b; color: var(--nc-accent); }
.sidebar #navbar-menu .dropdown-header { color: #b7a5d0; }
body .page > header.navbar, body .page > .secondary-bar {
  background: var(--nc-surface);
  border-color: var(--nc-line);
  border-top: 2px solid var(--nc-brand);
  box-shadow: 0 3px 16px rgb(36 20 62 / 4%) !important;
  color: var(--nc-ink);
}
.page > header .breadcrumb { color: var(--nc-muted); font-weight: 500; }
.page > header .breadcrumb a { color: var(--nc-muted); }
.page > header .breadcrumb a:hover { color: var(--nc-brand); }
.user-menu .user-menu-dropdown-toggle {
  background: var(--nc-soft);
  border: 1px solid var(--nc-line);
  border-radius: 12px;
  color: var(--nc-ink) !important;
}
.user-menu .avatar { border-radius: 10px; box-shadow: 0 0 0 2px var(--nc-surface); }
.user-menu .text-muted-menu { color: var(--nc-muted); }
/* Popovers remain positioned and scrollable by Bootstrap. */
body .dropdown-menu {
  --tblr-dropdown-bg: var(--nc-surface);
  --tblr-dropdown-color: var(--nc-ink);
  --tblr-dropdown-link-color: var(--nc-ink);
  --tblr-dropdown-link-hover-bg: var(--nc-soft);
  --tblr-dropdown-link-hover-color: var(--nc-brand);
  --tblr-dropdown-border-color: var(--nc-line);
  border-color: var(--nc-line);
  border-radius: 14px;
  box-shadow: 0 14px 40px rgb(28 15 48 / 15%);
}
body .dropdown-menu .dropdown-header { color: var(--nc-muted); font-size: .7rem; font-weight: 650; letter-spacing: .07em; }
body .dropdown-menu .dropdown-divider { border-color: var(--nc-line); }
.user-menu .dropdown-menu { min-width: 18rem; max-width: calc(100vw - 1rem); padding: .55rem; }
.user-menu .dropdown-item { border-radius: 9px; padding: .65rem .8rem; gap: .5rem; }
.user-menu .dropdown-item > i { color: var(--nc-brand); }
.user-menu .dropdown-header { padding: .8rem; }
/* Cards, tabs and shared native form containers. No grid dimensions overridden. */
.page-body .card:not(.dashboard .card) {
  --tblr-card-bg: var(--nc-surface);
  --tblr-card-border-color: var(--nc-line);
  border-color: var(--nc-line);
  border-radius: 14px;
  box-shadow: var(--nc-shadow);
}
.page-body .card-header, .page-body .card-footer { border-color: var(--nc-line); }
.page-body .card-header { color: var(--nc-ink); }
.page-body .card-title { font-weight: 650; letter-spacing: -.02em; }
.page-body .nav-tabs {
  border-color: var(--nc-line);
  gap: .25rem;
}
.page-body .card-tabs > .nav-tabs {
  background: var(--nc-surface);
  border: 1px solid var(--nc-line);
  border-radius: 14px;
  padding: .35rem;
  margin-bottom: .8rem;
  box-shadow: var(--nc-shadow);
}
.page-body .nav-tabs .nav-link {
  border-radius: 9px;
  border-color: transparent;
  color: var(--nc-muted);
  font-weight: 550;
  padding: .65rem .85rem;
}
.page-body .nav-tabs .nav-link:not(.disabled):hover { background: var(--nc-soft); color: var(--nc-brand); }
.page-body .nav-tabs .nav-link.active {
  background: var(--nc-soft);
  border-color: transparent;
  color: var(--nc-brand);
  box-shadow: inset 0 -3px var(--nc-accent);
}
/* Neutral actions use the platform palette; destructive and status actions keep theirs. */
body .btn { border-radius: 8px; }
body .btn-primary {
  --tblr-btn-bg: #6438df;
  --tblr-btn-border-color: #6438df;
  --tblr-btn-hover-bg: #5128bd;
  --tblr-btn-hover-border-color: #5128bd;
  --tblr-btn-active-bg: #4521a4;
  --tblr-btn-active-border-color: #4521a4;
  --tblr-btn-color: #fff;
  --tblr-btn-hover-color: #fff;
  --tblr-btn-active-color: #fff;
  --tblr-btn-disabled-bg: #6438df;
  --tblr-btn-disabled-border-color: #6438df;
}
body .btn-ghost-secondary {
  --tblr-btn-color: var(--nc-muted);
  --tblr-btn-hover-color: var(--nc-brand);
  --tblr-btn-hover-bg: var(--nc-soft);
  --tblr-btn-active-bg: var(--nc-soft);
  --tblr-btn-active-color: var(--nc-brand);
}
body :is(.form-control, .form-select), body .select2-container .select2-selection {
  border-color: var(--nc-line);
  border-radius: 8px;
  background-color: var(--nc-surface);
  color: var(--nc-ink);
}
body :is(.form-control, .form-select):focus, body .select2-container--focus .select2-selection {
  border-color: var(--nc-brand);
  box-shadow: 0 0 0 3px rgb(100 56 223 / 12%);
}
body :is(.form-control, .form-select):disabled { background-color: var(--nc-ground); opacity: .7; }
body .form-control[readonly] { background-color: var(--nc-ground); }
body :is(.form-control, .form-select).is-invalid { border-color: var(--tblr-danger, #d63939); }
body :is(.form-control, .form-select).is-valid { border-color: var(--tblr-success, #2fb344); }
body .form-check-input:checked { background-color: #6438df; border-color: #6438df; }
body .select2-dropdown { background: var(--nc-surface); border-color: var(--nc-line); border-radius: 9px; box-shadow: var(--nc-shadow); }
body .select2-container--default .select2-results__option--highlighted[aria-selected] { background: #6438df; color: #fff; }
body .modal-content, body .offcanvas { background: var(--nc-surface); color: var(--nc-ink); border-color: var(--nc-line); }
body .modal-content { border-radius: 16px; box-shadow: 0 20px 70px rgb(21 12 35 / 25%); }
body :is(.modal-header, .modal-footer) { border-color: var(--nc-line); }
/* Search lists keep real tables, column resizing, selection and sticky controls. */
.page-body .search-card { border-radius: 14px; }
.page-body .search-header { background: var(--nc-surface); padding-top: .65rem; padding-bottom: .65rem; }
.page-body .search-results:not(.table-danger) {
  --tblr-table-bg: var(--nc-surface);
  --tblr-table-color: var(--nc-ink);
  --tblr-table-striped-bg: color-mix(in srgb, var(--nc-soft) 32%, var(--nc-surface));
  --tblr-table-striped-color: var(--nc-ink);
  --tblr-table-hover-bg: var(--nc-soft);
  --tblr-table-hover-color: var(--nc-ink);
  border-color: var(--nc-line);
}
.page-body .search-results:not(.table-danger) thead th {
  background: var(--nc-ground);
  color: var(--nc-muted);
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .055em;
  padding-top: .8rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid var(--nc-line);
}
.page-body .search-results td { border-color: var(--nc-line); }
.page-body .search-results td a:not(.btn):not([class*="text-"]) { font-weight: 550; }
.page-body .search-results .avatar { border-radius: 10px; }
.page-body .search-footer { background: var(--nc-surface); border-radius: 0 0 14px 14px; color: var(--nc-muted); }
body .pagination {
  --tblr-pagination-active-bg: #6438df;
  --tblr-pagination-active-border-color: #6438df;
  --tblr-pagination-active-color: #fff;
  --tblr-pagination-color: var(--nc-muted);
  --tblr-pagination-hover-bg: var(--nc-soft);
  --tblr-pagination-hover-color: var(--nc-brand);
  --tblr-pagination-focus-bg: var(--nc-soft);
}
body .page-link { border-radius: 8px; }
body.welcome-anonymous { background: radial-gradient(ellipse at top left, rgb(100 56 223 / 12%), transparent 55%), var(--nc-ground); }
@media (max-width: 767.98px) {
  .page-body .nav-tabs .nav-link { padding: .55rem .65rem; font-size: .82rem; }
  .user-menu .dropdown-menu { min-width: min(18rem, calc(100vw - 1rem)); }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar #navbar-menu .nav-link { transition: none; }
}
/* Native palette utilities use !important; override only these visual states. */
.page-body .card-tabs > .nav-tabs .nav-link.active {
  background: var(--nc-soft) !important;
  color: var(--nc-brand) !important;
}
.page-body .card-tabs > .nav-tabs .nav-link { border-radius: 9px !important; }
.page-body .card-tabs > .tab-content { color: var(--nc-ink); }
.user-menu .text-muted-menu { color: var(--nc-muted) !important; }
.user-menu [data-testid="user-menu-dropdown"] > .dropdown-header {
  background: linear-gradient(110deg, #302044, #20172c);
  color: #e5f034;
  border-radius: 9px;
  margin-bottom: .4rem;
}
:root[data-glpi-theme-dark="1"] body:is(.central, .helpdesk),
:root[data-bs-theme="dark"] body:is(.central, .helpdesk) {
  --tblr-secondary-rgb: 181, 171, 198;
}
:root[data-glpi-theme-dark="1"] .page-body .text-muted,
:root[data-bs-theme="dark"] .page-body .text-muted { color: var(--nc-muted) !important; }
/* Keep the central tab wrapper synchronized with the global light/dark tokens. */
.page-body {
  --nc-central-brand: var(--nc-brand);
  --nc-central-brand-soft: var(--nc-soft);
  --nc-central-ink: var(--nc-ink);
  --nc-central-muted: var(--nc-muted);
  --nc-central-surface: var(--nc-surface);
  --nc-central-ground: var(--nc-ground);
  --nc-central-border: var(--nc-line);
}
