/* 
 * Deprecated DNN CSS class names will remain available for some time
 * before being  permanently removed. Removal will occur according to
 * the  following process:
 *
 * 1. Removal will only occur with a major (x.y) release, never
 *    with a maintenance (x.y.z) release.
 * 2. Removal will not occur less than six months after the release
 *    when it was deprecated.
 * 3. Removal will not occur until after deprecation has been noted 
 *    in at least two major releases.
 *
 *                                              |        |Planned |
 *  Name                                        |Release |Removal |
 *----------------------------------------------+--------+--------+
 * Mod{NAME}C                                     5.6.2    6.2
 *   {NAME} = sanitized version of the DesktopModule Name 
 *   Used on <div> tag surrounding Module Content, inside container
 *----------------------------------------------+--------+--------+
 */  



/* PAGE BACKGROUND */
/* background color for the header at the top of the page  */
.HeadBg {
}

/* background color for the content part of the pages */
Body
{
}

.ControlPanel {
}

/* background/border colors for the selected tab */
.TabBg {
}

.LeftPane  { 
}

.ContentPane  { 
}

.RightPane  { 
}

/* text style for the selected tab */
.SelectedTab {
}

/* hyperlink style for the selected tab */
A.SelectedTab:link {
}

A.SelectedTab:visited  {
}

A.SelectedTab:hover    {
}

A.SelectedTab:active   {
}

/* text style for the unselected tabs */
.OtherTabs {
}
    
/* hyperlink style for the unselected tabs */
A.OtherTabs:link {
}

A.OtherTabs:visited  {
}

A.OtherTabs:hover    {
}

A.OtherTabs:active   {
}

/* GENERAL */
/* style for module titles */
.Head   {
}

/* style of item titles on edit and admin pages */
.SubHead    {
}

/* module title style used instead of Head for compact rendering by QuickLinks and Signin modules */
.SubSubHead {
}

/* text style used for most text rendered by modules */
.Normal
{
}

/* text style used for textboxes in the admin and edit pages, for Nav compatibility */
.NormalTextBox
{
}

.NormalRed
{
}

.NormalBold
{
}

/* text style for buttons and link buttons used in the portal admin pages */
.CommandButton     {
}
    
/* hyperlink style for buttons and link buttons used in the portal admin pages */
A.CommandButton:link {
}

A.CommandButton:visited  {
}

A.CommandButton:hover    {
}
    
A.CommandButton:active   {
}

/* button style for standard HTML buttons */
.StandardButton     {
}

/* GENERIC */
H1  {
}

H2  {
}

H3  {
}

H4  {
}

H5, DT  {
}

H6  {
}

TFOOT, THEAD    {
}

TH  {
}

A:link  {
    font-weight: bold;
    color:gray;
    text-decoration: none;
}

A:visited { 
    font-weight: bold;     
    color:gray;
    text-decoration: none;
}

A:hover {
    font-weight: bold;
    color:black;
    text-decoration: none;
}

A:active    {
    font-weight: bold;  
    color:red;
    text-decoration: none;
}

SMALL   {
}

BIG {
}

BLOCKQUOTE, PRE {
}


UL LI   {
}

UL LI LI    {
}

UL LI LI LI {
}

OL LI   {
}

OL OL LI    {
}

OL OL OL LI {
}
OL UL LI   {
}

HR {
}

/* MODULE-SPECIFIC */
/* text style for reading messages in Discussion */    
.Message    {
}   

/* style of item titles by Announcements and events */
.ItemTitle    {
}

/* Menu-Styles */
/* Module Title Menu */
.ModuleTitle_MenuContainer {
}

.ModuleTitle_MenuBar {
}

.ModuleTitle_MenuItem {
}

.ModuleTitle_MenuIcon {
}

.ModuleTitle_SubMenu {
}

.ModuleTitle_MenuBreak {
}

.ModuleTitle_MenuItemSel {
}

