/**
 * Rising PMS — MyTask-style Sidebar + Layout
 *
 * Sidebar palette (matched from MyTask preview):
 *   Sidebar bg:      #3f2d7e  (deep purple)
 *   Brand bg:        #3a2873
 *   Active text:     #ff4b6e  (coral-pink)
 *   Nav text:        #ffffff
 *   Nav icon:        rgba(255,255,255,0.85)
 *   Submenu bg:      #392870  (slightly darker)
 *   Chevron muted:   rgba(255,255,255,0.4)
 *
 * Topbar:
 *   Topbar bg:       #ffffff
 *   Topbar shadow:   0 1px 4px rgba(0,0,0,0.08)
 *   Icon color:      #6c757d
 *   Avatar bg:       #3f2d7e
 *
 * Content:
 *   Content bg:      #f4f6f9
 */

/* ============================================================
   FONTS — Material Icons (local fonts already in css/fonts/)
   ============================================================ */
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

/* ============================================================
   CSS VARIABLES
   ============================================================ */
:root {
  --sidebar-width:        250px;
  --sidebar-collapsed:    0px;
  --sidebar-bg:           #ffffff;
  --sidebar-brand-bg:     #ffffff;
  --sidebar-border:       rgb(235, 235, 235);
  --sidebar-text:         #060606;
  --sidebar-icon:         #6b7280;
  --sidebar-muted:        #6b7280;
  --sidebar-hover-bg:     #eff6ff;
  --sidebar-active-text:  #1d49d8;
  --sidebar-submenu-bg:   #ffffff;
  --sidebar-submenu-active-text:  #1d49d8;

  --topbar-height:        60px;
  --topbar-bg:            #ffffff;
  --topbar-shadow:        0 1px 4px rgba(0,0,0,0.08);
  --topbar-shadow-right:  0px 10px 5px rgba(0,0,0,0.08);
  --topbar-icon:          #6c757d;
  --topbar-border:        #e9ecef;

  --content-bg:           #f8f9fa;
  --card-bg:              #ffffff;
  --card-radius:          6px;
  --card-shadow:          0 1px 8px rgba(0,0,0,0.07);
  --card-border:          #e9ecef;

  --primary:              #3f2d7e;
  --primary-hover:        #352570;
  --primary-light:        #ede9fe;
  --accent:               #ff4b6e;
  --accent-hover:         #e83560;

  --success:              #28a745;
  --warning:              #ffc107;
  --danger:               #dc3545;
  --info:                 #17a2b8;

  --text-color:           #495057;
  --text-muted:           #868e96;
  --heading-color:        #2c3e50;
  --border-color:         #e9ecef;
  --border-radius:        6px;
  --transition:           all 0.25s ease;

  --bg-color-1:         #6366f1;
  --bg-color-2:        #ec4899;
  --bg-color-3:         #f59e0b;
  --bg-color-4:         #10b981;
  --bg-color-5:         #4a6cf7;
  --bg-color-6:         #f97316;
  --bg-color-7:         #84cc16;
  --bg-color-8:         #06b6d4;
  --bg-color-9:         #8b5cf6;
  --bg-color-10:         #ef4444;
  
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 14px; scroll-behavior: smooth; }

body {
  font-family: 'Poppins', 'Roboto', sans-serif;
  font-size: 14px;
  background: var(--content-bg);
  color: var(--text-color);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-hover); }

/* ============================================================
   LAYOUT SHELL
   ============================================================ */
.rising-layout {
  display: flex;
  min-height: 100vh;
}

/* ============================================================
   SIDEBAR
   ============================================================ */
#left-sidebar {
  width: var(--sidebar-width);
  position: fixed;
  border-right: 1px solid #ebebeb;
  /* Offset below/beside the Drupal admin toolbar using core displace variables.
     Drupal's drupal.displace library sets these on <html> automatically.
     They are 0px when no admin toolbar is present.              */
  top: var(--drupal-displace-offset-top, 0px);
  left: var(--drupal-displace-offset-left, 0px);
  height: calc(100vh - var(--drupal-displace-offset-top, 0px));
  /* Stay below the Drupal admin toolbar (z-index ~600) */
  z-index: 490;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, width 0.25s ease;
  overflow-x: hidden;
  overflow-y: auto;
  
    box-shadow: var(--topbar-shadow-right);
}
#left-sidebar .left-sidebar-inner{
  margin: 0px;
  border-radius: 0px;
  background: var(--sidebar-bg);
}

/* Scrollbar inside sidebar */
#left-sidebar::-webkit-scrollbar { width: 3px; }
#left-sidebar::-webkit-scrollbar-track { background: transparent; }
#left-sidebar::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.2);
  border-radius: 3px;
}
.main-content{
  background: #ffffff;
  padding: 20px;
}
.path-plan-port .main-content{
  background: inherit;
  padding: 0px;
}
/* Collapsed state (desktop) */
body.sidebar-collapsed #left-sidebar {
  width: 0;
  overflow: hidden;
}
body.sidebar-collapsed #main-wrapper {
  /* When sidebar is collapsed, only the Drupal toolbar left offset remains */
  margin-left: var(--drupal-displace-offset-left, 0px);
}

/* ----- Brand area ----- */
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 5px 20px;
  /* height: var(--topbar-height); */
  background: var(--sidebar-brand-bg);
  flex-shrink: 0;
  overflow: hidden;
  white-space: nowrap;
  border-bottom: 1px solid var(--sidebar-border);
}

.brand-logo-circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  background: #cccccc;
}

.brand-logo-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  /* filter: brightness(0) invert(1); */
}

.brand-name {
  font-size: 17px;
  font-weight: 700;
  color: #000000;
  letter-spacing: 0.3px;
}

/* ----- Nav wrapper ----- */
.sidebar-nav-wrapper {
  flex: 1;
  padding: 12px 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.sidebar-nav-wrapper::-webkit-scrollbar { width: 3px; }
.sidebar-nav-wrapper::-webkit-scrollbar-track { background: transparent; }
.sidebar-nav-wrapper::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.15);
  border-radius: 3px;
}

/* ----- Sidebar menu list ----- */
.sidebar-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-menu-item {
  position: relative;
}

/* ----- Nav links ----- */
.sidebar-menu-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  color: var(--sidebar-text);
  font-size: 13.5px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.18s ease, background 0.18s ease;
  text-decoration: none;
  position: relative;
}

.sidebar-menu-link:hover {
  background: var(--sidebar-hover-bg);
  color: var(--sidebar-active-text);
  text-decoration: none;
}
.page-wrapper *:focus, .ui-dialog *:focus{
  box-shadow: none;
  outline: 0px;
}
/* Active link */
.sidebar-menu-link.active,
.sidebar-menu-item.open > .sidebar-menu-link {
  color: var(--sidebar-active-text);
  background: var(--sidebar-hover-bg);
}

.sidebar-menu-link.active .sidebar-menu-icon,
.sidebar-menu-item.open > .sidebar-menu-link .sidebar-menu-icon {
  color: var(--sidebar-active-text);
}

/* ----- Icons ----- */
.sidebar-menu-icon {
  font-size: 20px;
  flex-shrink: 0;
  color: var(--sidebar-icon);
  width: 22px;
  text-align: center;
  transition: color 0.18s ease;
}

/* ----- Arrow chevron ----- */
.sidebar-menu-arrow {
  font-size: 18px;
  margin-left: auto;
  color: var(--sidebar-muted);
  transition: transform 0.22s ease, color 0.18s ease;
  flex-shrink: 0;
}

.sidebar-menu-item.open > .sidebar-menu-link .sidebar-menu-arrow {
  transform: rotate(180deg);
  color: var(--sidebar-active-text);
}

/* ----- Submenus ----- */
.sidebar-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  background: var(--sidebar-submenu-bg);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.sidebar-menu-item.open > .sidebar-submenu {
  max-height: 500px;
}

.sidebar-submenu-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px 10px 50px;
  color: var(--sidebar-submenu-active-text);
  font-size: 13px;
  font-weight: 400;
  cursor: pointer;
  transition: color 0.15s ease;
  text-decoration: none;
}

.sidebar-submenu-link:hover {
  color: var(--sidebar-submenu-active-text);
  text-decoration: none;
  /* background: var(--sidebar-hover-bg); */
}

.sidebar-submenu-link.active {
  color: var(--sidebar-submenu-active-text);
  font-weight: 500;
}

.submenu-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.4);
  background: var(--sidebar-active-text);
  flex-shrink: 0;
  transition: border-color 0.15s, background 0.15s;
}

.sidebar-submenu-link:hover .submenu-dot,
.sidebar-submenu-link.active .submenu-dot {
  background: var(--sidebar-active-text);
  border-color: var(--sidebar-active-text);
}

/* ----- Sidebar bottom action ----- */
.sidebar-bottom-action {
  padding: 16px 20px;
  border-top: 1px solid var(--sidebar-border);
  flex-shrink: 0;
}

.sidebar-logout-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(0, 0, 0, 0.9);
  font-size: 13px;
  font-weight: 500;
  transition: color 0.18s ease;
  text-decoration: none;
}

.sidebar-logout-btn:hover {
  color: var(--sidebar-active-text);
  text-decoration: none;
}

.sidebar-logout-btn .material-icons {
  font-size: 20px;
}

/* ============================================================
   MAIN WRAPPER
   ============================================================ */
#main-wrapper {
  /* sidebar width + any Drupal vertical toolbar (icon strip or open tray) */
  margin-left: calc(var(--sidebar-width) + var(--drupal-displace-offset-left, 0px));
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  transition: margin-left 0.25s ease;
  overflow-x: scroll;
}

/* ============================================================
   TOPBAR
   ============================================================ */
.main-topbar {
  height: var(--topbar-height);
  background: var(--topbar-bg);
  border-bottom: 1px solid var(--topbar-border);
  box-shadow: var(--topbar-shadow);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 1030;
	z-index: 501;
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Hamburger toggle button */
.sidebar-toggle-btn {
  width: 36px;
  height: 36px;
  border: none;
  background: none;
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--topbar-icon);
  transition: background 0.18s ease, color 0.18s ease;
  padding: 0;
}

.sidebar-toggle-btn:hover {
  background: var(--primary-light);
  color: var(--primary);
}

.sidebar-toggle-btn .material-icons { font-size: 22px; }

/* Topbar action buttons (timer, fullscreen) */
.topbar-action-btn {
  width: 36px;
  height: 36px;
  border: none;
  background: none;
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--topbar-icon);
  position: relative;
  transition: background 0.18s ease, color 0.18s ease;
  padding: 0;
}

.topbar-action-btn:hover {
  background: var(--primary-light);
  color: var(--primary);
}

.topbar-action-btn .material-icons { font-size: 20px; }

/* Topbar search (featured_top region) */
.topbar-search {
  display: flex;
  align-items: center;
}

/* Notification wrapper */
.notification-wrapper {
  position: relative;
  width: auto;
  padding: 0 4px;
}

/* ----- User dropdown ----- */
.topbar-user-dropdown {
  position: relative;
}

.user-avatar-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  border: none;
  background: none;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--border-radius);
  transition: background 0.18s ease;
}

.user-avatar-btn:hover { background: var(--primary-light); }

.user-avatar-circle {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  text-transform: uppercase;
}

.user-display-name {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--heading-color);
  white-space: nowrap;
}

.user-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 170px;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius);
  box-shadow: var(--card-shadow);
  display: none;
  flex-direction: column;
  padding: 6px;
  z-index: 1050;
}

.user-dropdown-menu.show { display: flex; }

.user-dropdown-menu a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 4px;
  font-size: 13.5px;
  color: var(--text-color);
  transition: background 0.15s ease;
  text-decoration: none;
}

.user-dropdown-menu a:hover {
  background: var(--primary-light);
  color: var(--primary);
}

.user-dropdown-menu .material-icons { font-size: 16px; }

.dropdown-divider {
  border: none;
  border-top: 1px solid var(--border-color);
  margin: 4px 0;
}

/* ============================================================
   CONTENT AREA
   ============================================================ */
#main-content {
  flex: 1;
  padding: 24px;
  background: var(--content-bg);
}

/* Page header bar (breadcrumb + title) */
.page-header-bar {
  margin-bottom: 15px;
}

.page-breadcrumb {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.page-breadcrumb a { color: var(--text-muted); }
.page-breadcrumb a:hover { color: var(--primary); }

.breadcrumb-home-icon,
.breadcrumb-sep-icon {
  font-size: 14px;
  vertical-align: middle;
}

.page-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--heading-color);
  margin: 0;
  line-height: 140%;
}

/* ============================================================
   MOBILE OVERLAY
   ============================================================ */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1035;
}

.sidebar-overlay.visible { display: block; }

/* ============================================================
   RESPONSIVE — mobile (< 992px)
   ============================================================ */
@media (max-width: 991.98px) {
  #left-sidebar {
    transform: translateX(-100%);
    width: var(--sidebar-width) !important;
  }

  #left-sidebar.mobile-open {
    transform: translateX(0);
  }

  #main-wrapper {
    margin-left: 0 !important;
  }

  #main-content { padding: 16px; }

  .hide-on-mobile { display: none !important; }
}

/* ============================================================
   PROJECT TAB BAR — global styles (applied by pms_project_tabs.js)
   Mirrors what pms.backlog.css has but loaded on every /project/* page.
   ============================================================ */

/* Outer pill bar */
#block-rising-pms-tabs.pbl-tabs-injected {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  gap: 4px;
  margin-bottom: 24px;
}

/* Hide the auto-generated h2 label */
#block-rising-pms-tabs.pbl-tabs-injected h2.visually-hidden {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  overflow: hidden !important;
  margin: 0 !important; padding: 0 !important;
}

/* <nav> grows to fill remaining width */
#block-rising-pms-tabs.pbl-tabs-injected > nav {
  flex: 1 1 auto;
  min-width: 0;
  box-shadow: none;
}

/* Tab list */
#block-rising-pms-tabs.pbl-tabs-injected ul {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border: none !important;
}

#block-rising-pms-tabs.pbl-tabs-injected ul li {
  display: flex;
  align-items: center;
  list-style: none !important;
}

#block-rising-pms-tabs.pbl-tabs-injected ul li::before { display: none !important; }

/* Tab links */
#block-rising-pms-tabs.pbl-tabs-injected ul li a {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  padding: 12px 16px;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #374151 !important;
  text-decoration: none !important;
  background: transparent;
  border: none !important;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
  border-radius: 0;
  font-weight: normal;
}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="0"] a.is-active,
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="0"] a:hover,
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="0"] a .material-icons {color: var(--bg-color-1) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="1"] a.is-active,
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="1"] a:hover,
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="1"] a .material-icons {color: var(--bg-color-2) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="2"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="2"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="2"] a .material-icons {color: var(--bg-color-3) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="3"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="3"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="3"] a .material-icons {color: var(--bg-color-4) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="4"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="4"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="4"] a .material-icons {color: var(--bg-color-5) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="5"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="5"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="5"] a .material-icons {color: var(--bg-color-6) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="6"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="6"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="6"] a .material-icons {color: var(--bg-color-7) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="7"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="7"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="7"] a .material-icons {color: var(--bg-color-8) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="8"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="8"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="8"] a .material-icons {color: var(--bg-color-9) !important;}

#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="9"] a.is-active, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="9"] a:hover, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="9"] a .material-icons {color: var(--bg-color-10) !important;}


#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="0"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="0"] a:hover::before {border-bottom: 2px solid var(--bg-color-1);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="1"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="1"] a:hover::before {border-bottom: 2px solid var(--bg-color-2);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="2"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="2"] a:hover::before {border-bottom: 2px solid var(--bg-color-3);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="3"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="3"] a:hover::before {border-bottom: 2px solid var(--bg-color-4);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="4"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="4"] a:hover::before {border-bottom: 2px solid var(--bg-color-5);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="5"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="5"] a:hover::before {border-bottom: 2px solid var(--bg-color-6);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="6"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="6"] a:hover::before {border-bottom: 2px solid var(--bg-color-7);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="7"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="7"] a:hover::before {border-bottom: 2px solid var(--bg-color-8);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="8"] a.is-active::before,
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="8"] a:hover::before {border-bottom: 2px solid var(--bg-color-9);}
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="9"] a.is-active::before, 
#block-rising-pms-tabs.pbl-tabs-injected ul li[data-original-order="9"] a:hover::before {border-bottom: 2px solid var(--bg-color-10);}

#block-rising-pms-tabs.pbl-tabs-injected ul li a .material-icons {
  font-size: 26px;
  line-height: 1;
  flex-shrink: 0;
  /* color: #3f2d7e; */
  height:auto;
}

#block-rising-pms-tabs.pbl-tabs-injected ul li a:hover {
  /* background: #f3f4f6 !important;
  color: #111827 !important; */
}

#block-rising-pms-tabs.pbl-tabs-injected ul li a:hover .material-icons {
  /* color: #4a6cf7; */
}

/* Active tab */
#block-rising-pms-tabs.pbl-tabs-injected ul li.is-active a,
#block-rising-pms-tabs.pbl-tabs-injected ul li a.is-active,
#block-rising-pms-tabs.pbl-tabs-injected ul li a[aria-current] {
  /* background: #eef0fd !important; */
  /* color: #4a6cf7 !important; */
  font-weight: 600;
}

#block-rising-pms-tabs.pbl-tabs-injected ul li.is-active a .material-icons,
#block-rising-pms-tabs.pbl-tabs-injected ul li a.is-active .material-icons {
  /* color: #4a6cf7; */
}

/* Actions panel (people + buttons, right side) */
#pbl-tab-actions {
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  padding: 0 10px 0 8px;
  margin-left: 4px;
  border-left: 1px solid #e2e8f0;
}

/* Icon-only action buttons */
.pbl-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  text-decoration: none !important;
  cursor: pointer;
  border: none;
  flex-shrink: 0;
  transition: background 0.15s, transform 0.12s;
}

.pbl-btn-icon .material-icons { font-size: 17px; line-height: 1; }

.pbl-btn-icon--add { background: #4a6cf7; color: #fff !important; }
.pbl-btn-icon--add:hover {
  background: #3a5ce5;
  box-shadow: 0 3px 10px rgba(74,108,247,0.30);
  transform: translateY(-1px);
  color: #fff !important;
}

.pbl-btn-icon--milestone {
  background: #f1f5f9;
  color: #64748b !important;
  border: 1px solid #e2e8f0 !important;
}
.pbl-btn-icon--milestone:hover {
  background: #e5e7eb;
  transform: translateY(-1px);
  color: #4a6cf7 !important;
}

/* ============================================================
   GLOBAL KUBER-STYLE TABLE — all project pages
   ============================================================ */

/* Card wrapper for content pages */
.pms-content-card {
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid #e9ecef;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  overflow: hidden;
  margin-bottom: 24px;
}

.pms-content-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f0f0f0;
  background: #fafafa;
  gap: 12px;
}

.pms-content-card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #1e293b;
}

.pms-content-card-title .material-icons {
  font-size: 20px;
  color: #4a6cf7;
}

.pms-content-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pms-card-body {
  padding: 20px;
}

/* Global table reset + Kuber style */
.rising-layout #main-content .task-report-filter-form table{
  margin-bottom: 0px !important;
}
.rising-layout #main-content table,
.rising-layout #main-content .views-table,
.rising-layout #main-content .file-upload-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid #e9ecef !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  font-size: 13.5px;
  margin-bottom: 30px !important;
}

.rising-layout #main-content table thead th,
.rising-layout #main-content .views-table thead th {
  background: #f8f9fc !important;
  color: #64748b !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
  padding: 11px 16px !important;
  border-bottom: 2px solid #e9ecef !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  white-space: nowrap;
}
.rising-layout #main-content table tr th:nth-child(1){
  text-align:left;
  padding-left:20px;
}
.rising-layout #main-content table tbody tr th{
  border: 0px;
  font-size: 15px;
  /* text-align: center; */
}
.rising-layout #main-content table tbody tr,
.rising-layout #main-content .views-table tbody tr {
  border-bottom: 1px solid #f1f5f9 !important;
  transition: background 0.12s ease;
}

.rising-layout #main-content table tbody tr:last-child {
  border-bottom: none !important;
}

.rising-layout #main-content table tbody tr:hover,
.rising-layout #main-content .views-table tbody tr:hover {
  background: #f8faff !important;
}

