upskill-event-manager/assets/css/hvac-menu-system.css
Ben 8be49ad5a9 fix: comprehensive dashboard fixes and improvements
- Fixed critical security vulnerability with incorrect capability checks
- Fixed hardcoded redirect path from /community-login/ to /training-login/
- Moved dashboard shortcode registration to centralized location
- Fixed duplicate class loading with proper singleton checks
- Fixed incorrect edit URLs in dashboard
- Removed debug HTML comments from production templates
- Moved inline CSS to external stylesheets for better maintainability
- Added caching mechanism for dashboard statistics queries (1 hour cache)
- Implemented pagination JavaScript handlers for AJAX navigation
- Added comprehensive error handling and logging throughout
- Fixed role-based access control (checking roles not capabilities)
- Improved performance with cached database queries
2025-08-21 20:41:59 -03:00

386 lines
No EOL
9.4 KiB
CSS

/**
* HVAC Menu System Styles
* WordPress-compliant navigation styling
*/
/* Dashboard navigation - NO container styling */
.hvac-trainer-dashboard-page .hvac-trainer-menu-wrapper {
background: transparent !important;
border: none !important;
margin-bottom: 20px !important;
padding: 0 !important;
box-shadow: none !important;
width: 100% !important;
display: block !important;
}
/* Other pages - container styling (but NOT dashboard) */
.hvac-page-wrapper:not(.hvac-trainer-dashboard-page) .hvac-trainer-menu-wrapper {
background: #ffffff !important;
border-bottom: 1px solid #e0e0e0 !important;
margin-bottom: 20px !important;
padding: 0 !important;
box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
width: 100% !important;
display: block !important;
}
.hvac-trainer-nav {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.hvac-page-wrapper .hvac-trainer-menu,
.hvac-trainer-menu {
display: flex !important;
list-style: none !important;
margin: 0 !important;
padding: 0 !important;
align-items: center !important;
flex-wrap: wrap !important;
flex-direction: row !important;
}
/* Position help menu item to the far right */
.hvac-trainer-menu .hvac-help-menu-item {
margin-left: auto !important;
order: 999 !important; /* Ensure it's always last */
}
/* Style the help menu icon */
.hvac-trainer-menu .hvac-help-menu-item a {
padding: 15px 10px !important;
font-size: 18px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
min-width: 40px !important;
}
.hvac-trainer-menu .hvac-help-menu-item .dashicons {
font-size: 18px !important;
}
.hvac-page-wrapper .hvac-trainer-menu .menu-item,
.hvac-trainer-menu .menu-item {
position: relative !important;
margin: 0 !important;
padding: 0 !important;
display: inline-flex !important;
list-style: none !important;
}
.hvac-trainer-menu .menu-item > a,
.hvac-trainer-menu .menu-item > .menu-toggle {
display: flex;
align-items: center;
padding: 15px 20px;
text-decoration: none;
color: #333;
font-weight: 500;
transition: all 0.3s ease;
cursor: pointer;
border: none;
background: none;
font-size: 14px;
}
.hvac-trainer-menu .menu-item > a:hover,
.hvac-trainer-menu .menu-item > .menu-toggle:hover {
background-color: #f8f9fa;
color: #007cba;
}
.hvac-trainer-menu .menu-item.has-children > .menu-toggle {
position: relative;
}
.hvac-trainer-menu .menu-item .dashicons {
margin-right: 8px;
font-size: 16px;
}
.hvac-trainer-menu .dropdown-arrow {
margin-left: 8px;
font-size: 12px;
transition: transform 0.3s ease;
}
.hvac-trainer-menu .menu-item.has-children.open .dropdown-arrow {
transform: rotate(180deg);
}
.hvac-trainer-menu .sub-menu {
position: absolute;
top: 100%;
left: 0;
background: #ffffff;
border: 1px solid #e0e0e0;
border-radius: 4px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
list-style: none;
margin: 0;
padding: 8px 0;
min-width: 200px;
z-index: 99999 !important;
display: none;
}
.hvac-trainer-menu .menu-item.has-children.open .sub-menu {
display: block;
}
.hvac-trainer-menu .sub-menu .menu-item {
width: 100%;
}
.hvac-trainer-menu .sub-menu .menu-item > a {
padding: 12px 20px;
font-weight: 400;
white-space: nowrap;
}
.hvac-trainer-menu .sub-menu .menu-item > a:hover {
background-color: #f8f9fa;
color: #007cba;
}
.hvac-trainer-menu .sub-menu .sub-menu {
position: absolute;
top: 0;
left: 100%;
margin-left: 1px;
}
/* Special styling for logout */
.hvac-trainer-menu .menu-item-logout {
margin-left: auto;
}
/* Hamburger Menu Styles */
.hvac-hamburger-menu {
display: none;
background: none;
border: none;
cursor: pointer;
padding: 10px;
position: relative;
z-index: 10001;
}
.hvac-hamburger-line {
display: block;
width: 25px;
height: 3px;
background: #333;
margin: 5px 0;
transition: all 0.3s ease;
border-radius: 2px;
}
/* Hamburger animation when active */
.hvac-hamburger-menu.active .hvac-hamburger-line:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}
.hvac-hamburger-menu.active .hvac-hamburger-line:nth-child(2) {
opacity: 0;
}
.hvac-hamburger-menu.active .hvac-hamburger-line:nth-child(3) {
transform: rotate(-45deg) translate(7px, -6px);
}
/* Desktop Responsive Styles */
@media (min-width: 993px) {
.hvac-hamburger-menu {
display: none !important;
}
.hvac-page-wrapper .hvac-trainer-menu,
.hvac-trainer-menu {
display: flex !important;
visibility: visible !important;
opacity: 1 !important;
}
}
/* Mobile Responsive Styles */
@media (max-width: 992px) {
.hvac-trainer-nav {
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
}
.hvac-hamburger-menu {
display: block !important;
}
.hvac-page-wrapper .hvac-trainer-menu,
.hvac-trainer-menu {
display: none !important;
position: absolute !important;
top: 100% !important;
left: 0 !important;
right: 0 !important;
background: #ffffff !important;
flex-direction: column !important;
width: 100% !important;
box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;
border-top: 1px solid #e0e0e0 !important;
max-height: calc(100vh - 60px) !important;
overflow-y: auto !important;
z-index: 10000 !important;
}
.hvac-page-wrapper .hvac-trainer-menu.active,
.hvac-trainer-menu.active {
display: flex !important;
}
.hvac-trainer-menu .menu-item {
width: 100% !important;
border-bottom: 1px solid #f0f0f0 !important;
}
.hvac-trainer-menu .menu-item > a,
.hvac-trainer-menu .menu-item > .menu-toggle {
padding: 15px 20px !important;
width: 100% !important;
justify-content: space-between !important;
}
/* Sub-menu styles for mobile */
.hvac-trainer-menu .sub-menu {
position: static !important;
display: none !important;
width: 100% !important;
box-shadow: none !important;
border: none !important;
background: #f8f9fa !important;
padding-left: 20px !important;
}
.hvac-trainer-menu .menu-item.has-children.open .sub-menu {
display: block !important;
}
.hvac-trainer-menu .sub-menu .menu-item {
border-bottom: 1px solid #e9ecef !important;
}
.hvac-trainer-menu .sub-menu .sub-menu {
position: static !important;
left: 0 !important;
margin-left: 0 !important;
padding-left: 20px !important;
}
/* Help menu item on mobile */
.hvac-trainer-menu .hvac-help-menu-item {
margin-left: 0 !important;
order: initial !important;
}
.hvac-trainer-menu .hvac-help-menu-item a {
justify-content: flex-start !important;
padding: 15px 20px !important;
}
.hvac-trainer-menu .hvac-help-menu-item a::after {
content: "Help" !important;
margin-left: 8px !important;
}
}
@media (max-width: 768px) {
.hvac-trainer-nav {
padding: 0 15px;
}
.hvac-trainer-menu .menu-item > a,
.hvac-trainer-menu .menu-item > .menu-toggle {
padding: 12px 15px !important;
font-size: 14px !important;
}
.hvac-trainer-menu .sub-menu {
padding-left: 15px !important;
}
}
.hvac-trainer-menu .menu-item-logout > a {
color: #d63638;
}
.hvac-trainer-menu .menu-item-logout > a:hover {
background-color: #f8d7da;
color: #721c24;
}
/* Mobile responsive */
@media (max-width: 768px) {
.hvac-page-wrapper .hvac-trainer-menu,
.hvac-trainer-menu {
display: none !important;
flex-direction: column;
align-items: stretch;
position: absolute !important;
top: 100% !important;
left: 0 !important;
right: 0 !important;
background: #ffffff !important;
width: 100% !important;
box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;
border-top: 1px solid #e0e0e0 !important;
max-height: calc(100vh - 60px) !important;
overflow-y: auto !important;
z-index: 10000 !important;
}
.hvac-page-wrapper .hvac-trainer-menu.active,
.hvac-trainer-menu.active {
display: flex !important;
}
.hvac-trainer-menu .menu-item {
width: 100%;
}
.hvac-trainer-menu .menu-item > a,
.hvac-trainer-menu .menu-item > .menu-toggle {
justify-content: space-between;
border-bottom: 1px solid #f0f0f0;
}
.hvac-trainer-menu .sub-menu {
position: static;
box-shadow: none;
border: none;
border-left: 3px solid #007cba;
margin-left: 20px;
background: #f8f9fa;
}
.hvac-trainer-menu .menu-item-logout {
margin-left: 0;
border-top: 2px solid #e0e0e0;
margin-top: 10px;
padding-top: 10px;
}
}
/* Active page highlighting */
.hvac-trainer-menu .menu-item.current-menu-item > a,
.hvac-trainer-menu .menu-item.current-menu-parent > a {
background-color: #007cba;
color: #ffffff;
}
.hvac-trainer-menu .menu-item.current-menu-item > a:hover,
.hvac-trainer-menu .menu-item.current-menu-parent > a:hover {
background-color: #005a87;
}