.ModuleTitle_MenuArrow {
}

.ModuleTitle_RootMenuArrow {
}

/* Main Menu */

.MainMenu_MenuContainer {
}

.MainMenu_MenuBar {
}

.MainMenu_MenuItem {
}

.MainMenu_MenuIcon {
}

.MainMenu_SubMenu {
}

.MainMenu_MenuBreak {
}

.MainMenu_MenuItemSel {
}

.MainMenu_MenuArrow {
}

.MainMenu_RootMenuArrow {
}

/* Login Styles */
.LoginPanel{
}

.LoginTabGroup{
}

.LoginTab {
}

.LoginTabSelected{
}

.LoginTabHover{
}

.LoginContainerGroup{
}

.LoginContainer{
}

/* ========================================= */
/* UNIVERSAL NAV-TABS + TABS PRO + APPGRID   */
/* FULL REPLACEMENT                          */
/* + Sticky works in tabs                    */
/* + Sticky header is double-height          */
/* + Grid BODY rows minimized (not header)   */
/* + Alternating darker grid rows            */
/* + Main menu dropdowns forced white/black  */
/* + Filter dropdown keeps formatter colors  */
/* ========================================= */


/* -------------------------------- */
/* Universal nav-tabs customization */
/* -------------------------------- */

ul.nav-tabs .nav-link {
  position: relative;
  color: #4890e8 !important;
  font-weight: 600 !important;
  border: 1px solid #9fc3f0 !important;
  border-top-left-radius: .5rem;
  border-top-right-radius: .5rem;
  transition:
    background-color 420ms ease,
    border-color 420ms ease,
    color 420ms ease;
}

ul.nav-tabs .nav-link.active {
  background-color: #4890e8 !important;
  color: #fff !important;
  border: 1px solid #4890e8 !important;
}

/* Hover (inactive tabs only) */
ul.nav-tabs .nav-link:not(.active):hover {
  border: 1px solid #4890e8 !important;
  background-color: #d2e4f9 !important;
  color: #4890e8 !important;
}

/* Active tab hover: KEEP text white */
ul.nav-tabs .nav-link.active:hover {
  background-color: #4890e8 !important;
  color: #fff !important;
  border: 1px solid #4890e8 !important;
}


/* --------- */
/* MAIN MENU */
/* --------- */

/*
  IMPORTANT:
  We do NOT style every .dropdown-menu globally anymore,
  because that was forcing filter dropdown text to white.
  Instead, target likely main-menu wrappers only.
  If your site uses a different top-nav wrapper, add it here.
*/

.main-menu .dropdown-menu,
.navbar .dropdown-menu,
header .dropdown-menu,
#mainMenu .dropdown-menu {
  --bs-dropdown-bg: #000000;
  --bs-dropdown-link-color: #ffffff;
  --bs-dropdown-link-hover-bg: #1f1f1f;
  --bs-dropdown-link-hover-color: #ffffff;
  --bs-dropdown-link-active-bg: #1f1f1f;
  --bs-dropdown-link-active-color: #ffffff;
  --bs-dropdown-border-color: rgba(255,255,255,0.18);

  background-color: #000000 !important;
  background: #000000 !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.18) !important;
}

/* Menu item text */
.main-menu .dropdown-menu .dropdown-item,
.main-menu .dropdown-menu a.dropdown-item,
.main-menu .dropdown-menu button.dropdown-item,
.navbar .dropdown-menu .dropdown-item,
.navbar .dropdown-menu a.dropdown-item,
.navbar .dropdown-menu button.dropdown-item,
header .dropdown-menu .dropdown-item,
header .dropdown-menu a.dropdown-item,
header .dropdown-menu button.dropdown-item,
#mainMenu .dropdown-menu .dropdown-item,
#mainMenu .dropdown-menu a.dropdown-item,
#mainMenu .dropdown-menu button.dropdown-item {
  color: #ffffff !important;
  background-color: transparent !important;
}