.rising-layout #main-content table tbody td,
.rising-layout #main-content .views-table tbody td {
  padding: 11px 16px !important;
  border: none !important;
  /* color: #374151; */
  vertical-align: middle;
  /* font-size: 13.5px; */
}
.rising-layout #main-content table tbody td.tr-task-cell {
  width: 230px;
}
.rising-layout #main-content table tbody td.tabledrag-hide{
  display:none !important;
}
/* Override old alternating row colors */
.rising-layout #main-content table tr.even,
.rising-layout #main-content table tr:nth-child(even),
.rising-layout #main-content table tr.odd,
.rising-layout #main-content table tr:nth-child(odd) {
  background: transparent !important;
}

.rising-layout #main-content table tr.even:hover,
.rising-layout #main-content table tr:nth-child(even):hover {
  background: #f8faff !important;
}

/* ============================================================
   FILES PAGE — upload card + table
   ============================================================ */

.pms-files-hint {
  font-size: 11.5px;
  color: var(--text-muted);
  margin-left: auto;
}

.pms-upload-body {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px;
}

.pms-upload-body .form-managed-file {
  flex: 1 1 300px;
}

.pms-upload-body .form-managed-file input[type="file"] {
  border: 2px dashed #cbd5e1;
  border-radius: 8px;
  padding: 20px;
  width: 100%;
  background: #f8faff;
  cursor: pointer;
  transition: border-color 0.2s;
}

.pms-upload-body .form-managed-file input[type="file"]:hover {
  border-color: #4a6cf7;
  background: #eef0fd;
}

.pms-upload-btn {
  height: 38px;
  padding: 0 20px;
  background: #4a6cf7;
  color: #fff !important;
  border: none;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.18s, box-shadow 0.18s;
}

.pms-upload-btn:hover {
  background: #3a5ce5;
  box-shadow: 0 4px 12px rgba(74,108,247,0.35);
  color: #fff !important;
}

.pms-files-list-card #file-list-wrapper { padding: 0; }

.file-upload-table th:first-child,
.file-upload-table td:first-child { width: 60px; text-align: center; }

.file-upload-table .file-thumbnail img,
.file-upload-table .file-icon img {
  width: 36px; height: 36px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid #e9ecef;
}

/* ── File-type icon badges (pf-icon) ── */
.pf-thumb img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  display: block;
}

.pf-icon {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 10px;
  gap: 2px;
}
.pf-icon .material-icons { font-size: 24px; line-height: 1; }
.pf-icon .pf-ext {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  line-height: 1;
}

/* Colour variants per type */
.pf-icon--pdf   { background: #fee2e2; color: #dc2626; }
.pf-icon--doc   { background: #dbeafe; color: #1d4ed8; }
.pf-icon--xls   { background: #dcfce7; color: #16a34a; }
.pf-icon--csv   { background: #d1fae5; color: #059669; }
.pf-icon--ppt   { background: #ffedd5; color: #ea580c; }
.pf-icon--zip   { background: #fef9c3; color: #ca8a04; }
.pf-icon--txt   { background: #f1f5f9; color: #475569; }
.pf-icon--img   { background: #ede9fe; color: #7c3aed; }
.pf-icon--other { background: #f3f4f6; color: #6b7280; }

.file-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  border-radius: 6px;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.15s;
  margin: 0 2px;
  text-decoration: none;
}

.file-icons.download-icon {
  color: #10b981; background: #d1fae5;
}
.file-icons.download-icon:hover {
  background: #a7f3d0; color: #059669;
}
.file-icons.delete-file {
  color: #ef4444; background: #fee2e2;
}
.file-icons.delete-file:hover {
  background: #fecaca; color: #dc2626;
}

.pms-files-list-card .pager {
  padding: 12px 16px;
  border-top: 1px solid #f0f0f0;
}

/* ============================================================
   BACK TO TOP
   ============================================================ */
#back-to-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 38px;
  height: 38px;
  background: var(--primary);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 10px rgba(63,45,126,0.35);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  z-index: 999;
}

#back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
}

/* ============================================================
   TIMER CART POPUP
   ============================================================ */
#timer-cart-popup {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 280px;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--border-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  display: none;
  z-index: 1050;
  /* padding: 12px; */
}

#timer-cart-popup.show,
#timer-cart-popup.open { display: block; }

/* ============================================================
   TOPBAR — NEW ICON BUTTONS (tb-icon-btn system)
   Replaces old .topbar-action-btn for the redesigned topbar
   ============================================================ */

/* ---- Search bar ---- */
.topbar-search-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #f4f6f9;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 0 12px;
  height: 36px;
  min-width: 220px;
  transition: border-color 0.18s, box-shadow 0.18s;
}

.topbar-search-wrap:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(63,45,126,0.10);
  background: #fff;
}

.topbar-search-icon {
  font-size: 18px;
  color: var(--text-muted);
  flex-shrink: 0;
}

.topbar-search-input {
  border: none !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 13.5px;
  color: var(--text-color);
  width: 100%;
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  line-height: normal !important;
}

.topbar-search-input::placeholder {
  color: var(--text-muted);
  font-size: 13px;
}

/* ---- Search block form (pms_advanced_search) inside topbar-search-wrap ---- */
.topbar-search-wrap .multi-entity-search-form,
.topbar-search-wrap form {
  display: contents; /* let children flow inline */
}

.topbar-search-wrap .search-container,
.topbar-search-wrap .search-field-wrapper,
.topbar-search-wrap .form-item {
  display: contents;
}

.topbar-search-wrap input.search-autocomplete,
.topbar-search-wrap input[type="search"],
.topbar-search-wrap input[type="text"] {
  border: none !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 13.5px !important;
  color: var(--text-color) !important;
  width: 220px !important;
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  line-height: normal !important;
  font-family: 'Poppins', sans-serif !important;
}

.topbar-search-wrap input.search-autocomplete::placeholder,
.topbar-search-wrap input[type="text"]::placeholder {
  color: var(--text-muted);
  font-size: 13px;
}

/* Hide filter dropdown that renders outside the search bar */
.topbar-search-wrap .filter-container,
.topbar-search-wrap select,
.topbar-search-wrap .form-actions,
.topbar-search-wrap input[type="submit"],
.topbar-search-wrap button[type="submit"],
.topbar-search-wrap label {
  display: none !important;
}

/* Autocomplete suggestions dropdown */
.ui-autocomplete {
  z-index: 1070 !important;
}

/* ---- Base icon button ---- */
.tb-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
  padding: 0;
  text-decoration: none;
  flex-shrink: 0;
  /* default: ghost / muted */
  background: transparent;
  color: var(--topbar-icon);
}

.tb-icon-btn:hover {
  background: var(--primary-light);
  color: var(--primary);
}

.tb-icon-btn .material-icons {
  font-size: 20px;
  line-height: 1;
}

/* ---- Timer button — warm amber ---- */
.tb-icon-btn--timer {
  background: #fff8e7;
  color: #e6a817;
}
.tb-icon-btn--timer:hover {
  background: #fef0c7;
  color: #c9890f;
  box-shadow: 0 2px 8px rgba(230,168,23,0.25);
}

/* ---- Fullscreen button — teal ---- */
.tb-icon-btn--fullscreen {
  background: #e8f8f5;
  color: #17a589;
}
.tb-icon-btn--fullscreen:hover {
  background: #d1f2eb;
  color: #0e8070;
  box-shadow: 0 2px 8px rgba(23,165,137,0.20);
}

/* ---- Notification bell button — indigo ---- */
.tb-icon-btn--notif {
  background: #eef0fd;
  color: #4a6cf7;
}
.tb-icon-btn--notif:hover {
  background: #dde0fb;
  color: #3558e8;
  box-shadow: 0 2px 8px rgba(74,108,247,0.22);
}

/* Notification badge */
.notif-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  border-radius: 8px;
  background: #ef4444;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  pointer-events: none;
}

.notif-badge--hidden {
  display: none;
}

/* ---- Notification block wrapper (positions the panel) ---- */
.tb-notif-wrap {
  position: relative;
}

.pms-notification-block {
  position: relative;
}

/* ============================================================
   NOTIFICATION PANEL
   ============================================================ */
.notif-panel {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 360px;
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.13);
  z-index: 1060;
  flex-direction: column;
  overflow: hidden;
}

.notif-panel.is-open {
  display: flex;
}

/* Panel header */
.notif-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid #3f2d7e;
  background: #3f2d7e;
}

.notif-panel-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
}

.notif-panel-title .material-icons {
  font-size: 18px;
  color: #ffffff;
}

.notif-panel-count {
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: #ef4444;
  padding: 2px 8px;
  border-radius: 10px;
}

/* Panel body / scrollable list */
.notif-panel-body {
  max-height: 340px;
  overflow-y: auto;
  padding: 6px 0;
}

.notif-panel-body::-webkit-scrollbar { width: 4px; }
.notif-panel-body::-webkit-scrollbar-track { background: transparent; }
.notif-panel-body::-webkit-scrollbar-thumb {
  background: #d1d5db;
  border-radius: 4px;
}

.notification-list-block {
  display: flex;
  flex-direction: column;
}

/* ---- Individual notification item ---- */
.notif-item {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 11px 16px;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
  position: relative;
  border-bottom: 1px solid #f5f5f5;
}

.notif-item:last-child {
  border-bottom: none;
}

.notif-item:hover {
  background: #f8f9ff;
  text-decoration: none;
  color: inherit;
}

.notif-item.unread {
  background: #f0f4ff;
}

.notif-item.read {
  opacity: 0.85;
}

/* Icon column */
.notif-item-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.notif-item-icon .material-icons {
  font-size: 16px;
  color: #fff;
}

.notif-icon--task     { background: #4a6cf7; }
.notif-icon--project  { background: #10b981; }
.notif-icon--discussion { background: #f59e0b; }
.notif-icon--other    { background: #8b5cf6; }

/* Body */
.notif-item-body {
  flex: 1;
  min-width: 0;
}

.notif-item-title {
  font-size: 13px;
  font-weight: normal;
  color: #1e293b;
  color: #000000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
}

.notif-item-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 11.5px;
  color: #94a3b8;
}

.notif-action-badge {
  background: #e8f5e9;
  color: #16a34a;
  padding: 1px 7px;
  border-radius: 10px;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: capitalize;
}

.notif-item-project {
  color: #64748b;
  font-weight: 500;
}

.notif-item-time {
  margin-left: auto;
  font-style: italic;
  color: #6c777c;
}

/* Unread dot */
.notif-unread-dot {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4a6cf7;
  flex-shrink: 0;
}

/* Empty state */
.notif-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 36px 16px;
  color: #b0bec5;
  gap: 8px;
}

.notif-empty-state .material-icons {
  font-size: 40px;
  color: #d1d5db;
}

.notif-empty-state p {
  font-size: 13px;
  margin: 0;
}

/* Panel footer */
.notif-panel-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.notif-foot-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: bold;
  color: #3f2d7e;
  text-decoration: none;
  transition: color 0.15s ease;
}

.notif-foot-link:hover {
  color: #3558e8;
  text-decoration: none;
}

.notif-foot-link .material-icons {
  font-size: 14px;
}

/* ============================================================
   TOPBAR — USER PROFILE BUTTON & DROPDOWN
   ============================================================ */
.tb-user-wrap {
  position: relative;
}

.tb-user-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: none;
  background: none;
  cursor: pointer;
  padding: 4px 8px 4px 4px;
  border-radius: 8px;
  transition: background 0.18s ease;
}

.tb-user-btn:hover {
  background: var(--primary-light);
}

.tb-user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  text-transform: uppercase;
}

.tb-user-name {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--heading-color);
  white-space: nowrap;
}

.tb-user-chevron {
  font-size: 18px !important;
  color: var(--text-muted);
  transition: transform 0.2s ease;
}

.tb-user-btn[aria-expanded="true"] .tb-user-chevron {
  transform: rotate(180deg);
}

/* User dropdown panel */
.tb-user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 210px;
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.13);
  display: none;
  flex-direction: column;
  overflow: hidden;
  z-index: 1060;
}

.tb-user-dropdown.is-open {
  display: flex;
}

/* Dropdown header (avatar + name + role) */
.tb-user-dd-header {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #3f2d7e 0%, #5b45a0 100%);
}

.tb-user-dd-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  flex-shrink: 0;
  text-transform: uppercase;
  border: 2px solid rgba(255,255,255,0.5);
}

.tb-user-dd-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.tb-user-dd-name {
  font-size: 13.5px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tb-user-dd-role {
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  font-weight: 400;
}

/* Divider */
.tb-user-dd-divider {
  border: none;
  border-top: 1px solid #f0f0f0;
  margin: 3px 0;
}

/* Menu items */
.tb-user-dd-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  font-size: 13.5px;
  color: var(--text-color);
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

.tb-user-dd-item:hover {
  background: var(--primary-light);
  color: var(--primary);
  text-decoration: none;
}

.tb-user-dd-item .material-icons {
  font-size: 17px;
  color: var(--text-muted);
}

.tb-user-dd-item:hover .material-icons {
  color: var(--primary);
}

.tb-user-dd-item--logout {
  color: #ef4444;
}

.tb-user-dd-item--logout:hover {
  background: #fef2f2;
  color: #dc2626;
}

.tb-user-dd-item--logout .material-icons {
  color: #ef4444;
}

.tb-user-dd-item--logout:hover .material-icons {
  color: #dc2626;
}

/* ============================================================
   PAGE FOOTER
   ============================================================ */
.page-footer {
  background: var(--card-bg);
  border-top: 1px solid var(--border-color);
  padding: 16px 24px;
  font-size: 12.5px;
  color: var(--text-muted);
}

/* ============================================================
   DRUPAL SYSTEM MESSAGES
   ============================================================ */
.messages--status {
  background: #d4edda;
  border-left: 4px solid var(--success);
  color: #155724;
  padding: 12px 16px;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  margin-bottom: 16px;
}

.messages--warning {
  background: #fff3cd;
  border-left: 4px solid var(--warning);
  color: #856404;
  padding: 12px 16px;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  margin-bottom: 16px;
}

.messages--error {
  background: #f8d7da;
  border-left: 4px solid var(--danger);
  color: #721c24;
  padding: 12px 16px;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  margin-bottom: 16px;
}
.multi-entity-search-form input.search-autocomplete{
	width: 700px !important;
	max-width:100% !important
}
.multi-entity-search-form input.search-autocomplete{
	margin-bottom:0px;
}
.multi-entity-search-form .form-item--search-keyword{}
.multi-entity-search-form .form-item--search-keyword .form-item__label{display:none;}
.multi-entity-search-form .search-submit{
	display:none;
}

/* ============================================================
   GLOBAL UI POLISH — Avatars, Badges, Icons, Buttons, Filters
   ============================================================ */

/* ---- User avatar circles (vibrant, globally available) ---- */
.pms-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0;
}

