/* Navigation Bar Styles - Single Source of Truth */
.navbar {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 1.25rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 4px 20px rgba(102, 126, 234, 0.15);
    position: sticky;
    top: 0;
    z-index: 1000;
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-brand h2 {
    color: white;
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
}

.nav-menu {
    display: flex;
    gap: 2rem;
}

.nav-link {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    padding: 0.2rem 0.2rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    font-weight: 500;
}

.nav-link:hover {
    color: white;
    background: rgba(255, 255, 255, 0.1);
}

.nav-link.active {
    color: white;
    background: rgba(255, 255, 255, 0.2);
}

.nav-auth {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.user-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: white;
}

.user-info span {
    font-weight: 500;
}

/* Admin-only navigation items */
.nav-link.admin-only {
    display: none !important;
}

.nav-link.admin-only.show {
    display: inline-block !important;
}

/* Button Styles */
.btn {
    padding: 0.5rem 1rem;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
    text-align: center;
}

.btn-primary {
    background: #4CAF50;
    color: white;
}

.btn-primary:hover {
    background: #45a049;
    transform: translateY(-1px);
}

.btn-outline {
    color: white;
    border: 2px solid white;
}
#cancelEdit,
#cancelSignup,
#cancelForgotPassword,
#cancelLogin{
    color: rgb(255, 85, 85);
    border: 2px solid rgb(255, 97, 97);
}

.btn-outline:hover {
    background: white;
    color: #667eea;
}

.btn-large {
    padding: 0.75rem 1.5rem;
    font-size: 1.1rem;
}

/* Responsive Design */
@media (max-width: 768px) {
    .navbar {
        padding: 1rem;
        flex-direction: column;
        gap: 1rem;
    }
    
    .nav-menu {
        gap: 1rem;
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .nav-auth {
        gap: 0.5rem;
    }
    
    .nav-brand h2 {
        font-size: 1.2rem;
    }
}

        @media (max-width: 480px) {
            .nav-menu {
                flex-direction: column;
                gap: 0.5rem;
            }
            
            .nav-auth {
                flex-direction: column;
                gap: 0.5rem;
            }
        }

        /* Modal Styles for Login/Signup */
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
        }

        .modal-content {
            background-color: white;
            margin: 5% auto;
            padding: 20px;
            border-radius: 8px;
            width: 90%;
            max-width: 500px;
            max-height: 80vh;
            overflow-y: auto;
        }

        .modal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            border-bottom: 1px solid #dee2e6;
            padding-bottom: 15px;
        }

        .modal-header h3 {
            margin: 0;
            color: var(--primary-color, #364d63);
        }

        .close {
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
            color: #aaa;
            transition: color 0.3s ease;
        }

        .close:hover {
            color: #e74c3c;
        }

        .form-group {
            margin-bottom: 15px;
        }

        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: 500;
            color: var(--primary-color, #364d63);
        }

        .form-group input, .form-group select {
            width: 100%;
            padding: 8px 12px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 14px;
            transition: border-color 0.3s ease;
        }

        .form-group input:focus, .form-group select:focus {
            outline: none;
            border-color: var(--primary-color, #364d63);
        }

        .modal-actions {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
            margin-top: 20px;
            padding-top: 15px;
            border-top: 1px solid #dee2e6;
        }

        .btn-success {
            background: #27ae60;
            color: white;
        }

        .btn-success:hover {
            background: #219a52;
        }

        .btn-secondary {
            background: #6c757d;
            color: white;
        }

        .btn-secondary:hover {
            background: #5a6268;
        }

        /* Animation for notifications */
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateX(100%);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

/* Page Heading Styles */
.page_heading {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 1rem;
    margin-bottom: 1rem;
    margin-top: 0rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
    width: 80% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.main-content.sidebar-collapsed .page_heading {
    width: 90% !important;
    margin-bottom: 1rem !important;
}

.page_heading h1 {
    margin: 0 0 0.5rem 0;
    font-size: 2rem;
    font-weight: 700;
    opacity: 1;
    text-shadow: 1px 2px 4px rgba(0,0,0,0.1);
    color: white !important;
    -webkit-text-fill-color: white !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
}

.page_heading p {
    margin: 0;
    font-size: 0.8rem;
    opacity: 1;
    font-weight: 400;
    color: white;
}

/* Summary cards layout - let Index.html handle font sizes */
.main-content .summary-tiles {
    gap: 0.5rem !important;
    justify-content: center !important;
}