/* Nested text/icons inside main menu items */
.main-menu .dropdown-menu .dropdown-item *,
.navbar .dropdown-menu .dropdown-item *,
header .dropdown-menu .dropdown-item *,
#mainMenu .dropdown-menu .dropdown-item * {
  color: #ffffff !important;
}

/* Hover/focus/active */
.main-menu .dropdown-menu .dropdown-item:hover,
.main-menu .dropdown-menu .dropdown-item:focus,
.main-menu .dropdown-menu .dropdown-item:active,
.main-menu .dropdown-menu a.dropdown-item:hover,
.main-menu .dropdown-menu a.dropdown-item:focus,
.main-menu .dropdown-menu a.dropdown-item:active,
.main-menu .dropdown-menu button.dropdown-item:hover,
.main-menu .dropdown-menu button.dropdown-item:focus,
.main-menu .dropdown-menu button.dropdown-item:active,
.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus,
.navbar .dropdown-menu .dropdown-item:active,
.navbar .dropdown-menu a.dropdown-item:hover,
.navbar .dropdown-menu a.dropdown-item:focus,
.navbar .dropdown-menu a.dropdown-item:active,
.navbar .dropdown-menu button.dropdown-item:hover,
.navbar .dropdown-menu button.dropdown-item:focus,
.navbar .dropdown-menu button.dropdown-item:active,
header .dropdown-menu .dropdown-item:hover,
header .dropdown-menu .dropdown-item:focus,
header .dropdown-menu .dropdown-item:active,
header .dropdown-menu a.dropdown-item:hover,
header .dropdown-menu a.dropdown-item:focus,
header .dropdown-menu a.dropdown-item:active,
header .dropdown-menu button.dropdown-item:hover,
header .dropdown-menu button.dropdown-item:focus,
header .dropdown-menu button.dropdown-item:active,
#mainMenu .dropdown-menu .dropdown-item:hover,
#mainMenu .dropdown-menu .dropdown-item:focus,
#mainMenu .dropdown-menu .dropdown-item:active,
#mainMenu .dropdown-menu a.dropdown-item:hover,
#mainMenu .dropdown-menu a.dropdown-item:focus,
#mainMenu .dropdown-menu a.dropdown-item:active,
#mainMenu .dropdown-menu button.dropdown-item:hover,
#mainMenu .dropdown-menu button.dropdown-item:focus,
#mainMenu .dropdown-menu button.dropdown-item:active {
  background-color: #1f1f1f !important;
  color: #ffffff !important;
}

.main-menu .dropdown-menu .dropdown-item:hover *,
.main-menu .dropdown-menu .dropdown-item:focus *,
.main-menu .dropdown-menu .dropdown-item:active *,
.navbar .dropdown-menu .dropdown-item:hover *,
.navbar .dropdown-menu .dropdown-item:focus *,
.navbar .dropdown-menu .dropdown-item:active *,
header .dropdown-menu .dropdown-item:hover *,
header .dropdown-menu .dropdown-item:focus *,
header .dropdown-menu .dropdown-item:active *,
#mainMenu .dropdown-menu .dropdown-item:hover *,
#mainMenu .dropdown-menu .dropdown-item:focus *,
#mainMenu .dropdown-menu .dropdown-item:active * {
  color: #ffffff !important;
}

.main-menu .dropdown-menu .dropdown-divider,
.navbar .dropdown-menu .dropdown-divider,
header .dropdown-menu .dropdown-divider,
#mainMenu .dropdown-menu .dropdown-divider {
  border-top-color: rgba(255,255,255,0.18) !important;
}


/* ========================================================= */
/* STICKY HEADERS INSIDE TABS (Bootstrap Tabs / TabsPro)     */
/* ========================================================= */

.tab-content,
.tab-pane,
.tabs-content,
.tabs-container,
.tp-tabs,
.dnnTabs,
.dnnForm,
.tabBody,
.tabPanel {
  overflow: visible !important;
}