.pms-avatar-wrap {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.pms-avatar-wrap svg{
  margin-left:-27px;
}
.pms-avatar-name {
  font-size: 13px;
  color: var(--text-color);
  font-weight: 500;
}

/* 26-letter vibrant palette (overrides pale background-colors.css globally) */
.pms-avatar.av-A, .user_circle.letter-A span, td.letter-A .user_circle { background: #4a6cf7; }
.pms-avatar.av-B, .user_circle.letter-B span, td.letter-B .user_circle { background: #10b981; }
.pms-avatar.av-C, .user_circle.letter-C span, td.letter-C .user_circle { background: #f59e0b; }
.pms-avatar.av-D, .user_circle.letter-D span, td.letter-D .user_circle { background: #ef4444; }
.pms-avatar.av-E, .user_circle.letter-E span, td.letter-E .user_circle { background: #8b5cf6; }
.pms-avatar.av-F, .user_circle.letter-F span, td.letter-F .user_circle { background: #06b6d4; }
.pms-avatar.av-G, .user_circle.letter-G span, td.letter-G .user_circle { background: #ec4899; }
.pms-avatar.av-H, .user_circle.letter-H span, td.letter-H .user_circle { background: #14b8a6; }
.pms-avatar.av-I, .user_circle.letter-I span, td.letter-I .user_circle { background: #f97316; }
.pms-avatar.av-J, .user_circle.letter-J span, td.letter-J .user_circle { background: #6366f1; }
.pms-avatar.av-K, .user_circle.letter-K span, td.letter-K .user_circle { background: #84cc16; }
.pms-avatar.av-L, .user_circle.letter-L span, td.letter-L .user_circle { background: #0ea5e9; }
.pms-avatar.av-M, .user_circle.letter-M span, td.letter-M .user_circle { background: #d946ef; }
.pms-avatar.av-N, .user_circle.letter-N span, td.letter-N .user_circle { background: #f43f5e; }
.pms-avatar.av-O, .user_circle.letter-O span, td.letter-O .user_circle { background: #22c55e; }
.pms-avatar.av-P, .user_circle.letter-P span, td.letter-P .user_circle { background: #3b82f6; }
.pms-avatar.av-Q, .user_circle.letter-Q span, td.letter-Q .user_circle { background: #a855f7; }
.pms-avatar.av-R, .user_circle.letter-R span, td.letter-R .user_circle { background: #f97316; }
.pms-avatar.av-S, .user_circle.letter-S span, td.letter-S .user_circle { background: #10b981; }
.pms-avatar.av-T, .user_circle.letter-T span, td.letter-T .user_circle { background: #ef4444; }
.pms-avatar.av-U, .user_circle.letter-U span, td.letter-U .user_circle { background: #4a6cf7; }
.pms-avatar.av-V, .user_circle.letter-V span, td.letter-V .user_circle { background: #f59e0b; }
.pms-avatar.av-W, .user_circle.letter-W span, td.letter-W .user_circle { background: #06b6d4; }
.pms-avatar.av-X, .user_circle.letter-X span, td.letter-X .user_circle { background: #8b5cf6; }
.pms-avatar.av-Y, .user_circle.letter-Y span, td.letter-Y .user_circle { background: #ec4899; }
.pms-avatar.av-Z, .user_circle.letter-Z span, td.letter-Z .user_circle { background: #14b8a6; }

/* Global override: make user_circle circles colored and visible everywhere */
.user_circle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #fff !important;
  flex-shrink: 0;
}
.user_circle.letter-A { background: #4a6cf7; }
.user_circle.letter-B { background: #10b981; }
.user_circle.letter-C { background: #f59e0b; }
.user_circle.letter-D { background: #ef4444; }
.user_circle.letter-E { background: #8b5cf6; }
.user_circle.letter-F { background: #06b6d4; }
.user_circle.letter-G { background: #ec4899; }
.user_circle.letter-H { background: #14b8a6; }
.user_circle.letter-I { background: #f97316; }
.user_circle.letter-J { background: #6366f1; }
.user_circle.letter-K { background: #84cc16; }
.user_circle.letter-L { background: #0ea5e9; }
.user_circle.letter-M { background: #d946ef; }
.user_circle.letter-N { background: #f43f5e; }
.user_circle.letter-O { background: #22c55e; }
.user_circle.letter-P { background: #3b82f6; }
.user_circle.letter-Q { background: #a855f7; }
.user_circle.letter-R { background: #f97316; }
.user_circle.letter-S { background: #10b981; }
.user_circle.letter-T { background: #ef4444; }
.user_circle.letter-U { background: #4a6cf7; }
.user_circle.letter-V { background: #f59e0b; }
.user_circle.letter-W { background: #06b6d4; }
.user_circle.letter-X { background: #8b5cf6; }
.user_circle.letter-Y { background: #ec4899; }
.user_circle.letter-Z { background: #14b8a6; }

/* ---- Status badges ---- */
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  gap: 4px;
}

.status-badge--completed {
  background: #d1fae5;
  color: #065f46;
}
.status-badge--due {
  background: #fef3c7;
  color: #92400e;
}
.status-badge--overdue {
  background: #fee2e2;
  color: #991b1b;
}
.status-badge--inprogress {
  background: #dbeafe;
  color: #1e40af;
}
.status-badge--pending {
  background: #f3f4f6;
  color: #4b5563;
}

/* Leave application statuses */
.status-badge--approved {
  background: #d1fae5;
  color: #065f46;
}
.status-badge--rejected {
  background: #fee2e2;
  color: #991b1b;
}
.status-badge--cancelled {
  background: #f3f4f6;
  color: #6b7280;
}

/* Salary status */
.status-badge--active {
  background: #d1fae5;
  color: #065f46;
}
.status-badge--inactive {
  background: #f3f4f6;
  color: #6b7280;
}

/* Leave paid/unpaid */
.status-badge--paid {
  background: #dbeafe;
  color: #1e40af;
}
.status-badge--unpaid {
  background: #fef3c7;
  color: #92400e;
}

/* Resource tracking — hosting / subscription / domain */
.status-badge--expired {
  background: #fee2e2;
  color: #991b1b;
}
.status-badge--expiring-soon {
  background: #fef3c7;
  color: #92400e;
}
.status-badge--suspended {
  background: #ede9fe;
  color: #5b21b6;
}

/* Hardware conditions */
.status-badge--excellent {
  background: #d1fae5;
  color: #065f46;
}
.status-badge--good {
  background: #dcfce7;
  color: #166534;
}
.status-badge--working {
  background: #dbeafe;
  color: #1e40af;
}
.status-badge--needs-repair {
  background: #fef3c7;
  color: #92400e;
}
.status-badge--under-repair {
  background: #fef3c7;
  color: #92400e;
}
.status-badge--repair {
  background: #fef3c7;
  color: #92400e;
}
.status-badge--damaged {
  background: #fee2e2;
  color: #991b1b;
}
.status-badge--not-working {
  background: #fecaca;
  color: #7f1d1d;
}

/* Holiday types */
.status-badge--public {
  background: #dbeafe;
  color: #1e40af;
}
.status-badge--optional {
  background: #ede9fe;
  color: #5b21b6;
}
.status-badge--restricted {
  background: #fef3c7;
  color: #92400e;
}

/* ---- Tag / label chips ---- */
.pms-tag-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  background: #ede9fe;
  color: #5b21b6;
  margin: 1px 2px;
  white-space: nowrap;
}

/* ---- Date cells — calendar icon prefix ---- */
.date-cell {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-size: 13px;
}

.date-cell .material-icons {
  font-size: 14px;
  color: #6366f1;
  flex-shrink: 0;
}

/* Apply date icon to all table td.col-date, th.col-date */
td.col-date::before,
th.col-date::before {
  content: 'calendar_today';
  font-family: 'Material Icons';
  font-size: 13px;
  color: #6366f1;
  vertical-align: middle;
  margin-right: 4px;
}

/* ---- Action icon buttons (edit / delete / view) ---- */
.pms-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  background: transparent;
  color: var(--text-muted);
  text-decoration: none;
  padding: 0;
  font-size: 0;
  line-height: 1;
}

.pms-action-btn .material-icons {
  font-size: 17px;
  line-height: 1;
}

.pms-action-btn--edit {
  background: #eff6ff;
  color: #2563eb;
}
.pms-action-btn--edit:hover {
  background: #dbeafe;
  color: #1d4ed8;
  box-shadow: 0 2px 6px rgba(37,99,235,0.20);
  text-decoration: none;
}

.pms-action-btn--delete {
  background: #fef2f2;
  color: #dc2626;
}
.pms-action-btn--delete:hover {
  background: #fee2e2;
  color: #b91c1c;
  box-shadow: 0 2px 6px rgba(220,38,38,0.20);
}

.pms-action-btn--view {
  background: #f0fdf4;
  color: #16a34a;
}
.pms-action-btn--view:hover {
  background: #dcfce7;
  color: #15803d;
  box-shadow: 0 2px 6px rgba(22,163,74,0.20);
  text-decoration: none;
}

/* =============================================
   Leave Account Detail — month-grouped transactions
   ============================================= */

/* Wrapper */
.lat-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 4px 0 24px;
}

/* ── Summary card ── */
.lat-summary-card {
  /* background: #fff;
  border: 1px solid #e5e7eb; */
  /* border-radius: 14px; */
  padding: 10px 0px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  /* box-shadow: 0 1px 6px rgba(0,0,0,0.05); */
}

.lat-summary-user {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.lat-user-circle {
  width: 48px !important;
  height: 48px !important;
  font-size: 20px !important;
  flex-shrink: 0;
}

.lat-summary-user-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.lat-summary-name {
  font-weight: 700;
  font-size: 15px;
  color: #111827;
  line-height: 1.2;
}

.lat-summary-sub {
  font-size: 13px;
  color: #6b7280;
}

/* Stats strip */
.lat-stats-strip {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  flex: 1;
}

.lat-stat {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 10px 16px;
  flex: 1;
  min-width: 110px;
}

.lat-stat .material-icons {
  font-size: 22px;
  flex-shrink: 0;
}

.lat-stat-body {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.lat-stat-value {
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
}

.lat-stat-label {
  font-size: 11px;
  color: #6b7280;
  font-weight: 500;
}

/* Stat colour variants */
.lat-stat--open   { border-color: #c7d2fe; }
.lat-stat--open   .material-icons  { color: #6366f1; }
.lat-stat--open   .lat-stat-value  { color: #4338ca; }

.lat-stat--credit { border-color: #bbf7d0; }
.lat-stat--credit .material-icons  { color: #16a34a; }
.lat-stat--credit .lat-stat-value  { color: #15803d; }

.lat-stat--debit  { border-color: #fecaca; }
.lat-stat--debit  .material-icons  { color: #dc2626; }
.lat-stat--debit  .lat-stat-value  { color: #b91c1c; }

/* Balance stat — reuses la-balance badge colours */
.lat-stat--balance.lat-bal--good  { background: #d1fae5; border-color: #6ee7b7; }
.lat-stat--balance.lat-bal--good  .material-icons { color: #065f46; }
.lat-stat--balance.lat-bal--good  .lat-stat-value { color: #065f46; }
.lat-stat--balance.lat-bal--good  .lat-stat-label { color: #065f46; opacity: 0.75; }

.lat-stat--balance.lat-bal--warn  { background: #fef3c7; border-color: #fbbf24; }
.lat-stat--balance.lat-bal--warn  .material-icons { color: #78350f; }
.lat-stat--balance.lat-bal--warn  .lat-stat-value { color: #78350f; }
.lat-stat--balance.lat-bal--warn  .lat-stat-label { color: #78350f; opacity: 0.75; }

.lat-stat--balance.lat-bal--low   { background: #fee2e2; border-color: #fca5a5; }
.lat-stat--balance.lat-bal--low   .material-icons { color: #991b1b; }
.lat-stat--balance.lat-bal--low   .lat-stat-value { color: #991b1b; }
.lat-stat--balance.lat-bal--low   .lat-stat-label { color: #991b1b; opacity: 0.75; }

/* ── Month group ── */
.lat-month-group {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

.lat-month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
  gap: 12px;
  flex-wrap: wrap;
}

.lat-month-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-weight: 700;
  font-size: 14px;
  color: #1e293b;
}

.lat-month-title .material-icons {
  font-size: 17px;
  color: #6366f1;
}

.lat-month-meta {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.lat-month-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}

.lat-month-chip .material-icons { font-size: 13px; }

.lat-month-chip--credit { background: #dcfce7; color: #15803d; }
.lat-month-chip--debit  { background: #fee2e2; color: #b91c1c; }
.lat-month-chip--net    { background: #f1f5f9; color: #475569; }
.lat-month-chip--net-pos { background: #dcfce7; color: #15803d; }
.lat-month-chip--net-neg { background: #fee2e2; color: #b91c1c; }

/* ── Transaction table ── */
.lat-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  table-layout: fixed;
}

/* Column widths: Date | Type | Description (flexible) | Credit | Debit | Balance */
.lat-table th:nth-child(1),
.lat-table td:nth-child(1) { width: 120px; }

.lat-table th:nth-child(2),
.lat-table td:nth-child(2) { width: 150px; }

.lat-table th:nth-child(3),
.lat-table td:nth-child(3) { /* auto — takes remaining space */ }

.lat-table th:nth-child(4),
.lat-table td:nth-child(4) { width: 90px; }

.lat-table th:nth-child(5),
.lat-table td:nth-child(5) { width: 90px; }

.lat-table th:nth-child(6),
.lat-table td:nth-child(6) { width: 100px; }

.lat-table thead tr {
  background: #f8fafc;
}

.lat-table th {
  padding: 9px 14px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}

.lat-th--num { text-align: right; }

.lat-table td {
  padding: 10px 14px;
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
  color: #374151;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lat-table tbody tr:last-child td { border-bottom: none; }
.lat-table tbody tr:hover { background: #f8fafc; }

.lat-row--opening { background: #f5f3ff; }

/* Date cell */
.lat-td-date { white-space: nowrap; }

.lat-date-wrap {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.lat-date-icon { font-size: 14px !important; color: #94a3b8; }

.lat-opening-label {
  font-style: italic;
  color: #6366f1;
  font-size: 13px;
}

/* Type badge */
.lat-type-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.lat-type-badge--credit             { background: #dcfce7; color: #15803d; }
.lat-type-badge--debit              { background: #fee2e2; color: #b91c1c; }
.lat-type-badge--opening-balance    { background: #ede9fe; color: #6d28d9; }
.lat-type-badge--monthly-allocation { background: #dbeafe; color: #1d4ed8; }
.lat-type-badge--carry-forward      { background: #fef9c3; color: #854d0e; }
.lat-type-badge--leave-application  { background: #ffe4e6; color: #be123c; }
.lat-type-badge--adjustment         { background: #f3f4f6; color: #374151; }
.lat-type-badge--expiry             { background: #fef3c7; color: #92400e; }

/* Description cell */
.lat-td-desc { color: #374151; overflow: visible; text-overflow: clip; white-space: normal; }

.lat-by-user {
  display: block;
  font-size: 11px;
  color: #94a3b8;
  margin-top: 2px;
}

/* Amount cells */
.lat-td-num { text-align: right; white-space: nowrap; }

.lat-amount { font-weight: 600; font-size: 13px; }
.lat-amount--credit { color: #16a34a; }
.lat-amount--debit  { color: #dc2626; }
.lat-amount--empty  { color: #d1d5db; font-weight: 400; }

/* Running balance */
.lat-running-bal { font-size: 13px; font-weight: 700; }
.lat-running-bal--pos { color: #15803d; }
.lat-running-bal--neg { color: #dc2626; }

/* ── Empty state ── */
.lat-empty {
  text-align: center;
  padding: 48px 24px;
  color: #9ca3af;
  background: #fff;
  border-radius: 12px;
  border: 1px dashed #d1d5db;
}

.lat-empty .material-icons {
  font-size: 40px;
  display: block;
  margin-bottom: 10px;
}

/* =============================================
   Masquerade block — sleek admin switch bar
   ============================================= */

.msq-block {
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%);
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 10px 20px;
}

.msq-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 600px;
}

/* Icon + label */
.msq-label {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
}

.msq-icon .material-icons {
  font-size: 18px;
  color: #a5b4fc;
  line-height: 1;
}

.msq-title {
  font-size: 13px;
  font-weight: 600;
  color: #c7d2fe;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

/* Form area */
.msq-form-wrap {
  flex: 1;
}

/* Remove Drupal's default block label */
.msq-block .block__title { display: none; }

/* The container-inline wrapper */
.msq-form-wrap .container-inline {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Autocomplete input */
.msq-form-wrap #edit-masquerade-as,
.msq-form-wrap input[name="masquerade_as"] {
  flex: 1;
  height: 34px;
  padding: 0 12px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 6px;
  color: #e0e7ff;
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s, background 0.15s;
  min-width: 0;
}

.msq-form-wrap #edit-masquerade-as::placeholder,
.msq-form-wrap input[name="masquerade_as"]::placeholder {
  color: rgba(199,210,254,0.55);
}

.msq-form-wrap #edit-masquerade-as:focus,
.msq-form-wrap input[name="masquerade_as"]:focus {
  background: rgba(255,255,255,0.14);
  border-color: #818cf8;
  box-shadow: 0 0 0 2px rgba(129,140,248,0.25);
}

/* Switch button */
.msq-form-wrap .form-actions,
.msq-form-wrap .form-submit-group {
  margin: 0;
  padding: 0;
}

.msq-form-wrap input[type="submit"],
.msq-form-wrap button[type="submit"] {
  height: 34px;
  padding: 0 16px;
  background: #6366f1;
  border: none;
  border-radius: 6px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s, box-shadow 0.15s;
  letter-spacing: 0.01em;
}

.msq-form-wrap input[type="submit"]:hover,
.msq-form-wrap button[type="submit"]:hover {
  background: #4f46e5;
  box-shadow: 0 2px 8px rgba(79,70,229,0.45);
}

/* =============================================
   Leave Account — balance badge
   ============================================= */

a.pms-avatar-wrap--link {
  text-decoration: none;
  color: inherit;
}
a.pms-avatar-wrap--link:hover .pms-avatar-name {
  text-decoration: underline;
  color: var(--sidebar-active-text, #1d49d8);
}
a.pms-avatar-wrap--link:hover .user_circle {
  box-shadow: 0 0 0 2px var(--sidebar-active-text, #1d49d8);
}

.la-balance-cell {
  display: flex;
  align-items: center;
}

.la-balance-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px 5px 8px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

/* Green — good balance (≥ 10 days) */
.la-balance-badge--good {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border: 1px solid #6ee7b7;
}

/* Amber — low balance (1–9 days) */
.la-balance-badge--warn {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #78350f;
  border: 1px solid #fbbf24;
}

/* Red — critical balance (≤ 0 days) */
.la-balance-badge--low {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.la-balance-icon {
  font-size: 15px !important;
  line-height: 1;
}

.la-balance-num {
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
}

.la-balance-unit {
  font-size: 11px;
  font-weight: 500;
  opacity: 0.75;
  margin-left: 1px;
}

/* =============================================
   Unified list page layout
   Applies to: /leave-application, /leave-account, /holiday, /salaries,
               /pms/resource-tracking/hosting|subscription|hardware|domain
   ============================================= */

/* Outer page wrapper */
fieldset {
  margin: 0;
}

.pms-list-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
}

/* Action buttons row (Add X, secondary links) */
.pms-list-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* Filter form wrapper */
.pms-list-filters,
.pms-list-filters.task-report-filter-form,
.pms-list-filters.leave-application-filters {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px 20px;
}

/* Fieldset inside filter forms — remove browser default styling */
.pms-list-filters fieldset,
.pms-list-filters .fieldset-wrapper {
  border: none;
  padding: 0;
  margin: 0;
}

.pms-list-filters legend {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}

/* ---- All filter fields inline on one row ----
   Resource tracking forms use fieldset > .fieldset-wrapper.
   Holiday & leave-application use <table> rows.
   Both are normalised to flex here.
   ----------------------------------------------- */

/* fieldset-based forms: the .fieldset-wrapper is the real container */
.pms-list-filters .fieldset-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

/* Nested date-range fieldset — From + To on one line */
.pms-list-filters fieldset fieldset,
.pms-list-filters .date-range-filter {
  display: inline-flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 8px;
  border: none;
  padding: 0;
  margin: 0;
}

.pms-list-filters fieldset fieldset .fieldset-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: flex-end;
}

.pms-list-filters fieldset fieldset legend,
.pms-list-filters .date-range-filter legend {
  display: none;
}

/* Table-based forms (holiday, leave-application):
   override default table layout → flex rows */
.pms-list-filters table {
  display: block;
  width: auto;
  border: none;
  background: transparent;
}

.pms-list-filters table thead { display: none; }

.pms-list-filters table tbody {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.pms-list-filters table tr {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.pms-list-filters table td {
  display: block;
  padding: 0;
}

/* All form items */
.pms-list-filters .form-item {
  margin: 0;
}

.pms-list-filters .form-item label {
  font-size: 11px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: block;
  margin-bottom: 4px;
}

.pms-list-filters input[type="text"],
.pms-list-filters select {
  height: 36px;
  padding: 0 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
  color: #374151;
  background: #f9fafb;
  min-width: 130px;
}

.pms-list-filters input[type="text"]:focus,
.pms-list-filters select:focus {
  outline: none;
  border-color: #6366f1;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.10);
}

/* Filter / Reset action buttons */
.pms-list-filters .filter-actions,
.pms-list-filters .form-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  padding: 0;
}

/* Date range — From and To always on one line */
.pms-list-filters fieldset fieldset,
.pms-list-filters .date-range-filter {
  display: inline-flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 8px;
  border: none;
  padding: 0;
  margin: 0;
}

.pms-list-filters fieldset fieldset legend,
.pms-list-filters .date-range-filter legend {
  display: none;
}

.pms-list-filters fieldset fieldset .form-item,
.pms-list-filters .date-range-filter .form-item {
  margin: 0;
}

/* =============================================
   End unified list page layout
   ============================================= */

/* Group action buttons with consistent spacing */
.pms-action-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Backwards compat: style existing edit-log / delete-log buttons */
button.edit-log,
button.delete-log {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  font-size: 0 !important;
  line-height: 1;
  padding: 0;
  position: relative;
  transition: background 0.15s, box-shadow 0.15s;
}

button.edit-log::after {
  content: 'edit';
  font-family: 'Material Icons';
  font-size: 16px;
  line-height: 1;
  color: #2563eb;
}
button.edit-log {
  background: #eff6ff;
}
button.edit-log:hover {
  background: #dbeafe;
  box-shadow: 0 2px 6px rgba(37,99,235,0.20);
}

button.delete-log::after {
  content: 'delete';
  font-family: 'Material Icons';
  font-size: 16px;
  line-height: 1;
  color: #dc2626;
}
button.delete-log {
  background: #fef2f2;
}
button.delete-log:hover {
  background: #fee2e2;
  box-shadow: 0 2px 6px rgba(220,38,38,0.20);
}

.rising-layout #main-content .timesheet-table-wrapper table td:first-child {
  padding-left:30px !important;
}

/* ---- Colorful table headers ---- */
.rising-layout #main-content table thead th,
.rising-layout #main-content .views-table thead th {
  background: linear-gradient(135deg, #3f2d7e 0%, #5b45a0 100%);
  color: var(--text-color) !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 14px;
  border: none;
  white-space: nowrap;
  background: #f8f9fc !important;
  color: #000000 !important;
  /* text-align:center; */
}

.rising-layout #main-content table thead th a,
.rising-layout #main-content table thead th a:hover {
  color: var(--text-color) !important;
  text-decoration: none;
}

/* Sort indicator arrows keep white */
.rising-layout #main-content table thead th.is-active a,
.rising-layout #main-content table thead .sort-header a {
  color: rgba(255,255,255,0.85) !important;
}

/* ---- Consistent PMS primary button ---- */
.pms-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  border-radius: 8px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s, box-shadow 0.18s;
  text-decoration: none;
  white-space: nowrap;
}

.pms-btn--primary {
  background: var(--primary);
  color: #fff;
}
.pms-btn--primary:hover {
  background: var(--primary-dark, #2e1d6e);
  box-shadow: 0 3px 10px rgba(63,45,126,0.28);
  color: #fff;
  text-decoration: none;
}

.pms-btn--secondary {
  background: var(--primary-light);
  color: var(--primary);
}
.pms-btn--secondary:hover {
  background: #ddd6fe;
  box-shadow: 0 3px 8px rgba(63,45,126,0.15);
  color: var(--primary);
  text-decoration: none;
}

.pms-btn--danger {
  background: #fef2f2;
  color: #dc2626;
}
.pms-btn--danger:hover {
  background: #fee2e2;
  box-shadow: 0 3px 8px rgba(220,38,38,0.18);
}

.pms-btn .material-icons {
  font-size: 17px;
}

/* "Add" button on discussions / project sub-pages */
.burdown-add-project a,
.pms-files-form .pms-upload-btn,
a.button-action {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 7px 16px !important;
  border-radius: 8px !important;
  background: var(--primary) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none;
  border: none;
  transition: background 0.18s, box-shadow 0.18s;
  cursor: pointer;
}

.burdown-add-project a:hover,
a.button-action:hover {
  background: #2e1d6e !important;
  box-shadow: 0 3px 10px rgba(63,45,126,0.28);
  color: #fff !important;
  text-decoration: none;
}

/* ---- Filter form redesign ---- */
.pms-filter-form,
form.views-exposed-form,
.table-wrapper-border form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 18px;
}

form[id*="filter"]{

}
form[id*="search-form"]{

}

.pms-filter-form .form-item,
form.views-exposed-form .form-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
}

.pms-filter-form .form-item label,
form.views-exposed-form .form-item label,
.pms-filter-form label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0;
}

.pms-filter-form input[type="text"],
.pms-filter-form input[type="date"],
.pms-filter-form select,
form.views-exposed-form input[type="text"],
form.views-exposed-form select,
.table-wrapper-border form input[type="text"],
.table-wrapper-border form select {
  height: 34px;
  padding: 0 10px !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 7px !important;
  font-size: 13px !important;
  color: var(--text-color) !important;
  background: #fafafa !important;
  box-shadow: none !important;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  margin: 0 !important;
}

.pms-filter-form input:focus,
.pms-filter-form select:focus,
form.views-exposed-form input:focus,
form.views-exposed-form select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(63,45,126,0.10) !important;
  background: #fff !important;
}

.pms-filter-form input[type="submit"],
.pms-filter-form button[type="submit"],
form.views-exposed-form input[type="submit"],
.table-wrapper-border form input[type="submit"],
.table-wrapper-border form button[type="submit"] {
  height: 34px;
  padding: 0 16px !important;
  border-radius: 7px !important;
  background: var(--primary) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border: none !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: background 0.18s;
  margin: 0 !important;
  align-self: flex-end;
}

.pms-filter-form input[type="submit"]:hover,
form.views-exposed-form input[type="submit"]:hover,
.table-wrapper-border form input[type="submit"]:hover {
  background: #2e1d6e !important;
}

/* ---- Week navigation (activity / timesheet) ---- */
.week-navigation-wrapper {
  background: #fff;
  /* border: 1px solid var(--border-color); */
  border-radius: 10px;
  /* padding: 12px 16px; */
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.week-navigation {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.week-navigation a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: var(--primary-light);
  color: var(--primary);
  text-decoration: none;
  transition: background 0.15s;
}

.week-navigation a:hover {
  /* background: var(--primary);
  color: #fff; */
}

.week-navigation a .material-icons {
  font-size: 18px;
  color: #543f98;
}

.week-date-input {
  border: 1px solid var(--border-color) !important;
  border-radius: 7px !important;
  padding: 4px 10px !important;
  font-size: 13px;
  background: #fafafa;
  cursor: default;
}

/* ---- Discussion page card ---- */
#discussions-page {
  background: #fff;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  padding: 20px;
}

#discussions-page .table-wrapper-border {
  border: none;
  padding: 0;
}

.col_comment_count {
  width: 50px;
  text-align: center;
}

.col_comment_count .comment_count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ede9fe;
  color: #5b21b6;
  font-size: 13px;
  font-weight: 700;
}

.col_ago {
  color: var(--text-muted);
  font-size: 12.5px;
  white-space: nowrap;
}

.discussion_link a {
  font-weight: 500;
  color: var(--primary);
  text-decoration: none;
}

.discussion_link a:hover {
  text-decoration: underline;
}

/* ---- Activity/log items styling ---- */
#project-activities .log-item .comment-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #f5f5f5;
}

#project-activities .log-item .comment-row:last-child {
  border-bottom: none;
}

.comment-user-icon,
.comment-user {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #fff !important;
  flex-shrink: 0;
  text-transform: uppercase;
}

/* ---- Log action buttons area ---- */
.log-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
}

/* ---- Sidebar inner rounded card ---- */
.left-sidebar-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 16px;
  margin: 10px;
  overflow: hidden;
  background: #3f2d7e;
}

/* Convenience alias for explicitly-styled tables in templates */
.pms-kuber-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}

.pms-kuber-table thead th {
  background: linear-gradient(135deg, #3f2d7e 0%, #5b45a0 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 14px;
  border: none;
  white-space: nowrap;
}

.pms-kuber-table thead th .material-icons {
  font-size: 13px;
  vertical-align: middle;
  margin-right: 3px;
}

.pms-kuber-table tbody tr:hover {
  background: #f8f9ff;
}

.pms-kuber-table tbody td {
  padding: 10px 14px;
  border-bottom: 1px solid #f0f0f0;
  vertical-align: middle;
  color: var(--text-color);
}

/* ============================================================
   ACTIVITY TIMELINE — Kuber-style
   ============================================================ */

/* ── Page wrapper ── */
.pms-activity-page {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Week nav card ── */
.pms-act-nav-card {
  /* background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px 20px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px; */
}

.pms-act-nav-card .week-navigation {
  /* margin:auto; */
  /* display: flex;
  align-items: center;
  gap: 8px; */
}

/* ── Card header (shared with content card) ── */
.pms-act-card-outer {
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.pms-act-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f0f0f0;
  background: linear-gradient(135deg, #3f2d7e 0%, #5b45a0 100%);
}

.pms-act-card-head-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pms-act-card-title {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pms-act-card-title .material-icons {
  font-size: 18px;
  color: rgba(255,255,255,0.85);
}

.pms-act-card-subtitle {
  font-size: 13px;
  color: rgba(255,255,255,0.7);
  margin-top: 2px;
}

.pms-act-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,0.18);
  color: #fff;
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
}

.pms-act-card-badge .material-icons {
  font-size: 14px;
}

/* ── Date section header ── */
.act-date-section {
  padding: 0 20px;
}

.act-date-section:last-child .act-timeline {
  padding-bottom: 16px;
}

.act-date-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 0 10px;
  font-size: 14px;
  font-weight: normal;
  color: #000000;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  border-bottom: 1px solid #f0f0f0;
  margin-bottom: 2px;
}

.act-date-header .material-icons {
  font-size: 14px;
  color: var(--primary);
}

/* ── Timeline container ── */
.act-timeline {
  display: flex;
  flex-direction: column;
  padding: 8px 0;
}
.act-timeline .act-user-row{
  display:none;
}
.act-timeline .act-body{
  font-size:15px;
  margin-bottom: 30px;
}
.act-date-header{

}
.act-timeline .act-time-chip{
  color:#000000;
  font-size: 14px;
}
/* ── Individual activity item ── */
.act-item {
  display: flex;
  gap: 16px;
  padding: 0px;
  position: relative;
}

/* ── Left column: icon ring + connecting line ── */
.act-icon-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 42px;
}

.act-icon-ring {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}

.act-icon-ring .material-icons {
  font-size: 20px;
  color: #fff;
}

/* Type color variants */
.act-icon-ring--created   { background: linear-gradient(135deg, #10b981, #059669); }
.act-icon-ring--changed   { background: linear-gradient(135deg, #4a6cf7, #3558e8); }
.act-icon-ring--comment   { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
.act-icon-ring--work      { background: linear-gradient(135deg, #f59e0b, #d97706); }
.act-icon-ring--default   { background: linear-gradient(135deg, #64748b, #475569); }

/* Vertical connector line between icon rings */
.act-connector {
  width: 1px;
  flex: 1;
  min-height: 18px;
  background: #3f2d7e;
  margin-top: 0px;
  border-radius: 1px;
}

/* ── Right column: content card ── */
.act-content {
  flex: 1;
  min-width: 0;
  padding-bottom: 4px;
}

.act-content-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 6px;
}

.act-type-label {
  font-size: 14px;
  font-weight: 700;
  color: #1e293b;
  white-space: nowrap;
}

/* Status badge */
.act-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  text-transform: capitalize;
  white-space: nowrap;
}

.act-badge--created  { background: #d1fae5; color: #065f46; }
.act-badge--changed  { background: #dbeafe; color: #1e40af; }
.act-badge--comment  { background: #ede9fe; color: #5b21b6; }
.act-badge--work     { background: #fef3c7; color: #92400e; }
.act-badge--default  { background: #f3f4f6; color: #4b5563; }

/* Time chip */
.act-time-chip {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11.5px;
  color: #94a3b8;
  white-space: nowrap;
}

.act-time-chip .material-icons {
  font-size: 16px;
  margin-top: 0px;
}

/* Description / comment */
.act-body {
  font-size: 13px;
  color: #475569;
  line-height: 1.55;
  margin-bottom: 8px;
}

.act-body p,
.act-body .comment {
  margin: 0;
  font-size: 13px;
  color: #475569;
}

.act-project-tag {
  display: block;
}
.act-project-tag .act-project-tag-inner{
  display: inline-block;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
  color: var(--primary);
  background: var(--primary-light);
  padding: 2px 9px;
  border-radius: 20px;
  font-weight: 600;
  margin-top: 4px;
}

.act-project-tag .material-icons {
  font-size: 13px;
}

/* User footer */
.act-user-row {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
}

.act-user-name {
  font-size: 12.5px;
  font-weight: 600;
  color: #64748b;
}

/* ── "View All" footer link ── */
.pms-act-view-all {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.pms-act-view-all a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
  transition: color 0.15s;
}

.pms-act-view-all a:hover {
  color: #2e1d6e;
  text-decoration: none;
}

.pms-act-view-all .material-icons {
  font-size: 16px;
}

/* ── Empty state ── */
.act-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 20px;
  gap: 10px;
  color: #94a3b8;
}

.act-empty .material-icons {
  font-size: 48px;
  color: #d1d5db;
}

.act-empty p {
  font-size: 14px;
  margin: 0;
}

/* ── Task-view log items (else branch: single task activity) ── */
.pms-task-log-card {
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.pms-task-log-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  border-bottom: 1px solid #f0f0f0;
  background: linear-gradient(135deg, #3f2d7e 0%, #5b45a0 100%);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

.pms-task-log-head .material-icons {
  font-size: 18px;
  color: rgba(255,255,255,0.85);
}

.pms-task-log-body {
  padding: 6px 10px;
}

/* Comment log item */
.act-comment-item {
  display: flex;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid #f9f9f9;
}

.act-comment-item:last-child {
  border-bottom: none;
}

.act-comment-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.act-comment-user {
  font-size: 13.5px;
  font-weight: 700;
  color: #1e293b;
}

.act-comment-when {
  font-size: 11.5px;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 3px;
}

.act-comment-when .material-icons {
  font-size: 13px;
}

.act-comment-text {
  font-size: 13.5px;
  color: #475569;
  line-height: 1.55;
}

.act-comment-text p { margin: 0; }

/* Work log item */
.act-work-item {
  display: flex;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid #f9f9f9;
  align-items: flex-start;
}

.act-work-item:last-child {
  border-bottom: none;
}
#pms_time_entry .act-work-item {
  padding: 4px 0px;
  align-items: center;
}

.act-work-details {
  flex: 1;
  min-width: 0;
}

.act-work-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.act-work-task {
  font-size: 13px;
  color: #64748b;
  font-style: italic;
}

.act-hours-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fef3c7;
  color: #92400e;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 700;
  flex-shrink: 0;
  margin-left: auto;
  align-self: flex-start;
}

.act-hours-badge .material-icons {
  font-size: 14px;
}

/* Generic created/changed log (task view) */
.act-generic-item {
  display: flex;
  gap: 12px;
  padding: 10px 18px;
  border-bottom: 1px solid #f9f9f9;
  align-items: center;
}

.act-generic-item:last-child {
  border-bottom: none;
}

.act-generic-text {
  font-size: 13px;
  color: #475569;
  flex: 1;
}

.act-generic-text strong {
  color: #1e293b;
}

/* Responsive */
@media (max-width: 600px) {
  .act-item { gap: 10px; }
  .act-icon-ring { width: 34px; height: 34px; }
  .act-icon-ring .material-icons { font-size: 17px; }
  .act-icon-col { width: 34px; }
  .act-type-label { font-size: 13px; }
}

/* ============================================================
   END GLOBAL UI POLISH
   ============================================================ */

/* ============================================================
   KANBAN BOARD — Smarthr-inspired redesign
   ============================================================ */

/* Page wrapper */
.kanban-page-wrapper {
  display: flex;
  flex-direction: column;
}

/* ── Toolbar ── */
.kanban-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0 18px;
  flex-wrap: wrap;
}

.kanban-toolbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.kanban-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Search box */
.kanban-search-wrap {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0 12px;
  height: 38px;
  gap: 6px;
  min-width: 220px;
}

.kanban-search-wrap .material-icons {
  color: #94a3b8;
  font-size: 18px;
}

.kanban-search-input {
  border: none !important;
  box-shadow: none !important;
  outline: none;
  height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px;
  background: transparent;
  min-height: unset !important;
  color: #334155;
  flex: 1;
}

/* Filter selects */
.kanban-filter-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

.kanban-filter-select {
  height: 38px;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 0 12px !important;
  font-size: 13px;
  background: #fff;
  color: #334155;
  cursor: pointer;
  min-width: 130px;
  box-shadow: none !important;
  margin: 0 !important;
}

/* Add Task button */
.kanban-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #4f46e5;
  color: #fff !important;
  border-radius: 8px;
  padding: 0 18px;
  height: 38px;
  font-size: 14px;
  font-weight: 500;
  transition: box-shadow 0.2s ease;
  white-space: nowrap;
  text-decoration: none !important;
}

.kanban-add-btn .material-icons {
  font-size: 18px;
}

.kanban-add-btn:hover {
  box-shadow: 0 0 0 3px rgba(79,70,229,0.27);
  color: #fff !important;
}

/* Admin filter form inside toolbar */
.kanban-admin-filters .sprint-progress-filter-form {
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ── Board horizontal scroll ── */
.kanban-board {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 20px;
  align-items: flex-start;
  min-height: 60vh;
}

.kanban-board::-webkit-scrollbar { height: 6px; }
.kanban-board::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 3px; }
.kanban-board::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }

/* ── Column ── */
.kanban-column {
  min-width: 290px;
  max-width: 290px;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  border-radius: 12px;
  background: #edf2f4;   /* Smarthr bg-transparent-secondary */
}

/* Column header */
.kanban-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: #fff;
  border-radius: 10px 10px 0 0;
  margin: 8px 8px 0;
}

.kanban-col-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Double-ring dot indicator — Smarthr style */
.kanban-col-dot-ring {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.kanban-col-dot-inner {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: block;
}

/* Column color themes */
.kanban-col-ring-1 { background: #d8f5e8; }
.kanban-col-ring-1 .kanban-col-dot-inner { background: #22c55e; }

.kanban-col-ring-2 { background: #fce7f3; }
.kanban-col-ring-2 .kanban-col-dot-inner { background: #ec4899; }

.kanban-col-ring-3 { background: #dbeafe; }
.kanban-col-ring-3 .kanban-col-dot-inner { background: #3b82f6; }

.kanban-col-ring-4 { background: #ffedd5; }
.kanban-col-ring-4 .kanban-col-dot-inner { background: #f97316; }

.kanban-col-ring-5 { background: #ede9fe; }
.kanban-col-ring-5 .kanban-col-dot-inner { background: #8b5cf6; }

.kanban-col-ring-6 { background: #d1fae5; }
.kanban-col-ring-6 .kanban-col-dot-inner { background: #10b981; }

.kanban-col-ring-7 { background: #fef3c7; }
.kanban-col-ring-7 .kanban-col-dot-inner { background: #f59e0b; }

.kanban-col-ring-8 { background: #fce7f3; }
.kanban-col-ring-8 .kanban-col-dot-inner { background: #f43f5e; }

.kanban-col-name {
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
  text-transform: capitalize;
}

/* Task count badge */
.kanban-col-count {
  background: #f1f5f9;
  color: #64748b;
  font-size: 11px;
  font-weight: 600;
  padding: 1px 8px;
  border-radius: 20px;
  min-width: 22px;
  text-align: center;
  display: inline-block;
}

/* Column body / drop zone */
.kanban-col-body {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 120px;
  /* reset list-group defaults */
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  background: transparent;
}

/* ── Kanban Card (kc-*) ── */
.kanban-card {
  background: #fff;
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  cursor: grab;
  transition: box-shadow 0.2s ease, transform 0.15s ease;
  border: none !important;
  margin: 0 !important;
  display: block !important;
}

.kanban-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.1);
  transform: translateY(-1px);
}

.kanban-card.ui-sortable-helper {
  transform: rotate(1deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.14);
  cursor: grabbing;
}

/* Completed task card — dimmed + title strikethrough */
.kanban-card--done {
  opacity: 0.72;
}

.kanban-card--done .kc-title a {
  text-decoration: line-through !important;
  color: #94a3b8 !important;
}

/* ── Row 1: Priority tag + action icons ── */
.kc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 10px;
}

/* Action icon buttons (replacing 3-dot menu) */
.kc-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.kanban-card:hover .kc-actions {
  opacity: 1;
}

.kc-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 5px;
  color: #94a3b8 !important;
  text-decoration: none !important;
  transition: background 0.12s, color 0.12s;
  flex-shrink: 0;
}

.kc-action-btn .material-icons { font-size: 15px; }

/* View — green (matches .pms-action-btn--view) */
.kc-action-btn--view { background: #f0fdf4; color: #16a34a !important; }
.kc-action-btn--view:hover { background: #dcfce7; color: #15803d !important; box-shadow: 0 2px 6px rgba(22,163,74,0.18); }

/* Edit — blue (matches .pms-action-btn--edit) */
.kc-action-btn--edit { background: #eff6ff; color: #2563eb !important; }
.kc-action-btn--edit:hover { background: #dbeafe; color: #1d4ed8 !important; box-shadow: 0 2px 6px rgba(37,99,235,0.18); }

/* Close — teal */
.kc-action-btn--close { background: #f0fdfa; color: #0d9488 !important; }
.kc-action-btn--close:hover { background: #ccfbf1; color: #0f766e !important; box-shadow: 0 2px 6px rgba(13,148,136,0.18); }

/* Backlog — slate */
.kc-action-btn--backlog { background: #f8fafc; color: #64748b !important; }
.kc-action-btn--backlog:hover { background: #f1f5f9; color: #475569 !important; }

/* Tag badge (kept for backward-compat, hidden on new cards) */
.kc-tag {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  background: #e0f2fe;
  color: #0369a1;
  max-width: 155px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kc-tag-a, .kc-tag-b { background: #fce7f3; color: #be185d; }
.kc-tag-c, .kc-tag-d { background: #ede9fe; color: #6d28d9; }
.kc-tag-e, .kc-tag-f { background: #d1fae5; color: #065f46; }
.kc-tag-g, .kc-tag-h { background: #fef3c7; color: #92400e; }
.kc-tag-i, .kc-tag-j { background: #fee2e2; color: #991b1b; }
.kc-tag-k, .kc-tag-l { background: #e0f2fe; color: #0369a1; }
.kc-tag-m, .kc-tag-n { background: #f0fdf4; color: #166534; }
.kc-tag-o, .kc-tag-p { background: #fff7ed; color: #9a3412; }
.kc-tag-q, .kc-tag-r { background: #fdf2f8; color: #9d174d; }
.kc-tag-s, .kc-tag-t { background: #f0f9ff; color: #075985; }
.kc-tag-u, .kc-tag-v { background: #f5f3ff; color: #5b21b6; }
.kc-tag-w, .kc-tag-x { background: #ecfdf5; color: #047857; }
.kc-tag-y, .kc-tag-z { background: #fffbeb; color: #b45309; }
.kc-tag-default        { background: #f1f5f9; color: #64748b; }

/* 3-dot menu */
.kc-menu {
  position: relative;
  flex-shrink: 0;
}

.kc-menu-btn {
  background: none;
  border: none;
  padding: 1px 3px;
  cursor: pointer;
  border-radius: 4px;
  display: flex;
  align-items: center;
  color: #94a3b8;
  line-height: 1;
}

.kc-menu-btn:hover { background: #f1f5f9; color: #334155; }

.kc-menu-btn .material-icons { font-size: 18px; }

.kc-menu-drop {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  min-width: 145px;
  z-index: 300;
  overflow: hidden;
}

.kc-menu:hover .kc-menu-drop { display: block; }

.kc-menu-drop a {
  display: flex !important;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 13px;
  color: #334155 !important;
  text-decoration: none !important;
  transition: background 0.12s;
}

.kc-menu-drop a:hover { background: #f8fafc; color: #4f46e5 !important; }
.kc-menu-drop a .material-icons { font-size: 15px; color: #94a3b8; }

/* ── Row 2: Title ── */
.kc-title {
  margin-bottom: 10px;
}

.kc-title a {
  font-size: 13px;
  font-weight: 500;
  color: #1e293b !important;
  line-height: 1.45;
  display: block;
  text-decoration: none !important;
  word-break: break-word;
}

.kc-title a:hover { color: #4f46e5 !important; }

.kc-ticket-id {
  display: block;
  font-size: 11px;
  color: #94a3b8;
  margin-top: 2px;
  font-weight: 400;
}

/* ── Row 3: Assignee + date ── */
.kc-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

/* Assignee avatar row */
.kc-assignee-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.kc-avatar {
  width: 24px;
  height: 24px;
  min-width: 24px;
  border-radius: 50%;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.kc-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.kc-avatar-letter {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: #94a3b8; /* fallback */
}

/* Lowercase letter colour palette for kc-avatar-letter and kb-avatar-letter */
.kc-avatar-letter.letter-a, .kb-avatar-letter.letter-a { background: #4a6cf7; }
.kc-avatar-letter.letter-b, .kb-avatar-letter.letter-b { background: #10b981; }
.kc-avatar-letter.letter-c, .kb-avatar-letter.letter-c { background: #f59e0b; }
.kc-avatar-letter.letter-d, .kb-avatar-letter.letter-d { background: #ef4444; }
.kc-avatar-letter.letter-e, .kb-avatar-letter.letter-e { background: #8b5cf6; }
.kc-avatar-letter.letter-f, .kb-avatar-letter.letter-f { background: #06b6d4; }
.kc-avatar-letter.letter-g, .kb-avatar-letter.letter-g { background: #ec4899; }
.kc-avatar-letter.letter-h, .kb-avatar-letter.letter-h { background: #14b8a6; }
.kc-avatar-letter.letter-i, .kb-avatar-letter.letter-i { background: #f97316; }
.kc-avatar-letter.letter-j, .kb-avatar-letter.letter-j { background: #6366f1; }
.kc-avatar-letter.letter-k, .kb-avatar-letter.letter-k { background: #84cc16; }
.kc-avatar-letter.letter-l, .kb-avatar-letter.letter-l { background: #0ea5e9; }
.kc-avatar-letter.letter-m, .kb-avatar-letter.letter-m { background: #d946ef; }
.kc-avatar-letter.letter-n, .kb-avatar-letter.letter-n { background: #f43f5e; }
.kc-avatar-letter.letter-o, .kb-avatar-letter.letter-o { background: #22c55e; }
.kc-avatar-letter.letter-p, .kb-avatar-letter.letter-p { background: #3b82f6; }
.kc-avatar-letter.letter-q, .kb-avatar-letter.letter-q { background: #a855f7; }
.kc-avatar-letter.letter-r, .kb-avatar-letter.letter-r { background: #f97316; }
.kc-avatar-letter.letter-s, .kb-avatar-letter.letter-s { background: #10b981; }
.kc-avatar-letter.letter-t, .kb-avatar-letter.letter-t { background: #ef4444; }
.kc-avatar-letter.letter-u, .kb-avatar-letter.letter-u { background: #4a6cf7; }
.kc-avatar-letter.letter-v, .kb-avatar-letter.letter-v { background: #f59e0b; }
.kc-avatar-letter.letter-w, .kb-avatar-letter.letter-w { background: #06b6d4; }
.kc-avatar-letter.letter-x, .kb-avatar-letter.letter-x { background: #8b5cf6; }
.kc-avatar-letter.letter-y, .kb-avatar-letter.letter-y { background: #ec4899; }
.kc-avatar-letter.letter-z, .kb-avatar-letter.letter-z { background: #14b8a6; }

.kc-assignee-name {
  font-size: 13px;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 110px;
}

.kc-priority {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  text-transform: capitalize;
  flex-shrink: 0;
}

.kc-priority .material-icons { font-size: 8px; }

.kc-priority--critical { background: #fee2e2; color: #991b1b; }
.kc-priority--high     { background: #fef3c7; color: #92400e; }
.kc-priority--medium   { background: #dbeafe; color: #1d4ed8; }
.kc-priority--low      { background: #f0fdf4; color: #166534; }
.kc-priority--blocker  { background: #fce7f3; color: #be185d; }
.kc-priority--none     { background: #f1f5f9; color: #94a3b8; }

.kc-date {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}

.kc-date .material-icons { font-size: 13px; color: #94a3b8; }

/* Overdue date — red when past deadline and task not done */
.kc-date--overdue {
  color: #dc2626 !important;
  font-weight: 600;
}
.kc-date--overdue .material-icons { color: #dc2626 !important; }

/* Subtask progress badge — green when all done */
.kc-subtask-done {
  background: #d1fae5 !important;
  border-color: #6ee7b7 !important;
  color: #065f46 !important;
}

.kc-subtask-done .material-icons { color: #059669 !important; }

/* JS filter hide */
.kanban-card.kanban-hidden { display: none !important; }

/* ── Row 4: Sub-task progress bar ── */
.kc-progress-wrap {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.kc-progress-bar {
  flex: 1;
  height: 5px;
  background: #e2e8f0;
  border-radius: 99px;
  overflow: hidden;
}

.kc-progress-fill {
  height: 100%;
  background: #4f46e5;
  border-radius: 99px;
  transition: width 0.3s ease;
  min-width: 2px;
}

.kc-progress-fill.kc-progress-complete {
  background: #22c55e;
}

.kc-progress-label {
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
  flex-shrink: 0;
}

.kc-progress-label--done {
  color: #16a34a;
  font-weight: 600;
}

/* ── Row 5: Footer counts (comments / attachments) ── */
.kc-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #f1f5f9;
}

.kc-count-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 2px 8px 2px 6px;
  line-height: 1;
}

.kc-count-badge .material-icons {
  font-size: 13px;
  color: #94a3b8;
}

/* Comment badge — indigo */
.kc-badge--comment {
  background: #eef2ff;
  border-color: #c7d2fe;
  color: #4338ca;
}
.kc-badge--comment .material-icons { color: #6366f1; }

/* Attachment badge — amber */
.kc-badge--attachment {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}
.kc-badge--attachment .material-icons { color: #f59e0b; }

/* ── Stats Header ── */
.kb-stats-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 0 12px;
  border-bottom: 1px solid #e2e8f0;
  margin-bottom: 0;
}

.kb-stats-left {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.kb-stats-title {
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
}

/* Stacked assignee avatars */
.kb-avatars-stack {
  display: flex;
  align-items: center;
}

.kb-avatar-item {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid #fff;
  overflow: hidden;
  margin-left: -8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  background: #cbd5e1;
}

.kb-avatars-stack .kb-avatar-item:first-child {
  margin-left: 0;
}

.kb-avatar-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.kb-avatar-letter {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}

.kb-avatar-more {
  background: #94a3b8;
  color: #fff !important;
  font-size: 10px;
  font-weight: 700;
}

/* Stats counts */
.kb-stats-counts {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.kb-stat-item {
  font-size: 13px;
  color: #64748b;
}

.kb-stat-item strong {
  color: #1e293b;
  font-weight: 700;
}

.kb-stat-sep {
  color: #cbd5e1;
  font-size: 13px;
}

/* Right side: search + add button */
.kb-stats-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.kb-search-wrap {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0 12px;
  height: 38px;
  gap: 6px;
  min-width: 200px;
}

.kb-search-wrap .material-icons {
  color: #94a3b8;
  font-size: 18px;
}

.kb-search-input {
  border: none !important;
  box-shadow: none !important;
  outline: none;
  height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 13px;
  background: transparent;
  min-height: unset !important;
  color: #334155;
  flex: 1;
}

.kb-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #4f46e5;
  color: #fff !important;
  border-radius: 8px;
  padding: 0 16px;
  height: 38px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none !important;
  transition: box-shadow 0.2s ease;
}

.kb-add-btn .material-icons { font-size: 18px; }

.kb-add-btn:hover {
  box-shadow: 0 0 0 3px rgba(79,70,229,0.27);
  color: #fff !important;
}

/* ── Filter Bar ── */
.kb-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 0 14px;
  border-bottom: 1px solid #e2e8f0;
  margin-bottom: 16px;
}

.kb-filter-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.kb-filter-label {
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Priority pill tabs */
.kb-priority-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.kb-ptab {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  border-radius: 20px;
  border: 1px solid #e2e8f0;
  background: #fff;
  font-size: 13px;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.kb-ptab:hover {
  border-color: #4f46e5;
  color: #4f46e5;
  background: #eff8ff;
}

.kb-ptab.active {
  background: #4f46e5;
  border-color: #4f46e5;
  color: #fff;
  font-weight: 600;
}

/* Right side filter selects */
.kb-filter-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.kb-filter-select {
  height: 36px;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 0 12px !important;
  font-size: 13px;
  background: #fff;
  color: #334155;
  cursor: pointer;
  min-width: 130px;
  box-shadow: none !important;
  margin: 0 !important;
}

.kb-admin-filters .sprint-progress-filter-form {
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ============================================================
   END KANBAN BOARD
   ============================================================ */


/* ============================================================
   DASHBOARD — Kuber-style layout
   ============================================================ */

/* ── Wrapper ── */
.dash-wrapper {
  /* max-width: 1400px; */
  margin: 0 auto;
  /* padding: 24px 20px 40px; */
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* ── Greeting Bar ── */
.dash-greeting-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  background: linear-gradient(135deg, #1e3a5f 0%, #4f46e5 100%);
  border-radius: 16px;
  padding: 24px 28px;
  color: #fff;
}

.dash-greeting-title {
  margin: 0 0 4px;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
}

.dash-greeting-sub {
  margin: 0;
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}

.dash-view-all-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.2);
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 8px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.2s;
}

.dash-view-all-btn:hover {
  background: rgba(255,255,255,0.32);
}

.dash-view-all-btn .material-icons { font-size: 16px; }

/* ── Stat Cards Row ── */
.dash-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.dash-stat-card {
  border-radius: 16px;
  padding: 22px 22px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
  transition: transform 0.2s, box-shadow 0.2s;
}

.dash-stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.14);
}

.dash-stat--total    { background: linear-gradient(135deg, #6366f1, #818cf8); }
.dash-stat--pending  { background: linear-gradient(135deg, #f59e0b, #fbbf24); }
.dash-stat--completed{ background: linear-gradient(135deg, #10b981, #34d399); }
.dash-stat--overdue  { background: linear-gradient(135deg, #ef4444, #f87171); }

.dash-stat-icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(255,255,255,0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dash-stat-icon-wrap .material-icons {
  font-size: 28px;
  color: #fff;
}

.dash-stat-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  z-index: 1;
}

.dash-stat-number {
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  color: #fff;
}

.dash-stat-label {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,0.85);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.dash-stat-bg-icon {
  position: absolute;
  right: -8px;
  bottom: -8px;
  opacity: 0.10;
}

.dash-stat-bg-icon .material-icons {
  font-size: 80px;
  color: #fff;
}

/* ── Card base ── */
.dash-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.dash-card--full {
  width: 100%;
}

.dash-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px 14px;
  border-bottom: 1px solid #f1f5f9;
}

.dash-card-title {
  font-size: 15px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
  flex: 1;
}

.dash-card-badge {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  background: #f1f5f9;
  border-radius: 20px;
  padding: 2px 10px;
}

.dash-card-link {
  font-size: 13px;
  font-weight: 600;
  color: #4f46e5 !important;
  text-decoration: none !important;
  margin-left: auto;
}

.dash-card-link:hover { text-decoration: underline !important; }

.dash-card-body {
  padding: 16px 20px;
  flex: 1;
}

/* Card icon circles */
.dash-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dash-card-icon .material-icons { font-size: 20px; color: #fff; }

.dash-icon--attendance  { background: linear-gradient(135deg, #6366f1, #818cf8); }
.dash-icon--leave       { background: linear-gradient(135deg, #10b981, #34d399); }
.dash-icon--activity    { background: linear-gradient(135deg, #f59e0b, #fbbf24); }
.dash-icon--comments    { background: linear-gradient(135deg, #4f46e5, #38bdf8); }
.dash-icon--time        { background: linear-gradient(135deg, #8b5cf6, #a78bfa); }
.dash-icon--leaves-app  { background: linear-gradient(135deg, #ef4444, #f87171); }
.dash-icon--tasks       { background: linear-gradient(135deg, #0ea5e9, #38bdf8); }

/* ── Row 2: Attendance + Leave Balance (2-col) ── */
.dash-row-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* Attendance */
.dash-attend-cols {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 16px;
  background: #f8fafc;
  border-radius: 12px;
  overflow: hidden;
}

.dash-attend-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 18px 10px;
}

.dash-attend-divider {
  width: 1px;
  height: 60px;
  background: #e2e8f0;
  flex-shrink: 0;
}

.dash-attend-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.dash-attend-label .material-icons { font-size: 14px; }

.dash-attend-col--in  .dash-attend-label .material-icons { color: #10b981; }
.dash-attend-col--out .dash-attend-label .material-icons { color: #ef4444; }

.dash-attend-time {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.5px;
}

.dash-attend-time--in   { color: #10b981; }
.dash-attend-time--out  { color: #ef4444; }
.dash-attend-time--none { color: #cbd5e1; }

.dash-attend-log-label {
  font-size: 11px;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 8px;
}

.dash-attend-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.dash-attend-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 20px;
  padding: 3px 10px;
}

.dash-attend-chip .material-icons { font-size: 13px; }

.dash-attend-chip--in {
  background: #dcfce7;
  color: #16a34a;
}

.dash-attend-chip--out {
  background: #fee2e2;
  color: #dc2626;
}

.dash-attend-chip--none {
  background: #f3f4f6;
  color: #9ca3af;
}

/* Admin employee attendance list */
.dash-attend-emp-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.dash-attend-emp-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  background: #f9fafb;
  border-radius: 8px;
}

.dash-attend-emp-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

.dash-attend-emp-name {
  flex: 1;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dash-attend-emp-times {
  display: flex;
  gap: 6px;
  align-items: center;
}

.dash-attend-none {
  font-size: 13px;
  color: #94a3b8;
  text-align: center;
  padding: 16px 0;
}

/* Leave Balance */
.dash-leave-bal-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dash-leave-bal-item {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 10px;
}

.dash-lbal-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
}

.dash-lbal-label .material-icons { font-size: 18px; }

.dash-lbal-bar-wrap {
  width: 140px;
  height: 7px;
  background: #f1f5f9;
  border-radius: 10px;
  overflow: hidden;
}

.dash-lbal-bar {
  height: 100%;
  border-radius: 10px;
  transition: width 0.6s ease;
}

.dash-lbal-count {
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
}

/* ── Row 3: Activities + Comments (2-col) ── */
.dash-row-three {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* Activity Timeline */
.dash-activity-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dash-activity-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f1f5f9;
}

.dash-activity-item:last-child { border-bottom: none; }

.dash-act-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6366f1, #818cf8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

.dash-act-content {
  flex: 1;
  min-width: 0;
}

.dash-act-desc {
  margin: 0 0 4px;
  font-size: 13px;
  color: #334155;
  line-height: 1.5;
}

.dash-act-desc strong { color: #1e293b; }

.dash-act-time {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #94a3b8;
}

.dash-act-time .material-icons { font-size: 13px; }

.dash-act-type-icon .material-icons {
  font-size: 16px;
  color: #cbd5e1;
}

/* Comments */
.dash-comment-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dash-comment-item {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f1f5f9;
  align-items: flex-start;
}

.dash-comment-item:last-child { border-bottom: none; }

.dash-comment-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  /* Colors re-use the letter palette */
  background: #6366f1;
}

/* letter palette for comment avatars */
.dash-comment-avatar.letter-a { background:#ef4444; }
.dash-comment-avatar.letter-b { background:#f97316; }
.dash-comment-avatar.letter-c { background:#f59e0b; }
.dash-comment-avatar.letter-d { background:#10b981; }
.dash-comment-avatar.letter-e { background:#06b6d4; }
.dash-comment-avatar.letter-f { background:#3b82f6; }
.dash-comment-avatar.letter-g { background:#8b5cf6; }
.dash-comment-avatar.letter-h { background:#ec4899; }
.dash-comment-avatar.letter-i { background:#14b8a6; }
.dash-comment-avatar.letter-j { background:#f43f5e; }
.dash-comment-avatar.letter-k { background:#6366f1; }
.dash-comment-avatar.letter-l { background:#0ea5e9; }
.dash-comment-avatar.letter-m { background:#84cc16; }
.dash-comment-avatar.letter-n { background:#a855f7; }
.dash-comment-avatar.letter-o { background:#fb923c; }
.dash-comment-avatar.letter-p { background:#22c55e; }
.dash-comment-avatar.letter-q { background:#0891b2; }
.dash-comment-avatar.letter-r { background:#7c3aed; }
.dash-comment-avatar.letter-s { background:#e11d48; }
.dash-comment-avatar.letter-t { background:#059669; }
.dash-comment-avatar.letter-u { background:#d97706; }
.dash-comment-avatar.letter-v { background:#7c3aed; }
.dash-comment-avatar.letter-w { background:#0284c7; }
.dash-comment-avatar.letter-x { background:#dc2626; }
.dash-comment-avatar.letter-y { background:#16a34a; }
.dash-comment-avatar.letter-z { background:#9333ea; }

/* ── Global avatar letter colors
   Applies to: user_circle.circle.letter-X, .dash-attend-emp-avatar.letter-X,
               .dash-act-avatar.letter-X, .dash-leave-avatar.letter-X,
               .dash-time-avatar.letter-X, .dash-lbal-avatar.letter-X,
               .dash-notif-avatar.letter-X
   ─────────────────────────────────────────────────────────────────────── */
.circle.letter-a, .dash-attend-emp-avatar.letter-a, .dash-act-avatar.letter-a,
.dash-leave-avatar.letter-a, .dash-time-avatar.letter-a, .dash-lbal-avatar.letter-a,
.dash-notif-avatar.letter-a { background: #4a6cf7; }
.circle.letter-b, .dash-attend-emp-avatar.letter-b, .dash-act-avatar.letter-b,
.dash-leave-avatar.letter-b, .dash-time-avatar.letter-b, .dash-lbal-avatar.letter-b,
.dash-notif-avatar.letter-b { background: #10b981; }
.circle.letter-c, .dash-attend-emp-avatar.letter-c, .dash-act-avatar.letter-c,
.dash-leave-avatar.letter-c, .dash-time-avatar.letter-c, .dash-lbal-avatar.letter-c,
.dash-notif-avatar.letter-c { background: #f59e0b; }
.circle.letter-d, .dash-attend-emp-avatar.letter-d, .dash-act-avatar.letter-d,
.dash-leave-avatar.letter-d, .dash-time-avatar.letter-d, .dash-lbal-avatar.letter-d,
.dash-notif-avatar.letter-d { background: #ef4444; }
.circle.letter-e, .dash-attend-emp-avatar.letter-e, .dash-act-avatar.letter-e,
.dash-leave-avatar.letter-e, .dash-time-avatar.letter-e, .dash-lbal-avatar.letter-e,
.dash-notif-avatar.letter-e { background: #8b5cf6; }
.circle.letter-f, .dash-attend-emp-avatar.letter-f, .dash-act-avatar.letter-f,
.dash-leave-avatar.letter-f, .dash-time-avatar.letter-f, .dash-lbal-avatar.letter-f,
.dash-notif-avatar.letter-f { background: #06b6d4; }
.circle.letter-g, .dash-attend-emp-avatar.letter-g, .dash-act-avatar.letter-g,
.dash-leave-avatar.letter-g, .dash-time-avatar.letter-g, .dash-lbal-avatar.letter-g,
.dash-notif-avatar.letter-g { background: #ec4899; }
.circle.letter-h, .dash-attend-emp-avatar.letter-h, .dash-act-avatar.letter-h,
.dash-leave-avatar.letter-h, .dash-time-avatar.letter-h, .dash-lbal-avatar.letter-h,
.dash-notif-avatar.letter-h { background: #14b8a6; }
.circle.letter-i, .dash-attend-emp-avatar.letter-i, .dash-act-avatar.letter-i,
.dash-leave-avatar.letter-i, .dash-time-avatar.letter-i, .dash-lbal-avatar.letter-i,
.dash-notif-avatar.letter-i { background: #f97316; }
.circle.letter-j, .dash-attend-emp-avatar.letter-j, .dash-act-avatar.letter-j,
.dash-leave-avatar.letter-j, .dash-time-avatar.letter-j, .dash-lbal-avatar.letter-j,
.dash-notif-avatar.letter-j { background: #6366f1; }
.circle.letter-k, .dash-attend-emp-avatar.letter-k, .dash-act-avatar.letter-k,
.dash-leave-avatar.letter-k, .dash-time-avatar.letter-k, .dash-lbal-avatar.letter-k,
.dash-notif-avatar.letter-k { background: #84cc16; }
.circle.letter-l, .dash-attend-emp-avatar.letter-l, .dash-act-avatar.letter-l,
.dash-leave-avatar.letter-l, .dash-time-avatar.letter-l, .dash-lbal-avatar.letter-l,
.dash-notif-avatar.letter-l { background: #0ea5e9; }
.circle.letter-m, .dash-attend-emp-avatar.letter-m, .dash-act-avatar.letter-m,
.dash-leave-avatar.letter-m, .dash-time-avatar.letter-m, .dash-lbal-avatar.letter-m,
.dash-notif-avatar.letter-m { background: #d946ef; }
.circle.letter-n, .dash-attend-emp-avatar.letter-n, .dash-act-avatar.letter-n,
.dash-leave-avatar.letter-n, .dash-time-avatar.letter-n, .dash-lbal-avatar.letter-n,
.dash-notif-avatar.letter-n { background: #f43f5e; }
.circle.letter-o, .dash-attend-emp-avatar.letter-o, .dash-act-avatar.letter-o,
.dash-leave-avatar.letter-o, .dash-time-avatar.letter-o, .dash-lbal-avatar.letter-o,
.dash-notif-avatar.letter-o { background: #22c55e; }
.circle.letter-p, .dash-attend-emp-avatar.letter-p, .dash-act-avatar.letter-p,
.dash-leave-avatar.letter-p, .dash-time-avatar.letter-p, .dash-lbal-avatar.letter-p,
.dash-notif-avatar.letter-p { background: #3b82f6; }
.circle.letter-q, .dash-attend-emp-avatar.letter-q, .dash-act-avatar.letter-q,
.dash-leave-avatar.letter-q, .dash-time-avatar.letter-q, .dash-lbal-avatar.letter-q,
.dash-notif-avatar.letter-q { background: #a855f7; }
.circle.letter-r, .dash-attend-emp-avatar.letter-r, .dash-act-avatar.letter-r,
.dash-leave-avatar.letter-r, .dash-time-avatar.letter-r, .dash-lbal-avatar.letter-r,
.dash-notif-avatar.letter-r { background: #f97316; }
.circle.letter-s, .dash-attend-emp-avatar.letter-s, .dash-act-avatar.letter-s,
.dash-leave-avatar.letter-s, .dash-time-avatar.letter-s, .dash-lbal-avatar.letter-s,
.dash-notif-avatar.letter-s { background: #10b981; }
.circle.letter-t, .dash-attend-emp-avatar.letter-t, .dash-act-avatar.letter-t,
.dash-leave-avatar.letter-t, .dash-time-avatar.letter-t, .dash-lbal-avatar.letter-t,
.dash-notif-avatar.letter-t { background: #ef4444; }
.circle.letter-u, .dash-attend-emp-avatar.letter-u, .dash-act-avatar.letter-u,
.dash-leave-avatar.letter-u, .dash-time-avatar.letter-u, .dash-lbal-avatar.letter-u,
.dash-notif-avatar.letter-u { background: #4a6cf7; }
.circle.letter-v, .dash-attend-emp-avatar.letter-v, .dash-act-avatar.letter-v,
.dash-leave-avatar.letter-v, .dash-time-avatar.letter-v, .dash-lbal-avatar.letter-v,
.dash-notif-avatar.letter-v { background: #f59e0b; }
.circle.letter-w, .dash-attend-emp-avatar.letter-w, .dash-act-avatar.letter-w,
.dash-leave-avatar.letter-w, .dash-time-avatar.letter-w, .dash-lbal-avatar.letter-w,
.dash-notif-avatar.letter-w { background: #06b6d4; }
.circle.letter-x, .dash-attend-emp-avatar.letter-x, .dash-act-avatar.letter-x,
.dash-leave-avatar.letter-x, .dash-time-avatar.letter-x, .dash-lbal-avatar.letter-x,
.dash-notif-avatar.letter-x { background: #8b5cf6; }
.circle.letter-y, .dash-attend-emp-avatar.letter-y, .dash-act-avatar.letter-y,
.dash-leave-avatar.letter-y, .dash-time-avatar.letter-y, .dash-lbal-avatar.letter-y,
.dash-notif-avatar.letter-y { background: #ec4899; }
.circle.letter-z, .dash-attend-emp-avatar.letter-z, .dash-act-avatar.letter-z,
.dash-leave-avatar.letter-z, .dash-time-avatar.letter-z, .dash-lbal-avatar.letter-z,
.dash-notif-avatar.letter-z { background: #14b8a6; }

/* Base styles for circle avatars (user_circle.circle) */
.user_circle.circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
/* Fallback grey ONLY when no letter-X class is present — letter colors in the palette above must not be overridden */
.user_circle.circle:not([class*="letter-"]) { background: #94a3b8; }
.ief-row-entity .user_circle.circle:not([class*="letter-"]){
  background: none;
}

/* Avatar row wrapper used in task tables */
.pms-avatar-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
}
.pms-avatar-name {
  font-size: 13px;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Leave balance avatar (admin table) */
.dash-lbal-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  background: #94a3b8;
}

.dash-comment-body {
  flex: 1;
  min-width: 0;
}

.dash-comment-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 2px;
}

.dash-comment-user {
  font-size: 13px;
  font-weight: 700;
  color: #1e293b;
}

.dash-comment-time {
  font-size: 11px;
  color: #94a3b8;
  white-space: nowrap;
}

.dash-comment-task {
  font-size: 11px;
  color: #64748b;
  margin: 0 0 4px;
}

.dash-comment-task em { font-style: normal; color: #4f46e5; }

.dash-comment-text {
  font-size: 13px;
  color: #475569;
  margin: 0;
  line-height: 1.5;
}

/* ── Row 4: Time Entries + Leaves (2-col) ── */
.dash-row-four {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

/* Time entries table */
.dash-time-table {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dash-time-thead {
  display: grid;
  grid-template-columns: 32px 2fr 90px 100px;
  gap: 8px;
  padding: 6px 10px 8px;
  background: #f8fafc;
  border-radius: 8px 8px 0 0;
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.dash-time-row {
  display: grid;
  grid-template-columns: 32px 2fr 90px 100px;
  gap: 8px;
  align-items: start;
  padding: 10px 10px;
  border-bottom: 1px solid #f1f5f9;
  transition: background 0.15s;
}

.dash-time-row:hover { background: #f8fafc; }
.dash-time-row:last-child { border-bottom: none; }

.dash-time-task {
  font-size: 13px;
  color: #334155;
  font-weight: 500;
  min-width: 0;
  overflow: hidden;
}

.dash-time-user {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #64748b;
}

.dash-time-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: #6366f1;
  flex-shrink: 0;
}

/* dash-time-avatar letter colors come from the global palette above */

.dash-time-hours {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  color: #8b5cf6;
}

.dash-time-hours .material-icons { font-size: 14px; }

.dash-time-date {
  font-size: 13px;
  color: #94a3b8;
}

/* Leave Applications */
.dash-leave-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dash-leave-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid #f1f5f9;
}

.dash-leave-item:last-child { border-bottom: none; }

.dash-leave-type-icon .material-icons { font-size: 22px; }

.dash-leave-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dash-leave-type {
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
}

.dash-leave-dates {
  font-size: 11px;
  color: #94a3b8;
}

.dash-leave-status {
  font-size: 11px;
  font-weight: 700;
  border-radius: 20px;
  padding: 3px 10px;
  text-transform: capitalize;
}

.dash-leave-status--approved { background: #dcfce7; color: #16a34a; }
.dash-leave-status--pending  { background: #fef9c3; color: #ca8a04; }
.dash-leave-status--rejected { background: #fee2e2; color: #dc2626; }

/* ── My Tasks card ── */
.dash-card--tasks .dash-card-body {
  padding: 0;
}

.dash-card--tasks .dash-card-body .view-pms-tasks,
.dash-card--tasks .dash-card-body table {
  margin: 0;
  border-radius: 0;
  box-shadow: none !important;
}

/* ── My Work table (task-report.html.twig inside dashboard) ── */
.tr-my-work-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tr-my-work-table thead tr {
  background: #f8fafc;
  border-bottom: 1px solid #e5e7eb;
}
.tr-my-work-table th {
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-align: left;
}
.tr-my-work-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
  transition: background 0.15s;
}
.tr-my-work-table tbody tr:last-child { border-bottom: none; }
.tr-my-work-table tbody tr:hover { background: #f8fafc; }
.tr-my-work-table td {
  padding: 9px 12px;
  vertical-align: middle;
  color: #374151;
}

/* Column widths */
.tr-col-assignee { width: 160px; }
.tr-col-subtask  { width: 120px; }
.tr-col-task     { min-width: 160px; }
.tr-col-project  { width: 130px; }
.tr-col-due      { width: 120px; white-space: nowrap; }
.tr-col-actions  { width: 72px; }

/* Assignee cell */
.tr-assignee-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tr-assignee-name {
  font-size: 13px;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100px;
}
/* .tr-assignee-none { color: #94a3b8; } */
.tr-unassigned-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1.5px dashed #cbd5e1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
td.tr-subtask-cell {
    width: 230px;
}
.tr-unassigned-icon .material-icons {
  font-size: 15px !important;
  color: #94a3b8;
}

/* Task link */
.tr-task-link {
  color: #1e293b;
  text-decoration: none;
  font-weight: 500;
}
.tr-task-link:hover { color: #6366f1; text-decoration: underline; }
.tr-task-link.completed { text-decoration: line-through; color: #94a3b8; }

/* Project link */
.tr-project-link {
  /* color: #6366f1; */
  /* text-decoration: none; */
  /* font-size: 13px; */
}
.tr-project-link:hover { text-decoration: underline; }

/* Due date with icon */
.tr-date-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #475569;
  /* font-size: 13px; */
}
.tr-date-icon {
  font-size: 14px !important;
  color: #94a3b8;
}
.deadline-date-items .tr-date-icon { color: #ef4444; }
.deadline-date-items .tr-date-wrap { color: #ef4444;  }

/* Actions */
.tr-actions-cell .pms-action-group {
  display: flex;
  gap: 4px;
  justify-content: flex-end;
}

/* overdue-report heading */
.overdue-report { margin-bottom: 0; }
.overdue-report h2 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  padding: 10px 12px 6px;
  margin: 0;
  /* background: #f8fafc;
  border-bottom: 1px solid #e5e7eb; */
}
.overdue-report h2 .material-icons { font-size: 16px; color: #94a3b8; }
.overdue-report-heading .material-icons { color: #ef4444 !important; }
.overdue-report-heading { color: #ef4444 !important; }

/* ── Empty State ── */
.dash-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 28px 0;
  color: #cbd5e1;
}

.dash-empty-state .material-icons { font-size: 40px; }
.dash-empty-state p { margin: 0; font-size: 13px; color: #94a3b8; }

/* ══ Dashboard 2-column row ══ */
.dash-two-col-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}
.dash-two-col-row .dash-tabbed-card,
.dash-two-col-row .dash-card--leaves {
  margin-bottom: 0;
  min-width: 0;
}

/* ══ Dashboard tabbed cards ══ */
.dash-tabbed-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
  margin-bottom: 20px;
  overflow: hidden;
}

/* Tab bar */
.dash-tab-bar {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #e5e7eb;
  padding: 0 8px;
  background: #fff;
  overflow-x: auto;
  scrollbar-width: none;
}
.dash-tab-bar::-webkit-scrollbar { display: none; }

/* Inner tab bar (inside an existing dash-card, e.g. leave applications) */
.dash-tab-bar--inner {
  padding: 0 16px;
  border-top: 1px solid #e5e7eb;
}

/* Spacer pushes the View All link to the right inside a tab bar */
.dash-tab-bar-spacer { flex: 1; }

/* View All link sitting inside the tab bar (timesheet/workload) */
.dash-tab-view-all-link {
  display: flex;
  align-items: center;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 500;
  color: #6366f1;
  text-decoration: none;
  white-space: nowrap;
  border-left: 1px solid #e5e7eb;
  transition: color 0.15s;
}
.dash-tab-view-all-link:hover { color: #4f46e5; }
.dash-tab-view-all-link--hidden { display: none; }

/* Tab buttons */
.dash-tab-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 13px 18px;
  font-size: 13px;
  font-weight: 500;
  color: #6b7280;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s, background 0.1s;
  margin-bottom: -1px;
}
.dash-tab-btn .material-icons { font-size: 17px; }
.dash-tab-btn.active {
  color: #1d49d8;
  border-bottom-color: #1d49d8;
  font-weight: 600;
}
.dash-tab-btn:hover:not(.active) {
  color: #374151;
  background: #f9fafb;
}

/* Small date/year badge inside tab button */
.dash-tab-meta {
  font-size: 11px;
  font-weight: 400;
  color: #9ca3af;
  background: #f3f4f6;
  border-radius: 10px;
  padding: 1px 7px;
  margin-left: 2px;
}

/* Unread count badge inside tab button */
.dash-tab-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  background: #ef4444;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 0 4px;
  margin-left: 2px;
}

/* Tab panes */
.dash-tab-pane {
  display: none;
  padding: 20px;
}
.dash-tab-pane.active { display: block; }

/* Pane-level action row (e.g. "View All" link) */
.dash-lbal-pane-header,
.dash-pane-actions {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 12px;
}
.dash-pane-actions--bottom {
  margin-top: 12px;
  margin-bottom: 0;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .dash-stat-row { grid-template-columns: repeat(2, 1fr); }
  .dash-two-col-row { grid-template-columns: 1fr; }
  .dash-row-two,
  .dash-row-three { grid-template-columns: 1fr; }
  .dash-row-four { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .dash-stat-row { grid-template-columns: 1fr 1fr; }
  .dash-greeting-bar { flex-direction: column; align-items: flex-start; }
  .dash-time-thead,
  .dash-time-row { grid-template-columns: 32px 2fr 1fr; }
  .dash-time-thead span:nth-child(4),
  .dash-time-row .dash-time-date { display: none; }
}

/* ── Admin badge in greeting ── */
.dash-admin-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.35);
  color: #fff;
  border-radius: 20px;
  padding: 3px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.dash-admin-badge .material-icons { font-size: 14px; }

/* ── Activity timeline avatar letter colours ── */
.dash-act-avatar { background: #6366f1; }
.dash-act-avatar.letter-a { background:#ef4444; }
.dash-act-avatar.letter-b { background:#f97316; }
.dash-act-avatar.letter-c { background:#f59e0b; }
.dash-act-avatar.letter-d { background:#10b981; }
.dash-act-avatar.letter-e { background:#06b6d4; }
.dash-act-avatar.letter-f { background:#3b82f6; }
.dash-act-avatar.letter-g { background:#8b5cf6; }
.dash-act-avatar.letter-h { background:#ec4899; }
.dash-act-avatar.letter-i { background:#14b8a6; }
.dash-act-avatar.letter-j { background:#f43f5e; }
.dash-act-avatar.letter-k { background:#6366f1; }
.dash-act-avatar.letter-l { background:#0ea5e9; }
.dash-act-avatar.letter-m { background:#84cc16; }
.dash-act-avatar.letter-n { background:#a855f7; }
.dash-act-avatar.letter-o { background:#fb923c; }
.dash-act-avatar.letter-p { background:#22c55e; }
.dash-act-avatar.letter-q { background:#0891b2; }
.dash-act-avatar.letter-r { background:#7c3aed; }
.dash-act-avatar.letter-s { background:#e11d48; }
.dash-act-avatar.letter-t { background:#059669; }
.dash-act-avatar.letter-u { background:#d97706; }
.dash-act-avatar.letter-v { background:#7c3aed; }
.dash-act-avatar.letter-w { background:#0284c7; }
.dash-act-avatar.letter-x { background:#dc2626; }
.dash-act-avatar.letter-y { background:#16a34a; }
.dash-act-avatar.letter-z { background:#9333ea; }

.dash-act-project {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #6366f1;
  margin: 2px 0 3px;
  font-weight: 600;
}
.dash-act-project .material-icons { font-size: 13px; }

.dash-act-task-link {
  color: #4f46e5;
  font-weight: 600;
  text-decoration: none;
}
.dash-act-task-link:hover { text-decoration: underline; }

/* ── Leave balance v2 ── */
.dash-lbal-summary {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.dash-lbal-big {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  border-radius: 10px;
  background: transparent;
}
/* Remaining — green highlight */
.dash-lbal-big:not(.dash-lbal-big--used):not(.dash-lbal-big--pending) {
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
}
.dash-lbal-big-num {
  font-size: 32px;
  font-weight: 800;
  color: #10b981;
  line-height: 1;
}
.dash-lbal-big--used   .dash-lbal-big-num { color: #ef4444; }
.dash-lbal-big--pending .dash-lbal-big-num { color: #f59e0b; }
.dash-lbal-big-label {
  font-size: 11px;
  color: #94a3b8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
/* Admin leave balance table */
.dash-lbal-user-table {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.dash-lbal-user-thead {
  display: grid;
  grid-template-columns: 1fr 70px 36px;
  gap: 8px;
  padding: 6px 10px;
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid #f1f5f9;
  position: sticky;
  top: 0;
  background: #fff;
}
.dash-lbal-user-row {
  display: grid;
  grid-template-columns: 1fr 70px 36px;
  gap: 8px;
  align-items: center;
  padding: 7px 10px;
  border-bottom: 1px solid #f8fafc;
  transition: background 0.1s;
}
.dash-lbal-user-row:hover { background: #f9fafb; }
.dash-lbal-user-info {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.dash-lbal-user-name {
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-lbal-cell {
  font-size: 13px;
  font-weight: 600;
  text-align: center;
}
.dash-lbal-cell--rem {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 2px 10px;
  border-radius: 20px;
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
  color: #059669;
  font-weight: 700;
  font-size: 13px;
}
.dash-lbal-cell--used { color: #ef4444; }
.dash-lbal-view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  color: #6b7280;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.dash-lbal-view-btn:hover {
  background: #eff6ff;
  color: #1d49d8;
}
.dash-lbal-view-btn .material-icons { font-size: 16px; }
.dash-lbal-mini-bar-wrap {
  display: flex;
  align-items: center;
  gap: 5px;
}
.dash-lbal-mini-bar {
  flex: 1;
  height: 5px;
  background: linear-gradient(90deg, #10b981, #34d399);
  border-radius: 4px;
  min-width: 0;
}
.dash-lbal-mini-pct {
  font-size: 10px;
  color: #94a3b8;
  white-space: nowrap;
}

.dash-lbal-total-bar-wrap {
  height: 8px;
  background: #f1f5f9;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 6px;
}
.dash-lbal-total-note {
  font-size: 13px;
  color: #94a3b8;
  margin: 0;
}

/* ══════════════════════════════════════════════════
   PMS List Filter — Compact no-label style
   ══════════════════════════════════════════════════ */

/* Filter card: slim, no border, left-aligned */
.pms-list-filters {
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  display: block !important;
}

/* Filter fields row — all items same height, tightly spaced */
.pms-list-filters .pms-filter-fields, .pms-salary-calculation-form .pms-filter-fields{
  display: flex;
  flex-wrap: wrap;
  /* align-items: baseline; */
  gap: 10px;
}
.pms-list-filters .pms-filter-fields{
  align-items: baseline;
}
.pms-salary-calculation-form .pms-filter-fields .form-item{
  margin:0px;
}
.pms-salary-calculation-form .pms-filter-fields label{
  margin:0px;
}
.pms-salary-calculation-form .pms-filter-fields input{
  max-width:180px;
}

/* Hide labels (kept for accessibility via title_display=invisible) */
.pms-list-filters .pms-filter-fields .form-item {
  margin: 0;
}

.pms-list-filters .pms-filter-fields .form-item label {
  /* display: none; */
}

/* ── Base: all fields same slim height ── */
.pms-list-filters .pms-filter-fields input[type="text"],
.pms-list-filters .pms-filter-fields input[type="search"],
.pms-list-filters .pms-filter-fields select {
  height: 28px;
  width: 130px;
  padding: 0 10px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  color: #374151 !important;
  background: #f9fafb !important;
  box-shadow: none !important;
  transition: border-color .15s, box-shadow .15s, background .15s;
  margin: 0 !important;
  line-height: 28px;
}

/* ── Select: custom chevron, no browser arrow ── */
.pms-list-filters .pms-filter-fields select {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-right: 26px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 7px center !important;
  background-color: #f9fafb !important;
  cursor: pointer;
}

/* ── Date fields: calendar icon on left ── */
.pms-list-filters .pms-filter-fields input.start_date_flat_pickr,
.pms-list-filters .pms-filter-fields input[name="start_date"],
.pms-list-filters .pms-filter-fields input[name="end_date"] {
  padding-left: 26px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M19 3h-1V1h-2v2H8V1H6v2H5C3.89 3 3 3.9 3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left 7px center !important;
  background-color: #f9fafb !important;
  cursor: pointer;
  width: 100px;
}

/* ── Autocomplete / search text field ── */
.pms-list-filters .pms-filter-fields input.users-autocomplete,
.pms-list-filters .pms-filter-fields input.pms-filter-input:not(.start_date_flat_pickr) {
  padding-left: 26px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left 7px center !important;
  background-color: #f9fafb !important;
  width: 140px;
}

/* ── Holiday name search ── */
.pms-list-filters .pms-filter-fields input.pms-filter-input {
  padding-left: 26px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left 7px center !important;
  background-color: #f9fafb !important;
}

/* ── Placeholder ── */
.pms-list-filters .pms-filter-fields input::placeholder {
  color: #b0b7c3;
  font-size: 13px;
}

/* ── Focus state ── */
.pms-list-filters .pms-filter-fields input:focus,
.pms-list-filters .pms-filter-fields select:focus {
  outline: none;
  border-color: var(--primary, #4f46e5) !important;
  background-color: #fff !important;
  box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.12) !important;
}

/* ── Actions row ── */
.pms-list-filters .pms-filter-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ── Filter submit button ── */
.pms-list-filters .pms-filter-submit,
.pms-list-filters .pms-filter-actions input[type="submit"],
.pms-list-filters .pms-filter-actions button[type="submit"] {
  height: 32px;
  padding: 0 18px !important;
  border-radius: 6px !important;
  background: var(--primary, #4f46e5) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border: none !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: background .15s;
  white-space: nowrap;
  margin: 0 !important;
  line-height: 32px;
}

.pms-list-filters .pms-filter-submit:hover,
.pms-list-filters .pms-filter-actions input[type="submit"]:hover,
.pms-list-filters .pms-filter-actions button[type="submit"]:hover {
  background: #3730a3 !important;
}

/* ── Reset link ── */
.pms-list-filters .pms-filter-reset,
.pms-list-filters .pms-filter-actions a.pms-filter-reset {
  height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
  background: transparent;
  color: #9ca3af;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  line-height: 1;
}

.pms-list-filters .pms-filter-reset:hover {
  color: #374151;
  border-color: #d1d5db;
  text-decoration: none;
}

/* Date-range nested fieldset inside pms-filter-fields — flatten it */
.pms-list-filters .pms-filter-fields .date-range-filter,
.pms-list-filters .pms-filter-fields fieldset.date-range-filter {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0;
}

.pms-list-filters .pms-filter-fields .date-range-filter legend,
.pms-list-filters .pms-filter-fields fieldset.date-range-filter > legend {
  display: none !important;
}

.pms-list-filters .pms-filter-fields .date-range-filter .fieldset-wrapper,
.pms-list-filters .pms-filter-fields fieldset.date-range-filter > .fieldset-wrapper {
  display: inline-flex !important;
  flex-direction: row !important;
  gap: 6px;
  align-items: center;
  padding: 0 !important;
  margin: 0 !important;
}

.pms-list-filters .pms-filter-fields .date-range-filter .form-item,
.pms-list-filters .pms-filter-fields fieldset.date-range-filter .form-item {
  margin: 0 !important;
  display: inline-block;
}

/* Type badge colours in the holiday table */
.status-badge--regional  { background: #ede9fe; color: #6d28d9; }
.status-badge--national  { background: #dcfce7; color: #15803d; }
.status-badge--early     { background: #fef3c7; color: #b45309; }
.status-badge--company   { background: #dbeafe; color: #1d4ed8; }

/* Add Holiday button — match filter button style */
.pms-list-actions .button--primary,
.pms-list-actions a.button--primary {
  height: 28px;
  padding: 0 14px !important;
  border-radius: 6px !important;
  background: var(--primary, #4f46e5) !important;
  color: #fff !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  border: none !important;
  box-shadow: none !important;
  transition: background .15s;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  margin:0px;
}

.pms-list-actions .button--primary:hover,
.pms-list-actions a.button--primary:hover {
  background: #3730a3 !important;
  color: #fff !important;
  text-decoration: none;
}

/* ══════════════════════════════════════
   PMS Pager — redesigned pagination
   ══════════════════════════════════════ */

.pms-pager {
  display: flex;
  justify-content: center;
  padding: 16px 0 8px;
  box-shadow: none !important;
}

.pms-pager__list {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Reset list dots / ::before bullets on pager items */
.pms-pager__list li,
.pms-pager__item {
  list-style: none !important;
}

.pms-pager__list li::before,
.pms-pager__item::before {
  content: none !important;
  display: none !important;
}

/* Override nav i rule that sets font-size/line-height/display on icons */
.pms-pager .material-icons {
  font-size: 18px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  height: auto !important;
}

/* Every item: a pill-shaped button */
.pms-pager__item a,
.pms-pager__item strong,
.pms-pager__item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 6px;
  border-radius: 6px;
  font-size: 12.5px;
  font-weight: 500;
  color: #6b7280;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background .15s, color .15s, border-color .15s;
  line-height: 1;
}

/* Hover state for links */
.pms-pager__item a:hover {
  background: #eef2ff;
  color: var(--primary, #4f46e5);
  border-color: #e0e7ff;
  text-decoration: none;
}

/* Active / current page */
.pms-pager__item.is-active strong {
  background: var(--primary, #4f46e5);
  color: #fff;
  border-color: var(--primary, #4f46e5);
  font-weight: 700;
  cursor: default;
}

/* Prev / Next arrow buttons */
.pms-pager__item--prev a,
.pms-pager__item--next a {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
}

.pms-pager__item--prev a:hover,
.pms-pager__item--next a:hover {
  background: #eef2ff;
  border-color: #c7d2fe;
  color: var(--primary, #4f46e5);
}

.pms-pager__item--prev .material-icons,
.pms-pager__item--next .material-icons {
  font-size: 18px;
  line-height: 1;
}

/* Disabled prev/next (first/last page) */
.pms-pager__item--disabled span {
  border: 1px solid #f1f5f9;
  background: #f9fafb;
  color: #d1d5db;
  cursor: default;
}

/* Ellipsis */
.pms-pager__item--ellipsis span {
  border: none;
  background: transparent;
  color: #9ca3af;
  letter-spacing: 1px;
  min-width: 20px;
}

button:focus {
  background-color: #e9ecef;
}

/* ── Salary amount cell ── */
.salary-amount-cell {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  text-decoration: none;
  color: inherit;
}

.salary-amount-figure {
  font-size: 15px;
  font-weight: 700;
  color: #4f46e5;
  letter-spacing: 0.01em;
}

/* ── Notifications ── */
.dash-icon--notifications { background: linear-gradient(135deg, #f59e0b, #fbbf24); }

.dash-notif-badge {
  background: #ef4444;
  color: #fff;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 8px;
  min-width: 22px;
  text-align: center;
}

.dash-notif-list { display: flex; flex-direction: column; gap: 0; }

/* Notification avatar (replaces dot) */
.dash-notif-avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #94a3b8;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
  margin-top: 1px;
}

.dash-notif-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f1f5f9;
  position: relative;
}
.dash-notif-item:last-child { border-bottom: none; }

/* When a notification item is rendered as <a> — reset link styles so it looks identical to the div version */
a.dash-notif-item {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
a.dash-notif-item:hover {
  background: #f8fafc;
  border-radius: 8px;
  text-decoration: none;
}
a.dash-notif-item:hover .dash-notif-title {
  color: #4a6cf7;
}

.dash-notif-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e2e8f0;
  flex-shrink: 0;
}
.dash-notif-dot--active {
  background: #f59e0b;
  position: absolute;
  top: 14px;
  left: -2px;
}

/* Notification icon circle (left of each row) */
.dash-notif-icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ede9fe;
  color: #7c3aed;
}
.dash-notif-icon .material-icons { font-size: 17px; }
.dash-notif-icon.notif-icon--project  { background: #dbeafe; color: #2563eb; }
.dash-notif-icon.notif-icon--task     { background: #dcfce7; color: #16a34a; }
.dash-notif-icon.notif-icon--subtask  { background: #e0f2fe; color: #0284c7; }
.dash-notif-icon.notif-icon--comment  { background: #fef9c3; color: #ca8a04; }
.dash-notif-icon.notif-icon--mention  { background: #fce7f3; color: #db2777; }
.dash-notif-icon.notif-icon--leave    { background: #d1fae5; color: #059669; }
.dash-notif-icon.notif-icon--other    { background: #f1f5f9; color: #64748b; }

/* Notification title */
.dash-notif-title {
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 340px;
}
.dash-notif-item--unread .dash-notif-title { color: #0f172a; }

/* Right-side column: badge + time */
.dash-notif-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
  margin-left: auto;
}

/* Type label tag (human-readable, not the red unread-count badge) */
.dash-notif-type-tag {
  font-size: 10px;
  font-weight: 700;
  background: #ede9fe;
  color: #7c3aed;
  border-radius: 20px;
  padding: 2px 9px;
  white-space: nowrap;
  letter-spacing: 0.2px;
}

.dash-notif-body { flex: 1; min-width: 0; overflow: hidden; }

/* Top row: task name left, type badge right */
.dash-notif-top-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px;
}

.dash-notif-task-wrap {
  flex: 1;
  min-width: 0;
}

.dash-notif-task-link {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
  text-decoration: none;
  line-height: 1.4;
}
.dash-notif-task-link .material-icons {
  font-size: 14px;
  color: #6366f1;
  flex-shrink: 0;
  margin-top: 1px;
}
.dash-notif-task-link:hover { color: #6366f1; text-decoration: underline; }
.dash-notif-item--unread .dash-notif-task-link { color: #0f172a; }

.dash-notif-task-plain {
  font-size: 13px;
  color: #334155;
  line-height: 1.4;
}

/* Unread indicator on task link — now expressed via avatar + badge, not yellow row */
.dash-notif-item--unread .dash-notif-task-link { color: #0f172a; }

/* Type label badge — right side */
.dash-notif-type-badge {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  background: #ede9fe;
  color: #7c3aed;
  border-radius: 20px;
  padding: 2px 9px;
  white-space: nowrap;
  letter-spacing: 0.2px;
  position: relative;
}
/* Unread: small amber dot on the badge instead of full-row highlight */
.dash-notif-type-badge--unread::after {
  content: '';
  position: absolute;
  top: -2px;
  right: -2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f59e0b;
  border: 1.5px solid #fff;
}

/* Bottom row: project + time */
.dash-notif-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.dash-notif-project {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #6366f1;
  font-weight: 600;
}
.dash-notif-project .material-icons { font-size: 13px; }

.dash-notif-time {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #94a3b8;
  margin-left: auto;
}
.dash-notif-time .material-icons { font-size: 13px; }

/* ── Time entry sub-task ── */
.dash-time-subtask {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 11px;
  color: #94a3b8;
  margin-top: 2px;
}
.dash-time-subtask .material-icons { font-size: 13px; }

.dash-time-task a {
  color: #334155;
  text-decoration: none;
  font-weight: 500;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.4;
}
.dash-time-task a:hover { color: #6366f1; text-decoration: underline; }

/* ── Leave two-column layout ── */
.dash-leaves-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 768px) {
  .dash-leaves-two-col { grid-template-columns: 1fr; }
}

.dash-leaves-section {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dash-leaves-section-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  padding: 0 0 10px 0;
  border-bottom: 2px solid #f1f5f9;
  margin-bottom: 6px;
}
.dash-leaves-section-header .material-icons { font-size: 16px; color: #94a3b8; }

/* Each leave row */
.dash-leave-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid #f8fafc;
  transition: background 0.12s;
}
.dash-leave-row:last-child { border-bottom: none; }
.dash-leave-row:hover { background: #fafbff; border-radius: 8px; padding-left: 4px; }

/* User avatar circle */
.dash-leave-avatar {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dash-leave-info {
  flex: 1;
  min-width: 0;
}
.dash-leave-username {
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-leave-dates {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: #475569;
  margin: 1px 0;
}
.dash-leave-dates .material-icons { font-size: 13px; color: #94a3b8; }
.dash-leave-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 3px;
  flex-wrap: wrap;
}

.dash-leave-type-pill {
  font-size: 10px;
  font-weight: 700;
  border-radius: 20px;
  padding: 2px 8px;
}
.dash-leave-pill--full { background: #dbeafe; color: #1d4ed8; }
.dash-leave-pill--half { background: #fef3c7; color: #92400e; }

.dash-leave-days-badge {
  font-size: 11px;
  color: #64748b;
}
.dash-leave-days-badge strong { color: #6366f1; }

/* Status pill — compact, right-aligned */
.dash-leave-status-pill {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
}
.dash-leave-status--approved { background: #dcfce7; color: #16a34a; }
.dash-leave-status--pending  { background: #fef9c3; color: #ca8a04; }
.dash-leave-status--rejected { background: #fee2e2; color: #dc2626; }

.dash-empty-state--sm {
  padding: 20px 10px;
  text-align: center;
  color: #94a3b8;
}
.dash-empty-state--sm .material-icons { font-size: 28px; display: block; margin-bottom: 4px; }
.dash-empty-state--sm p { font-size: 13px; margin: 0 0 10px; }

/* Add Leave button in empty state */
.dash-add-leave-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 5px 14px;
  background: #1d49d8;
  color: #fff;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.15s;
}
.dash-add-leave-btn:hover { background: #1638b0; color: #fff; }
.dash-add-leave-btn .material-icons { font-size: 14px; }

/* Task row ticket-id pill */
.pms-ticket-id {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  background: #f1f5f9;
  border-radius: 4px;
  padding: 2px 7px;
}
/* Sub-task arrow indicator */
.task-sub-indicator .material-icons {
  font-size: 14px;
  color: #94a3b8;
  vertical-align: middle;
}

/* ── Comment task link ── */
.dash-comment-task a { color: #4f46e5; font-style: normal; text-decoration: none; }
.dash-comment-task a:hover { text-decoration: underline; }
.dash-tabbed-card .dash-tab-btn:focus{
  background-color: inherit;
}
/* ============================================================
   END DASHBOARD
   ============================================================ */

.pms-weekly-category-header {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  /* background: transparent !important; */
  border: none !important;
  max-width: none !important;
  border-color: #dae1f3;
  background-color: #e9eef5;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  gap: 10px !important;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}
.pms-weekly-category-header .material-icons {
  color: #1d49d8;
}

/* ── Weekly report: project link ── */
.weekly-project-link {
  color: #1d49d8;
  text-decoration: none;
  font-weight: 500;
}
.weekly-project-link:hover {
  text-decoration: underline;
  color: #4f46e5;
}

/* ── Weekly report: date cell with icon ── */
.week-date-cell {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  color: #059669;
}
.week-date-cell .material-icons {
  font-size: 13px;
  color: #6ee7b7;
}

/* ── Project Progress Report — horizontal scroll ── */
.project-progress-table {
  min-width: max-content;
  white-space: nowrap;
}

.project-progress-table th,
.project-progress-table td {
  white-space: nowrap;
}

/* ── Weekly report: resizable projects multi-select ── */
.pms-projects-multiselect {
  height: 80px;
  min-height: 36px;
  max-height: 260px;
  resize: vertical;
  overflow-y: auto;
}

/* ═══════════════════════════════════════════════
   Salary Calculate page  (/salary/calculate)
   Filter card — matches pms-list-filters style.
   Pure CSS only. #timesheet-report-wrapper untouched.
   ═══════════════════════════════════════════════ */

/* White card, flex row — same spacing as other filter pages */
#pms-salary-calculation-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  /* background: #fff;
  border-radius: 10px;
  padding: 14px 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.07);
  border: 1px solid #f0f2f5; */
}

/* Every direct form-item: flex child, no margin */
#pms-salary-calculation-form > .form-item {
  margin: 0;
  flex: 0 0 auto;
}

/* Hide all field labels — matching pms-list-filters behaviour */
#pms-salary-calculation-form > .form-item > .form-item__label {
  /* display: none; */
}

/* ── Visual ordering: move User autocomplete before In/Out Time ── */
#pms-salary-calculation-form > .form-item-month           { order: 1; }
#pms-salary-calculation-form > .form-item-year            { order: 2; }
#pms-salary-calculation-form > .form-item-user-type       { order: 3; }
#pms-salary-calculation-form > .form-item-user-id         { order: 4; }
#pms-salary-calculation-form > .form-item-user-in-out-time{ order: 5; }
#pms-salary-calculation-form > .form-item-refresh         { order: 6; }
#pms-salary-calculation-form > .form-actions              { order: 7; }
#pms-salary-calculation-form > #timesheet-report-wrapper  { order: 8; }

/* ── Month select — slim, custom chevron ── */
#pms-salary-calculation-form > .form-item-month select {
  height: 28px;
  min-width: 130px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0 26px 0 10px;
  font-size: 13px;
  color: #374151;
  background: #f9fafb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 7px center;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  line-height: 28px;
}
#pms-salary-calculation-form > .form-item-month select:focus {
  outline: none;
  border-color: #4f46e5;
  background-color: #fff;
}

/* ── Year number input — slim, no spinner ── */
#pms-salary-calculation-form > .form-item-year input[type="number"] {
  height: 28px;
  width: 72px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 13px;
  background: #f9fafb;
  color: #374151;
  line-height: 28px;
  -moz-appearance: textfield;
  appearance: textfield;
}
#pms-salary-calculation-form > .form-item-year input[type="number"]::-webkit-outer-spin-button,
#pms-salary-calculation-form > .form-item-year input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#pms-salary-calculation-form > .form-item-year input[type="number"]:focus {
  outline: none;
  border-color: #4f46e5;
  background: #fff;
}

/* ── User autocomplete — small with person icon ── */
#pms-salary-calculation-form > .form-item-user-id input[type="text"] {
  height: 28px;
  width: 150px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0 10px 0 28px;
  font-size: 13px;
  color: #374151;
  background: #f9fafb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24'%3E%3Cpath fill='%239ca3af' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E") no-repeat left 7px center;
  line-height: 28px;
}
#pms-salary-calculation-form > .form-item-user-id input[type="text"]::placeholder {
  color: #b0b7c3;
  font-size: 13px;
}
#pms-salary-calculation-form > .form-item-user-id input[type="text"]:focus {
  outline: none;
  border-color: #4f46e5;
  background-color: #fff;
}

/* ── Calculate for radios — no label, inline ── */
#pms-salary-calculation-form > .form-item-user-type {
  flex: 0 0 auto;
  margin: 0;
}
#pms-salary-calculation-form > .form-item-user-type > .form-item__label {
  display: none;
}
/* Claro wraps radios in a fieldset/composite — reset default padding */
#pms-salary-calculation-form > .form-item-user-type fieldset,
#pms-salary-calculation-form > .form-item-user-type .fieldset-wrapper {
  border: none;
  padding: 0;
  margin: 0;
}
#pms-salary-calculation-form > .form-item-user-type legend {
  display: none;
}
#pms-salary-calculation-form > .form-item-user-type .form-radios {
  display: flex;
  gap: 14px;
  align-items: center;
  /* No fixed height — let content set it naturally */
}
#pms-salary-calculation-form > .form-item-user-type .form-type--radio {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  cursor: pointer;
}
/* Reset Claro's float+transform positioning on the radio input itself */
#pms-salary-calculation-form > .form-item-user-type .form-boolean {
  position: static !important;
  inset-block-start: auto !important;
  transform: none !important;
  float: none !important;
  margin-inline-start: 0 !important;
  opacity: 1 !important;
  flex-shrink: 0;
}
#pms-salary-calculation-form > .form-item-user-type .form-type--radio .form-item__label {
  font-size: 13px;
  color: #374151;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
  margin: 0;
  cursor: pointer;
  padding-left: 0;
}

/* ── Checkboxes (In/Out Time + Refresh) — pill, 28px ── */
#pms-salary-calculation-form > .form-item-user-in-out-time,
#pms-salary-calculation-form > .form-item-refresh {
  flex: 0 0 auto;
  margin: 0;
}
/* Visual separator before Refresh Page */
#pms-salary-calculation-form > .form-item-refresh {
  margin-left: 20px;
}
#pms-salary-calculation-form > .form-item-user-in-out-time .form-type--checkbox,
#pms-salary-calculation-form > .form-item-refresh .form-type--checkbox {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0 10px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  margin: 0;
}
#pms-salary-calculation-form > .form-item-user-in-out-time .form-type--checkbox:has(input:checked),
#pms-salary-calculation-form > .form-item-refresh .form-type--checkbox:has(input:checked) {
  background: #eff0ff;
  border-color: #6366f1;
}
#pms-salary-calculation-form > .form-item-user-in-out-time .form-type--checkbox .form-item__label,
#pms-salary-calculation-form > .form-item-refresh .form-type--checkbox .form-item__label {
  font-size: 13px;
  color: #374151;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
  margin: 0;
  cursor: pointer;
  white-space: nowrap;
}

/* Report wrapper — full-width row, visually separated */
#pms-salary-calculation-form > #timesheet-report-wrapper {
  width: 100%;
  /* flex: 0 0 100%;
  width: 100%;
  margin-top: 6px;
  padding-top: 20px;
  border-top: 1px solid #f0f2f5; */
}

/* Empty form-actions (submit commented out) */
#pms-salary-calculation-form > .form-actions {
  margin: 0;
  flex: 0 0 auto;
}

/* Salary table — compact cells so all 31 day columns fit comfortably */
.salary-report-wrapper tr td,
.salary-report-wrapper tr th {
  font-size: 11px !important;
  padding: 3px 2px !important;
  line-height: 1.3;
}
.salary-report-wrapper tr td:first-child,
.salary-report-wrapper tr th:first-child {
  min-width: 110px;
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
  padding-left: 6px !important;
}
.salary-report-wrapper tr td.net-salary,
.salary-report-wrapper tr td.user_data_total {
  min-width: 58px;
}
/* Salary table: compact colorful user avatar in the name column */
.salary-report-wrapper .salary-user-cell {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.salary-report-wrapper .salary-user-cell .pms-avatar {
  width: 30px;
  height: 30px;
  font-size: 15px;
  flex-shrink: 0;
  font-weight: 500; 
}
/* ══════════════════════════════════════════════════
   Project Progress Report (/report/project-progress)
   — row avatar, tag badges, calendar dates,
     icon action buttons, summary cards
   ══════════════════════════════════════════════════ */

/* Project name cell: avatar + link */
.ppr-row-name {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 220px;
}
.ppr-row-name .pms-avatar {
  width: 24px;
  height: 24px;
  font-size: 10px;
  line-height: 24px;
  flex-shrink: 0;
}
.ppr-project-link {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1e40af;
  text-decoration: none;
  font-weight: 500;
  font-size: 13px;
}
.ppr-project-link:hover { text-decoration: underline; }

/* ── Tag badges: for / status ── */
.ppr-tag {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  line-height: 18px;
}
/* "for" field colours */
.ppr-tag--for              { background: #ede9fe; color: #6d28d9; }
.ppr-tag--for-seo          { background: #dbeafe; color: #1d4ed8; }
.ppr-tag--for-development  { background: #d1fae5; color: #065f46; }
.ppr-tag--for-design       { background: #fce7f3; color: #9d174d; }
.ppr-tag--for-marketing    { background: #fef3c7; color: #92400e; }
.ppr-tag--for-client       { background: #e0f2fe; color: #0369a1; }
.ppr-tag--for-internal     { background: #f3f4f6; color: #374151; }

/* "status" field — sprint label badge */
.ppr-tag--status {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
}

/* ── Date cells: calendar icon + text ── */
.ppr-date-cell {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  font-size: 13px;
}
.ppr-cal-icon {
  font-size: 13px !important;
  color: #6366f1;
  line-height: 1;
  flex-shrink: 0;
}

/* ── Action icon buttons ── */
td.ppr-actions { white-space: nowrap; }
.ppr-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.15s;
  vertical-align: middle;
}
.ppr-action-btn .material-icons { font-size: 16px; }
.ppr-action-view              { color: #4f46e5; }
.ppr-action-view:hover        { background: #ede9fe; }
.ppr-action-edit              { color: #0891b2; }
.ppr-action-edit:hover        { background: #cffafe; }

/* ── Summary stats cards ── */
.report-summary { margin-top: 24px; }
.ppr-summary-cards {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.ppr-summary-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 22px;
  min-width: 160px;
  flex: 1;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.ppr-summary-icon {
  font-size: 26px !important;
  border-radius: 8px;
  padding: 8px;
  flex-shrink: 0;
}
.ppr-summary-card--projects  .ppr-summary-icon { color: #4f46e5; background: #ede9fe; }
.ppr-summary-card--tasks      .ppr-summary-icon { color: #0891b2; background: #e0f2fe; }
.ppr-summary-card--completed  .ppr-summary-icon { color: #059669; background: #d1fae5; }
.ppr-summary-card--progress   .ppr-summary-icon { color: #d97706; background: #fef3c7; }
.ppr-summary-data {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ppr-summary-value {
  font-size: 24px;
  font-weight: 700;
  color: #111827;
  line-height: 1;
}
.ppr-summary-label {
  font-size: 13px;
  color: #6b7280;
  font-weight: 400;
  white-space: nowrap;
}
/* ══════════════════════════════════════════════════
   Project Progress filter form (.ppr-filter-form)
   Stand-alone styles — no pms-list-filters dependency
   ══════════════════════════════════════════════════ */

/* Card wrapper */
#project-filters-form {
  background: #fff;
  border-radius: 10px;
  /* padding: 16px 20px; */
  overflow: visible !important;
  margin-bottom: 25px;
}

/* Strip global table styles from the outer filter table */
.rising-layout #main-content #project-filters-form > table,
.rising-layout #main-content #project-filters-form > table thead,
.rising-layout #main-content #project-filters-form > table tbody,
.rising-layout #main-content #project-filters-form > table tr,
.rising-layout #main-content #project-filters-form > table td {
  display: revert !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: none !important;
}
.rising-layout #main-content #project-filters-form > table td{
  vertical-align: top !important;
}
/* Hide tabledrag weight column and handle globally */
.rising-layout #main-content #project-filters-form table tbody td.tabledrag-hide,
.rising-layout #main-content #project-filters-form table thead th.tabledrag-hide {
  display: none !important;
}
.filter-wrapper-td .filter-wrapper{
  margin-top: 20px;
  height: 127px;
}
.rising-layout #main-content #project-filters-form > table td {
  padding: 0 10px 0 0 !important;
  /* vertical-align: bottom !important; */
}
.rising-layout #main-content #project-filters-form > table tbody tr:hover {
  background: transparent !important;
}
#project-filters-form .pms-filter-actions{
  /* margin-top: 35px; */
}
/* Labels — small caps like other filter forms */
#project-filters-form .form-item label,
#project-filters-form .form-item .form-item__label {
  /* font-size: 11px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: block;
  margin-bottom: 4px; */
}

/* All selects and text inputs */
#project-filters-form input[type="text"],
#project-filters-form select:not([multiple]) {
  height: 36px;
  padding: 0 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
  color: #374151;
  background: #f9fafb;
  min-width: 130px;
}
#project-filters-form input[type="text"]:focus,
#project-filters-form select:not([multiple]):focus {
  outline: none;
  border-color: #6366f1;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.10);
}

/* Milestone multi-select */
#project-filters-form select[multiple] {
  height: 120px;
  max-height: 120px;
  min-width: 180px;
  font-size: 13px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #f9fafb;
  padding: 4px 6px;
  resize: vertical;
  overflow-y: auto;
}

/* Actions cell */
#project-filters-form .pms-filter-actions {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

/* Apply button */
/* #project-filters-form .pms-filter-actions input[type="submit"].pms-filter-submit {
  height: 36px;
  padding: 0 18px !important;
  border-radius: 6px !important;
  background: #4f46e5 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border: none !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: background 0.15s;
  white-space: nowrap;
  margin: 0 !important;
  line-height: 36px;
}
#project-filters-form .pms-filter-actions input[type="submit"].pms-filter-submit:hover {
  background: #3730a3 !important;
} */

/* Reset button */
/* #project-filters-form .pms-filter-actions input[type="submit"].pms-filter-reset {
  height: 36px;
  padding: 0 14px !important;
  border-radius: 6px !important;
  background: #f3f4f6 !important;
  color: #374151 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border: 1px solid #e5e7eb !important;
  cursor: pointer;
  box-shadow: none !important;
  transition: background 0.15s;
  white-space: nowrap;
  margin: 0 !important;
  line-height: 36px;
}
#project-filters-form .pms-filter-actions input[type="submit"].pms-filter-reset:hover {
  background: #e5e7eb !important;
} */

#pms_task_log .pms-task-log-body{}
#pms_task_log #project-activities .act-icon-ring--work{display:none;}

/* Override old height/scroll on .log-items.visible so the new card renders cleanly */
#pms_task_log .log-items.visible {
  display: block !important;
  overflow: visible !important;
  height: auto !important;
  max-height: 400px;
  overflow-y: auto !important;
}

/* ── Task view: single-row work log entry ── */
#pms_task_log .act-work-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid #f1f5f9;
  flex-wrap: nowrap;
  min-width: 0;
}
#pms_task_log .act-work-item:last-child {
  border-bottom: none;
}

#pms_task_log .act-work-avatar {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px;
  font-size: 11px !important;
  flex-shrink: 0;
}

#pms_task_log .act-work-date {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  color: #64748b;
  white-space: nowrap;
  flex-shrink: 0;
}
#pms_task_log .act-work-date .material-icons {
  font-size: 11px;
  color: #94a3b8;
}

#pms_task_log .act-work-comment {
  font-size: 13px;
  color: #64748b;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  /* text-overflow: ellipsis;
  white-space: nowrap; */
  max-width: 340px;
}

#pms_task_log .act-work-item .act-hours-badge {
  margin-left: auto;
  flex-shrink: 0;
}

#pms_task_log .act-work-item .log-actions {
  flex-shrink: 0;
}

/* ── Task view page: inline timer row (.task-timer inside .add_work) ──
   Scoped to .add_work so it never conflicts with #timer-cart-popup rows ── */
.add_work .task-timer.timer-cart-row {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  background: #f8faff;
  border: 1px solid #e0e7ff;
  border-radius: 50px;
  padding: 5px 12px;
  width: auto !important;
  justify-content: flex-start;
  /* override old_timer.css width/border-radius/background */
  text-align: left;
}

.add_work .task-timer .timer-cart-time {
  font-family: 'Courier New', monospace;
  font-size: 14px;
  font-weight: 600;
  color: #374151;
  min-width: 72px;
  text-align: center;
  letter-spacing: 0.5px;
  padding: 0 6px;
  margin-bottom: 0px;
  margin-top: 0px;
}

.add_work .task-timer .timer-start,
.add_work .task-timer .timer-pause,
.add_work .task-timer .timer-remove,
.add_work .task-timer .timer-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* width: 30px;
  height: 30px; */
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}

.add_work .task-timer .timer-start  { background: #c5ffd7; }
.add_work .task-timer .timer-start:hover  { background: #dcfce7; }

.add_work .task-timer .timer-pause  { background: #fff7ed; }
.add_work .task-timer .timer-pause:hover  { background: #ffedd5; }

.add_work .task-timer .timer-submit { background: #bed9fb; }
.add_work .task-timer .timer-submit:hover { background: #dbeafe; }

.add_work .task-timer .timer-remove { background: transparent; }
.add_work .task-timer .timer-remove:hover { background: #f3f4f6; }

.add_work .task-timer svg {
  width: 18px;
  height: 18px;
  display: block;
}
#pms_time_entry .act-icon-ring--work{
  display:none;
}

.burdown-add-project{
  margin-bottom:15px;
}

/* ══════════════════════════════════════════
   My Updates page  (/my-updates)
   ══════════════════════════════════════════ */

/* Page wrapper */
.my-updates-page {
  /* max-width: 860px; */
}

/* ── Toolbar (single row: left = select/mark, right = filters) ── */
.my-updates-page #select-all-notifications{ 
  display: none;
}
.my-updates-page .mup-toolbar .form-item{
  margin: 0;
}
.my-updates-page .mup-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  /* padding: 8px 14px; */
  background: #fff;
  /* border: 1px solid #e5e7eb; */
  /* border-radius: 10px;
  margin-bottom: 14px; */
  flex-wrap: wrap;  margin: 0px;
  margin-bottom: 0px;
  margin-bottom: 15px;
}
.my-updates-page .mup-toolbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.my-updates-page .mup-toolbar-right {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

/* Select-all label */
.my-updates-page .mup-select-all {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  cursor: pointer;
  white-space: nowrap;
}
.my-updates-page .mup-select-all input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #4f46e5;
  cursor: pointer;
  position: relative;
  display: inline-block;
  opacity: 1;
}

/* ── Filter form inside toolbar-right ── */
.my-updates-page .mup-toolbar-right form,
.my-updates-page .mup-toolbar-right .task-report-filter-form {
  margin: 0;
}
.my-updates-page .mup-toolbar-right .mup-filter-inline {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
}
.my-updates-page .mup-toolbar-right select {
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
  color: #374151;
  /* background: #fff; */
  cursor: pointer;
  outline: none;
  height: 30px;
  padding: 0px 10px !important;
  min-height: auto;
}
.my-updates-page .mup-toolbar-right select:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 2px rgba(99,102,241,0.15);
}
.my-updates-page .mup-toolbar-right .form-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
}
.my-updates-page .mup-toolbar-right .form-submit,
.my-updates-page .mup-toolbar-right .form-actions .button {
  /* height: 30px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  line-height: 30px;
  white-space: nowrap;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  text-decoration: none;
  display: inline-flex;
  align-items: center; */
}
.my-updates-page .mup-toolbar-right .form-submit {
  /* background: #4f46e5;
  border-color: #4f46e5;
  color: #fff; */
}
.my-updates-page .mup-toolbar-right .form-submit:hover { background: #4338ca; border-color: #4338ca; }
.my-updates-page .mup-toolbar-right .form-actions .button:hover {
  /* background: #f3f4f6;
  border-color: #9ca3af; */
}

/* ── Filter area (legacy, kept for compatibility) ── */
.my-updates-page .mup-filter-area { display: none; }

/* Toolbar buttons */
.my-updates-page .mup-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 32px;
  padding: 0 14px;
  border-radius: 7px;
  border: 1px solid #575757;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, opacity 0.15s;
  white-space: nowrap;
}
.my-updates-page .mup-btn .material-icons { font-size: 15px; color: #6366f1; }
.my-updates-page .mup-btn:hover { background: #f8faff; border-color: #c7d2fe; color: #4f46e5; }
.my-updates-page .mup-btn:disabled { opacity: 0.45; cursor: not-allowed; pointer-events: none; }

.my-updates-page .mup-btn-primary {
  background: #4f46e5;
  /* color: #fff; */
  border-color: #4f46e5;
}
.my-updates-page .mup-btn-primary .material-icons {  }
.my-updates-page .mup-btn-primary:hover { background: #4338ca; border-color: #4338ca;  }

/* ── Filter area ── */
.my-updates-page .mup-filter-area {
  margin-bottom: 16px;
}

/* ── Feed ── */
.my-updates-page .mup-feed {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Date separator ── */
.my-updates-page .mup-date-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0 8px;
}
.my-updates-page .mup-date-sep::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e5e7eb;
}
.my-updates-page .notification-group:first-child .mup-date-sep { padding-top: 4px; }
.my-updates-page .mup-date-label {
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  white-space: nowrap;
}

/* ── Notification item card ── */
.my-updates-page .notification-item.list-page {
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}
.my-updates-page .notification-item.list-page:nth-child(even) {
  background: transparent;
}
.my-updates-page .mup-item-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: #fff;
  margin-bottom: 5px;
  transition: background 0.12s, border-color 0.12s, box-shadow 0.12s;
  position: relative;
}
.my-updates-page .mup-item-inner:hover {
  background: #f8faff;
  border-color: #e0e7ff;
  box-shadow: 0 2px 8px rgba(99,102,241,0.06);
}
.my-updates-page .notification-item.list-page.is-read .mup-item-inner {
  opacity: 0.72;
}
.my-updates-page .notification-item.list-page.is-read strong {
  font-weight: 400;
}

/* Checkbox */
.my-updates-page .mup-chk-wrap {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 0;
}
.my-updates-page .mup-chk-wrap input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #4f46e5;
  cursor: pointer;
  position: relative;
  display: inline-block;
  opacity: 1;
}
.my-updates-page .mup-chk-wrap input[type="checkbox"]:disabled { opacity: 0.35; cursor: default; }

/* Type icon */
.my-updates-page .mup-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
  background: #64748b;
}
.my-updates-page .mup-icon-wrap .material-icons { font-size: 17px; }

/* Icon colour variants */
.my-updates-page .mup-icon--task        { background: #4f46e5; }
.my-updates-page .mup-icon--subtask     { background: #0ea5e9; }
.my-updates-page .mup-icon--project     { background: #10b981; }
.my-updates-page .mup-icon--discussion  { background: #7c3aed; }
.my-updates-page .mup-icon--leave       { background: #f59e0b; }
.my-updates-page .mup-icon--hosting     { background: #0891b2; }
.my-updates-page .mup-icon--domain      { background: #0891b2; }
.my-updates-page .mup-icon--subscription{ background: #0891b2; }
.my-updates-page .mup-icon--hardware    { background: #0891b2; }
.my-updates-page .mup-icon--other       { background: #64748b; }

/* Body text */
.my-updates-page .mup-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
}
.my-updates-page .mup-project {
  font-size: 13px;
  font-weight: 700;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.my-updates-page .mup-project a { color: #4f46e5; }
.my-updates-page .mup-task {
  font-size: 13px;
  color: #374151;
  min-width: 0;
}
.my-updates-page .mup-task a {
  color: #374151;
  text-decoration: none;
}
.my-updates-page .mup-task a:hover { color: #4f46e5; text-decoration: underline; }

/* Badge (action type) */
.my-updates-page .mup-badge {
  display: inline-block;
  padding: 1px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  background: #ede9fe;
  color: #6d28d9;
  white-space: nowrap;
  flex-shrink: 0;
}
.my-updates-page .mup-badge[data-type="leave"]       { background: #fef3c7; color: #92400e; }
.my-updates-page .mup-badge[data-type="project"]     { background: #d1fae5; color: #065f46; }
.my-updates-page .mup-badge[data-type="discussion"]  { background: #ede9fe; color: #6d28d9; }
.my-updates-page .mup-badge[data-type="hosting"],
.my-updates-page .mup-badge[data-type="domain"],
.my-updates-page .mup-badge[data-type="subscription"],
.my-updates-page .mup-badge[data-type="hardware"]    { background: #e0f2fe; color: #0369a1; }

/* Unread dot */
.my-updates-page .mup-unread-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #6366f1;
  flex-shrink: 0;
}

/* Resource expired link tint */
.my-updates-page a.resource-expired,
.my-updates-page .mup-task a.resource-expired { color: #dc2626; }
.my-updates-page .mup-icon--hosting.resource-expired,
.my-updates-page .mup-icon--domain.resource-expired  { background: #dc2626; }

/* ── Empty state ── */
.my-updates-page .mup-empty {
  text-align: center;
  padding: 60px 20px;
  color: #94a3b8;
}
.my-updates-page .mup-empty .material-icons {
  font-size: 52px;
  display: block;
  margin-bottom: 10px;
  opacity: 0.45;
}
.my-updates-page .mup-empty p { font-size: 14px; margin: 0; }

/* ── Infinite-scroll status ── */
.my-updates-page .infinite-scroll-loading,
.my-updates-page .infinite-scroll-finished,
.my-updates-page .infinite-scroll-error {
  text-align: center;
  padding: 16px;
  font-size: 13px;
  color: #94a3b8;
}
.my-updates-page .infinite-scroll-loading { color: #6366f1; }
.my-updates-page .infinite-scroll-error   { color: #dc2626; }
.kanban-page-wrapper .js-form-item-type.form-item--type{
  display:none;
}