/**
 * DCM - Profile & Membership Pro
 * Frontend Styles - Fluent Design System
 * 
 * OPTIMIZATION SUMMARY:
 * - Added CSS custom properties for common values (gradients, colors, transitions, shadows, spacing)
 * - Consolidated duplicate gradient definitions using CSS variables
 * - Standardized spacing using CSS custom properties
 * - Unified button system with consistent transitions and shadows
 * - Combined duplicate status indicator styles
 * - Optimized card hover effects using shared variables
 * - Reduced redundancy across button variants
 * - Standardized border radius and shadow values
 * - Replaced all remaining hardcoded gradient values with CSS variables
 * - Eliminated duplicate gradient definitions throughout the file
 * 
 * @package DCM_Profile_Membership_Pro
 * @since 1.0.0
 */

/* ==========================================================================
   CSS Custom Properties - Common Values
   ========================================================================== */
:root {
    /* Primary Color Gradients */
    --dcm-gradient-primary: linear-gradient(135deg, #007cba 0%, #005a87 100%);
    --dcm-gradient-primary-hover: linear-gradient(135deg, #005a87 0%, #004085 100%);
    --dcm-gradient-primary-dark: linear-gradient(135deg, #005a87 0%, #004066 100%);
    
    /* Secondary Color Gradients */
    --dcm-gradient-secondary: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
    --dcm-gradient-secondary-hover: linear-gradient(135deg, #1e7e34 0%, #155724 100%);
    
    /* Success Color Gradients */
    --dcm-gradient-success: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
    --dcm-gradient-success-hover: linear-gradient(135deg, #1e7e34 0%, #155724 100%);
    
    /* Danger Color Gradients */
    --dcm-gradient-danger: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
    --dcm-gradient-danger-hover: linear-gradient(135deg, #c82333 0%, #bd2130 100%);
    
    /* Warning Color Gradients */
    --dcm-gradient-warning: linear-gradient(135deg, #ffc107 0%, #e0a800 100%);
    --dcm-gradient-warning-hover: linear-gradient(135deg, #e0a800 0%, #d39e00 100%);
    
    /* Info Color Gradients */
    --dcm-gradient-info: linear-gradient(135deg, #17a2b8 0%, #138496 100%);
    --dcm-gradient-info-hover: linear-gradient(135deg, #138496 0%, #117a8b 100%);
    
    /* Light Color Gradients */
    --dcm-gradient-light: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    --dcm-gradient-light-hover: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);
    
    /* Horizontal Gradients */
    --dcm-gradient-horizontal: linear-gradient(90deg, #007cba, #005a87);
    
    /* Common Transitions */
    --dcm-transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --dcm-transition-hover: all 0.3s ease;
    
    /* Common Shadows */
    --dcm-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);
    --dcm-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.15);
    --dcm-shadow-lg: 0 8px 25px rgba(0, 0, 0, 0.15);
    
    /* Common Border Radius */
    --dcm-radius-sm: 6px;
    --dcm-radius-md: 8px;
    --dcm-radius-lg: 12px;
    --dcm-radius-xl: 16px;
    
    /* Common Spacing */
    --dcm-spacing-xs: 8px;
    --dcm-spacing-sm: 12px;
    --dcm-spacing-md: 16px;
    --dcm-spacing-lg: 20px;
    --dcm-spacing-xl: 24px;
    --dcm-spacing-2xl: 30px;
    --dcm-spacing-3xl: 40px;
}

/* ==========================================================================
   Consolidated Text Styles
   ========================================================================== */

/* Small text - 12px, black */
.dcm-pmp-text-small,
.dcm-pmp-activity-time,
.dcm-pmp-activity-item .dcm-pmp-field-description,
.dcm-pmp-cv-meta,
.dcm-pmp-file-upload-info span,
.dcm-pmp-field-description,
.dcm-pmp-cv-date,
.dcm-pmp-activity-meta,
.dcm-pmp-activity-time,
.dcm-pmp-user-role,
.dcm-pmp-user-joined,
.dcm-pmp-hoursregistration-stat-label {
    font-size: 12px;
    color: #000000;
}

/* Medium text - 13px, black */
.dcm-pmp-text-medium,
.dcm-pmp-activity-content p,
.dcm-pmp-cv-meta,
.dcm-pmp-activity-meta,
.dcm-pmp-user-email,
.dcm-pmp-activity-time {
    font-size: 13px;
    color: #000000;
}

/* Normal text - 14px, black */
.dcm-pmp-text-normal,
.dcm-pmp-card-subtitle,
.dcm-pmp-cv-date-cell,
.dcm-pmp-job-description,
.dcm-pmp-results-count,
.dcm-pmp-cv-stat-label,
.dcm-pmp-activity-content h4,
.dcm-pmp-hours-unit,
.dcm-pmp-job-info-item,
.dcm-pmp-results-count,
.dcm-pmp-item-description,
.dcm-pmp-field-description,
.dcm-pmp-user-email,
.dcm-pmp-checkbox-text,
.dcm-pmp-file-upload-info span {
    font-size: 14px;
    color: #000000;
}

/* ==========================================================================
   Fluent Design System - Unified Icon System
   ========================================================================== */

/* FontAwesome icon base class */
.dcm-pmp-icon {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
}

/* Icon sizes */
.dcm-pmp-icon-sm { font-size: 14px; }
.dcm-pmp-icon-md { font-size: 18px; }
.dcm-pmp-icon-lg { font-size: 24px; }
.dcm-pmp-icon-xl { font-size: 32px; }

/* Icon colors */
.dcm-pmp-icon-primary { color: #007cba; }
.dcm-pmp-icon-secondary { color: #6c757d; }
.dcm-pmp-icon-success { color: #28a745; }
.dcm-pmp-icon-danger { color: #dc3545; }
.dcm-pmp-icon-warning { color: #ffc107; }
.dcm-pmp-icon-info { color: #17a2b8; }
.dcm-pmp-icon-light { color: #f8f9fa; }
.dcm-pmp-icon-dark { color: #343a40; }

/* Icon with background */
.dcm-pmp-icon-bg {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.dcm-pmp-icon-bg-primary {
    background: var(--dcm-gradient-primary);
}

.dcm-pmp-icon-bg-secondary {
    background: var(--dcm-gradient-secondary);
}

.dcm-pmp-icon-bg-success {
    background: var(--dcm-gradient-success);
}

.dcm-pmp-icon-bg-danger {
    background: var(--dcm-gradient-danger);
}

.dcm-pmp-icon-bg-warning {
    background: var(--dcm-gradient-warning);
    color: #212529;
}

.dcm-pmp-icon-bg-info {
    background: var(--dcm-gradient-info);
}

/* ==========================================================================
   Fluent Design System - Enhanced Button System
   ========================================================================== */

.dcm-pmp-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--dcm-spacing-xs);
    padding: var(--dcm-spacing-sm) var(--dcm-spacing-xl);
    border: none;
    border-radius: var(--dcm-radius-md);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
    transition: var(--dcm-transition-base);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    user-select: none;
}

/* Button hover effect with shine */
.dcm-pmp-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s;
}

.dcm-pmp-btn:hover::before {
    left: 100%;
}

/* Button variants */
.dcm-pmp-btn-primary {
    background: var(--dcm-gradient-primary);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-primary:hover {
    background: var(--dcm-gradient-primary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-secondary {
    background: var(--dcm-gradient-secondary);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-secondary:hover {
    background: var(--dcm-gradient-secondary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-success {
    background: var(--dcm-gradient-success);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-success:hover {
    background: var(--dcm-gradient-success-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-danger {
    background: var(--dcm-gradient-danger);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-danger:hover {
    background: var(--dcm-gradient-danger-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-warning {
    background: var(--dcm-gradient-warning);
    color: #212529;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-warning:hover {
    background: var(--dcm-gradient-warning-hover);
    color: #212529;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-info {
    background: var(--dcm-gradient-info);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-info:hover {
    background: var(--dcm-gradient-info-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-light {
    background: var(--dcm-gradient-light);
    color: #212529;
    border: 1px solid #dee2e6;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-btn-light:hover {
    background: var(--dcm-gradient-light-hover);
    color: #212529;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-btn-outline {
    background: transparent;
    color: #007cba;
    border: 2px solid #007cba;
    box-shadow: none;
}

.dcm-pmp-btn-outline:hover {
    background: #007cba;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 124, 186, 0.4);
}

/* Button sizes */
.dcm-pmp-btn-sm,
.dcm-pmp-btn-small {
    padding: 8px 16px;
    font-size: 12px;
    gap: 6px;
    height: auto;
    min-height: 32px;
}

.dcm-pmp-btn-lg {
    padding: 16px 32px;
    font-size: 16px;
    gap: 10px;
}

.dcm-pmp-btn-xl {
    padding: 20px 40px;
    font-size: 18px;
    gap: 12px;
}

/* Button state variants for better accessibility */
.dcm-pmp-btn-active {
    background: var(--dcm-gradient-primary);
    color: #fff;
    box-shadow: 0 2px 8px rgba(0, 124, 186, 0.3);
}

.dcm-pmp-btn-inactive {
    background: #f8f9fa;
    color: #6c757d;
    border: 1px solid #e9ecef;
}

.dcm-pmp-btn-inactive:hover {
    background: #e9ecef;
    color: #495057;
}

/* Button states */
.dcm-pmp-btn:disabled,
.dcm-pmp-btn.disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.dcm-pmp-btn:disabled::before,
.dcm-pmp-btn.disabled::before {
    display: none;
}

.dcm-pmp-btn-loading {
    position: relative;
    color: transparent !important;
}

.dcm-pmp-btn-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid transparent;
    border-top: 2px solid currentColor;
    border-radius: 50%;
    animation: dcm-pmp-spin 1s linear infinite;
}

@keyframes dcm-pmp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ==========================================================================
   Fluent Design System - Enhanced Card System
   ========================================================================== */

.dcm-pmp-card {
    background: #fff;
    border-radius: var(--dcm-radius-lg);
    box-shadow: var(--dcm-shadow-sm);
    padding: var(--dcm-spacing-xl);
    transition: var(--dcm-transition-base);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
    margin-bottom: 30px;
}

.dcm-pmp-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dcm-shadow-lg);
}

.dcm-pmp-card:hover::before {
    opacity: 1;
}

.dcm-pmp-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding-bottom: 0px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.dcm-pmp-card-icon {
    width: 40px;
    height: 40px;
    background: var(--dcm-gradient-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}

.dcm-pmp-card-title {
    font-size: 18px;
    font-weight: 600;
    color: #333;
    margin: 0;
    flex: 1;
}

.dcm-pmp-card-subtitle {
    font-size: 14px;
    color: #000000;
    margin: 4px 0 0 0;
}

.dcm-pmp-card-body {
    margin-bottom: 16px;
}

.dcm-pmp-card-footer {
    padding: 15px 20px;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
}

/* Card variants */
.dcm-pmp-card-primary {
    border-left: 4px solid #007cba;
}

.dcm-pmp-card-success {
    border-left: 4px solid #28a745;
}

.dcm-pmp-card-warning {
    border-left: 4px solid #ffc107;
}

.dcm-pmp-card-danger {
    border-left: 4px solid #dc3545;
}

.dcm-pmp-card-info {
    border-left: 4px solid #17a2b8;
}

/* ==========================================================================
   Fluent Design System - Typography with Icons
   ========================================================================== */

.dcm-pmp-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 24px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px;
}

.dcm-pmp-card-header i.dcm-pmp-heading-icon {
    color: #000000
}

.dcm-pmp-heading-icon i {
    color: #FFFFFF !important;
}

.dcm-pmp-heading-sm {
    font-size: 18px;
}

.dcm-pmp-heading-lg {
    font-size: 32px;
}

.dcm-pmp-heading-xl {
    font-size: 40px;
}

/* Page title heading styles */
.dcm-pmp-page-title .dcm-pmp-heading {
    color: #fff;
    margin-bottom: 10px;
}

/* Unified page title H1 styles */
.dcm-pmp-page-title h1.dcm-pmp-heading {
    margin: 0 0 10px 0;
    color: #fff;
    font-size: 32px;
    display: block !important;
}

.dcm-pmp-page-title h1.dcm-pmp-heading .dcm-pmp-heading-icon {
    display: inline-block;
    margin-right: 12px;
}

/* Page Header - Standard Pattern */


.dcm-pmp-page-title {
    flex: 1;
}

.dcm-pmp-page-title .dcm-pmp-subtitle {
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
}

.dcm-pmp-page-title p {
    margin-bottom: 0 !important;
}

.dcm-pmp-page-subtitle {
    color: #fff;
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    flex-wrap: wrap;
}

/* Ensure job company and location text/icons are white in page subtitle */
.dcm-pmp-page-subtitle .dcm-pmp-job-company,
.dcm-pmp-page-subtitle .dcm-pmp-job-location {
    color: #fff !important;
    margin-bottom: 0;
}
.dcm-pmp-page-subtitle .dcm-pmp-job-company i,
.dcm-pmp-page-subtitle .dcm-pmp-job-location i {
    color: #fff !important;
}

/* Mobile responsive heading sizes */
@media (max-width: 768px) {
    .dcm-pmp-page-title h1.dcm-pmp-heading {
        font-size: 22px !important;
    }
    h2.dcm-pmp-heading.dcm-pmp-heading-sm {
        font-size: 15px !important;
    }
    h2.dcm-pmp-heading {
        font-size: 18px !important;
    }
    h3.dcm-pmp-heading {
        font-size: 16px !important;
    }
    h3.dcm-pmp-heading.dcm-pmp-heading-sm {
        font-size: 14px !important;
    }
    .dcm-pmp-page-header {
        flex-direction: column;
        text-align: center;
        align-items: center;
        gap: 10px !important;
    }
    .dcm-pmp-cv-icon, .dcm-pmp-stat-icon {
        width: 35px !important;
        height: 35px !important;
        font-size: 20px !important;
        margin-right: 8px !important;
    }
}

/* ==========================================================================
   Fluent Design System - Unified Status Indicators
   ========================================================================== */

.dcm-pmp-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.dcm-pmp-status-active {
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
    color: #155724;
    border: 1px solid #c3e6cb;
}

.dcm-pmp-status-inactive,
.dcm-pmp-status-rejected {
    background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.dcm-pmp-status-pending {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    color: #856404;
    border: 1px solid #ffeaa7;
}

.dcm-pmp-status-approved {
    background: linear-gradient(135deg, #d1ecf1 0%, #bee5eb 100%);
    color: #0c5460;
    border: 1px solid #bee5eb;
}

.dcm-pmp-status-submitted {
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
    color: #155724;
    border: 1px solid #c3e6cb;
}

/* Status indicators for tables - inherit from main status styles */
.dcm-pmp-table .dcm-pmp-status {
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ==========================================================================
   Fluent Design System - Loading States
   ========================================================================== */

.dcm-pmp-loading {
    position: relative;
    opacity: 0.6;
    pointer-events: none;
}

.dcm-pmp-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid transparent;
    border-top: 2px solid #007cba;
    border-radius: 50%;
    animation: dcm-pmp-spin 1s linear infinite;
}

/* ==========================================================================
   Fluent Design System - Micro-interactions
   ========================================================================== */

.dcm-pmp-ripple {
    position: relative;
    overflow: hidden;
}

.dcm-pmp-ripple::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.dcm-pmp-ripple:active::after {
    width: 300px;
    height: 300px;
}

/* ==========================================================================
   General Styles
   ========================================================================== */

.dcm-pmp-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 20px 20px 10px 20px;
}

.dcm-pmp-section {
    margin-bottom: 30px;
}

.dcm-pmp-section-title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 20px;
    color: #333;
}

/* ==========================================================================
   Form Styles (General)
   ========================================================================== */

/* Note: Specific form styles for login/registration are defined in the Registration Form Styles section below */

/* Legacy button compatibility - now uses fluent design system */
.dcm-pmp-button {
    display: inline-flex;
    align-items: center;
    gap: var(--dcm-spacing-xs);
    padding: var(--dcm-spacing-sm) var(--dcm-spacing-xl);
    border: none;
    border-radius: var(--dcm-radius-md);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
    transition: var(--dcm-transition-base);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    user-select: none;
    background: var(--dcm-gradient-primary);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s;
}

.dcm-pmp-button:hover {
    background: var(--dcm-gradient-primary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-button:hover::before {
    left: 100%;
}

.dcm-pmp-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.dcm-pmp-button:disabled::before {
    display: none;
}

.dcm-pmp-button-secondary {
    background: var(--dcm-gradient-secondary);
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-button-secondary:hover {
    background: var(--dcm-gradient-secondary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

.dcm-pmp-form-footer {
    margin-top: 20px;
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid #e1e5e9;
}

.dcm-pmp-form-footer p {
    margin: 10px 0;
    color: #000000;
}

.dcm-pmp-form-footer a {
    color: #007cba;
    text-decoration: none;
    font-weight: 500;
}

.dcm-pmp-form-footer a:hover {
    text-decoration: underline;
}

/* ==========================================================================
   Unified Message System
   ========================================================================== */

.dcm-pmp-message {
    padding: 15px 20px;
    border-radius: 6px;
    margin: 20px 0;
    font-weight: 500;
}

.dcm-pmp-message-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.dcm-pmp-message-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.dcm-pmp-message-warning {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

.dcm-pmp-message-info {
    background: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}

.dcm-pmp-hidden {
    display: none;
}

/* ==========================================================================
   CAPTCHA Styles
   ========================================================================== */

.dcm-pmp-captcha {
    display: flex;
    align-items: center;
    gap: 15px;
}

.dcm-pmp-captcha-image {
    flex-shrink: 0;
}

.dcm-pmp-captcha-image img {
    border: 1px solid #e1e5e9;
    border-radius: 4px;
    padding: 5px;
    background: #f8f9fa;
}

.dcm-pmp-recaptcha {
    margin: 10px 0;
}

/* ==========================================================================
   Profile Display Styles
   ========================================================================== */

.dcm-pmp-profile {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
}

.dcm-pmp-profile::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-profile:hover::before {
    opacity: 1;
}

.dcm-pmp-profile-header {
    background: var(--dcm-gradient-primary);
    color: #fff;
    padding: 30px;
    text-align: center;
}

.dcm-pmp-profile-avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    margin: 0 auto 20px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    color: #007cba;
    border: 4px solid rgba(255, 255, 255, 0.3);
}

.dcm-pmp-profile-name {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 10px;
}

.dcm-pmp-profile-title {
    font-size: 18px;
    opacity: 0.9;
    margin-bottom: 0;
}

.dcm-pmp-profile-body {
    padding: 30px;
}

.dcm-pmp-profile-section {
    margin-bottom: 30px;
}

.dcm-pmp-profile-section:last-child {
    margin-bottom: 0;
}

.dcm-pmp-profile-section-title {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 15px;
    color: #333;
    border-bottom: 2px solid #e1e5e9;
    padding-bottom: 10px;
}

.dcm-pmp-profile-field {
    display: flex;
    margin-bottom: 15px;
    align-items: flex-start;
}

.dcm-pmp-profile-field-label {
    font-weight: 600;
    color: #000000;
    min-width: 120px;
    margin-right: 20px;
}

.dcm-pmp-profile-field-value {
    flex: 1;
    color: #333;
}

.dcm-pmp-profile-field-value a {
    color: #007cba;
    text-decoration: none;
}

.dcm-pmp-profile-field-value a:hover {
    text-decoration: underline;
}

/* ==========================================================================
   Table Styles (Global)
   ========================================================================== */

.dcm-pmp-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: var(--dcm-radius-md);
    overflow: hidden;
    box-shadow: var(--dcm-shadow-sm);
    margin-bottom: var(--dcm-spacing-2xl);
}

.dcm-pmp-table th,
.dcm-pmp-table td {
    padding: 15px;
    text-align: left;
    border-bottom: 1px solid #e1e5e9;
}

.dcm-pmp-table th {
    background: #f8f9fa;
    font-weight: 600;
    color: #333;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dcm-pmp-table tr:hover {
    background: #f8f9fa;
}

.dcm-pmp-table tr:last-child td {
    border-bottom: none;
}

.dcm-pmp-table .dcm-pmp-button {
    padding: 8px 16px;
    font-size: 14px;
    margin: 0 5px;
}

/* CV Table Specific Styles */
.dcm-pmp-cv-table-container {
    margin-top: 15px;
    border-radius: var(--dcm-radius-md);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-cv-table {
    margin: 0;
}

.dcm-pmp-cv-title-cell {
    font-weight: 600;
    color: #333;
}

.dcm-pmp-cv-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dcm-pmp-cv-icon {
    color: #0073aa;
    font-size: 16px;
}

.dcm-pmp-cv-description-cell {
    color: #000000;
    max-width: 300px;
}

.dcm-pmp-text-muted {
    color: #000000;
    font-style: italic;
}

.dcm-pmp-cv-type-cell {
    text-align: center;
}

.dcm-pmp-file-type-badge {
    display: inline-block;
    padding: 4px 8px;
    background: #f0f0f0;
    color: #333;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dcm-pmp-cv-date-cell {
    color: #000000;
    font-size: 14px;
}

.dcm-pmp-cv-date {
    display: flex;
    align-items: center;
    gap: 6px;
}

.dcm-pmp-cv-date i {
    color: #000000;
    font-size: 12px;
}



/* ==========================================================================
   Job Listings Styles
   ========================================================================== */

.dcm-pmp-job-listings {
    display: grid;
    gap: 20px;
}

.dcm-pmp-job-card {
    /* Inherit from base card system */
    composes: dcm-pmp-card;
    padding: 25px;
}

/* Frontend Job Listings - make black */
.dcm-pmp-job-card .dcm-pmp-job-title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    line-height: 1.3;
}

.dcm-pmp-job-card .dcm-pmp-job-title a {
    color: #FFFFFF !important;
    text-decoration: none;
}

.dcm-pmp-job-card .dcm-pmp-job-title a:hover {
    color: #FFFFFF !important;
    text-decoration: underline !important;
}


.dcm-pmp-job-description {
    color: #000000;
    line-height: 1.6;
    margin-bottom: 20px;
}

.dcm-pmp-job-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid #e1e5e9;
}

.dcm-pmp-job-type {
    background: #e3f2fd;
    color: #1976d2;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
}

.dcm-pmp-job-date {
    font-size: 14px;
    color: #000000;
}

/* ==========================================================================
   Search and Filter Styles
   ========================================================================== */

.dcm-pmp-search-filters {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 25px;
    margin-bottom: 30px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-search-filters::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-search-filters:hover::before {
    opacity: 1;
}

.dcm-pmp-search-filters h3 {
    margin-bottom: 20px;
    color: #333;
    font-size: 18px;
}

.dcm-pmp-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.dcm-pmp-filter-group {
    display: flex;
    flex-direction: column;
}

.dcm-pmp-filter-group label {
    font-weight: 500;
    margin-bottom: 8px;
    color: #333;
}

.dcm-pmp-filter-actions {
    margin-top: 20px;
    text-align: center;
}

/* ==========================================================================
   Pagination Styles
   ========================================================================== */

.dcm-pmp-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
    gap: 10px;
}

.dcm-pmp-pagination .page-numbers {
    display: inline-block;
    padding: 10px 15px;
    border: 1px solid #e1e5e9;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s ease;
}

.dcm-pmp-pagination .page-numbers:hover,
.dcm-pmp-pagination .page-numbers.current {
    background: #007cba;
    color: #fff;
    border-color: #007cba;
}

.dcm-pmp-pagination .prev,
.dcm-pmp-pagination .next {
    font-weight: 500;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 768px) {
    .dcm-pmp-container {
        padding: 15px;
    }

    /* Form styles are now handled in the Registration Form Styles section */

    .dcm-pmp-profile-header {
        padding: 20px;
    }

    .dcm-pmp-profile-avatar {
        width: 80px;
        height: 80px;
        font-size: 32px;
    }

    .dcm-pmp-profile-name {
        font-size: 24px;
    }

    .dcm-pmp-profile-body {
        padding: 20px;
    }

    .dcm-pmp-profile-field {
        flex-direction: column;
        margin-bottom: 20px;
    }

    .dcm-pmp-profile-field-label {
        margin-bottom: 5px;
        margin-right: 0;
    }

    .dcm-pmp-table {
        font-size: 14px;
    }

    .dcm-pmp-table th,
    .dcm-pmp-table td {
        padding: 10px;
    }

    .dcm-pmp-filter-grid {
        grid-template-columns: 1fr;
    }

    .dcm-pmp-job-meta {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .dcm-pmp-form-fields {
        gap: 15px;
    }

    .dcm-pmp-button {
        width: 100%;
        padding: 15px;
    }

    .dcm-pmp-captcha {
        flex-direction: column;
        align-items: flex-start;
    }

    .dcm-pmp-pagination {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .dcm-pmp-profile {
        box-shadow: none;
        border: 1px solid #ccc;
    }

    .dcm-pmp-button {
        display: none;
    }
} 



/* ==========================================================================
   Job Listings Frontend Styles
   ========================================================================== */

.dcm-pmp-job-listings {
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 40px;
    padding-bottom: 0px;
}





.dcm-pmp-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.dcm-pmp-results-header h2 {
    margin: 0;
    color: #333;
}

.dcm-pmp-results-count {
    margin: 0;
    color: #000000;
    font-size: 14px;
}

.dcm-pmp-job-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.dcm-pmp-job-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 20px;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.dcm-pmp-job-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-job-card:hover::before {
    opacity: 1;
}

.dcm-pmp-job-card.dcm-pmp-featured {
    border-color: #0073aa;
    border-width: 2px;
}

.dcm-pmp-featured-badge {
    position: absolute;
    top: -10px;
    right: 20px;
    background: #0073aa;
    color: #fff;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}









.dcm-pmp-job-description {
    color: #000000;
    line-height: 1.5;
    margin-bottom: 15px;
    font-size: 14px;
}





.dcm-pmp-job-actions {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
}

.dcm-pmp-job-actions .dcm-pmp-btn {
    padding: 8px 16px;
    font-size: 13px;
    gap: 6px;
    flex-shrink: 0;
}

/* Ensure proper button positioning in job listings */
.dcm-pmp-job-actions .dcm-pmp-btn:first-child {
    margin-right: auto;
}

.dcm-pmp-job-actions .dcm-pmp-btn:last-child {
    margin-left: auto;
}

/* ==========================================================================
   Manage CV/Resumes Frontend Styles
   ========================================================================== */

.dcm-pmp-cv-manager {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
}

/* (removed) .dcm-pmp-cv-header - deprecated in favor of .dcm-pmp-page-header */

.dcm-pmp-cv-title {
    flex: 1;
    display: block;
}

.dcm-pmp-cv-title p {
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 16px;
    display: block;
}

.dcm-pmp-cv-upload-section,
.dcm-pmp-cv-list-section {
    background: #fff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 30px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-cv-upload-section::before,
.dcm-pmp-cv-list-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-cv-upload-section:hover::before,
.dcm-pmp-cv-list-section:hover::before {
    opacity: 1;
}

.dcm-pmp-cv-upload-section h2,
.dcm-pmp-cv-list-section h2 {
    margin: 0 0 20px 0;
    color: #23282d;
    font-size: 24px;
}

.dcm-pmp-cv-upload-form,
.dcm-pmp-profile-form {
    max-width: 100%;
}

.dcm-pmp-cv-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.dcm-pmp-cv-stat-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 20px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-cv-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-cv-stat-card:hover::before {
    opacity: 1;
}

.dcm-pmp-cv-stat-number {
    font-size: 32px;
    font-weight: bold;
    color: #0073aa;
    margin-bottom: 5px;
}

.dcm-pmp-cv-stat-label {
    font-size: 14px;
    color: #000000;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dcm-pmp-cv-list {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.dcm-pmp-cv-item {
    /* Inherit from base card system */
    composes: dcm-pmp-card;
    padding: 20px;
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dcm-pmp-cv-info {
    flex: 1;
}

.dcm-pmp-cv-name {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin-bottom: 5px;
}

.dcm-pmp-cv-meta {
    font-size: 13px;
    color: #000000;
}

.dcm-pmp-cv-actions {
    display: flex;
    gap: 10px;
}

.dcm-pmp-cv-actions .dcm-pmp-button {
    padding: 6px 12px;
    font-size: 13px;
    gap: 6px;
}

/* ==========================================================================
   Modal and Message Styles
   ========================================================================== */

.dcm-pmp-modal {
    display: none;
    position: fixed !important;
    z-index: 999999 !important;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.dcm-pmp-modal-content {
    background: #fff;
    border-radius: 16px;
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    position: relative;
    z-index: 1000000;
}

.dcm-pmp-modal-close {
    background: none;
    border: none;
    font-size: 28px;
    color: #6c757d;
    cursor: pointer;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.dcm-pmp-modal-close:hover {
    background: #f8f9fa;
    color: #2c3e50;
}

.dcm-pmp-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 25px 30px;
    border-bottom: 1px solid #e9ecef;
}

.dcm-pmp-modal-header h3 {
    margin: 0;
    color: #2c3e50;
    font-size: 20px;
    font-weight: 600;
}

.dcm-pmp-modal-body {
    padding: 30px;
}

/* Message styles now inherit from the unified system above */

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .dcm-pmp-profile {
        box-shadow: none;
        border: 1px solid #ccc;
    }

    .dcm-pmp-button {
        display: none;
    }
} 

/* Skip link and screen reader utility */
.screen-reader-text { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus { position: static; left: auto; top: auto; width: auto; height: auto; padding: 8px 12px; margin: 10px 20px; background: #fff; color: #005a87; border-radius: 6px; outline: 3px solid rgba(0,124,186,0.3); }

/* ==========================================================================
   Frontend Templates - Auth pages
   ========================================================================== */
.dcm-pmp-auth-container { min-height: 40vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.dcm-pmp-auth-card { background: #fff; border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); padding: 40px; max-width: 450px; width: 100%; text-align: center; position: relative; overflow: hidden; }
.dcm-pmp-auth-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--dcm-gradient-horizontal); }
.dcm-pmp-auth-header { margin-bottom: 30px; }
.dcm-pmp-auth-icon { width: 80px; height: 80px; background: var(--dcm-gradient-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: #fff; font-size: 32px; }
.dcm-pmp-auth-form { text-align: left; }
.dcm-pmp-form-label { display: flex; align-items: center; gap: 8px; font-weight: 600; color: #333; }
.dcm-pmp-form-label .required { color: #dc3545; }
.dcm-pmp-checkbox-label { display: flex; align-items: center; gap: 10px; cursor: pointer; margin: 20px 0; }
.dcm-pmp-link { color: #007cba; text-decoration: none; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; transition: color 0.3s ease; }
.dcm-pmp-link:hover { color: #005a87; text-decoration: underline; }
.dcm-pmp-register-card { max-width: 750px; }

/* ==========================================================================
   Frontend Templates - Dashboard
   ========================================================================== */
.dcm-pmp-dashboard-container { padding: 40px 0; }
.dcm-pmp-dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; padding: var(--dcm-spacing-2xl); background: var(--dcm-gradient-primary); border-radius: var(--dcm-radius-xl); color: #fff; }
.dcm-pmp-dashboard-welcome h1 { color: #fff; margin-bottom: 10px; }
.dcm-pmp-dashboard-welcome p { color: rgba(255, 255, 255, 0.9); margin: 0; }
.dcm-pmp-dashboard-actions { display: flex; gap: 15px; }
.dcm-pmp-dashboard-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 40px; }
.dcm-pmp-stat-card { background: #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); padding: 25px; display: flex; align-items: center; gap: 20px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid rgba(0, 0, 0, 0.05); position: relative; overflow: hidden; }
.dcm-pmp-stat-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--dcm-gradient-horizontal); opacity: 0; transition: opacity 0.3s ease; }
.dcm-pmp-stat-card:hover::before { opacity: 1; }
.dcm-pmp-stat-icon { width: 60px; height: 60px; background: var(--dcm-gradient-primary); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 24px; flex-shrink: 0; }
.dcm-pmp-stat-content h3 { margin: 0 0 8px 0; text-transform: uppercase; letter-spacing: 0.5px; }
.dcm-pmp-stat-number { font-size: 32px; font-weight: 700; color: #007cba; margin-bottom: 5px; display: inline-block; }
.dcm-pmp-stat-description { font-size: 15px; color: #333; margin-top: -6px; display: inline-block; margin-left: 5px; vertical-align: middle; }
.dcm-pmp-dashboard-content { display: grid; grid-template-columns: 2fr 1fr; gap: 30px; }
.dcm-pmp-dashboard-section { background: #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); padding: 25px; margin-bottom: 30px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid rgba(0, 0, 0, 0.05); position: relative; overflow: hidden; }
.dcm-pmp-dashboard-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--dcm-gradient-horizontal); opacity: 0; transition: opacity 0.3s ease; }
.dcm-pmp-dashboard-section:hover::before { opacity: 1; }
.dcm-pmp-quick-actions { 
    display: grid !important; 
    grid-template-columns: repeat(3, 1fr) !important; 
    gap: 20px; 
    margin-top: 20px; 
    width: 100%;
}

.dcm-pmp-quick-actions-2x2 { 
    display: grid !important; 
    grid-template-columns: repeat(2, 1fr) !important; 
    grid-template-rows: auto !important;
    gap: 20px; 
    margin-top: 20px; 
    width: 100%;
}
.dcm-pmp-action-card { 
    background: #fff; 
    border-radius: 12px; 
    padding: 25px; 
    text-decoration: none; 
    color: #333; 
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
    border: 1px solid rgba(0, 0, 0, 0.05);
    display: flex !important;
    align-items: center;
    gap: 20px;
    width: 100%;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.dcm-pmp-action-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-action-card:hover::before {
    opacity: 1;
}

.dcm-pmp-action-card:hover { 
    background: #fff; 
    transform: translateY(-2px); 
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 
    color: #333; 
}
.dcm-pmp-action-icon { 
    width: 40px; 
    height: 40px; 
    background: var(--dcm-gradient-primary); 
    border-radius: 12px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    color: #fff; 
    font-size: 20px; 
    flex-shrink: 0;
    margin: 0 auto;
}

.dcm-pmp-action-content h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.dcm-pmp-action-content p {
    margin: 0;
    font-size: 15px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.dcm-pmp-activity-list { margin-top: 20px; }
.dcm-pmp-activity-item { 
    display: flex; 
    align-items: center; 
    gap: 15px; 
    padding: 20px; 
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
}
.dcm-pmp-activity-item:hover { 
    background: #fff; 
    transform: translateY(-2px); 
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 
}
.dcm-pmp-activity-icon { 
    width: 50px; 
    height: 50px; 
    background: var(--dcm-gradient-primary); 
    border-radius: 10px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    color: #fff; 
    font-size: 18px; 
    flex-shrink: 0; 
}
.dcm-pmp-activity-content h4 { margin: 0 0 5px 0; font-size: 14px; font-weight: 600; }
.dcm-pmp-activity-content p { margin: 0 0 5px 0; }
.dcm-pmp-activity-time { 
    font-size: 12px; 
    color: #000000; 
}

/* Form inputs within activity items */
.dcm-pmp-activity-item .dcm-pmp-input,
.dcm-pmp-activity-item .dcm-pmp-textarea {
    width: 100%;
    max-width: 100%;
    padding: 12px 16px;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    font-size: 14px;
    transition: all 0.3s ease;
    background: #fff;
    margin-top: 8px;
    box-sizing: border-box;
}

.dcm-pmp-activity-item .dcm-pmp-input:focus,
.dcm-pmp-activity-item .dcm-pmp-textarea:focus {
    outline: none;
    border-color: #007cba;
    box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);
}

.dcm-pmp-activity-item .dcm-pmp-textarea {
    resize: vertical;
    min-height: 100px;
}

.dcm-pmp-activity-item .dcm-pmp-field-description {
    font-size: 12px;
    color: #000000;
    margin: 4px 0 8px 0;
    font-style: italic;
}

.dcm-pmp-activity-item .dcm-pmp-required-text {
    color: #dc3545;
    font-size: 12px;
    font-weight: 500;
}

/* Ensure cv-details container allows full width inputs */
.dcm-pmp-activity-item .dcm-pmp-cv-details {
    flex: 1;
    min-width: 0; /* Allows flex item to shrink below content size */
}

.dcm-pmp-activity-item .dcm-pmp-cv-details h3 {
    margin: 0 0 2px 0 !important;
    font-size: 16px;
    font-weight: 600;
    color: #333;
}

/* Hoursregistration Form - Daily Hours Grid Layout */
.dcm-pmp-cv-upload-section .dcm-pmp-cv-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Hoursregistration Slider Container */
.dcm-pmp-hours-slider-container {
    margin-top: 10px;
}

.dcm-pmp-hours-slider {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: #e9ecef;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    margin-bottom: 10px;
}

.dcm-pmp-hours-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--dcm-gradient-primary);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 124, 186, 0.3);
    transition: all 0.3s ease;
}

.dcm-pmp-hours-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 124, 186, 0.4);
}

.dcm-pmp-hours-slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--dcm-gradient-primary);
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 6px rgba(0, 124, 186, 0.3);
    transition: all 0.3s ease;
}

.dcm-pmp-hours-slider::-moz-range-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 124, 186, 0.4);
}

.dcm-pmp-hours-slider-value {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-weight: 600;
    color: #007cba;
}

.dcm-pmp-hours-value {
    font-size: 18px;
    font-weight: 700;
}

.dcm-pmp-hours-unit {
    font-size: 14px;
    color: #000000;
}

/* Total Hours Display */
.dcm-pmp-total-hours-value {
    font-size: 24px;
    font-weight: bold;
    color: var(--dcm-color-primary-500);
    padding: 10px;
    background: var(--dcm-color-neutral-100);
    border-radius: 8px;
    text-align: center;
    margin-top: 10px;
}

/* Datepicker Styling */
.dcm-pmp-input[type="date"] {
    position: relative;
}

.dcm-pmp-input[type="date"]::-webkit-calendar-picker-indicator {
    background: transparent;
    bottom: 0;
    color: transparent;
    cursor: pointer;
    height: auto;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: auto;
}

.dcm-pmp-input[type="date"]::-webkit-datetime-edit {
    padding: 0;
}

.dcm-pmp-input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
}

.dcm-pmp-input[type="date"]::-webkit-datetime-edit-text {
    color: #000000;
    padding: 0 1px;
}

.dcm-pmp-input[type="date"]::-webkit-datetime-edit-month-field,
.dcm-pmp-input[type="date"]::-webkit-datetime-edit-day-field,
.dcm-pmp-input[type="date"]::-webkit-datetime-edit-year-field {
    color: #333;
    padding: 0;
}

.dcm-pmp-datepicker-focused {
    border-color: #007cba !important;
    box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1) !important;
}

/* Responsive grid for activity items */
@media (max-width: 768px) {
    .dcm-pmp-cv-list {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .dcm-pmp-cv-upload-section .dcm-pmp-cv-list {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

/* Unified Empty State System */
/* This empty state now inherits from the unified system above */

.dcm-pmp-empty-state h3 { 
    margin: 0 0 10px 0; 
    font-size: 18px; 
}

.dcm-pmp-empty-state p { 
    margin: 0; 
    font-size: 14px; 
}

.dcm-pmp-quick-links { margin-top: 20px; }
.dcm-pmp-quick-link { display: flex; align-items: center; gap: 12px; padding: 12px 0; color: #333; text-decoration: none; border-bottom: 1px solid #f0f0f0; transition: color 0.3s ease; }
.dcm-pmp-quick-link:last-child { border-bottom: none; }
.dcm-pmp-quick-link:hover { color: #007cba; }
.dcm-pmp-quick-link i { width: 20px; color: #007cba; }
@media (max-width: 1024px) {
  .dcm-pmp-quick-actions { grid-template-columns: repeat(2, 1fr); }
  .dcm-pmp-quick-actions-2x2 { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; }
}

@media (max-width: 768px) {
  .dcm-pmp-dashboard-header { flex-direction: column; text-align: center; gap: 20px; }
  .dcm-pmp-dashboard-content { grid-template-columns: 1fr; }
  .dcm-pmp-quick-actions { grid-template-columns: repeat(2, 1fr); }
  .dcm-pmp-quick-actions-2x2 { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; }
}

@media (max-width: 480px) {
  .dcm-pmp-quick-actions { grid-template-columns: 1fr; }
  .dcm-pmp-quick-actions-2x2 { grid-template-columns: 1fr; grid-template-rows: auto; }
}

/* ==========================================================================
   Frontend Templates - Jobs
   ========================================================================== */
.dcm-pmp-jobs-container { padding: 40px 0; }
.dcm-pmp-jobs-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--dcm-spacing-2xl); padding: var(--dcm-spacing-2xl); background: var(--dcm-gradient-primary); border-radius: var(--dcm-radius-xl); color: #fff; }
.dcm-pmp-jobs-title h1 { color: #fff; margin-bottom: 10px; }
.dcm-pmp-jobs-title p { color: rgba(255, 255, 255, 0.9); margin: 0; }
.dcm-pmp-search-row { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 20px; align-items: end; }
.dcm-pmp-search-field { display: flex; flex-direction: column; }
.dcm-pmp-results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; padding: 20px 0; border-bottom: 1px solid #e1e5e9; }
.dcm-pmp-results-sort { display: flex; align-items: center; gap: 10px; }
.dcm-pmp-jobs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); gap: 25px; margin-bottom: 40px; }
.dcm-pmp-job-header { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.dcm-pmp-job-logo { width: 60px; height: 60px; border-radius: 8px; overflow: hidden; flex-shrink: 0; }
.dcm-pmp-job-logo img { width: 100%; height: 100%; object-fit: cover; }
.dcm-pmp-job-logo-placeholder { width: 60px; height: 60px; background: #f8f9fa; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #6c757d; font-size: 24px; flex-shrink: 0; }

.dcm-pmp-job-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 15px; margin-bottom: 15px; }
.dcm-pmp-job-info-item { display: flex; align-items: center; gap: 8px; }
.dcm-pmp-job-info-item i { color: #007cba; width: 16px; }
.dcm-pmp-job-excerpt { color: #000000; line-height: 1.6; margin-bottom: 20px; }
.dcm-pmp-pagination-compact { margin-top: 40px; text-align: center; }
.dcm-pmp-pagination-compact .page-numbers { display: inline-flex; align-items: center; gap: 5px; padding: 10px 15px; margin: 0 5px; background: #fff; border: 1px solid #e1e5e9; border-radius: 6px; color: #333; text-decoration: none; transition: all 0.3s ease; }
.dcm-pmp-pagination-compact .page-numbers:hover, .dcm-pmp-pagination-compact .current { background: #007cba; color: #fff; border-color: #007cba; }
@media (max-width: 768px) {
  .dcm-pmp-jobs-header { flex-direction: column; text-align: center; gap: 20px; }
  .dcm-pmp-search-row { grid-template-columns: 1fr; gap: 15px; }
  .dcm-pmp-jobs-grid { grid-template-columns: 1fr; }
  .dcm-pmp-results-header { flex-direction: column; gap: 15px; text-align: center; }
}

/* ==========================================================================
   Unified Template System - Standard Components
   ========================================================================== */

/* Page Header - Standard Pattern */
.dcm-pmp-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--dcm-spacing-3xl);
    padding: var(--dcm-spacing-2xl);
    background: var(--dcm-gradient-primary);
    border-radius: var(--dcm-radius-xl);
    color: #fff;
    gap: var(--dcm-spacing-lg);
}

.dcm-pmp-page-title {
    flex: 1;
}

.dcm-pmp-page-title .dcm-pmp-subtitle {
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
}

.dcm-pmp-page-subtitle {
    color: #fff;
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    flex-wrap: wrap;
}

/* Ensure job company and location text are white when inside page subtitle */
.dcm-pmp-page-subtitle .dcm-pmp-job-company,
.dcm-pmp-page-subtitle .dcm-pmp-job-location {
    color: #fff !important;
    margin-bottom: 0;
}

/* Ensure job company and location icons are white when inside page subtitle */
.dcm-pmp-page-subtitle .dcm-pmp-job-company i,
.dcm-pmp-page-subtitle .dcm-pmp-job-location i {
    color: #fff !important;
}

/* Global inactive job styling */
.dcm-pmp-job-inactive {
    text-decoration: line-through;
    opacity: 0.6;
}

.dcm-pmp-job-inactive a {
    color: #999 !important;
    cursor: not-allowed;
    pointer-events: none;
}

.dcm-pmp-page-actions {
    display: flex;
    gap: 15px;
    flex-shrink: 0;
}

/* Section Headers with Actions */
.dcm-pmp-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.dcm-pmp-section-actions {
    display: flex;
    align-items: center;
    gap: 15px;
}

.dcm-pmp-results-count {
    font-size: 14px;
    color: #000000;
    font-style: italic;
}

/* Stats Grid - Standard Pattern */
.dcm-pmp-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

/* Items Grid - Standard Pattern */
.dcm-pmp-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.dcm-pmp-item-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 25px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-item-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-item-card:hover::before {
    opacity: 1;
}

.dcm-pmp-item-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.dcm-pmp-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 15px;
}

.dcm-pmp-item-title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
}

.dcm-pmp-item-title a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

.dcm-pmp-item-title a:hover {
    color: #007cba;
}

.dcm-pmp-item-content {
    margin-bottom: 20px;
}

.dcm-pmp-item-description {
    color: #000000;
    line-height: 1.6;
    margin-bottom: 15px;
}

.dcm-pmp-item-meta {
    display: flex;
    gap: 20px;
    font-size: 13px;
    color: #000000;
}

.dcm-pmp-item-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.dcm-pmp-item-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Empty State - Enhanced Pattern (extends base empty state) */
.dcm-pmp-empty-state.dcm-pmp-empty-state-enhanced {
    padding: 60px 20px;
}

.dcm-pmp-empty-state.dcm-pmp-empty-state-enhanced i {
    font-size: 64px;
    opacity: 0.3;
    color: #007cba;
}

.dcm-pmp-empty-state.dcm-pmp-empty-state-enhanced h3 {
    font-size: 20px;
    color: #000000;
}

.dcm-pmp-empty-state.dcm-pmp-empty-state-enhanced p {
    margin: 0 0 20px 0;
    font-size: 16px;
    line-height: 1.5;
}

/* ==========================================================================
   Profile Completeness Progress Bar
   ========================================================================== */
.dcm-pmp-profile-progress {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 25px;
    margin-bottom: 30px;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.dcm-pmp-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.dcm-pmp-progress-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

.dcm-pmp-progress-title i {
    color: #007cba;
    font-size: 20px;
}

.dcm-pmp-progress-percentage {
    font-size: 24px;
    font-weight: 700;
    color: #007cba;
    background: rgba(0, 124, 186, 0.1);
    padding: 8px 16px;
    border-radius: 20px;
}

.dcm-pmp-progress-bar {
    width: 100%;
    height: 12px;
    background: #f0f0f0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 15px;
}

.dcm-pmp-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #007cba 0%, #00a0d2 100%);
    border-radius: 6px;
    transition: width 0.6s ease-in-out;
    position: relative;
}

.dcm-pmp-progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
    animation: progress-shine 2s infinite;
}

@keyframes progress-shine {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.dcm-pmp-progress-description {
    margin: 0;
    font-size: 14px;
    color: #000000;
    line-height: 1.5;
}

.dcm-pmp-field-empty {
    color: #000000 !important;
    font-style: italic;
}

/* Progress bar color variations based on completeness */
.dcm-pmp-progress-fill[style*="width: 0%"],
.dcm-pmp-progress-fill[style*="width: 1%"],
.dcm-pmp-progress-fill[style*="width: 2%"],
.dcm-pmp-progress-fill[style*="width: 3%"],
.dcm-pmp-progress-fill[style*="width: 4%"],
.dcm-pmp-progress-fill[style*="width: 5%"],
.dcm-pmp-progress-fill[style*="width: 6%"],
.dcm-pmp-progress-fill[style*="width: 7%"],
.dcm-pmp-progress-fill[style*="width: 8%"],
.dcm-pmp-progress-fill[style*="width: 9%"],
.dcm-pmp-progress-fill[style*="width: 10%"],
.dcm-pmp-progress-fill[style*="width: 11%"],
.dcm-pmp-progress-fill[style*="width: 12%"],
.dcm-pmp-progress-fill[style*="width: 13%"],
.dcm-pmp-progress-fill[style*="width: 14%"],
.dcm-pmp-progress-fill[style*="width: 15%"],
.dcm-pmp-progress-fill[style*="width: 16%"],
.dcm-pmp-progress-fill[style*="width: 17%"],
.dcm-pmp-progress-fill[style*="width: 18%"],
.dcm-pmp-progress-fill[style*="width: 19%"],
.dcm-pmp-progress-fill[style*="width: 20%"],
.dcm-pmp-progress-fill[style*="width: 21%"],
.dcm-pmp-progress-fill[style*="width: 22%"],
.dcm-pmp-progress-fill[style*="width: 23%"],
.dcm-pmp-progress-fill[style*="width: 24%"],
.dcm-pmp-progress-fill[style*="width: 25%"],
.dcm-pmp-progress-fill[style*="width: 26%"],
.dcm-pmp-progress-fill[style*="width: 27%"],
.dcm-pmp-progress-fill[style*="width: 28%"],
.dcm-pmp-progress-fill[style*="width: 29%"],
.dcm-pmp-progress-fill[style*="width: 30%"],
.dcm-pmp-progress-fill[style*="width: 31%"],
.dcm-pmp-progress-fill[style*="width: 32%"],
.dcm-pmp-progress-fill[style*="width: 33%"],
.dcm-pmp-progress-fill[style*="width: 34%"],
.dcm-pmp-progress-fill[style*="width: 35%"],
.dcm-pmp-progress-fill[style*="width: 36%"],
.dcm-pmp-progress-fill[style*="width: 37%"],
.dcm-pmp-progress-fill[style*="width: 38%"],
.dcm-pmp-progress-fill[style*="width: 39%"],
.dcm-pmp-progress-fill[style*="width: 40%"],
.dcm-pmp-progress-fill[style*="width: 41%"],
.dcm-pmp-progress-fill[style*="width: 42%"],
.dcm-pmp-progress-fill[style*="width: 43%"],
.dcm-pmp-progress-fill[style*="width: 44%"],
.dcm-pmp-progress-fill[style*="width: 45%"],
.dcm-pmp-progress-fill[style*="width: 46%"],
.dcm-pmp-progress-fill[style*="width: 47%"],
.dcm-pmp-progress-fill[style*="width: 48%"],
.dcm-pmp-progress-fill[style*="width: 49%"] {
    background: linear-gradient(90deg, #dc3545 0%, #e74c3c 100%);
}

.dcm-pmp-progress-fill[style*="width: 50%"],
.dcm-pmp-progress-fill[style*="width: 51%"],
.dcm-pmp-progress-fill[style*="width: 52%"],
.dcm-pmp-progress-fill[style*="width: 53%"],
.dcm-pmp-progress-fill[style*="width: 54%"],
.dcm-pmp-progress-fill[style*="width: 55%"],
.dcm-pmp-progress-fill[style*="width: 56%"],
.dcm-pmp-progress-fill[style*="width: 57%"],
.dcm-pmp-progress-fill[style*="width: 58%"],
.dcm-pmp-progress-fill[style*="width: 59%"],
.dcm-pmp-progress-fill[style*="width: 60%"],
.dcm-pmp-progress-fill[style*="width: 61%"],
.dcm-pmp-progress-fill[style*="width: 62%"],
.dcm-pmp-progress-fill[style*="width: 63%"],
.dcm-pmp-progress-fill[style*="width: 64%"],
.dcm-pmp-progress-fill[style*="width: 65%"],
.dcm-pmp-progress-fill[style*="width: 66%"],
.dcm-pmp-progress-fill[style*="width: 67%"],
.dcm-pmp-progress-fill[style*="width: 68%"],
.dcm-pmp-progress-fill[style*="width: 69%"],
.dcm-pmp-progress-fill[style*="width: 70%"],
.dcm-pmp-progress-fill[style*="width: 71%"],
.dcm-pmp-progress-fill[style*="width: 72%"],
.dcm-pmp-progress-fill[style*="width: 73%"],
.dcm-pmp-progress-fill[style*="width: 74%"],
.dcm-pmp-progress-fill[style*="width: 75%"],
.dcm-pmp-progress-fill[style*="width: 76%"],
.dcm-pmp-progress-fill[style*="width: 77%"],
.dcm-pmp-progress-fill[style*="width: 78%"],
.dcm-pmp-progress-fill[style*="width: 79%"] {
    background: linear-gradient(90deg, #ffc107 0%, #ffb300 100%);
}

.dcm-pmp-progress-fill[style*="width: 80%"],
.dcm-pmp-progress-fill[style*="width: 81%"],
.dcm-pmp-progress-fill[style*="width: 82%"],
.dcm-pmp-progress-fill[style*="width: 83%"],
.dcm-pmp-progress-fill[style*="width: 84%"],
.dcm-pmp-progress-fill[style*="width: 85%"],
.dcm-pmp-progress-fill[style*="width: 86%"],
.dcm-pmp-progress-fill[style*="width: 87%"],
.dcm-pmp-progress-fill[style*="width: 88%"],
.dcm-pmp-progress-fill[style*="width: 89%"],
.dcm-pmp-progress-fill[style*="width: 90%"],
.dcm-pmp-progress-fill[style*="width: 91%"],
.dcm-pmp-progress-fill[style*="width: 92%"],
.dcm-pmp-progress-fill[style*="width: 93%"],
.dcm-pmp-progress-fill[style*="width: 94%"],
.dcm-pmp-progress-fill[style*="width: 95%"],
.dcm-pmp-progress-fill[style*="width: 96%"],
.dcm-pmp-progress-fill[style*="width: 97%"],
.dcm-pmp-progress-fill[style*="width: 98%"],
.dcm-pmp-progress-fill[style*="width: 99%"],
.dcm-pmp-progress-fill[style*="width: 100%"] {
    background: linear-gradient(90deg, #28a745 0%, #20c997 100%);
}

/* ==========================================================================
   Frontend Templates - Manage CV/Resumes
   ========================================================================== */
.dcm-pmp-cv-stats { display: flex; gap: 30px; align-items: center; justify-content: center; }
.dcm-pmp-cv-stat { text-align: center; }
.dcm-pmp-cv-stat-number { display: block; font-size: 32px; font-weight: 700; color: #fff; }
.dcm-pmp-cv-stat-label { font-size: 14px; color: rgba(255, 255, 255, 0.8); }
.dcm-pmp-cv-upload-form,
.dcm-pmp-profile-form { margin-top: 20px; }
.dcm-pmp-file-upload { border: 2px dashed #e1e5e9; border-radius: 8px; padding: 40px; text-align: center; transition: all 0.3s ease; background: #f8f9fa; }
.dcm-pmp-file-upload:hover, .dcm-pmp-file-upload-dragover { border-color: #007cba; background: rgba(0, 124, 186, 0.05); }
.dcm-pmp-file-input { display: none; }
.dcm-pmp-file-upload-info { color: #000000; }
.dcm-pmp-file-upload-info i { font-size: 48px; color: #007cba; margin-bottom: 15px; }
.dcm-pmp-file-upload-info p { margin: 10px 0; font-size: 16px; font-weight: 500; }
.dcm-pmp-file-upload-info span { }
.dcm-pmp-cv-list { margin-top: 20px; }
.dcm-pmp-cv-item { background: #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); padding: 25px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid rgba(0, 0, 0, 0.05); position: relative; overflow: hidden; }
.dcm-pmp-cv-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--dcm-gradient-horizontal); opacity: 0; transition: opacity 0.3s ease; }
.dcm-pmp-cv-item:hover::before { opacity: 1; }
.dcm-pmp-cv-info { display: flex; align-items: center; gap: 20px; flex: 1; }
.dcm-pmp-cv-icon { width: 60px; height: 60px; background: var(--dcm-gradient-primary); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 24px; flex-shrink: 0; }
.dcm-pmp-cv-details h3 { 
    margin: 0; 
    font-size: 18px; 
    font-weight: 600;
    color: #333;
}
.dcm-pmp-cv-details p { margin: 0; color: #000000; line-height: 1.5; font-size: 14px; }
.dcm-pmp-cv-meta { display: flex; gap: 20px; }
.dcm-pmp-cv-meta span { display: flex; align-items: center; gap: 5px; }
.dcm-pmp-cv-actions { display: flex; gap: 10px; flex-shrink: 0; }
@media (max-width: 768px) { 
    /* .dcm-pmp-cv-header deprecated - responsive handled by .dcm-pmp-page-header */
    .dcm-pmp-cv-title {
        text-align: center;
    }
    .dcm-pmp-cv-item { 
        flex-direction: column; 
        text-align: center; 
        gap: 20px; 
    } 
    .dcm-pmp-cv-actions { 
        flex-wrap: wrap; 
        justify-content: center; 
    }
    
    /* Unified Template Responsive Design */
    
    
    .dcm-pmp-page-actions {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .dcm-pmp-section-header {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
    
    .dcm-pmp-stats-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-items-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-item-actions {
        justify-content: center;
    }
    
    .dcm-pmp-quick-actions {
        grid-template-columns: 1fr;
    }
} 

/* ==========================================================================
   Action Buttons System - Fluent Design
   ========================================================================== */

/* Base action button styling */
.dcm-pmp-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 36px;
    border: 1px solid #e1e5e9;
    border-radius: 8px;
    background: #fff;
    color: #495057;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    font-size: 14px;
    position: relative;
    overflow: visible;
    padding: 0 10px;
    gap: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* Hover effect for all action buttons */
.dcm-pmp-action-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border-color: transparent;
}

/* Edit button styling */
.dcm-pmp-edit-btn {
    background: var(--dcm-gradient-primary);
    color: #fff;
    border-color: #007cba;
}

.dcm-pmp-edit-btn:hover {
    background: var(--dcm-gradient-primary-dark);
    color: #fff;
}

/* View button styling */
.dcm-pmp-view-btn {
    background: var(--dcm-gradient-success);
    color: #fff;
    border-color: #28a745;
}

.dcm-pmp-view-btn:hover {
    background: var(--dcm-gradient-success-hover);
    color: #fff;
}

/* Applications button styling */
.dcm-pmp-applications-btn {
    background: var(--dcm-gradient-warning);
    color: #212529;
    border-color: #ffc107;
}

.dcm-pmp-applications-btn:hover {
    background: var(--dcm-gradient-warning-hover);
    color: #212529;
}

/* Delete button styling - Enhanced visibility */
.dcm-pmp-delete-btn {
    background: var(--dcm-gradient-danger);
    color: #fff;
    border-color: #dc3545;
}

.dcm-pmp-delete-btn:hover {
    background: var(--dcm-gradient-danger-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(220, 53, 69, 0.4);
}

/* Action button container for tables */
.dcm-pmp-job-table-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* Action buttons in tables */
.dcm-pmp-job-table .dcm-pmp-action-btn {
    width: auto;
    height: 32px;
    font-size: 12px;
    padding: 0 10px;
    gap: 6px;
}

/* Arrange job table action buttons in a 2x2 grid */
.dcm-pmp-job-table .dcm-pmp-job-actions {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 8px;
    justify-content: start;
}

/* Mobile responsive action buttons */
@media (max-width: 768px) {
    .dcm-pmp-job-table-actions {
        gap: 6px;
        align-items: stretch;
    }
    
    .dcm-pmp-action-btn {
        width: 100%;
        height: 40px;
        border-radius: 6px;
    }
} 



/* Legacy dcm-btn support - Map to standard system */
.dcm-btn {
    /* Inherit from main button system */
    composes: dcm-pmp-btn;
}

/* Standard search button styling - Inherit from main button system */
.dcm-pmp-search-btn,
.search-button,
.dcm-search-btn {
    /* Inherit from main button system with primary styling */
    composes: dcm-pmp-btn dcm-pmp-btn-primary;
}

/* Filter and reset button standardization - Inherit from main button system */
.toggle-advanced,
.reset-filters,
.dcm-filter-btn {
    /* Inherit from main button system with light styling */
    composes: dcm-pmp-btn dcm-pmp-btn-light;
}

/* Share button standardization */
.dcm-pmp-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    color: #fff;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin: 0 4px;
    font-size: 16px;
}

.dcm-pmp-share-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.dcm-pmp-facebook { background: linear-gradient(135deg, #1877f2 0%, #166fe5 100%); }
.dcm-pmp-linkedin { background: linear-gradient(135deg, #0077b5 0%, #005582 100%); }
.dcm-pmp-whatsapp { background: linear-gradient(135deg, #25d366 0%, #1ebe57 100%); }
.dcm-pmp-email { background: var(--dcm-gradient-secondary); }

/* Social login button standardization */
.dcm-pmp-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    border-radius: 8px;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin: 8px 0;
    width: 100%;
    justify-content: center;
}

.dcm-pmp-social-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    color: #fff;
}

.dcm-pmp-social-btn.dcm-pmp-google { 
    background: linear-gradient(135deg, #db4437 0%, #c23321 100%); 
}

.dcm-pmp-social-btn.dcm-pmp-facebook { 
    background: linear-gradient(135deg, #1877f2 0%, #166fe5 100%); 
}

.dcm-pmp-social-btn.dcm-pmp-linkedin { 
    background: linear-gradient(135deg, #0077b5 0%, #005582 100%); 
}

/* ==========================================================================
   Registration Form Styles - Moved from inline to global CSS
   ========================================================================== */

/* High specificity selectors to ensure these styles take precedence */
.dcm-pmp-registration-form.dcm-pmp-registration-form {
    max-width: 750px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    text-align: center !important;
}

.dcm-pmp-registration-form .dcm-pmp-form {
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    padding: 30px !important;
    margin: 0 auto !important;
}

.dcm-pmp-registration-form .dcm-pmp-form-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
}

.dcm-pmp-registration-form .dcm-pmp-form-field {
    text-align: left !important;
}

.dcm-pmp-form-field label {
    display: block;
    font-weight: 600;
    color: #333;
}

/* Form Row Layout */
.dcm-pmp-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .dcm-pmp-form-row {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

/* Unified Form Field System */
.dcm-pmp-form-field input[type="text"],
.dcm-pmp-form-field input[type="email"],
.dcm-pmp-form-field input[type="password"],
.dcm-pmp-form-field input[type="tel"],
.dcm-pmp-form-field input[type="url"],
.dcm-pmp-form-field select,
.dcm-pmp-form-field textarea,
.dcm-pmp-input,
.dcm-pmp-select,
.dcm-pmp-textarea {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    transition: border-color 0.3s ease;
}

.dcm-pmp-form-field input:focus,
.dcm-pmp-form-field select:focus,
.dcm-pmp-form-field textarea:focus {
    outline: none;
    border-color: #0073aa;
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.2);
}

/* File Upload Styles */
.dcm-pmp-file-upload {
    border: 2px dashed #ddd;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    background: #f9f9f9;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
}

.dcm-pmp-file-upload:hover,
.dcm-pmp-file-upload.dcm-pmp-file-upload-dragover {
    border-color: #0073aa;
    background: #f0f8ff;
}

.dcm-pmp-file-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.dcm-pmp-file-upload-info {
    pointer-events: none;
}

.dcm-pmp-file-upload-info i {
    font-size: 24px;
    color: #0073aa;
    margin-bottom: 10px;
}

.dcm-pmp-file-upload-info p {
    margin: 0 0 5px 0;
    font-weight: 600;
    color: #333;
}

.dcm-pmp-file-upload-info span {
    font-size: 12px;
    color: #000000;
}

.dcm-pmp-field-description {
    font-size: 12px;
    color: #000000;
    font-style: italic;
}

/* CV List Styles */
.dcm-pmp-cv-list {
    margin: 20px 0;
}

.dcm-pmp-cv-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    margin-bottom: 12px;
    transition: all 0.3s ease;
}

.dcm-pmp-cv-item:hover {
    background: #e9ecef;
    border-color: #007cba;
}

.dcm-pmp-cv-info {
    display: flex;
    align-items: center;
    flex: 1;
}

.dcm-pmp-cv-icon {
    width: 40px;
    height: 40px;
    background: var(--dcm-gradient-primary);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 16px;
    color: #fff;
    font-size: 18px;
}


.dcm-pmp-cv-date {
    color: #000000;
    font-size: 12px;
}

.dcm-pmp-cv-actions {
    display: flex;
    gap: 8px;
}

/* No CV Message Styles */
.dcm-pmp-no-cv-message {
    text-align: center;
    padding: 40px 20px;
    background: #f8f9fa;
    border: 2px dashed #dee2e6;
    border-radius: 12px;
    margin: 20px 0;
}

.dcm-pmp-no-cv-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    color: #fff;
    font-size: 24px;
}

.dcm-pmp-no-cv-message h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

.dcm-pmp-no-cv-message p {
    margin: 0 0 20px 0;
    color: #000000;
    line-height: 1.5;
}

.dcm-pmp-cv-workflow-steps {
    text-align: left;
    max-width: auto;
    margin: 0 auto 20px;
}

.dcm-pmp-cv-workflow-steps p {
    margin: 0 0 12px 0;
    font-weight: 600;
    color: #333;
}

.dcm-pmp-cv-workflow-steps ol {
    margin: 0;
    padding-left: 20px;
}

.dcm-pmp-cv-workflow-steps li {
    margin: 8px 0;
    color: #000000;
    line-height: 1.4;
}

.dcm-pmp-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.dcm-pmp-checkbox-label input[type="checkbox"],
.dcm-pmp-checkbox {
    margin: 0;
    margin-top: 2px;
}

.dcm-pmp-checkbox-text {
    font-size: 14px;
    line-height: 1.4;
    color: #000000;
}

.dcm-pmp-checkbox-text a {
    color: #0073aa;
    text-decoration: none;
}

.dcm-pmp-checkbox-text a:hover {
    text-decoration: underline;
}

.dcm-pmp-required-text {
    color: #dc3545;
    font-weight: 500;
    margin-left: 4px;
}

.dcm-pmp-registration-form .dcm-pmp-form-submit,
.dcm-pmp-registration-form .dcm-pmp-form-actions {
    margin-top: 30px !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
}

.dcm-pmp-registration-form .dcm-pmp-form-footer {
    margin-top: 20px !important;
    text-align: center !important;
    padding-top: 20px !important;
    border-top: 1px solid #eee !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.dcm-pmp-form-footer p {
    margin: 0;
    color: #000000;
}

.dcm-pmp-form-footer a {
    color: #0073aa;
    text-decoration: none;
}

.dcm-pmp-form-footer a:hover {
    text-decoration: underline;
}

.dcm-pmp-error {
    background: #f8d7da;
    color: #e74c3c;
    padding: 20px;
    border-radius: 4px;
    margin-bottom: 20px;
    border: 1px solid #f5c6cb;
}

.dcm-pmp-success {
    background: #d4edda;
    color: #155724;
    padding: 12px;
    border-radius: 4px;
    margin-bottom: 20px;
    border: 1px solid #c3e6cb;
}

@media (max-width: 768px) {
    .dcm-pmp-registration-form .dcm-pmp-form-row {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    
    .dcm-pmp-registration-form.dcm-pmp-registration-form {
        max-width: 750px !important;
        padding: 10px !important;
    }
    
    .dcm-pmp-registration-form .dcm-pmp-form {
        padding: 20px !important;
    }
}

/* ==========================================================================
   Global Authentication Error Styles
   ========================================================================== */

.dcm-pmp-auth-error {
    background: #fff;
    border: 1px solid #f5c6cb;
    border-left: 4px solid #dc3545;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(220, 53, 69, 0.15);
    padding: 40px;
    margin: 0 auto;
    max-width: 600px;
    width: 100%;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.dcm-pmp-auth-error::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #dc3545, #c82333);
}

.dcm-pmp-auth-error-icon {
    margin-bottom: 20px;
}

.dcm-pmp-auth-error-icon i {
    font-size: 48px;
    color: #dc3545;
    background: rgba(220, 53, 69, 0.1);
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.dcm-pmp-auth-error-title {
    font-size: 24px;
    font-weight: 600;
    color: #721c24;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.dcm-pmp-auth-error-subtitle {
    font-size: 16px;
    color: #000000;
    margin: 0 0 25px 0;
    line-height: 1.5;
}

.dcm-pmp-auth-error-countdown {
    font-weight: 700;
    color: #dc3545;
    font-size: 18px;
}

.dcm-pmp-auth-error-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.dcm-pmp-auth-error-actions .dcm-pmp-btn {
    min-width: 140px;
    justify-content: center;
    gap: 8px;
}

.dcm-pmp-auth-error-actions .dcm-pmp-btn-outline {
    background: transparent;
    color: #0073aa;
    border: 2px solid #0073aa;
}

.dcm-pmp-auth-error-actions .dcm-pmp-btn-outline:hover {
    background: #0073aa;
    color: #fff;
}

/* Responsive design for authentication errors */
@media (max-width: 768px) {
    .dcm-pmp-auth-error {
        margin: 20px;
        padding: 25px 20px;
    }
    
    .dcm-pmp-auth-error-title {
        font-size: 20px;
    }
    
    .dcm-pmp-auth-error-actions {
        flex-direction: column;
        align-items: center;
    }
    
    .dcm-pmp-auth-error-actions .dcm-pmp-btn {
        width: 100%;
        max-width: 280px;
    }
}

/* ==========================================================================
   Single Job Listing Page Styles
   ========================================================================== */

.dcm-pmp-single-job-listing {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.dcm-pmp-job-header {
    background: var(--dcm-gradient-primary);
    color: #fff;
    border-radius: var(--dcm-radius-xl);
    padding: var(--dcm-spacing-3xl);
    margin-bottom: var(--dcm-spacing-2xl);
    box-shadow: 0 8px 32px rgba(0, 124, 186, 0.15);
}

.dcm-pmp-job-header-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 30px;
}

.dcm-pmp-job-title-section {
    flex: 1;
}

.dcm-pmp-job-actions {
    display: flex;
    gap: 15px;
    align-items: flex-end;
}

.dcm-pmp-job-expired {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    background: rgba(220, 53, 69, 0.2);
    border: 1px solid rgba(220, 53, 69, 0.3);
    border-radius: 8px;
    color: #fff;
    font-weight: 600;
}

.dcm-pmp-job-content {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.dcm-pmp-job-main {
    background: #fff;
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.dcm-pmp-job-description h2,
.dcm-pmp-job-summary h3 {
    color: #2c3e50;
    margin: 0 0 20px 0;
    font-size: 24px;
    font-weight: 600;
}

.dcm-pmp-job-content-text {
    line-height: 1.7;
    color: #34495e;
    font-size: 16px;
}

.dcm-pmp-job-summary {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #e9ecef;
}

.dcm-pmp-job-summary p {
    color: #6c757d;
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
}

.dcm-pmp-job-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dcm-pmp-job-details-card,
.dcm-pmp-job-contact-card {
    background: #fff;
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.dcm-pmp-job-details-card h3,
.dcm-pmp-job-contact-card h3 {
    color: #2c3e50;
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 600;
    padding-bottom: 15px;
    border-bottom: 2px solid #e9ecef;
}

.dcm-pmp-job-detail-item,
.dcm-pmp-job-contact-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #f8f9fa;
}

.dcm-pmp-job-detail-item:last-child,
.dcm-pmp-job-contact-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.dcm-pmp-job-detail-label,
.dcm-pmp-job-contact-label {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #6c757d;
    font-weight: 500;
    font-size: 14px;
}

.dcm-pmp-job-detail-label i,
.dcm-pmp-job-contact-label i {
    color: #007cba;
    font-size: 16px;
    width: 20px;
    text-align: center;
}

.dcm-pmp-job-detail-value,
.dcm-pmp-job-contact-value {
    color: #2c3e50;
    font-weight: 600;
    font-size: 14px;
    text-align: right;
}

.dcm-pmp-job-detail-value.dcm-pmp-expired {
    color: #dc3545;
}

.dcm-pmp-category-tag {
    display: inline-block;
    background: var(--dcm-gradient-primary);
    color: #fff;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    margin: 2px;
}

.dcm-pmp-job-contact-value a {
    color: #007cba;
    text-decoration: none;
    transition: color 0.3s ease;
}

.dcm-pmp-job-contact-value a:hover {
    color: #005a87;
    text-decoration: underline;
}





.dcm-pmp-loading,
.dcm-pmp-success,
.dcm-pmp-error {
    text-align: center;
    padding: 20px;
    font-weight: 600;
}

.dcm-pmp-loading i {
    font-size: 32px;
    color: #007cba;
    margin-bottom: 15px;
}

.dcm-pmp-success {
    color: #28a745;
}



/* Responsive Design */
@media (max-width: 1024px) {
    .dcm-pmp-job-content {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-job-sidebar {
        order: -1;
    }
}

@media (max-width: 768px) {
    .dcm-pmp-single-job-listing {
        padding: 15px;
    }
    
    .dcm-pmp-job-header {
        padding: 25px 20px;
    }
    
    .dcm-pmp-job-header-content {
        flex-direction: column;
        gap: 20px;
    }
    
    .dcm-pmp-job-title {
        font-size: 16px;
    }
    
    .dcm-pmp-job-actions {
        align-items: stretch;
    }
    
    .dcm-pmp-job-main {
        padding: 20px;
    }
    
    .dcm-pmp-job-details-card,
    .dcm-pmp-job-contact-card {
        padding: 20px;
    }
    
    .dcm-pmp-modal-content {
        margin: 10px;
        max-height: 95vh;
    }
    
    .dcm-pmp-modal-header,
    .dcm-pmp-modal-body {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .dcm-pmp-job-title {
        font-size: 16px;
    }
    

    
    .dcm-pmp-job-detail-item,
    .dcm-pmp-job-contact-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    
    .dcm-pmp-job-detail-value,
    .dcm-pmp-job-contact-value {
        text-align: left;
    }
}

/* Job Card Header Styling */
.dcm-pmp-job-header {
    background: var(--dcm-gradient-primary);
    color: #fff;
    border-radius: 12px 12px 0 0;
    padding: 20px;
    margin: -1px -1px 0 -1px;
    position: relative;
}

.dcm-pmp-job-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--dcm-gradient-primary);
    border-radius: 12px 12px 0 0;
    z-index: -1;
}

.dcm-pmp-job-card-body {
    padding: 20px;
}

.dcm-pmp-job-card-footer {
    padding: 15px 20px;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
}

/* Job Meta Styling */
.dcm-pmp-job-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 15px;
    padding-bottom: 0px;
    border-bottom: 1px solid #e9ecef;
}

.dcm-pmp-job-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #000000;
}

.dcm-pmp-job-meta i {
    color: #007cba;
    font-size: 14px;
}

/* Job Categories Styling */
.dcm-pmp-job-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 15px;
}

.dcm-pmp-category-tag {
    background: #e3f2fd;
    color: #1976d2;
    padding: 4px 10px;
    border-radius: 15px;
    font-size: 11px;
    font-weight: 500;
}

/* Job Excerpt Styling */
.dcm-pmp-job-excerpt {
    color: #555;
    line-height: 1.5;
    margin-bottom: 0px;
    font-size: 14px;
}

/* Job Actions Styling */

.dcm-pmp-job-actions .dcm-pmp-btn {
    padding: 8px 16px;
    font-size: 13px;
    border-radius: 6px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: all 0.2s ease;
}

/* ==========================================================================
   ANALYTICS DASHBOARD DESIGN SYSTEM
   ========================================================================== */

/* Page Header */
/* (moved) .dcm-pmp-page-header basic styles consolidated near line ~530 */



/* Section Styling */
.dcm-pmp-section {
    margin-bottom: 30px;
}

.dcm-pmp-section-title {
    margin: 0 0 20px 0;
    color: #333;
    font-size: 18px;
    font-weight: 600;
    padding-bottom: 10px;
    border-bottom: 2px solid #f0f0f0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dcm-pmp-section-title i {
    color: #0073aa;
}

/* Actions Grid */
.dcm-pmp-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.dcm-pmp-action-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-action-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}


.dcm-pmp-action-content {
    flex: 1;
}

.dcm-pmp-action-content h4 {
    margin: 0 0 10px 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
}

.dcm-pmp-action-content p {
    margin: 0 0 15px 0;
    color: #000000;
    font-size: 14px;
    line-height: 1.4;
}

/* Info Grid */
.dcm-pmp-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 20px;
}

.dcm-pmp-info-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-info-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.dcm-pmp-info-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}

.dcm-pmp-info-primary .dcm-pmp-info-icon {
    background: #17a2b8;
}

.dcm-pmp-info-success .dcm-pmp-info-icon {
    background: #28a745;
}

.dcm-pmp-info-content {
    flex: 1;
}

.dcm-pmp-info-content h4 {
    margin: 0 0 10px 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
}

.dcm-pmp-info-content p {
    margin: 0 0 15px 0;
    color: #000000;
    font-size: 14px;
    line-height: 1.4;
}

.dcm-pmp-shortcode {
    background: #f8f9fa;
    padding: 12px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 14px;
    color: #333;
    margin-bottom: 15px;
    border: 1px solid #e9ecef;
}

.dcm-pmp-status-warning {
    color: #856404;
    background: #fff3cd;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid #ffeaa7;
    margin-bottom: 10px;
}

/* Activity Grid */
.dcm-pmp-activity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 20px;
}

.dcm-pmp-activity-column {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
}

.dcm-pmp-activity-title {
    margin: 0 0 20px 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dcm-pmp-activity-title i {
    color: #0073aa;
}

.dcm-pmp-activity-list {
    max-height: 400px;
    overflow-y: auto;
}


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

.dcm-pmp-activity-icon {
    width: 32px;
    height: 32px;
    background: #f0f8ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0073aa;
    font-size: 14px;
    flex-shrink: 0;
}

.dcm-pmp-activity-content {
    flex: 1;
}

.dcm-pmp-activity-title {
    font-weight: 600;
    color: #333;
    margin-bottom: 2px;
}

.dcm-pmp-activity-title a {
    color: #0073aa;
    text-decoration: none;
}

.dcm-pmp-activity-title a:hover {
    text-decoration: underline;
}

.dcm-pmp-activity-meta {
    font-size: 13px;
    color: #000000;
    margin-bottom: 2px;
}

.dcm-pmp-activity-time {
    font-size: 12px;
    color: #000000;
}

/* Status Grid */
.dcm-pmp-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.dcm-pmp-status-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-status-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.dcm-pmp-status-icon {
    width: 40px;
    height: 40px;
    background: #0073aa;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}

.dcm-pmp-status-content {
    flex: 1;
}

.dcm-pmp-status-content h4 {
    margin: 0 0 10px 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
}

.dcm-pmp-status-ok {
    color: #28a745;
    background: #d4edda;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid #c3e6cb;
    margin-bottom: 10px;
}

.dcm-pmp-status-error {
    color: #721c24;
    background: #f8d7da;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid #f5c6cb;
    margin-bottom: 10px;
}

.dcm-pmp-status-version {
    margin-top: 12px;
    font-size: 12px;
    color: #000000;
}

/* Users Grid */
.dcm-pmp-users-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.dcm-pmp-user-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-user-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.dcm-pmp-user-avatar {
    width: 50px;
    height: 50px;
    background: #0073aa;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    font-size: 18px;
    flex-shrink: 0;
}

.dcm-pmp-user-content {
    flex: 1;
}

.dcm-pmp-user-name {
    font-weight: 600;
    margin-bottom: 5px;
}

.dcm-pmp-user-name a {
    color: #0073aa;
    text-decoration: none;
}

.dcm-pmp-user-name a:hover {
    text-decoration: underline;
}

.dcm-pmp-user-email {
    font-size: 14px;
    color: #000000;
    margin-bottom: 8px;
}

.dcm-pmp-user-meta {
    display: flex;
    gap: 15px;
    margin-bottom: 8px;
}

.dcm-pmp-user-status {
    font-size: 12px;
    padding: 4px 8px;
    border-radius: 12px;
    font-weight: 600;
}

.status-active {
    background: #d4edda;
    color: #155724;
}

.status-inactive {
    background: #f8d7da;
    color: #721c24;
}

.dcm-pmp-user-role {
    font-size: 12px;
    color: #000000;
    display: flex;
    align-items: center;
    gap: 5px;
}

.dcm-pmp-user-joined {
    font-size: 12px;
    color: #000000;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Tools Grid */
.dcm-pmp-tools-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

.dcm-pmp-tool-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    color: inherit;
}

.dcm-pmp-tool-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    text-decoration: none;
    color: inherit;
}

.dcm-pmp-tool-icon {
    width: 40px;
    height: 40px;
    background: #0073aa;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}

.dcm-pmp-tool-content {
    flex: 1;
}

.dcm-pmp-tool-content h4 {
    margin: 0 0 8px 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
}

.dcm-pmp-tool-content p {
    margin: 0;
    color: #000000;
    font-size: 14px;
    line-height: 1.4;
}

/* Role Links */
.dcm-pmp-role-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dcm-pmp-role-links .dcm-pmp-btn {
    justify-content: flex-start;
    text-decoration: none;
}

/* Quick Actions */
.dcm-pmp-quick-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dcm-pmp-quick-actions .dcm-pmp-btn {
    justify-content: flex-start;
    text-decoration: none;
}

/* Section Actions */
.dcm-pmp-section-actions {
    text-align: center;
    margin-top: 20px;
}

/* Empty State */
.dcm-pmp-empty-state {
    text-align: center;
    padding: 40px;
    color: #000000;
}

.dcm-pmp-empty-state > i {
    font-size: 48px;
    margin-bottom: 16px;
    color: #000000;
}

/* Ensure button icons inside empty states inherit normal button styles */
.dcm-pmp-empty-state .dcm-pmp-btn i {
    font-size: inherit;
    margin: 0;
    color: inherit;
}

/* Form Styling */

/* ==========================================================================
   Authentication Tabs System
   ========================================================================== */

/* Tab Navigation */
.dcm-pmp-auth-tabs {
    display: flex;
    border-bottom: 2px solid #e9ecef;
    margin-bottom: 30px;
    background: #f8f9fa;
    border-radius: var(--dcm-radius-md) var(--dcm-radius-md) 0 0;
    overflow: hidden;
}

.dcm-pmp-auth-tab {
    flex: 1;
    padding: 16px 24px;
    text-decoration: none;
    color: #6c757d;
    background: transparent;
    border: none;
    text-align: center;
    font-weight: 500;
    font-size: 16px;
    transition: var(--dcm-transition-base);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.dcm-pmp-auth-tab:hover {
    color: var(--dcm-primary-color);
    background: rgba(0, 124, 186, 0.05);
    text-decoration: none;
}

.dcm-pmp-auth-tab.active {
    color: var(--dcm-primary-color);
    background: #fff;
    border-bottom: 3px solid var(--dcm-primary-color);
}

.dcm-pmp-auth-tab.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--dcm-primary-color);
}

.dcm-pmp-auth-tab i {
    font-size: 18px;
}

/* Form Container Tabs */
.dcm-pmp-auth-form-container {
    display: none;
    opacity: 0;
    transform: translateY(10px);
    transition: var(--dcm-transition-base);
}

.dcm-pmp-auth-form-container.active {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* Tab Content Animation */
.dcm-pmp-auth-form-container {
    animation: fadeInUp 0.3s ease-out;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive Tab Design */
@media (max-width: 768px) {
    .dcm-pmp-auth-tabs {
        flex-direction: column;
        border-bottom: none;
        border-right: 2px solid #e9ecef;
        border-radius: var(--dcm-radius-md) 0 0 var(--dcm-radius-md);
        margin-bottom: 0;
        margin-right: 20px;
    }
    
    .dcm-pmp-auth-tab {
        padding: 12px 16px;
        font-size: 14px;
        border-bottom: 1px solid #e9ecef;
        border-radius: 0;
    }
    
    .dcm-pmp-auth-tab.active {
        border-bottom: 1px solid #e9ecef;
        border-right: 3px solid var(--dcm-primary-color);
    }
    
    .dcm-pmp-auth-tab.active::after {
        display: none;
    }
    
    .dcm-pmp-auth-card {
        display: flex;
        flex-direction: row;
    }
    
    .dcm-pmp-auth-form-container {
        flex: 1;
    }
}

@media (max-width: 480px) {
    .dcm-pmp-auth-tabs {
        margin-right: 15px;
    }
    
    .dcm-pmp-auth-tab {
        padding: 10px 12px;
        font-size: 13px;
    }
    
    .dcm-pmp-auth-tab i {
        font-size: 16px;
    }
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 768px) {
    .dcm-pmp-actions-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-info-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-activity-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-status-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-users-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-tools-grid {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-action-card,
    .dcm-pmp-info-card,
    .dcm-pmp-status-card,
    .dcm-pmp-user-card,
    .dcm-pmp-tool-card {
        flex-direction: column;
        text-align: center;
    }
    
    .dcm-pmp-info-icon,
    .dcm-pmp-status-icon,
    .dcm-pmp-user-avatar,
    .dcm-pmp-tool-icon {
        margin: 0 auto;
    }
}

/* ==========================================================================
   Logout Menu Item Styles
   ========================================================================== */

/* Logout menu item base styles */
.dcm-pmp-logout-item {
    position: relative;
}

.dcm-pmp-logout-item .dcm-pmp-logout-link {
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-sm);
    padding: var(--dcm-spacing-sm) var(--dcm-spacing-md);
    color: #dc3545;
    text-decoration: none;
    border-radius: var(--dcm-radius-sm);
    transition: var(--dcm-transition-base);
    font-weight: 500;
}

.dcm-pmp-logout-item .dcm-pmp-logout-link:hover {
    background: rgba(220, 53, 69, 0.1);
    color: #c82333;
    text-decoration: none;
}

.dcm-pmp-logout-item .dcm-pmp-logout-link:active {
    transform: translateY(1px);
}

/* Logout item in navigation menus */
.dcm-pmp-menu-list .dcm-pmp-logout-item .dcm-pmp-logout-link {
    border: 1px solid rgba(220, 53, 69, 0.2);
    background: rgba(220, 53, 69, 0.05);
}

.dcm-pmp-menu-list .dcm-pmp-logout-item .dcm-pmp-logout-link:hover {
    border-color: rgba(220, 53, 69, 0.4);
    background: rgba(220, 53, 69, 0.1);
}

/* Logout item in user menus */
.dcm-pmp-frontend-user-menu .dcm-pmp-logout-item .dcm-pmp-logout-link {
    background: var(--dcm-gradient-danger);
    color: white;
    border: none;
}

.dcm-pmp-frontend-user-menu .dcm-pmp-logout-item .dcm-pmp-logout-link:hover {
    background: var(--dcm-gradient-danger-hover);
    color: white;
}

/* Logout item in dropdown menus */
.dcm-pmp-dropdown-menu .dcm-pmp-logout-item .dcm-pmp-logout-link {
    border-radius: 0;
    border-left: 3px solid #dc3545;
}

/* Logout item with icon */
.dcm-pmp-logout-item .dcm-pmp-logout-link i {
    font-size: 14px;
    width: 16px;
    text-align: center;
}

/* Responsive logout item */
@media (max-width: 768px) {
    .dcm-pmp-logout-item .dcm-pmp-logout-link {
        padding: var(--dcm-spacing-md);
        justify-content: center;
    }
    
    .dcm-pmp-logout-item .dcm-pmp-logout-link i {
        margin-right: var(--dcm-spacing-sm);
    }
}

/* Logout item animations */
.dcm-pmp-logout-item .dcm-pmp-logout-link {
    position: relative;
    overflow: hidden;
}

.dcm-pmp-logout-item .dcm-pmp-logout-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.dcm-pmp-logout-item .dcm-pmp-logout-link:hover::before {
    left: 100%;
}

/* ==========================================================================
   Authentication Menu Items Styles
   ========================================================================== */

/* Authentication menu container */
.dcm-pmp-auth-menu {
    display: inline-block;
}

.dcm-pmp-auth-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-sm);
}

/* Individual authentication menu items */
.dcm-pmp-auth-item {
    position: relative;
}

.dcm-pmp-auth-item .dcm-pmp-auth-link {
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-xs);
    padding: var(--dcm-spacing-sm) var(--dcm-spacing-md);
    color: var(--dcm-text-color, #333);
    text-decoration: none;
    border-radius: var(--dcm-radius-sm);
    transition: var(--dcm-transition-base);
    font-weight: 500;
    font-size: 14px;
    white-space: nowrap;
}

.dcm-pmp-auth-item .dcm-pmp-auth-link:hover {
    text-decoration: none;
    transform: translateY(-1px);
}

/* Login item styling */
.dcm-pmp-auth-login .dcm-pmp-auth-link {
    background: var(--dcm-gradient-primary);
    color: white;
    border: 1px solid rgba(0, 124, 186, 0.2);
}

.dcm-pmp-auth-login .dcm-pmp-auth-link:hover {
    background: var(--dcm-gradient-primary-hover);
    box-shadow: var(--dcm-shadow-md);
}

/* Register item styling */
.dcm-pmp-auth-register .dcm-pmp-auth-link {
    background: var(--dcm-gradient-secondary);
    color: white;
    border: 1px solid rgba(40, 167, 69, 0.2);
}

.dcm-pmp-auth-register .dcm-pmp-auth-link:hover {
    background: var(--dcm-gradient-secondary-hover);
    box-shadow: var(--dcm-shadow-md);
}

/* Lost password item styling */
.dcm-pmp-auth-forgot_password .dcm-pmp-auth-link {
    background: var(--dcm-gradient-info);
    color: white;
    border: 1px solid rgba(23, 162, 184, 0.2);
}

.dcm-pmp-auth-forgot_password .dcm-pmp-auth-link:hover {
    background: var(--dcm-gradient-info-hover);
    box-shadow: var(--dcm-shadow-md);
}

/* Logout item styling (overrides previous logout styles) */
.dcm-pmp-auth-logout .dcm-pmp-auth-link {
    background: var(--dcm-gradient-danger);
    color: white;
    border: 1px solid rgba(220, 53, 69, 0.2);
}

.dcm-pmp-auth-logout .dcm-pmp-auth-link:hover {
    background: var(--dcm-gradient-danger-hover);
    box-shadow: var(--dcm-shadow-md);
}

/* Account Management - Danger Zone */
.dcm-pmp-account-actions {
    margin-top: var(--dcm-spacing-md);
}

.dcm-pmp-danger-zone {
    background: #fff;
    border: 2px solid #dc3545;
    border-radius: var(--dcm-border-radius-lg);
    padding: var(--dcm-spacing-lg);
    margin-top: var(--dcm-spacing-md);
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-danger-title {
    color: #dc3545;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 var(--dcm-spacing-sm) 0;
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-xs);
}

.dcm-pmp-danger-title i {
    font-size: 1.2rem;
}

.dcm-pmp-danger-description {
    color: #6c757d;
    margin: 0 0 var(--dcm-spacing-md) 0;
    line-height: 1.5;
}

.dcm-pmp-danger-zone .dcm-pmp-btn-danger {
    margin-top: var(--dcm-spacing-sm);
}

/* Authentication item icons */
.dcm-pmp-auth-item .dcm-pmp-auth-link i {
    font-size: 14px;
    width: 16px;
    text-align: center;
}

/* Responsive authentication menu */
@media (max-width: 768px) {
    .dcm-pmp-auth-menu-list {
        flex-direction: column;
        gap: var(--dcm-spacing-xs);
        width: 100%;
    }
    
    .dcm-pmp-auth-item .dcm-pmp-auth-link {
        width: 100%;
        justify-content: center;
        padding: var(--dcm-spacing-md);
    }
}

/* Authentication menu in navigation bars */
.dcm-pmp-frontend-nav .dcm-pmp-auth-menu {
    margin-left: auto;
}

.dcm-pmp-frontend-nav .dcm-pmp-auth-menu-list {
    gap: var(--dcm-spacing-xs);
}

/* Authentication menu in sidebars */
.dcm-pmp-sidebar .dcm-pmp-auth-menu-list {
    flex-direction: column;
    gap: var(--dcm-spacing-sm);
}

.dcm-pmp-sidebar .dcm-pmp-auth-item .dcm-pmp-auth-link {
    width: 100%;
    justify-content: flex-start;
}

/* Authentication menu in dropdowns */
.dcm-pmp-dropdown-menu .dcm-pmp-auth-menu-list {
    flex-direction: column;
    gap: 0;
}

.dcm-pmp-dropdown-menu .dcm-pmp-auth-item .dcm-pmp-auth-link {
    border-radius: 0;
    border-left: 3px solid transparent;
}

.dcm-pmp-dropdown-menu .dcm-pmp-auth-login .dcm-pmp-auth-link {
    border-left-color: #007cba;
}

.dcm-pmp-dropdown-menu .dcm-pmp-auth-register .dcm-pmp-auth-link {
    border-left-color: #28a745;
}

.dcm-pmp-dropdown-menu .dcm-pmp-auth-forgot_password .dcm-pmp-auth-link {
    border-left-color: #17a2b8;
}

.dcm-pmp-dropdown-menu .dcm-pmp-auth-logout .dcm-pmp-auth-link {
    border-left-color: #dc3545;
}

/* Authentication menu animations */
.dcm-pmp-auth-item .dcm-pmp-auth-link {
    position: relative;
    overflow: hidden;
}

.dcm-pmp-auth-item .dcm-pmp-auth-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.dcm-pmp-auth-item .dcm-pmp-auth-link:hover::before {
    left: 100%;
}

/* Authentication menu states */
.dcm-pmp-auth-item.current-menu-item .dcm-pmp-auth-link {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.5);
}

/* Authentication menu focus states */
.dcm-pmp-auth-item .dcm-pmp-auth-link:focus {
    outline: 2px solid rgba(0, 124, 186, 0.5);
    outline-offset: 2px;
}

/* ========================================================================== Custom Menu Items Styles ========================================================================== */

/* Custom Menu Items in WordPress Admin */
.dcm-pmp-custom-menu-items {
    padding: 10px;
}

.dcm-pmp-custom-menu-items ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.dcm-pmp-custom-menu-items li {
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f9f9f9;
}

.dcm-pmp-custom-menu-items .menu-item-title {
    display: block;
    font-weight: 600;
    margin-bottom: 5px;
    cursor: pointer;
}

.dcm-pmp-custom-menu-items .menu-item-title input[type="checkbox"] {
    margin-right: 8px;
}

.dcm-pmp-custom-menu-items .menu-item-description {
    display: block;
    font-size: 12px;
    color: #000000;
    font-style: italic;
    margin-top: 5px;
}

.dcm-pmp-custom-menu-items .button-controls {
    margin-top: 15px;
    text-align: right;
}

.dcm-pmp-custom-menu-items .submit-add-to-menu {
    margin-left: 10px;
}

/* Custom Menu Item Fields in Menu Editor */
.field-dcm-pmp-description,
.field-dcm-pmp-logout-redirect,
.field-dcm-pmp-logout-custom-url {
    margin-top: 10px;
}

.field-dcm-pmp-description textarea {
    width: 100%;
    min-height: 60px;
}

.field-dcm-pmp-logout-redirect select,
.field-dcm-pmp-logout-custom-url input {
    width: 100%;
}

/* Frontend Custom Menu Item Styling */
.dcm-pmp-custom-menu-item {
    position: relative;
}

.dcm-pmp-custom-menu-item.dcm-pmp-login-item {
    /* Login item specific styles */
}

.dcm-pmp-custom-menu-item.dcm-pmp-register-item {
    /* Register item specific styles */
}

.dcm-pmp-custom-menu-item.dcm-pmp-lost-password-item {
    /* Lost password item specific styles */
}

.dcm-pmp-custom-menu-item.dcm-pmp-logout-item {
    /* Logout item specific styles */
}

/* Responsive styles for custom menu items */
@media (max-width: 768px) {
    .dcm-pmp-custom-menu-items li {
        padding: 8px;
        margin-bottom: 10px;
    }
    
    .dcm-pmp-custom-menu-items .button-controls {
        text-align: center;
    }
    
    .dcm-pmp-custom-menu-items .submit-add-to-menu {
        margin-left: 0;
        margin-top: 10px;
        width: 100%;
    }
}

/* ========================================================================== Authentication Menu Items Styles ========================================================================== */

/* ==========================================================================
   Dashboard Styles - Moved from user-dashboard.php template
   ========================================================================== */

.dcm-pmp-dashboard-container {
    padding: 40px 0;
}



.dcm-pmp-dashboard-welcome h1 {
    color: #fff;
    margin-bottom: 10px;
}

.dcm-pmp-dashboard-welcome p {
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
}

.dcm-pmp-dashboard-actions {
    display: flex;
    gap: 15px;
}

.dcm-pmp-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 40px;
}

.dcm-pmp-stat-card {
    background: #fff;
    border-radius: var(--dcm-radius-lg);
    box-shadow: var(--dcm-shadow-sm);
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: var(--dcm-transition-base);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-stat-card:hover::before {
    opacity: 1;
}

.dcm-pmp-stat-icon {
    width: 60px;
    height: 60px;
    background: var(--dcm-gradient-primary);
    border-radius: var(--dcm-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 24px;
    flex-shrink: 0;
}

.dcm-pmp-stat-content h3 {
    margin: 0 0 8px 0;
    font-size: 14px;
    color: #000000;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dcm-pmp-stat-number {
    font-size: 32px;
    font-weight: 700;
    color: #007cba;
    margin-bottom: 5px;
}


.dcm-pmp-dashboard-content {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
}

.dcm-pmp-dashboard-section {
    background: #fff;
    border-radius: var(--dcm-radius-lg);
    box-shadow: var(--dcm-shadow-sm);
    padding: 25px;
    margin-bottom: 30px;
    transition: var(--dcm-transition-base);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-dashboard-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-dashboard-section:hover::before {
    opacity: 1;
}

.dcm-pmp-quick-actions {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px;
    margin-top: 20px;
    width: 100%;
}

@media (max-width: 768px) {
	.dcm-pmp-quick-actions {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.dcm-pmp-subtitle {
		font-size: 14px !important;
	}
}

/* ========================================================================== */
/* Final mobile overrides to ensure 2-column Quick Actions and smaller header */
/* These come last to win over earlier conflicting rules                      */
/* ========================================================================== */
@media (max-width: 1024px) {
	.dcm-pmp-quick-actions {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 768px) {
	.dcm-pmp-quick-actions {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.dcm-pmp-page-header .dcm-pmp-subtitle {
		font-size: 14px !important;
	}
}

@media (max-width: 480px) {
	.dcm-pmp-quick-actions,
	.dcm-pmp-quick-actions-2x2 {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
		grid-auto-rows: auto;
	}
}

.dcm-pmp-action-card {
    background: #fff;
    border-radius: 12px;
    padding: 25px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    display: flex !important;
    align-items: center;
    gap: 20px;
    width: 100%;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.dcm-pmp-action-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--dcm-gradient-horizontal);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-action-card:hover::before {
    opacity: 1;
}

.dcm-pmp-action-card:hover {
    background: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    color: #333;
}


.dcm-pmp-action-content h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.dcm-pmp-action-content p {
    margin: 0;
    font-size: 15px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.dcm-pmp-activity-list {
    margin-top: 20px;
}


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

.dcm-pmp-activity-icon {
    width: 40px;
    height: 40px;
    background: #f8f9fa;
    border-radius: var(--dcm-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #007cba;
    font-size: 16px;
    flex-shrink: 0;
}

.dcm-pmp-activity-content h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    font-weight: 600;
}

.dcm-pmp-activity-content p {
    margin: 0 0 5px 0;
    font-size: 13px;
    color: #000000;
}

.dcm-pmp-activity-time {
    font-size: 12px;
    color: #000000;
}

.dcm-pmp-empty-state {
    text-align: center;
    padding: 40px 20px;
    color: #000000;
}

.dcm-pmp-empty-state i {
    font-size: 48px;
    margin-bottom: 15px;
    opacity: 0.5;
}

.dcm-pmp-empty-state h3 {
    margin: 0 0 10px 0;
    font-size: 18px;
}

.dcm-pmp-empty-state p {
    margin: 0;
    font-size: 14px;
}

.dcm-pmp-quick-links {
    margin-top: 20px;
}

.dcm-pmp-quick-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    color: #333;
    text-decoration: none;
    border-bottom: 1px solid #f0f0f0;
    transition: color 0.3s ease;
}

.dcm-pmp-quick-link:last-child {
    border-bottom: none;
}

.dcm-pmp-quick-link:hover {
    color: #007cba;
}

.dcm-pmp-quick-link i {
    width: 20px;
    color: #007cba;
}

@media (max-width: 768px) {
    .dcm-pmp-dashboard-header {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    
    .dcm-pmp-dashboard-content {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-quick-actions {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   Job Listings - Dashboard
   ======================================== */

.dcm-pmp-job-dashboard {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}



.dcm-pmp-dashboard-header h1 {
    margin: 0 0 10px 0;
    color: #333;
    font-size: 32px;
}

.dcm-pmp-dashboard-header p {
    margin: 0;
    color: #000000;
    font-size: 16px;
}

.dcm-pmp-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.dcm-pmp-stat-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.dcm-pmp-stat-icon {
    font-size: 32px;
    color: #0073aa;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f8ff;
    border-radius: 50%;
}

.dcm-pmp-stat-content h3 {
    margin: 0 0 5px 0;
    font-size: 14px;
    color: #000000;
    font-weight: 600;
}

.dcm-pmp-stat-number {
    font-size: 24px;
    font-weight: bold;
    color: #333;
}

.dcm-pmp-quick-actions {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.dcm-pmp-job-listings-section {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
}

.dcm-pmp-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #eee;
}

.dcm-pmp-section-header h2 {
    margin: 0;
    color: #333;
    font-size: 20px;
}

.dcm-pmp-section-actions {
    display: flex;
    gap: 15px;
    align-items: center;
}

.dcm-pmp-section-actions select {
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    margin: 0px !important;
}

/* Job Modal Specific Styles */
#dcm-pmp-job-modal {
    z-index: 999999 !important;
}

#dcm-pmp-job-modal .dcm-pmp-modal-content {
    max-width: 800px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    z-index: 1000000;
}

#dcm-pmp-job-modal .dcm-pmp-modal-body {
    max-height: 70vh;
    overflow-y: auto;
}

#dcm-pmp-job-modal .dcm-pmp-job-form {
    margin: 0;
}

#dcm-pmp-job-modal .dcm-pmp-form-group {
    margin-bottom: 20px;
}

#dcm-pmp-job-modal .dcm-pmp-form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    color: #333;
}

#dcm-pmp-job-modal .dcm-pmp-form-group input,
#dcm-pmp-job-modal .dcm-pmp-form-group textarea,
#dcm-pmp-job-modal .dcm-pmp-form-group select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

#dcm-pmp-job-modal .dcm-pmp-form-group textarea {
    min-height: 120px;
    resize: vertical;
}

/* Job Application Form - Cover Letter Styling */
.dcm-pmp-cover-letter-textarea {
    width: 50% !important;
    min-height: 240px !important; /* Double the original 120px */
    resize: vertical;
}

#dcm-pmp-job-modal .dcm-pmp-form-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.dcm-pmp-job-table-container {
    overflow-x: auto;
}

.dcm-pmp-job-table {
    width: 100%;
    border-collapse: collapse;
}

.dcm-pmp-job-table th,
.dcm-pmp-job-table td {
    text-align: left;
    border-bottom: 1px solid #eee;
}

.dcm-pmp-job-table th {
    background: #f9f9f9;
    font-weight: 600;
    color: #333;
    font-size: 14px;
}

.dcm-pmp-job-title-cell {
    min-width: 250px;
}

/* Job Dashboard - make white */
.dcm-pmp-job-title-cell .dcm-pmp-job-title {
    font-weight: 600;
    margin-bottom: 5px;
}

.dcm-pmp-job-title-cell .dcm-pmp-job-title a {
    color: #000000;
    text-decoration: none;
}

.dcm-pmp-job-title-cell .dcm-pmp-job-title a:hover {
    color: #000000;
    text-decoration: underline !important;
}

.dcm-pmp-job-company,
.dcm-pmp-job-location {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #000000;
    font-size: 13px;
    margin-bottom: 10px;
}

.dcm-pmp-job-company i,
.dcm-pmp-job-location i {
    color: #007cba;
    font-size: 14px;
}

/* Job meta container for dashboard table */
.dcm-pmp-job-table .dcm-pmp-job-meta {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    gap: 15px;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
    flex-wrap: wrap;
}

.dcm-pmp-job-table .dcm-pmp-job-meta .dcm-pmp-job-company,
.dcm-pmp-job-table .dcm-pmp-job-meta .dcm-pmp-job-location {
    margin-bottom: 0;
}

/* No CV message styling */
.dcm-pmp-no-cv-message {
    text-align: center;
    padding: 30px 20px;
    background: #fff3cd;
    border: 2px solid #ffeaa7;
    border-radius: 8px;
    margin: 15px 0;
}

.dcm-pmp-no-cv-icon {
    font-size: 48px;
    color: #856404;
    margin-bottom: 15px;
}

.dcm-pmp-no-cv-message h4 {
    color: #856404;
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 15px 0;
}

.dcm-pmp-no-cv-message p {
    margin: 10px 0;
    color: #856404;
    font-size: 16px;
}

.dcm-pmp-cv-workflow-steps {
    background: #fff;
    border-radius: 6px;
    padding: 20px;
    margin: 20px 0;
    text-align: left;
    border: 1px solid #ffeaa7;
}

.dcm-pmp-cv-workflow-steps p {
    margin: 0 0 10px 0;
    color: #856404;
    font-size: 16px;
}

.dcm-pmp-cv-workflow-steps ol {
    margin: 10px 0;
    padding-left: 20px;
    color: #856404;
}

.dcm-pmp-cv-workflow-steps li {
    margin: 8px 0;
    line-height: 1.4;
}

.dcm-pmp-no-cv-message .dcm-pmp-btn {
    margin: 20px 0 15px 0;
}

.dcm-pmp-return-note {
    margin: 15px 0 0 0 !important;
    font-style: italic;
    color: #6c757d !important;
}

.dcm-pmp-status {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.dcm-pmp-status.status-publish {
    background: #d4edda;
    color: #155724;
}

.dcm-pmp-status.status-pending {
    background: #fff3cd;
    color: #856404;
}

.dcm-pmp-status.status-draft {
    background: #f8d7da;
    color: #721c24;
}

.dcm-pmp-job-applications-cell a {
    color: #0073aa;
    text-decoration: none;
    font-weight: 600;
}

.dcm-pmp-job-applications-cell a:hover {
    text-decoration: underline;
}

.dcm-pmp-no-jobs {
    text-align: center;
    padding: 60px 20px;
}

.dcm-pmp-no-jobs-icon {
    font-size: 48px;
    color: #000000;
    margin-bottom: 20px;
}

.dcm-pmp-no-jobs h3 {
    margin: 0 0 10px 0;
    color: #333;
}

.dcm-pmp-no-jobs p {
    margin: 0 0 20px 0;
    color: #000000;
}



.dcm-pmp-loading {
    color: #0073aa;
}

.dcm-pmp-error {
    color: #e74c3c;
}



.dcm-pmp-message-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.dcm-pmp-message-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

@media (max-width: 768px) {
    .dcm-pmp-dashboard-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .dcm-pmp-quick-actions {
        grid-template-columns: 1fr;
    }
    
    .dcm-pmp-section-header {
        flex-direction: column;
        gap: 15px;
        align-items: flex-start;
    }
    
    .dcm-pmp-job-table {
        font-size: 14px;
    }
    
    .dcm-pmp-job-table th,
    .dcm-pmp-job-table td {
        padding: 10px;
    }
    
    .dcm-pmp-job-actions {
        flex-direction: column;
        gap: 5px;
    }
    
    /* Keep job card action buttons side by side on mobile */
    .dcm-pmp-job-card-footer .dcm-pmp-job-actions {
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 8px;
        align-items: center;
    }
    
    .dcm-pmp-job-card-footer .dcm-pmp-job-actions .dcm-pmp-btn {
        flex: 1 1 50%;
        min-width: 0;
        margin: 0; /* neutralize desktop auto-margins */
    }
    
    /* Modal responsive styles */
    #dcm-pmp-job-modal .dcm-pmp-modal-content {
        margin: 10px;
        max-width: calc(100vw - 20px);
        max-height: calc(100vh - 20px);
    }
    
    #dcm-pmp-job-modal .dcm-pmp-modal-body {
        padding: 20px;
        max-height: calc(100vh - 120px);
    }
    
    #dcm-pmp-job-modal .dcm-pmp-form-actions {
        flex-direction: column;
    }
    
    #dcm-pmp-job-modal .dcm-pmp-form-actions .dcm-pmp-button {
        width: 100%;
    }
}

/* ==========================================================================
   CV Manager Specific Styles
   ========================================================================== */

/* CV Manager File Upload Styles */
.dcm-pmp-file-upload {
    border: 2px dashed #e1e5e9;
    border-radius: 8px;
    padding: 40px;
    text-align: center;
    transition: all 0.3s ease;
    background: #f8f9fa;
    cursor: pointer;
}

.dcm-pmp-file-upload:hover,
.dcm-pmp-file-upload-dragover {
    border-color: #007cba;
    background: rgba(0, 124, 186, 0.05);
}

.dcm-pmp-file-input {
    display: none;
}

.dcm-pmp-file-upload-info {
    color: #000000;
}

.dcm-pmp-file-upload-info i {
    font-size: 48px;
    color: #007cba;
    margin-bottom: 15px;
}

.dcm-pmp-file-upload-info p {
    margin: 10px 0;
    font-size: 16px;
    font-weight: 500;
}

.dcm-pmp-file-upload-info span {
    font-size: 14px;
    color: #000000;
}

/* CV Manager Upload Form */
.dcm-pmp-cv-upload-form {
    margin-top: 20px;
}

/* CV Manager List Styles */
.dcm-pmp-cv-list {
    margin-top: 20px;
}

.dcm-pmp-cv-item {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 25px;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.dcm-pmp-cv-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #007cba, #005a87);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dcm-pmp-cv-item:hover::before {
    opacity: 1;
}

.dcm-pmp-cv-info {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
}

.dcm-pmp-cv-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #007cba, #005a87);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 24px;
    flex-shrink: 0;
}

.dcm-pmp-cv-details h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 600;
}



.dcm-pmp-cv-meta {
    display: flex;
    gap: 20px;
    font-size: 12px;
    color: #000000;
}

.dcm-pmp-cv-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.dcm-pmp-cv-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

/* CV Manager Empty State */
.dcm-pmp-empty-state {
    text-align: center;
    padding: 60px 20px;
    color: #000000;
}

.dcm-pmp-empty-state i {
    font-size: 64px;
    color: #000000;
    margin-bottom: 20px;
}

.dcm-pmp-empty-state h3 {
    margin: 0 0 10px 0;
    color: #333;
}

.dcm-pmp-empty-state p {
    margin: 0;
    font-size: 16px;
}

/* CV Manager Responsive Styles */
@media (max-width: 768px) {
    .dcm-pmp-cv-item {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    
    .dcm-pmp-cv-actions {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* CV Manager Table Styles - Using Job Table Classes */
.dcm-pmp-job-table-container .dcm-pmp-cv-title-cell {
    min-width: 200px;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-title {
    font-weight: 600;
    margin-bottom: 0;
    color: #000000;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-description-cell {
    min-width: 200px;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-description {
    color: #000000;
    font-size: 13px;
    margin-bottom: 0;
    line-height: 1.4;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-file-type,
.dcm-pmp-job-table-container .dcm-pmp-cv-file-size,
.dcm-pmp-job-table-container .dcm-pmp-cv-upload-date {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #000000;
    font-size: 13px;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-file-type i,
.dcm-pmp-job-table-container .dcm-pmp-cv-file-size i,
.dcm-pmp-job-table-container .dcm-pmp-cv-upload-date i {
    color: #007cba;
    font-size: 14px;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-actions {
    display: flex;
    gap: 8px;
    justify-content: start;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-actions .dcm-pmp-action-btn {
    width: auto;
    height: 32px;
    font-size: 12px;
    padding: 0 10px;
    gap: 6px;
}

.dcm-pmp-job-table-container .dcm-pmp-cv-actions .dcm-pmp-download-btn {
    background: var(--dcm-gradient-success);
    color: #fff;
    box-shadow: var(--dcm-shadow-sm);
}

.dcm-pmp-job-table-container .dcm-pmp-cv-actions .dcm-pmp-download-btn:hover {
    background: var(--dcm-gradient-success-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--dcm-shadow-md);
}

/* CV Manager Table Responsive Styles */
@media (max-width: 768px) {
    .dcm-pmp-job-table-container .dcm-pmp-cv-actions {
        flex-direction: column;
        gap: 6px;
    }
    
    .dcm-pmp-job-table-container .dcm-pmp-cv-title-cell,
    .dcm-pmp-job-table-container .dcm-pmp-cv-description-cell {
        min-width: 150px;
    }
}

/* ==========================================================================
   Disabled Links - Pages Not Configured
   ========================================================================== */

/* Disabled link styles for pages that are not configured in admin settings */
.dcm-pmp-link-disabled {
    opacity: 0.6;
    cursor: not-allowed !important;
    pointer-events: none;
    text-decoration: line-through;
    color: #000000 !important;
}

/* Disabled button styles */
.dcm-pmp-btn.dcm-pmp-link-disabled {
    background: #f5f5f5 !important;
    color: #000000 !important;
    border-color: #000000 !important;
    cursor: not-allowed !important;
    pointer-events: none;
    opacity: 0.6;
}

.dcm-pmp-btn.dcm-pmp-link-disabled:hover {
    background: #f5f5f5 !important;
    color: #000000 !important;
    border-color: #000000 !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Disabled quick link styles */
.dcm-pmp-quick-link.dcm-pmp-link-disabled {
    color: #000000 !important;
    cursor: not-allowed !important;
    pointer-events: none;
    opacity: 0.6;
}

.dcm-pmp-quick-link.dcm-pmp-link-disabled:hover {
    color: #000000 !important;
    background: transparent !important;
    transform: none !important;
}

/* Disabled action button styles */
.dcm-pmp-action-btn.dcm-pmp-link-disabled {
    background: #f5f5f5 !important;
    color: #000000 !important;
    border-color: #000000 !important;
    cursor: not-allowed !important;
    pointer-events: none;
    opacity: 0.6;
}

.dcm-pmp-action-btn.dcm-pmp-link-disabled:hover {
    background: #f5f5f5 !important;
    color: #000000 !important;
    border-color: #000000 !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Tooltip styles for disabled links */
.dcm-pmp-link-disabled[title]:hover::after {
    content: attr(title);
    position: absolute;
    background: #333;
    color: #fff;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 1000;
    pointer-events: none;
}

/* ==========================================================================
   Hoursregistration Dashboard Styles
   ========================================================================== */

/* Hoursregistration Summary */
.dcm-pmp-hoursregistration-summary {
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
}

.dcm-pmp-hoursregistration-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.dcm-pmp-hoursregistration-stat {
    text-align: center;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 6px;
    border: 1px solid #e9ecef;
}

.dcm-pmp-hoursregistration-stat-number {
    font-size: 24px;
    font-weight: 700;
    color: #007cba;
    margin-bottom: 5px;
}

.dcm-pmp-hoursregistration-stat-label {
    font-size: 12px;
    color: #000000;
    text-transform: uppercase;
    font-weight: 600;
}

/* Recent Hoursregistration */
.dcm-pmp-recent-hoursregistration h3 {
    margin-bottom: 15px;
    color: #23282d;
    font-size: 16px;
    font-weight: 600;
}

.dcm-pmp-hoursregistration-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dcm-pmp-hoursregistration-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background: #f8f9fa;
    border-radius: 6px;
    border: 1px solid #e9ecef;
}

.dcm-pmp-hoursregistration-date {
    font-weight: 600;
    color: #23282d;
}

.dcm-pmp-hoursregistration-hours {
    color: #007cba;
    font-weight: 600;
}

.dcm-pmp-hoursregistration-status {
    font-size: 12px;
}

/* Application Status Sidebar */
.dcm-pmp-application-status {
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 15px;
}

.dcm-pmp-application-status-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.dcm-pmp-application-status-item:last-child {
    border-bottom: none;
}

.dcm-pmp-application-status-label {
    font-weight: 500;
    color: #23282d;
}

.dcm-pmp-application-status-count {
    background: #007cba;
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    min-width: 20px;
    text-align: center;
}

/* Status indicators */
.dcm-pmp-status {
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}

.dcm-pmp-status-pending {
    background: #fff3cd;
    color: #856404;
}

.dcm-pmp-status-approved {
    background: #d4edda;
    color: #155724;
}

.dcm-pmp-status-rejected {
    background: #f8d7da;
    color: #721c24;
}

.dcm-pmp-status-draft {
    background: #e2e3e5;
    color: #383d41;
}

/* ==========================================================================
   Application Form Styles
   ========================================================================== */

/* Application Form Styles */
.dcm-pmp-application-form-container {
    padding: var(--dcm-spacing-md);
}

.dcm-pmp-application-form .dcm-pmp-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--dcm-spacing-md);
    margin-bottom: var(--dcm-spacing-md);
}

.dcm-pmp-application-form .dcm-pmp-form-group {
    margin-bottom: var(--dcm-spacing-md);
}

.dcm-pmp-application-form .dcm-pmp-form-group label {
    display: block;
    margin-bottom: var(--dcm-spacing-xs);
    font-weight: 600;
    color: var(--dcm-color-text-primary);
}

.dcm-pmp-application-form .dcm-pmp-required {
    color: var(--dcm-color-danger);
}

.dcm-pmp-application-form input[type="text"],
.dcm-pmp-application-form input[type="email"],
.dcm-pmp-application-form input[type="tel"],
.dcm-pmp-application-form input[type="datetime-local"],
.dcm-pmp-application-form select,
.dcm-pmp-application-form textarea {
    width: 100%;
    padding: var(--dcm-spacing-sm);
    border: 1px solid var(--dcm-color-border);
    border-radius: var(--dcm-border-radius);
    font-size: 14px;
    transition: var(--dcm-transition);
}

.dcm-pmp-application-form input[readonly],
.dcm-pmp-application-form select[disabled],
.dcm-pmp-application-form textarea[readonly] {
    background-color: var(--dcm-color-bg-light);
    color: var(--dcm-color-text-muted);
    cursor: not-allowed;
}

.dcm-pmp-application-form textarea {
    resize: vertical;
    min-height: 100px;
}

.dcm-pmp-application-form .dcm-pmp-form-actions {
    display: flex;
    gap: var(--dcm-spacing-sm);
    justify-content: flex-end;
    margin-top: var(--dcm-spacing-lg);
    padding-top: var(--dcm-spacing-md);
    border-top: 1px solid var(--dcm-color-border);
}

/* Application Form Loading State */
.dcm-pmp-loading {
    text-align: center;
    padding: var(--dcm-spacing-xl);
    color: var(--dcm-color-text-muted);
}

.dcm-pmp-loading::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--dcm-color-border);
    border-top: 2px solid var(--dcm-color-primary);
    border-radius: 50%;
    animation: dcm-pmp-spin 1s linear infinite;
    margin-right: var(--dcm-spacing-sm);
}

@keyframes dcm-pmp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Application Form Error State */
.dcm-pmp-error {
    background: var(--dcm-gradient-danger);
    color: white;
    padding: var(--dcm-spacing-md);
    border-radius: var(--dcm-border-radius);
    margin: var(--dcm-spacing-md) 0;
    text-align: center;
}

/* ==========================================================================
   CV File Display Styles
   ========================================================================== */

/* CV File Display Styles */
.dcm-pmp-cv-file-display {
    background: var(--dcm-color-bg-light);
    border: 1px solid var(--dcm-color-border);
    border-radius: var(--dcm-border-radius);
    padding: var(--dcm-spacing-md);
    margin-top: var(--dcm-spacing-xs);
}

.dcm-pmp-cv-file-info {
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-sm);
    margin-bottom: var(--dcm-spacing-sm);
}

.dcm-pmp-cv-file-info i {
    font-size: 18px;
    color: var(--dcm-color-primary);
}

.dcm-pmp-cv-file-name {
    font-weight: 600;
    color: var(--dcm-color-text-primary);
}

.dcm-pmp-cv-file-size {
    color: var(--dcm-color-text-muted);
    font-size: 14px;
}

.dcm-pmp-cv-file-actions {
    display: flex;
    gap: var(--dcm-spacing-sm);
}

.dcm-pmp-cv-file-actions .dcm-pmp-btn {
    padding: var(--dcm-spacing-xs) var(--dcm-spacing-sm);
    font-size: 14px;
    text-decoration: none;
    border-radius: var(--dcm-border-radius);
    transition: var(--dcm-transition);
    display: inline-flex;
    align-items: center;
    gap: var(--dcm-spacing-xs);
}

.dcm-pmp-cv-file-actions .dcm-pmp-btn-small {
    padding: 6px 12px;
    font-size: 13px;
}

.dcm-pmp-cv-no-file {
    display: flex;
    align-items: center;
    gap: var(--dcm-spacing-sm);
    color: var(--dcm-color-warning);
    font-style: italic;
    padding: var(--dcm-spacing-sm);
    background: rgba(255, 193, 7, 0.1);
    border: 1px solid rgba(255, 193, 7, 0.3);
    border-radius: var(--dcm-border-radius);
    margin-top: var(--dcm-spacing-xs);
}

.dcm-pmp-cv-no-file i {
    font-size: 16px;
}

.dcm-pmp-form-actions {
    padding-top: 15px;
}

/* Responsive stacked cards for My Applications table */
@media (max-width: 768px) {
	/* Transform table into card list */
	.dcm-pmp-job-table { display: block; width: 100%; }
	.dcm-pmp-job-table thead { display: none; }
	.dcm-pmp-job-table tbody { display: block; }
	.dcm-pmp-job-table tr {
		display: block;
		background: #fff;
		border: 1px solid #e9ecef;
		border-radius: 8px;
		box-shadow: 0 1px 3px rgba(0,0,0,0.06);
		margin-bottom: 12px;
		overflow: hidden;
	}
	.dcm-pmp-job-table td {
		display: block;
		padding: 12px 16px;
		border-bottom: 1px solid #f1f3f5;
	}
	.dcm-pmp-job-table td:last-child { border-bottom: none; }
	.dcm-pmp-job-table td::before {
		content: attr(data-label);
		display: block;
		font-weight: 600;
		color: #333;
		margin-bottom: 6px;
	}
	/* Minor tweaks for inner content */
	.dcm-pmp-job-title-cell .dcm-pmp-job-title a { font-weight: 600; }
	.dcm-pmp-job-company { display: flex; align-items: center; gap: 8px; }
	.dcm-pmp-job-date { display: flex; align-items: center; gap: 8px; }
	.dcm-pmp-job-status-cell .dcm-pmp-status { justify-self: start; }
}

/* Hide icons in activity items on mobile */
@media (max-width: 768px) {
	.dcm-pmp-cv-icon { display: none !important; }
}