.tab-content,
.tab-pane {
  transform: none !important;
}


/* ================================================= */
/* GRID CUSTOMIZATION (APPGRID / ACTIONGRID)         */
/* ================================================= */

:root {
  --appgrid-sticky-offset: 0px;
}

/* Keep wrappers non-scrolling so sticky is relative to PAGE scroll */
[id^="appgrid-"],
[id^="appgrid-"] view-data-table,
[id^="appgrid-"] view-data-table .data-container {
  overflow: visible !important;
  max-height: none !important;
}

/* Table base */
[id^="appgrid-"] view-data-table .data-container table {
  table-layout: auto;
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0;
}


/* ===================================== */
/* Sticky header – DOUBLE HEIGHT         */
/* ===================================== */

[id^="appgrid-"] view-data-table .data-container table thead th,
.angrid-grid table thead th,
.angrid-grid thead th {
  position: sticky;
  top: var(--appgrid-sticky-offset);
  z-index: 50;

  background-color: #303030 !important;
  background: #303030 !important;
  color: #ffffff !important;

  padding-top: 10px !important;
  padding-bottom: 10px !important;
  line-height: 1.2 !important;

  box-shadow:
    0 1px 0 rgba(0,0,0,0.15),
    0 2px 2px rgba(0,0,0,0.05);

  white-space: nowrap;
}

/* Keep the row itself non-sticky */
[id^="appgrid-"] view-data-table .data-container table thead tr,
.angrid-grid table thead tr,
.angrid-grid thead tr {
  position: static !important;
}


/* ===================================================== */
/* MINIMIZE GRID ROW HEIGHT (BODY ONLY — NOT THE HEADER) */
/* ===================================================== */

[id^="appgrid-"] view-data-table .data-container table tbody td,
.angrid-grid table tbody td,
.angrid-grid tbody td {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
  line-height: 1.05 !important;
  vertical-align: top !important;
}

/* Remove extra margins from content inside body cells */
[id^="appgrid-"] view-data-table .data-container table tbody td p,
.angrid-grid tbody td p {
  margin: 0 !important;
}

/* If grid wraps cell content, remove spacing */
[id^="appgrid-"] view-data-table .data-container table tbody td > *,
.angrid-grid tbody td > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* ====================================== */
/* ALTERNATING GRID ROWS                  */
/* Real rows are followed by .inline-details */
/* Pattern is: data, detail, data, detail */
/* ====================================== */

/* light rows: 1st, 3rd, 5th visible data row */
[id^="appgrid-"] view-data-table .data-container table tbody > tr.table-row:nth-child(4n + 1) > td,
.angrid-grid table tbody > tr.table-row:nth-child(4n + 1) > td {
  background-color: #ffffff !important;
}

/* dark rows: 2nd, 4th, 6th visible data row */
[id^="appgrid-"] view-data-table .data-container table tbody > tr.table-row:nth-child(4n + 3) > td,
.angrid-grid table tbody > tr.table-row:nth-child(4n + 3) > td {
  background-color: #e6eeff !important;
}

/* keep detail rows untouched */
[id^="appgrid-"] view-data-table .data-container table tbody > tr.inline-details > td,
.angrid-grid table tbody > tr.inline-details > td {
  background-color: transparent !important;
}


/* ----------------- */
/* Status highlights */
/* ----------------- */

.Status-NotStarted { background: #cce6ff !important; }
.Status-OnHold     { background: #ffcccc !important; }
.Status-InProgress { background: #fff6cc !important; }
.Status-Completed  { background: #ccffcc !important; }


/* ================================= */
/* TabsPro TAB BADGE (TOP RIGHT)     */
/* ================================= */

.tabButton .tabLink,
a.tabLink.nav-link,
ul.nav-tabs .nav-link {
  position: relative;
  overflow: visible !important;
}

/* Badge injected by JS */
.tp-badge {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);

  width: 20px;
  height: 20px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 0.75rem;
  line-height: 1;
  font-weight: 700;

  background-color: red;
  color: white;

  border-radius: 999px;
  pointer-events: none;
  z-index: 9999;
}

.tp-badge:empty {
  display: none;
}


/* ------------------------------- */
/* TabsPro tabs: icon + text hover */
/* Hide label until hover/active   */
/* ------------------------------- */

.tabButton .tabLink:not([style*="display: none"]) {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  font-size: 0;
  line-height: 1;
  transition: font-size 520ms ease;
}

/* Icon remains visible even when font-size is 0 */
.tabButton .tabLink:not([style*="display: none"]) i {
  font-size: 1.25rem;
  line-height: 1;
  margin-right: 0;
  pointer-events: none;
  transition: margin-right 520ms ease;
}

/* Hover: reveal label */
.tabButton:hover .tabLink:not([style*="display: none"]) {
  font-size: 1rem;
}

.tabButton:hover .tabLink:not([style*="display: none"]) i {
  margin-right: 6px;
}

/* Active tab: ALWAYS show label */
.tabButton .tabLink.active:not([style*="display: none"]) {
  font-size: 1rem;
}

.tabButton .tabLink.active:not([style*="display: none"]) i {
  margin-right: 6px;
}


/* ------------------------------------ */
/* Vertical tabs: always show text      */
/* ------------------------------------ */

.tabs-vertical .tabButton .tabLink:not([style*="display: none"]),
.tabs-left .tabButton .tabLink:not([style*="display: none"]),
.vertical-tabs .tabButton .tabLink:not([style*="display: none"]) {
  font-size: 1rem !important;
  transition: none !important;
}

.tabs-vertical .tabButton .tabLink:not([style*="display: none"]) i,
.tabs-left .tabButton .tabLink:not([style*="display: none"]) i,
.vertical-tabs .tabButton .tabLink:not([style*="display: none"]) i {
  margin-right: 6px !important;
  transition: none !important;
  pointer-events: none;
}


/* ================================================= */
/* Filter dropdown – white bg + primary border       */
/* preserve formatter-applied colors                 */
/* ================================================= */

.filter-container .dropdown-menu {
  background-color: #ffffff !important;
  border: 1.5px solid #4890e8 !important;
  border-radius: 6px;
}

/* Base item styling only */
.filter-container .dropdown-menu .dropdown-item,
.filter-container .dropdown-menu a.dropdown-item,
.filter-container .dropdown-menu button.dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;

  background-color: transparent !important;
  color: #000 !important;
}

/* Hover highlight only */
.filter-container .dropdown-menu .dropdown-item:hover,
.filter-container .dropdown-menu .dropdown-item:focus,
.filter-container .dropdown-menu .dropdown-item:active,
.filter-container .dropdown-menu a.dropdown-item:hover,
.filter-container .dropdown-menu a.dropdown-item:focus,
.filter-container .dropdown-menu a.dropdown-item:active,
.filter-container .dropdown-menu button.dropdown-item:hover,
.filter-container .dropdown-menu button.dropdown-item:focus,
.filter-container .dropdown-menu button.dropdown-item:active {
  background-color: gainsboro !important;
  color: #000 !important;
}

/*
  Important:
  Do NOT force all child elements to black here.
  That allows formatter-applied colors to show again.
*/

/* Icon sizing ONLY — do not set color */
.filter-container .dropdown-menu a.dropdown-item i,
.filter-container .dropdown-menu button.dropdown-item i {
  width: 22px;
  text-align: center;
  flex-shrink: 0;
}

/* Search area styling */
.filter-container .dropdown-menu .search-container {
  background-color: #ffffff !important;
}

.filter-container .dropdown-menu .form-control {
  background-color: #ffffff !important;
  color: #000 !important;
  border: 1px solid #bbb;
}

.filter-container .dropdown-menu .form-control::placeholder {
  color: #666666 !important;
}
